From a2d7a353d8b1e01153e0435ab6f235ca9e7c21ab Mon Sep 17 00:00:00 2001 From: lai <10633968+laiyujun1@user.noreply.gitee.com> Date: Tue, 12 Aug 2025 14:15:27 +0800 Subject: [PATCH] init-version-3.27 --- .clang-format | 2 + .gitattributes | 2 + .gitignore | 126 + CMakeLists.txt | 53 + CONTRIBUTING.md | 19 + LICENSE | 674 + README.md | 2 +- config/custom-gnb.yaml | 23 + config/custom-ue.yaml | 83 + config/free5gc-gnb.yaml | 23 + config/free5gc-ue.yaml | 83 + config/open5gs-gnb.yaml | 22 + config/open5gs-ue.yaml | 81 + src/asn/asn1c/ANY.c | 450 + src/asn/asn1c/ANY.h | 65 + src/asn/asn1c/BIT_STRING.c | 656 + src/asn/asn1c/BIT_STRING.h | 48 + src/asn/asn1c/BOOLEAN.c | 492 + src/asn/asn1c/BOOLEAN.h | 45 + src/asn/asn1c/CMakeLists.txt | 7 + src/asn/asn1c/INTEGER.c | 1723 + src/asn/asn1c/INTEGER.h | 108 + src/asn/asn1c/Makefile.am.libasncodec | 2231 + src/asn/asn1c/NULL.c | 299 + src/asn/asn1c/NULL.h | 45 + src/asn/asn1c/NativeEnumerated.c | 367 + src/asn/asn1c/NativeEnumerated.h | 45 + src/asn/asn1c/NativeInteger.c | 550 + src/asn/asn1c/NativeInteger.h | 46 + src/asn/asn1c/OBJECT_IDENTIFIER.c | 647 + src/asn/asn1c/OBJECT_IDENTIFIER.h | 156 + src/asn/asn1c/OCTET_STRING.c | 2409 + src/asn/asn1c/OCTET_STRING.h | 102 + src/asn/asn1c/OPEN_TYPE.c | 509 + src/asn/asn1c/OPEN_TYPE.h | 77 + src/asn/asn1c/PrintableString.c | 130 + src/asn/asn1c/PrintableString.h | 37 + src/asn/asn1c/UTF8String.c | 294 + src/asn/asn1c/UTF8String.h | 63 + src/asn/asn1c/VisibleString.c | 99 + src/asn/asn1c/VisibleString.h | 38 + src/asn/asn1c/asn_SEQUENCE_OF.c | 41 + src/asn/asn1c/asn_SEQUENCE_OF.h | 52 + src/asn/asn1c/asn_SET_OF.c | 88 + src/asn/asn1c/asn_SET_OF.h | 72 + src/asn/asn1c/asn_application.c | 481 + src/asn/asn1c/asn_application.h | 171 + src/asn/asn1c/asn_bit_data.c | 333 + src/asn/asn1c/asn_bit_data.h | 83 + src/asn/asn1c/asn_codecs.h | 108 + src/asn/asn1c/asn_codecs_prim.c | 317 + src/asn/asn1c/asn_codecs_prim.h | 51 + src/asn/asn1c/asn_internal.c | 48 + src/asn/asn1c/asn_internal.h | 151 + src/asn/asn1c/asn_ioc.h | 51 + src/asn/asn1c/asn_random_fill.c | 56 + src/asn/asn1c/asn_random_fill.h | 51 + src/asn/asn1c/asn_system.h | 150 + src/asn/asn1c/ber_decoder.c | 283 + src/asn/asn1c/ber_decoder.h | 66 + src/asn/asn1c/ber_tlv_length.c | 168 + src/asn/asn1c/ber_tlv_length.h | 50 + src/asn/asn1c/ber_tlv_tag.c | 144 + src/asn/asn1c/ber_tlv_tag.h | 60 + src/asn/asn1c/constr_CHOICE.c | 1509 + src/asn/asn1c/constr_CHOICE.h | 80 + src/asn/asn1c/constr_SEQUENCE.c | 2059 + src/asn/asn1c/constr_SEQUENCE.h | 68 + src/asn/asn1c/constr_SEQUENCE_OF.c | 358 + src/asn/asn1c/constr_SEQUENCE_OF.h | 41 + src/asn/asn1c/constr_SET_OF.c | 1441 + src/asn/asn1c/constr_SET_OF.h | 49 + src/asn/asn1c/constr_TYPE.c | 80 + src/asn/asn1c/constr_TYPE.h | 262 + src/asn/asn1c/constraints.c | 93 + src/asn/asn1c/constraints.h | 62 + src/asn/asn1c/der_encoder.c | 194 + src/asn/asn1c/der_encoder.h | 68 + src/asn/asn1c/per_decoder.c | 185 + src/asn/asn1c/per_decoder.h | 82 + src/asn/asn1c/per_encoder.c | 265 + src/asn/asn1c/per_encoder.h | 93 + src/asn/asn1c/per_opentype.c | 533 + src/asn/asn1c/per_opentype.h | 44 + src/asn/asn1c/per_support.c | 489 + src/asn/asn1c/per_support.h | 127 + src/asn/asn1c/xer_decoder.c | 369 + src/asn/asn1c/xer_decoder.h | 106 + src/asn/asn1c/xer_encoder.c | 237 + src/asn/asn1c/xer_encoder.h | 83 + src/asn/asn1c/xer_support.c | 227 + src/asn/asn1c/xer_support.h | 55 + .../ASN_NGAP_AMF-TNLAssociationSetupItem.c | 63 + .../ASN_NGAP_AMF-TNLAssociationSetupItem.h | 48 + .../ASN_NGAP_AMF-TNLAssociationSetupList.c | 50 + .../ASN_NGAP_AMF-TNLAssociationSetupList.h | 44 + .../ASN_NGAP_AMF-TNLAssociationToAddItem.c | 83 + .../ASN_NGAP_AMF-TNLAssociationToAddItem.h | 52 + .../ASN_NGAP_AMF-TNLAssociationToAddList.c | 50 + .../ASN_NGAP_AMF-TNLAssociationToAddList.h | 44 + .../ASN_NGAP_AMF-TNLAssociationToRemoveItem.c | 63 + .../ASN_NGAP_AMF-TNLAssociationToRemoveItem.h | 48 + .../ASN_NGAP_AMF-TNLAssociationToRemoveList.c | 50 + .../ASN_NGAP_AMF-TNLAssociationToRemoveList.h | 44 + .../ASN_NGAP_AMF-TNLAssociationToUpdateItem.c | 83 + .../ASN_NGAP_AMF-TNLAssociationToUpdateItem.h | 52 + .../ASN_NGAP_AMF-TNLAssociationToUpdateList.c | 50 + .../ASN_NGAP_AMF-TNLAssociationToUpdateList.h | 44 + src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.c | 67 + src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.h | 44 + .../ngap/ASN_NGAP_AMFCPRelocationIndication.c | 50 + .../ngap/ASN_NGAP_AMFCPRelocationIndication.h | 44 + .../ngap/ASN_NGAP_AMFConfigurationUpdate.c | 50 + .../ngap/ASN_NGAP_AMFConfigurationUpdate.h | 44 + ...N_NGAP_AMFConfigurationUpdateAcknowledge.c | 50 + ...N_NGAP_AMFConfigurationUpdateAcknowledge.h | 44 + .../ASN_NGAP_AMFConfigurationUpdateFailure.c | 50 + .../ASN_NGAP_AMFConfigurationUpdateFailure.h | 44 + src/asn/ngap/ASN_NGAP_AMFName.c | 106 + src/asn/ngap/ASN_NGAP_AMFName.h | 44 + src/asn/ngap/ASN_NGAP_AMFNameUTF8String.c | 68 + src/asn/ngap/ASN_NGAP_AMFNameUTF8String.h | 44 + src/asn/ngap/ASN_NGAP_AMFNameVisibleString.c | 76 + src/asn/ngap/ASN_NGAP_AMFNameVisibleString.h | 44 + src/asn/ngap/ASN_NGAP_AMFPagingTarget.c | 75 + src/asn/ngap/ASN_NGAP_AMFPagingTarget.h | 58 + src/asn/ngap/ASN_NGAP_AMFPointer.c | 67 + src/asn/ngap/ASN_NGAP_AMFPointer.h | 44 + src/asn/ngap/ASN_NGAP_AMFRegionID.c | 67 + src/asn/ngap/ASN_NGAP_AMFRegionID.h | 44 + src/asn/ngap/ASN_NGAP_AMFSetID.c | 67 + src/asn/ngap/ASN_NGAP_AMFSetID.h | 44 + src/asn/ngap/ASN_NGAP_AMFStatusIndication.c | 50 + src/asn/ngap/ASN_NGAP_AMFStatusIndication.h | 44 + src/asn/ngap/ASN_NGAP_ActivatedCellList.c | 50 + src/asn/ngap/ASN_NGAP_ActivatedCellList.h | 44 + ...AP_AdditionalDLUPTNLInformationForHOItem.c | 84 + ...AP_AdditionalDLUPTNLInformationForHOItem.h | 52 + ...AP_AdditionalDLUPTNLInformationForHOList.c | 50 + ...AP_AdditionalDLUPTNLInformationForHOList.h | 44 + .../ASN_NGAP_AdditionalQosFlowInformation.c | 53 + .../ASN_NGAP_AdditionalQosFlowInformation.h | 53 + .../ASN_NGAP_AllocationAndRetentionPriority.c | 83 + .../ASN_NGAP_AllocationAndRetentionPriority.h | 52 + .../ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c | 49 + .../ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h | 42 + src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c | 131 + src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h | 62 + src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.c | 50 + src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.h | 44 + src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.c | 63 + src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.h | 48 + src/asn/ngap/ASN_NGAP_AllowedNSSAI.c | 50 + src/asn/ngap/ASN_NGAP_AllowedNSSAI.h | 44 + src/asn/ngap/ASN_NGAP_AllowedTACs.c | 49 + src/asn/ngap/ASN_NGAP_AllowedTACs.h | 42 + .../ASN_NGAP_AlternativeQoSParaSetIndex.c | 61 + .../ASN_NGAP_AlternativeQoSParaSetIndex.h | 44 + .../ngap/ASN_NGAP_AlternativeQoSParaSetItem.c | 104 + .../ngap/ASN_NGAP_AlternativeQoSParaSetItem.h | 55 + .../ngap/ASN_NGAP_AlternativeQoSParaSetList.c | 50 + .../ngap/ASN_NGAP_AlternativeQoSParaSetList.h | 44 + ...SN_NGAP_AlternativeQoSParaSetNotifyIndex.c | 61 + ...SN_NGAP_AlternativeQoSParaSetNotifyIndex.h | 44 + src/asn/ngap/ASN_NGAP_AreaOfInterest.c | 86 + src/asn/ngap/ASN_NGAP_AreaOfInterest.h | 52 + .../ngap/ASN_NGAP_AreaOfInterestCellItem.c | 63 + .../ngap/ASN_NGAP_AreaOfInterestCellItem.h | 48 + .../ngap/ASN_NGAP_AreaOfInterestCellList.c | 50 + .../ngap/ASN_NGAP_AreaOfInterestCellList.h | 44 + src/asn/ngap/ASN_NGAP_AreaOfInterestItem.c | 73 + src/asn/ngap/ASN_NGAP_AreaOfInterestItem.h | 50 + src/asn/ngap/ASN_NGAP_AreaOfInterestList.c | 50 + src/asn/ngap/ASN_NGAP_AreaOfInterestList.h | 44 + .../ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c | 63 + .../ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h | 48 + .../ngap/ASN_NGAP_AreaOfInterestRANNodeList.c | 50 + .../ngap/ASN_NGAP_AreaOfInterestRANNodeList.h | 44 + src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.c | 63 + src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.h | 48 + src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.c | 50 + src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.h | 44 + src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c | 96 + src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h | 64 + src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.c | 96 + src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.h | 64 + .../ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c | 74 + .../ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h | 50 + .../ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c | 50 + .../ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h | 44 + src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.c | 97 + src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.h | 64 + .../ngap/ASN_NGAP_AssistanceDataForPaging.c | 75 + .../ngap/ASN_NGAP_AssistanceDataForPaging.h | 50 + ...N_NGAP_AssistanceDataForRecommendedCells.c | 63 + ...N_NGAP_AssistanceDataForRecommendedCells.h | 48 + ...GAP_AssociatedMBSQosFlowSetupRequestItem.c | 73 + ...GAP_AssociatedMBSQosFlowSetupRequestItem.h | 49 + ...GAP_AssociatedMBSQosFlowSetupRequestList.c | 50 + ...GAP_AssociatedMBSQosFlowSetupRequestList.h | 44 + ...ciatedMBSQosFlowSetuporModifyRequestItem.c | 73 + ...ciatedMBSQosFlowSetuporModifyRequestItem.h | 49 + ...ciatedMBSQosFlowSetuporModifyRequestList.c | 50 + ...ciatedMBSQosFlowSetuporModifyRequestList.h | 44 + src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.c | 121 + src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.h | 60 + src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.c | 50 + src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.h | 44 + .../ngap/ASN_NGAP_AuthenticatedIndication.c | 53 + .../ngap/ASN_NGAP_AuthenticatedIndication.h | 53 + .../ASN_NGAP_AvailableRANVisibleQoEMetrics.c | 165 + .../ASN_NGAP_AvailableRANVisibleQoEMetrics.h | 65 + src/asn/ngap/ASN_NGAP_AveragingWindow.c | 61 + src/asn/ngap/ASN_NGAP_AveragingWindow.h | 44 + ...NGAP_BeamMeasurementsReportConfiguration.c | 74 + ...NGAP_BeamMeasurementsReportConfiguration.h | 50 + .../ASN_NGAP_BeamMeasurementsReportQuantity.c | 221 + .../ASN_NGAP_BeamMeasurementsReportQuantity.h | 73 + src/asn/ngap/ASN_NGAP_BitRate.c | 67 + src/asn/ngap/ASN_NGAP_BitRate.h | 44 + src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.c | 53 + src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.h | 53 + .../ASN_NGAP_BluetoothMeasConfigNameItem.c | 63 + .../ASN_NGAP_BluetoothMeasConfigNameItem.h | 48 + .../ASN_NGAP_BluetoothMeasConfigNameList.c | 50 + .../ASN_NGAP_BluetoothMeasConfigNameList.h | 44 + ...N_NGAP_BluetoothMeasurementConfiguration.c | 130 + ...N_NGAP_BluetoothMeasurementConfiguration.h | 61 + src/asn/ngap/ASN_NGAP_BluetoothName.c | 62 + src/asn/ngap/ASN_NGAP_BluetoothName.h | 44 + .../ASN_NGAP_BroadcastCancelledAreaList.c | 119 + .../ASN_NGAP_BroadcastCancelledAreaList.h | 70 + .../ASN_NGAP_BroadcastCompletedAreaList.c | 119 + .../ASN_NGAP_BroadcastCompletedAreaList.h | 70 + src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.c | 73 + src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.h | 50 + src/asn/ngap/ASN_NGAP_BroadcastPLMNList.c | 50 + src/asn/ngap/ASN_NGAP_BroadcastPLMNList.h | 44 + ...NGAP_BroadcastSessionModificationFailure.c | 50 + ...NGAP_BroadcastSessionModificationFailure.h | 44 + ...NGAP_BroadcastSessionModificationRequest.c | 50 + ...NGAP_BroadcastSessionModificationRequest.h | 44 + ...GAP_BroadcastSessionModificationResponse.c | 50 + ...GAP_BroadcastSessionModificationResponse.h | 44 + .../ASN_NGAP_BroadcastSessionReleaseRequest.c | 50 + .../ASN_NGAP_BroadcastSessionReleaseRequest.h | 44 + ...ASN_NGAP_BroadcastSessionReleaseRequired.c | 50 + ...ASN_NGAP_BroadcastSessionReleaseRequired.h | 44 + ...ASN_NGAP_BroadcastSessionReleaseResponse.c | 50 + ...ASN_NGAP_BroadcastSessionReleaseResponse.h | 44 + .../ASN_NGAP_BroadcastSessionSetupFailure.c | 50 + .../ASN_NGAP_BroadcastSessionSetupFailure.h | 44 + .../ASN_NGAP_BroadcastSessionSetupRequest.c | 50 + .../ASN_NGAP_BroadcastSessionSetupRequest.h | 44 + .../ASN_NGAP_BroadcastSessionSetupResponse.c | 50 + .../ASN_NGAP_BroadcastSessionSetupResponse.h | 44 + src/asn/ngap/ASN_NGAP_BurstArrivalTime.c | 31 + src/asn/ngap/ASN_NGAP_BurstArrivalTime.h | 43 + src/asn/ngap/ASN_NGAP_CAG-ID.c | 67 + src/asn/ngap/ASN_NGAP_CAG-ID.h | 44 + .../ngap/ASN_NGAP_CEmodeBSupport-Indicator.c | 53 + .../ngap/ASN_NGAP_CEmodeBSupport-Indicator.h | 53 + src/asn/ngap/ASN_NGAP_CEmodeBrestricted.c | 55 + src/asn/ngap/ASN_NGAP_CEmodeBrestricted.h | 54 + src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.c | 64 + src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.h | 48 + ...ASN_NGAP_CNTypeRestrictionsForEquivalent.c | 50 + ...ASN_NGAP_CNTypeRestrictionsForEquivalent.h | 44 + ...NGAP_CNTypeRestrictionsForEquivalentItem.c | 121 + ...NGAP_CNTypeRestrictionsForEquivalentItem.h | 60 + .../ASN_NGAP_CNTypeRestrictionsForServing.c | 53 + .../ASN_NGAP_CNTypeRestrictionsForServing.h | 53 + src/asn/ngap/ASN_NGAP_CNsubgroupID.c | 61 + src/asn/ngap/ASN_NGAP_CNsubgroupID.h | 44 + .../ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c | 133 + .../ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h | 49 + .../ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c | 133 + .../ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h | 49 + .../ASN_NGAP_CPTransportLayerInformation.c | 63 + .../ASN_NGAP_CPTransportLayerInformation.h | 55 + .../ngap/ASN_NGAP_CancelAllWarningMessages.c | 53 + .../ngap/ASN_NGAP_CancelAllWarningMessages.h | 53 + .../ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c | 73 + .../ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h | 50 + .../ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c | 50 + .../ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h | 44 + .../ASN_NGAP_CancelledCellsInEAI-NR-Item.c | 73 + .../ASN_NGAP_CancelledCellsInEAI-NR-Item.h | 50 + .../ngap/ASN_NGAP_CancelledCellsInEAI-NR.c | 50 + .../ngap/ASN_NGAP_CancelledCellsInEAI-NR.h | 44 + .../ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c | 73 + .../ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h | 50 + .../ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c | 50 + .../ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h | 44 + .../ASN_NGAP_CancelledCellsInTAI-NR-Item.c | 73 + .../ASN_NGAP_CancelledCellsInTAI-NR-Item.h | 50 + .../ngap/ASN_NGAP_CancelledCellsInTAI-NR.c | 50 + .../ngap/ASN_NGAP_CancelledCellsInTAI-NR.h | 44 + src/asn/ngap/ASN_NGAP_CandidateCell.c | 75 + src/asn/ngap/ASN_NGAP_CandidateCell.h | 58 + src/asn/ngap/ASN_NGAP_CandidateCellID.c | 63 + src/asn/ngap/ASN_NGAP_CandidateCellID.h | 48 + src/asn/ngap/ASN_NGAP_CandidateCellItem.c | 63 + src/asn/ngap/ASN_NGAP_CandidateCellItem.h | 48 + src/asn/ngap/ASN_NGAP_CandidateCellList.c | 50 + src/asn/ngap/ASN_NGAP_CandidateCellList.h | 44 + src/asn/ngap/ASN_NGAP_CandidatePCI.c | 133 + src/asn/ngap/ASN_NGAP_CandidatePCI.h | 49 + src/asn/ngap/ASN_NGAP_Cause.c | 103 + src/asn/ngap/ASN_NGAP_Cause.h | 67 + src/asn/ngap/ASN_NGAP_CauseMisc.c | 63 + src/asn/ngap/ASN_NGAP_CauseMisc.h | 58 + src/asn/ngap/ASN_NGAP_CauseNas.c | 61 + src/asn/ngap/ASN_NGAP_CauseNas.h | 57 + src/asn/ngap/ASN_NGAP_CauseProtocol.c | 65 + src/asn/ngap/ASN_NGAP_CauseProtocol.h | 59 + src/asn/ngap/ASN_NGAP_CauseRadioNetwork.c | 165 + src/asn/ngap/ASN_NGAP_CauseRadioNetwork.h | 109 + src/asn/ngap/ASN_NGAP_CauseTransport.c | 55 + src/asn/ngap/ASN_NGAP_CauseTransport.h | 54 + src/asn/ngap/ASN_NGAP_Cell-CAGInformation.c | 73 + src/asn/ngap/ASN_NGAP_Cell-CAGInformation.h | 50 + src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.c | 63 + src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.h | 48 + src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.c | 63 + src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.h | 48 + src/asn/ngap/ASN_NGAP_CellBasedQMC.c | 63 + src/asn/ngap/ASN_NGAP_CellBasedQMC.h | 48 + src/asn/ngap/ASN_NGAP_CellCAGList.c | 49 + src/asn/ngap/ASN_NGAP_CellCAGList.h | 42 + .../ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c | 63 + .../ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h | 48 + src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.c | 50 + src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.h | 44 + .../ngap/ASN_NGAP_CellIDBroadcastNR-Item.c | 63 + .../ngap/ASN_NGAP_CellIDBroadcastNR-Item.h | 48 + src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.c | 50 + src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.h | 44 + .../ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c | 73 + .../ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h | 50 + src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.c | 50 + src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.h | 44 + .../ngap/ASN_NGAP_CellIDCancelledNR-Item.c | 73 + .../ngap/ASN_NGAP_CellIDCancelledNR-Item.h | 50 + src/asn/ngap/ASN_NGAP_CellIDCancelledNR.c | 50 + src/asn/ngap/ASN_NGAP_CellIDCancelledNR.h | 44 + src/asn/ngap/ASN_NGAP_CellIDListForRestart.c | 75 + src/asn/ngap/ASN_NGAP_CellIDListForRestart.h | 58 + .../ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c | 50 + .../ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h | 44 + src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.c | 50 + src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.h | 44 + src/asn/ngap/ASN_NGAP_CellIdListforQMC.c | 50 + src/asn/ngap/ASN_NGAP_CellIdListforQMC.h | 44 + src/asn/ngap/ASN_NGAP_CellSize.c | 59 + src/asn/ngap/ASN_NGAP_CellSize.h | 56 + src/asn/ngap/ASN_NGAP_CellTrafficTrace.c | 50 + src/asn/ngap/ASN_NGAP_CellTrafficTrace.h | 44 + src/asn/ngap/ASN_NGAP_CellType.c | 63 + src/asn/ngap/ASN_NGAP_CellType.h | 48 + src/asn/ngap/ASN_NGAP_CellsToActivateList.c | 50 + src/asn/ngap/ASN_NGAP_CellsToActivateList.h | 44 + src/asn/ngap/ASN_NGAP_CommonNetworkInstance.c | 31 + src/asn/ngap/ASN_NGAP_CommonNetworkInstance.h | 43 + .../ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c | 63 + .../ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h | 48 + .../ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c | 50 + .../ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h | 44 + .../ASN_NGAP_CompletedCellsInEAI-NR-Item.c | 63 + .../ASN_NGAP_CompletedCellsInEAI-NR-Item.h | 48 + .../ngap/ASN_NGAP_CompletedCellsInEAI-NR.c | 50 + .../ngap/ASN_NGAP_CompletedCellsInEAI-NR.h | 44 + .../ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c | 63 + .../ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h | 48 + .../ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c | 50 + .../ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h | 44 + .../ASN_NGAP_CompletedCellsInTAI-NR-Item.c | 63 + .../ASN_NGAP_CompletedCellsInTAI-NR-Item.h | 48 + .../ngap/ASN_NGAP_CompletedCellsInTAI-NR.c | 50 + .../ngap/ASN_NGAP_CompletedCellsInTAI-NR.h | 44 + .../ASN_NGAP_CompositeAvailableCapacity.c | 133 + .../ASN_NGAP_CompositeAvailableCapacity.h | 49 + .../ASN_NGAP_ConcurrentWarningMessageInd.c | 53 + .../ASN_NGAP_ConcurrentWarningMessageInd.h | 53 + ...NGAP_ConfidentialityProtectionIndication.c | 57 + ...NGAP_ConfidentialityProtectionIndication.h | 55 + ...ASN_NGAP_ConfidentialityProtectionResult.c | 55 + ...ASN_NGAP_ConfidentialityProtectionResult.h | 54 + src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.c | 62 + src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.h | 44 + .../ngap/ASN_NGAP_ConfiguredTACIndication.c | 53 + .../ngap/ASN_NGAP_ConfiguredTACIndication.h | 53 + ...N_NGAP_ConnectionEstablishmentIndication.c | 50 + ...N_NGAP_ConnectionEstablishmentIndication.h | 44 + ...eNetworkAssistanceInformationForInactive.c | 114 + ...eNetworkAssistanceInformationForInactive.h | 58 + .../ngap/ASN_NGAP_CoverageEnhancementLevel.c | 31 + .../ngap/ASN_NGAP_CoverageEnhancementLevel.h | 43 + src/asn/ngap/ASN_NGAP_Criticality.c | 55 + src/asn/ngap/ASN_NGAP_Criticality.h | 52 + .../ASN_NGAP_CriticalityDiagnostics-IE-Item.c | 83 + .../ASN_NGAP_CriticalityDiagnostics-IE-Item.h | 52 + .../ASN_NGAP_CriticalityDiagnostics-IE-List.c | 50 + .../ASN_NGAP_CriticalityDiagnostics-IE-List.h | 44 + .../ngap/ASN_NGAP_CriticalityDiagnostics.c | 94 + .../ngap/ASN_NGAP_CriticalityDiagnostics.h | 54 + src/asn/ngap/ASN_NGAP_DAPSRequestInfo.c | 109 + src/asn/ngap/ASN_NGAP_DAPSRequestInfo.h | 57 + src/asn/ngap/ASN_NGAP_DAPSResponseInfo.c | 111 + src/asn/ngap/ASN_NGAP_DAPSResponseInfo.h | 58 + src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.c | 73 + src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.h | 50 + src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.c | 50 + src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.h | 44 + .../ngap/ASN_NGAP_DL-CP-SecurityInformation.c | 63 + .../ngap/ASN_NGAP_DL-CP-SecurityInformation.h | 48 + src/asn/ngap/ASN_NGAP_DL-NAS-MAC.c | 67 + src/asn/ngap/ASN_NGAP_DL-NAS-MAC.h | 44 + .../ASN_NGAP_DL-NGU-TNLInformationReused.c | 53 + .../ASN_NGAP_DL-NGU-TNLInformationReused.h | 53 + src/asn/ngap/ASN_NGAP_DLForwarding.c | 53 + src/asn/ngap/ASN_NGAP_DLForwarding.h | 53 + src/asn/ngap/ASN_NGAP_DRB-ID.c | 61 + src/asn/ngap/ASN_NGAP_DRB-ID.h | 44 + src/asn/ngap/ASN_NGAP_DRBStatusDL.c | 75 + src/asn/ngap/ASN_NGAP_DRBStatusDL.h | 58 + src/asn/ngap/ASN_NGAP_DRBStatusDL12.c | 63 + src/asn/ngap/ASN_NGAP_DRBStatusDL12.h | 48 + src/asn/ngap/ASN_NGAP_DRBStatusDL18.c | 63 + src/asn/ngap/ASN_NGAP_DRBStatusDL18.h | 48 + src/asn/ngap/ASN_NGAP_DRBStatusUL.c | 75 + src/asn/ngap/ASN_NGAP_DRBStatusUL.h | 58 + src/asn/ngap/ASN_NGAP_DRBStatusUL12.c | 109 + src/asn/ngap/ASN_NGAP_DRBStatusUL12.h | 50 + src/asn/ngap/ASN_NGAP_DRBStatusUL18.c | 109 + src/asn/ngap/ASN_NGAP_DRBStatusUL18.h | 50 + ...AP_DRBsSubjectToEarlyStatusTransfer-Item.c | 73 + ...AP_DRBsSubjectToEarlyStatusTransfer-Item.h | 50 + ...AP_DRBsSubjectToEarlyStatusTransfer-List.c | 50 + ...AP_DRBsSubjectToEarlyStatusTransfer-List.h | 44 + ...ASN_NGAP_DRBsSubjectToStatusTransferItem.c | 83 + ...ASN_NGAP_DRBsSubjectToStatusTransferItem.h | 52 + ...ASN_NGAP_DRBsSubjectToStatusTransferList.c | 50 + ...ASN_NGAP_DRBsSubjectToStatusTransferList.h | 44 + .../ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c | 73 + .../ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h | 50 + .../ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c | 50 + .../ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h | 44 + src/asn/ngap/ASN_NGAP_DataCodingScheme.c | 67 + src/asn/ngap/ASN_NGAP_DataCodingScheme.h | 44 + .../ngap/ASN_NGAP_DataForwardingAccepted.c | 53 + .../ngap/ASN_NGAP_DataForwardingAccepted.h | 53 + .../ngap/ASN_NGAP_DataForwardingNotPossible.c | 53 + .../ngap/ASN_NGAP_DataForwardingNotPossible.h | 53 + .../ASN_NGAP_DataForwardingResponseDRBItem.c | 84 + .../ASN_NGAP_DataForwardingResponseDRBItem.h | 51 + .../ASN_NGAP_DataForwardingResponseDRBList.c | 50 + .../ASN_NGAP_DataForwardingResponseDRBList.h | 44 + .../ASN_NGAP_DataForwardingResponseERABList.c | 50 + .../ASN_NGAP_DataForwardingResponseERABList.h | 44 + ..._NGAP_DataForwardingResponseERABListItem.c | 73 + ..._NGAP_DataForwardingResponseERABListItem.h | 50 + src/asn/ngap/ASN_NGAP_DeactivateTrace.c | 50 + src/asn/ngap/ASN_NGAP_DeactivateTrace.h | 44 + src/asn/ngap/ASN_NGAP_DelayCritical.c | 55 + src/asn/ngap/ASN_NGAP_DelayCritical.h | 54 + ...SN_NGAP_DirectForwardingPathAvailability.c | 53 + ...SN_NGAP_DirectForwardingPathAvailability.h | 53 + .../ASN_NGAP_DistributionReleaseRequest.c | 50 + .../ASN_NGAP_DistributionReleaseRequest.h | 44 + .../ASN_NGAP_DistributionReleaseResponse.c | 50 + .../ASN_NGAP_DistributionReleaseResponse.h | 44 + .../ngap/ASN_NGAP_DistributionSetupFailure.c | 50 + .../ngap/ASN_NGAP_DistributionSetupFailure.h | 44 + .../ngap/ASN_NGAP_DistributionSetupRequest.c | 50 + .../ngap/ASN_NGAP_DistributionSetupRequest.h | 44 + .../ngap/ASN_NGAP_DistributionSetupResponse.c | 50 + .../ngap/ASN_NGAP_DistributionSetupResponse.h | 44 + src/asn/ngap/ASN_NGAP_DownlinkNASTransport.c | 50 + src/asn/ngap/ASN_NGAP_DownlinkNASTransport.h | 44 + ...AP_DownlinkNonUEAssociatedNRPPaTransport.c | 50 + ...AP_DownlinkNonUEAssociatedNRPPaTransport.h | 44 + ...SN_NGAP_DownlinkRANConfigurationTransfer.c | 50 + ...SN_NGAP_DownlinkRANConfigurationTransfer.h | 44 + .../ASN_NGAP_DownlinkRANEarlyStatusTransfer.c | 50 + .../ASN_NGAP_DownlinkRANEarlyStatusTransfer.h | 44 + .../ngap/ASN_NGAP_DownlinkRANStatusTransfer.c | 50 + .../ngap/ASN_NGAP_DownlinkRANStatusTransfer.h | 44 + .../ASN_NGAP_DownlinkRIMInformationTransfer.c | 50 + .../ASN_NGAP_DownlinkRIMInformationTransfer.h | 44 + ..._NGAP_DownlinkUEAssociatedNRPPaTransport.c | 50 + ..._NGAP_DownlinkUEAssociatedNRPPaTransport.h | 44 + src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.c | 123 + src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.h | 60 + src/asn/ngap/ASN_NGAP_E-RAB-ID.c | 61 + src/asn/ngap/ASN_NGAP_E-RAB-ID.h | 44 + src/asn/ngap/ASN_NGAP_E-RABInformationItem.c | 73 + src/asn/ngap/ASN_NGAP_E-RABInformationItem.h | 50 + src/asn/ngap/ASN_NGAP_E-RABInformationList.c | 50 + src/asn/ngap/ASN_NGAP_E-RABInformationList.h | 44 + src/asn/ngap/ASN_NGAP_EDT-Session.c | 53 + src/asn/ngap/ASN_NGAP_EDT-Session.h | 53 + .../ASN_NGAP_EN-DCSONConfigurationTransfer.c | 31 + .../ASN_NGAP_EN-DCSONConfigurationTransfer.h | 43 + src/asn/ngap/ASN_NGAP_ENB-ID.c | 237 + src/asn/ngap/ASN_NGAP_ENB-ID.h | 61 + src/asn/ngap/ASN_NGAP_EPS-TAC.c | 62 + src/asn/ngap/ASN_NGAP_EPS-TAC.h | 44 + src/asn/ngap/ASN_NGAP_EPS-TAI.c | 73 + src/asn/ngap/ASN_NGAP_EPS-TAI.h | 50 + src/asn/ngap/ASN_NGAP_EUTRA-CGI.c | 73 + src/asn/ngap/ASN_NGAP_EUTRA-CGI.h | 50 + src/asn/ngap/ASN_NGAP_EUTRA-CGIList.c | 50 + src/asn/ngap/ASN_NGAP_EUTRA-CGIList.h | 44 + .../ngap/ASN_NGAP_EUTRA-CGIListForWarning.c | 50 + .../ngap/ASN_NGAP_EUTRA-CGIListForWarning.h | 44 + .../ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c | 83 + .../ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h | 68 + .../ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c | 79 + .../ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h | 66 + .../ASN_NGAP_EUTRA-PagingeDRXInformation.c | 73 + .../ASN_NGAP_EUTRA-PagingeDRXInformation.h | 50 + src/asn/ngap/ASN_NGAP_EUTRACellIdentity.c | 67 + src/asn/ngap/ASN_NGAP_EUTRACellIdentity.h | 44 + src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.c | 104 + src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.h | 56 + src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.c | 50 + src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.h | 44 + .../ngap/ASN_NGAP_EUTRAN-CellToReportItem.c | 63 + .../ngap/ASN_NGAP_EUTRAN-CellToReportItem.h | 48 + .../ngap/ASN_NGAP_EUTRAN-CellToReportList.c | 50 + .../ngap/ASN_NGAP_EUTRAN-CellToReportList.h | 44 + ...P_EUTRAN-CompositeAvailableCapacityGroup.c | 73 + ...P_EUTRAN-CompositeAvailableCapacityGroup.h | 49 + .../ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c | 61 + .../ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h | 44 + .../ASN_NGAP_EUTRAN-RadioResourceStatus.c | 373 + .../ASN_NGAP_EUTRAN-RadioResourceStatus.h | 55 + .../ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c | 63 + .../ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h | 48 + .../ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c | 63 + .../ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h | 48 + .../ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c | 67 + .../ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h | 44 + ..._NGAP_EUTRAintegrityProtectionAlgorithms.c | 67 + ..._NGAP_EUTRAintegrityProtectionAlgorithms.h | 44 + src/asn/ngap/ASN_NGAP_EarlyMeasurement.c | 53 + src/asn/ngap/ASN_NGAP_EarlyMeasurement.h | 53 + ...EarlyStatusTransfer-TransparentContainer.c | 63 + ...EarlyStatusTransfer-TransparentContainer.h | 48 + src/asn/ngap/ASN_NGAP_EmergencyAreaID.c | 62 + src/asn/ngap/ASN_NGAP_EmergencyAreaID.h | 44 + ..._NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c | 73 + ..._NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h | 50 + .../ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c | 50 + .../ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h | 44 + ...ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c | 73 + ...ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h | 50 + .../ASN_NGAP_EmergencyAreaIDBroadcastNR.c | 50 + .../ASN_NGAP_EmergencyAreaIDBroadcastNR.h | 44 + ..._NGAP_EmergencyAreaIDCancelledEUTRA-Item.c | 73 + ..._NGAP_EmergencyAreaIDCancelledEUTRA-Item.h | 50 + .../ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c | 50 + .../ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h | 44 + ...ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c | 73 + ...ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h | 50 + .../ASN_NGAP_EmergencyAreaIDCancelledNR.c | 50 + .../ASN_NGAP_EmergencyAreaIDCancelledNR.h | 44 + src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.c | 49 + src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.h | 42 + .../ASN_NGAP_EmergencyAreaIDListForRestart.c | 49 + .../ASN_NGAP_EmergencyAreaIDListForRestart.h | 42 + .../ASN_NGAP_EmergencyFallbackIndicator.c | 73 + .../ASN_NGAP_EmergencyFallbackIndicator.h | 50 + ...N_NGAP_EmergencyFallbackRequestIndicator.c | 53 + ...N_NGAP_EmergencyFallbackRequestIndicator.h | 53 + .../ngap/ASN_NGAP_EmergencyServiceTargetCN.c | 55 + .../ngap/ASN_NGAP_EmergencyServiceTargetCN.h | 54 + src/asn/ngap/ASN_NGAP_EndIndication.c | 55 + src/asn/ngap/ASN_NGAP_EndIndication.h | 54 + .../ngap/ASN_NGAP_EndpointIPAddressAndPort.c | 73 + .../ngap/ASN_NGAP_EndpointIPAddressAndPort.h | 46 + .../ASN_NGAP_Enhanced-CoverageRestriction.c | 53 + .../ASN_NGAP_Enhanced-CoverageRestriction.h | 53 + src/asn/ngap/ASN_NGAP_EquivalentPLMNs.c | 49 + src/asn/ngap/ASN_NGAP_EquivalentPLMNs.h | 42 + src/asn/ngap/ASN_NGAP_ErrorIndication.c | 50 + src/asn/ngap/ASN_NGAP_ErrorIndication.h | 44 + .../ngap/ASN_NGAP_EventBasedReportingIEs.c | 83 + .../ngap/ASN_NGAP_EventBasedReportingIEs.h | 51 + .../ngap/ASN_NGAP_EventL1LoggedMDTConfig.c | 83 + .../ngap/ASN_NGAP_EventL1LoggedMDTConfig.h | 52 + src/asn/ngap/ASN_NGAP_EventTrigger.c | 120 + src/asn/ngap/ASN_NGAP_EventTrigger.h | 65 + src/asn/ngap/ASN_NGAP_EventType.c | 63 + src/asn/ngap/ASN_NGAP_EventType.h | 58 + ..._ExcessPacketDelayThresholdConfiguration.c | 50 + ..._ExcessPacketDelayThresholdConfiguration.h | 44 + .../ASN_NGAP_ExcessPacketDelayThresholdItem.c | 73 + .../ASN_NGAP_ExcessPacketDelayThresholdItem.h | 50 + ...ASN_NGAP_ExcessPacketDelayThresholdValue.c | 89 + ...ASN_NGAP_ExcessPacketDelayThresholdValue.h | 71 + .../ngap/ASN_NGAP_ExpectedActivityPeriod.c | 61 + .../ngap/ASN_NGAP_ExpectedActivityPeriod.h | 44 + src/asn/ngap/ASN_NGAP_ExpectedHOInterval.c | 65 + src/asn/ngap/ASN_NGAP_ExpectedHOInterval.h | 59 + src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.c | 61 + src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.h | 44 + .../ASN_NGAP_ExpectedUEActivityBehaviour.c | 83 + .../ASN_NGAP_ExpectedUEActivityBehaviour.h | 52 + src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.c | 95 + src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.h | 54 + src/asn/ngap/ASN_NGAP_ExpectedUEMobility.c | 55 + src/asn/ngap/ASN_NGAP_ExpectedUEMobility.h | 54 + .../ASN_NGAP_ExpectedUEMovingTrajectory.c | 50 + .../ASN_NGAP_ExpectedUEMovingTrajectory.h | 44 + .../ASN_NGAP_ExpectedUEMovingTrajectoryItem.c | 103 + .../ASN_NGAP_ExpectedUEMovingTrajectoryItem.h | 50 + src/asn/ngap/ASN_NGAP_Extended-AMFName.c | 73 + src/asn/ngap/ASN_NGAP_Extended-AMFName.h | 50 + .../ngap/ASN_NGAP_Extended-ConnectedTime.c | 61 + .../ngap/ASN_NGAP_Extended-ConnectedTime.h | 44 + src/asn/ngap/ASN_NGAP_Extended-RANNodeName.c | 73 + src/asn/ngap/ASN_NGAP_Extended-RANNodeName.h | 50 + .../ASN_NGAP_ExtendedMobilityInformation.c | 67 + .../ASN_NGAP_ExtendedMobilityInformation.h | 44 + .../ngap/ASN_NGAP_ExtendedPacketDelayBudget.c | 61 + .../ngap/ASN_NGAP_ExtendedPacketDelayBudget.h | 44 + ...N_NGAP_ExtendedRATRestrictionInformation.c | 145 + ...N_NGAP_ExtendedRATRestrictionInformation.h | 49 + src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.c | 61 + src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.h | 44 + .../ngap/ASN_NGAP_ExtendedReportIntervalMDT.c | 55 + .../ngap/ASN_NGAP_ExtendedReportIntervalMDT.h | 54 + .../ngap/ASN_NGAP_ExtendedSliceSupportList.c | 50 + .../ngap/ASN_NGAP_ExtendedSliceSupportList.h | 44 + .../ASN_NGAP_ExtendedUEIdentityIndexValue.c | 67 + .../ASN_NGAP_ExtendedUEIdentityIndexValue.h | 44 + src/asn/ngap/ASN_NGAP_FailureIndication.c | 63 + src/asn/ngap/ASN_NGAP_FailureIndication.h | 48 + src/asn/ngap/ASN_NGAP_FirstDLCount.c | 63 + src/asn/ngap/ASN_NGAP_FirstDLCount.h | 48 + src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.c | 103 + src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.h | 56 + .../ASN_NGAP_FiveG-ProSePC5QoSParameters.c | 73 + .../ASN_NGAP_FiveG-ProSePC5QoSParameters.h | 50 + src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.c | 83 + src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.h | 52 + src/asn/ngap/ASN_NGAP_FiveG-TMSI.c | 62 + src/asn/ngap/ASN_NGAP_FiveG-TMSI.h | 44 + .../ASN_NGAP_FiveGProSeDirectCommunication.c | 55 + .../ASN_NGAP_FiveGProSeDirectCommunication.h | 54 + .../ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c | 55 + .../ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h | 54 + .../ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c | 55 + .../ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h | 54 + ...SN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c | 55 + ...SN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h | 54 + ...SN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c | 55 + ...SN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h | 54 + .../ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c | 73 + .../ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h | 49 + .../ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c | 84 + .../ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h | 52 + .../ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c | 50 + .../ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h | 44 + src/asn/ngap/ASN_NGAP_FiveQI.c | 61 + src/asn/ngap/ASN_NGAP_FiveQI.h | 44 + .../ASN_NGAP_ForbiddenAreaInformation-Item.c | 73 + .../ASN_NGAP_ForbiddenAreaInformation-Item.h | 50 + .../ngap/ASN_NGAP_ForbiddenAreaInformation.c | 50 + .../ngap/ASN_NGAP_ForbiddenAreaInformation.h | 44 + src/asn/ngap/ASN_NGAP_ForbiddenTACs.c | 49 + src/asn/ngap/ASN_NGAP_ForbiddenTACs.h | 42 + src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.c | 73 + src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.h | 46 + src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.c | 73 + src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.h | 46 + src/asn/ngap/ASN_NGAP_GBR-QosInformation.c | 123 + src/asn/ngap/ASN_NGAP_GBR-QosInformation.h | 56 + src/asn/ngap/ASN_NGAP_GNB-ID.c | 99 + src/asn/ngap/ASN_NGAP_GNB-ID.h | 55 + src/asn/ngap/ASN_NGAP_GNBSetID.c | 67 + src/asn/ngap/ASN_NGAP_GNBSetID.h | 44 + src/asn/ngap/ASN_NGAP_GTP-TEID.c | 62 + src/asn/ngap/ASN_NGAP_GTP-TEID.h | 44 + src/asn/ngap/ASN_NGAP_GTPTunnel.c | 73 + src/asn/ngap/ASN_NGAP_GTPTunnel.h | 50 + src/asn/ngap/ASN_NGAP_GUAMI.c | 93 + src/asn/ngap/ASN_NGAP_GUAMI.h | 54 + src/asn/ngap/ASN_NGAP_GUAMIType.c | 55 + src/asn/ngap/ASN_NGAP_GUAMIType.h | 54 + src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.c | 73 + src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.h | 50 + src/asn/ngap/ASN_NGAP_GlobalCable-ID.c | 31 + src/asn/ngap/ASN_NGAP_GlobalCable-ID.h | 43 + src/asn/ngap/ASN_NGAP_GlobalENB-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalENB-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalGNB-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalGNB-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalLine-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalLine-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalLineIdentity.c | 31 + src/asn/ngap/ASN_NGAP_GlobalLineIdentity.h | 43 + src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalRANNodeID.c | 86 + src/asn/ngap/ASN_NGAP_GlobalRANNodeID.h | 61 + src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.h | 50 + src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.c | 73 + src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.h | 50 + src/asn/ngap/ASN_NGAP_HFCNode-ID-new.c | 73 + src/asn/ngap/ASN_NGAP_HFCNode-ID-new.h | 50 + src/asn/ngap/ASN_NGAP_HFCNode-ID.c | 31 + src/asn/ngap/ASN_NGAP_HFCNode-ID.h | 43 + src/asn/ngap/ASN_NGAP_HOReport.c | 232 + src/asn/ngap/ASN_NGAP_HOReport.h | 74 + src/asn/ngap/ASN_NGAP_HandoverCancel.c | 50 + src/asn/ngap/ASN_NGAP_HandoverCancel.h | 44 + .../ngap/ASN_NGAP_HandoverCancelAcknowledge.c | 50 + .../ngap/ASN_NGAP_HandoverCancelAcknowledge.h | 44 + src/asn/ngap/ASN_NGAP_HandoverCommand.c | 50 + src/asn/ngap/ASN_NGAP_HandoverCommand.h | 44 + .../ngap/ASN_NGAP_HandoverCommandTransfer.c | 86 + .../ngap/ASN_NGAP_HandoverCommandTransfer.h | 50 + src/asn/ngap/ASN_NGAP_HandoverFailure.c | 50 + src/asn/ngap/ASN_NGAP_HandoverFailure.h | 44 + src/asn/ngap/ASN_NGAP_HandoverFlag.c | 53 + src/asn/ngap/ASN_NGAP_HandoverFlag.h | 53 + src/asn/ngap/ASN_NGAP_HandoverNotify.c | 50 + src/asn/ngap/ASN_NGAP_HandoverNotify.h | 44 + .../ASN_NGAP_HandoverPreparationFailure.c | 50 + .../ASN_NGAP_HandoverPreparationFailure.h | 44 + ..._HandoverPreparationUnsuccessfulTransfer.c | 63 + ..._HandoverPreparationUnsuccessfulTransfer.h | 46 + src/asn/ngap/ASN_NGAP_HandoverRequest.c | 50 + src/asn/ngap/ASN_NGAP_HandoverRequest.h | 44 + .../ASN_NGAP_HandoverRequestAcknowledge.c | 50 + .../ASN_NGAP_HandoverRequestAcknowledge.h | 44 + ..._NGAP_HandoverRequestAcknowledgeTransfer.c | 117 + ..._NGAP_HandoverRequestAcknowledgeTransfer.h | 56 + src/asn/ngap/ASN_NGAP_HandoverRequired.c | 50 + src/asn/ngap/ASN_NGAP_HandoverRequired.h | 44 + .../ngap/ASN_NGAP_HandoverRequiredTransfer.c | 63 + .../ngap/ASN_NGAP_HandoverRequiredTransfer.h | 46 + ...erResourceAllocationUnsuccessfulTransfer.c | 74 + ...erResourceAllocationUnsuccessfulTransfer.h | 48 + src/asn/ngap/ASN_NGAP_HandoverSuccess.c | 50 + src/asn/ngap/ASN_NGAP_HandoverSuccess.h | 44 + src/asn/ngap/ASN_NGAP_HandoverType.c | 59 + src/asn/ngap/ASN_NGAP_HandoverType.h | 56 + .../ASN_NGAP_HashedUEIdentityIndexValue.c | 67 + .../ASN_NGAP_HashedUEIdentityIndexValue.h | 44 + src/asn/ngap/ASN_NGAP_Hysteresis.c | 61 + src/asn/ngap/ASN_NGAP_Hysteresis.h | 44 + src/asn/ngap/ASN_NGAP_IAB-Authorized.c | 55 + src/asn/ngap/ASN_NGAP_IAB-Authorized.h | 54 + src/asn/ngap/ASN_NGAP_IAB-Supported.c | 53 + src/asn/ngap/ASN_NGAP_IAB-Supported.h | 53 + src/asn/ngap/ASN_NGAP_IABNodeIndication.c | 53 + src/asn/ngap/ASN_NGAP_IABNodeIndication.h | 53 + .../ngap/ASN_NGAP_IMSVoiceSupportIndicator.c | 55 + .../ngap/ASN_NGAP_IMSVoiceSupportIndicator.h | 54 + src/asn/ngap/ASN_NGAP_ImmediateMDTNr.c | 162 + src/asn/ngap/ASN_NGAP_ImmediateMDTNr.h | 66 + ...N_NGAP_IncludeBeamMeasurementsIndication.c | 53 + ...N_NGAP_IncludeBeamMeasurementsIndication.h | 53 + src/asn/ngap/ASN_NGAP_IndexToRFSP.c | 61 + src/asn/ngap/ASN_NGAP_IndexToRFSP.h | 44 + ...foOnRecommendedCellsAndRANNodesForPaging.c | 73 + ...foOnRecommendedCellsAndRANNodesForPaging.h | 50 + .../ASN_NGAP_InitialContextSetupFailure.c | 50 + .../ASN_NGAP_InitialContextSetupFailure.h | 44 + .../ASN_NGAP_InitialContextSetupRequest.c | 50 + .../ASN_NGAP_InitialContextSetupRequest.h | 44 + .../ASN_NGAP_InitialContextSetupResponse.c | 50 + .../ASN_NGAP_InitialContextSetupResponse.h | 44 + src/asn/ngap/ASN_NGAP_InitialUEMessage.c | 50 + src/asn/ngap/ASN_NGAP_InitialUEMessage.h | 44 + src/asn/ngap/ASN_NGAP_InitiatingMessage.c | 1528 + src/asn/ngap/ASN_NGAP_InitiatingMessage.h | 331 + .../ASN_NGAP_IntegrityProtectionIndication.c | 57 + .../ASN_NGAP_IntegrityProtectionIndication.h | 55 + .../ngap/ASN_NGAP_IntegrityProtectionResult.c | 55 + .../ngap/ASN_NGAP_IntegrityProtectionResult.h | 54 + .../ASN_NGAP_IntendedNumberOfPagingAttempts.c | 61 + .../ASN_NGAP_IntendedNumberOfPagingAttempts.h | 44 + .../ASN_NGAP_InterSystemFailureIndication.c | 64 + .../ASN_NGAP_InterSystemFailureIndication.h | 48 + src/asn/ngap/ASN_NGAP_InterSystemHOReport.c | 63 + src/asn/ngap/ASN_NGAP_InterSystemHOReport.h | 48 + .../ASN_NGAP_InterSystemHandoverReportType.c | 75 + .../ASN_NGAP_InterSystemHandoverReportType.h | 58 + src/asn/ngap/ASN_NGAP_InterfacesToTrace.c | 67 + src/asn/ngap/ASN_NGAP_InterfacesToTrace.h | 44 + .../ASN_NGAP_IntersystemCellActivationReply.c | 103 + .../ASN_NGAP_IntersystemCellActivationReply.h | 50 + ...SN_NGAP_IntersystemCellActivationRequest.c | 103 + ...SN_NGAP_IntersystemCellActivationRequest.h | 50 + .../ASN_NGAP_IntersystemCellStateIndication.c | 63 + .../ASN_NGAP_IntersystemCellStateIndication.h | 48 + .../ASN_NGAP_IntersystemResourceStatusReply.c | 63 + .../ASN_NGAP_IntersystemResourceStatusReply.h | 48 + ...ASN_NGAP_IntersystemResourceStatusReport.c | 63 + ...ASN_NGAP_IntersystemResourceStatusReport.h | 48 + ...SN_NGAP_IntersystemResourceStatusRequest.c | 83 + ...SN_NGAP_IntersystemResourceStatusRequest.h | 52 + .../ASN_NGAP_IntersystemResourceThreshold.c | 61 + .../ASN_NGAP_IntersystemResourceThreshold.h | 44 + ...NGAP_IntersystemSONConfigurationTransfer.c | 73 + ...NGAP_IntersystemSONConfigurationTransfer.h | 50 + .../ngap/ASN_NGAP_IntersystemSONInformation.c | 64 + .../ngap/ASN_NGAP_IntersystemSONInformation.h | 55 + .../ASN_NGAP_IntersystemSONInformationReply.c | 75 + .../ASN_NGAP_IntersystemSONInformationReply.h | 58 + ...ASN_NGAP_IntersystemSONInformationReport.c | 75 + ...ASN_NGAP_IntersystemSONInformationReport.h | 58 + ...SN_NGAP_IntersystemSONInformationRequest.c | 75 + ...SN_NGAP_IntersystemSONInformationRequest.h | 58 + .../ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c | 73 + .../ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h | 50 + .../ASN_NGAP_IntersystemSONTransferType.c | 75 + .../ASN_NGAP_IntersystemSONTransferType.h | 58 + src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.c | 73 + src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.h | 50 + .../ngap/ASN_NGAP_IntersystemUnnecessaryHO.c | 141 + .../ngap/ASN_NGAP_IntersystemUnnecessaryHO.h | 64 + src/asn/ngap/ASN_NGAP_LAC.c | 62 + src/asn/ngap/ASN_NGAP_LAC.h | 44 + src/asn/ngap/ASN_NGAP_LAI.c | 73 + src/asn/ngap/ASN_NGAP_LAI.h | 50 + src/asn/ngap/ASN_NGAP_LTEM-Indication.c | 53 + src/asn/ngap/ASN_NGAP_LTEM-Indication.h | 53 + .../ngap/ASN_NGAP_LTEUERLFReportContainer.c | 31 + .../ngap/ASN_NGAP_LTEUERLFReportContainer.h | 43 + ...GAP_LTEUESidelinkAggregateMaximumBitrate.c | 63 + ...GAP_LTEUESidelinkAggregateMaximumBitrate.h | 48 + .../ngap/ASN_NGAP_LTEV2XServicesAuthorized.c | 73 + .../ngap/ASN_NGAP_LTEV2XServicesAuthorized.h | 50 + .../ASN_NGAP_LastVisitedCellInformation.c | 94 + .../ASN_NGAP_LastVisitedCellInformation.h | 64 + src/asn/ngap/ASN_NGAP_LastVisitedCellItem.c | 63 + src/asn/ngap/ASN_NGAP_LastVisitedCellItem.h | 48 + ...SN_NGAP_LastVisitedEUTRANCellInformation.c | 31 + ...SN_NGAP_LastVisitedEUTRANCellInformation.h | 43 + ...ASN_NGAP_LastVisitedGERANCellInformation.c | 31 + ...ASN_NGAP_LastVisitedGERANCellInformation.h | 43 + ...ASN_NGAP_LastVisitedNGRANCellInformation.c | 104 + ...ASN_NGAP_LastVisitedNGRANCellInformation.h | 56 + .../ASN_NGAP_LastVisitedPSCellInformation.c | 104 + .../ASN_NGAP_LastVisitedPSCellInformation.h | 50 + src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.c | 50 + src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.h | 44 + ...ASN_NGAP_LastVisitedUTRANCellInformation.c | 31 + ...ASN_NGAP_LastVisitedUTRANCellInformation.h | 43 + src/asn/ngap/ASN_NGAP_LineType.c | 55 + src/asn/ngap/ASN_NGAP_LineType.h | 54 + src/asn/ngap/ASN_NGAP_Links-to-log.c | 57 + src/asn/ngap/ASN_NGAP_Links-to-log.h | 55 + src/asn/ngap/ASN_NGAP_LocationReport.c | 50 + src/asn/ngap/ASN_NGAP_LocationReport.h | 44 + ...ASN_NGAP_LocationReportingAdditionalInfo.c | 53 + ...ASN_NGAP_LocationReportingAdditionalInfo.h | 53 + .../ngap/ASN_NGAP_LocationReportingControl.c | 50 + .../ngap/ASN_NGAP_LocationReportingControl.h | 44 + ..._NGAP_LocationReportingFailureIndication.c | 50 + ..._NGAP_LocationReportingFailureIndication.h | 44 + .../ASN_NGAP_LocationReportingReferenceID.c | 61 + .../ASN_NGAP_LocationReportingReferenceID.h | 44 + .../ASN_NGAP_LocationReportingRequestType.c | 94 + .../ASN_NGAP_LocationReportingRequestType.h | 54 + src/asn/ngap/ASN_NGAP_LoggedMDTNr.c | 127 + src/asn/ngap/ASN_NGAP_LoggedMDTNr.h | 60 + src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.c | 74 + src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.h | 58 + src/asn/ngap/ASN_NGAP_LoggingDuration.c | 63 + src/asn/ngap/ASN_NGAP_LoggingDuration.h | 58 + src/asn/ngap/ASN_NGAP_LoggingInterval.c | 73 + src/asn/ngap/ASN_NGAP_LoggingInterval.h | 63 + src/asn/ngap/ASN_NGAP_M1Configuration.c | 85 + src/asn/ngap/ASN_NGAP_M1Configuration.h | 52 + src/asn/ngap/ASN_NGAP_M1PeriodicReporting.c | 73 + src/asn/ngap/ASN_NGAP_M1PeriodicReporting.h | 50 + src/asn/ngap/ASN_NGAP_M1ReportingTrigger.c | 57 + src/asn/ngap/ASN_NGAP_M1ReportingTrigger.h | 55 + src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.c | 63 + src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.h | 48 + src/asn/ngap/ASN_NGAP_M1ThresholdType.c | 83 + src/asn/ngap/ASN_NGAP_M1ThresholdType.h | 61 + src/asn/ngap/ASN_NGAP_M4Configuration.c | 73 + src/asn/ngap/ASN_NGAP_M4Configuration.h | 50 + src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.c | 67 + src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.h | 60 + src/asn/ngap/ASN_NGAP_M4period.c | 61 + src/asn/ngap/ASN_NGAP_M4period.h | 57 + src/asn/ngap/ASN_NGAP_M5Configuration.c | 73 + src/asn/ngap/ASN_NGAP_M5Configuration.h | 50 + src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.c | 67 + src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.h | 60 + src/asn/ngap/ASN_NGAP_M5period.c | 61 + src/asn/ngap/ASN_NGAP_M5period.h | 57 + src/asn/ngap/ASN_NGAP_M6Configuration.c | 73 + src/asn/ngap/ASN_NGAP_M6Configuration.h | 50 + src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.c | 67 + src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.h | 60 + src/asn/ngap/ASN_NGAP_M6report-Interval.c | 79 + src/asn/ngap/ASN_NGAP_M6report-Interval.h | 66 + src/asn/ngap/ASN_NGAP_M7Configuration.c | 73 + src/asn/ngap/ASN_NGAP_M7Configuration.h | 50 + src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.c | 67 + src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.h | 60 + src/asn/ngap/ASN_NGAP_M7period.c | 61 + src/asn/ngap/ASN_NGAP_M7period.h | 44 + ...iveSessionInformation-SourcetoTargetItem.c | 105 + ...iveSessionInformation-SourcetoTargetItem.h | 56 + ...iveSessionInformation-SourcetoTargetList.c | 50 + ...iveSessionInformation-SourcetoTargetList.h | 44 + ...iveSessionInformation-TargettoSourceItem.c | 74 + ...iveSessionInformation-TargettoSourceItem.h | 50 + ...iveSessionInformation-TargettoSourceList.c | 50 + ...iveSessionInformation-TargettoSourceList.h | 44 + src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.c | 61 + src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.h | 44 + src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.c | 50 + src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.h | 44 + ...N_NGAP_MBS-DataForwardingResponseMRBItem.c | 84 + ...N_NGAP_MBS-DataForwardingResponseMRBItem.h | 52 + ...N_NGAP_MBS-DataForwardingResponseMRBList.c | 50 + ...N_NGAP_MBS-DataForwardingResponseMRBList.h | 44 + ...P_MBS-DistributionReleaseRequestTransfer.c | 94 + ...P_MBS-DistributionReleaseRequestTransfer.h | 52 + ...GAP_MBS-DistributionSetupRequestTransfer.c | 84 + ...GAP_MBS-DistributionSetupRequestTransfer.h | 50 + ...AP_MBS-DistributionSetupResponseTransfer.c | 115 + ...AP_MBS-DistributionSetupResponseTransfer.h | 56 + ...BS-DistributionSetupUnsuccessfulTransfer.c | 94 + ...BS-DistributionSetupUnsuccessfulTransfer.h | 52 + ..._MBS-MappingandDataForwardingRequestItem.c | 84 + ..._MBS-MappingandDataForwardingRequestItem.h | 52 + ..._MBS-MappingandDataForwardingRequestList.c | 50 + ..._MBS-MappingandDataForwardingRequestList.h | 44 + src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.c | 49 + src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.h | 42 + .../ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c | 73 + .../ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h | 50 + .../ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c | 50 + .../ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h | 44 + src/asn/ngap/ASN_NGAP_MBS-ServiceArea.c | 75 + src/asn/ngap/ASN_NGAP_MBS-ServiceArea.h | 58 + .../ngap/ASN_NGAP_MBS-ServiceAreaCellList.c | 50 + .../ngap/ASN_NGAP_MBS-ServiceAreaCellList.h | 44 + .../ASN_NGAP_MBS-ServiceAreaInformation.c | 75 + .../ASN_NGAP_MBS-ServiceAreaInformation.h | 50 + .../ASN_NGAP_MBS-ServiceAreaInformationItem.c | 73 + .../ASN_NGAP_MBS-ServiceAreaInformationItem.h | 50 + .../ASN_NGAP_MBS-ServiceAreaInformationList.c | 50 + .../ASN_NGAP_MBS-ServiceAreaInformationList.h | 44 + .../ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c | 50 + .../ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h | 44 + src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.c | 62 + src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.h | 44 + src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.c | 49 + src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.h | 42 + src/asn/ngap/ASN_NGAP_MBS-SessionID.c | 73 + src/asn/ngap/ASN_NGAP_MBS-SessionID.h | 50 + src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c | 75 + src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h | 58 + .../ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c | 73 + .../ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h | 50 + .../ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c | 50 + .../ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h | 44 + .../ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c | 75 + .../ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h | 58 + .../ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c | 74 + .../ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h | 50 + .../ASN_NGAP_MBS-SessionTNLInfoNGRANList.c | 50 + .../ASN_NGAP_MBS-SessionTNLInfoNGRANList.h | 44 + src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.c | 53 + src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.h | 53 + .../ASN_NGAP_MBSSessionFailedtoSetupItem.c | 83 + .../ASN_NGAP_MBSSessionFailedtoSetupItem.h | 52 + .../ASN_NGAP_MBSSessionFailedtoSetupList.c | 50 + .../ASN_NGAP_MBSSessionFailedtoSetupList.h | 44 + ...N_NGAP_MBSSessionReleaseResponseTransfer.c | 64 + ...N_NGAP_MBSSessionReleaseResponseTransfer.h | 46 + ...NGAP_MBSSessionSetupOrModFailureTransfer.c | 74 + ...NGAP_MBSSessionSetupOrModFailureTransfer.h | 48 + ...NGAP_MBSSessionSetupOrModRequestTransfer.c | 50 + ...NGAP_MBSSessionSetupOrModRequestTransfer.h | 42 + ...GAP_MBSSessionSetupOrModResponseTransfer.c | 64 + ...GAP_MBSSessionSetupOrModResponseTransfer.h | 46 + .../ASN_NGAP_MBSSessionSetupRequestItem.c | 84 + .../ASN_NGAP_MBSSessionSetupRequestItem.h | 52 + .../ASN_NGAP_MBSSessionSetupRequestList.c | 50 + .../ASN_NGAP_MBSSessionSetupRequestList.h | 44 + .../ASN_NGAP_MBSSessionSetupResponseItem.c | 73 + .../ASN_NGAP_MBSSessionSetupResponseItem.h | 50 + .../ASN_NGAP_MBSSessionSetupResponseList.c | 50 + .../ASN_NGAP_MBSSessionSetupResponseList.h | 44 + ..._NGAP_MBSSessionSetuporModifyRequestItem.c | 95 + ..._NGAP_MBSSessionSetuporModifyRequestItem.h | 54 + ..._NGAP_MBSSessionSetuporModifyRequestList.c | 50 + ..._NGAP_MBSSessionSetuporModifyRequestList.h | 44 + src/asn/ngap/ASN_NGAP_MBSSessionStatus.c | 55 + src/asn/ngap/ASN_NGAP_MBSSessionStatus.h | 54 + .../ngap/ASN_NGAP_MBSSessionToReleaseItem.c | 73 + .../ngap/ASN_NGAP_MBSSessionToReleaseItem.h | 50 + .../ngap/ASN_NGAP_MBSSessionToReleaseList.c | 50 + .../ngap/ASN_NGAP_MBSSessionToReleaseList.h | 44 + src/asn/ngap/ASN_NGAP_MDT-Activation.c | 57 + src/asn/ngap/ASN_NGAP_MDT-Activation.h | 55 + src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.c | 63 + src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.h | 55 + .../ngap/ASN_NGAP_MDT-Configuration-EUTRA.c | 94 + .../ngap/ASN_NGAP_MDT-Configuration-EUTRA.h | 54 + src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.c | 94 + src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.h | 54 + src/asn/ngap/ASN_NGAP_MDT-Configuration.c | 75 + src/asn/ngap/ASN_NGAP_MDT-Configuration.h | 50 + src/asn/ngap/ASN_NGAP_MDT-Location-Info.c | 63 + src/asn/ngap/ASN_NGAP_MDT-Location-Info.h | 48 + .../ngap/ASN_NGAP_MDT-Location-Information.c | 67 + .../ngap/ASN_NGAP_MDT-Location-Information.h | 44 + src/asn/ngap/ASN_NGAP_MDTModeEutra.c | 31 + src/asn/ngap/ASN_NGAP_MDTModeEutra.h | 43 + src/asn/ngap/ASN_NGAP_MDTModeNr.c | 75 + src/asn/ngap/ASN_NGAP_MDTModeNr.h | 58 + src/asn/ngap/ASN_NGAP_MDTPLMNList.c | 49 + src/asn/ngap/ASN_NGAP_MDTPLMNList.h | 42 + .../ngap/ASN_NGAP_MDTPLMNModificationList.c | 49 + .../ngap/ASN_NGAP_MDTPLMNModificationList.h | 42 + src/asn/ngap/ASN_NGAP_MICOModeIndication.c | 53 + src/asn/ngap/ASN_NGAP_MICOModeIndication.h | 53 + src/asn/ngap/ASN_NGAP_MRB-ID.c | 61 + src/asn/ngap/ASN_NGAP_MRB-ID.h | 44 + .../ngap/ASN_NGAP_MRB-ProgressInformation.c | 133 + .../ngap/ASN_NGAP_MRB-ProgressInformation.h | 57 + src/asn/ngap/ASN_NGAP_MaskedIMEISV.c | 67 + src/asn/ngap/ASN_NGAP_MaskedIMEISV.h | 44 + .../ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c | 61 + .../ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h | 44 + .../ngap/ASN_NGAP_MaximumDataBurstVolume.c | 61 + .../ngap/ASN_NGAP_MaximumDataBurstVolume.h | 44 + ...N_NGAP_MaximumIntegrityProtectedDataRate.c | 55 + ...N_NGAP_MaximumIntegrityProtectedDataRate.h | 54 + ...ASN_NGAP_MeasurementThresholdL1LoggedMDT.c | 73 + ...ASN_NGAP_MeasurementThresholdL1LoggedMDT.h | 58 + .../ngap/ASN_NGAP_MeasurementsToActivate.c | 67 + .../ngap/ASN_NGAP_MeasurementsToActivate.h | 44 + src/asn/ngap/ASN_NGAP_MessageIdentifier.c | 67 + src/asn/ngap/ASN_NGAP_MessageIdentifier.h | 44 + src/asn/ngap/ASN_NGAP_MicoAllPLMN.c | 53 + src/asn/ngap/ASN_NGAP_MicoAllPLMN.h | 53 + src/asn/ngap/ASN_NGAP_MobilityInformation.c | 67 + src/asn/ngap/ASN_NGAP_MobilityInformation.h | 44 + .../ngap/ASN_NGAP_MobilityRestrictionList.c | 107 + .../ngap/ASN_NGAP_MobilityRestrictionList.h | 56 + src/asn/ngap/ASN_NGAP_MulticastGroupPaging.c | 50 + src/asn/ngap/ASN_NGAP_MulticastGroupPaging.h | 44 + .../ngap/ASN_NGAP_MulticastGroupPagingArea.c | 63 + .../ngap/ASN_NGAP_MulticastGroupPagingArea.h | 48 + .../ASN_NGAP_MulticastGroupPagingAreaItem.c | 74 + .../ASN_NGAP_MulticastGroupPagingAreaItem.h | 50 + .../ASN_NGAP_MulticastGroupPagingAreaList.c | 50 + .../ASN_NGAP_MulticastGroupPagingAreaList.h | 44 + ...N_NGAP_MulticastSessionActivationFailure.c | 50 + ...N_NGAP_MulticastSessionActivationFailure.h | 44 + ...N_NGAP_MulticastSessionActivationRequest.c | 50 + ...N_NGAP_MulticastSessionActivationRequest.h | 44 + ...ulticastSessionActivationRequestTransfer.c | 63 + ...ulticastSessionActivationRequestTransfer.h | 46 + ..._NGAP_MulticastSessionActivationResponse.c | 50 + ..._NGAP_MulticastSessionActivationResponse.h | 44 + ...NGAP_MulticastSessionDeactivationRequest.c | 50 + ...NGAP_MulticastSessionDeactivationRequest.h | 44 + ...ticastSessionDeactivationRequestTransfer.c | 63 + ...ticastSessionDeactivationRequestTransfer.h | 46 + ...GAP_MulticastSessionDeactivationResponse.c | 50 + ...GAP_MulticastSessionDeactivationResponse.h | 44 + .../ASN_NGAP_MulticastSessionUpdateFailure.c | 50 + .../ASN_NGAP_MulticastSessionUpdateFailure.h | 44 + .../ASN_NGAP_MulticastSessionUpdateRequest.c | 50 + .../ASN_NGAP_MulticastSessionUpdateRequest.h | 44 + ...AP_MulticastSessionUpdateRequestTransfer.c | 50 + ...AP_MulticastSessionUpdateRequestTransfer.h | 42 + .../ASN_NGAP_MulticastSessionUpdateResponse.c | 50 + .../ASN_NGAP_MulticastSessionUpdateResponse.h | 44 + src/asn/ngap/ASN_NGAP_N3IWF-ID.c | 99 + src/asn/ngap/ASN_NGAP_N3IWF-ID.h | 55 + src/asn/ngap/ASN_NGAP_NAS-PDU.c | 31 + src/asn/ngap/ASN_NGAP_NAS-PDU.h | 43 + .../ngap/ASN_NGAP_NASNonDeliveryIndication.c | 50 + .../ngap/ASN_NGAP_NASNonDeliveryIndication.h | 44 + .../ASN_NGAP_NASSecurityParametersFromNGRAN.c | 31 + .../ASN_NGAP_NASSecurityParametersFromNGRAN.h | 43 + .../ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c | 59 + .../ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h | 56 + .../ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c | 83 + .../ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h | 68 + .../ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c | 79 + .../ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h | 66 + .../ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c | 73 + .../ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h | 50 + src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.c | 63 + src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.h | 58 + src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.c | 61 + src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.h | 44 + src/asn/ngap/ASN_NGAP_NGAP-PDU.c | 75 + src/asn/ngap/ASN_NGAP_NGAP-PDU.h | 61 + ...NGAP_NGAPIESupportInformationRequestItem.c | 63 + ...NGAP_NGAPIESupportInformationRequestItem.h | 48 + ...NGAP_NGAPIESupportInformationRequestList.c | 50 + ...NGAP_NGAPIESupportInformationRequestList.h | 44 + ...GAP_NGAPIESupportInformationResponseItem.c | 179 + ...GAP_NGAPIESupportInformationResponseItem.h | 69 + ...GAP_NGAPIESupportInformationResponseList.c | 50 + ...GAP_NGAPIESupportInformationResponseList.h | 44 + src/asn/ngap/ASN_NGAP_NGRAN-CGI.c | 75 + src/asn/ngap/ASN_NGAP_NGRAN-CGI.h | 58 + src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.c | 104 + src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.h | 56 + src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.c | 50 + src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.h | 44 + .../ngap/ASN_NGAP_NGRAN-CellToReportItem.c | 63 + .../ngap/ASN_NGAP_NGRAN-CellToReportItem.h | 48 + .../ngap/ASN_NGAP_NGRAN-CellToReportList.c | 50 + .../ngap/ASN_NGAP_NGRAN-CellToReportList.h | 44 + .../ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c | 61 + .../ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h | 44 + .../ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c | 61 + .../ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h | 44 + .../ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c | 293 + .../ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h | 53 + .../ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c | 63 + .../ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h | 48 + .../ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c | 63 + .../ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h | 48 + ...SN_NGAP_NGRAN-TNLAssociationToRemoveItem.c | 74 + ...SN_NGAP_NGRAN-TNLAssociationToRemoveItem.h | 46 + ...SN_NGAP_NGRAN-TNLAssociationToRemoveList.c | 50 + ...SN_NGAP_NGRAN-TNLAssociationToRemoveList.h | 44 + src/asn/ngap/ASN_NGAP_NGRANTraceID.c | 62 + src/asn/ngap/ASN_NGAP_NGRANTraceID.h | 44 + src/asn/ngap/ASN_NGAP_NGReset.c | 50 + src/asn/ngap/ASN_NGAP_NGReset.h | 44 + src/asn/ngap/ASN_NGAP_NGResetAcknowledge.c | 50 + src/asn/ngap/ASN_NGAP_NGResetAcknowledge.h | 44 + src/asn/ngap/ASN_NGAP_NGSetupFailure.c | 50 + src/asn/ngap/ASN_NGAP_NGSetupFailure.h | 44 + src/asn/ngap/ASN_NGAP_NGSetupRequest.c | 50 + src/asn/ngap/ASN_NGAP_NGSetupRequest.h | 44 + src/asn/ngap/ASN_NGAP_NGSetupResponse.c | 50 + src/asn/ngap/ASN_NGAP_NGSetupResponse.h | 44 + src/asn/ngap/ASN_NGAP_NID.c | 67 + src/asn/ngap/ASN_NGAP_NID.h | 44 + src/asn/ngap/ASN_NGAP_NPN-AccessInformation.c | 64 + src/asn/ngap/ASN_NGAP_NPN-AccessInformation.h | 55 + .../ngap/ASN_NGAP_NPN-MobilityInformation.c | 75 + .../ngap/ASN_NGAP_NPN-MobilityInformation.h | 58 + ...ASN_NGAP_NPN-PagingAssistanceInformation.c | 64 + ...ASN_NGAP_NPN-PagingAssistanceInformation.h | 55 + src/asn/ngap/ASN_NGAP_NPN-Support.c | 63 + src/asn/ngap/ASN_NGAP_NPN-Support.h | 55 + src/asn/ngap/ASN_NGAP_NR-CGI.c | 73 + src/asn/ngap/ASN_NGAP_NR-CGI.h | 50 + src/asn/ngap/ASN_NGAP_NR-CGIList.c | 50 + src/asn/ngap/ASN_NGAP_NR-CGIList.h | 44 + src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.c | 50 + src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.h | 44 + src/asn/ngap/ASN_NGAP_NR-PCI.c | 61 + src/asn/ngap/ASN_NGAP_NR-PCI.h | 44 + src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.c | 115 + src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.h | 84 + src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c | 77 + src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h | 65 + .../ngap/ASN_NGAP_NR-PagingeDRXInformation.c | 73 + .../ngap/ASN_NGAP_NR-PagingeDRXInformation.h | 50 + src/asn/ngap/ASN_NGAP_NRARFCN.c | 61 + src/asn/ngap/ASN_NGAP_NRARFCN.h | 44 + src/asn/ngap/ASN_NGAP_NRCellIdentity.c | 67 + src/asn/ngap/ASN_NGAP_NRCellIdentity.h | 44 + src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.c | 50 + src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.h | 44 + src/asn/ngap/ASN_NGAP_NRFrequencyBand.c | 61 + src/asn/ngap/ASN_NGAP_NRFrequencyBand.h | 44 + src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.c | 63 + src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.h | 48 + src/asn/ngap/ASN_NGAP_NRFrequencyInfo.c | 73 + src/asn/ngap/ASN_NGAP_NRFrequencyInfo.h | 50 + .../ngap/ASN_NGAP_NRMobilityHistoryReport.c | 31 + .../ngap/ASN_NGAP_NRMobilityHistoryReport.h | 43 + src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.c | 83 + src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.h | 52 + src/asn/ngap/ASN_NGAP_NRPPa-PDU.c | 31 + src/asn/ngap/ASN_NGAP_NRPPa-PDU.h | 43 + .../ngap/ASN_NGAP_NRUERLFReportContainer.c | 31 + .../ngap/ASN_NGAP_NRUERLFReportContainer.h | 43 + ...NGAP_NRUESidelinkAggregateMaximumBitrate.c | 63 + ...NGAP_NRUESidelinkAggregateMaximumBitrate.h | 48 + .../ngap/ASN_NGAP_NRV2XServicesAuthorized.c | 73 + .../ngap/ASN_NGAP_NRV2XServicesAuthorized.h | 50 + .../ngap/ASN_NGAP_NRencryptionAlgorithms.c | 67 + .../ngap/ASN_NGAP_NRencryptionAlgorithms.h | 44 + ...ASN_NGAP_NRintegrityProtectionAlgorithms.c | 67 + ...ASN_NGAP_NRintegrityProtectionAlgorithms.h | 44 + src/asn/ngap/ASN_NGAP_NSAG-ID.c | 61 + src/asn/ngap/ASN_NGAP_NSAG-ID.h | 44 + src/asn/ngap/ASN_NGAP_NetworkInstance.c | 61 + src/asn/ngap/ASN_NGAP_NetworkInstance.h | 44 + src/asn/ngap/ASN_NGAP_NewSecurityContextInd.c | 53 + src/asn/ngap/ASN_NGAP_NewSecurityContextInd.h | 53 + src/asn/ngap/ASN_NGAP_NextHopChainingCount.c | 61 + src/asn/ngap/ASN_NGAP_NextHopChainingCount.h | 44 + src/asn/ngap/ASN_NGAP_NextPagingAreaScope.c | 55 + src/asn/ngap/ASN_NGAP_NextPagingAreaScope.h | 54 + src/asn/ngap/ASN_NGAP_NgENB-ID.c | 191 + src/asn/ngap/ASN_NGAP_NgENB-ID.h | 59 + .../ngap/ASN_NGAP_NonDynamic5QIDescriptor.c | 93 + .../ngap/ASN_NGAP_NonDynamic5QIDescriptor.h | 54 + src/asn/ngap/ASN_NGAP_NotAllowedTACs.c | 49 + src/asn/ngap/ASN_NGAP_NotAllowedTACs.h | 42 + src/asn/ngap/ASN_NGAP_NotificationCause.c | 55 + src/asn/ngap/ASN_NGAP_NotificationCause.h | 54 + src/asn/ngap/ASN_NGAP_NotificationCell-Item.c | 121 + src/asn/ngap/ASN_NGAP_NotificationCell-Item.h | 60 + src/asn/ngap/ASN_NGAP_NotificationCellList.c | 50 + src/asn/ngap/ASN_NGAP_NotificationCellList.h | 44 + src/asn/ngap/ASN_NGAP_NotificationControl.c | 53 + src/asn/ngap/ASN_NGAP_NotificationControl.h | 53 + src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.c | 53 + src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.h | 53 + src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.c | 61 + src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.h | 44 + .../ASN_NGAP_NumberOfBroadcastsRequested.c | 61 + .../ASN_NGAP_NumberOfBroadcastsRequested.h | 44 + ..._NGAP_NumberOfMeasurementReportingLevels.c | 63 + ..._NGAP_NumberOfMeasurementReportingLevels.h | 58 + src/asn/ngap/ASN_NGAP_OnboardingSupport.c | 53 + src/asn/ngap/ASN_NGAP_OnboardingSupport.h | 53 + src/asn/ngap/ASN_NGAP_OverloadAction.c | 59 + src/asn/ngap/ASN_NGAP_OverloadAction.h | 56 + src/asn/ngap/ASN_NGAP_OverloadResponse.c | 63 + src/asn/ngap/ASN_NGAP_OverloadResponse.h | 55 + src/asn/ngap/ASN_NGAP_OverloadStart.c | 50 + src/asn/ngap/ASN_NGAP_OverloadStart.h | 44 + .../ngap/ASN_NGAP_OverloadStartNSSAIItem.c | 84 + .../ngap/ASN_NGAP_OverloadStartNSSAIItem.h | 52 + .../ngap/ASN_NGAP_OverloadStartNSSAIList.c | 50 + .../ngap/ASN_NGAP_OverloadStartNSSAIList.h | 44 + src/asn/ngap/ASN_NGAP_OverloadStop.c | 50 + src/asn/ngap/ASN_NGAP_OverloadStop.h | 44 + src/asn/ngap/ASN_NGAP_PC5FlowBitRates.c | 73 + src/asn/ngap/ASN_NGAP_PC5FlowBitRates.h | 49 + src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.c | 84 + src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.h | 52 + src/asn/ngap/ASN_NGAP_PC5QoSFlowList.c | 50 + src/asn/ngap/ASN_NGAP_PC5QoSFlowList.h | 44 + src/asn/ngap/ASN_NGAP_PC5QoSParameters.c | 73 + src/asn/ngap/ASN_NGAP_PC5QoSParameters.h | 50 + src/asn/ngap/ASN_NGAP_PCIListForMDT.c | 49 + src/asn/ngap/ASN_NGAP_PCIListForMDT.h | 42 + ...N_NGAP_PDUSessionAggregateMaximumBitRate.c | 73 + ...N_NGAP_PDUSessionAggregateMaximumBitRate.h | 49 + src/asn/ngap/ASN_NGAP_PDUSessionID.c | 61 + src/asn/ngap/ASN_NGAP_PDUSessionID.h | 44 + src/asn/ngap/ASN_NGAP_PDUSessionPairID.c | 61 + src/asn/ngap/ASN_NGAP_PDUSessionPairID.h | 44 + .../ASN_NGAP_PDUSessionResourceAdmittedItem.c | 99 + .../ASN_NGAP_PDUSessionResourceAdmittedItem.h | 50 + .../ASN_NGAP_PDUSessionResourceAdmittedList.c | 50 + .../ASN_NGAP_PDUSessionResourceAdmittedList.h | 44 + ...USessionResourceFailedToModifyItemModCfm.c | 99 + ...USessionResourceFailedToModifyItemModCfm.h | 50 + ...USessionResourceFailedToModifyItemModRes.c | 99 + ...USessionResourceFailedToModifyItemModRes.h | 50 + ...USessionResourceFailedToModifyListModCfm.c | 50 + ...USessionResourceFailedToModifyListModCfm.h | 44 + ...USessionResourceFailedToModifyListModRes.c | 50 + ...USessionResourceFailedToModifyListModRes.h | 44 + ...USessionResourceFailedToResumeItemRESReq.c | 73 + ...USessionResourceFailedToResumeItemRESReq.h | 50 + ...USessionResourceFailedToResumeItemRESRes.c | 73 + ...USessionResourceFailedToResumeItemRESRes.h | 50 + ...USessionResourceFailedToResumeListRESReq.c | 50 + ...USessionResourceFailedToResumeListRESReq.h | 44 + ...USessionResourceFailedToResumeListRESRes.c | 50 + ...USessionResourceFailedToResumeListRESRes.h | 44 + ...USessionResourceFailedToSetupItemCxtFail.c | 99 + ...USessionResourceFailedToSetupItemCxtFail.h | 50 + ...DUSessionResourceFailedToSetupItemCxtRes.c | 99 + ...DUSessionResourceFailedToSetupItemCxtRes.h | 50 + ...PDUSessionResourceFailedToSetupItemHOAck.c | 99 + ...PDUSessionResourceFailedToSetupItemHOAck.h | 50 + ...PDUSessionResourceFailedToSetupItemPSReq.c | 99 + ...PDUSessionResourceFailedToSetupItemPSReq.h | 50 + ...PDUSessionResourceFailedToSetupItemSURes.c | 99 + ...PDUSessionResourceFailedToSetupItemSURes.h | 50 + ...USessionResourceFailedToSetupListCxtFail.c | 50 + ...USessionResourceFailedToSetupListCxtFail.h | 44 + ...DUSessionResourceFailedToSetupListCxtRes.c | 50 + ...DUSessionResourceFailedToSetupListCxtRes.h | 44 + ...PDUSessionResourceFailedToSetupListHOAck.c | 50 + ...PDUSessionResourceFailedToSetupListHOAck.h | 44 + ...PDUSessionResourceFailedToSetupListPSReq.c | 50 + ...PDUSessionResourceFailedToSetupListPSReq.h | 44 + ...PDUSessionResourceFailedToSetupListSURes.c | 50 + ...PDUSessionResourceFailedToSetupListSURes.h | 44 + .../ASN_NGAP_PDUSessionResourceHandoverItem.c | 99 + .../ASN_NGAP_PDUSessionResourceHandoverItem.h | 50 + .../ASN_NGAP_PDUSessionResourceHandoverList.c | 50 + .../ASN_NGAP_PDUSessionResourceHandoverList.h | 44 + ...N_NGAP_PDUSessionResourceInformationItem.c | 84 + ...N_NGAP_PDUSessionResourceInformationItem.h | 52 + ...N_NGAP_PDUSessionResourceInformationList.c | 50 + ...N_NGAP_PDUSessionResourceInformationList.h | 44 + ...ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c | 63 + ...ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h | 48 + ...ASN_NGAP_PDUSessionResourceItemCxtRelReq.c | 63 + ...ASN_NGAP_PDUSessionResourceItemCxtRelReq.h | 48 + .../ASN_NGAP_PDUSessionResourceItemHORqd.c | 99 + .../ASN_NGAP_PDUSessionResourceItemHORqd.h | 50 + ...ASN_NGAP_PDUSessionResourceListCxtRelCpl.c | 50 + ...ASN_NGAP_PDUSessionResourceListCxtRelCpl.h | 44 + ...ASN_NGAP_PDUSessionResourceListCxtRelReq.c | 50 + ...ASN_NGAP_PDUSessionResourceListCxtRelReq.h | 44 + .../ASN_NGAP_PDUSessionResourceListHORqd.c | 50 + .../ASN_NGAP_PDUSessionResourceListHORqd.h | 44 + ...ASN_NGAP_PDUSessionResourceModifyConfirm.c | 50 + ...ASN_NGAP_PDUSessionResourceModifyConfirm.h | 44 + ..._PDUSessionResourceModifyConfirmTransfer.c | 95 + ..._PDUSessionResourceModifyConfirmTransfer.h | 52 + ..._NGAP_PDUSessionResourceModifyIndication.c | 50 + ..._NGAP_PDUSessionResourceModifyIndication.h | 44 + ...USessionResourceModifyIndicationTransfer.c | 74 + ...USessionResourceModifyIndicationTransfer.h | 48 + ...urceModifyIndicationUnsuccessfulTransfer.c | 63 + ...urceModifyIndicationUnsuccessfulTransfer.h | 46 + ..._NGAP_PDUSessionResourceModifyItemModCfm.c | 99 + ..._NGAP_PDUSessionResourceModifyItemModCfm.h | 50 + ..._NGAP_PDUSessionResourceModifyItemModInd.c | 99 + ..._NGAP_PDUSessionResourceModifyItemModInd.h | 50 + ..._NGAP_PDUSessionResourceModifyItemModReq.c | 109 + ..._NGAP_PDUSessionResourceModifyItemModReq.h | 52 + ..._NGAP_PDUSessionResourceModifyItemModRes.c | 99 + ..._NGAP_PDUSessionResourceModifyItemModRes.h | 50 + ..._NGAP_PDUSessionResourceModifyListModCfm.c | 50 + ..._NGAP_PDUSessionResourceModifyListModCfm.h | 44 + ..._NGAP_PDUSessionResourceModifyListModInd.c | 50 + ..._NGAP_PDUSessionResourceModifyListModInd.h | 44 + ..._NGAP_PDUSessionResourceModifyListModReq.c | 50 + ..._NGAP_PDUSessionResourceModifyListModReq.h | 44 + ..._NGAP_PDUSessionResourceModifyListModRes.c | 50 + ..._NGAP_PDUSessionResourceModifyListModRes.h | 44 + ...ASN_NGAP_PDUSessionResourceModifyRequest.c | 50 + ...ASN_NGAP_PDUSessionResourceModifyRequest.h | 44 + ..._PDUSessionResourceModifyRequestTransfer.c | 50 + ..._PDUSessionResourceModifyRequestTransfer.h | 42 + ...SN_NGAP_PDUSessionResourceModifyResponse.c | 50 + ...SN_NGAP_PDUSessionResourceModifyResponse.h | 44 + ...PDUSessionResourceModifyResponseTransfer.c | 107 + ...PDUSessionResourceModifyResponseTransfer.h | 53 + ...essionResourceModifyUnsuccessfulTransfer.c | 74 + ...essionResourceModifyUnsuccessfulTransfer.h | 48 + .../ngap/ASN_NGAP_PDUSessionResourceNotify.c | 50 + .../ngap/ASN_NGAP_PDUSessionResourceNotify.h | 44 + .../ASN_NGAP_PDUSessionResourceNotifyItem.c | 99 + .../ASN_NGAP_PDUSessionResourceNotifyItem.h | 50 + .../ASN_NGAP_PDUSessionResourceNotifyList.c | 50 + .../ASN_NGAP_PDUSessionResourceNotifyList.h | 44 + ...PDUSessionResourceNotifyReleasedTransfer.c | 63 + ...PDUSessionResourceNotifyReleasedTransfer.h | 46 + ...SN_NGAP_PDUSessionResourceNotifyTransfer.c | 75 + ...SN_NGAP_PDUSessionResourceNotifyTransfer.h | 48 + ...SN_NGAP_PDUSessionResourceReleaseCommand.c | 50 + ...SN_NGAP_PDUSessionResourceReleaseCommand.h | 44 + ...PDUSessionResourceReleaseCommandTransfer.c | 63 + ...PDUSessionResourceReleaseCommandTransfer.h | 46 + ...N_NGAP_PDUSessionResourceReleaseResponse.c | 50 + ...N_NGAP_PDUSessionResourceReleaseResponse.h | 44 + ...DUSessionResourceReleaseResponseTransfer.c | 53 + ...DUSessionResourceReleaseResponseTransfer.h | 44 + ...N_NGAP_PDUSessionResourceReleasedItemNot.c | 99 + ...N_NGAP_PDUSessionResourceReleasedItemNot.h | 50 + ...NGAP_PDUSessionResourceReleasedItemPSAck.c | 99 + ...NGAP_PDUSessionResourceReleasedItemPSAck.h | 50 + ...GAP_PDUSessionResourceReleasedItemPSFail.c | 99 + ...GAP_PDUSessionResourceReleasedItemPSFail.h | 50 + ...GAP_PDUSessionResourceReleasedItemRelRes.c | 99 + ...GAP_PDUSessionResourceReleasedItemRelRes.h | 50 + ...N_NGAP_PDUSessionResourceReleasedListNot.c | 50 + ...N_NGAP_PDUSessionResourceReleasedListNot.h | 44 + ...NGAP_PDUSessionResourceReleasedListPSAck.c | 50 + ...NGAP_PDUSessionResourceReleasedListPSAck.h | 44 + ...GAP_PDUSessionResourceReleasedListPSFail.c | 50 + ...GAP_PDUSessionResourceReleasedListPSFail.h | 44 + ...GAP_PDUSessionResourceReleasedListRelRes.c | 50 + ...GAP_PDUSessionResourceReleasedListRelRes.h | 44 + ..._NGAP_PDUSessionResourceResumeItemRESReq.c | 99 + ..._NGAP_PDUSessionResourceResumeItemRESReq.h | 50 + ..._NGAP_PDUSessionResourceResumeItemRESRes.c | 99 + ..._NGAP_PDUSessionResourceResumeItemRESRes.h | 50 + ..._NGAP_PDUSessionResourceResumeListRESReq.c | 50 + ..._NGAP_PDUSessionResourceResumeListRESReq.h | 44 + ..._NGAP_PDUSessionResourceResumeListRESRes.c | 50 + ..._NGAP_PDUSessionResourceResumeListRESRes.h | 44 + ..._PDUSessionResourceSecondaryRATUsageItem.c | 99 + ..._PDUSessionResourceSecondaryRATUsageItem.h | 50 + ..._PDUSessionResourceSecondaryRATUsageList.c | 50 + ..._PDUSessionResourceSecondaryRATUsageList.h | 44 + ...N_NGAP_PDUSessionResourceSetupItemCxtReq.c | 119 + ...N_NGAP_PDUSessionResourceSetupItemCxtReq.h | 54 + ...N_NGAP_PDUSessionResourceSetupItemCxtRes.c | 99 + ...N_NGAP_PDUSessionResourceSetupItemCxtRes.h | 50 + ...SN_NGAP_PDUSessionResourceSetupItemHOReq.c | 109 + ...SN_NGAP_PDUSessionResourceSetupItemHOReq.h | 52 + ...SN_NGAP_PDUSessionResourceSetupItemSUReq.c | 119 + ...SN_NGAP_PDUSessionResourceSetupItemSUReq.h | 54 + ...SN_NGAP_PDUSessionResourceSetupItemSURes.c | 99 + ...SN_NGAP_PDUSessionResourceSetupItemSURes.h | 50 + ...N_NGAP_PDUSessionResourceSetupListCxtReq.c | 50 + ...N_NGAP_PDUSessionResourceSetupListCxtReq.h | 44 + ...N_NGAP_PDUSessionResourceSetupListCxtRes.c | 50 + ...N_NGAP_PDUSessionResourceSetupListCxtRes.h | 44 + ...SN_NGAP_PDUSessionResourceSetupListHOReq.c | 50 + ...SN_NGAP_PDUSessionResourceSetupListHOReq.h | 44 + ...SN_NGAP_PDUSessionResourceSetupListSUReq.c | 50 + ...SN_NGAP_PDUSessionResourceSetupListSUReq.h | 44 + ...SN_NGAP_PDUSessionResourceSetupListSURes.c | 50 + ...SN_NGAP_PDUSessionResourceSetupListSURes.h | 44 + .../ASN_NGAP_PDUSessionResourceSetupRequest.c | 50 + .../ASN_NGAP_PDUSessionResourceSetupRequest.h | 44 + ...P_PDUSessionResourceSetupRequestTransfer.c | 50 + ...P_PDUSessionResourceSetupRequestTransfer.h | 42 + ...ASN_NGAP_PDUSessionResourceSetupResponse.c | 50 + ...ASN_NGAP_PDUSessionResourceSetupResponse.h | 44 + ..._PDUSessionResourceSetupResponseTransfer.c | 96 + ..._PDUSessionResourceSetupResponseTransfer.h | 52 + ...SessionResourceSetupUnsuccessfulTransfer.c | 74 + ...SessionResourceSetupUnsuccessfulTransfer.h | 48 + ...NGAP_PDUSessionResourceSuspendItemSUSReq.c | 99 + ...NGAP_PDUSessionResourceSuspendItemSUSReq.h | 50 + ...NGAP_PDUSessionResourceSuspendListSUSReq.c | 50 + ...NGAP_PDUSessionResourceSuspendListSUSReq.h | 44 + .../ASN_NGAP_PDUSessionResourceSwitchedItem.c | 99 + .../ASN_NGAP_PDUSessionResourceSwitchedItem.h | 50 + .../ASN_NGAP_PDUSessionResourceSwitchedList.c | 50 + .../ASN_NGAP_PDUSessionResourceSwitchedList.h | 44 + ...GAP_PDUSessionResourceToBeSwitchedDLItem.c | 99 + ...GAP_PDUSessionResourceToBeSwitchedDLItem.h | 50 + ...GAP_PDUSessionResourceToBeSwitchedDLList.c | 50 + ...GAP_PDUSessionResourceToBeSwitchedDLList.h | 44 + ...GAP_PDUSessionResourceToReleaseItemHOCmd.c | 99 + ...GAP_PDUSessionResourceToReleaseItemHOCmd.h | 50 + ...AP_PDUSessionResourceToReleaseItemRelCmd.c | 99 + ...AP_PDUSessionResourceToReleaseItemRelCmd.h | 50 + ...GAP_PDUSessionResourceToReleaseListHOCmd.c | 50 + ...GAP_PDUSessionResourceToReleaseListHOCmd.h | 44 + ...AP_PDUSessionResourceToReleaseListRelCmd.c | 50 + ...AP_PDUSessionResourceToReleaseListRelCmd.h | 44 + src/asn/ngap/ASN_NGAP_PDUSessionType.c | 61 + src/asn/ngap/ASN_NGAP_PDUSessionType.h | 57 + src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.c | 125 + src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.h | 62 + .../ASN_NGAP_PEIPSassistanceInformation.c | 63 + .../ASN_NGAP_PEIPSassistanceInformation.h | 48 + src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.c | 63 + src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.h | 48 + src/asn/ngap/ASN_NGAP_PLMNIdentity.c | 62 + src/asn/ngap/ASN_NGAP_PLMNIdentity.h | 44 + src/asn/ngap/ASN_NGAP_PLMNListforQMC.c | 49 + src/asn/ngap/ASN_NGAP_PLMNListforQMC.h | 42 + src/asn/ngap/ASN_NGAP_PLMNSupportItem.c | 73 + src/asn/ngap/ASN_NGAP_PLMNSupportItem.h | 50 + src/asn/ngap/ASN_NGAP_PLMNSupportList.c | 50 + src/asn/ngap/ASN_NGAP_PLMNSupportList.h | 44 + .../ASN_NGAP_PNI-NPN-MobilityInformation.c | 63 + .../ASN_NGAP_PNI-NPN-MobilityInformation.h | 48 + src/asn/ngap/ASN_NGAP_PWSCancelRequest.c | 50 + src/asn/ngap/ASN_NGAP_PWSCancelRequest.h | 44 + src/asn/ngap/ASN_NGAP_PWSCancelResponse.c | 50 + src/asn/ngap/ASN_NGAP_PWSCancelResponse.h | 44 + src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.c | 75 + src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.h | 58 + src/asn/ngap/ASN_NGAP_PWSFailureIndication.c | 50 + src/asn/ngap/ASN_NGAP_PWSFailureIndication.h | 44 + src/asn/ngap/ASN_NGAP_PWSRestartIndication.c | 50 + src/asn/ngap/ASN_NGAP_PWSRestartIndication.h | 44 + src/asn/ngap/ASN_NGAP_PacketDelayBudget.c | 61 + src/asn/ngap/ASN_NGAP_PacketDelayBudget.h | 44 + src/asn/ngap/ASN_NGAP_PacketErrorRate.c | 133 + src/asn/ngap/ASN_NGAP_PacketErrorRate.h | 49 + src/asn/ngap/ASN_NGAP_PacketLossRate.c | 61 + src/asn/ngap/ASN_NGAP_PacketLossRate.h | 44 + src/asn/ngap/ASN_NGAP_Paging.c | 50 + src/asn/ngap/ASN_NGAP_Paging.h | 44 + .../ASN_NGAP_PagingAssisDataforCEcapabUE.c | 73 + .../ASN_NGAP_PagingAssisDataforCEcapabUE.h | 50 + src/asn/ngap/ASN_NGAP_PagingAttemptCount.c | 61 + src/asn/ngap/ASN_NGAP_PagingAttemptCount.h | 44 + .../ngap/ASN_NGAP_PagingAttemptInformation.c | 83 + .../ngap/ASN_NGAP_PagingAttemptInformation.h | 52 + src/asn/ngap/ASN_NGAP_PagingCause.c | 53 + src/asn/ngap/ASN_NGAP_PagingCause.h | 53 + ...GAP_PagingCauseIndicationForVoiceService.c | 53 + ...GAP_PagingCauseIndicationForVoiceService.h | 53 + src/asn/ngap/ASN_NGAP_PagingDRX.c | 59 + src/asn/ngap/ASN_NGAP_PagingDRX.h | 56 + src/asn/ngap/ASN_NGAP_PagingOrigin.c | 53 + src/asn/ngap/ASN_NGAP_PagingOrigin.h | 53 + src/asn/ngap/ASN_NGAP_PagingPriority.c | 67 + src/asn/ngap/ASN_NGAP_PagingPriority.h | 60 + .../ASN_NGAP_PagingProbabilityInformation.c | 93 + .../ASN_NGAP_PagingProbabilityInformation.h | 73 + src/asn/ngap/ASN_NGAP_PathSwitchRequest.c | 50 + src/asn/ngap/ASN_NGAP_PathSwitchRequest.h | 44 + .../ASN_NGAP_PathSwitchRequestAcknowledge.c | 50 + .../ASN_NGAP_PathSwitchRequestAcknowledge.h | 44 + ...GAP_PathSwitchRequestAcknowledgeTransfer.c | 75 + ...GAP_PathSwitchRequestAcknowledgeTransfer.h | 48 + .../ngap/ASN_NGAP_PathSwitchRequestFailure.c | 50 + .../ngap/ASN_NGAP_PathSwitchRequestFailure.h | 44 + ...GAP_PathSwitchRequestSetupFailedTransfer.c | 63 + ...GAP_PathSwitchRequestSetupFailedTransfer.h | 46 + .../ngap/ASN_NGAP_PathSwitchRequestTransfer.c | 94 + .../ngap/ASN_NGAP_PathSwitchRequestTransfer.h | 52 + ...AP_PathSwitchRequestUnsuccessfulTransfer.c | 63 + ...AP_PathSwitchRequestUnsuccessfulTransfer.h | 46 + src/asn/ngap/ASN_NGAP_PedestrianUE.c | 55 + src/asn/ngap/ASN_NGAP_PedestrianUE.h | 54 + ...ASN_NGAP_PeriodicRegistrationUpdateTimer.c | 67 + ...ASN_NGAP_PeriodicRegistrationUpdateTimer.h | 44 + src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.c | 63 + src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.h | 48 + src/asn/ngap/ASN_NGAP_Periodicity.c | 61 + src/asn/ngap/ASN_NGAP_Periodicity.h | 44 + src/asn/ngap/ASN_NGAP_PortNumber.c | 62 + src/asn/ngap/ASN_NGAP_PortNumber.h | 44 + src/asn/ngap/ASN_NGAP_Pre-emptionCapability.c | 55 + src/asn/ngap/ASN_NGAP_Pre-emptionCapability.h | 54 + .../ngap/ASN_NGAP_Pre-emptionVulnerability.c | 55 + .../ngap/ASN_NGAP_Pre-emptionVulnerability.h | 54 + src/asn/ngap/ASN_NGAP_Presence.c | 55 + src/asn/ngap/ASN_NGAP_Presence.h | 52 + src/asn/ngap/ASN_NGAP_PriorityLevelARP.c | 61 + src/asn/ngap/ASN_NGAP_PriorityLevelARP.h | 44 + src/asn/ngap/ASN_NGAP_PriorityLevelQos.c | 61 + src/asn/ngap/ASN_NGAP_PriorityLevelQos.h | 44 + src/asn/ngap/ASN_NGAP_PrivacyIndicator.c | 55 + src/asn/ngap/ASN_NGAP_PrivacyIndicator.h | 54 + src/asn/ngap/ASN_NGAP_PrivateIE-Container.c | 50 + src/asn/ngap/ASN_NGAP_PrivateIE-Container.h | 44 + src/asn/ngap/ASN_NGAP_PrivateIE-Field.c | 166 + src/asn/ngap/ASN_NGAP_PrivateIE-Field.h | 60 + src/asn/ngap/ASN_NGAP_PrivateIE-ID.c | 92 + src/asn/ngap/ASN_NGAP_PrivateIE-ID.h | 53 + src/asn/ngap/ASN_NGAP_PrivateMessage.c | 50 + src/asn/ngap/ASN_NGAP_PrivateMessage.h | 44 + src/asn/ngap/ASN_NGAP_ProcedureCode.c | 61 + src/asn/ngap/ASN_NGAP_ProcedureCode.h | 120 + src/asn/ngap/ASN_NGAP_ProcedureStageChoice.c | 64 + src/asn/ngap/ASN_NGAP_ProcedureStageChoice.h | 55 + .../ASN_NGAP_ProtocolExtensionContainer.c | 15050 ++++ .../ASN_NGAP_ProtocolExtensionContainer.h | 4169 + .../ngap/ASN_NGAP_ProtocolExtensionField.c | 68198 ++++++++++++++++ .../ngap/ASN_NGAP_ProtocolExtensionField.h | 8641 ++ src/asn/ngap/ASN_NGAP_ProtocolExtensionID.c | 61 + src/asn/ngap/ASN_NGAP_ProtocolExtensionID.h | 44 + src/asn/ngap/ASN_NGAP_ProtocolIE-Container.c | 4930 ++ src/asn/ngap/ASN_NGAP_ProtocolIE-Container.h | 1386 + .../ngap/ASN_NGAP_ProtocolIE-ContainerList.c | 9 + .../ngap/ASN_NGAP_ProtocolIE-ContainerList.h | 23 + .../ngap/ASN_NGAP_ProtocolIE-ContainerPair.c | 9 + .../ngap/ASN_NGAP_ProtocolIE-ContainerPair.h | 23 + .../ASN_NGAP_ProtocolIE-ContainerPairList.c | 9 + .../ASN_NGAP_ProtocolIE-ContainerPairList.h | 23 + src/asn/ngap/ASN_NGAP_ProtocolIE-Field.c | 51633 ++++++++++++ src/asn/ngap/ASN_NGAP_ProtocolIE-Field.h | 5682 ++ src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.c | 9 + src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.h | 23 + src/asn/ngap/ASN_NGAP_ProtocolIE-ID.c | 61 + src/asn/ngap/ASN_NGAP_ProtocolIE-ID.h | 405 + .../ASN_NGAP_ProtocolIE-SingleContainer.c | 1481 + .../ASN_NGAP_ProtocolIE-SingleContainer.h | 862 + src/asn/ngap/ASN_NGAP_QMCConfigInfo.c | 63 + src/asn/ngap/ASN_NGAP_QMCConfigInfo.h | 48 + src/asn/ngap/ASN_NGAP_QMCDeactivation.c | 63 + src/asn/ngap/ASN_NGAP_QMCDeactivation.h | 48 + src/asn/ngap/ASN_NGAP_QoEReference.c | 62 + src/asn/ngap/ASN_NGAP_QoEReference.h | 44 + src/asn/ngap/ASN_NGAP_QoEReferenceList.c | 49 + src/asn/ngap/ASN_NGAP_QoEReferenceList.h | 42 + src/asn/ngap/ASN_NGAP_QoSFlowList.c | 49 + src/asn/ngap/ASN_NGAP_QoSFlowList.h | 39 + .../ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c | 135 + .../ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h | 64 + .../ngap/ASN_NGAP_QoSFlowsUsageReportList.c | 50 + .../ngap/ASN_NGAP_QoSFlowsUsageReportList.h | 44 + src/asn/ngap/ASN_NGAP_QosCharacteristics.c | 75 + src/asn/ngap/ASN_NGAP_QosCharacteristics.h | 58 + src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.c | 63 + src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.h | 48 + src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.c | 50 + src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.h | 44 + .../ASN_NGAP_QosFlowAddOrModifyRequestItem.c | 84 + .../ASN_NGAP_QosFlowAddOrModifyRequestItem.h | 52 + .../ASN_NGAP_QosFlowAddOrModifyRequestList.c | 50 + .../ASN_NGAP_QosFlowAddOrModifyRequestList.h | 44 + .../ASN_NGAP_QosFlowAddOrModifyResponseItem.c | 63 + .../ASN_NGAP_QosFlowAddOrModifyResponseItem.h | 48 + .../ASN_NGAP_QosFlowAddOrModifyResponseList.c | 50 + .../ASN_NGAP_QosFlowAddOrModifyResponseList.h | 44 + src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.c | 93 + src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.h | 53 + src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.c | 50 + src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.h | 44 + src/asn/ngap/ASN_NGAP_QosFlowIdentifier.c | 61 + src/asn/ngap/ASN_NGAP_QosFlowIdentifier.h | 44 + .../ngap/ASN_NGAP_QosFlowInformationItem.c | 73 + .../ngap/ASN_NGAP_QosFlowInformationItem.h | 50 + .../ngap/ASN_NGAP_QosFlowInformationList.c | 50 + .../ngap/ASN_NGAP_QosFlowInformationList.h | 44 + .../ASN_NGAP_QosFlowItemWithDataForwarding.c | 73 + .../ASN_NGAP_QosFlowItemWithDataForwarding.h | 50 + .../ngap/ASN_NGAP_QosFlowLevelQosParameters.c | 104 + .../ngap/ASN_NGAP_QosFlowLevelQosParameters.h | 56 + src/asn/ngap/ASN_NGAP_QosFlowListWithCause.c | 50 + src/asn/ngap/ASN_NGAP_QosFlowListWithCause.h | 44 + .../ASN_NGAP_QosFlowListWithDataForwarding.c | 50 + .../ASN_NGAP_QosFlowListWithDataForwarding.h | 44 + .../ngap/ASN_NGAP_QosFlowModifyConfirmItem.c | 63 + .../ngap/ASN_NGAP_QosFlowModifyConfirmItem.h | 48 + .../ngap/ASN_NGAP_QosFlowModifyConfirmList.c | 50 + .../ngap/ASN_NGAP_QosFlowModifyConfirmList.h | 44 + src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.c | 73 + src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.h | 50 + src/asn/ngap/ASN_NGAP_QosFlowNotifyList.c | 50 + src/asn/ngap/ASN_NGAP_QosFlowNotifyList.h | 44 + src/asn/ngap/ASN_NGAP_QosFlowParametersItem.c | 74 + src/asn/ngap/ASN_NGAP_QosFlowParametersItem.h | 50 + src/asn/ngap/ASN_NGAP_QosFlowParametersList.c | 50 + src/asn/ngap/ASN_NGAP_QosFlowParametersList.h | 44 + .../ngap/ASN_NGAP_QosFlowPerTNLInformation.c | 73 + .../ngap/ASN_NGAP_QosFlowPerTNLInformation.h | 50 + .../ASN_NGAP_QosFlowPerTNLInformationItem.c | 63 + .../ASN_NGAP_QosFlowPerTNLInformationItem.h | 48 + .../ASN_NGAP_QosFlowPerTNLInformationList.c | 50 + .../ASN_NGAP_QosFlowPerTNLInformationList.h | 44 + .../ngap/ASN_NGAP_QosFlowSetupRequestItem.c | 83 + .../ngap/ASN_NGAP_QosFlowSetupRequestItem.h | 52 + .../ngap/ASN_NGAP_QosFlowSetupRequestList.c | 50 + .../ngap/ASN_NGAP_QosFlowSetupRequestList.h | 44 + .../ngap/ASN_NGAP_QosFlowToBeForwardedItem.c | 63 + .../ngap/ASN_NGAP_QosFlowToBeForwardedItem.h | 48 + .../ngap/ASN_NGAP_QosFlowToBeForwardedList.c | 50 + .../ngap/ASN_NGAP_QosFlowToBeForwardedList.h | 44 + src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.c | 73 + src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.h | 50 + ...ASN_NGAP_QosMonitoringReportingFrequency.c | 61 + ...ASN_NGAP_QosMonitoringReportingFrequency.h | 44 + src/asn/ngap/ASN_NGAP_QosMonitoringRequest.c | 59 + src/asn/ngap/ASN_NGAP_QosMonitoringRequest.h | 56 + src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.c | 57 + src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.h | 45 + .../ngap/ASN_NGAP_RANCPRelocationIndication.c | 50 + .../ngap/ASN_NGAP_RANCPRelocationIndication.h | 44 + .../ngap/ASN_NGAP_RANConfigurationUpdate.c | 50 + .../ngap/ASN_NGAP_RANConfigurationUpdate.h | 44 + ...N_NGAP_RANConfigurationUpdateAcknowledge.c | 50 + ...N_NGAP_RANConfigurationUpdateAcknowledge.h | 44 + .../ASN_NGAP_RANConfigurationUpdateFailure.c | 50 + .../ASN_NGAP_RANConfigurationUpdateFailure.h | 44 + src/asn/ngap/ASN_NGAP_RANNodeName.c | 106 + src/asn/ngap/ASN_NGAP_RANNodeName.h | 44 + src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.c | 68 + src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.h | 44 + .../ngap/ASN_NGAP_RANNodeNameVisibleString.c | 76 + .../ngap/ASN_NGAP_RANNodeNameVisibleString.h | 44 + src/asn/ngap/ASN_NGAP_RANPagingPriority.c | 61 + src/asn/ngap/ASN_NGAP_RANPagingPriority.h | 44 + ...P_RANStatusTransfer-TransparentContainer.c | 63 + ...P_RANStatusTransfer-TransparentContainer.h | 48 + src/asn/ngap/ASN_NGAP_RAT-Information.c | 63 + src/asn/ngap/ASN_NGAP_RAT-Information.h | 58 + .../ngap/ASN_NGAP_RATRestrictionInformation.c | 67 + .../ngap/ASN_NGAP_RATRestrictionInformation.h | 44 + src/asn/ngap/ASN_NGAP_RATRestrictions-Item.c | 73 + src/asn/ngap/ASN_NGAP_RATRestrictions-Item.h | 50 + src/asn/ngap/ASN_NGAP_RATRestrictions.c | 50 + src/asn/ngap/ASN_NGAP_RATRestrictions.h | 44 + ...GAP_RGLevelWirelineAccessCharacteristics.c | 31 + ...GAP_RGLevelWirelineAccessCharacteristics.h | 43 + src/asn/ngap/ASN_NGAP_RIMInformation.c | 121 + src/asn/ngap/ASN_NGAP_RIMInformation.h | 60 + .../ngap/ASN_NGAP_RIMInformationTransfer.c | 83 + .../ngap/ASN_NGAP_RIMInformationTransfer.h | 52 + src/asn/ngap/ASN_NGAP_RNC-ID.c | 61 + src/asn/ngap/ASN_NGAP_RNC-ID.h | 44 + src/asn/ngap/ASN_NGAP_RRCContainer.c | 31 + src/asn/ngap/ASN_NGAP_RRCContainer.h | 43 + src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.c | 75 + src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.h | 64 + .../ASN_NGAP_RRCInactiveTransitionReport.c | 50 + .../ASN_NGAP_RRCInactiveTransitionReport.h | 44 + ..._NGAP_RRCInactiveTransitionReportRequest.c | 57 + ..._NGAP_RRCInactiveTransitionReportRequest.h | 55 + src/asn/ngap/ASN_NGAP_RRCState.c | 55 + src/asn/ngap/ASN_NGAP_RRCState.h | 54 + src/asn/ngap/ASN_NGAP_RSN.c | 55 + src/asn/ngap/ASN_NGAP_RSN.h | 54 + src/asn/ngap/ASN_NGAP_Range.c | 69 + src/asn/ngap/ASN_NGAP_Range.h | 61 + src/asn/ngap/ASN_NGAP_RecommendedCellItem.c | 103 + src/asn/ngap/ASN_NGAP_RecommendedCellItem.h | 50 + src/asn/ngap/ASN_NGAP_RecommendedCellList.c | 50 + src/asn/ngap/ASN_NGAP_RecommendedCellList.h | 44 + .../ngap/ASN_NGAP_RecommendedCellsForPaging.c | 63 + .../ngap/ASN_NGAP_RecommendedCellsForPaging.h | 48 + .../ngap/ASN_NGAP_RecommendedRANNodeItem.c | 63 + .../ngap/ASN_NGAP_RecommendedRANNodeItem.h | 48 + .../ngap/ASN_NGAP_RecommendedRANNodeList.c | 50 + .../ngap/ASN_NGAP_RecommendedRANNodeList.h | 44 + .../ASN_NGAP_RecommendedRANNodesForPaging.c | 63 + .../ASN_NGAP_RecommendedRANNodesForPaging.h | 48 + src/asn/ngap/ASN_NGAP_RedCapIndication.c | 53 + src/asn/ngap/ASN_NGAP_RedCapIndication.h | 53 + .../ngap/ASN_NGAP_RedirectionVoiceFallback.c | 55 + .../ngap/ASN_NGAP_RedirectionVoiceFallback.h | 54 + .../ASN_NGAP_RedundantPDUSessionInformation.c | 63 + .../ASN_NGAP_RedundantPDUSessionInformation.h | 48 + .../ngap/ASN_NGAP_RedundantQosFlowIndicator.c | 53 + .../ngap/ASN_NGAP_RedundantQosFlowIndicator.h | 51 + .../ngap/ASN_NGAP_ReflectiveQosAttribute.c | 53 + .../ngap/ASN_NGAP_ReflectiveQosAttribute.h | 53 + src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.c | 62 + src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.h | 44 + src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.c | 62 + src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.h | 44 + src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.c | 61 + src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.h | 44 + src/asn/ngap/ASN_NGAP_RepetitionPeriod.c | 61 + src/asn/ngap/ASN_NGAP_RepetitionPeriod.h | 44 + src/asn/ngap/ASN_NGAP_ReportAmountMDT.c | 65 + src/asn/ngap/ASN_NGAP_ReportAmountMDT.h | 57 + src/asn/ngap/ASN_NGAP_ReportArea.c | 53 + src/asn/ngap/ASN_NGAP_ReportArea.h | 53 + src/asn/ngap/ASN_NGAP_ReportCharacteristics.c | 67 + src/asn/ngap/ASN_NGAP_ReportCharacteristics.h | 44 + src/asn/ngap/ASN_NGAP_ReportIntervalMDT.c | 75 + src/asn/ngap/ASN_NGAP_ReportIntervalMDT.h | 62 + src/asn/ngap/ASN_NGAP_ReportType.c | 75 + src/asn/ngap/ASN_NGAP_ReportType.h | 58 + src/asn/ngap/ASN_NGAP_ReportingPeriodicity.c | 63 + src/asn/ngap/ASN_NGAP_ReportingPeriodicity.h | 58 + src/asn/ngap/ASN_NGAP_ReportingSystem.c | 85 + src/asn/ngap/ASN_NGAP_ReportingSystem.h | 61 + src/asn/ngap/ASN_NGAP_RerouteNASRequest.c | 50 + src/asn/ngap/ASN_NGAP_RerouteNASRequest.h | 44 + src/asn/ngap/ASN_NGAP_ResetAll.c | 53 + src/asn/ngap/ASN_NGAP_ResetAll.h | 53 + src/asn/ngap/ASN_NGAP_ResetType.c | 74 + src/asn/ngap/ASN_NGAP_ResetType.h | 58 + .../ASN_NGAP_ResourceStatusReportingSystem.c | 75 + .../ASN_NGAP_ResourceStatusReportingSystem.h | 58 + src/asn/ngap/ASN_NGAP_RetrieveUEInformation.c | 50 + src/asn/ngap/ASN_NGAP_RetrieveUEInformation.h | 44 + src/asn/ngap/ASN_NGAP_RoutingID.c | 31 + src/asn/ngap/ASN_NGAP_RoutingID.h | 43 + src/asn/ngap/ASN_NGAP_S-NSSAI.c | 73 + src/asn/ngap/ASN_NGAP_S-NSSAI.h | 50 + src/asn/ngap/ASN_NGAP_SCTP-TLAs.c | 49 + src/asn/ngap/ASN_NGAP_SCTP-TLAs.h | 42 + src/asn/ngap/ASN_NGAP_SD.c | 62 + src/asn/ngap/ASN_NGAP_SD.h | 44 + .../ngap/ASN_NGAP_SNPN-MobilityInformation.c | 63 + .../ngap/ASN_NGAP_SNPN-MobilityInformation.h | 48 + .../ngap/ASN_NGAP_SONConfigurationTransfer.c | 94 + .../ngap/ASN_NGAP_SONConfigurationTransfer.h | 54 + src/asn/ngap/ASN_NGAP_SONInformation.c | 74 + src/asn/ngap/ASN_NGAP_SONInformation.h | 58 + src/asn/ngap/ASN_NGAP_SONInformationReply.c | 64 + src/asn/ngap/ASN_NGAP_SONInformationReply.h | 48 + src/asn/ngap/ASN_NGAP_SONInformationReport.c | 75 + src/asn/ngap/ASN_NGAP_SONInformationReport.h | 58 + src/asn/ngap/ASN_NGAP_SONInformationRequest.c | 53 + src/asn/ngap/ASN_NGAP_SONInformationRequest.h | 53 + .../ngap/ASN_NGAP_SRVCCOperationPossible.c | 55 + .../ngap/ASN_NGAP_SRVCCOperationPossible.h | 54 + src/asn/ngap/ASN_NGAP_SST.c | 62 + src/asn/ngap/ASN_NGAP_SST.h | 44 + .../ASN_NGAP_ScheduledCommunicationTime.c | 179 + .../ASN_NGAP_ScheduledCommunicationTime.h | 51 + .../ASN_NGAP_SecondaryRATDataUsageReport.c | 50 + .../ASN_NGAP_SecondaryRATDataUsageReport.h | 44 + ...NGAP_SecondaryRATDataUsageReportTransfer.c | 64 + ...NGAP_SecondaryRATDataUsageReportTransfer.h | 46 + .../ASN_NGAP_SecondaryRATUsageInformation.c | 75 + .../ASN_NGAP_SecondaryRATUsageInformation.h | 50 + src/asn/ngap/ASN_NGAP_SecurityContext.c | 73 + src/asn/ngap/ASN_NGAP_SecurityContext.h | 50 + src/asn/ngap/ASN_NGAP_SecurityIndication.c | 83 + src/asn/ngap/ASN_NGAP_SecurityIndication.h | 52 + src/asn/ngap/ASN_NGAP_SecurityKey.c | 67 + src/asn/ngap/ASN_NGAP_SecurityKey.h | 44 + src/asn/ngap/ASN_NGAP_SecurityResult.c | 73 + src/asn/ngap/ASN_NGAP_SecurityResult.h | 50 + src/asn/ngap/ASN_NGAP_SensorMeasConfig.c | 53 + src/asn/ngap/ASN_NGAP_SensorMeasConfig.h | 53 + .../ngap/ASN_NGAP_SensorMeasConfigNameItem.c | 63 + .../ngap/ASN_NGAP_SensorMeasConfigNameItem.h | 48 + .../ngap/ASN_NGAP_SensorMeasConfigNameList.c | 50 + .../ngap/ASN_NGAP_SensorMeasConfigNameList.h | 44 + .../ASN_NGAP_SensorMeasurementConfiguration.c | 74 + .../ASN_NGAP_SensorMeasurementConfiguration.h | 50 + src/asn/ngap/ASN_NGAP_SensorNameConfig.c | 221 + src/asn/ngap/ASN_NGAP_SensorNameConfig.h | 80 + src/asn/ngap/ASN_NGAP_SerialNumber.c | 67 + src/asn/ngap/ASN_NGAP_SerialNumber.h | 44 + src/asn/ngap/ASN_NGAP_ServedGUAMIItem.c | 73 + src/asn/ngap/ASN_NGAP_ServedGUAMIItem.h | 50 + src/asn/ngap/ASN_NGAP_ServedGUAMIList.c | 50 + src/asn/ngap/ASN_NGAP_ServedGUAMIList.h | 44 + .../ASN_NGAP_ServiceAreaInformation-Item.c | 85 + .../ASN_NGAP_ServiceAreaInformation-Item.h | 52 + .../ngap/ASN_NGAP_ServiceAreaInformation.c | 50 + .../ngap/ASN_NGAP_ServiceAreaInformation.h | 44 + src/asn/ngap/ASN_NGAP_ServiceType.c | 57 + src/asn/ngap/ASN_NGAP_ServiceType.h | 55 + src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c | 57 + src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h | 45 + ...N_NGAP_SharedNGU-MulticastTNLInformation.c | 83 + ...N_NGAP_SharedNGU-MulticastTNLInformation.h | 51 + src/asn/ngap/ASN_NGAP_SliceOverloadItem.c | 63 + src/asn/ngap/ASN_NGAP_SliceOverloadItem.h | 48 + src/asn/ngap/ASN_NGAP_SliceOverloadList.c | 50 + src/asn/ngap/ASN_NGAP_SliceOverloadList.h | 44 + src/asn/ngap/ASN_NGAP_SliceSupportItem.c | 63 + src/asn/ngap/ASN_NGAP_SliceSupportItem.h | 48 + src/asn/ngap/ASN_NGAP_SliceSupportList.c | 50 + src/asn/ngap/ASN_NGAP_SliceSupportList.h | 44 + src/asn/ngap/ASN_NGAP_SliceSupportListQMC.c | 50 + src/asn/ngap/ASN_NGAP_SliceSupportListQMC.h | 44 + src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.c | 63 + src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.h | 48 + ...e-ToTargetNGRANNode-TransparentContainer.c | 115 + ...e-ToTargetNGRANNode-TransparentContainer.h | 56 + src/asn/ngap/ASN_NGAP_SourceNodeID.c | 64 + src/asn/ngap/ASN_NGAP_SourceNodeID.h | 55 + ...P_SourceOfUEActivityBehaviourInformation.c | 55 + ...P_SourceOfUEActivityBehaviourInformation.h | 54 + src/asn/ngap/ASN_NGAP_SourceRANNodeID.c | 73 + src/asn/ngap/ASN_NGAP_SourceRANNodeID.h | 50 + ...GAP_SourceToTarget-AMFInformationReroute.c | 83 + ...GAP_SourceToTarget-AMFInformationReroute.h | 52 + ...NGAP_SourceToTarget-TransparentContainer.c | 31 + ...NGAP_SourceToTarget-TransparentContainer.h | 43 + .../ASN_NGAP_SuccessfulHandoverReport-Item.c | 63 + .../ASN_NGAP_SuccessfulHandoverReport-Item.h | 48 + .../ASN_NGAP_SuccessfulHandoverReportList.c | 50 + .../ASN_NGAP_SuccessfulHandoverReportList.h | 44 + src/asn/ngap/ASN_NGAP_SuccessfulOutcome.c | 1058 + src/asn/ngap/ASN_NGAP_SuccessfulOutcome.h | 237 + src/asn/ngap/ASN_NGAP_SupportedTAItem.c | 73 + src/asn/ngap/ASN_NGAP_SupportedTAItem.h | 50 + src/asn/ngap/ASN_NGAP_SupportedTAList.c | 50 + src/asn/ngap/ASN_NGAP_SupportedTAList.h | 44 + src/asn/ngap/ASN_NGAP_SurvivalTime.c | 61 + src/asn/ngap/ASN_NGAP_SurvivalTime.h | 44 + .../ASN_NGAP_Suspend-Request-Indication.c | 53 + .../ASN_NGAP_Suspend-Request-Indication.h | 53 + .../ASN_NGAP_Suspend-Response-Indication.c | 53 + .../ASN_NGAP_Suspend-Response-Indication.h | 53 + src/asn/ngap/ASN_NGAP_SuspendIndicator.c | 53 + src/asn/ngap/ASN_NGAP_SuspendIndicator.h | 53 + src/asn/ngap/ASN_NGAP_TABasedMDT.c | 63 + src/asn/ngap/ASN_NGAP_TABasedMDT.h | 48 + src/asn/ngap/ASN_NGAP_TABasedQMC.c | 63 + src/asn/ngap/ASN_NGAP_TABasedQMC.h | 48 + src/asn/ngap/ASN_NGAP_TAC.c | 62 + src/asn/ngap/ASN_NGAP_TAC.h | 44 + src/asn/ngap/ASN_NGAP_TACListInNRNTN.c | 49 + src/asn/ngap/ASN_NGAP_TACListInNRNTN.h | 42 + src/asn/ngap/ASN_NGAP_TAI.c | 73 + src/asn/ngap/ASN_NGAP_TAI.h | 50 + src/asn/ngap/ASN_NGAP_TAIBasedMDT.c | 63 + src/asn/ngap/ASN_NGAP_TAIBasedMDT.h | 48 + src/asn/ngap/ASN_NGAP_TAIBasedQMC.c | 63 + src/asn/ngap/ASN_NGAP_TAIBasedQMC.h | 48 + .../ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c | 73 + .../ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h | 50 + src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.c | 50 + src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.h | 44 + src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.c | 73 + src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.h | 50 + src/asn/ngap/ASN_NGAP_TAIBroadcastNR.c | 50 + src/asn/ngap/ASN_NGAP_TAIBroadcastNR.h | 44 + .../ngap/ASN_NGAP_TAICancelledEUTRA-Item.c | 73 + .../ngap/ASN_NGAP_TAICancelledEUTRA-Item.h | 50 + src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.c | 50 + src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.h | 44 + src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.c | 73 + src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.h | 50 + src/asn/ngap/ASN_NGAP_TAICancelledNR.c | 50 + src/asn/ngap/ASN_NGAP_TAICancelledNR.h | 44 + src/asn/ngap/ASN_NGAP_TAIListForInactive.c | 50 + src/asn/ngap/ASN_NGAP_TAIListForInactive.h | 44 + .../ngap/ASN_NGAP_TAIListForInactiveItem.c | 63 + .../ngap/ASN_NGAP_TAIListForInactiveItem.h | 48 + src/asn/ngap/ASN_NGAP_TAIListForPaging.c | 50 + src/asn/ngap/ASN_NGAP_TAIListForPaging.h | 44 + src/asn/ngap/ASN_NGAP_TAIListForPagingItem.c | 63 + src/asn/ngap/ASN_NGAP_TAIListForPagingItem.h | 48 + src/asn/ngap/ASN_NGAP_TAIListForRestart.c | 50 + src/asn/ngap/ASN_NGAP_TAIListForRestart.h | 44 + src/asn/ngap/ASN_NGAP_TAIListForWarning.c | 50 + src/asn/ngap/ASN_NGAP_TAIListForWarning.h | 44 + src/asn/ngap/ASN_NGAP_TAIListforMDT.c | 50 + src/asn/ngap/ASN_NGAP_TAIListforMDT.h | 44 + src/asn/ngap/ASN_NGAP_TAIListforQMC.c | 50 + src/asn/ngap/ASN_NGAP_TAIListforQMC.h | 44 + src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.c | 73 + src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.h | 50 + src/asn/ngap/ASN_NGAP_TAINSAGSupportList.c | 50 + src/asn/ngap/ASN_NGAP_TAINSAGSupportList.h | 44 + src/asn/ngap/ASN_NGAP_TAListforMDT.c | 49 + src/asn/ngap/ASN_NGAP_TAListforMDT.h | 42 + src/asn/ngap/ASN_NGAP_TAListforQMC.c | 49 + src/asn/ngap/ASN_NGAP_TAListforQMC.h | 42 + src/asn/ngap/ASN_NGAP_TMGI.c | 62 + src/asn/ngap/ASN_NGAP_TMGI.h | 44 + src/asn/ngap/ASN_NGAP_TNAP-ID.c | 31 + src/asn/ngap/ASN_NGAP_TNAP-ID.h | 43 + src/asn/ngap/ASN_NGAP_TNGF-ID.c | 99 + src/asn/ngap/ASN_NGAP_TNGF-ID.h | 55 + .../ngap/ASN_NGAP_TNLAddressWeightFactor.c | 61 + .../ngap/ASN_NGAP_TNLAddressWeightFactor.h | 44 + src/asn/ngap/ASN_NGAP_TNLAssociationItem.c | 73 + src/asn/ngap/ASN_NGAP_TNLAssociationItem.h | 50 + src/asn/ngap/ASN_NGAP_TNLAssociationList.c | 50 + src/asn/ngap/ASN_NGAP_TNLAssociationList.h | 44 + src/asn/ngap/ASN_NGAP_TNLAssociationUsage.c | 57 + src/asn/ngap/ASN_NGAP_TNLAssociationUsage.h | 55 + .../ngap/ASN_NGAP_TSCAssistanceInformation.c | 73 + .../ngap/ASN_NGAP_TSCAssistanceInformation.h | 50 + .../ngap/ASN_NGAP_TSCTrafficCharacteristics.c | 74 + .../ngap/ASN_NGAP_TSCTrafficCharacteristics.h | 49 + src/asn/ngap/ASN_NGAP_TWAP-ID.c | 31 + src/asn/ngap/ASN_NGAP_TWAP-ID.h | 43 + src/asn/ngap/ASN_NGAP_TWIF-ID.c | 99 + src/asn/ngap/ASN_NGAP_TWIF-ID.h | 55 + src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.c | 119 + src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.h | 52 + src/asn/ngap/ASN_NGAP_TargetID.c | 75 + src/asn/ngap/ASN_NGAP_TargetID.h | 58 + ...rceNGRANNode-FailureTransparentContainer.c | 64 + ...rceNGRANNode-FailureTransparentContainer.h | 46 + ...e-ToSourceNGRANNode-TransparentContainer.c | 63 + ...e-ToSourceNGRANNode-TransparentContainer.h | 46 + src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.c | 63 + src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.h | 48 + src/asn/ngap/ASN_NGAP_TargetNSSAI.c | 50 + src/asn/ngap/ASN_NGAP_TargetNSSAI.h | 44 + .../ngap/ASN_NGAP_TargetNSSAIInformation.c | 73 + .../ngap/ASN_NGAP_TargetNSSAIInformation.h | 50 + src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.c | 73 + src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.h | 50 + src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.c | 73 + src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.h | 50 + src/asn/ngap/ASN_NGAP_TargetRANNodeID.c | 73 + src/asn/ngap/ASN_NGAP_TargetRANNodeID.h | 50 + src/asn/ngap/ASN_NGAP_TargetRNC-ID.c | 83 + src/asn/ngap/ASN_NGAP_TargetRNC-ID.h | 52 + ...NGAP_TargetToSource-TransparentContainer.c | 31 + ...NGAP_TargetToSource-TransparentContainer.h | 43 + src/asn/ngap/ASN_NGAP_TargeteNB-ID.c | 73 + src/asn/ngap/ASN_NGAP_TargeteNB-ID.h | 50 + ...gettoSource-Failure-TransparentContainer.c | 31 + ...gettoSource-Failure-TransparentContainer.h | 43 + src/asn/ngap/ASN_NGAP_Threshold-RSRP.c | 61 + src/asn/ngap/ASN_NGAP_Threshold-RSRP.h | 44 + src/asn/ngap/ASN_NGAP_Threshold-RSRQ.c | 61 + src/asn/ngap/ASN_NGAP_Threshold-RSRQ.h | 44 + src/asn/ngap/ASN_NGAP_Threshold-SINR.c | 61 + src/asn/ngap/ASN_NGAP_Threshold-SINR.h | 44 + src/asn/ngap/ASN_NGAP_TimeStamp.c | 62 + src/asn/ngap/ASN_NGAP_TimeStamp.h | 44 + .../ngap/ASN_NGAP_TimeSyncAssistanceInfo.c | 151 + .../ngap/ASN_NGAP_TimeSyncAssistanceInfo.h | 60 + src/asn/ngap/ASN_NGAP_TimeToTrigger.c | 81 + src/asn/ngap/ASN_NGAP_TimeToTrigger.h | 65 + src/asn/ngap/ASN_NGAP_TimeToWait.c | 63 + src/asn/ngap/ASN_NGAP_TimeToWait.h | 58 + src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.c | 61 + src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.h | 44 + ...AP_TimeUEStayedInCellEnhancedGranularity.c | 61 + ...AP_TimeUEStayedInCellEnhancedGranularity.h | 44 + .../ASN_NGAP_TimerApproachForGUAMIRemoval.c | 53 + .../ASN_NGAP_TimerApproachForGUAMIRemoval.h | 53 + src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.c | 84 + src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.h | 52 + src/asn/ngap/ASN_NGAP_TraceActivation.c | 93 + src/asn/ngap/ASN_NGAP_TraceActivation.h | 54 + src/asn/ngap/ASN_NGAP_TraceDepth.c | 63 + src/asn/ngap/ASN_NGAP_TraceDepth.h | 58 + .../ngap/ASN_NGAP_TraceFailureIndication.c | 50 + .../ngap/ASN_NGAP_TraceFailureIndication.h | 44 + src/asn/ngap/ASN_NGAP_TraceStart.c | 50 + src/asn/ngap/ASN_NGAP_TraceStart.h | 44 + .../ASN_NGAP_TrafficLoadReductionIndication.c | 61 + .../ASN_NGAP_TrafficLoadReductionIndication.h | 44 + src/asn/ngap/ASN_NGAP_TransportLayerAddress.c | 67 + src/asn/ngap/ASN_NGAP_TransportLayerAddress.h | 44 + src/asn/ngap/ASN_NGAP_TriggeringMessage.c | 55 + src/asn/ngap/ASN_NGAP_TriggeringMessage.h | 52 + src/asn/ngap/ASN_NGAP_TypeOfError.c | 55 + src/asn/ngap/ASN_NGAP_TypeOfError.h | 54 + .../ngap/ASN_NGAP_UE-DifferentiationInfo.c | 340 + .../ngap/ASN_NGAP_UE-DifferentiationInfo.h | 91 + src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.c | 73 + src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.h | 50 + src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.c | 74 + src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.h | 58 + src/asn/ngap/ASN_NGAP_UE-PagingItem.c | 73 + src/asn/ngap/ASN_NGAP_UE-PagingItem.h | 50 + src/asn/ngap/ASN_NGAP_UE-PagingList.c | 50 + src/asn/ngap/ASN_NGAP_UE-PagingList.h | 44 + src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.c | 53 + src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.h | 53 + ...AP_UE-associatedLogicalNG-connectionItem.c | 73 + ...AP_UE-associatedLogicalNG-connectionItem.h | 50 + ...AP_UE-associatedLogicalNG-connectionList.c | 50 + ...AP_UE-associatedLogicalNG-connectionList.h | 44 + .../ngap/ASN_NGAP_UEAggregateMaximumBitRate.c | 73 + .../ngap/ASN_NGAP_UEAggregateMaximumBitRate.h | 49 + .../ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c | 264 + .../ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h | 75 + .../ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c | 63 + .../ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h | 48 + .../ngap/ASN_NGAP_UEAppLayerMeasInfoList.c | 50 + .../ngap/ASN_NGAP_UEAppLayerMeasInfoList.h | 44 + .../ngap/ASN_NGAP_UECapabilityInfoRequest.c | 53 + .../ngap/ASN_NGAP_UECapabilityInfoRequest.h | 53 + .../ASN_NGAP_UEContextModificationFailure.c | 50 + .../ASN_NGAP_UEContextModificationFailure.h | 44 + .../ASN_NGAP_UEContextModificationRequest.c | 50 + .../ASN_NGAP_UEContextModificationRequest.h | 44 + .../ASN_NGAP_UEContextModificationResponse.c | 50 + .../ASN_NGAP_UEContextModificationResponse.h | 44 + .../ngap/ASN_NGAP_UEContextReleaseCommand.c | 50 + .../ngap/ASN_NGAP_UEContextReleaseCommand.h | 44 + .../ngap/ASN_NGAP_UEContextReleaseComplete.c | 50 + .../ngap/ASN_NGAP_UEContextReleaseComplete.h | 44 + .../ngap/ASN_NGAP_UEContextReleaseRequest.c | 50 + .../ngap/ASN_NGAP_UEContextReleaseRequest.h | 44 + src/asn/ngap/ASN_NGAP_UEContextRequest.c | 53 + src/asn/ngap/ASN_NGAP_UEContextRequest.h | 53 + .../ngap/ASN_NGAP_UEContextResumeFailure.c | 50 + .../ngap/ASN_NGAP_UEContextResumeFailure.h | 44 + .../ngap/ASN_NGAP_UEContextResumeRequest.c | 50 + .../ngap/ASN_NGAP_UEContextResumeRequest.h | 44 + .../ASN_NGAP_UEContextResumeRequestTransfer.c | 64 + .../ASN_NGAP_UEContextResumeRequestTransfer.h | 46 + .../ngap/ASN_NGAP_UEContextResumeResponse.c | 50 + .../ngap/ASN_NGAP_UEContextResumeResponse.h | 44 + ...ASN_NGAP_UEContextResumeResponseTransfer.c | 64 + ...ASN_NGAP_UEContextResumeResponseTransfer.h | 46 + .../ngap/ASN_NGAP_UEContextSuspendFailure.c | 50 + .../ngap/ASN_NGAP_UEContextSuspendFailure.h | 44 + .../ngap/ASN_NGAP_UEContextSuspendRequest.c | 50 + .../ngap/ASN_NGAP_UEContextSuspendRequest.h | 44 + ...ASN_NGAP_UEContextSuspendRequestTransfer.c | 63 + ...ASN_NGAP_UEContextSuspendRequestTransfer.h | 46 + .../ngap/ASN_NGAP_UEContextSuspendResponse.c | 50 + .../ngap/ASN_NGAP_UEContextSuspendResponse.h | 44 + src/asn/ngap/ASN_NGAP_UEHistoryInformation.c | 50 + src/asn/ngap/ASN_NGAP_UEHistoryInformation.h | 44 + .../ASN_NGAP_UEHistoryInformationFromTheUE.c | 63 + .../ASN_NGAP_UEHistoryInformationFromTheUE.h | 55 + src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.c | 99 + src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.h | 55 + src/asn/ngap/ASN_NGAP_UEInformationTransfer.c | 50 + src/asn/ngap/ASN_NGAP_UEInformationTransfer.h | 44 + src/asn/ngap/ASN_NGAP_UEPagingIdentity.c | 64 + src/asn/ngap/ASN_NGAP_UEPagingIdentity.h | 55 + src/asn/ngap/ASN_NGAP_UEPresence.c | 57 + src/asn/ngap/ASN_NGAP_UEPresence.h | 55 + .../ASN_NGAP_UEPresenceInAreaOfInterestItem.c | 73 + .../ASN_NGAP_UEPresenceInAreaOfInterestItem.h | 50 + .../ASN_NGAP_UEPresenceInAreaOfInterestList.c | 50 + .../ASN_NGAP_UEPresenceInAreaOfInterestList.h | 44 + src/asn/ngap/ASN_NGAP_UERLFReportContainer.c | 73 + src/asn/ngap/ASN_NGAP_UERLFReportContainer.h | 58 + src/asn/ngap/ASN_NGAP_UERadioCapability.c | 31 + src/asn/ngap/ASN_NGAP_UERadioCapability.h | 43 + .../ASN_NGAP_UERadioCapabilityCheckRequest.c | 50 + .../ASN_NGAP_UERadioCapabilityCheckRequest.h | 44 + .../ASN_NGAP_UERadioCapabilityCheckResponse.c | 50 + .../ASN_NGAP_UERadioCapabilityCheckResponse.h | 44 + .../ASN_NGAP_UERadioCapabilityForPaging.c | 73 + .../ASN_NGAP_UERadioCapabilityForPaging.h | 50 + ...N_NGAP_UERadioCapabilityForPagingOfEUTRA.c | 31 + ...N_NGAP_UERadioCapabilityForPagingOfEUTRA.h | 43 + ..._NGAP_UERadioCapabilityForPagingOfNB-IoT.c | 31 + ..._NGAP_UERadioCapabilityForPagingOfNB-IoT.h | 43 + .../ASN_NGAP_UERadioCapabilityForPagingOfNR.c | 31 + .../ASN_NGAP_UERadioCapabilityForPagingOfNR.h | 43 + src/asn/ngap/ASN_NGAP_UERadioCapabilityID.c | 31 + src/asn/ngap/ASN_NGAP_UERadioCapabilityID.h | 43 + ...N_NGAP_UERadioCapabilityIDMappingRequest.c | 50 + ...N_NGAP_UERadioCapabilityIDMappingRequest.h | 44 + ..._NGAP_UERadioCapabilityIDMappingResponse.c | 50 + ..._NGAP_UERadioCapabilityIDMappingResponse.h | 44 + ...ASN_NGAP_UERadioCapabilityInfoIndication.c | 50 + ...ASN_NGAP_UERadioCapabilityInfoIndication.h | 44 + .../ngap/ASN_NGAP_UERetentionInformation.c | 53 + .../ngap/ASN_NGAP_UERetentionInformation.h | 53 + .../ngap/ASN_NGAP_UESecurityCapabilities.c | 93 + .../ngap/ASN_NGAP_UESecurityCapabilities.h | 54 + .../ngap/ASN_NGAP_UESliceMaximumBitRateItem.c | 83 + .../ngap/ASN_NGAP_UESliceMaximumBitRateItem.h | 51 + .../ngap/ASN_NGAP_UESliceMaximumBitRateList.c | 50 + .../ngap/ASN_NGAP_UESliceMaximumBitRateList.h | 44 + .../ASN_NGAP_UETNLABindingReleaseRequest.c | 50 + .../ASN_NGAP_UETNLABindingReleaseRequest.h | 44 + .../ngap/ASN_NGAP_UL-CP-SecurityInformation.c | 73 + .../ngap/ASN_NGAP_UL-CP-SecurityInformation.h | 50 + src/asn/ngap/ASN_NGAP_UL-NAS-Count.c | 67 + src/asn/ngap/ASN_NGAP_UL-NAS-Count.h | 44 + src/asn/ngap/ASN_NGAP_UL-NAS-MAC.c | 67 + src/asn/ngap/ASN_NGAP_UL-NAS-MAC.h | 44 + .../ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c | 73 + .../ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h | 49 + .../ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c | 50 + .../ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h | 44 + src/asn/ngap/ASN_NGAP_ULForwarding.c | 53 + src/asn/ngap/ASN_NGAP_ULForwarding.h | 53 + .../ASN_NGAP_UPTransportLayerInformation.c | 64 + .../ASN_NGAP_UPTransportLayerInformation.h | 55 + ...ASN_NGAP_UPTransportLayerInformationItem.c | 63 + ...ASN_NGAP_UPTransportLayerInformationItem.h | 48 + ...ASN_NGAP_UPTransportLayerInformationList.c | 50 + ...ASN_NGAP_UPTransportLayerInformationList.h | 44 + ...NGAP_UPTransportLayerInformationPairItem.c | 73 + ...NGAP_UPTransportLayerInformationPairItem.h | 49 + ...NGAP_UPTransportLayerInformationPairList.c | 50 + ...NGAP_UPTransportLayerInformationPairList.h | 44 + src/asn/ngap/ASN_NGAP_URI-address.c | 36 + src/asn/ngap/ASN_NGAP_URI-address.h | 44 + src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.c | 83 + src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.h | 52 + src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.c | 50 + src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.h | 44 + src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.c | 918 + src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.h | 209 + src/asn/ngap/ASN_NGAP_UpdateFeedback.c | 67 + src/asn/ngap/ASN_NGAP_UpdateFeedback.h | 44 + src/asn/ngap/ASN_NGAP_UplinkNASTransport.c | 50 + src/asn/ngap/ASN_NGAP_UplinkNASTransport.h | 44 + ...NGAP_UplinkNonUEAssociatedNRPPaTransport.c | 50 + ...NGAP_UplinkNonUEAssociatedNRPPaTransport.h | 44 + .../ASN_NGAP_UplinkRANConfigurationTransfer.c | 50 + .../ASN_NGAP_UplinkRANConfigurationTransfer.h | 44 + .../ASN_NGAP_UplinkRANEarlyStatusTransfer.c | 50 + .../ASN_NGAP_UplinkRANEarlyStatusTransfer.h | 44 + .../ngap/ASN_NGAP_UplinkRANStatusTransfer.c | 50 + .../ngap/ASN_NGAP_UplinkRANStatusTransfer.h | 44 + .../ASN_NGAP_UplinkRIMInformationTransfer.c | 50 + .../ASN_NGAP_UplinkRIMInformationTransfer.h | 44 + ...SN_NGAP_UplinkUEAssociatedNRPPaTransport.c | 50 + ...SN_NGAP_UplinkUEAssociatedNRPPaTransport.h | 44 + .../ngap/ASN_NGAP_UserLocationInformation.c | 86 + .../ngap/ASN_NGAP_UserLocationInformation.h | 61 + .../ASN_NGAP_UserLocationInformationEUTRA.c | 83 + .../ASN_NGAP_UserLocationInformationEUTRA.h | 52 + .../ASN_NGAP_UserLocationInformationN3IWF.c | 73 + .../ASN_NGAP_UserLocationInformationN3IWF.h | 50 + .../ngap/ASN_NGAP_UserLocationInformationNR.c | 83 + .../ngap/ASN_NGAP_UserLocationInformationNR.h | 52 + .../ASN_NGAP_UserLocationInformationTNGF.c | 83 + .../ASN_NGAP_UserLocationInformationTNGF.h | 52 + .../ASN_NGAP_UserLocationInformationTWIF.c | 83 + .../ASN_NGAP_UserLocationInformationTWIF.h | 52 + .../ASN_NGAP_UserLocationInformationW-AGF.c | 74 + .../ASN_NGAP_UserLocationInformationW-AGF.h | 58 + .../ASN_NGAP_UserPlaneSecurityInformation.c | 73 + .../ASN_NGAP_UserPlaneSecurityInformation.h | 50 + src/asn/ngap/ASN_NGAP_VehicleUE.c | 55 + src/asn/ngap/ASN_NGAP_VehicleUE.h | 54 + .../ngap/ASN_NGAP_VolumeTimedReport-Item.c | 227 + .../ngap/ASN_NGAP_VolumeTimedReport-Item.h | 52 + src/asn/ngap/ASN_NGAP_VolumeTimedReportList.c | 50 + src/asn/ngap/ASN_NGAP_VolumeTimedReportList.h | 44 + src/asn/ngap/ASN_NGAP_W-AGF-ID.c | 99 + src/asn/ngap/ASN_NGAP_W-AGF-ID.h | 55 + src/asn/ngap/ASN_NGAP_WLANMeasConfig.c | 53 + src/asn/ngap/ASN_NGAP_WLANMeasConfig.h | 53 + .../ngap/ASN_NGAP_WLANMeasConfigNameItem.c | 63 + .../ngap/ASN_NGAP_WLANMeasConfigNameItem.h | 48 + .../ngap/ASN_NGAP_WLANMeasConfigNameList.c | 50 + .../ngap/ASN_NGAP_WLANMeasConfigNameList.h | 44 + .../ASN_NGAP_WLANMeasurementConfiguration.c | 186 + .../ASN_NGAP_WLANMeasurementConfiguration.h | 69 + src/asn/ngap/ASN_NGAP_WLANName.c | 62 + src/asn/ngap/ASN_NGAP_WLANName.h | 44 + .../ASN_NGAP_WUS-Assistance-Information.c | 63 + .../ASN_NGAP_WUS-Assistance-Information.h | 48 + .../ngap/ASN_NGAP_WarningAreaCoordinates.c | 62 + .../ngap/ASN_NGAP_WarningAreaCoordinates.h | 44 + src/asn/ngap/ASN_NGAP_WarningAreaList.c | 97 + src/asn/ngap/ASN_NGAP_WarningAreaList.h | 64 + .../ngap/ASN_NGAP_WarningMessageContents.c | 62 + .../ngap/ASN_NGAP_WarningMessageContents.h | 44 + src/asn/ngap/ASN_NGAP_WarningSecurityInfo.c | 62 + src/asn/ngap/ASN_NGAP_WarningSecurityInfo.h | 44 + src/asn/ngap/ASN_NGAP_WarningType.c | 62 + src/asn/ngap/ASN_NGAP_WarningType.h | 44 + .../ASN_NGAP_WriteReplaceWarningRequest.c | 50 + .../ASN_NGAP_WriteReplaceWarningRequest.h | 44 + .../ASN_NGAP_WriteReplaceWarningResponse.c | 50 + .../ASN_NGAP_WriteReplaceWarningResponse.h | 44 + src/asn/ngap/ASN_NGAP_XnExtTLA-Item.c | 74 + src/asn/ngap/ASN_NGAP_XnExtTLA-Item.h | 50 + src/asn/ngap/ASN_NGAP_XnExtTLAs.c | 50 + src/asn/ngap/ASN_NGAP_XnExtTLAs.h | 44 + src/asn/ngap/ASN_NGAP_XnGTP-TLAs.c | 49 + src/asn/ngap/ASN_NGAP_XnGTP-TLAs.h | 42 + src/asn/ngap/ASN_NGAP_XnTLAs.c | 49 + src/asn/ngap/ASN_NGAP_XnTLAs.h | 42 + .../ngap/ASN_NGAP_XnTNLConfigurationInfo.c | 74 + .../ngap/ASN_NGAP_XnTNLConfigurationInfo.h | 50 + src/asn/ngap/ASN_NGAP_asn_constant.h | 158 + src/asn/ngap/CMakeLists.txt | 5 + src/asn/rrc/ASN_RRC_AMF-Identifier.c | 67 + src/asn/rrc/ASN_RRC_AMF-Identifier.h | 44 + src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.c | 61 + src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.h | 44 + src/asn/rrc/ASN_RRC_ARFCN-ValueNR.c | 61 + src/asn/rrc/ASN_RRC_ARFCN-ValueNR.h | 44 + src/asn/rrc/ASN_RRC_AS-Config.c | 205 + src/asn/rrc/ASN_RRC_AS-Config.h | 52 + src/asn/rrc/ASN_RRC_AS-Context.c | 257 + src/asn/rrc/ASN_RRC_AS-Context.h | 69 + src/asn/rrc/ASN_RRC_AccessStratumRelease.c | 67 + src/asn/rrc/ASN_RRC_AccessStratumRelease.h | 60 + .../rrc/ASN_RRC_AdditionalSpectrumEmission.c | 61 + .../rrc/ASN_RRC_AdditionalSpectrumEmission.h | 44 + .../ASN_RRC_AffectedCarrierFreqCombEUTRA.c | 49 + .../ASN_RRC_AffectedCarrierFreqCombEUTRA.h | 42 + .../ASN_RRC_AffectedCarrierFreqCombInfoMRDC.c | 186 + .../ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h | 66 + .../rrc/ASN_RRC_AffectedCarrierFreqCombNR.c | 49 + .../rrc/ASN_RRC_AffectedCarrierFreqCombNR.h | 42 + src/asn/rrc/ASN_RRC_AggregatedBandwidth.c | 81 + src/asn/rrc/ASN_RRC_AggregatedBandwidth.h | 65 + src/asn/rrc/ASN_RRC_Alpha.c | 65 + src/asn/rrc/ASN_RRC_Alpha.h | 57 + src/asn/rrc/ASN_RRC_BCCH-BCH-Message.c | 50 + src/asn/rrc/ASN_RRC_BCCH-BCH-Message.h | 38 + src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.c | 91 + src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.h | 59 + src/asn/rrc/ASN_RRC_BCCH-Config.c | 100 + src/asn/rrc/ASN_RRC_BCCH-Config.h | 53 + src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.c | 50 + src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.h | 38 + src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.c | 146 + src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.h | 74 + src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.c | 205 + src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.h | 54 + src/asn/rrc/ASN_RRC_BFR-SSB-Resource.c | 90 + src/asn/rrc/ASN_RRC_BFR-SSB-Resource.h | 46 + src/asn/rrc/ASN_RRC_BSR-Config.c | 278 + src/asn/rrc/ASN_RRC_BSR-Config.h | 97 + src/asn/rrc/ASN_RRC_BWP-Downlink.c | 74 + src/asn/rrc/ASN_RRC_BWP-Downlink.h | 50 + src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.c | 73 + src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.h | 50 + src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.c | 83 + src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.h | 52 + src/asn/rrc/ASN_RRC_BWP-Id.c | 61 + src/asn/rrc/ASN_RRC_BWP-Id.h | 44 + src/asn/rrc/ASN_RRC_BWP-Uplink.c | 74 + src/asn/rrc/ASN_RRC_BWP-Uplink.h | 50 + src/asn/rrc/ASN_RRC_BWP-UplinkCommon.c | 83 + src/asn/rrc/ASN_RRC_BWP-UplinkCommon.h | 52 + src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.c | 93 + src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.h | 54 + src/asn/rrc/ASN_RRC_BWP.c | 146 + src/asn/rrc/ASN_RRC_BWP.h | 50 + src/asn/rrc/ASN_RRC_BandCombination-v1540.c | 137 + src/asn/rrc/ASN_RRC_BandCombination-v1540.h | 51 + src/asn/rrc/ASN_RRC_BandCombination-v1550.c | 50 + src/asn/rrc/ASN_RRC_BandCombination-v1550.h | 40 + src/asn/rrc/ASN_RRC_BandCombination-v1560.c | 129 + src/asn/rrc/ASN_RRC_BandCombination-v1560.h | 54 + src/asn/rrc/ASN_RRC_BandCombination.c | 269 + src/asn/rrc/ASN_RRC_BandCombination.h | 67 + src/asn/rrc/ASN_RRC_BandCombinationIndex.c | 61 + src/asn/rrc/ASN_RRC_BandCombinationIndex.h | 44 + src/asn/rrc/ASN_RRC_BandCombinationInfo.c | 133 + src/asn/rrc/ASN_RRC_BandCombinationInfo.h | 49 + src/asn/rrc/ASN_RRC_BandCombinationInfoList.c | 50 + src/asn/rrc/ASN_RRC_BandCombinationInfoList.h | 44 + src/asn/rrc/ASN_RRC_BandCombinationInfoSN.c | 60 + src/asn/rrc/ASN_RRC_BandCombinationInfoSN.h | 42 + .../rrc/ASN_RRC_BandCombinationList-v1540.c | 50 + .../rrc/ASN_RRC_BandCombinationList-v1540.h | 44 + .../rrc/ASN_RRC_BandCombinationList-v1550.c | 50 + .../rrc/ASN_RRC_BandCombinationList-v1550.h | 44 + .../rrc/ASN_RRC_BandCombinationList-v1560.c | 50 + .../rrc/ASN_RRC_BandCombinationList-v1560.h | 44 + src/asn/rrc/ASN_RRC_BandCombinationList.c | 50 + src/asn/rrc/ASN_RRC_BandCombinationList.h | 44 + src/asn/rrc/ASN_RRC_BandEntryIndex.c | 61 + src/asn/rrc/ASN_RRC_BandEntryIndex.h | 44 + src/asn/rrc/ASN_RRC_BandNR.c | 1764 + src/asn/rrc/ASN_RRC_BandNR.h | 213 + src/asn/rrc/ASN_RRC_BandParameters-v1540.c | 533 + src/asn/rrc/ASN_RRC_BandParameters-v1540.h | 103 + src/asn/rrc/ASN_RRC_BandParameters.c | 192 + src/asn/rrc/ASN_RRC_BandParameters.h | 70 + .../rrc/ASN_RRC_BeamFailureRecoveryConfig.c | 439 + .../rrc/ASN_RRC_BeamFailureRecoveryConfig.h | 98 + .../rrc/ASN_RRC_BeamManagementSSB-CSI-RS.c | 356 + .../rrc/ASN_RRC_BeamManagementSSB-CSI-RS.h | 88 + src/asn/rrc/ASN_RRC_BetaOffsets.c | 322 + src/asn/rrc/ASN_RRC_BetaOffsets.h | 46 + src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.c | 63 + src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.h | 58 + src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.c | 85 + src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.h | 69 + .../rrc/ASN_RRC_CA-ParametersEUTRA-v1560.c | 82 + .../rrc/ASN_RRC_CA-ParametersEUTRA-v1560.h | 40 + src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.c | 350 + src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.h | 68 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.c | 301 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.h | 56 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.c | 96 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.h | 46 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.c | 96 + src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.h | 46 + src/asn/rrc/ASN_RRC_CA-ParametersNR.c | 478 + src/asn/rrc/ASN_RRC_CA-ParametersNR.h | 87 + src/asn/rrc/ASN_RRC_CA-ParametersNRDC.c | 96 + src/asn/rrc/ASN_RRC_CA-ParametersNRDC.h | 50 + src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.c | 203 + src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.h | 54 + src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.c | 90 + src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.h | 46 + src/asn/rrc/ASN_RRC_CFRA.c | 598 + src/asn/rrc/ASN_RRC_CFRA.h | 116 + src/asn/rrc/ASN_RRC_CG-Config-IEs.c | 227 + src/asn/rrc/ASN_RRC_CG-Config-IEs.h | 58 + src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.c | 182 + src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.h | 59 + src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.c | 294 + src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.h | 75 + src/asn/rrc/ASN_RRC_CG-Config.c | 207 + src/asn/rrc/ASN_RRC_CG-Config.h | 80 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.c | 442 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.h | 79 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.c | 137 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.h | 55 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.c | 329 + src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.h | 83 + src/asn/rrc/ASN_RRC_CG-ConfigInfo.c | 207 + src/asn/rrc/ASN_RRC_CG-ConfigInfo.h | 80 + src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.c | 136 + src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.h | 61 + src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.c | 340 + src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.h | 75 + src/asn/rrc/ASN_RRC_CGI-InfoNR.c | 157 + src/asn/rrc/ASN_RRC_CGI-InfoNR.h | 57 + .../rrc/ASN_RRC_CSI-AperiodicTriggerState.c | 124 + .../rrc/ASN_RRC_CSI-AperiodicTriggerState.h | 53 + .../ASN_RRC_CSI-AperiodicTriggerStateList.c | 50 + .../ASN_RRC_CSI-AperiodicTriggerStateList.h | 44 + .../ASN_RRC_CSI-AssociatedReportConfigInfo.c | 384 + .../ASN_RRC_CSI-AssociatedReportConfigInfo.h | 79 + src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.c | 120 + src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.h | 45 + src/asn/rrc/ASN_RRC_CSI-IM-Resource.c | 406 + src/asn/rrc/ASN_RRC_CSI-IM-Resource.h | 97 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.c | 61 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.h | 44 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.c | 133 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.h | 53 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.h | 44 + src/asn/rrc/ASN_RRC_CSI-MeasConfig.c | 1272 + src/asn/rrc/ASN_RRC_CSI-MeasConfig.h | 150 + src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.c | 337 + src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.h | 76 + src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.c | 200 + src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.h | 43 + .../ASN_RRC_CSI-RS-IM-ReceptionForFeedback.c | 264 + .../ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h | 56 + src/asn/rrc/ASN_RRC_CSI-RS-Index.c | 61 + src/asn/rrc/ASN_RRC_CSI-RS-Index.h | 44 + .../rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.c | 200 + .../rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.h | 43 + .../rrc/ASN_RRC_CSI-RS-Resource-Mobility.c | 575 + .../rrc/ASN_RRC_CSI-RS-Resource-Mobility.h | 96 + .../ASN_RRC_CSI-RS-ResourceConfigMobility.c | 191 + .../ASN_RRC_CSI-RS-ResourceConfigMobility.h | 62 + src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.c | 618 + src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.h | 116 + src/asn/rrc/ASN_RRC_CSI-ReportConfig.c | 2679 + src/asn/rrc/ASN_RRC_CSI-ReportConfig.h | 326 + src/asn/rrc/ASN_RRC_CSI-ReportConfigId.c | 61 + src/asn/rrc/ASN_RRC_CSI-ReportConfigId.h | 44 + src/asn/rrc/ASN_RRC_CSI-ReportFramework.c | 384 + src/asn/rrc/ASN_RRC_CSI-ReportFramework.h | 59 + .../ASN_RRC_CSI-ReportPeriodicityAndOffset.c | 442 + .../ASN_RRC_CSI-ReportPeriodicityAndOffset.h | 68 + src/asn/rrc/ASN_RRC_CSI-ResourceConfig.c | 456 + src/asn/rrc/ASN_RRC_CSI-ResourceConfig.h | 98 + src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.c | 61 + src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.h | 44 + ...ASN_RRC_CSI-ResourcePeriodicityAndOffset.c | 562 + ...ASN_RRC_CSI-ResourcePeriodicityAndOffset.h | 74 + src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.c | 133 + src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.h | 53 + src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.h | 44 + ...C_CSI-SemiPersistentOnPUSCH-TriggerState.c | 50 + ...C_CSI-SemiPersistentOnPUSCH-TriggerState.h | 44 + ...I-SemiPersistentOnPUSCH-TriggerStateList.c | 50 + ...I-SemiPersistentOnPUSCH-TriggerStateList.h | 44 + .../ASN_RRC_CandidateServingFreqListEUTRA.c | 49 + .../ASN_RRC_CandidateServingFreqListEUTRA.h | 42 + .../rrc/ASN_RRC_CandidateServingFreqListNR.c | 49 + .../rrc/ASN_RRC_CandidateServingFreqListNR.h | 42 + src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.c | 328 + src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.h | 71 + src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.c | 50 + src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.h | 44 + src/asn/rrc/ASN_RRC_CarrierInfoNR.c | 73 + src/asn/rrc/ASN_RRC_CarrierInfoNR.h | 50 + .../ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.c | 82 + .../ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h | 46 + .../ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.c | 142 + .../ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h | 43 + src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.c | 106 + src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.h | 52 + src/asn/rrc/ASN_RRC_CellGroupConfig.c | 518 + src/asn/rrc/ASN_RRC_CellGroupConfig.h | 93 + src/asn/rrc/ASN_RRC_CellGroupId.c | 61 + src/asn/rrc/ASN_RRC_CellGroupId.h | 44 + src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.c | 128 + src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.h | 53 + src/asn/rrc/ASN_RRC_CellIdentity.c | 67 + src/asn/rrc/ASN_RRC_CellIdentity.h | 44 + .../rrc/ASN_RRC_CellReselectionPriorities.c | 132 + .../rrc/ASN_RRC_CellReselectionPriorities.h | 63 + src/asn/rrc/ASN_RRC_CellReselectionPriority.c | 61 + src/asn/rrc/ASN_RRC_CellReselectionPriority.h | 44 + .../rrc/ASN_RRC_CellReselectionSubPriority.c | 57 + .../rrc/ASN_RRC_CellReselectionSubPriority.h | 53 + src/asn/rrc/ASN_RRC_CellsToAddMod.c | 60 + src/asn/rrc/ASN_RRC_CellsToAddMod.h | 42 + src/asn/rrc/ASN_RRC_CellsToAddModList.c | 50 + src/asn/rrc/ASN_RRC_CellsToAddModList.h | 44 + src/asn/rrc/ASN_RRC_CellsTriggeredList.c | 103 + src/asn/rrc/ASN_RRC_CellsTriggeredList.h | 63 + src/asn/rrc/ASN_RRC_CipheringAlgorithm.c | 67 + src/asn/rrc/ASN_RRC_CipheringAlgorithm.h | 60 + src/asn/rrc/ASN_RRC_CodebookConfig.c | 2760 + src/asn/rrc/ASN_RRC_CodebookConfig.h | 267 + src/asn/rrc/ASN_RRC_CodebookParameters.c | 1090 + src/asn/rrc/ASN_RRC_CodebookParameters.h | 136 + src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.c | 479 + src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.h | 82 + src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.c | 158 + src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.h | 56 + src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.c | 1256 + src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.h | 182 + src/asn/rrc/ASN_RRC_ConnEstFailureControl.c | 210 + src/asn/rrc/ASN_RRC_ConnEstFailureControl.h | 63 + src/asn/rrc/ASN_RRC_ControlResourceSet.c | 709 + src/asn/rrc/ASN_RRC_ControlResourceSet.h | 114 + src/asn/rrc/ASN_RRC_ControlResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_ControlResourceSetId.h | 44 + src/asn/rrc/ASN_RRC_ControlResourceSetZero.c | 61 + src/asn/rrc/ASN_RRC_ControlResourceSetZero.h | 44 + src/asn/rrc/ASN_RRC_CounterCheck-IEs.c | 100 + src/asn/rrc/ASN_RRC_CounterCheck-IEs.h | 47 + src/asn/rrc/ASN_RRC_CounterCheck.c | 143 + src/asn/rrc/ASN_RRC_CounterCheck.h | 65 + .../rrc/ASN_RRC_CounterCheckResponse-IEs.c | 100 + .../rrc/ASN_RRC_CounterCheckResponse-IEs.h | 47 + src/asn/rrc/ASN_RRC_CounterCheckResponse.c | 143 + src/asn/rrc/ASN_RRC_CounterCheckResponse.h | 65 + .../ASN_RRC_CrossCarrierSchedulingConfig.c | 230 + .../ASN_RRC_CrossCarrierSchedulingConfig.h | 74 + src/asn/rrc/ASN_RRC_DL-AM-RLC.c | 72 + src/asn/rrc/ASN_RRC_DL-AM-RLC.h | 44 + src/asn/rrc/ASN_RRC_DL-CCCH-Message.c | 50 + src/asn/rrc/ASN_RRC_DL-CCCH-Message.h | 38 + src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.c | 166 + src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.h | 79 + src/asn/rrc/ASN_RRC_DL-DCCH-Message.c | 50 + src/asn/rrc/ASN_RRC_DL-DCCH-Message.h | 38 + src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.c | 293 + src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.h | 110 + src/asn/rrc/ASN_RRC_DL-UM-RLC.c | 62 + src/asn/rrc/ASN_RRC_DL-UM-RLC.h | 42 + .../rrc/ASN_RRC_DLInformationTransfer-IEs.c | 100 + .../rrc/ASN_RRC_DLInformationTransfer-IEs.h | 47 + src/asn/rrc/ASN_RRC_DLInformationTransfer.c | 143 + src/asn/rrc/ASN_RRC_DLInformationTransfer.h | 65 + src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.c | 299 + src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.h | 69 + src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.c | 537 + src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.h | 98 + src/asn/rrc/ASN_RRC_DRB-CountInfo.c | 212 + src/asn/rrc/ASN_RRC_DRB-CountInfo.h | 45 + src/asn/rrc/ASN_RRC_DRB-CountInfoList.c | 50 + src/asn/rrc/ASN_RRC_DRB-CountInfoList.h | 44 + src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.c | 130 + src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.h | 43 + src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.c | 50 + src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.h | 44 + src/asn/rrc/ASN_RRC_DRB-Identity.c | 61 + src/asn/rrc/ASN_RRC_DRB-Identity.h | 44 + src/asn/rrc/ASN_RRC_DRB-ToAddMod.c | 266 + src/asn/rrc/ASN_RRC_DRB-ToAddMod.h | 79 + src/asn/rrc/ASN_RRC_DRB-ToAddModList.c | 50 + src/asn/rrc/ASN_RRC_DRB-ToAddModList.h | 44 + src/asn/rrc/ASN_RRC_DRB-ToReleaseList.c | 49 + src/asn/rrc/ASN_RRC_DRB-ToReleaseList.h | 42 + src/asn/rrc/ASN_RRC_DRX-Config.c | 1753 + src/asn/rrc/ASN_RRC_DRX-Config.h | 297 + src/asn/rrc/ASN_RRC_DRX-Info.c | 1085 + src/asn/rrc/ASN_RRC_DRX-Info.h | 136 + src/asn/rrc/ASN_RRC_DataInactivityTimer.c | 81 + src/asn/rrc/ASN_RRC_DataInactivityTimer.h | 65 + src/asn/rrc/ASN_RRC_DedicatedNAS-Message.c | 31 + src/asn/rrc/ASN_RRC_DedicatedNAS-Message.h | 43 + src/asn/rrc/ASN_RRC_DelayBudgetReport.c | 128 + src/asn/rrc/ASN_RRC_DelayBudgetReport.h | 76 + src/asn/rrc/ASN_RRC_DownlinkConfigCommon.c | 64 + src/asn/rrc/ASN_RRC_DownlinkConfigCommon.h | 48 + src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.c | 80 + src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.h | 50 + src/asn/rrc/ASN_RRC_DownlinkPreemption.c | 230 + src/asn/rrc/ASN_RRC_DownlinkPreemption.h | 66 + src/asn/rrc/ASN_RRC_DummyA.c | 502 + src/asn/rrc/ASN_RRC_DummyA.h | 166 + src/asn/rrc/ASN_RRC_DummyB.c | 282 + src/asn/rrc/ASN_RRC_DummyB.h | 62 + src/asn/rrc/ASN_RRC_DummyC.c | 332 + src/asn/rrc/ASN_RRC_DummyC.h | 65 + src/asn/rrc/ASN_RRC_DummyD.c | 376 + src/asn/rrc/ASN_RRC_DummyD.h | 67 + src/asn/rrc/ASN_RRC_DummyE.c | 320 + src/asn/rrc/ASN_RRC_DummyE.h | 62 + src/asn/rrc/ASN_RRC_DummyF.c | 200 + src/asn/rrc/ASN_RRC_DummyF.h | 43 + src/asn/rrc/ASN_RRC_DummyG.c | 222 + src/asn/rrc/ASN_RRC_DummyG.h | 66 + src/asn/rrc/ASN_RRC_DummyH.c | 200 + src/asn/rrc/ASN_RRC_DummyH.h | 43 + src/asn/rrc/ASN_RRC_DummyI.c | 158 + src/asn/rrc/ASN_RRC_DummyI.h | 55 + .../rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.c | 61 + .../rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.h | 55 + src/asn/rrc/ASN_RRC_EUTRA-BlackCell.c | 60 + src/asn/rrc/ASN_RRC_EUTRA-BlackCell.h | 42 + src/asn/rrc/ASN_RRC_EUTRA-Cell.c | 70 + src/asn/rrc/ASN_RRC_EUTRA-Cell.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-CellIndex.c | 61 + src/asn/rrc/ASN_RRC_EUTRA-CellIndex.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.c | 49 + src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.h | 42 + src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.c | 50 + src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.c | 142 + src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.h | 45 + src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.c | 50 + src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.h | 44 + .../rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.c | 418 + .../rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.h | 89 + .../ASN_RRC_EUTRA-MBSFN-SubframeConfigList.c | 50 + .../ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.c | 63 + src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.c | 50 + src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.c | 50 + src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.c | 122 + src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.h | 41 + src/asn/rrc/ASN_RRC_EUTRA-Parameters.c | 147 + src/asn/rrc/ASN_RRC_EUTRA-Parameters.h | 57 + src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.c | 349 + src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.h | 72 + .../rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.c | 96 + .../rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.h | 50 + src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.c | 61 + src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.h | 44 + src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.c | 136 + src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.h | 63 + .../rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.c | 31 + .../rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.h | 43 + src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.c | 111 + src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.h | 80 + src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.c | 90 + src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.h | 46 + src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.c | 50 + src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.h | 44 + src/asn/rrc/ASN_RRC_EstablishmentCause.c | 81 + src/asn/rrc/ASN_RRC_EstablishmentCause.h | 65 + src/asn/rrc/ASN_RRC_EventTriggerConfig.c | 887 + src/asn/rrc/ASN_RRC_EventTriggerConfig.h | 164 + .../rrc/ASN_RRC_EventTriggerConfigInterRAT.c | 398 + .../rrc/ASN_RRC_EventTriggerConfigInterRAT.h | 117 + src/asn/rrc/ASN_RRC_FR-Info.c | 106 + src/asn/rrc/ASN_RRC_FR-Info.h | 49 + src/asn/rrc/ASN_RRC_FR-InfoList.c | 50 + src/asn/rrc/ASN_RRC_FR-InfoList.h | 44 + src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.c | 120 + src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.h | 53 + src/asn/rrc/ASN_RRC_FailureInformation-IEs.c | 101 + src/asn/rrc/ASN_RRC_FailureInformation-IEs.h | 49 + src/asn/rrc/ASN_RRC_FailureInformation.c | 133 + src/asn/rrc/ASN_RRC_FailureInformation.h | 63 + src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.c | 131 + src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.h | 63 + src/asn/rrc/ASN_RRC_FailureReportSCG.c | 157 + src/asn/rrc/ASN_RRC_FailureReportSCG.h | 63 + src/asn/rrc/ASN_RRC_FeatureSet.c | 168 + src/asn/rrc/ASN_RRC_FeatureSet.h | 68 + src/asn/rrc/ASN_RRC_FeatureSetCombination.c | 50 + src/asn/rrc/ASN_RRC_FeatureSetCombination.h | 44 + src/asn/rrc/ASN_RRC_FeatureSetCombinationId.c | 61 + src/asn/rrc/ASN_RRC_FeatureSetCombinationId.h | 44 + .../rrc/ASN_RRC_FeatureSetDownlink-v1540.c | 822 + .../rrc/ASN_RRC_FeatureSetDownlink-v1540.h | 128 + src/asn/rrc/ASN_RRC_FeatureSetDownlink.c | 1464 + src/asn/rrc/ASN_RRC_FeatureSetDownlink.h | 188 + src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.c | 61 + src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.h | 44 + .../rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.c | 61 + .../rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.h | 44 + src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.c | 136 + src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.h | 54 + .../rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.c | 61 + .../rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.h | 44 + .../rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.c | 61 + .../rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.h | 44 + src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.c | 61 + src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.h | 44 + src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.c | 334 + src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.h | 72 + src/asn/rrc/ASN_RRC_FeatureSetUplink.c | 773 + src/asn/rrc/ASN_RRC_FeatureSetUplink.h | 125 + src/asn/rrc/ASN_RRC_FeatureSetUplinkId.c | 61 + src/asn/rrc/ASN_RRC_FeatureSetUplinkId.h | 44 + .../rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.c | 61 + .../rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.h | 44 + .../rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.c | 165 + .../rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.h | 46 + src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.c | 231 + src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.h | 62 + src/asn/rrc/ASN_RRC_FeatureSets.c | 675 + src/asn/rrc/ASN_RRC_FeatureSets.h | 100 + src/asn/rrc/ASN_RRC_FeatureSetsPerBand.c | 50 + src/asn/rrc/ASN_RRC_FeatureSetsPerBand.h | 44 + src/asn/rrc/ASN_RRC_FilterCoefficient.c | 83 + src/asn/rrc/ASN_RRC_FilterCoefficient.h | 68 + src/asn/rrc/ASN_RRC_FilterConfig.c | 141 + src/asn/rrc/ASN_RRC_FilterConfig.h | 42 + src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.c | 61 + src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.h | 44 + src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.c | 61 + src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.h | 44 + src/asn/rrc/ASN_RRC_FreqBandInformation.c | 64 + src/asn/rrc/ASN_RRC_FreqBandInformation.h | 55 + .../rrc/ASN_RRC_FreqBandInformationEUTRA.c | 72 + .../rrc/ASN_RRC_FreqBandInformationEUTRA.h | 43 + src/asn/rrc/ASN_RRC_FreqBandInformationNR.c | 152 + src/asn/rrc/ASN_RRC_FreqBandInformationNR.h | 46 + src/asn/rrc/ASN_RRC_FreqBandList.c | 50 + src/asn/rrc/ASN_RRC_FreqBandList.h | 44 + src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.c | 72 + src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.h | 44 + src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.c | 50 + src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.h | 44 + src/asn/rrc/ASN_RRC_FreqPriorityListNR.c | 50 + src/asn/rrc/ASN_RRC_FreqPriorityListNR.h | 44 + src/asn/rrc/ASN_RRC_FreqPriorityNR.c | 72 + src/asn/rrc/ASN_RRC_FreqPriorityNR.h | 44 + src/asn/rrc/ASN_RRC_FreqSeparationClass.c | 57 + src/asn/rrc/ASN_RRC_FreqSeparationClass.h | 55 + src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.c | 174 + src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.h | 53 + src/asn/rrc/ASN_RRC_FrequencyInfoDL.c | 156 + src/asn/rrc/ASN_RRC_FrequencyInfoDL.h | 58 + src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.c | 211 + src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.h | 67 + src/asn/rrc/ASN_RRC_FrequencyInfoUL.c | 221 + src/asn/rrc/ASN_RRC_FrequencyInfoUL.h | 69 + src/asn/rrc/ASN_RRC_GapConfig.c | 367 + src/asn/rrc/ASN_RRC_GapConfig.h | 84 + .../ASN_RRC_GeneralParametersMRDC-XDD-Diff.c | 258 + .../ASN_RRC_GeneralParametersMRDC-XDD-Diff.h | 65 + src/asn/rrc/ASN_RRC_HandoverCommand-IEs.c | 116 + src/asn/rrc/ASN_RRC_HandoverCommand-IEs.h | 45 + src/asn/rrc/ASN_RRC_HandoverCommand.c | 207 + src/asn/rrc/ASN_RRC_HandoverCommand.h | 80 + ...N_RRC_HandoverPreparationInformation-IEs.c | 123 + ...N_RRC_HandoverPreparationInformation-IEs.h | 53 + .../ASN_RRC_HandoverPreparationInformation.c | 207 + .../ASN_RRC_HandoverPreparationInformation.h | 80 + src/asn/rrc/ASN_RRC_Hysteresis.c | 61 + src/asn/rrc/ASN_RRC_Hysteresis.h | 44 + src/asn/rrc/ASN_RRC_I-RNTI-Value.c | 67 + src/asn/rrc/ASN_RRC_I-RNTI-Value.h | 44 + src/asn/rrc/ASN_RRC_IMS-Parameters.c | 64 + src/asn/rrc/ASN_RRC_IMS-Parameters.h | 48 + src/asn/rrc/ASN_RRC_IMS-ParametersCommon.c | 195 + src/asn/rrc/ASN_RRC_IMS-ParametersCommon.h | 60 + src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.c | 96 + src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.h | 50 + .../ASN_RRC_INT-ConfigurationPerServingCell.c | 90 + .../ASN_RRC_INT-ConfigurationPerServingCell.h | 42 + src/asn/rrc/ASN_RRC_InitialUE-Identity.c | 134 + src/asn/rrc/ASN_RRC_InitialUE-Identity.h | 52 + src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.c | 67 + src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.h | 60 + src/asn/rrc/ASN_RRC_InterFreqBlackCellList.c | 50 + src/asn/rrc/ASN_RRC_InterFreqBlackCellList.h | 44 + .../rrc/ASN_RRC_InterFreqCarrierFreqInfo.c | 396 + .../rrc/ASN_RRC_InterFreqCarrierFreqInfo.h | 95 + .../rrc/ASN_RRC_InterFreqCarrierFreqList.c | 50 + .../rrc/ASN_RRC_InterFreqCarrierFreqList.h | 44 + src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.c | 182 + src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.h | 50 + src/asn/rrc/ASN_RRC_InterFreqNeighCellList.c | 50 + src/asn/rrc/ASN_RRC_InterFreqNeighCellList.h | 44 + src/asn/rrc/ASN_RRC_InterRAT-Parameters.c | 53 + src/asn/rrc/ASN_RRC_InterRAT-Parameters.h | 46 + src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.c | 50 + src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.h | 44 + src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.c | 182 + src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.h | 50 + src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.c | 50 + src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.h | 44 + ...SN_RRC_LocationMeasurementIndication-IEs.c | 100 + ...SN_RRC_LocationMeasurementIndication-IEs.h | 47 + .../ASN_RRC_LocationMeasurementIndication.c | 133 + .../ASN_RRC_LocationMeasurementIndication.h | 63 + src/asn/rrc/ASN_RRC_LocationMeasurementInfo.c | 63 + src/asn/rrc/ASN_RRC_LocationMeasurementInfo.h | 60 + src/asn/rrc/ASN_RRC_LogicalChannelConfig.c | 721 + src/asn/rrc/ASN_RRC_LogicalChannelConfig.h | 147 + src/asn/rrc/ASN_RRC_LogicalChannelIdentity.c | 61 + src/asn/rrc/ASN_RRC_LogicalChannelIdentity.h | 44 + src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.c | 171 + src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.h | 64 + src/asn/rrc/ASN_RRC_MAC-Parameters.c | 64 + src/asn/rrc/ASN_RRC_MAC-Parameters.h | 44 + src/asn/rrc/ASN_RRC_MAC-ParametersCommon.c | 357 + src/asn/rrc/ASN_RRC_MAC-ParametersCommon.h | 75 + src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.c | 366 + src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.h | 75 + src/asn/rrc/ASN_RRC_MCC-MNC-Digit.c | 61 + src/asn/rrc/ASN_RRC_MCC-MNC-Digit.h | 44 + src/asn/rrc/ASN_RRC_MCC.c | 49 + src/asn/rrc/ASN_RRC_MCC.h | 42 + src/asn/rrc/ASN_RRC_MIB.c | 406 + src/asn/rrc/ASN_RRC_MIB.h | 72 + src/asn/rrc/ASN_RRC_MIMO-LayersDL.c | 55 + src/asn/rrc/ASN_RRC_MIMO-LayersDL.h | 52 + src/asn/rrc/ASN_RRC_MIMO-LayersUL.c | 55 + src/asn/rrc/ASN_RRC_MIMO-LayersUL.h | 52 + src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.c | 2458 + src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.h | 310 + src/asn/rrc/ASN_RRC_MNC.c | 49 + src/asn/rrc/ASN_RRC_MNC.h | 42 + src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.c | 124 + src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.h | 53 + src/asn/rrc/ASN_RRC_MRDC-Parameters.c | 635 + src/asn/rrc/ASN_RRC_MRDC-Parameters.h | 104 + .../ASN_RRC_MRDC-SecondaryCellGroupConfig.c | 186 + .../ASN_RRC_MRDC-SecondaryCellGroupConfig.h | 63 + src/asn/rrc/ASN_RRC_MasterKeyUpdate.c | 72 + src/asn/rrc/ASN_RRC_MasterKeyUpdate.h | 48 + src/asn/rrc/ASN_RRC_MeasAndMobParameters.c | 75 + src/asn/rrc/ASN_RRC_MeasAndMobParameters.h | 46 + .../rrc/ASN_RRC_MeasAndMobParametersCommon.c | 827 + .../rrc/ASN_RRC_MeasAndMobParametersCommon.h | 122 + .../ASN_RRC_MeasAndMobParametersFRX-Diff.c | 723 + .../ASN_RRC_MeasAndMobParametersFRX-Diff.h | 113 + .../ASN_RRC_MeasAndMobParametersMRDC-Common.c | 96 + .../ASN_RRC_MeasAndMobParametersMRDC-Common.h | 46 + ...SN_RRC_MeasAndMobParametersMRDC-FRX-Diff.c | 96 + ...SN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h | 46 + ..._MeasAndMobParametersMRDC-XDD-Diff-v1560.c | 96 + ..._MeasAndMobParametersMRDC-XDD-Diff-v1560.h | 46 + ...SN_RRC_MeasAndMobParametersMRDC-XDD-Diff.c | 150 + ...SN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h | 51 + .../ASN_RRC_MeasAndMobParametersMRDC-v1560.c | 53 + .../ASN_RRC_MeasAndMobParametersMRDC-v1560.h | 42 + .../rrc/ASN_RRC_MeasAndMobParametersMRDC.c | 75 + .../rrc/ASN_RRC_MeasAndMobParametersMRDC.h | 46 + .../ASN_RRC_MeasAndMobParametersXDD-Diff.c | 357 + .../ASN_RRC_MeasAndMobParametersXDD-Diff.h | 75 + src/asn/rrc/ASN_RRC_MeasConfig.c | 205 + src/asn/rrc/ASN_RRC_MeasConfig.h | 81 + src/asn/rrc/ASN_RRC_MeasConfigMN.c | 248 + src/asn/rrc/ASN_RRC_MeasConfigMN.h | 70 + src/asn/rrc/ASN_RRC_MeasConfigSN.c | 126 + src/asn/rrc/ASN_RRC_MeasConfigSN.h | 53 + src/asn/rrc/ASN_RRC_MeasGapConfig.c | 118 + src/asn/rrc/ASN_RRC_MeasGapConfig.h | 53 + src/asn/rrc/ASN_RRC_MeasGapSharingConfig.c | 118 + src/asn/rrc/ASN_RRC_MeasGapSharingConfig.h | 53 + src/asn/rrc/ASN_RRC_MeasGapSharingScheme.c | 57 + src/asn/rrc/ASN_RRC_MeasGapSharingScheme.h | 53 + src/asn/rrc/ASN_RRC_MeasId.c | 61 + src/asn/rrc/ASN_RRC_MeasId.h | 44 + src/asn/rrc/ASN_RRC_MeasIdToAddMod.c | 70 + src/asn/rrc/ASN_RRC_MeasIdToAddMod.h | 44 + src/asn/rrc/ASN_RRC_MeasIdToAddModList.c | 50 + src/asn/rrc/ASN_RRC_MeasIdToAddModList.h | 44 + src/asn/rrc/ASN_RRC_MeasIdToRemoveList.c | 49 + src/asn/rrc/ASN_RRC_MeasIdToRemoveList.h | 42 + src/asn/rrc/ASN_RRC_MeasObjectEUTRA.c | 281 + src/asn/rrc/ASN_RRC_MeasObjectEUTRA.h | 73 + src/asn/rrc/ASN_RRC_MeasObjectId.c | 61 + src/asn/rrc/ASN_RRC_MeasObjectId.h | 44 + src/asn/rrc/ASN_RRC_MeasObjectNR.c | 586 + src/asn/rrc/ASN_RRC_MeasObjectNR.h | 107 + src/asn/rrc/ASN_RRC_MeasObjectToAddMod.c | 116 + src/asn/rrc/ASN_RRC_MeasObjectToAddMod.h | 67 + src/asn/rrc/ASN_RRC_MeasObjectToAddModList.c | 50 + src/asn/rrc/ASN_RRC_MeasObjectToAddModList.h | 44 + src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.c | 49 + src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.h | 42 + src/asn/rrc/ASN_RRC_MeasQuantityResults.c | 72 + src/asn/rrc/ASN_RRC_MeasQuantityResults.h | 44 + .../rrc/ASN_RRC_MeasQuantityResultsEUTRA.c | 72 + .../rrc/ASN_RRC_MeasQuantityResultsEUTRA.h | 44 + src/asn/rrc/ASN_RRC_MeasReportQuantity.c | 70 + src/asn/rrc/ASN_RRC_MeasReportQuantity.h | 42 + src/asn/rrc/ASN_RRC_MeasResult2EUTRA.c | 73 + src/asn/rrc/ASN_RRC_MeasResult2EUTRA.h | 49 + src/asn/rrc/ASN_RRC_MeasResult2NR.c | 84 + src/asn/rrc/ASN_RRC_MeasResult2NR.h | 51 + .../ASN_RRC_MeasResultCellListSFTD-EUTRA.c | 50 + .../ASN_RRC_MeasResultCellListSFTD-EUTRA.h | 44 + .../rrc/ASN_RRC_MeasResultCellListSFTD-NR.c | 50 + .../rrc/ASN_RRC_MeasResultCellListSFTD-NR.h | 44 + src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.c | 142 + src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.h | 45 + src/asn/rrc/ASN_RRC_MeasResultEUTRA.c | 73 + src/asn/rrc/ASN_RRC_MeasResultEUTRA.h | 50 + src/asn/rrc/ASN_RRC_MeasResultFreqList.c | 50 + src/asn/rrc/ASN_RRC_MeasResultFreqList.h | 44 + .../rrc/ASN_RRC_MeasResultFreqListFailMRDC.c | 50 + .../rrc/ASN_RRC_MeasResultFreqListFailMRDC.h | 44 + src/asn/rrc/ASN_RRC_MeasResultList2NR.c | 50 + src/asn/rrc/ASN_RRC_MeasResultList2NR.h | 44 + src/asn/rrc/ASN_RRC_MeasResultListEUTRA.c | 50 + src/asn/rrc/ASN_RRC_MeasResultListEUTRA.h | 44 + src/asn/rrc/ASN_RRC_MeasResultListNR.c | 50 + src/asn/rrc/ASN_RRC_MeasResultListNR.h | 44 + src/asn/rrc/ASN_RRC_MeasResultNR.c | 286 + src/asn/rrc/ASN_RRC_MeasResultNR.h | 75 + src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.c | 50 + src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.h | 42 + src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.c | 142 + src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.h | 45 + .../ASN_RRC_MeasResultServFreqListEUTRA-SCG.c | 50 + .../ASN_RRC_MeasResultServFreqListEUTRA-SCG.h | 44 + .../ASN_RRC_MeasResultServFreqListNR-SCG.c | 50 + .../ASN_RRC_MeasResultServFreqListNR-SCG.h | 44 + src/asn/rrc/ASN_RRC_MeasResultServMO.c | 73 + src/asn/rrc/ASN_RRC_MeasResultServMO.h | 50 + src/asn/rrc/ASN_RRC_MeasResultServMOList.c | 50 + src/asn/rrc/ASN_RRC_MeasResultServMOList.h | 44 + src/asn/rrc/ASN_RRC_MeasResults.c | 217 + src/asn/rrc/ASN_RRC_MeasResults.h | 86 + src/asn/rrc/ASN_RRC_MeasTiming.c | 194 + src/asn/rrc/ASN_RRC_MeasTiming.h | 66 + src/asn/rrc/ASN_RRC_MeasTimingList.c | 50 + src/asn/rrc/ASN_RRC_MeasTimingList.h | 44 + src/asn/rrc/ASN_RRC_MeasTriggerQuantity.c | 72 + src/asn/rrc/ASN_RRC_MeasTriggerQuantity.h | 56 + .../rrc/ASN_RRC_MeasTriggerQuantityEUTRA.c | 72 + .../rrc/ASN_RRC_MeasTriggerQuantityEUTRA.h | 56 + .../rrc/ASN_RRC_MeasTriggerQuantityOffset.c | 162 + .../rrc/ASN_RRC_MeasTriggerQuantityOffset.h | 54 + src/asn/rrc/ASN_RRC_MeasurementReport-IEs.c | 100 + src/asn/rrc/ASN_RRC_MeasurementReport-IEs.h | 47 + src/asn/rrc/ASN_RRC_MeasurementReport.c | 133 + src/asn/rrc/ASN_RRC_MeasurementReport.h | 63 + ...N_RRC_MeasurementTimingConfiguration-IEs.c | 64 + ...N_RRC_MeasurementTimingConfiguration-IEs.h | 44 + ...MeasurementTimingConfiguration-v1550-IEs.c | 100 + ...MeasurementTimingConfiguration-v1550-IEs.h | 46 + .../ASN_RRC_MeasurementTimingConfiguration.c | 207 + .../ASN_RRC_MeasurementTimingConfiguration.h | 80 + .../rrc/ASN_RRC_MobilityFromNRCommand-IEs.c | 172 + .../rrc/ASN_RRC_MobilityFromNRCommand-IEs.h | 61 + src/asn/rrc/ASN_RRC_MobilityFromNRCommand.c | 143 + src/asn/rrc/ASN_RRC_MobilityFromNRCommand.h | 65 + src/asn/rrc/ASN_RRC_MobilityStateParameters.c | 256 + src/asn/rrc/ASN_RRC_MobilityStateParameters.h | 68 + src/asn/rrc/ASN_RRC_ModulationOrder.c | 61 + src/asn/rrc/ASN_RRC_ModulationOrder.h | 55 + src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.c | 49 + src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.h | 42 + .../ASN_RRC_MultiFrequencyBandListNR-SIB.c | 50 + .../ASN_RRC_MultiFrequencyBandListNR-SIB.h | 44 + .../rrc/ASN_RRC_MultiFrequencyBandListNR.c | 49 + .../rrc/ASN_RRC_MultiFrequencyBandListNR.h | 42 + src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.c | 164 + src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.h | 67 + src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.c | 67 + src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.h | 44 + src/asn/rrc/ASN_RRC_NR-FreqInfo.c | 52 + src/asn/rrc/ASN_RRC_NR-FreqInfo.h | 44 + src/asn/rrc/ASN_RRC_NR-MultiBandInfo.c | 63 + src/asn/rrc/ASN_RRC_NR-MultiBandInfo.h | 44 + src/asn/rrc/ASN_RRC_NR-NS-PmaxList.c | 50 + src/asn/rrc/ASN_RRC_NR-NS-PmaxList.h | 44 + src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.c | 62 + src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.h | 42 + src/asn/rrc/ASN_RRC_NR-RS-Type.c | 53 + src/asn/rrc/ASN_RRC_NR-RS-Type.h | 51 + src/asn/rrc/ASN_RRC_NRDC-Parameters.c | 154 + src/asn/rrc/ASN_RRC_NRDC-Parameters.h | 57 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.c | 193 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.h | 67 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.c | 61 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.h | 44 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.c | 285 + src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.h | 69 + .../rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.c | 61 + .../rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.h | 44 + src/asn/rrc/ASN_RRC_NextHopChainingCount.c | 61 + src/asn/rrc/ASN_RRC_NextHopChainingCount.h | 44 + src/asn/rrc/ASN_RRC_NumberOfCarriers.c | 61 + src/asn/rrc/ASN_RRC_NumberOfCarriers.h | 44 + src/asn/rrc/ASN_RRC_OtherConfig-v1540.c | 53 + src/asn/rrc/ASN_RRC_OtherConfig-v1540.h | 46 + src/asn/rrc/ASN_RRC_OtherConfig.c | 207 + src/asn/rrc/ASN_RRC_OtherConfig.h | 74 + src/asn/rrc/ASN_RRC_OverheatingAssistance.c | 417 + src/asn/rrc/ASN_RRC_OverheatingAssistance.h | 77 + .../rrc/ASN_RRC_OverheatingAssistanceConfig.c | 124 + .../rrc/ASN_RRC_OverheatingAssistanceConfig.h | 61 + src/asn/rrc/ASN_RRC_P-Max.c | 61 + src/asn/rrc/ASN_RRC_P-Max.h | 44 + src/asn/rrc/ASN_RRC_P0-PUCCH-Id.c | 61 + src/asn/rrc/ASN_RRC_P0-PUCCH-Id.h | 44 + src/asn/rrc/ASN_RRC_P0-PUCCH.c | 90 + src/asn/rrc/ASN_RRC_P0-PUCCH.h | 42 + src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.c | 102 + src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.h | 44 + src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.c | 61 + src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.h | 44 + src/asn/rrc/ASN_RRC_PCCH-Config.c | 1272 + src/asn/rrc/ASN_RRC_PCCH-Config.h | 147 + src/asn/rrc/ASN_RRC_PCCH-Message.c | 50 + src/asn/rrc/ASN_RRC_PCCH-Message.h | 38 + src/asn/rrc/ASN_RRC_PCCH-MessageType.c | 145 + src/asn/rrc/ASN_RRC_PCCH-MessageType.h | 74 + src/asn/rrc/ASN_RRC_PCI-List.c | 49 + src/asn/rrc/ASN_RRC_PCI-List.h | 42 + src/asn/rrc/ASN_RRC_PCI-Range.c | 136 + src/asn/rrc/ASN_RRC_PCI-Range.h | 63 + src/asn/rrc/ASN_RRC_PCI-RangeElement.c | 60 + src/asn/rrc/ASN_RRC_PCI-RangeElement.h | 42 + src/asn/rrc/ASN_RRC_PCI-RangeIndex.c | 61 + src/asn/rrc/ASN_RRC_PCI-RangeIndex.h | 44 + src/asn/rrc/ASN_RRC_PCI-RangeIndexList.c | 49 + src/asn/rrc/ASN_RRC_PCI-RangeIndexList.h | 42 + src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.c | 61 + src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.h | 44 + src/asn/rrc/ASN_RRC_PDCCH-Config.c | 417 + src/asn/rrc/ASN_RRC_PDCCH-Config.h | 82 + src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.c | 1190 + src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.h | 140 + src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.c | 60 + src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.h | 42 + src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.c | 53 + src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.h | 46 + src/asn/rrc/ASN_RRC_PDCP-Config.c | 1418 + src/asn/rrc/ASN_RRC_PDCP-Config.h | 259 + src/asn/rrc/ASN_RRC_PDCP-Parameters.c | 593 + src/asn/rrc/ASN_RRC_PDCP-Parameters.h | 111 + src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.c | 150 + src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.h | 51 + ...ASN_RRC_PDSCH-CodeBlockGroupTransmission.c | 110 + ...ASN_RRC_PDSCH-CodeBlockGroupTransmission.h | 55 + src/asn/rrc/ASN_RRC_PDSCH-Config.c | 1624 + src/asn/rrc/ASN_RRC_PDSCH-Config.h | 211 + src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.c | 53 + src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.h | 46 + src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.c | 280 + src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.h | 77 + ...N_RRC_PDSCH-TimeDomainResourceAllocation.c | 178 + ...N_RRC_PDSCH-TimeDomainResourceAllocation.h | 50 + ...C_PDSCH-TimeDomainResourceAllocationList.c | 50 + ...C_PDSCH-TimeDomainResourceAllocationList.h | 44 + src/asn/rrc/ASN_RRC_PDU-SessionID.c | 61 + src/asn/rrc/ASN_RRC_PDU-SessionID.h | 44 + src/asn/rrc/ASN_RRC_PH-InfoMCG.c | 73 + src/asn/rrc/ASN_RRC_PH-InfoMCG.h | 50 + src/asn/rrc/ASN_RRC_PH-InfoSCG.c | 73 + src/asn/rrc/ASN_RRC_PH-InfoSCG.h | 50 + src/asn/rrc/ASN_RRC_PH-TypeListMCG.c | 50 + src/asn/rrc/ASN_RRC_PH-TypeListMCG.h | 44 + src/asn/rrc/ASN_RRC_PH-TypeListSCG.c | 50 + src/asn/rrc/ASN_RRC_PH-TypeListSCG.h | 44 + src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.c | 96 + src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.h | 51 + src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.c | 96 + src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.h | 51 + src/asn/rrc/ASN_RRC_PHR-Config.c | 322 + src/asn/rrc/ASN_RRC_PHR-Config.h | 87 + src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.c | 93 + src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.h | 55 + src/asn/rrc/ASN_RRC_PLMN-Identity.c | 63 + src/asn/rrc/ASN_RRC_PLMN-Identity.h | 44 + src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.c | 212 + src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.h | 68 + src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.c | 50 + src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.h | 44 + .../rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.c | 50 + .../rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h | 44 + .../rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.c | 50 + .../rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h | 44 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.c | 136 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.h | 51 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.c | 50 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.h | 44 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.c | 137 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.h | 51 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.c | 50 + src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.h | 44 + .../rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.c | 64 + .../rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.h | 55 + src/asn/rrc/ASN_RRC_PRB-Id.c | 61 + src/asn/rrc/ASN_RRC_PRB-Id.h | 44 + .../ASN_RRC_PTRS-DensityRecommendationDL.c | 240 + .../ASN_RRC_PTRS-DensityRecommendationDL.h | 44 + .../ASN_RRC_PTRS-DensityRecommendationUL.c | 440 + .../ASN_RRC_PTRS-DensityRecommendationUL.h | 49 + src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.c | 366 + src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.h | 68 + src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.c | 699 + src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.h | 102 + src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.c | 60 + src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.h | 42 + src/asn/rrc/ASN_RRC_PUCCH-Config.c | 958 + src/asn/rrc/ASN_RRC_PUCCH-Config.h | 122 + src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.c | 220 + src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.h | 56 + src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.c | 326 + src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.h | 70 + src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.c | 63 + src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.h | 56 + .../ASN_RRC_PUCCH-PathlossReferenceRS-Id.c | 61 + .../ASN_RRC_PUCCH-PathlossReferenceRS-Id.h | 44 + .../rrc/ASN_RRC_PUCCH-PathlossReferenceRS.c | 114 + .../rrc/ASN_RRC_PUCCH-PathlossReferenceRS.h | 60 + src/asn/rrc/ASN_RRC_PUCCH-PowerControl.c | 464 + src/asn/rrc/ASN_RRC_PUCCH-PowerControl.h | 74 + src/asn/rrc/ASN_RRC_PUCCH-Resource.c | 225 + src/asn/rrc/ASN_RRC_PUCCH-Resource.h | 80 + src/asn/rrc/ASN_RRC_PUCCH-ResourceId.c | 61 + src/asn/rrc/ASN_RRC_PUCCH-ResourceId.h | 44 + src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.c | 175 + src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.h | 51 + src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.h | 44 + .../rrc/ASN_RRC_PUCCH-SpatialRelationInfo.c | 265 + .../rrc/ASN_RRC_PUCCH-SpatialRelationInfo.h | 83 + .../rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.c | 61 + .../rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.h | 44 + src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.c | 122 + src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.h | 45 + src/asn/rrc/ASN_RRC_PUCCH-format0.c | 160 + src/asn/rrc/ASN_RRC_PUCCH-format0.h | 42 + src/asn/rrc/ASN_RRC_PUCCH-format1.c | 200 + src/asn/rrc/ASN_RRC_PUCCH-format1.h | 43 + src/asn/rrc/ASN_RRC_PUCCH-format2.c | 160 + src/asn/rrc/ASN_RRC_PUCCH-format2.h | 42 + src/asn/rrc/ASN_RRC_PUCCH-format3.c | 160 + src/asn/rrc/ASN_RRC_PUCCH-format3.h | 42 + src/asn/rrc/ASN_RRC_PUCCH-format4.c | 236 + src/asn/rrc/ASN_RRC_PUCCH-format4.h | 58 + ...ASN_RRC_PUSCH-CodeBlockGroupTransmission.c | 100 + ...ASN_RRC_PUSCH-CodeBlockGroupTransmission.h | 53 + src/asn/rrc/ASN_RRC_PUSCH-Config.c | 849 + src/asn/rrc/ASN_RRC_PUSCH-Config.h | 128 + src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.c | 187 + src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.h | 57 + .../ASN_RRC_PUSCH-PathlossReferenceRS-Id.c | 61 + .../ASN_RRC_PUSCH-PathlossReferenceRS-Id.h | 44 + .../rrc/ASN_RRC_PUSCH-PathlossReferenceRS.c | 114 + .../rrc/ASN_RRC_PUSCH-PathlossReferenceRS.h | 60 + src/asn/rrc/ASN_RRC_PUSCH-PowerControl.c | 672 + src/asn/rrc/ASN_RRC_PUSCH-PowerControl.h | 99 + src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.c | 260 + src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.h | 70 + src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.c | 132 + src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.h | 47 + ...N_RRC_PUSCH-TimeDomainResourceAllocation.c | 178 + ...N_RRC_PUSCH-TimeDomainResourceAllocation.h | 50 + ...C_PUSCH-TimeDomainResourceAllocationList.c | 50 + ...C_PUSCH-TimeDomainResourceAllocationList.h | 44 + src/asn/rrc/ASN_RRC_Paging.c | 101 + src/asn/rrc/ASN_RRC_Paging.h | 49 + src/asn/rrc/ASN_RRC_PagingCycle.c | 57 + src/asn/rrc/ASN_RRC_PagingCycle.h | 53 + src/asn/rrc/ASN_RRC_PagingRecord.c | 106 + src/asn/rrc/ASN_RRC_PagingRecord.h | 52 + src/asn/rrc/ASN_RRC_PagingRecordList.c | 50 + src/asn/rrc/ASN_RRC_PagingRecordList.h | 44 + src/asn/rrc/ASN_RRC_PagingUE-Identity.c | 62 + src/asn/rrc/ASN_RRC_PagingUE-Identity.h | 59 + src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.c | 65 + src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.h | 57 + src/asn/rrc/ASN_RRC_PeriodicalReportConfig.c | 251 + src/asn/rrc/ASN_RRC_PeriodicalReportConfig.h | 73 + .../ASN_RRC_PeriodicalReportConfigInterRAT.c | 168 + .../ASN_RRC_PeriodicalReportConfigInterRAT.h | 63 + src/asn/rrc/ASN_RRC_Phy-Parameters.c | 97 + src/asn/rrc/ASN_RRC_Phy-Parameters.h | 50 + src/asn/rrc/ASN_RRC_Phy-ParametersCommon.c | 2186 + src/asn/rrc/ASN_RRC_Phy-ParametersCommon.h | 246 + src/asn/rrc/ASN_RRC_Phy-ParametersFR1.c | 389 + src/asn/rrc/ASN_RRC_Phy-ParametersFR1.h | 91 + src/asn/rrc/ASN_RRC_Phy-ParametersFR2.c | 335 + src/asn/rrc/ASN_RRC_Phy-ParametersFR2.h | 86 + src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.c | 3037 + src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.h | 310 + src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.c | 126 + src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.h | 53 + src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.c | 465 + src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.h | 85 + src/asn/rrc/ASN_RRC_PhysCellId.c | 61 + src/asn/rrc/ASN_RRC_PhysCellId.h | 44 + src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.c | 492 + src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.h | 99 + src/asn/rrc/ASN_RRC_PollByte.c | 177 + src/asn/rrc/ASN_RRC_PollByte.h | 113 + src/asn/rrc/ASN_RRC_PollPDU.c | 113 + src/asn/rrc/ASN_RRC_PollPDU.h | 81 + src/asn/rrc/ASN_RRC_PortIndex2.c | 61 + src/asn/rrc/ASN_RRC_PortIndex2.h | 44 + src/asn/rrc/ASN_RRC_PortIndex4.c | 61 + src/asn/rrc/ASN_RRC_PortIndex4.h | 44 + src/asn/rrc/ASN_RRC_PortIndex8.c | 61 + src/asn/rrc/ASN_RRC_PortIndex8.h | 44 + src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.c | 1130 + src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.h | 143 + src/asn/rrc/ASN_RRC_ProcessingParameters.c | 183 + src/asn/rrc/ASN_RRC_ProcessingParameters.h | 57 + src/asn/rrc/ASN_RRC_Q-OffsetRange.c | 111 + src/asn/rrc/ASN_RRC_Q-OffsetRange.h | 80 + src/asn/rrc/ASN_RRC_Q-OffsetRangeList.c | 240 + src/asn/rrc/ASN_RRC_Q-OffsetRangeList.h | 45 + src/asn/rrc/ASN_RRC_Q-QualMin.c | 61 + src/asn/rrc/ASN_RRC_Q-QualMin.h | 44 + src/asn/rrc/ASN_RRC_Q-RxLevMin.c | 61 + src/asn/rrc/ASN_RRC_Q-RxLevMin.h | 44 + src/asn/rrc/ASN_RRC_QCL-Info.c | 186 + src/asn/rrc/ASN_RRC_QCL-Info.h | 75 + src/asn/rrc/ASN_RRC_QFI.c | 61 + src/asn/rrc/ASN_RRC_QFI.h | 44 + src/asn/rrc/ASN_RRC_QuantityConfig.c | 182 + src/asn/rrc/ASN_RRC_QuantityConfig.h | 60 + src/asn/rrc/ASN_RRC_QuantityConfigNR.c | 63 + src/asn/rrc/ASN_RRC_QuantityConfigNR.h | 44 + src/asn/rrc/ASN_RRC_QuantityConfigRS.c | 60 + src/asn/rrc/ASN_RRC_QuantityConfigRS.h | 41 + src/asn/rrc/ASN_RRC_RA-Prioritization.c | 162 + src/asn/rrc/ASN_RRC_RA-Prioritization.h | 61 + src/asn/rrc/ASN_RRC_RACH-ConfigCommon.c | 1229 + src/asn/rrc/ASN_RRC_RACH-ConfigCommon.h | 246 + src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.c | 64 + src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.h | 48 + src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.c | 462 + src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.h | 93 + src/asn/rrc/ASN_RRC_RAN-AreaCode.c | 61 + src/asn/rrc/ASN_RRC_RAN-AreaCode.h | 44 + src/asn/rrc/ASN_RRC_RAN-AreaConfig.c | 135 + src/asn/rrc/ASN_RRC_RAN-AreaConfig.h | 49 + .../rrc/ASN_RRC_RAN-NotificationAreaInfo.c | 64 + .../rrc/ASN_RRC_RAN-NotificationAreaInfo.h | 61 + src/asn/rrc/ASN_RRC_RAT-Type.c | 59 + src/asn/rrc/ASN_RRC_RAT-Type.h | 56 + src/asn/rrc/ASN_RRC_RF-Parameters.c | 370 + src/asn/rrc/ASN_RRC_RF-Parameters.h | 86 + src/asn/rrc/ASN_RRC_RF-ParametersMRDC.c | 296 + src/asn/rrc/ASN_RRC_RF-ParametersMRDC.h | 78 + src/asn/rrc/ASN_RRC_RLC-BearerConfig.c | 192 + src/asn/rrc/ASN_RRC_RLC-BearerConfig.h | 76 + src/asn/rrc/ASN_RRC_RLC-Config.c | 274 + src/asn/rrc/ASN_RRC_RLC-Config.h | 88 + src/asn/rrc/ASN_RRC_RLC-Parameters.c | 204 + src/asn/rrc/ASN_RRC_RLC-Parameters.h | 60 + src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.c | 357 + src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.h | 98 + src/asn/rrc/ASN_RRC_RNTI-Value.c | 61 + src/asn/rrc/ASN_RRC_RNTI-Value.h | 44 + .../rrc/ASN_RRC_RRC-TransactionIdentifier.c | 61 + .../rrc/ASN_RRC_RRC-TransactionIdentifier.h | 44 + src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.c | 121 + src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.h | 49 + .../ASN_RRC_RRCReconfiguration-v1530-IEs.c | 320 + .../ASN_RRC_RRCReconfiguration-v1530-IEs.h | 67 + .../ASN_RRC_RRCReconfiguration-v1540-IEs.c | 64 + .../ASN_RRC_RRCReconfiguration-v1540-IEs.h | 44 + .../ASN_RRC_RRCReconfiguration-v1560-IEs.c | 137 + .../ASN_RRC_RRCReconfiguration-v1560-IEs.h | 51 + src/asn/rrc/ASN_RRC_RRCReconfiguration.c | 143 + src/asn/rrc/ASN_RRC_RRCReconfiguration.h | 65 + .../ASN_RRC_RRCReconfigurationComplete-IEs.c | 63 + .../ASN_RRC_RRCReconfigurationComplete-IEs.h | 44 + ...RRC_RRCReconfigurationComplete-v1530-IEs.c | 64 + ...RRC_RRCReconfigurationComplete-v1530-IEs.h | 44 + ...RRC_RRCReconfigurationComplete-v1560-IEs.c | 144 + ...RRC_RRCReconfigurationComplete-v1560-IEs.h | 62 + .../rrc/ASN_RRC_RRCReconfigurationComplete.c | 143 + .../rrc/ASN_RRC_RRCReconfigurationComplete.h | 65 + src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.c | 100 + src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.h | 47 + src/asn/rrc/ASN_RRC_RRCReestablishment.c | 143 + src/asn/rrc/ASN_RRC_RRCReestablishment.h | 65 + .../ASN_RRC_RRCReestablishmentComplete-IEs.c | 90 + .../ASN_RRC_RRCReestablishmentComplete-IEs.h | 45 + .../rrc/ASN_RRC_RRCReestablishmentComplete.c | 143 + .../rrc/ASN_RRC_RRCReestablishmentComplete.h | 65 + .../ASN_RRC_RRCReestablishmentRequest-IEs.c | 106 + .../ASN_RRC_RRCReestablishmentRequest-IEs.h | 44 + .../rrc/ASN_RRC_RRCReestablishmentRequest.c | 50 + .../rrc/ASN_RRC_RRCReestablishmentRequest.h | 40 + src/asn/rrc/ASN_RRC_RRCReject-IEs.c | 100 + src/asn/rrc/ASN_RRC_RRCReject-IEs.h | 47 + src/asn/rrc/ASN_RRC_RRCReject.c | 133 + src/asn/rrc/ASN_RRC_RRCReject.h | 63 + src/asn/rrc/ASN_RRC_RRCRelease-IEs.c | 255 + src/asn/rrc/ASN_RRC_RRCRelease-IEs.h | 72 + src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.c | 90 + src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.h | 45 + src/asn/rrc/ASN_RRC_RRCRelease.c | 143 + src/asn/rrc/ASN_RRC_RRCRelease.h | 65 + src/asn/rrc/ASN_RRC_RRCResume-IEs.c | 175 + src/asn/rrc/ASN_RRC_RRCResume-IEs.h | 57 + src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.c | 126 + src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.h | 47 + src/asn/rrc/ASN_RRC_RRCResume.c | 143 + src/asn/rrc/ASN_RRC_RRCResume.h | 65 + src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.c | 151 + src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.h | 53 + src/asn/rrc/ASN_RRC_RRCResumeComplete.c | 143 + src/asn/rrc/ASN_RRC_RRCResumeComplete.h | 65 + src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.c | 152 + src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.h | 45 + src/asn/rrc/ASN_RRC_RRCResumeRequest.c | 50 + src/asn/rrc/ASN_RRC_RRCResumeRequest.h | 40 + src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.c | 152 + src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.h | 45 + src/asn/rrc/ASN_RRC_RRCResumeRequest1.c | 50 + src/asn/rrc/ASN_RRC_RRCResumeRequest1.h | 40 + src/asn/rrc/ASN_RRC_RRCSetup-IEs.c | 136 + src/asn/rrc/ASN_RRC_RRCSetup-IEs.h | 48 + src/asn/rrc/ASN_RRC_RRCSetup.c | 143 + src/asn/rrc/ASN_RRC_RRCSetup.h | 65 + src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.c | 391 + src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.h | 89 + src/asn/rrc/ASN_RRC_RRCSetupComplete.c | 143 + src/asn/rrc/ASN_RRC_RRCSetupComplete.h | 65 + src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.c | 106 + src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.h | 44 + src/asn/rrc/ASN_RRC_RRCSetupRequest.c | 50 + src/asn/rrc/ASN_RRC_RRCSetupRequest.h | 40 + .../ASN_RRC_RRCSystemInfoRequest-r15-IEs.c | 132 + .../ASN_RRC_RRCSystemInfoRequest-r15-IEs.h | 41 + src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.c | 133 + src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.h | 63 + src/asn/rrc/ASN_RRC_RRM-Config.c | 289 + src/asn/rrc/ASN_RRC_RRM-Config.h | 124 + src/asn/rrc/ASN_RRC_RSRP-Range.c | 61 + src/asn/rrc/ASN_RRC_RSRP-Range.h | 44 + src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.c | 61 + src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.h | 44 + src/asn/rrc/ASN_RRC_RSRQ-Range.c | 61 + src/asn/rrc/ASN_RRC_RSRQ-Range.h | 44 + src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.c | 61 + src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.h | 44 + src/asn/rrc/ASN_RRC_RadioBearerConfig.c | 140 + src/asn/rrc/ASN_RRC_RadioBearerConfig.h | 60 + .../rrc/ASN_RRC_RadioLinkMonitoringConfig.c | 345 + .../rrc/ASN_RRC_RadioLinkMonitoringConfig.h | 87 + .../rrc/ASN_RRC_RadioLinkMonitoringRS-Id.c | 61 + .../rrc/ASN_RRC_RadioLinkMonitoringRS-Id.h | 44 + src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.c | 172 + src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.h | 72 + src/asn/rrc/ASN_RRC_RangeToBestCell.c | 36 + src/asn/rrc/ASN_RRC_RangeToBestCell.h | 44 + src/asn/rrc/ASN_RRC_RateMatchPattern.c | 765 + src/asn/rrc/ASN_RRC_RateMatchPattern.h | 122 + src/asn/rrc/ASN_RRC_RateMatchPatternGroup.c | 103 + src/asn/rrc/ASN_RRC_RateMatchPatternGroup.h | 62 + src/asn/rrc/ASN_RRC_RateMatchPatternId.c | 61 + src/asn/rrc/ASN_RRC_RateMatchPatternId.h | 44 + src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.c | 283 + src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.h | 76 + src/asn/rrc/ASN_RRC_ReconfigurationWithSync.c | 252 + src/asn/rrc/ASN_RRC_ReconfigurationWithSync.h | 87 + .../rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.c | 108 + .../rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.h | 49 + src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.c | 64 + src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.h | 61 + .../rrc/ASN_RRC_ReducedAggregatedBandwidth.c | 73 + .../rrc/ASN_RRC_ReducedAggregatedBandwidth.h | 61 + src/asn/rrc/ASN_RRC_ReestabNCellInfo.c | 106 + src/asn/rrc/ASN_RRC_ReestabNCellInfo.h | 44 + src/asn/rrc/ASN_RRC_ReestabNCellInfoList.c | 50 + src/asn/rrc/ASN_RRC_ReestabNCellInfoList.h | 44 + src/asn/rrc/ASN_RRC_ReestabUE-Identity.c | 70 + src/asn/rrc/ASN_RRC_ReestabUE-Identity.h | 44 + src/asn/rrc/ASN_RRC_ReestablishmentCause.c | 57 + src/asn/rrc/ASN_RRC_ReestablishmentCause.h | 53 + src/asn/rrc/ASN_RRC_ReestablishmentInfo.c | 73 + src/asn/rrc/ASN_RRC_ReestablishmentInfo.h | 46 + src/asn/rrc/ASN_RRC_ReferenceSignalConfig.c | 64 + src/asn/rrc/ASN_RRC_ReferenceSignalConfig.h | 44 + src/asn/rrc/ASN_RRC_RegisteredAMF.c | 63 + src/asn/rrc/ASN_RRC_RegisteredAMF.h | 44 + src/asn/rrc/ASN_RRC_RejectWaitTime.c | 61 + src/asn/rrc/ASN_RRC_RejectWaitTime.h | 44 + src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.c | 50 + src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.h | 44 + src/asn/rrc/ASN_RRC_ReportCGI.c | 50 + src/asn/rrc/ASN_RRC_ReportCGI.h | 44 + src/asn/rrc/ASN_RRC_ReportConfigId.c | 61 + src/asn/rrc/ASN_RRC_ReportConfigId.h | 44 + src/asn/rrc/ASN_RRC_ReportConfigInterRAT.c | 128 + src/asn/rrc/ASN_RRC_ReportConfigInterRAT.h | 71 + src/asn/rrc/ASN_RRC_ReportConfigNR.c | 170 + src/asn/rrc/ASN_RRC_ReportConfigNR.h | 76 + src/asn/rrc/ASN_RRC_ReportConfigToAddMod.c | 116 + src/asn/rrc/ASN_RRC_ReportConfigToAddMod.h | 67 + .../rrc/ASN_RRC_ReportConfigToAddModList.c | 50 + .../rrc/ASN_RRC_ReportConfigToAddModList.h | 44 + .../rrc/ASN_RRC_ReportConfigToRemoveList.c | 49 + .../rrc/ASN_RRC_ReportConfigToRemoveList.h | 42 + src/asn/rrc/ASN_RRC_ReportInterval.c | 77 + src/asn/rrc/ASN_RRC_ReportInterval.h | 63 + src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.c | 60 + src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.h | 45 + src/asn/rrc/ASN_RRC_ReportSFTD-NR.c | 60 + src/asn/rrc/ASN_RRC_ReportSFTD-NR.h | 45 + src/asn/rrc/ASN_RRC_ReselectionThreshold.c | 61 + src/asn/rrc/ASN_RRC_ReselectionThreshold.h | 44 + src/asn/rrc/ASN_RRC_ReselectionThresholdQ.c | 61 + src/asn/rrc/ASN_RRC_ReselectionThresholdQ.h | 44 + src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.c | 63 + src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.h | 44 + .../rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.c | 50 + .../rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.h | 44 + src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.c | 63 + src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.h | 44 + src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.c | 50 + src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.h | 44 + src/asn/rrc/ASN_RRC_ResumeCause.c | 81 + src/asn/rrc/ASN_RRC_ResumeCause.h | 65 + src/asn/rrc/ASN_RRC_S-NSSAI.c | 134 + src/asn/rrc/ASN_RRC_S-NSSAI.h | 52 + .../rrc/ASN_RRC_SCGFailureInformation-IEs.c | 91 + .../rrc/ASN_RRC_SCGFailureInformation-IEs.h | 47 + src/asn/rrc/ASN_RRC_SCGFailureInformation.c | 133 + src/asn/rrc/ASN_RRC_SCGFailureInformation.h | 63 + .../ASN_RRC_SCGFailureInformationEUTRA-IEs.c | 91 + .../ASN_RRC_SCGFailureInformationEUTRA-IEs.h | 47 + .../rrc/ASN_RRC_SCGFailureInformationEUTRA.c | 133 + .../rrc/ASN_RRC_SCGFailureInformationEUTRA.h | 63 + src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.c | 217 + src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.h | 53 + src/asn/rrc/ASN_RRC_SCellConfig.c | 130 + src/asn/rrc/ASN_RRC_SCellConfig.h | 57 + src/asn/rrc/ASN_RRC_SCellIndex.c | 61 + src/asn/rrc/ASN_RRC_SCellIndex.h | 44 + src/asn/rrc/ASN_RRC_SDAP-Config.c | 340 + src/asn/rrc/ASN_RRC_SDAP-Config.h | 76 + src/asn/rrc/ASN_RRC_SDAP-Parameters.c | 96 + src/asn/rrc/ASN_RRC_SDAP-Parameters.h | 50 + src/asn/rrc/ASN_RRC_SI-RequestConfig.c | 315 + src/asn/rrc/ASN_RRC_SI-RequestConfig.h | 83 + src/asn/rrc/ASN_RRC_SI-RequestResources.c | 162 + src/asn/rrc/ASN_RRC_SI-RequestResources.h | 42 + src/asn/rrc/ASN_RRC_SI-SchedulingInfo.c | 263 + src/asn/rrc/ASN_RRC_SI-SchedulingInfo.h | 74 + src/asn/rrc/ASN_RRC_SIB-Mapping.c | 50 + src/asn/rrc/ASN_RRC_SIB-Mapping.h | 44 + src/asn/rrc/ASN_RRC_SIB-TypeInfo.c | 222 + src/asn/rrc/ASN_RRC_SIB-TypeInfo.h | 71 + src/asn/rrc/ASN_RRC_SIB1.c | 675 + src/asn/rrc/ASN_RRC_SIB1.h | 123 + src/asn/rrc/ASN_RRC_SIB2.c | 786 + src/asn/rrc/ASN_RRC_SIB2.h | 167 + src/asn/rrc/ASN_RRC_SIB3.c | 74 + src/asn/rrc/ASN_RRC_SIB3.h | 50 + src/asn/rrc/ASN_RRC_SIB4.c | 62 + src/asn/rrc/ASN_RRC_SIB4.h | 46 + src/asn/rrc/ASN_RRC_SIB5.c | 84 + src/asn/rrc/ASN_RRC_SIB5.h | 52 + src/asn/rrc/ASN_RRC_SIB6.c | 185 + src/asn/rrc/ASN_RRC_SIB6.h | 48 + src/asn/rrc/ASN_RRC_SIB7.c | 291 + src/asn/rrc/ASN_RRC_SIB7.h | 60 + src/asn/rrc/ASN_RRC_SIB8.c | 301 + src/asn/rrc/ASN_RRC_SIB8.h | 61 + src/asn/rrc/ASN_RRC_SIB9.c | 269 + src/asn/rrc/ASN_RRC_SIB9.h | 56 + src/asn/rrc/ASN_RRC_SINR-Range.c | 61 + src/asn/rrc/ASN_RRC_SINR-Range.h | 44 + src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.c | 61 + src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.h | 44 + src/asn/rrc/ASN_RRC_SK-Counter.c | 61 + src/asn/rrc/ASN_RRC_SK-Counter.h | 44 + src/asn/rrc/ASN_RRC_SN-FieldLengthAM.c | 53 + src/asn/rrc/ASN_RRC_SN-FieldLengthAM.h | 51 + src/asn/rrc/ASN_RRC_SN-FieldLengthUM.c | 53 + src/asn/rrc/ASN_RRC_SN-FieldLengthUM.h | 51 + src/asn/rrc/ASN_RRC_SPS-Config.c | 230 + src/asn/rrc/ASN_RRC_SPS-Config.h | 74 + src/asn/rrc/ASN_RRC_SRB-Identity.c | 61 + src/asn/rrc/ASN_RRC_SRB-Identity.h | 44 + src/asn/rrc/ASN_RRC_SRB-ToAddMod.c | 171 + src/asn/rrc/ASN_RRC_SRB-ToAddMod.h | 61 + src/asn/rrc/ASN_RRC_SRB-ToAddModList.c | 50 + src/asn/rrc/ASN_RRC_SRB-ToAddModList.h | 44 + src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.c | 126 + src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.h | 53 + .../rrc/ASN_RRC_SRI-PUSCH-PowerControlId.c | 61 + .../rrc/ASN_RRC_SRI-PUSCH-PowerControlId.h | 44 + src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.c | 122 + src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.h | 41 + src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.c | 359 + src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.h | 86 + src/asn/rrc/ASN_RRC_SRS-Config.c | 430 + src/asn/rrc/ASN_RRC_SRS-Config.h | 82 + .../rrc/ASN_RRC_SRS-PeriodicityAndOffset.c | 692 + .../rrc/ASN_RRC_SRS-PeriodicityAndOffset.h | 83 + src/asn/rrc/ASN_RRC_SRS-Resource.c | 1195 + src/asn/rrc/ASN_RRC_SRS-Resource.h | 175 + src/asn/rrc/ASN_RRC_SRS-ResourceId.c | 61 + src/asn/rrc/ASN_RRC_SRS-ResourceId.h | 44 + src/asn/rrc/ASN_RRC_SRS-ResourceSet.c | 812 + src/asn/rrc/ASN_RRC_SRS-ResourceSet.h | 149 + src/asn/rrc/ASN_RRC_SRS-ResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_SRS-ResourceSetId.h | 44 + src/asn/rrc/ASN_RRC_SRS-Resources.c | 404 + src/asn/rrc/ASN_RRC_SRS-Resources.h | 79 + src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.c | 179 + src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.h | 70 + src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.c | 206 + src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.h | 79 + src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.c | 178 + src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.h | 65 + src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.c | 207 + src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.h | 51 + src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.c | 126 + src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.h | 49 + src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.c | 126 + src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.h | 42 + src/asn/rrc/ASN_RRC_SSB-ConfigMobility.c | 74 + src/asn/rrc/ASN_RRC_SSB-ConfigMobility.h | 50 + src/asn/rrc/ASN_RRC_SSB-Index.c | 61 + src/asn/rrc/ASN_RRC_SSB-Index.h | 44 + src/asn/rrc/ASN_RRC_SSB-MTC.c | 386 + src/asn/rrc/ASN_RRC_SSB-MTC.h | 75 + src/asn/rrc/ASN_RRC_SSB-MTC2.c | 193 + src/asn/rrc/ASN_RRC_SSB-MTC2.h | 62 + src/asn/rrc/ASN_RRC_SSB-ToMeasure.c | 180 + src/asn/rrc/ASN_RRC_SSB-ToMeasure.h | 54 + src/asn/rrc/ASN_RRC_SchedulingInfo.c | 172 + src/asn/rrc/ASN_RRC_SchedulingInfo.h | 60 + src/asn/rrc/ASN_RRC_SchedulingRequestConfig.c | 209 + src/asn/rrc/ASN_RRC_SchedulingRequestConfig.h | 56 + src/asn/rrc/ASN_RRC_SchedulingRequestId.c | 61 + src/asn/rrc/ASN_RRC_SchedulingRequestId.h | 44 + .../ASN_RRC_SchedulingRequestResourceConfig.c | 626 + .../ASN_RRC_SchedulingRequestResourceConfig.h | 90 + .../rrc/ASN_RRC_SchedulingRequestResourceId.c | 61 + .../rrc/ASN_RRC_SchedulingRequestResourceId.h | 44 + .../rrc/ASN_RRC_SchedulingRequestToAddMod.c | 188 + .../rrc/ASN_RRC_SchedulingRequestToAddMod.h | 67 + src/asn/rrc/ASN_RRC_ScramblingId.c | 61 + src/asn/rrc/ASN_RRC_ScramblingId.h | 44 + src/asn/rrc/ASN_RRC_SearchSpace.c | 1984 + src/asn/rrc/ASN_RRC_SearchSpace.h | 288 + src/asn/rrc/ASN_RRC_SearchSpaceId.c | 61 + src/asn/rrc/ASN_RRC_SearchSpaceId.h | 44 + src/asn/rrc/ASN_RRC_SearchSpaceZero.c | 61 + src/asn/rrc/ASN_RRC_SearchSpaceZero.h | 44 + src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.c | 62 + src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.h | 46 + src/asn/rrc/ASN_RRC_SecurityConfig.c | 109 + src/asn/rrc/ASN_RRC_SecurityConfig.h | 55 + src/asn/rrc/ASN_RRC_SecurityConfigSMC.c | 50 + src/asn/rrc/ASN_RRC_SecurityConfigSMC.h | 44 + src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.c | 100 + src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.h | 47 + src/asn/rrc/ASN_RRC_SecurityModeCommand.c | 143 + src/asn/rrc/ASN_RRC_SecurityModeCommand.h | 65 + .../rrc/ASN_RRC_SecurityModeComplete-IEs.c | 90 + .../rrc/ASN_RRC_SecurityModeComplete-IEs.h | 45 + src/asn/rrc/ASN_RRC_SecurityModeComplete.c | 143 + src/asn/rrc/ASN_RRC_SecurityModeComplete.h | 65 + src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.c | 90 + src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.h | 45 + src/asn/rrc/ASN_RRC_SecurityModeFailure.c | 143 + src/asn/rrc/ASN_RRC_SecurityModeFailure.h | 65 + src/asn/rrc/ASN_RRC_ServCellIndex.c | 61 + src/asn/rrc/ASN_RRC_ServCellIndex.h | 44 + src/asn/rrc/ASN_RRC_ServingCellConfig.c | 948 + src/asn/rrc/ASN_RRC_ServingCellConfig.h | 178 + src/asn/rrc/ASN_RRC_ServingCellConfigCommon.c | 687 + src/asn/rrc/ASN_RRC_ServingCellConfigCommon.h | 122 + .../rrc/ASN_RRC_ServingCellConfigCommonSIB.c | 383 + .../rrc/ASN_RRC_ServingCellConfigCommonSIB.h | 81 + src/asn/rrc/ASN_RRC_SetupRelease.c | 2813 + src/asn/rrc/ASN_RRC_SetupRelease.h | 1075 + src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.c | 67 + src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.h | 44 + src/asn/rrc/ASN_RRC_ShortMAC-I.c | 67 + src/asn/rrc/ASN_RRC_ShortMAC-I.h | 44 + src/asn/rrc/ASN_RRC_SlotFormatCombination.c | 163 + src/asn/rrc/ASN_RRC_SlotFormatCombination.h | 49 + src/asn/rrc/ASN_RRC_SlotFormatCombinationId.c | 61 + src/asn/rrc/ASN_RRC_SlotFormatCombinationId.h | 44 + .../ASN_RRC_SlotFormatCombinationsPerCell.c | 196 + .../ASN_RRC_SlotFormatCombinationsPerCell.h | 60 + src/asn/rrc/ASN_RRC_SlotFormatIndicator.c | 259 + src/asn/rrc/ASN_RRC_SlotFormatIndicator.h | 64 + src/asn/rrc/ASN_RRC_SpCellConfig.c | 139 + src/asn/rrc/ASN_RRC_SpCellConfig.h | 60 + src/asn/rrc/ASN_RRC_SpatialRelations.c | 284 + src/asn/rrc/ASN_RRC_SpatialRelations.h | 74 + src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.c | 160 + src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.h | 57 + src/asn/rrc/ASN_RRC_SubcarrierSpacing.c | 65 + src/asn/rrc/ASN_RRC_SubcarrierSpacing.h | 57 + src/asn/rrc/ASN_RRC_SupportedBandwidth.c | 176 + src/asn/rrc/ASN_RRC_SupportedBandwidth.h | 73 + .../rrc/ASN_RRC_SupportedCSI-RS-Resource.c | 186 + .../rrc/ASN_RRC_SupportedCSI-RS-Resource.h | 55 + src/asn/rrc/ASN_RRC_SuspendConfig.c | 103 + src/asn/rrc/ASN_RRC_SuspendConfig.h | 56 + src/asn/rrc/ASN_RRC_SystemInformation-IEs.c | 295 + src/asn/rrc/ASN_RRC_SystemInformation-IEs.h | 101 + src/asn/rrc/ASN_RRC_SystemInformation.c | 133 + src/asn/rrc/ASN_RRC_SystemInformation.h | 63 + src/asn/rrc/ASN_RRC_T-PollRetransmit.c | 177 + src/asn/rrc/ASN_RRC_T-PollRetransmit.h | 113 + src/asn/rrc/ASN_RRC_T-Reassembly.c | 113 + src/asn/rrc/ASN_RRC_T-Reassembly.h | 81 + src/asn/rrc/ASN_RRC_T-Reselection.c | 61 + src/asn/rrc/ASN_RRC_T-Reselection.h | 44 + src/asn/rrc/ASN_RRC_T-StatusProhibit.c | 177 + src/asn/rrc/ASN_RRC_T-StatusProhibit.h | 113 + src/asn/rrc/ASN_RRC_TAG-Config.c | 209 + src/asn/rrc/ASN_RRC_TAG-Config.h | 56 + src/asn/rrc/ASN_RRC_TAG-Id.c | 61 + src/asn/rrc/ASN_RRC_TAG-Id.h | 44 + src/asn/rrc/ASN_RRC_TAG.c | 60 + src/asn/rrc/ASN_RRC_TAG.h | 46 + src/asn/rrc/ASN_RRC_TCI-State.c | 73 + src/asn/rrc/ASN_RRC_TCI-State.h | 50 + src/asn/rrc/ASN_RRC_TCI-StateId.c | 61 + src/asn/rrc/ASN_RRC_TCI-StateId.h | 44 + src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.c | 73 + src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.h | 50 + .../rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.c | 209 + .../rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.h | 60 + src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.c | 371 + src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.h | 73 + src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.c | 239 + src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.h | 68 + src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.c | 61 + src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.h | 44 + src/asn/rrc/ASN_RRC_ThresholdNR.c | 72 + src/asn/rrc/ASN_RRC_ThresholdNR.h | 44 + src/asn/rrc/ASN_RRC_TimeAlignmentTimer.c | 65 + src/asn/rrc/ASN_RRC_TimeAlignmentTimer.h | 57 + src/asn/rrc/ASN_RRC_TimeToTrigger.c | 81 + src/asn/rrc/ASN_RRC_TimeToTrigger.h | 65 + src/asn/rrc/ASN_RRC_TrackingAreaCode.c | 67 + src/asn/rrc/ASN_RRC_TrackingAreaCode.h | 44 + ...-AccessCategory1-SelectionAssistanceInfo.c | 55 + ...-AccessCategory1-SelectionAssistanceInfo.h | 52 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.c | 238 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.h | 75 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.c | 61 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.h | 44 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.c | 50 + src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.h | 44 + src/asn/rrc/ASN_RRC_UAC-BarringPerCat.c | 90 + src/asn/rrc/ASN_RRC_UAC-BarringPerCat.h | 42 + src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.c | 50 + src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.h | 44 + src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.c | 50 + src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.h | 44 + src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.c | 220 + src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.h | 69 + src/asn/rrc/ASN_RRC_UCI-OnPUSCH.c | 240 + src/asn/rrc/ASN_RRC_UCI-OnPUSCH.h | 75 + .../rrc/ASN_RRC_UE-CapabilityRAT-Container.c | 60 + .../rrc/ASN_RRC_UE-CapabilityRAT-Container.h | 42 + .../ASN_RRC_UE-CapabilityRAT-ContainerList.c | 50 + .../ASN_RRC_UE-CapabilityRAT-ContainerList.h | 44 + .../rrc/ASN_RRC_UE-CapabilityRAT-Request.c | 62 + .../rrc/ASN_RRC_UE-CapabilityRAT-Request.h | 46 + .../ASN_RRC_UE-CapabilityRAT-RequestList.c | 50 + .../ASN_RRC_UE-CapabilityRAT-RequestList.h | 44 + ...ASN_RRC_UE-CapabilityRequestFilterCommon.c | 249 + ...ASN_RRC_UE-CapabilityRequestFilterCommon.h | 65 + ...N_RRC_UE-CapabilityRequestFilterNR-v1540.c | 134 + ...N_RRC_UE-CapabilityRequestFilterNR-v1540.h | 51 + .../ASN_RRC_UE-CapabilityRequestFilterNR.c | 64 + .../ASN_RRC_UE-CapabilityRequestFilterNR.h | 42 + .../rrc/ASN_RRC_UE-MRDC-Capability-v1560.c | 148 + .../rrc/ASN_RRC_UE-MRDC-Capability-v1560.h | 52 + src/asn/rrc/ASN_RRC_UE-MRDC-Capability.c | 243 + src/asn/rrc/ASN_RRC_UE-MRDC-Capability.h | 67 + .../ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.c | 50 + .../ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h | 40 + ..._RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.c | 53 + ..._RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h | 42 + .../ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.c | 64 + .../ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h | 44 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.c | 247 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.h | 65 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.c | 161 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.h | 59 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.c | 107 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.h | 50 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.c | 127 + src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.h | 49 + src/asn/rrc/ASN_RRC_UE-NR-Capability.c | 273 + src/asn/rrc/ASN_RRC_UE-NR-Capability.h | 73 + ...SN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.c | 53 + ...SN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h | 42 + .../rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.c | 64 + .../rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h | 44 + ...SN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.c | 50 + ...SN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h | 40 + .../rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.c | 75 + .../rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h | 46 + src/asn/rrc/ASN_RRC_UE-TimersAndConstants.c | 512 + src/asn/rrc/ASN_RRC_UE-TimersAndConstants.h | 127 + .../rrc/ASN_RRC_UEAssistanceInformation-IEs.c | 74 + .../rrc/ASN_RRC_UEAssistanceInformation-IEs.h | 46 + ...SN_RRC_UEAssistanceInformation-v1540-IEs.c | 91 + ...SN_RRC_UEAssistanceInformation-v1540-IEs.h | 47 + src/asn/rrc/ASN_RRC_UEAssistanceInformation.c | 133 + src/asn/rrc/ASN_RRC_UEAssistanceInformation.h | 63 + src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.c | 98 + src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.h | 43 + .../ASN_RRC_UECapabilityEnquiry-v1560-IEs.c | 91 + .../ASN_RRC_UECapabilityEnquiry-v1560-IEs.h | 45 + src/asn/rrc/ASN_RRC_UECapabilityEnquiry.c | 143 + src/asn/rrc/ASN_RRC_UECapabilityEnquiry.h | 65 + .../rrc/ASN_RRC_UECapabilityInformation-IEs.c | 101 + .../rrc/ASN_RRC_UECapabilityInformation-IEs.h | 49 + src/asn/rrc/ASN_RRC_UECapabilityInformation.c | 143 + src/asn/rrc/ASN_RRC_UECapabilityInformation.h | 65 + ...C_UERadioAccessCapabilityInformation-IEs.c | 116 + ...C_UERadioAccessCapabilityInformation-IEs.h | 45 + ...N_RRC_UERadioAccessCapabilityInformation.c | 247 + ...N_RRC_UERadioAccessCapabilityInformation.h | 88 + .../ASN_RRC_UERadioPagingInformation-IEs.c | 163 + .../ASN_RRC_UERadioPagingInformation-IEs.h | 52 + .../rrc/ASN_RRC_UERadioPagingInformation.c | 247 + .../rrc/ASN_RRC_UERadioPagingInformation.h | 88 + src/asn/rrc/ASN_RRC_UL-AM-RLC.c | 150 + src/asn/rrc/ASN_RRC_UL-AM-RLC.h | 61 + src/asn/rrc/ASN_RRC_UL-CCCH-Message.c | 50 + src/asn/rrc/ASN_RRC_UL-CCCH-Message.h | 38 + src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.c | 168 + src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.h | 80 + src/asn/rrc/ASN_RRC_UL-CCCH1-Message.c | 50 + src/asn/rrc/ASN_RRC_UL-CCCH1-Message.h | 38 + src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.c | 165 + src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.h | 78 + src/asn/rrc/ASN_RRC_UL-DCCH-Message.c | 50 + src/asn/rrc/ASN_RRC_UL-DCCH-Message.h | 38 + src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.c | 300 + src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.h | 116 + src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.c | 113 + src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.h | 81 + src/asn/rrc/ASN_RRC_UL-UM-RLC.c | 52 + src/asn/rrc/ASN_RRC_UL-UM-RLC.h | 40 + .../rrc/ASN_RRC_ULInformationTransfer-IEs.c | 100 + .../rrc/ASN_RRC_ULInformationTransfer-IEs.h | 47 + src/asn/rrc/ASN_RRC_ULInformationTransfer.c | 133 + src/asn/rrc/ASN_RRC_ULInformationTransfer.h | 63 + .../ASN_RRC_ULInformationTransferMRDC-IEs.c | 110 + .../ASN_RRC_ULInformationTransferMRDC-IEs.h | 47 + .../rrc/ASN_RRC_ULInformationTransferMRDC.c | 207 + .../rrc/ASN_RRC_ULInformationTransferMRDC.h | 82 + src/asn/rrc/ASN_RRC_UplinkConfig.c | 390 + src/asn/rrc/ASN_RRC_UplinkConfig.h | 81 + src/asn/rrc/ASN_RRC_UplinkConfigCommon.c | 74 + src/asn/rrc/ASN_RRC_UplinkConfigCommon.h | 46 + src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.c | 70 + src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.h | 44 + .../rrc/ASN_RRC_UplinkTxDirectCurrentBWP.c | 100 + .../rrc/ASN_RRC_UplinkTxDirectCurrentBWP.h | 44 + .../rrc/ASN_RRC_UplinkTxDirectCurrentCell.c | 264 + .../rrc/ASN_RRC_UplinkTxDirectCurrentCell.h | 66 + .../rrc/ASN_RRC_UplinkTxDirectCurrentList.c | 50 + .../rrc/ASN_RRC_UplinkTxDirectCurrentList.h | 44 + src/asn/rrc/ASN_RRC_VarMeasConfig.c | 150 + src/asn/rrc/ASN_RRC_VarMeasConfig.h | 65 + src/asn/rrc/ASN_RRC_VarMeasReport.c | 73 + src/asn/rrc/ASN_RRC_VarMeasReport.h | 46 + src/asn/rrc/ASN_RRC_VarMeasReportList.c | 50 + src/asn/rrc/ASN_RRC_VarMeasReportList.h | 41 + src/asn/rrc/ASN_RRC_VarPendingRNA-Update.c | 52 + src/asn/rrc/ASN_RRC_VarPendingRNA-Update.h | 38 + src/asn/rrc/ASN_RRC_VarResumeMAC-Input.c | 70 + src/asn/rrc/ASN_RRC_VarResumeMAC-Input.h | 42 + src/asn/rrc/ASN_RRC_VarShortMAC-Input.c | 70 + src/asn/rrc/ASN_RRC_VarShortMAC-Input.h | 42 + src/asn/rrc/ASN_RRC_VictimSystemType.c | 366 + src/asn/rrc/ASN_RRC_VictimSystemType.h | 71 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.c | 73 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.h | 50 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.c | 61 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.h | 44 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.c | 133 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.h | 53 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.c | 61 + src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.h | 44 + src/asn/rrc/ASN_RRC_asn_constant.h | 368 + src/asn/rrc/CMakeLists.txt | 5 + src/binder.cpp | 113 + src/cli.cpp | 309 + src/ext/CMakeLists.txt | 9 + src/ext/compact25519/c25519/README.md | 4 + src/ext/compact25519/c25519/c25519.c | 126 + src/ext/compact25519/c25519/c25519.h | 49 + src/ext/compact25519/c25519/ed25519.c | 323 + src/ext/compact25519/c25519/ed25519.h | 84 + src/ext/compact25519/c25519/edsign.c | 171 + src/ext/compact25519/c25519/edsign.h | 53 + src/ext/compact25519/c25519/f25519.c | 330 + src/ext/compact25519/c25519/f25519.h | 98 + src/ext/compact25519/c25519/fprime.c | 226 + src/ext/compact25519/c25519/fprime.h | 81 + src/ext/compact25519/c25519/sha512.c | 230 + src/ext/compact25519/c25519/sha512.h | 54 + src/ext/compact25519/compact_wipe.c | 12 + src/ext/compact25519/compact_wipe.h | 14 + src/ext/compact25519/compact_x25519.c | 68 + src/ext/compact25519/compact_x25519.h | 101 + src/ext/compact25519/compact_x25519.hpp | 14 + src/ext/crypt-ext/aes.c | 555 + src/ext/crypt-ext/aes.h | 93 + src/ext/crypt-ext/aes.hpp | 14 + src/ext/crypt-ext/apicheck.h | 50 + src/ext/crypt-ext/cmac.c | 396 + src/ext/crypt-ext/cmac.hpp | 8 + src/ext/crypt-ext/hmac-sha256.c | 98 + src/ext/crypt-ext/hmac-sha256.h | 28 + src/ext/crypt-ext/milenage.c | 904 + src/ext/crypt-ext/milenage.h | 31 + src/ext/crypt-ext/milenage.hpp | 10 + src/ext/crypt-ext/rotate-bits.h | 40 + src/ext/crypt-ext/sha256.c | 215 + src/ext/crypt-ext/sha256.h | 30 + src/ext/crypt-ext/x963kdf.c | 46 + src/ext/crypt-ext/x963kdf.h | 23 + src/ext/spdlog/async.h | 93 + src/ext/spdlog/async_logger-inl.h | 92 + src/ext/spdlog/async_logger.h | 68 + src/ext/spdlog/cfg/argv.h | 44 + src/ext/spdlog/cfg/env.h | 38 + src/ext/spdlog/cfg/helpers-inl.h | 120 + src/ext/spdlog/cfg/helpers.h | 29 + src/ext/spdlog/common-inl.h | 76 + src/ext/spdlog/common.h | 245 + src/ext/spdlog/details/backtracer-inl.h | 69 + src/ext/spdlog/details/backtracer.h | 45 + src/ext/spdlog/details/circular_q.h | 141 + src/ext/spdlog/details/console_globals.h | 32 + src/ext/spdlog/details/file_helper-inl.h | 132 + src/ext/spdlog/details/file_helper.h | 59 + src/ext/spdlog/details/fmt_helper.h | 116 + src/ext/spdlog/details/log_msg-inl.h | 37 + src/ext/spdlog/details/log_msg.h | 36 + src/ext/spdlog/details/log_msg_buffer-inl.h | 58 + src/ext/spdlog/details/log_msg_buffer.h | 33 + src/ext/spdlog/details/mpmc_blocking_q.h | 126 + src/ext/spdlog/details/null_mutex.h | 49 + src/ext/spdlog/details/os-inl.h | 554 + src/ext/spdlog/details/os.h | 111 + src/ext/spdlog/details/periodic_worker-inl.h | 49 + src/ext/spdlog/details/periodic_worker.h | 40 + src/ext/spdlog/details/registry-inl.h | 313 + src/ext/spdlog/details/registry.h | 115 + src/ext/spdlog/details/synchronous_factory.h | 24 + src/ext/spdlog/details/tcp_client-windows.h | 175 + src/ext/spdlog/details/tcp_client.h | 146 + src/ext/spdlog/details/thread_pool-inl.h | 129 + src/ext/spdlog/details/thread_pool.h | 121 + src/ext/spdlog/details/windows_include.h | 11 + src/ext/spdlog/fmt/bin_to_hex.h | 216 + src/ext/spdlog/fmt/bundled/LICENSE.rst | 27 + src/ext/spdlog/fmt/bundled/chrono.h | 1118 + src/ext/spdlog/fmt/bundled/color.h | 603 + src/ext/spdlog/fmt/bundled/compile.h | 701 + src/ext/spdlog/fmt/bundled/core.h | 2122 + src/ext/spdlog/fmt/bundled/format-inl.h | 2801 + src/ext/spdlog/fmt/bundled/format.h | 3960 + src/ext/spdlog/fmt/bundled/locale.h | 64 + src/ext/spdlog/fmt/bundled/os.h | 480 + src/ext/spdlog/fmt/bundled/ostream.h | 177 + src/ext/spdlog/fmt/bundled/posix.h | 2 + src/ext/spdlog/fmt/bundled/printf.h | 751 + src/ext/spdlog/fmt/bundled/ranges.h | 396 + src/ext/spdlog/fmt/chrono.h | 20 + src/ext/spdlog/fmt/fmt.h | 27 + src/ext/spdlog/fmt/ostr.h | 20 + src/ext/spdlog/formatter.h | 18 + src/ext/spdlog/fwd.h | 14 + src/ext/spdlog/logger-inl.h | 257 + src/ext/spdlog/logger.h | 366 + src/ext/spdlog/pattern_formatter-inl.h | 1373 + src/ext/spdlog/pattern_formatter.h | 126 + src/ext/spdlog/sinks/ansicolor_sink-inl.h | 143 + src/ext/spdlog/sinks/ansicolor_sink.h | 118 + src/ext/spdlog/sinks/base_sink-inl.h | 63 + src/ext/spdlog/sinks/base_sink.h | 52 + src/ext/spdlog/sinks/basic_file_sink-inl.h | 43 + src/ext/spdlog/sinks/basic_file_sink.h | 58 + src/ext/spdlog/sinks/daily_file_sink.h | 204 + src/ext/spdlog/sinks/dist_sink.h | 97 + src/ext/spdlog/sinks/dup_filter_sink.h | 90 + src/ext/spdlog/sinks/msvc_sink.h | 49 + src/ext/spdlog/sinks/null_sink.h | 44 + src/ext/spdlog/sinks/ostream_sink.h | 50 + src/ext/spdlog/sinks/ringbuffer_sink.h | 74 + src/ext/spdlog/sinks/rotating_file_sink-inl.h | 131 + src/ext/spdlog/sinks/rotating_file_sink.h | 78 + src/ext/spdlog/sinks/sink-inl.h | 25 + src/ext/spdlog/sinks/sink.h | 35 + src/ext/spdlog/sinks/stdout_color_sinks-inl.h | 38 + src/ext/spdlog/sinks/stdout_color_sinks.h | 45 + src/ext/spdlog/sinks/stdout_sinks-inl.h | 123 + src/ext/spdlog/sinks/stdout_sinks.h | 87 + src/ext/spdlog/sinks/syslog_sink.h | 109 + src/ext/spdlog/sinks/systemd_sink.h | 103 + src/ext/spdlog/sinks/tcp_sink.h | 81 + src/ext/spdlog/sinks/win_eventlog_sink.h | 266 + src/ext/spdlog/sinks/wincolor_sink-inl.h | 170 + src/ext/spdlog/sinks/wincolor_sink.h | 94 + src/ext/spdlog/spdlog-inl.h | 125 + src/ext/spdlog/spdlog.h | 295 + src/ext/spdlog/stopwatch.h | 61 + src/ext/spdlog/tweakme.h | 116 + src/ext/spdlog/version.h | 10 + src/ext/yaml-cpp/anchor.h | 17 + src/ext/yaml-cpp/binary.cpp | 100 + src/ext/yaml-cpp/binary.h | 71 + src/ext/yaml-cpp/collectionstack.h | 41 + src/ext/yaml-cpp/contrib/anchordict.h | 40 + src/ext/yaml-cpp/contrib/graphbuilder.cpp | 16 + src/ext/yaml-cpp/contrib/graphbuilder.h | 149 + .../yaml-cpp/contrib/graphbuilderadapter.cpp | 94 + .../yaml-cpp/contrib/graphbuilderadapter.h | 87 + src/ext/yaml-cpp/contrib/yaml-cpp.natvis | 32 + src/ext/yaml-cpp/contrib/yaml-cpp.natvis.md | 9 + src/ext/yaml-cpp/convert.cpp | 74 + src/ext/yaml-cpp/depthguard.cpp | 9 + src/ext/yaml-cpp/depthguard.h | 77 + src/ext/yaml-cpp/directives.cpp | 17 + src/ext/yaml-cpp/directives.h | 29 + src/ext/yaml-cpp/dll.h | 33 + src/ext/yaml-cpp/emit.cpp | 25 + src/ext/yaml-cpp/emitfromevents.cpp | 124 + src/ext/yaml-cpp/emitfromevents.h | 57 + src/ext/yaml-cpp/emitter.cpp | 971 + src/ext/yaml-cpp/emitter.h | 281 + src/ext/yaml-cpp/emitterdef.h | 16 + src/ext/yaml-cpp/emittermanip.h | 144 + src/ext/yaml-cpp/emitterstate.cpp | 400 + src/ext/yaml-cpp/emitterstate.h | 216 + src/ext/yaml-cpp/emitterstyle.h | 16 + src/ext/yaml-cpp/emitterutils.cpp | 497 + src/ext/yaml-cpp/emitterutils.h | 55 + src/ext/yaml-cpp/eventhandler.h | 45 + src/ext/yaml-cpp/exceptions.cpp | 20 + src/ext/yaml-cpp/exceptions.h | 303 + src/ext/yaml-cpp/exp.cpp | 137 + src/ext/yaml-cpp/exp.h | 222 + src/ext/yaml-cpp/indentation.h | 41 + src/ext/yaml-cpp/mark.h | 29 + src/ext/yaml-cpp/memory.cpp | 26 + src/ext/yaml-cpp/node.cpp | 12 + src/ext/yaml-cpp/node/convert.h | 392 + src/ext/yaml-cpp/node/detail/impl.h | 235 + src/ext/yaml-cpp/node/detail/iterator.h | 96 + src/ext/yaml-cpp/node/detail/iterator_fwd.h | 27 + src/ext/yaml-cpp/node/detail/memory.h | 47 + src/ext/yaml-cpp/node/detail/node.h | 177 + src/ext/yaml-cpp/node/detail/node_data.h | 127 + src/ext/yaml-cpp/node/detail/node_iterator.h | 181 + src/ext/yaml-cpp/node/detail/node_ref.h | 98 + src/ext/yaml-cpp/node/emit.h | 32 + src/ext/yaml-cpp/node/impl.h | 385 + src/ext/yaml-cpp/node/iterator.h | 31 + src/ext/yaml-cpp/node/node.h | 148 + src/ext/yaml-cpp/node/parse.h | 78 + src/ext/yaml-cpp/node/ptr.h | 29 + src/ext/yaml-cpp/node/type.h | 16 + src/ext/yaml-cpp/node_data.cpp | 324 + src/ext/yaml-cpp/nodebuilder.cpp | 134 + src/ext/yaml-cpp/nodebuilder.h | 74 + src/ext/yaml-cpp/nodeevents.cpp | 98 + src/ext/yaml-cpp/nodeevents.h | 68 + src/ext/yaml-cpp/noexcept.h | 18 + src/ext/yaml-cpp/null.cpp | 10 + src/ext/yaml-cpp/null.h | 26 + src/ext/yaml-cpp/ostream_wrapper.cpp | 62 + src/ext/yaml-cpp/ostream_wrapper.h | 76 + src/ext/yaml-cpp/parse.cpp | 72 + src/ext/yaml-cpp/parser.cpp | 119 + src/ext/yaml-cpp/parser.h | 90 + src/ext/yaml-cpp/ptr_vector.h | 45 + src/ext/yaml-cpp/regex_yaml.cpp | 43 + src/ext/yaml-cpp/regex_yaml.h | 88 + src/ext/yaml-cpp/regeximpl.h | 185 + src/ext/yaml-cpp/scanner.cpp | 391 + src/ext/yaml-cpp/scanner.h | 190 + src/ext/yaml-cpp/scanscalar.cpp | 251 + src/ext/yaml-cpp/scanscalar.h | 63 + src/ext/yaml-cpp/scantag.cpp | 81 + src/ext/yaml-cpp/scantag.h | 19 + src/ext/yaml-cpp/scantoken.cpp | 437 + src/ext/yaml-cpp/setting.h | 100 + src/ext/yaml-cpp/simplekey.cpp | 132 + src/ext/yaml-cpp/singledocparser.cpp | 432 + src/ext/yaml-cpp/singledocparser.h | 71 + src/ext/yaml-cpp/stlemitter.h | 50 + src/ext/yaml-cpp/stream.cpp | 446 + src/ext/yaml-cpp/stream.h | 82 + src/ext/yaml-cpp/streamcharsource.h | 50 + src/ext/yaml-cpp/stringsource.h | 48 + src/ext/yaml-cpp/tag.cpp | 50 + src/ext/yaml-cpp/tag.h | 33 + src/ext/yaml-cpp/token.h | 70 + src/ext/yaml-cpp/traits.h | 135 + src/ext/yaml-cpp/yaml.h | 24 + src/gnb.cpp | 229 + src/gnb/CMakeLists.txt | 11 + src/gnb/app/cmd_handler.cpp | 160 + src/gnb/app/cmd_handler.hpp | 42 + src/gnb/app/task.cpp | 60 + src/gnb/app/task.hpp | 43 + src/gnb/gnb.cpp | 76 + src/gnb/gnb.hpp | 36 + src/gnb/gtp/proto.cpp | 416 + src/gnb/gtp/proto.hpp | 159 + src/gnb/gtp/task.cpp | 287 + src/gnb/gtp/task.hpp | 61 + src/gnb/gtp/utils.cpp | 235 + src/gnb/gtp/utils.hpp | 95 + src/gnb/ngap/context.cpp | 324 + src/gnb/ngap/encode.cpp | 14 + src/gnb/ngap/encode.hpp | 96 + src/gnb/ngap/interface.cpp | 362 + src/gnb/ngap/management.cpp | 157 + src/gnb/ngap/nas.cpp | 248 + src/gnb/ngap/nnsf.cpp | 35 + src/gnb/ngap/radio.cpp | 59 + src/gnb/ngap/session.cpp | 316 + src/gnb/ngap/task.cpp | 108 + src/gnb/ngap/task.hpp | 129 + src/gnb/ngap/transport.cpp | 407 + src/gnb/ngap/utils.cpp | 230 + src/gnb/ngap/utils.hpp | 65 + src/gnb/nts.cpp | 9 + src/gnb/nts.hpp | 312 + src/gnb/rls/ctl_task.cpp | 258 + src/gnb/rls/ctl_task.hpp | 52 + src/gnb/rls/task.cpp | 135 + src/gnb/rls/task.hpp | 52 + src/gnb/rls/udp_task.cpp | 201 + src/gnb/rls/udp_task.hpp | 63 + src/gnb/rrc/broadcast.cpp | 122 + src/gnb/rrc/channel.cpp | 227 + src/gnb/rrc/connection.cpp | 135 + src/gnb/rrc/handler.cpp | 137 + src/gnb/rrc/management.cpp | 21 + src/gnb/rrc/sap.cpp | 33 + src/gnb/rrc/task.cpp | 90 + src/gnb/rrc/task.hpp | 112 + src/gnb/rrc/ues.cpp | 42 + src/gnb/sctp/task.cpp | 335 + src/gnb/sctp/task.hpp | 68 + src/gnb/types.cpp | 106 + src/gnb/types.hpp | 358 + src/lib/CMakeLists.txt | 14 + src/lib/app/CMakeLists.txt | 9 + src/lib/app/base_app.cpp | 58 + src/lib/app/base_app.hpp | 24 + src/lib/app/cli_base.cpp | 70 + src/lib/app/cli_base.hpp | 145 + src/lib/app/cli_cmd.cpp | 358 + src/lib/app/cli_cmd.hpp | 84 + src/lib/app/monitor.cpp | 9 + src/lib/app/monitor.hpp | 58 + src/lib/app/proc_table.cpp | 116 + src/lib/app/proc_table.hpp | 54 + src/lib/app/ue_ctl.cpp | 9 + src/lib/app/ue_ctl.hpp | 27 + src/lib/asn/ngap.cpp | 1043 + src/lib/asn/ngap.hpp | 101 + src/lib/asn/ngap_msg.hpp | 1578 + src/lib/asn/rrc.cpp | 77 + src/lib/asn/rrc.hpp | 24 + src/lib/asn/utils.cpp | 177 + src/lib/asn/utils.hpp | 217 + src/lib/crypt/crypt.cpp | 176 + src/lib/crypt/crypt.hpp | 47 + src/lib/crypt/eea2.cpp | 48 + src/lib/crypt/eea2.hpp | 19 + src/lib/crypt/eea3.cpp | 119 + src/lib/crypt/eea3.hpp | 20 + src/lib/crypt/eia2.cpp | 39 + src/lib/crypt/eia2.hpp | 18 + src/lib/crypt/mac.cpp | 27 + src/lib/crypt/mac.hpp | 21 + src/lib/crypt/milenage.cpp | 46 + src/lib/crypt/milenage.hpp | 32 + src/lib/crypt/snow3g.cpp | 216 + src/lib/crypt/snow3g.hpp | 17 + src/lib/crypt/uea2.cpp | 127 + src/lib/crypt/uea2.hpp | 19 + src/lib/crypt/zuc.cpp | 184 + src/lib/crypt/zuc.hpp | 19 + src/lib/nas/base.cpp | 104 + src/lib/nas/base.hpp | 248 + src/lib/nas/eap.cpp | 268 + src/lib/nas/eap.hpp | 202 + src/lib/nas/encode.cpp | 387 + src/lib/nas/encode.hpp | 19 + src/lib/nas/enums.cpp | 33 + src/lib/nas/enums.hpp | 764 + src/lib/nas/ie1.cpp | 327 + src/lib/nas/ie1.hpp | 241 + src/lib/nas/ie2.cpp | 9 + src/lib/nas/ie2.hpp | 14 + src/lib/nas/ie3.cpp | 264 + src/lib/nas/ie3.hpp | 172 + src/lib/nas/ie4.cpp | 1119 + src/lib/nas/ie4.hpp | 578 + src/lib/nas/ie6.cpp | 492 + src/lib/nas/ie6.hpp | 209 + src/lib/nas/msg.cpp | 680 + src/lib/nas/msg.hpp | 636 + src/lib/nas/nas.cpp | 9 + src/lib/nas/nas.hpp | 15 + src/lib/nas/proto_conf.cpp | 74 + src/lib/nas/proto_conf.hpp | 131 + src/lib/nas/storage.cpp | 14 + src/lib/nas/storage.hpp | 281 + src/lib/nas/utils.cpp | 567 + src/lib/nas/utils.hpp | 106 + src/lib/nas/values.cpp | 551 + src/lib/nas/values.hpp | 258 + src/lib/rlc/encoder.cpp | 296 + src/lib/rlc/encoder.hpp | 30 + src/lib/rlc/entity_am.cpp | 937 + src/lib/rlc/entity_am.hpp | 131 + src/lib/rlc/entity_tm.cpp | 97 + src/lib/rlc/entity_tm.hpp | 53 + src/lib/rlc/entity_um.cpp | 337 + src/lib/rlc/entity_um.hpp | 79 + src/lib/rlc/func.cpp | 9 + src/lib/rlc/func.hpp | 572 + src/lib/rlc/rlc.cpp | 34 + src/lib/rlc/rlc.hpp | 62 + src/lib/rlc/test.cpp | 188 + src/lib/rlc/test.hpp | 16 + src/lib/rlc/utils.cpp | 17 + src/lib/rlc/utils.hpp | 259 + src/lib/rls/rls_base.cpp | 15 + src/lib/rls/rls_base.hpp | 32 + src/lib/rls/rls_pdu.cpp | 112 + src/lib/rls/rls_pdu.hpp | 94 + src/lib/rrc/encode.cpp | 9 + src/lib/rrc/encode.hpp | 95 + src/lib/rrc/rrc.cpp | 9 + src/lib/rrc/rrc.hpp | 26 + src/lib/sctp/client.cpp | 60 + src/lib/sctp/client.hpp | 39 + src/lib/sctp/internal.cpp | 260 + src/lib/sctp/internal.hpp | 29 + src/lib/sctp/sctp.cpp | 9 + src/lib/sctp/sctp.hpp | 13 + src/lib/sctp/server.cpp | 37 + src/lib/sctp/server.hpp | 31 + src/lib/sctp/types.cpp | 9 + src/lib/sctp/types.hpp | 48 + src/lib/udp/server.cpp | 57 + src/lib/udp/server.hpp | 31 + src/lib/udp/server_task.cpp | 56 + src/lib/udp/server_task.hpp | 49 + src/ue.cpp | 538 + src/ue/CMakeLists.txt | 7 + src/ue/app/cmd_handler.cpp | 273 + src/ue/app/cmd_handler.hpp | 42 + src/ue/app/task.cpp | 214 + src/ue/app/task.hpp | 49 + src/ue/nas/enc.cpp | 185 + src/ue/nas/enc.hpp | 24 + src/ue/nas/keys.cpp | 167 + src/ue/nas/keys.hpp | 84 + src/ue/nas/mm/access.cpp | 309 + src/ue/nas/mm/auth.cpp | 545 + src/ue/nas/mm/base.cpp | 449 + src/ue/nas/mm/config.cpp | 240 + src/ue/nas/mm/dereg.cpp | 370 + src/ue/nas/mm/ecall.cpp | 102 + src/ue/nas/mm/identity.cpp | 207 + src/ue/nas/mm/messaging.cpp | 392 + src/ue/nas/mm/mm.hpp | 209 + src/ue/nas/mm/proc.cpp | 204 + src/ue/nas/mm/radio.cpp | 388 + src/ue/nas/mm/register.cpp | 1037 + src/ue/nas/mm/sap.cpp | 88 + src/ue/nas/mm/security.cpp | 299 + src/ue/nas/mm/service.cpp | 490 + src/ue/nas/mm/slice.cpp | 77 + src/ue/nas/mm/timer.cpp | 182 + src/ue/nas/mm/transport.cpp | 158 + src/ue/nas/sm/allocation.cpp | 79 + src/ue/nas/sm/base.cpp | 32 + src/ue/nas/sm/establishment.cpp | 207 + src/ue/nas/sm/procedure.cpp | 87 + src/ue/nas/sm/release.cpp | 168 + src/ue/nas/sm/resource.cpp | 158 + src/ue/nas/sm/sap.cpp | 107 + src/ue/nas/sm/sm.hpp | 99 + src/ue/nas/sm/timer.cpp | 89 + src/ue/nas/sm/transport.cpp | 164 + src/ue/nas/storage.cpp | 79 + src/ue/nas/storage.hpp | 53 + src/ue/nas/task.cpp | 175 + src/ue/nas/task.hpp | 49 + src/ue/nas/usim/sqn_mng.cpp | 73 + src/ue/nas/usim/sqn_mng.hpp | 43 + src/ue/nas/usim/usim.cpp | 31 + src/ue/nas/usim/usim.hpp | 48 + src/ue/nts.cpp | 14 + src/ue/nts.hpp | 349 + src/ue/rls/ctl_task.cpp | 251 + src/ue/rls/ctl_task.hpp | 56 + src/ue/rls/task.cpp | 148 + src/ue/rls/task.hpp | 53 + src/ue/rls/udp_task.cpp | 175 + src/ue/rls/udp_task.hpp | 68 + src/ue/rrc/access.cpp | 67 + src/ue/rrc/cells.cpp | 104 + src/ue/rrc/channel.cpp | 211 + src/ue/rrc/connection.cpp | 158 + src/ue/rrc/failures.cpp | 29 + src/ue/rrc/handler.cpp | 59 + src/ue/rrc/idle.cpp | 291 + src/ue/rrc/nas.cpp | 73 + src/ue/rrc/sap.cpp | 67 + src/ue/rrc/state.cpp | 59 + src/ue/rrc/sysinfo.cpp | 75 + src/ue/rrc/task.cpp | 88 + src/ue/rrc/task.hpp | 142 + src/ue/timer.cpp | 147 + src/ue/timer.hpp | 45 + src/ue/tun/config.cpp | 382 + src/ue/tun/config.hpp | 21 + src/ue/tun/task.cpp | 123 + src/ue/tun/task.hpp | 43 + src/ue/tun/tun.cpp | 50 + src/ue/tun/tun.hpp | 19 + src/ue/types.cpp | 307 + src/ue/types.hpp | 659 + src/ue/ue.cpp | 68 + src/ue/ue.hpp | 35 + src/utils/CMakeLists.txt | 9 + src/utils/bit_buffer.cpp | 9 + src/utils/bit_buffer.hpp | 125 + src/utils/bit_string.cpp | 9 + src/utils/bit_string.hpp | 52 + src/utils/bits.cpp | 9 + src/utils/bits.hpp | 277 + src/utils/common.cpp | 333 + src/utils/common.hpp | 77 + src/utils/common_types.cpp | 251 + src/utils/common_types.hpp | 242 + src/utils/concurrent_map.cpp | 9 + src/utils/concurrent_map.hpp | 59 + src/utils/constants.hpp | 42 + src/utils/io.cpp | 277 + src/utils/io.hpp | 49 + src/utils/json.cpp | 413 + src/utils/json.hpp | 153 + src/utils/libc_error.cpp | 28 + src/utils/libc_error.hpp | 18 + src/utils/light_sync.cpp | 9 + src/utils/light_sync.hpp | 85 + src/utils/linked_list.cpp | 9 + src/utils/linked_list.hpp | 225 + src/utils/locked.cpp | 9 + src/utils/locked.hpp | 77 + src/utils/logger.cpp | 102 + src/utils/logger.hpp | 125 + src/utils/network.cpp | 305 + src/utils/network.hpp | 80 + src/utils/nts.cpp | 258 + src/utils/nts.hpp | 177 + src/utils/octet.cpp | 39 + src/utils/octet.hpp | 244 + src/utils/octet_string.cpp | 330 + src/utils/octet_string.hpp | 116 + src/utils/octet_view.cpp | 54 + src/utils/octet_view.hpp | 131 + src/utils/options.cpp | 427 + src/utils/options.hpp | 138 + src/utils/ordered_map.cpp | 9 + src/utils/ordered_map.hpp | 68 + src/utils/printer.cpp | 92 + src/utils/printer.hpp | 35 + src/utils/random.cpp | 84 + src/utils/random.hpp | 48 + src/utils/scoped_thread.cpp | 71 + src/utils/scoped_thread.hpp | 21 + src/utils/time_stamp.cpp | 9 + src/utils/time_stamp.hpp | 45 + src/utils/unique_buffer.cpp | 9 + src/utils/unique_buffer.hpp | 70 + src/utils/yaml_utils.cpp | 201 + src/utils/yaml_utils.hpp | 50 + tools/ngap-15.8.0.asn1 | 6886 ++ tools/ngap-17.9.asn | 12004 +++ tools/nr-binder | 20 + tools/rls-wireshark-dissector.lua | 114 + tools/rrc-15.6.0.asn1 | 7390 ++ 4264 files changed, 625612 insertions(+), 1 deletion(-) create mode 100644 .clang-format create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 config/custom-gnb.yaml create mode 100644 config/custom-ue.yaml create mode 100644 config/free5gc-gnb.yaml create mode 100644 config/free5gc-ue.yaml create mode 100644 config/open5gs-gnb.yaml create mode 100644 config/open5gs-ue.yaml create mode 100644 src/asn/asn1c/ANY.c create mode 100644 src/asn/asn1c/ANY.h create mode 100644 src/asn/asn1c/BIT_STRING.c create mode 100644 src/asn/asn1c/BIT_STRING.h create mode 100644 src/asn/asn1c/BOOLEAN.c create mode 100644 src/asn/asn1c/BOOLEAN.h create mode 100644 src/asn/asn1c/CMakeLists.txt create mode 100644 src/asn/asn1c/INTEGER.c create mode 100644 src/asn/asn1c/INTEGER.h create mode 100644 src/asn/asn1c/Makefile.am.libasncodec create mode 100644 src/asn/asn1c/NULL.c create mode 100644 src/asn/asn1c/NULL.h create mode 100644 src/asn/asn1c/NativeEnumerated.c create mode 100644 src/asn/asn1c/NativeEnumerated.h create mode 100644 src/asn/asn1c/NativeInteger.c create mode 100644 src/asn/asn1c/NativeInteger.h create mode 100644 src/asn/asn1c/OBJECT_IDENTIFIER.c create mode 100644 src/asn/asn1c/OBJECT_IDENTIFIER.h create mode 100644 src/asn/asn1c/OCTET_STRING.c create mode 100644 src/asn/asn1c/OCTET_STRING.h create mode 100644 src/asn/asn1c/OPEN_TYPE.c create mode 100644 src/asn/asn1c/OPEN_TYPE.h create mode 100644 src/asn/asn1c/PrintableString.c create mode 100644 src/asn/asn1c/PrintableString.h create mode 100644 src/asn/asn1c/UTF8String.c create mode 100644 src/asn/asn1c/UTF8String.h create mode 100644 src/asn/asn1c/VisibleString.c create mode 100644 src/asn/asn1c/VisibleString.h create mode 100644 src/asn/asn1c/asn_SEQUENCE_OF.c create mode 100644 src/asn/asn1c/asn_SEQUENCE_OF.h create mode 100644 src/asn/asn1c/asn_SET_OF.c create mode 100644 src/asn/asn1c/asn_SET_OF.h create mode 100644 src/asn/asn1c/asn_application.c create mode 100644 src/asn/asn1c/asn_application.h create mode 100644 src/asn/asn1c/asn_bit_data.c create mode 100644 src/asn/asn1c/asn_bit_data.h create mode 100644 src/asn/asn1c/asn_codecs.h create mode 100644 src/asn/asn1c/asn_codecs_prim.c create mode 100644 src/asn/asn1c/asn_codecs_prim.h create mode 100644 src/asn/asn1c/asn_internal.c create mode 100644 src/asn/asn1c/asn_internal.h create mode 100644 src/asn/asn1c/asn_ioc.h create mode 100644 src/asn/asn1c/asn_random_fill.c create mode 100644 src/asn/asn1c/asn_random_fill.h create mode 100644 src/asn/asn1c/asn_system.h create mode 100644 src/asn/asn1c/ber_decoder.c create mode 100644 src/asn/asn1c/ber_decoder.h create mode 100644 src/asn/asn1c/ber_tlv_length.c create mode 100644 src/asn/asn1c/ber_tlv_length.h create mode 100644 src/asn/asn1c/ber_tlv_tag.c create mode 100644 src/asn/asn1c/ber_tlv_tag.h create mode 100644 src/asn/asn1c/constr_CHOICE.c create mode 100644 src/asn/asn1c/constr_CHOICE.h create mode 100644 src/asn/asn1c/constr_SEQUENCE.c create mode 100644 src/asn/asn1c/constr_SEQUENCE.h create mode 100644 src/asn/asn1c/constr_SEQUENCE_OF.c create mode 100644 src/asn/asn1c/constr_SEQUENCE_OF.h create mode 100644 src/asn/asn1c/constr_SET_OF.c create mode 100644 src/asn/asn1c/constr_SET_OF.h create mode 100644 src/asn/asn1c/constr_TYPE.c create mode 100644 src/asn/asn1c/constr_TYPE.h create mode 100644 src/asn/asn1c/constraints.c create mode 100644 src/asn/asn1c/constraints.h create mode 100644 src/asn/asn1c/der_encoder.c create mode 100644 src/asn/asn1c/der_encoder.h create mode 100644 src/asn/asn1c/per_decoder.c create mode 100644 src/asn/asn1c/per_decoder.h create mode 100644 src/asn/asn1c/per_encoder.c create mode 100644 src/asn/asn1c/per_encoder.h create mode 100644 src/asn/asn1c/per_opentype.c create mode 100644 src/asn/asn1c/per_opentype.h create mode 100644 src/asn/asn1c/per_support.c create mode 100644 src/asn/asn1c/per_support.h create mode 100644 src/asn/asn1c/xer_decoder.c create mode 100644 src/asn/asn1c/xer_decoder.h create mode 100644 src/asn/asn1c/xer_encoder.c create mode 100644 src/asn/asn1c/xer_encoder.h create mode 100644 src/asn/asn1c/xer_support.c create mode 100644 src/asn/asn1c/xer_support.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.h create mode 100644 src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFName.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFName.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFNameUTF8String.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFNameUTF8String.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFNameVisibleString.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFNameVisibleString.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFPagingTarget.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFPagingTarget.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFPointer.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFPointer.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFRegionID.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFRegionID.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFSetID.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFSetID.h create mode 100644 src/asn/ngap/ASN_NGAP_AMFStatusIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_AMFStatusIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_ActivatedCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_ActivatedCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.c create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.c create mode 100644 src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.h create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.c create mode 100644 src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.h create mode 100644 src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_AllowedNSSAI.c create mode 100644 src/asn/ngap/ASN_NGAP_AllowedNSSAI.h create mode 100644 src/asn/ngap/ASN_NGAP_AllowedTACs.c create mode 100644 src/asn/ngap/ASN_NGAP_AllowedTACs.h create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.c create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.h create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.c create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.h create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.c create mode 100644 src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterest.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterest.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestList.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestList.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.c create mode 100644 src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.h create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.c create mode 100644 src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.h create mode 100644 src/asn/ngap/ASN_NGAP_AuthenticatedIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_AuthenticatedIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.c create mode 100644 src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.h create mode 100644 src/asn/ngap/ASN_NGAP_AveragingWindow.c create mode 100644 src/asn/ngap/ASN_NGAP_AveragingWindow.h create mode 100644 src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.c create mode 100644 src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.h create mode 100644 src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.c create mode 100644 src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.h create mode 100644 src/asn/ngap/ASN_NGAP_BitRate.c create mode 100644 src/asn/ngap/ASN_NGAP_BitRate.h create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.c create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.h create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.c create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.h create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.c create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.h create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.c create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.h create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothName.c create mode 100644 src/asn/ngap/ASN_NGAP_BluetoothName.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastPLMNList.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastPLMNList.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_BurstArrivalTime.c create mode 100644 src/asn/ngap/ASN_NGAP_BurstArrivalTime.h create mode 100644 src/asn/ngap/ASN_NGAP_CAG-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_CAG-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.c create mode 100644 src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.h create mode 100644 src/asn/ngap/ASN_NGAP_CEmodeBrestricted.c create mode 100644 src/asn/ngap/ASN_NGAP_CEmodeBrestricted.h create mode 100644 src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.c create mode 100644 src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.h create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.c create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.h create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.c create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.c create mode 100644 src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.h create mode 100644 src/asn/ngap/ASN_NGAP_CNsubgroupID.c create mode 100644 src/asn/ngap/ASN_NGAP_CNsubgroupID.h create mode 100644 src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c create mode 100644 src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h create mode 100644 src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c create mode 100644 src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h create mode 100644 src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCell.c create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCell.h create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellID.c create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellID.h create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellItem.c create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellItem.h create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_CandidateCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_CandidatePCI.c create mode 100644 src/asn/ngap/ASN_NGAP_CandidatePCI.h create mode 100644 src/asn/ngap/ASN_NGAP_Cause.c create mode 100644 src/asn/ngap/ASN_NGAP_Cause.h create mode 100644 src/asn/ngap/ASN_NGAP_CauseMisc.c create mode 100644 src/asn/ngap/ASN_NGAP_CauseMisc.h create mode 100644 src/asn/ngap/ASN_NGAP_CauseNas.c create mode 100644 src/asn/ngap/ASN_NGAP_CauseNas.h create mode 100644 src/asn/ngap/ASN_NGAP_CauseProtocol.c create mode 100644 src/asn/ngap/ASN_NGAP_CauseProtocol.h create mode 100644 src/asn/ngap/ASN_NGAP_CauseRadioNetwork.c create mode 100644 src/asn/ngap/ASN_NGAP_CauseRadioNetwork.h create mode 100644 src/asn/ngap/ASN_NGAP_CauseTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_CauseTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_Cell-CAGInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_Cell-CAGInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_CellBasedQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_CellCAGList.c create mode 100644 src/asn/ngap/ASN_NGAP_CellCAGList.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledNR.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDCancelledNR.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIDListForRestart.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIDListForRestart.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_CellIdListforQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_CellSize.c create mode 100644 src/asn/ngap/ASN_NGAP_CellSize.h create mode 100644 src/asn/ngap/ASN_NGAP_CellTrafficTrace.c create mode 100644 src/asn/ngap/ASN_NGAP_CellTrafficTrace.h create mode 100644 src/asn/ngap/ASN_NGAP_CellType.c create mode 100644 src/asn/ngap/ASN_NGAP_CellType.h create mode 100644 src/asn/ngap/ASN_NGAP_CellsToActivateList.c create mode 100644 src/asn/ngap/ASN_NGAP_CellsToActivateList.h create mode 100644 src/asn/ngap/ASN_NGAP_CommonNetworkInstance.c create mode 100644 src/asn/ngap/ASN_NGAP_CommonNetworkInstance.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.c create mode 100644 src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.h create mode 100644 src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.c create mode 100644 src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.h create mode 100644 src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.c create mode 100644 src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.h create mode 100644 src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.c create mode 100644 src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.h create mode 100644 src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.c create mode 100644 src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h create mode 100644 src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.c create mode 100644 src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.h create mode 100644 src/asn/ngap/ASN_NGAP_Criticality.c create mode 100644 src/asn/ngap/ASN_NGAP_Criticality.h create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.c create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.h create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.c create mode 100644 src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.h create mode 100644 src/asn/ngap/ASN_NGAP_DAPSRequestInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_DAPSRequestInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.c create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.h create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.c create mode 100644 src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.h create mode 100644 src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_DL-NAS-MAC.c create mode 100644 src/asn/ngap/ASN_NGAP_DL-NAS-MAC.h create mode 100644 src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.c create mode 100644 src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.h create mode 100644 src/asn/ngap/ASN_NGAP_DLForwarding.c create mode 100644 src/asn/ngap/ASN_NGAP_DLForwarding.h create mode 100644 src/asn/ngap/ASN_NGAP_DRB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_DRB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL12.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL12.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL18.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusDL18.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL12.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL12.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL18.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBStatusUL18.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h create mode 100644 src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c create mode 100644 src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h create mode 100644 src/asn/ngap/ASN_NGAP_DataCodingScheme.c create mode 100644 src/asn/ngap/ASN_NGAP_DataCodingScheme.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingAccepted.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingAccepted.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.h create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.c create mode 100644 src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.h create mode 100644 src/asn/ngap/ASN_NGAP_DeactivateTrace.c create mode 100644 src/asn/ngap/ASN_NGAP_DeactivateTrace.h create mode 100644 src/asn/ngap/ASN_NGAP_DelayCritical.c create mode 100644 src/asn/ngap/ASN_NGAP_DelayCritical.h create mode 100644 src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.c create mode 100644 src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.h create mode 100644 src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_DistributionSetupResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkNASTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkNASTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.c create mode 100644 src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.h create mode 100644 src/asn/ngap/ASN_NGAP_E-RAB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_E-RAB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_E-RABInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_E-RABInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_E-RABInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_E-RABInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_EDT-Session.c create mode 100644 src/asn/ngap/ASN_NGAP_EDT-Session.h create mode 100644 src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_ENB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_ENB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_EPS-TAC.c create mode 100644 src/asn/ngap/ASN_NGAP_EPS-TAC.h create mode 100644 src/asn/ngap/ASN_NGAP_EPS-TAI.c create mode 100644 src/asn/ngap/ASN_NGAP_EPS-TAI.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGI.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGI.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGIList.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGIList.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRACellIdentity.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRACellIdentity.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.c create mode 100644 src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h create mode 100644 src/asn/ngap/ASN_NGAP_EarlyMeasurement.c create mode 100644 src/asn/ngap/ASN_NGAP_EarlyMeasurement.h create mode 100644 src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaID.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaID.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.c create mode 100644 src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.h create mode 100644 src/asn/ngap/ASN_NGAP_EndIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_EndIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.c create mode 100644 src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.h create mode 100644 src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.c create mode 100644 src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.h create mode 100644 src/asn/ngap/ASN_NGAP_EquivalentPLMNs.c create mode 100644 src/asn/ngap/ASN_NGAP_EquivalentPLMNs.h create mode 100644 src/asn/ngap/ASN_NGAP_ErrorIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_ErrorIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.c create mode 100644 src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.h create mode 100644 src/asn/ngap/ASN_NGAP_EventTrigger.c create mode 100644 src/asn/ngap/ASN_NGAP_EventTrigger.h create mode 100644 src/asn/ngap/ASN_NGAP_EventType.c create mode 100644 src/asn/ngap/ASN_NGAP_EventType.h create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.c create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.c create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.h create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.c create mode 100644 src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedHOInterval.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedHOInterval.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMobility.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMobility.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.h create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.c create mode 100644 src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.h create mode 100644 src/asn/ngap/ASN_NGAP_Extended-AMFName.c create mode 100644 src/asn/ngap/ASN_NGAP_Extended-AMFName.h create mode 100644 src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.c create mode 100644 src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.h create mode 100644 src/asn/ngap/ASN_NGAP_Extended-RANNodeName.c create mode 100644 src/asn/ngap/ASN_NGAP_Extended-RANNodeName.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.h create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.c create mode 100644 src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.h create mode 100644 src/asn/ngap/ASN_NGAP_FailureIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_FailureIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_FirstDLCount.c create mode 100644 src/asn/ngap/ASN_NGAP_FirstDLCount.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-TMSI.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveG-TMSI.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h create mode 100644 src/asn/ngap/ASN_NGAP_FiveQI.c create mode 100644 src/asn/ngap/ASN_NGAP_FiveQI.h create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenTACs.c create mode 100644 src/asn/ngap/ASN_NGAP_ForbiddenTACs.h create mode 100644 src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.c create mode 100644 src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.h create mode 100644 src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.c create mode 100644 src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.h create mode 100644 src/asn/ngap/ASN_NGAP_GBR-QosInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_GBR-QosInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_GNB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GNB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GNBSetID.c create mode 100644 src/asn/ngap/ASN_NGAP_GNBSetID.h create mode 100644 src/asn/ngap/ASN_NGAP_GTP-TEID.c create mode 100644 src/asn/ngap/ASN_NGAP_GTP-TEID.h create mode 100644 src/asn/ngap/ASN_NGAP_GTPTunnel.c create mode 100644 src/asn/ngap/ASN_NGAP_GTPTunnel.h create mode 100644 src/asn/ngap/ASN_NGAP_GUAMI.c create mode 100644 src/asn/ngap/ASN_NGAP_GUAMI.h create mode 100644 src/asn/ngap/ASN_NGAP_GUAMIType.c create mode 100644 src/asn/ngap/ASN_NGAP_GUAMIType.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalCable-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalCable-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalENB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalENB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalGNB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalGNB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalLine-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalLine-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalLineIdentity.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalLineIdentity.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalRANNodeID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalRANNodeID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_HFCNode-ID-new.c create mode 100644 src/asn/ngap/ASN_NGAP_HFCNode-ID-new.h create mode 100644 src/asn/ngap/ASN_NGAP_HFCNode-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_HFCNode-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_HOReport.c create mode 100644 src/asn/ngap/ASN_NGAP_HOReport.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCancel.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCancel.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCommand.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCommand.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverFlag.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverFlag.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverNotify.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverNotify.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequired.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequired.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverSuccess.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverSuccess.h create mode 100644 src/asn/ngap/ASN_NGAP_HandoverType.c create mode 100644 src/asn/ngap/ASN_NGAP_HandoverType.h create mode 100644 src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.c create mode 100644 src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.h create mode 100644 src/asn/ngap/ASN_NGAP_Hysteresis.c create mode 100644 src/asn/ngap/ASN_NGAP_Hysteresis.h create mode 100644 src/asn/ngap/ASN_NGAP_IAB-Authorized.c create mode 100644 src/asn/ngap/ASN_NGAP_IAB-Authorized.h create mode 100644 src/asn/ngap/ASN_NGAP_IAB-Supported.c create mode 100644 src/asn/ngap/ASN_NGAP_IAB-Supported.h create mode 100644 src/asn/ngap/ASN_NGAP_IABNodeIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_IABNodeIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_ImmediateMDTNr.c create mode 100644 src/asn/ngap/ASN_NGAP_ImmediateMDTNr.h create mode 100644 src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_IndexToRFSP.c create mode 100644 src/asn/ngap/ASN_NGAP_IndexToRFSP.h create mode 100644 src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_InitialUEMessage.c create mode 100644 src/asn/ngap/ASN_NGAP_InitialUEMessage.h create mode 100644 src/asn/ngap/ASN_NGAP_InitiatingMessage.c create mode 100644 src/asn/ngap/ASN_NGAP_InitiatingMessage.h create mode 100644 src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.c create mode 100644 src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.h create mode 100644 src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.c create mode 100644 src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.h create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemHOReport.c create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemHOReport.h create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.c create mode 100644 src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.h create mode 100644 src/asn/ngap/ASN_NGAP_InterfacesToTrace.c create mode 100644 src/asn/ngap/ASN_NGAP_InterfacesToTrace.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.h create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.c create mode 100644 src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.h create mode 100644 src/asn/ngap/ASN_NGAP_LAC.c create mode 100644 src/asn/ngap/ASN_NGAP_LAC.h create mode 100644 src/asn/ngap/ASN_NGAP_LAI.c create mode 100644 src/asn/ngap/ASN_NGAP_LAI.h create mode 100644 src/asn/ngap/ASN_NGAP_LTEM-Indication.c create mode 100644 src/asn/ngap/ASN_NGAP_LTEM-Indication.h create mode 100644 src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.c create mode 100644 src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h create mode 100644 src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.c create mode 100644 src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedCellItem.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedCellItem.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_LineType.c create mode 100644 src/asn/ngap/ASN_NGAP_LineType.h create mode 100644 src/asn/ngap/ASN_NGAP_Links-to-log.c create mode 100644 src/asn/ngap/ASN_NGAP_Links-to-log.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReport.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReport.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingControl.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingControl.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.h create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingRequestType.c create mode 100644 src/asn/ngap/ASN_NGAP_LocationReportingRequestType.h create mode 100644 src/asn/ngap/ASN_NGAP_LoggedMDTNr.c create mode 100644 src/asn/ngap/ASN_NGAP_LoggedMDTNr.h create mode 100644 src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.c create mode 100644 src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.h create mode 100644 src/asn/ngap/ASN_NGAP_LoggingDuration.c create mode 100644 src/asn/ngap/ASN_NGAP_LoggingDuration.h create mode 100644 src/asn/ngap/ASN_NGAP_LoggingInterval.c create mode 100644 src/asn/ngap/ASN_NGAP_LoggingInterval.h create mode 100644 src/asn/ngap/ASN_NGAP_M1Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_M1Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_M1PeriodicReporting.c create mode 100644 src/asn/ngap/ASN_NGAP_M1PeriodicReporting.h create mode 100644 src/asn/ngap/ASN_NGAP_M1ReportingTrigger.c create mode 100644 src/asn/ngap/ASN_NGAP_M1ReportingTrigger.h create mode 100644 src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.c create mode 100644 src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.h create mode 100644 src/asn/ngap/ASN_NGAP_M1ThresholdType.c create mode 100644 src/asn/ngap/ASN_NGAP_M1ThresholdType.h create mode 100644 src/asn/ngap/ASN_NGAP_M4Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_M4Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_M4period.c create mode 100644 src/asn/ngap/ASN_NGAP_M4period.h create mode 100644 src/asn/ngap/ASN_NGAP_M5Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_M5Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_M5period.c create mode 100644 src/asn/ngap/ASN_NGAP_M5period.h create mode 100644 src/asn/ngap/ASN_NGAP_M6Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_M6Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_M6report-Interval.c create mode 100644 src/asn/ngap/ASN_NGAP_M6report-Interval.h create mode 100644 src/asn/ngap/ASN_NGAP_M7Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_M7Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_M7period.c create mode 100644 src/asn/ngap/ASN_NGAP_M7period.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceArea.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceArea.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionID.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionID.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionStatus.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionStatus.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.c create mode 100644 src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Activation.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Activation.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Configuration.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Location-Info.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Location-Info.h create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Location-Information.c create mode 100644 src/asn/ngap/ASN_NGAP_MDT-Location-Information.h create mode 100644 src/asn/ngap/ASN_NGAP_MDTModeEutra.c create mode 100644 src/asn/ngap/ASN_NGAP_MDTModeEutra.h create mode 100644 src/asn/ngap/ASN_NGAP_MDTModeNr.c create mode 100644 src/asn/ngap/ASN_NGAP_MDTModeNr.h create mode 100644 src/asn/ngap/ASN_NGAP_MDTPLMNList.c create mode 100644 src/asn/ngap/ASN_NGAP_MDTPLMNList.h create mode 100644 src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.c create mode 100644 src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.h create mode 100644 src/asn/ngap/ASN_NGAP_MICOModeIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_MICOModeIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_MRB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_MRB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_MaskedIMEISV.c create mode 100644 src/asn/ngap/ASN_NGAP_MaskedIMEISV.h create mode 100644 src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c create mode 100644 src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h create mode 100644 src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.c create mode 100644 src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.h create mode 100644 src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.c create mode 100644 src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.h create mode 100644 src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_MeasurementsToActivate.c create mode 100644 src/asn/ngap/ASN_NGAP_MeasurementsToActivate.h create mode 100644 src/asn/ngap/ASN_NGAP_MessageIdentifier.c create mode 100644 src/asn/ngap/ASN_NGAP_MessageIdentifier.h create mode 100644 src/asn/ngap/ASN_NGAP_MicoAllPLMN.c create mode 100644 src/asn/ngap/ASN_NGAP_MicoAllPLMN.h create mode 100644 src/asn/ngap/ASN_NGAP_MobilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_MobilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_MobilityRestrictionList.c create mode 100644 src/asn/ngap/ASN_NGAP_MobilityRestrictionList.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_N3IWF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_N3IWF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_NAS-PDU.c create mode 100644 src/asn/ngap/ASN_NGAP_NAS-PDU.h create mode 100644 src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.c create mode 100644 src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.h create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.c create mode 100644 src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.h create mode 100644 src/asn/ngap/ASN_NGAP_NGAP-PDU.c create mode 100644 src/asn/ngap/ASN_NGAP_NGAP-PDU.h create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.c create mode 100644 src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CGI.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CGI.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h create mode 100644 src/asn/ngap/ASN_NGAP_NGRANTraceID.c create mode 100644 src/asn/ngap/ASN_NGAP_NGRANTraceID.h create mode 100644 src/asn/ngap/ASN_NGAP_NGReset.c create mode 100644 src/asn/ngap/ASN_NGAP_NGReset.h create mode 100644 src/asn/ngap/ASN_NGAP_NGResetAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_NGResetAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_NGSetupResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_NID.c create mode 100644 src/asn/ngap/ASN_NGAP_NID.h create mode 100644 src/asn/ngap/ASN_NGAP_NPN-AccessInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_NPN-AccessInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_NPN-Support.c create mode 100644 src/asn/ngap/ASN_NGAP_NPN-Support.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGI.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGI.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGIList.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGIList.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-PCI.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-PCI.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h create mode 100644 src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_NRARFCN.c create mode 100644 src/asn/ngap/ASN_NGAP_NRARFCN.h create mode 100644 src/asn/ngap/ASN_NGAP_NRCellIdentity.c create mode 100644 src/asn/ngap/ASN_NGAP_NRCellIdentity.h create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.c create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.h create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBand.c create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBand.h create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.c create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.h create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_NRFrequencyInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.c create mode 100644 src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.h create mode 100644 src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_NRPPa-PDU.c create mode 100644 src/asn/ngap/ASN_NGAP_NRPPa-PDU.h create mode 100644 src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.c create mode 100644 src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h create mode 100644 src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.c create mode 100644 src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.h create mode 100644 src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.c create mode 100644 src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.h create mode 100644 src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.c create mode 100644 src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.h create mode 100644 src/asn/ngap/ASN_NGAP_NSAG-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_NSAG-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_NetworkInstance.c create mode 100644 src/asn/ngap/ASN_NGAP_NetworkInstance.h create mode 100644 src/asn/ngap/ASN_NGAP_NewSecurityContextInd.c create mode 100644 src/asn/ngap/ASN_NGAP_NewSecurityContextInd.h create mode 100644 src/asn/ngap/ASN_NGAP_NextHopChainingCount.c create mode 100644 src/asn/ngap/ASN_NGAP_NextHopChainingCount.h create mode 100644 src/asn/ngap/ASN_NGAP_NextPagingAreaScope.c create mode 100644 src/asn/ngap/ASN_NGAP_NextPagingAreaScope.h create mode 100644 src/asn/ngap/ASN_NGAP_NgENB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_NgENB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.c create mode 100644 src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.h create mode 100644 src/asn/ngap/ASN_NGAP_NotAllowedTACs.c create mode 100644 src/asn/ngap/ASN_NGAP_NotAllowedTACs.h create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCause.c create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCause.h create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCell-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCell-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_NotificationCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_NotificationControl.c create mode 100644 src/asn/ngap/ASN_NGAP_NotificationControl.h create mode 100644 src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.c create mode 100644 src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.h create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.c create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.h create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.c create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.h create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.c create mode 100644 src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.h create mode 100644 src/asn/ngap/ASN_NGAP_OnboardingSupport.c create mode 100644 src/asn/ngap/ASN_NGAP_OnboardingSupport.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadAction.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadAction.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStart.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStart.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.h create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStop.c create mode 100644 src/asn/ngap/ASN_NGAP_OverloadStop.h create mode 100644 src/asn/ngap/ASN_NGAP_PC5FlowBitRates.c create mode 100644 src/asn/ngap/ASN_NGAP_PC5FlowBitRates.h create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSFlowList.c create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSFlowList.h create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSParameters.c create mode 100644 src/asn/ngap/ASN_NGAP_PC5QoSParameters.h create mode 100644 src/asn/ngap/ASN_NGAP_PCIListForMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_PCIListForMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionID.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionID.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionPairID.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionPairID.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionType.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionType.h create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.c create mode 100644 src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.h create mode 100644 src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_PLMNIdentity.c create mode 100644 src/asn/ngap/ASN_NGAP_PLMNIdentity.h create mode 100644 src/asn/ngap/ASN_NGAP_PLMNListforQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_PLMNListforQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_PLMNSupportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_PLMNSupportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_PLMNSupportList.c create mode 100644 src/asn/ngap/ASN_NGAP_PLMNSupportList.h create mode 100644 src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_PWSCancelRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_PWSCancelRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_PWSCancelResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_PWSCancelResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.c create mode 100644 src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.h create mode 100644 src/asn/ngap/ASN_NGAP_PWSFailureIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_PWSFailureIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_PWSRestartIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_PWSRestartIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_PacketDelayBudget.c create mode 100644 src/asn/ngap/ASN_NGAP_PacketDelayBudget.h create mode 100644 src/asn/ngap/ASN_NGAP_PacketErrorRate.c create mode 100644 src/asn/ngap/ASN_NGAP_PacketErrorRate.h create mode 100644 src/asn/ngap/ASN_NGAP_PacketLossRate.c create mode 100644 src/asn/ngap/ASN_NGAP_PacketLossRate.h create mode 100644 src/asn/ngap/ASN_NGAP_Paging.c create mode 100644 src/asn/ngap/ASN_NGAP_Paging.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingAttemptCount.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingAttemptCount.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingAttemptInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingAttemptInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingCause.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingCause.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingDRX.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingDRX.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingOrigin.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingOrigin.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingPriority.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingPriority.h create mode 100644 src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_PedestrianUE.c create mode 100644 src/asn/ngap/ASN_NGAP_PedestrianUE.h create mode 100644 src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.c create mode 100644 src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.h create mode 100644 src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.c create mode 100644 src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.h create mode 100644 src/asn/ngap/ASN_NGAP_Periodicity.c create mode 100644 src/asn/ngap/ASN_NGAP_Periodicity.h create mode 100644 src/asn/ngap/ASN_NGAP_PortNumber.c create mode 100644 src/asn/ngap/ASN_NGAP_PortNumber.h create mode 100644 src/asn/ngap/ASN_NGAP_Pre-emptionCapability.c create mode 100644 src/asn/ngap/ASN_NGAP_Pre-emptionCapability.h create mode 100644 src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.c create mode 100644 src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.h create mode 100644 src/asn/ngap/ASN_NGAP_Presence.c create mode 100644 src/asn/ngap/ASN_NGAP_Presence.h create mode 100644 src/asn/ngap/ASN_NGAP_PriorityLevelARP.c create mode 100644 src/asn/ngap/ASN_NGAP_PriorityLevelARP.h create mode 100644 src/asn/ngap/ASN_NGAP_PriorityLevelQos.c create mode 100644 src/asn/ngap/ASN_NGAP_PriorityLevelQos.h create mode 100644 src/asn/ngap/ASN_NGAP_PrivacyIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_PrivacyIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-Container.c create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-Container.h create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-Field.c create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-Field.h create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_PrivateIE-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_PrivateMessage.c create mode 100644 src/asn/ngap/ASN_NGAP_PrivateMessage.h create mode 100644 src/asn/ngap/ASN_NGAP_ProcedureCode.c create mode 100644 src/asn/ngap/ASN_NGAP_ProcedureCode.h create mode 100644 src/asn/ngap/ASN_NGAP_ProcedureStageChoice.c create mode 100644 src/asn/ngap/ASN_NGAP_ProcedureStageChoice.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionField.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionField.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionID.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolExtensionID.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-Container.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-Container.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-Field.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-Field.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_QMCConfigInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_QMCConfigInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_QMCDeactivation.c create mode 100644 src/asn/ngap/ASN_NGAP_QMCDeactivation.h create mode 100644 src/asn/ngap/ASN_NGAP_QoEReference.c create mode 100644 src/asn/ngap/ASN_NGAP_QoEReference.h create mode 100644 src/asn/ngap/ASN_NGAP_QoEReferenceList.c create mode 100644 src/asn/ngap/ASN_NGAP_QoEReferenceList.h create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowList.c create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowList.h create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosCharacteristics.c create mode 100644 src/asn/ngap/ASN_NGAP_QosCharacteristics.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowIdentifier.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowIdentifier.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowListWithCause.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowListWithCause.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowNotifyList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowNotifyList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowParametersItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowParametersItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowParametersList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowParametersList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.h create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.c create mode 100644 src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.h create mode 100644 src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.c create mode 100644 src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.h create mode 100644 src/asn/ngap/ASN_NGAP_QosMonitoringRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_QosMonitoringRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.c create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.h create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.c create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.h create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeName.c create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeName.h create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.c create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.h create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.c create mode 100644 src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.h create mode 100644 src/asn/ngap/ASN_NGAP_RANPagingPriority.c create mode 100644 src/asn/ngap/ASN_NGAP_RANPagingPriority.h create mode 100644 src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_RAT-Information.c create mode 100644 src/asn/ngap/ASN_NGAP_RAT-Information.h create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictionInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictionInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictions-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictions-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictions.c create mode 100644 src/asn/ngap/ASN_NGAP_RATRestrictions.h create mode 100644 src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.c create mode 100644 src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.h create mode 100644 src/asn/ngap/ASN_NGAP_RIMInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_RIMInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_RIMInformationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_RIMInformationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_RNC-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_RNC-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_RRCContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_RRCContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.c create mode 100644 src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.h create mode 100644 src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.c create mode 100644 src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.h create mode 100644 src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_RRCState.c create mode 100644 src/asn/ngap/ASN_NGAP_RRCState.h create mode 100644 src/asn/ngap/ASN_NGAP_RSN.c create mode 100644 src/asn/ngap/ASN_NGAP_RSN.h create mode 100644 src/asn/ngap/ASN_NGAP_Range.c create mode 100644 src/asn/ngap/ASN_NGAP_Range.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellItem.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellItem.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellList.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellList.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.h create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_RedCapIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_RedCapIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.c create mode 100644 src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.h create mode 100644 src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.c create mode 100644 src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.h create mode 100644 src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.c create mode 100644 src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.h create mode 100644 src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.c create mode 100644 src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.h create mode 100644 src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.c create mode 100644 src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.h create mode 100644 src/asn/ngap/ASN_NGAP_RepetitionPeriod.c create mode 100644 src/asn/ngap/ASN_NGAP_RepetitionPeriod.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportAmountMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportAmountMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportArea.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportArea.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportCharacteristics.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportCharacteristics.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportIntervalMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportIntervalMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportType.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportType.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportingPeriodicity.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportingPeriodicity.h create mode 100644 src/asn/ngap/ASN_NGAP_ReportingSystem.c create mode 100644 src/asn/ngap/ASN_NGAP_ReportingSystem.h create mode 100644 src/asn/ngap/ASN_NGAP_RerouteNASRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_RerouteNASRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_ResetAll.c create mode 100644 src/asn/ngap/ASN_NGAP_ResetAll.h create mode 100644 src/asn/ngap/ASN_NGAP_ResetType.c create mode 100644 src/asn/ngap/ASN_NGAP_ResetType.h create mode 100644 src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.c create mode 100644 src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.h create mode 100644 src/asn/ngap/ASN_NGAP_RetrieveUEInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_RetrieveUEInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_RoutingID.c create mode 100644 src/asn/ngap/ASN_NGAP_RoutingID.h create mode 100644 src/asn/ngap/ASN_NGAP_S-NSSAI.c create mode 100644 src/asn/ngap/ASN_NGAP_S-NSSAI.h create mode 100644 src/asn/ngap/ASN_NGAP_SCTP-TLAs.c create mode 100644 src/asn/ngap/ASN_NGAP_SCTP-TLAs.h create mode 100644 src/asn/ngap/ASN_NGAP_SD.c create mode 100644 src/asn/ngap/ASN_NGAP_SD.h create mode 100644 src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_SONInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_SONInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationReply.c create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationReply.h create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationReport.c create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationReport.h create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_SONInformationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.c create mode 100644 src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.h create mode 100644 src/asn/ngap/ASN_NGAP_SST.c create mode 100644 src/asn/ngap/ASN_NGAP_SST.h create mode 100644 src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.c create mode 100644 src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.h create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.c create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.h create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_SecurityContext.c create mode 100644 src/asn/ngap/ASN_NGAP_SecurityContext.h create mode 100644 src/asn/ngap/ASN_NGAP_SecurityIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_SecurityIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_SecurityKey.c create mode 100644 src/asn/ngap/ASN_NGAP_SecurityKey.h create mode 100644 src/asn/ngap/ASN_NGAP_SecurityResult.c create mode 100644 src/asn/ngap/ASN_NGAP_SecurityResult.h create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfig.c create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfig.h create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.c create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.h create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.c create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.h create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.c create mode 100644 src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.h create mode 100644 src/asn/ngap/ASN_NGAP_SensorNameConfig.c create mode 100644 src/asn/ngap/ASN_NGAP_SensorNameConfig.h create mode 100644 src/asn/ngap/ASN_NGAP_SerialNumber.c create mode 100644 src/asn/ngap/ASN_NGAP_SerialNumber.h create mode 100644 src/asn/ngap/ASN_NGAP_ServedGUAMIItem.c create mode 100644 src/asn/ngap/ASN_NGAP_ServedGUAMIItem.h create mode 100644 src/asn/ngap/ASN_NGAP_ServedGUAMIList.c create mode 100644 src/asn/ngap/ASN_NGAP_ServedGUAMIList.h create mode 100644 src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_ServiceAreaInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_ServiceAreaInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_ServiceType.c create mode 100644 src/asn/ngap/ASN_NGAP_ServiceType.h create mode 100644 src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceOverloadItem.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceOverloadItem.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceOverloadList.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceOverloadList.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportList.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportList.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportListQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportListQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceNodeID.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceNodeID.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceRANNodeID.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceRANNodeID.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.h create mode 100644 src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulOutcome.c create mode 100644 src/asn/ngap/ASN_NGAP_SuccessfulOutcome.h create mode 100644 src/asn/ngap/ASN_NGAP_SupportedTAItem.c create mode 100644 src/asn/ngap/ASN_NGAP_SupportedTAItem.h create mode 100644 src/asn/ngap/ASN_NGAP_SupportedTAList.c create mode 100644 src/asn/ngap/ASN_NGAP_SupportedTAList.h create mode 100644 src/asn/ngap/ASN_NGAP_SurvivalTime.c create mode 100644 src/asn/ngap/ASN_NGAP_SurvivalTime.h create mode 100644 src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.c create mode 100644 src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.h create mode 100644 src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.c create mode 100644 src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.h create mode 100644 src/asn/ngap/ASN_NGAP_SuspendIndicator.c create mode 100644 src/asn/ngap/ASN_NGAP_SuspendIndicator.h create mode 100644 src/asn/ngap/ASN_NGAP_TABasedMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_TABasedMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_TABasedQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_TABasedQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_TAC.c create mode 100644 src/asn/ngap/ASN_NGAP_TAC.h create mode 100644 src/asn/ngap/ASN_NGAP_TACListInNRNTN.c create mode 100644 src/asn/ngap/ASN_NGAP_TACListInNRNTN.h create mode 100644 src/asn/ngap/ASN_NGAP_TAI.c create mode 100644 src/asn/ngap/ASN_NGAP_TAI.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBasedMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBasedMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBasedQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBasedQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastNR.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIBroadcastNR.h create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledNR.c create mode 100644 src/asn/ngap/ASN_NGAP_TAICancelledNR.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForInactive.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForInactive.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForPagingItem.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForPagingItem.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForRestart.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForRestart.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForWarning.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListForWarning.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListforMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListforMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_TAIListforQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_TAIListforQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.c create mode 100644 src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.h create mode 100644 src/asn/ngap/ASN_NGAP_TAINSAGSupportList.c create mode 100644 src/asn/ngap/ASN_NGAP_TAINSAGSupportList.h create mode 100644 src/asn/ngap/ASN_NGAP_TAListforMDT.c create mode 100644 src/asn/ngap/ASN_NGAP_TAListforMDT.h create mode 100644 src/asn/ngap/ASN_NGAP_TAListforQMC.c create mode 100644 src/asn/ngap/ASN_NGAP_TAListforQMC.h create mode 100644 src/asn/ngap/ASN_NGAP_TMGI.c create mode 100644 src/asn/ngap/ASN_NGAP_TMGI.h create mode 100644 src/asn/ngap/ASN_NGAP_TNAP-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TNAP-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TNGF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TNGF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.c create mode 100644 src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.h create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationList.c create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationList.h create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationUsage.c create mode 100644 src/asn/ngap/ASN_NGAP_TNLAssociationUsage.h create mode 100644 src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.c create mode 100644 src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.h create mode 100644 src/asn/ngap/ASN_NGAP_TWAP-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TWAP-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TWIF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TWIF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetID.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAI.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAI.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetRANNodeID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetRNC-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetRNC-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_TargeteNB-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_TargeteNB-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-RSRP.c create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-RSRP.h create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-RSRQ.c create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-RSRQ.h create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-SINR.c create mode 100644 src/asn/ngap/ASN_NGAP_Threshold-SINR.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeStamp.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeStamp.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeToTrigger.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeToTrigger.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeToWait.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeToWait.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.h create mode 100644 src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.c create mode 100644 src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h create mode 100644 src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.c create mode 100644 src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.h create mode 100644 src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.c create mode 100644 src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.h create mode 100644 src/asn/ngap/ASN_NGAP_TraceActivation.c create mode 100644 src/asn/ngap/ASN_NGAP_TraceActivation.h create mode 100644 src/asn/ngap/ASN_NGAP_TraceDepth.c create mode 100644 src/asn/ngap/ASN_NGAP_TraceDepth.h create mode 100644 src/asn/ngap/ASN_NGAP_TraceFailureIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_TraceFailureIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_TraceStart.c create mode 100644 src/asn/ngap/ASN_NGAP_TraceStart.h create mode 100644 src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_TransportLayerAddress.c create mode 100644 src/asn/ngap/ASN_NGAP_TransportLayerAddress.h create mode 100644 src/asn/ngap/ASN_NGAP_TriggeringMessage.c create mode 100644 src/asn/ngap/ASN_NGAP_TriggeringMessage.h create mode 100644 src/asn/ngap/ASN_NGAP_TypeOfError.c create mode 100644 src/asn/ngap/ASN_NGAP_TypeOfError.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-PagingItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-PagingItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-PagingList.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-PagingList.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.c create mode 100644 src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.h create mode 100644 src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.c create mode 100644 src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.h create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.c create mode 100644 src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.h create mode 100644 src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextModificationResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_UEHistoryInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UEHistoryInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.c create mode 100644 src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.h create mode 100644 src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.c create mode 100644 src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.h create mode 100644 src/asn/ngap/ASN_NGAP_UEInformationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UEInformationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UEPagingIdentity.c create mode 100644 src/asn/ngap/ASN_NGAP_UEPagingIdentity.h create mode 100644 src/asn/ngap/ASN_NGAP_UEPresence.c create mode 100644 src/asn/ngap/ASN_NGAP_UEPresence.h create mode 100644 src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.c create mode 100644 src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.h create mode 100644 src/asn/ngap/ASN_NGAP_UERLFReportContainer.c create mode 100644 src/asn/ngap/ASN_NGAP_UERLFReportContainer.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapability.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapability.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityID.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityID.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.c create mode 100644 src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.h create mode 100644 src/asn/ngap/ASN_NGAP_UERetentionInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UERetentionInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_UESecurityCapabilities.c create mode 100644 src/asn/ngap/ASN_NGAP_UESecurityCapabilities.h create mode 100644 src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.c create mode 100644 src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.h create mode 100644 src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_UL-NAS-Count.c create mode 100644 src/asn/ngap/ASN_NGAP_UL-NAS-Count.h create mode 100644 src/asn/ngap/ASN_NGAP_UL-NAS-MAC.c create mode 100644 src/asn/ngap/ASN_NGAP_UL-NAS-MAC.h create mode 100644 src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c create mode 100644 src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h create mode 100644 src/asn/ngap/ASN_NGAP_ULForwarding.c create mode 100644 src/asn/ngap/ASN_NGAP_ULForwarding.h create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.c create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.h create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.c create mode 100644 src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.h create mode 100644 src/asn/ngap/ASN_NGAP_URI-address.c create mode 100644 src/asn/ngap/ASN_NGAP_URI-address.h create mode 100644 src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.c create mode 100644 src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.h create mode 100644 src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.c create mode 100644 src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.h create mode 100644 src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.c create mode 100644 src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.h create mode 100644 src/asn/ngap/ASN_NGAP_UpdateFeedback.c create mode 100644 src/asn/ngap/ASN_NGAP_UpdateFeedback.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkNASTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkNASTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.h create mode 100644 src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.c create mode 100644 src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationNR.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationNR.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.h create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.c create mode 100644 src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.h create mode 100644 src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.c create mode 100644 src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.h create mode 100644 src/asn/ngap/ASN_NGAP_VehicleUE.c create mode 100644 src/asn/ngap/ASN_NGAP_VehicleUE.h create mode 100644 src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_VolumeTimedReportList.c create mode 100644 src/asn/ngap/ASN_NGAP_VolumeTimedReportList.h create mode 100644 src/asn/ngap/ASN_NGAP_W-AGF-ID.c create mode 100644 src/asn/ngap/ASN_NGAP_W-AGF-ID.h create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfig.c create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfig.h create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.c create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.h create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.c create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.h create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.c create mode 100644 src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.h create mode 100644 src/asn/ngap/ASN_NGAP_WLANName.c create mode 100644 src/asn/ngap/ASN_NGAP_WLANName.h create mode 100644 src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.c create mode 100644 src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.h create mode 100644 src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.c create mode 100644 src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.h create mode 100644 src/asn/ngap/ASN_NGAP_WarningAreaList.c create mode 100644 src/asn/ngap/ASN_NGAP_WarningAreaList.h create mode 100644 src/asn/ngap/ASN_NGAP_WarningMessageContents.c create mode 100644 src/asn/ngap/ASN_NGAP_WarningMessageContents.h create mode 100644 src/asn/ngap/ASN_NGAP_WarningSecurityInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_WarningSecurityInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_WarningType.c create mode 100644 src/asn/ngap/ASN_NGAP_WarningType.h create mode 100644 src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.c create mode 100644 src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.h create mode 100644 src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.c create mode 100644 src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.h create mode 100644 src/asn/ngap/ASN_NGAP_XnExtTLA-Item.c create mode 100644 src/asn/ngap/ASN_NGAP_XnExtTLA-Item.h create mode 100644 src/asn/ngap/ASN_NGAP_XnExtTLAs.c create mode 100644 src/asn/ngap/ASN_NGAP_XnExtTLAs.h create mode 100644 src/asn/ngap/ASN_NGAP_XnGTP-TLAs.c create mode 100644 src/asn/ngap/ASN_NGAP_XnGTP-TLAs.h create mode 100644 src/asn/ngap/ASN_NGAP_XnTLAs.c create mode 100644 src/asn/ngap/ASN_NGAP_XnTLAs.h create mode 100644 src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.c create mode 100644 src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.h create mode 100644 src/asn/ngap/ASN_NGAP_asn_constant.h create mode 100644 src/asn/ngap/CMakeLists.txt create mode 100644 src/asn/rrc/ASN_RRC_AMF-Identifier.c create mode 100644 src/asn/rrc/ASN_RRC_AMF-Identifier.h create mode 100644 src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_ARFCN-ValueNR.c create mode 100644 src/asn/rrc/ASN_RRC_ARFCN-ValueNR.h create mode 100644 src/asn/rrc/ASN_RRC_AS-Config.c create mode 100644 src/asn/rrc/ASN_RRC_AS-Config.h create mode 100644 src/asn/rrc/ASN_RRC_AS-Context.c create mode 100644 src/asn/rrc/ASN_RRC_AS-Context.h create mode 100644 src/asn/rrc/ASN_RRC_AccessStratumRelease.c create mode 100644 src/asn/rrc/ASN_RRC_AccessStratumRelease.h create mode 100644 src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.c create mode 100644 src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.h create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.c create mode 100644 src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.h create mode 100644 src/asn/rrc/ASN_RRC_AggregatedBandwidth.c create mode 100644 src/asn/rrc/ASN_RRC_AggregatedBandwidth.h create mode 100644 src/asn/rrc/ASN_RRC_Alpha.c create mode 100644 src/asn/rrc/ASN_RRC_Alpha.h create mode 100644 src/asn/rrc/ASN_RRC_BCCH-BCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_BCCH-BCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_BCCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_BCCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_BFR-SSB-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_BFR-SSB-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_BSR-Config.c create mode 100644 src/asn/rrc/ASN_RRC_BSR-Config.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-Downlink.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-Downlink.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-Id.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-Id.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-Uplink.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-Uplink.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-UplinkCommon.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-UplinkCommon.h create mode 100644 src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.c create mode 100644 src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.h create mode 100644 src/asn/rrc/ASN_RRC_BWP.c create mode 100644 src/asn/rrc/ASN_RRC_BWP.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1550.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1550.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombination-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombination.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombination.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationIndex.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationIndex.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfo.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfo.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfoList.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfoList.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfoSN.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationInfoSN.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1550.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1550.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList.c create mode 100644 src/asn/rrc/ASN_RRC_BandCombinationList.h create mode 100644 src/asn/rrc/ASN_RRC_BandEntryIndex.c create mode 100644 src/asn/rrc/ASN_RRC_BandEntryIndex.h create mode 100644 src/asn/rrc/ASN_RRC_BandNR.c create mode 100644 src/asn/rrc/ASN_RRC_BandNR.h create mode 100644 src/asn/rrc/ASN_RRC_BandParameters-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_BandParameters-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_BandParameters.c create mode 100644 src/asn/rrc/ASN_RRC_BandParameters.h create mode 100644 src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.c create mode 100644 src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.h create mode 100644 src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.c create mode 100644 src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.h create mode 100644 src/asn/rrc/ASN_RRC_BetaOffsets.c create mode 100644 src/asn/rrc/ASN_RRC_BetaOffsets.h create mode 100644 src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.c create mode 100644 src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNR.h create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNRDC.c create mode 100644 src/asn/rrc/ASN_RRC_CA-ParametersNRDC.h create mode 100644 src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_CFRA.c create mode 100644 src/asn/rrc/ASN_RRC_CFRA.h create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-Config.c create mode 100644 src/asn/rrc/ASN_RRC_CG-Config.h create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo.c create mode 100644 src/asn/rrc/ASN_RRC_CG-ConfigInfo.h create mode 100644 src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.c create mode 100644 src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.h create mode 100644 src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CGI-InfoNR.c create mode 100644 src/asn/rrc/ASN_RRC_CGI-InfoNR.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-MeasConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-MeasConfig.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-Index.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-Index.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportConfig.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportConfigId.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportConfigId.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportFramework.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportFramework.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourceConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourceConfig.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h create mode 100644 src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.c create mode 100644 src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h create mode 100644 src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.c create mode 100644 src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.h create mode 100644 src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_CarrierInfoNR.c create mode 100644 src/asn/rrc/ASN_RRC_CarrierInfoNR.h create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.c create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.c create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.c create mode 100644 src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.h create mode 100644 src/asn/rrc/ASN_RRC_CellGroupConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CellGroupConfig.h create mode 100644 src/asn/rrc/ASN_RRC_CellGroupId.c create mode 100644 src/asn/rrc/ASN_RRC_CellGroupId.h create mode 100644 src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.c create mode 100644 src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.h create mode 100644 src/asn/rrc/ASN_RRC_CellIdentity.c create mode 100644 src/asn/rrc/ASN_RRC_CellIdentity.h create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionPriorities.c create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionPriorities.h create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionPriority.c create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionPriority.h create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionSubPriority.c create mode 100644 src/asn/rrc/ASN_RRC_CellReselectionSubPriority.h create mode 100644 src/asn/rrc/ASN_RRC_CellsToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_CellsToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_CellsToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_CellsToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_CellsTriggeredList.c create mode 100644 src/asn/rrc/ASN_RRC_CellsTriggeredList.h create mode 100644 src/asn/rrc/ASN_RRC_CipheringAlgorithm.c create mode 100644 src/asn/rrc/ASN_RRC_CipheringAlgorithm.h create mode 100644 src/asn/rrc/ASN_RRC_CodebookConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CodebookConfig.h create mode 100644 src/asn/rrc/ASN_RRC_CodebookParameters.c create mode 100644 src/asn/rrc/ASN_RRC_CodebookParameters.h create mode 100644 src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.c create mode 100644 src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.h create mode 100644 src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.c create mode 100644 src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.h create mode 100644 src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.c create mode 100644 src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.h create mode 100644 src/asn/rrc/ASN_RRC_ConnEstFailureControl.c create mode 100644 src/asn/rrc/ASN_RRC_ConnEstFailureControl.h create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSetZero.c create mode 100644 src/asn/rrc/ASN_RRC_ControlResourceSetZero.h create mode 100644 src/asn/rrc/ASN_RRC_CounterCheck-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CounterCheck-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CounterCheck.c create mode 100644 src/asn/rrc/ASN_RRC_CounterCheck.h create mode 100644 src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_CounterCheckResponse.c create mode 100644 src/asn/rrc/ASN_RRC_CounterCheckResponse.h create mode 100644 src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.c create mode 100644 src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.h create mode 100644 src/asn/rrc/ASN_RRC_DL-AM-RLC.c create mode 100644 src/asn/rrc/ASN_RRC_DL-AM-RLC.h create mode 100644 src/asn/rrc/ASN_RRC_DL-CCCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_DL-CCCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_DL-DCCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_DL-DCCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_DL-UM-RLC.c create mode 100644 src/asn/rrc/ASN_RRC_DL-UM-RLC.h create mode 100644 src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_DLInformationTransfer.c create mode 100644 src/asn/rrc/ASN_RRC_DLInformationTransfer.h create mode 100644 src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.c create mode 100644 src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.h create mode 100644 src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.c create mode 100644 src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountInfo.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountInfo.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountInfoList.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountInfoList.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToReleaseList.c create mode 100644 src/asn/rrc/ASN_RRC_DRB-ToReleaseList.h create mode 100644 src/asn/rrc/ASN_RRC_DRX-Config.c create mode 100644 src/asn/rrc/ASN_RRC_DRX-Config.h create mode 100644 src/asn/rrc/ASN_RRC_DRX-Info.c create mode 100644 src/asn/rrc/ASN_RRC_DRX-Info.h create mode 100644 src/asn/rrc/ASN_RRC_DataInactivityTimer.c create mode 100644 src/asn/rrc/ASN_RRC_DataInactivityTimer.h create mode 100644 src/asn/rrc/ASN_RRC_DedicatedNAS-Message.c create mode 100644 src/asn/rrc/ASN_RRC_DedicatedNAS-Message.h create mode 100644 src/asn/rrc/ASN_RRC_DelayBudgetReport.c create mode 100644 src/asn/rrc/ASN_RRC_DelayBudgetReport.h create mode 100644 src/asn/rrc/ASN_RRC_DownlinkConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_DownlinkConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.c create mode 100644 src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.h create mode 100644 src/asn/rrc/ASN_RRC_DownlinkPreemption.c create mode 100644 src/asn/rrc/ASN_RRC_DownlinkPreemption.h create mode 100644 src/asn/rrc/ASN_RRC_DummyA.c create mode 100644 src/asn/rrc/ASN_RRC_DummyA.h create mode 100644 src/asn/rrc/ASN_RRC_DummyB.c create mode 100644 src/asn/rrc/ASN_RRC_DummyB.h create mode 100644 src/asn/rrc/ASN_RRC_DummyC.c create mode 100644 src/asn/rrc/ASN_RRC_DummyC.h create mode 100644 src/asn/rrc/ASN_RRC_DummyD.c create mode 100644 src/asn/rrc/ASN_RRC_DummyD.h create mode 100644 src/asn/rrc/ASN_RRC_DummyE.c create mode 100644 src/asn/rrc/ASN_RRC_DummyE.h create mode 100644 src/asn/rrc/ASN_RRC_DummyF.c create mode 100644 src/asn/rrc/ASN_RRC_DummyF.h create mode 100644 src/asn/rrc/ASN_RRC_DummyG.c create mode 100644 src/asn/rrc/ASN_RRC_DummyG.h create mode 100644 src/asn/rrc/ASN_RRC_DummyH.c create mode 100644 src/asn/rrc/ASN_RRC_DummyH.h create mode 100644 src/asn/rrc/ASN_RRC_DummyI.c create mode 100644 src/asn/rrc/ASN_RRC_DummyI.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-BlackCell.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-BlackCell.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Cell.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Cell.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-CellIndex.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-CellIndex.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.h create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.c create mode 100644 src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.h create mode 100644 src/asn/rrc/ASN_RRC_EstablishmentCause.c create mode 100644 src/asn/rrc/ASN_RRC_EstablishmentCause.h create mode 100644 src/asn/rrc/ASN_RRC_EventTriggerConfig.c create mode 100644 src/asn/rrc/ASN_RRC_EventTriggerConfig.h create mode 100644 src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.c create mode 100644 src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.h create mode 100644 src/asn/rrc/ASN_RRC_FR-Info.c create mode 100644 src/asn/rrc/ASN_RRC_FR-Info.h create mode 100644 src/asn/rrc/ASN_RRC_FR-InfoList.c create mode 100644 src/asn/rrc/ASN_RRC_FR-InfoList.h create mode 100644 src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.c create mode 100644 src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.h create mode 100644 src/asn/rrc/ASN_RRC_FailureInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_FailureInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_FailureInformation.c create mode 100644 src/asn/rrc/ASN_RRC_FailureInformation.h create mode 100644 src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_FailureReportSCG.c create mode 100644 src/asn/rrc/ASN_RRC_FailureReportSCG.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSet.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSet.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetCombination.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetCombination.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetCombinationId.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetCombinationId.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlink.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlink.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplink.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplink.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkId.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkId.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSets.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSets.h create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetsPerBand.c create mode 100644 src/asn/rrc/ASN_RRC_FeatureSetsPerBand.h create mode 100644 src/asn/rrc/ASN_RRC_FilterCoefficient.c create mode 100644 src/asn/rrc/ASN_RRC_FilterCoefficient.h create mode 100644 src/asn/rrc/ASN_RRC_FilterConfig.c create mode 100644 src/asn/rrc/ASN_RRC_FilterConfig.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformation.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformation.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformationNR.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandInformationNR.h create mode 100644 src/asn/rrc/ASN_RRC_FreqBandList.c create mode 100644 src/asn/rrc/ASN_RRC_FreqBandList.h create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityListNR.c create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityListNR.h create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityNR.c create mode 100644 src/asn/rrc/ASN_RRC_FreqPriorityNR.h create mode 100644 src/asn/rrc/ASN_RRC_FreqSeparationClass.c create mode 100644 src/asn/rrc/ASN_RRC_FreqSeparationClass.h create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.c create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.h create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoDL.c create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoDL.h create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.c create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.h create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoUL.c create mode 100644 src/asn/rrc/ASN_RRC_FrequencyInfoUL.h create mode 100644 src/asn/rrc/ASN_RRC_GapConfig.c create mode 100644 src/asn/rrc/ASN_RRC_GapConfig.h create mode 100644 src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_HandoverCommand-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_HandoverCommand-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_HandoverCommand.c create mode 100644 src/asn/rrc/ASN_RRC_HandoverCommand.h create mode 100644 src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_HandoverPreparationInformation.c create mode 100644 src/asn/rrc/ASN_RRC_HandoverPreparationInformation.h create mode 100644 src/asn/rrc/ASN_RRC_Hysteresis.c create mode 100644 src/asn/rrc/ASN_RRC_Hysteresis.h create mode 100644 src/asn/rrc/ASN_RRC_I-RNTI-Value.c create mode 100644 src/asn/rrc/ASN_RRC_I-RNTI-Value.h create mode 100644 src/asn/rrc/ASN_RRC_IMS-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_IMS-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_IMS-ParametersCommon.c create mode 100644 src/asn/rrc/ASN_RRC_IMS-ParametersCommon.h create mode 100644 src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.c create mode 100644 src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.h create mode 100644 src/asn/rrc/ASN_RRC_InitialUE-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_InitialUE-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.c create mode 100644 src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.h create mode 100644 src/asn/rrc/ASN_RRC_InterFreqBlackCellList.c create mode 100644 src/asn/rrc/ASN_RRC_InterFreqBlackCellList.h create mode 100644 src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.c create mode 100644 src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.h create mode 100644 src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.c create mode 100644 src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.h create mode 100644 src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.c create mode 100644 src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.h create mode 100644 src/asn/rrc/ASN_RRC_InterFreqNeighCellList.c create mode 100644 src/asn/rrc/ASN_RRC_InterFreqNeighCellList.h create mode 100644 src/asn/rrc/ASN_RRC_InterRAT-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_InterRAT-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.c create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.h create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.c create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.h create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.c create mode 100644 src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.h create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementIndication.c create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementIndication.h create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementInfo.c create mode 100644 src/asn/rrc/ASN_RRC_LocationMeasurementInfo.h create mode 100644 src/asn/rrc/ASN_RRC_LogicalChannelConfig.c create mode 100644 src/asn/rrc/ASN_RRC_LogicalChannelConfig.h create mode 100644 src/asn/rrc/ASN_RRC_LogicalChannelIdentity.c create mode 100644 src/asn/rrc/ASN_RRC_LogicalChannelIdentity.h create mode 100644 src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.c create mode 100644 src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.h create mode 100644 src/asn/rrc/ASN_RRC_MAC-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_MAC-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_MAC-ParametersCommon.c create mode 100644 src/asn/rrc/ASN_RRC_MAC-ParametersCommon.h create mode 100644 src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_MCC-MNC-Digit.c create mode 100644 src/asn/rrc/ASN_RRC_MCC-MNC-Digit.h create mode 100644 src/asn/rrc/ASN_RRC_MCC.c create mode 100644 src/asn/rrc/ASN_RRC_MCC.h create mode 100644 src/asn/rrc/ASN_RRC_MIB.c create mode 100644 src/asn/rrc/ASN_RRC_MIB.h create mode 100644 src/asn/rrc/ASN_RRC_MIMO-LayersDL.c create mode 100644 src/asn/rrc/ASN_RRC_MIMO-LayersDL.h create mode 100644 src/asn/rrc/ASN_RRC_MIMO-LayersUL.c create mode 100644 src/asn/rrc/ASN_RRC_MIMO-LayersUL.h create mode 100644 src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.c create mode 100644 src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.h create mode 100644 src/asn/rrc/ASN_RRC_MNC.c create mode 100644 src/asn/rrc/ASN_RRC_MNC.h create mode 100644 src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.c create mode 100644 src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.h create mode 100644 src/asn/rrc/ASN_RRC_MRDC-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_MRDC-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.c create mode 100644 src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.h create mode 100644 src/asn/rrc/ASN_RRC_MasterKeyUpdate.c create mode 100644 src/asn/rrc/ASN_RRC_MasterKeyUpdate.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParameters.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParameters.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_MeasConfig.c create mode 100644 src/asn/rrc/ASN_RRC_MeasConfig.h create mode 100644 src/asn/rrc/ASN_RRC_MeasConfigMN.c create mode 100644 src/asn/rrc/ASN_RRC_MeasConfigMN.h create mode 100644 src/asn/rrc/ASN_RRC_MeasConfigSN.c create mode 100644 src/asn/rrc/ASN_RRC_MeasConfigSN.h create mode 100644 src/asn/rrc/ASN_RRC_MeasGapConfig.c create mode 100644 src/asn/rrc/ASN_RRC_MeasGapConfig.h create mode 100644 src/asn/rrc/ASN_RRC_MeasGapSharingConfig.c create mode 100644 src/asn/rrc/ASN_RRC_MeasGapSharingConfig.h create mode 100644 src/asn/rrc/ASN_RRC_MeasGapSharingScheme.c create mode 100644 src/asn/rrc/ASN_RRC_MeasGapSharingScheme.h create mode 100644 src/asn/rrc/ASN_RRC_MeasId.c create mode 100644 src/asn/rrc/ASN_RRC_MeasId.h create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToRemoveList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasIdToRemoveList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectId.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectId.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectNR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectNR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasQuantityResults.c create mode 100644 src/asn/rrc/ASN_RRC_MeasQuantityResults.h create mode 100644 src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasReportQuantity.c create mode 100644 src/asn/rrc/ASN_RRC_MeasReportQuantity.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResult2EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResult2EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResult2NR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResult2NR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultFreqList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultFreqList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultList2NR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultList2NR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultListEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultListEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultListNR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultListNR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultNR.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultNR.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServMO.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServMO.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServMOList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResultServMOList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasResults.c create mode 100644 src/asn/rrc/ASN_RRC_MeasResults.h create mode 100644 src/asn/rrc/ASN_RRC_MeasTiming.c create mode 100644 src/asn/rrc/ASN_RRC_MeasTiming.h create mode 100644 src/asn/rrc/ASN_RRC_MeasTimingList.c create mode 100644 src/asn/rrc/ASN_RRC_MeasTimingList.h create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantity.c create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantity.h create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.c create mode 100644 src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.h create mode 100644 src/asn/rrc/ASN_RRC_MeasurementReport-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_MeasurementReport-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_MeasurementReport.c create mode 100644 src/asn/rrc/ASN_RRC_MeasurementReport.h create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.c create mode 100644 src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.h create mode 100644 src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_MobilityFromNRCommand.c create mode 100644 src/asn/rrc/ASN_RRC_MobilityFromNRCommand.h create mode 100644 src/asn/rrc/ASN_RRC_MobilityStateParameters.c create mode 100644 src/asn/rrc/ASN_RRC_MobilityStateParameters.h create mode 100644 src/asn/rrc/ASN_RRC_ModulationOrder.c create mode 100644 src/asn/rrc/ASN_RRC_ModulationOrder.h create mode 100644 src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.c create mode 100644 src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.h create mode 100644 src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.c create mode 100644 src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.h create mode 100644 src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.c create mode 100644 src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.h create mode 100644 src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.c create mode 100644 src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.h create mode 100644 src/asn/rrc/ASN_RRC_NR-FreqInfo.c create mode 100644 src/asn/rrc/ASN_RRC_NR-FreqInfo.h create mode 100644 src/asn/rrc/ASN_RRC_NR-MultiBandInfo.c create mode 100644 src/asn/rrc/ASN_RRC_NR-MultiBandInfo.h create mode 100644 src/asn/rrc/ASN_RRC_NR-NS-PmaxList.c create mode 100644 src/asn/rrc/ASN_RRC_NR-NS-PmaxList.h create mode 100644 src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.c create mode 100644 src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.h create mode 100644 src/asn/rrc/ASN_RRC_NR-RS-Type.c create mode 100644 src/asn/rrc/ASN_RRC_NR-RS-Type.h create mode 100644 src/asn/rrc/ASN_RRC_NRDC-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_NRDC-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_NextHopChainingCount.c create mode 100644 src/asn/rrc/ASN_RRC_NextHopChainingCount.h create mode 100644 src/asn/rrc/ASN_RRC_NumberOfCarriers.c create mode 100644 src/asn/rrc/ASN_RRC_NumberOfCarriers.h create mode 100644 src/asn/rrc/ASN_RRC_OtherConfig-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_OtherConfig-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_OtherConfig.c create mode 100644 src/asn/rrc/ASN_RRC_OtherConfig.h create mode 100644 src/asn/rrc/ASN_RRC_OverheatingAssistance.c create mode 100644 src/asn/rrc/ASN_RRC_OverheatingAssistance.h create mode 100644 src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.c create mode 100644 src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.h create mode 100644 src/asn/rrc/ASN_RRC_P-Max.c create mode 100644 src/asn/rrc/ASN_RRC_P-Max.h create mode 100644 src/asn/rrc/ASN_RRC_P0-PUCCH-Id.c create mode 100644 src/asn/rrc/ASN_RRC_P0-PUCCH-Id.h create mode 100644 src/asn/rrc/ASN_RRC_P0-PUCCH.c create mode 100644 src/asn/rrc/ASN_RRC_P0-PUCCH.h create mode 100644 src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.c create mode 100644 src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.h create mode 100644 src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.c create mode 100644 src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.h create mode 100644 src/asn/rrc/ASN_RRC_PCCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PCCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PCCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_PCCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_PCCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_PCCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_PCI-List.c create mode 100644 src/asn/rrc/ASN_RRC_PCI-List.h create mode 100644 src/asn/rrc/ASN_RRC_PCI-Range.c create mode 100644 src/asn/rrc/ASN_RRC_PCI-Range.h create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeElement.c create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeElement.h create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeIndex.c create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeIndex.h create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeIndexList.c create mode 100644 src/asn/rrc/ASN_RRC_PCI-RangeIndexList.h create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.c create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.h create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.c create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.h create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PDCP-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PDCP-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PDCP-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_PDCP-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.h create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.c create mode 100644 src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h create mode 100644 src/asn/rrc/ASN_RRC_PDU-SessionID.c create mode 100644 src/asn/rrc/ASN_RRC_PDU-SessionID.h create mode 100644 src/asn/rrc/ASN_RRC_PH-InfoMCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-InfoMCG.h create mode 100644 src/asn/rrc/ASN_RRC_PH-InfoSCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-InfoSCG.h create mode 100644 src/asn/rrc/ASN_RRC_PH-TypeListMCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-TypeListMCG.h create mode 100644 src/asn/rrc/ASN_RRC_PH-TypeListSCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-TypeListSCG.h create mode 100644 src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.h create mode 100644 src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.c create mode 100644 src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.h create mode 100644 src/asn/rrc/ASN_RRC_PHR-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PHR-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.c create mode 100644 src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.h create mode 100644 src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.c create mode 100644 src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.h create mode 100644 src/asn/rrc/ASN_RRC_PRB-Id.c create mode 100644 src/asn/rrc/ASN_RRC_PRB-Id.h create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.c create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.h create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.c create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.h create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PowerControl.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-PowerControl.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format0.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format0.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format1.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format1.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format2.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format2.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format3.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format3.h create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format4.c create mode 100644 src/asn/rrc/ASN_RRC_PUCCH-format4.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PowerControl.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-PowerControl.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.h create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.c create mode 100644 src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h create mode 100644 src/asn/rrc/ASN_RRC_Paging.c create mode 100644 src/asn/rrc/ASN_RRC_Paging.h create mode 100644 src/asn/rrc/ASN_RRC_PagingCycle.c create mode 100644 src/asn/rrc/ASN_RRC_PagingCycle.h create mode 100644 src/asn/rrc/ASN_RRC_PagingRecord.c create mode 100644 src/asn/rrc/ASN_RRC_PagingRecord.h create mode 100644 src/asn/rrc/ASN_RRC_PagingRecordList.c create mode 100644 src/asn/rrc/ASN_RRC_PagingRecordList.h create mode 100644 src/asn/rrc/ASN_RRC_PagingUE-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_PagingUE-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.c create mode 100644 src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.h create mode 100644 src/asn/rrc/ASN_RRC_PeriodicalReportConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PeriodicalReportConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.c create mode 100644 src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersCommon.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersCommon.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFR1.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFR1.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFR2.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFR2.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.c create mode 100644 src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.h create mode 100644 src/asn/rrc/ASN_RRC_PhysCellId.c create mode 100644 src/asn/rrc/ASN_RRC_PhysCellId.h create mode 100644 src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.c create mode 100644 src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.h create mode 100644 src/asn/rrc/ASN_RRC_PollByte.c create mode 100644 src/asn/rrc/ASN_RRC_PollByte.h create mode 100644 src/asn/rrc/ASN_RRC_PollPDU.c create mode 100644 src/asn/rrc/ASN_RRC_PollPDU.h create mode 100644 src/asn/rrc/ASN_RRC_PortIndex2.c create mode 100644 src/asn/rrc/ASN_RRC_PortIndex2.h create mode 100644 src/asn/rrc/ASN_RRC_PortIndex4.c create mode 100644 src/asn/rrc/ASN_RRC_PortIndex4.h create mode 100644 src/asn/rrc/ASN_RRC_PortIndex8.c create mode 100644 src/asn/rrc/ASN_RRC_PortIndex8.h create mode 100644 src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.c create mode 100644 src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.h create mode 100644 src/asn/rrc/ASN_RRC_ProcessingParameters.c create mode 100644 src/asn/rrc/ASN_RRC_ProcessingParameters.h create mode 100644 src/asn/rrc/ASN_RRC_Q-OffsetRange.c create mode 100644 src/asn/rrc/ASN_RRC_Q-OffsetRange.h create mode 100644 src/asn/rrc/ASN_RRC_Q-OffsetRangeList.c create mode 100644 src/asn/rrc/ASN_RRC_Q-OffsetRangeList.h create mode 100644 src/asn/rrc/ASN_RRC_Q-QualMin.c create mode 100644 src/asn/rrc/ASN_RRC_Q-QualMin.h create mode 100644 src/asn/rrc/ASN_RRC_Q-RxLevMin.c create mode 100644 src/asn/rrc/ASN_RRC_Q-RxLevMin.h create mode 100644 src/asn/rrc/ASN_RRC_QCL-Info.c create mode 100644 src/asn/rrc/ASN_RRC_QCL-Info.h create mode 100644 src/asn/rrc/ASN_RRC_QFI.c create mode 100644 src/asn/rrc/ASN_RRC_QFI.h create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfig.c create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfig.h create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfigNR.c create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfigNR.h create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfigRS.c create mode 100644 src/asn/rrc/ASN_RRC_QuantityConfigRS.h create mode 100644 src/asn/rrc/ASN_RRC_RA-Prioritization.c create mode 100644 src/asn/rrc/ASN_RRC_RA-Prioritization.h create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.c create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.h create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.c create mode 100644 src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.h create mode 100644 src/asn/rrc/ASN_RRC_RAN-AreaCode.c create mode 100644 src/asn/rrc/ASN_RRC_RAN-AreaCode.h create mode 100644 src/asn/rrc/ASN_RRC_RAN-AreaConfig.c create mode 100644 src/asn/rrc/ASN_RRC_RAN-AreaConfig.h create mode 100644 src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.c create mode 100644 src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.h create mode 100644 src/asn/rrc/ASN_RRC_RAT-Type.c create mode 100644 src/asn/rrc/ASN_RRC_RAT-Type.h create mode 100644 src/asn/rrc/ASN_RRC_RF-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_RF-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_RF-ParametersMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_RF-ParametersMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_RLC-BearerConfig.c create mode 100644 src/asn/rrc/ASN_RRC_RLC-BearerConfig.h create mode 100644 src/asn/rrc/ASN_RRC_RLC-Config.c create mode 100644 src/asn/rrc/ASN_RRC_RLC-Config.h create mode 100644 src/asn/rrc/ASN_RRC_RLC-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_RLC-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.c create mode 100644 src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.h create mode 100644 src/asn/rrc/ASN_RRC_RNTI-Value.c create mode 100644 src/asn/rrc/ASN_RRC_RNTI-Value.h create mode 100644 src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.c create mode 100644 src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfiguration.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishment.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishment.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReject-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReject-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCReject.c create mode 100644 src/asn/rrc/ASN_RRC_RRCReject.h create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease.c create mode 100644 src/asn/rrc/ASN_RRC_RRCRelease.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResume-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResume-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResume.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResume.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeComplete.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeComplete.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest1.c create mode 100644 src/asn/rrc/ASN_RRC_RRCResumeRequest1.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetup-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetup-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetup.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetup.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupComplete.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupComplete.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupRequest.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSetupRequest.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.c create mode 100644 src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.h create mode 100644 src/asn/rrc/ASN_RRC_RRM-Config.c create mode 100644 src/asn/rrc/ASN_RRC_RRM-Config.h create mode 100644 src/asn/rrc/ASN_RRC_RSRP-Range.c create mode 100644 src/asn/rrc/ASN_RRC_RSRP-Range.h create mode 100644 src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_RSRQ-Range.c create mode 100644 src/asn/rrc/ASN_RRC_RSRQ-Range.h create mode 100644 src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_RadioBearerConfig.c create mode 100644 src/asn/rrc/ASN_RRC_RadioBearerConfig.h create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.c create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.h create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.c create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.h create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.c create mode 100644 src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.h create mode 100644 src/asn/rrc/ASN_RRC_RangeToBestCell.c create mode 100644 src/asn/rrc/ASN_RRC_RangeToBestCell.h create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPattern.c create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPattern.h create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternGroup.c create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternGroup.h create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternId.c create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternId.h create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.c create mode 100644 src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.h create mode 100644 src/asn/rrc/ASN_RRC_ReconfigurationWithSync.c create mode 100644 src/asn/rrc/ASN_RRC_ReconfigurationWithSync.h create mode 100644 src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.c create mode 100644 src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.h create mode 100644 src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.c create mode 100644 src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.h create mode 100644 src/asn/rrc/ASN_RRC_ReestabNCellInfo.c create mode 100644 src/asn/rrc/ASN_RRC_ReestabNCellInfo.h create mode 100644 src/asn/rrc/ASN_RRC_ReestabNCellInfoList.c create mode 100644 src/asn/rrc/ASN_RRC_ReestabNCellInfoList.h create mode 100644 src/asn/rrc/ASN_RRC_ReestabUE-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_ReestabUE-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_ReestablishmentCause.c create mode 100644 src/asn/rrc/ASN_RRC_ReestablishmentCause.h create mode 100644 src/asn/rrc/ASN_RRC_ReestablishmentInfo.c create mode 100644 src/asn/rrc/ASN_RRC_ReestablishmentInfo.h create mode 100644 src/asn/rrc/ASN_RRC_ReferenceSignalConfig.c create mode 100644 src/asn/rrc/ASN_RRC_ReferenceSignalConfig.h create mode 100644 src/asn/rrc/ASN_RRC_RegisteredAMF.c create mode 100644 src/asn/rrc/ASN_RRC_RegisteredAMF.h create mode 100644 src/asn/rrc/ASN_RRC_RejectWaitTime.c create mode 100644 src/asn/rrc/ASN_RRC_RejectWaitTime.h create mode 100644 src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_ReportCGI.c create mode 100644 src/asn/rrc/ASN_RRC_ReportCGI.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigId.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigId.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigInterRAT.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigInterRAT.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigNR.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigNR.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.c create mode 100644 src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.h create mode 100644 src/asn/rrc/ASN_RRC_ReportInterval.c create mode 100644 src/asn/rrc/ASN_RRC_ReportInterval.h create mode 100644 src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_ReportSFTD-NR.c create mode 100644 src/asn/rrc/ASN_RRC_ReportSFTD-NR.h create mode 100644 src/asn/rrc/ASN_RRC_ReselectionThreshold.c create mode 100644 src/asn/rrc/ASN_RRC_ReselectionThreshold.h create mode 100644 src/asn/rrc/ASN_RRC_ReselectionThresholdQ.c create mode 100644 src/asn/rrc/ASN_RRC_ReselectionThresholdQ.h create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.c create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.h create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.c create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.h create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.c create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.h create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.c create mode 100644 src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.h create mode 100644 src/asn/rrc/ASN_RRC_ResumeCause.c create mode 100644 src/asn/rrc/ASN_RRC_ResumeCause.h create mode 100644 src/asn/rrc/ASN_RRC_S-NSSAI.c create mode 100644 src/asn/rrc/ASN_RRC_S-NSSAI.h create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformation.c create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformation.h create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.c create mode 100644 src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.h create mode 100644 src/asn/rrc/ASN_RRC_SCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SCellIndex.c create mode 100644 src/asn/rrc/ASN_RRC_SCellIndex.h create mode 100644 src/asn/rrc/ASN_RRC_SDAP-Config.c create mode 100644 src/asn/rrc/ASN_RRC_SDAP-Config.h create mode 100644 src/asn/rrc/ASN_RRC_SDAP-Parameters.c create mode 100644 src/asn/rrc/ASN_RRC_SDAP-Parameters.h create mode 100644 src/asn/rrc/ASN_RRC_SI-RequestConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SI-RequestConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SI-RequestResources.c create mode 100644 src/asn/rrc/ASN_RRC_SI-RequestResources.h create mode 100644 src/asn/rrc/ASN_RRC_SI-SchedulingInfo.c create mode 100644 src/asn/rrc/ASN_RRC_SI-SchedulingInfo.h create mode 100644 src/asn/rrc/ASN_RRC_SIB-Mapping.c create mode 100644 src/asn/rrc/ASN_RRC_SIB-Mapping.h create mode 100644 src/asn/rrc/ASN_RRC_SIB-TypeInfo.c create mode 100644 src/asn/rrc/ASN_RRC_SIB-TypeInfo.h create mode 100644 src/asn/rrc/ASN_RRC_SIB1.c create mode 100644 src/asn/rrc/ASN_RRC_SIB1.h create mode 100644 src/asn/rrc/ASN_RRC_SIB2.c create mode 100644 src/asn/rrc/ASN_RRC_SIB2.h create mode 100644 src/asn/rrc/ASN_RRC_SIB3.c create mode 100644 src/asn/rrc/ASN_RRC_SIB3.h create mode 100644 src/asn/rrc/ASN_RRC_SIB4.c create mode 100644 src/asn/rrc/ASN_RRC_SIB4.h create mode 100644 src/asn/rrc/ASN_RRC_SIB5.c create mode 100644 src/asn/rrc/ASN_RRC_SIB5.h create mode 100644 src/asn/rrc/ASN_RRC_SIB6.c create mode 100644 src/asn/rrc/ASN_RRC_SIB6.h create mode 100644 src/asn/rrc/ASN_RRC_SIB7.c create mode 100644 src/asn/rrc/ASN_RRC_SIB7.h create mode 100644 src/asn/rrc/ASN_RRC_SIB8.c create mode 100644 src/asn/rrc/ASN_RRC_SIB8.h create mode 100644 src/asn/rrc/ASN_RRC_SIB9.c create mode 100644 src/asn/rrc/ASN_RRC_SIB9.h create mode 100644 src/asn/rrc/ASN_RRC_SINR-Range.c create mode 100644 src/asn/rrc/ASN_RRC_SINR-Range.h create mode 100644 src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_SK-Counter.c create mode 100644 src/asn/rrc/ASN_RRC_SK-Counter.h create mode 100644 src/asn/rrc/ASN_RRC_SN-FieldLengthAM.c create mode 100644 src/asn/rrc/ASN_RRC_SN-FieldLengthAM.h create mode 100644 src/asn/rrc/ASN_RRC_SN-FieldLengthUM.c create mode 100644 src/asn/rrc/ASN_RRC_SN-FieldLengthUM.h create mode 100644 src/asn/rrc/ASN_RRC_SPS-Config.c create mode 100644 src/asn/rrc/ASN_RRC_SPS-Config.h create mode 100644 src/asn/rrc/ASN_RRC_SRB-Identity.c create mode 100644 src/asn/rrc/ASN_RRC_SRB-Identity.h create mode 100644 src/asn/rrc/ASN_RRC_SRB-ToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_SRB-ToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_SRB-ToAddModList.c create mode 100644 src/asn/rrc/ASN_RRC_SRB-ToAddModList.h create mode 100644 src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.c create mode 100644 src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.h create mode 100644 src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.c create mode 100644 src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-Config.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-Config.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-Resources.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-Resources.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.c create mode 100644 src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.h create mode 100644 src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.c create mode 100644 src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.h create mode 100644 src/asn/rrc/ASN_RRC_SSB-ConfigMobility.c create mode 100644 src/asn/rrc/ASN_RRC_SSB-ConfigMobility.h create mode 100644 src/asn/rrc/ASN_RRC_SSB-Index.c create mode 100644 src/asn/rrc/ASN_RRC_SSB-Index.h create mode 100644 src/asn/rrc/ASN_RRC_SSB-MTC.c create mode 100644 src/asn/rrc/ASN_RRC_SSB-MTC.h create mode 100644 src/asn/rrc/ASN_RRC_SSB-MTC2.c create mode 100644 src/asn/rrc/ASN_RRC_SSB-MTC2.h create mode 100644 src/asn/rrc/ASN_RRC_SSB-ToMeasure.c create mode 100644 src/asn/rrc/ASN_RRC_SSB-ToMeasure.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingInfo.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingInfo.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestId.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestId.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.c create mode 100644 src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.h create mode 100644 src/asn/rrc/ASN_RRC_ScramblingId.c create mode 100644 src/asn/rrc/ASN_RRC_ScramblingId.h create mode 100644 src/asn/rrc/ASN_RRC_SearchSpace.c create mode 100644 src/asn/rrc/ASN_RRC_SearchSpace.h create mode 100644 src/asn/rrc/ASN_RRC_SearchSpaceId.c create mode 100644 src/asn/rrc/ASN_RRC_SearchSpaceId.h create mode 100644 src/asn/rrc/ASN_RRC_SearchSpaceZero.c create mode 100644 src/asn/rrc/ASN_RRC_SearchSpaceZero.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityConfigSMC.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityConfigSMC.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeCommand.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeCommand.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeComplete.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeComplete.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeFailure.c create mode 100644 src/asn/rrc/ASN_RRC_SecurityModeFailure.h create mode 100644 src/asn/rrc/ASN_RRC_ServCellIndex.c create mode 100644 src/asn/rrc/ASN_RRC_ServCellIndex.h create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.c create mode 100644 src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.h create mode 100644 src/asn/rrc/ASN_RRC_SetupRelease.c create mode 100644 src/asn/rrc/ASN_RRC_SetupRelease.h create mode 100644 src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.c create mode 100644 src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.h create mode 100644 src/asn/rrc/ASN_RRC_ShortMAC-I.c create mode 100644 src/asn/rrc/ASN_RRC_ShortMAC-I.h create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombination.c create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombination.h create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombinationId.c create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombinationId.h create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.c create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.h create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatIndicator.c create mode 100644 src/asn/rrc/ASN_RRC_SlotFormatIndicator.h create mode 100644 src/asn/rrc/ASN_RRC_SpCellConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SpCellConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SpatialRelations.c create mode 100644 src/asn/rrc/ASN_RRC_SpatialRelations.h create mode 100644 src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.c create mode 100644 src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.h create mode 100644 src/asn/rrc/ASN_RRC_SubcarrierSpacing.c create mode 100644 src/asn/rrc/ASN_RRC_SubcarrierSpacing.h create mode 100644 src/asn/rrc/ASN_RRC_SupportedBandwidth.c create mode 100644 src/asn/rrc/ASN_RRC_SupportedBandwidth.h create mode 100644 src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_SuspendConfig.c create mode 100644 src/asn/rrc/ASN_RRC_SuspendConfig.h create mode 100644 src/asn/rrc/ASN_RRC_SystemInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_SystemInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_SystemInformation.c create mode 100644 src/asn/rrc/ASN_RRC_SystemInformation.h create mode 100644 src/asn/rrc/ASN_RRC_T-PollRetransmit.c create mode 100644 src/asn/rrc/ASN_RRC_T-PollRetransmit.h create mode 100644 src/asn/rrc/ASN_RRC_T-Reassembly.c create mode 100644 src/asn/rrc/ASN_RRC_T-Reassembly.h create mode 100644 src/asn/rrc/ASN_RRC_T-Reselection.c create mode 100644 src/asn/rrc/ASN_RRC_T-Reselection.h create mode 100644 src/asn/rrc/ASN_RRC_T-StatusProhibit.c create mode 100644 src/asn/rrc/ASN_RRC_T-StatusProhibit.h create mode 100644 src/asn/rrc/ASN_RRC_TAG-Config.c create mode 100644 src/asn/rrc/ASN_RRC_TAG-Config.h create mode 100644 src/asn/rrc/ASN_RRC_TAG-Id.c create mode 100644 src/asn/rrc/ASN_RRC_TAG-Id.h create mode 100644 src/asn/rrc/ASN_RRC_TAG.c create mode 100644 src/asn/rrc/ASN_RRC_TAG.h create mode 100644 src/asn/rrc/ASN_RRC_TCI-State.c create mode 100644 src/asn/rrc/ASN_RRC_TCI-State.h create mode 100644 src/asn/rrc/ASN_RRC_TCI-StateId.c create mode 100644 src/asn/rrc/ASN_RRC_TCI-StateId.h create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.c create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.h create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.c create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.h create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.c create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.h create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.c create mode 100644 src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.h create mode 100644 src/asn/rrc/ASN_RRC_ThresholdNR.c create mode 100644 src/asn/rrc/ASN_RRC_ThresholdNR.h create mode 100644 src/asn/rrc/ASN_RRC_TimeAlignmentTimer.c create mode 100644 src/asn/rrc/ASN_RRC_TimeAlignmentTimer.h create mode 100644 src/asn/rrc/ASN_RRC_TimeToTrigger.c create mode 100644 src/asn/rrc/ASN_RRC_TimeToTrigger.h create mode 100644 src/asn/rrc/ASN_RRC_TrackingAreaCode.c create mode 100644 src/asn/rrc/ASN_RRC_TrackingAreaCode.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerCat.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerCat.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.h create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.c create mode 100644 src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.h create mode 100644 src/asn/rrc/ASN_RRC_UCI-OnPUSCH.c create mode 100644 src/asn/rrc/ASN_RRC_UCI-OnPUSCH.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.c create mode 100644 src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.h create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-Capability.c create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-Capability.h create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.c create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.c create mode 100644 src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-Capability.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.c create mode 100644 src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h create mode 100644 src/asn/rrc/ASN_RRC_UE-TimersAndConstants.c create mode 100644 src/asn/rrc/ASN_RRC_UE-TimersAndConstants.h create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation.c create mode 100644 src/asn/rrc/ASN_RRC_UEAssistanceInformation.h create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry.c create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityEnquiry.h create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityInformation.c create mode 100644 src/asn/rrc/ASN_RRC_UECapabilityInformation.h create mode 100644 src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.c create mode 100644 src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.h create mode 100644 src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_UERadioPagingInformation.c create mode 100644 src/asn/rrc/ASN_RRC_UERadioPagingInformation.h create mode 100644 src/asn/rrc/ASN_RRC_UL-AM-RLC.c create mode 100644 src/asn/rrc/ASN_RRC_UL-AM-RLC.h create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH1-Message.c create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH1-Message.h create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_UL-DCCH-Message.c create mode 100644 src/asn/rrc/ASN_RRC_UL-DCCH-Message.h create mode 100644 src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.c create mode 100644 src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.h create mode 100644 src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.c create mode 100644 src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.h create mode 100644 src/asn/rrc/ASN_RRC_UL-UM-RLC.c create mode 100644 src/asn/rrc/ASN_RRC_UL-UM-RLC.h create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransfer.c create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransfer.h create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.c create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.h create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.c create mode 100644 src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfig.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfig.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfigCommon.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfigCommon.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.h create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.c create mode 100644 src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.h create mode 100644 src/asn/rrc/ASN_RRC_VarMeasConfig.c create mode 100644 src/asn/rrc/ASN_RRC_VarMeasConfig.h create mode 100644 src/asn/rrc/ASN_RRC_VarMeasReport.c create mode 100644 src/asn/rrc/ASN_RRC_VarMeasReport.h create mode 100644 src/asn/rrc/ASN_RRC_VarMeasReportList.c create mode 100644 src/asn/rrc/ASN_RRC_VarMeasReportList.h create mode 100644 src/asn/rrc/ASN_RRC_VarPendingRNA-Update.c create mode 100644 src/asn/rrc/ASN_RRC_VarPendingRNA-Update.h create mode 100644 src/asn/rrc/ASN_RRC_VarResumeMAC-Input.c create mode 100644 src/asn/rrc/ASN_RRC_VarResumeMAC-Input.h create mode 100644 src/asn/rrc/ASN_RRC_VarShortMAC-Input.c create mode 100644 src/asn/rrc/ASN_RRC_VarShortMAC-Input.h create mode 100644 src/asn/rrc/ASN_RRC_VictimSystemType.c create mode 100644 src/asn/rrc/ASN_RRC_VictimSystemType.h create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.c create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.h create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.c create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.h create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.c create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.h create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.c create mode 100644 src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.h create mode 100644 src/asn/rrc/ASN_RRC_asn_constant.h create mode 100644 src/asn/rrc/CMakeLists.txt create mode 100644 src/binder.cpp create mode 100644 src/cli.cpp create mode 100644 src/ext/CMakeLists.txt create mode 100644 src/ext/compact25519/c25519/README.md create mode 100644 src/ext/compact25519/c25519/c25519.c create mode 100644 src/ext/compact25519/c25519/c25519.h create mode 100644 src/ext/compact25519/c25519/ed25519.c create mode 100644 src/ext/compact25519/c25519/ed25519.h create mode 100644 src/ext/compact25519/c25519/edsign.c create mode 100644 src/ext/compact25519/c25519/edsign.h create mode 100644 src/ext/compact25519/c25519/f25519.c create mode 100644 src/ext/compact25519/c25519/f25519.h create mode 100644 src/ext/compact25519/c25519/fprime.c create mode 100644 src/ext/compact25519/c25519/fprime.h create mode 100644 src/ext/compact25519/c25519/sha512.c create mode 100644 src/ext/compact25519/c25519/sha512.h create mode 100644 src/ext/compact25519/compact_wipe.c create mode 100644 src/ext/compact25519/compact_wipe.h create mode 100644 src/ext/compact25519/compact_x25519.c create mode 100644 src/ext/compact25519/compact_x25519.h create mode 100644 src/ext/compact25519/compact_x25519.hpp create mode 100644 src/ext/crypt-ext/aes.c create mode 100644 src/ext/crypt-ext/aes.h create mode 100644 src/ext/crypt-ext/aes.hpp create mode 100644 src/ext/crypt-ext/apicheck.h create mode 100644 src/ext/crypt-ext/cmac.c create mode 100644 src/ext/crypt-ext/cmac.hpp create mode 100644 src/ext/crypt-ext/hmac-sha256.c create mode 100644 src/ext/crypt-ext/hmac-sha256.h create mode 100644 src/ext/crypt-ext/milenage.c create mode 100644 src/ext/crypt-ext/milenage.h create mode 100644 src/ext/crypt-ext/milenage.hpp create mode 100644 src/ext/crypt-ext/rotate-bits.h create mode 100644 src/ext/crypt-ext/sha256.c create mode 100644 src/ext/crypt-ext/sha256.h create mode 100644 src/ext/crypt-ext/x963kdf.c create mode 100644 src/ext/crypt-ext/x963kdf.h create mode 100644 src/ext/spdlog/async.h create mode 100644 src/ext/spdlog/async_logger-inl.h create mode 100644 src/ext/spdlog/async_logger.h create mode 100644 src/ext/spdlog/cfg/argv.h create mode 100644 src/ext/spdlog/cfg/env.h create mode 100644 src/ext/spdlog/cfg/helpers-inl.h create mode 100644 src/ext/spdlog/cfg/helpers.h create mode 100644 src/ext/spdlog/common-inl.h create mode 100644 src/ext/spdlog/common.h create mode 100644 src/ext/spdlog/details/backtracer-inl.h create mode 100644 src/ext/spdlog/details/backtracer.h create mode 100644 src/ext/spdlog/details/circular_q.h create mode 100644 src/ext/spdlog/details/console_globals.h create mode 100644 src/ext/spdlog/details/file_helper-inl.h create mode 100644 src/ext/spdlog/details/file_helper.h create mode 100644 src/ext/spdlog/details/fmt_helper.h create mode 100644 src/ext/spdlog/details/log_msg-inl.h create mode 100644 src/ext/spdlog/details/log_msg.h create mode 100644 src/ext/spdlog/details/log_msg_buffer-inl.h create mode 100644 src/ext/spdlog/details/log_msg_buffer.h create mode 100644 src/ext/spdlog/details/mpmc_blocking_q.h create mode 100644 src/ext/spdlog/details/null_mutex.h create mode 100644 src/ext/spdlog/details/os-inl.h create mode 100644 src/ext/spdlog/details/os.h create mode 100644 src/ext/spdlog/details/periodic_worker-inl.h create mode 100644 src/ext/spdlog/details/periodic_worker.h create mode 100644 src/ext/spdlog/details/registry-inl.h create mode 100644 src/ext/spdlog/details/registry.h create mode 100644 src/ext/spdlog/details/synchronous_factory.h create mode 100644 src/ext/spdlog/details/tcp_client-windows.h create mode 100644 src/ext/spdlog/details/tcp_client.h create mode 100644 src/ext/spdlog/details/thread_pool-inl.h create mode 100644 src/ext/spdlog/details/thread_pool.h create mode 100644 src/ext/spdlog/details/windows_include.h create mode 100644 src/ext/spdlog/fmt/bin_to_hex.h create mode 100644 src/ext/spdlog/fmt/bundled/LICENSE.rst create mode 100644 src/ext/spdlog/fmt/bundled/chrono.h create mode 100644 src/ext/spdlog/fmt/bundled/color.h create mode 100644 src/ext/spdlog/fmt/bundled/compile.h create mode 100644 src/ext/spdlog/fmt/bundled/core.h create mode 100644 src/ext/spdlog/fmt/bundled/format-inl.h create mode 100644 src/ext/spdlog/fmt/bundled/format.h create mode 100644 src/ext/spdlog/fmt/bundled/locale.h create mode 100644 src/ext/spdlog/fmt/bundled/os.h create mode 100644 src/ext/spdlog/fmt/bundled/ostream.h create mode 100644 src/ext/spdlog/fmt/bundled/posix.h create mode 100644 src/ext/spdlog/fmt/bundled/printf.h create mode 100644 src/ext/spdlog/fmt/bundled/ranges.h create mode 100644 src/ext/spdlog/fmt/chrono.h create mode 100644 src/ext/spdlog/fmt/fmt.h create mode 100644 src/ext/spdlog/fmt/ostr.h create mode 100644 src/ext/spdlog/formatter.h create mode 100644 src/ext/spdlog/fwd.h create mode 100644 src/ext/spdlog/logger-inl.h create mode 100644 src/ext/spdlog/logger.h create mode 100644 src/ext/spdlog/pattern_formatter-inl.h create mode 100644 src/ext/spdlog/pattern_formatter.h create mode 100644 src/ext/spdlog/sinks/ansicolor_sink-inl.h create mode 100644 src/ext/spdlog/sinks/ansicolor_sink.h create mode 100644 src/ext/spdlog/sinks/base_sink-inl.h create mode 100644 src/ext/spdlog/sinks/base_sink.h create mode 100644 src/ext/spdlog/sinks/basic_file_sink-inl.h create mode 100644 src/ext/spdlog/sinks/basic_file_sink.h create mode 100644 src/ext/spdlog/sinks/daily_file_sink.h create mode 100644 src/ext/spdlog/sinks/dist_sink.h create mode 100644 src/ext/spdlog/sinks/dup_filter_sink.h create mode 100644 src/ext/spdlog/sinks/msvc_sink.h create mode 100644 src/ext/spdlog/sinks/null_sink.h create mode 100644 src/ext/spdlog/sinks/ostream_sink.h create mode 100644 src/ext/spdlog/sinks/ringbuffer_sink.h create mode 100644 src/ext/spdlog/sinks/rotating_file_sink-inl.h create mode 100644 src/ext/spdlog/sinks/rotating_file_sink.h create mode 100644 src/ext/spdlog/sinks/sink-inl.h create mode 100644 src/ext/spdlog/sinks/sink.h create mode 100644 src/ext/spdlog/sinks/stdout_color_sinks-inl.h create mode 100644 src/ext/spdlog/sinks/stdout_color_sinks.h create mode 100644 src/ext/spdlog/sinks/stdout_sinks-inl.h create mode 100644 src/ext/spdlog/sinks/stdout_sinks.h create mode 100644 src/ext/spdlog/sinks/syslog_sink.h create mode 100644 src/ext/spdlog/sinks/systemd_sink.h create mode 100644 src/ext/spdlog/sinks/tcp_sink.h create mode 100644 src/ext/spdlog/sinks/win_eventlog_sink.h create mode 100644 src/ext/spdlog/sinks/wincolor_sink-inl.h create mode 100644 src/ext/spdlog/sinks/wincolor_sink.h create mode 100644 src/ext/spdlog/spdlog-inl.h create mode 100644 src/ext/spdlog/spdlog.h create mode 100644 src/ext/spdlog/stopwatch.h create mode 100644 src/ext/spdlog/tweakme.h create mode 100644 src/ext/spdlog/version.h create mode 100644 src/ext/yaml-cpp/anchor.h create mode 100644 src/ext/yaml-cpp/binary.cpp create mode 100644 src/ext/yaml-cpp/binary.h create mode 100644 src/ext/yaml-cpp/collectionstack.h create mode 100644 src/ext/yaml-cpp/contrib/anchordict.h create mode 100644 src/ext/yaml-cpp/contrib/graphbuilder.cpp create mode 100644 src/ext/yaml-cpp/contrib/graphbuilder.h create mode 100644 src/ext/yaml-cpp/contrib/graphbuilderadapter.cpp create mode 100644 src/ext/yaml-cpp/contrib/graphbuilderadapter.h create mode 100644 src/ext/yaml-cpp/contrib/yaml-cpp.natvis create mode 100644 src/ext/yaml-cpp/contrib/yaml-cpp.natvis.md create mode 100644 src/ext/yaml-cpp/convert.cpp create mode 100644 src/ext/yaml-cpp/depthguard.cpp create mode 100644 src/ext/yaml-cpp/depthguard.h create mode 100644 src/ext/yaml-cpp/directives.cpp create mode 100644 src/ext/yaml-cpp/directives.h create mode 100644 src/ext/yaml-cpp/dll.h create mode 100644 src/ext/yaml-cpp/emit.cpp create mode 100644 src/ext/yaml-cpp/emitfromevents.cpp create mode 100644 src/ext/yaml-cpp/emitfromevents.h create mode 100644 src/ext/yaml-cpp/emitter.cpp create mode 100644 src/ext/yaml-cpp/emitter.h create mode 100644 src/ext/yaml-cpp/emitterdef.h create mode 100644 src/ext/yaml-cpp/emittermanip.h create mode 100644 src/ext/yaml-cpp/emitterstate.cpp create mode 100644 src/ext/yaml-cpp/emitterstate.h create mode 100644 src/ext/yaml-cpp/emitterstyle.h create mode 100644 src/ext/yaml-cpp/emitterutils.cpp create mode 100644 src/ext/yaml-cpp/emitterutils.h create mode 100644 src/ext/yaml-cpp/eventhandler.h create mode 100644 src/ext/yaml-cpp/exceptions.cpp create mode 100644 src/ext/yaml-cpp/exceptions.h create mode 100644 src/ext/yaml-cpp/exp.cpp create mode 100644 src/ext/yaml-cpp/exp.h create mode 100644 src/ext/yaml-cpp/indentation.h create mode 100644 src/ext/yaml-cpp/mark.h create mode 100644 src/ext/yaml-cpp/memory.cpp create mode 100644 src/ext/yaml-cpp/node.cpp create mode 100644 src/ext/yaml-cpp/node/convert.h create mode 100644 src/ext/yaml-cpp/node/detail/impl.h create mode 100644 src/ext/yaml-cpp/node/detail/iterator.h create mode 100644 src/ext/yaml-cpp/node/detail/iterator_fwd.h create mode 100644 src/ext/yaml-cpp/node/detail/memory.h create mode 100644 src/ext/yaml-cpp/node/detail/node.h create mode 100644 src/ext/yaml-cpp/node/detail/node_data.h create mode 100644 src/ext/yaml-cpp/node/detail/node_iterator.h create mode 100644 src/ext/yaml-cpp/node/detail/node_ref.h create mode 100644 src/ext/yaml-cpp/node/emit.h create mode 100644 src/ext/yaml-cpp/node/impl.h create mode 100644 src/ext/yaml-cpp/node/iterator.h create mode 100644 src/ext/yaml-cpp/node/node.h create mode 100644 src/ext/yaml-cpp/node/parse.h create mode 100644 src/ext/yaml-cpp/node/ptr.h create mode 100644 src/ext/yaml-cpp/node/type.h create mode 100644 src/ext/yaml-cpp/node_data.cpp create mode 100644 src/ext/yaml-cpp/nodebuilder.cpp create mode 100644 src/ext/yaml-cpp/nodebuilder.h create mode 100644 src/ext/yaml-cpp/nodeevents.cpp create mode 100644 src/ext/yaml-cpp/nodeevents.h create mode 100644 src/ext/yaml-cpp/noexcept.h create mode 100644 src/ext/yaml-cpp/null.cpp create mode 100644 src/ext/yaml-cpp/null.h create mode 100644 src/ext/yaml-cpp/ostream_wrapper.cpp create mode 100644 src/ext/yaml-cpp/ostream_wrapper.h create mode 100644 src/ext/yaml-cpp/parse.cpp create mode 100644 src/ext/yaml-cpp/parser.cpp create mode 100644 src/ext/yaml-cpp/parser.h create mode 100644 src/ext/yaml-cpp/ptr_vector.h create mode 100644 src/ext/yaml-cpp/regex_yaml.cpp create mode 100644 src/ext/yaml-cpp/regex_yaml.h create mode 100644 src/ext/yaml-cpp/regeximpl.h create mode 100644 src/ext/yaml-cpp/scanner.cpp create mode 100644 src/ext/yaml-cpp/scanner.h create mode 100644 src/ext/yaml-cpp/scanscalar.cpp create mode 100644 src/ext/yaml-cpp/scanscalar.h create mode 100644 src/ext/yaml-cpp/scantag.cpp create mode 100644 src/ext/yaml-cpp/scantag.h create mode 100644 src/ext/yaml-cpp/scantoken.cpp create mode 100644 src/ext/yaml-cpp/setting.h create mode 100644 src/ext/yaml-cpp/simplekey.cpp create mode 100644 src/ext/yaml-cpp/singledocparser.cpp create mode 100644 src/ext/yaml-cpp/singledocparser.h create mode 100644 src/ext/yaml-cpp/stlemitter.h create mode 100644 src/ext/yaml-cpp/stream.cpp create mode 100644 src/ext/yaml-cpp/stream.h create mode 100644 src/ext/yaml-cpp/streamcharsource.h create mode 100644 src/ext/yaml-cpp/stringsource.h create mode 100644 src/ext/yaml-cpp/tag.cpp create mode 100644 src/ext/yaml-cpp/tag.h create mode 100644 src/ext/yaml-cpp/token.h create mode 100644 src/ext/yaml-cpp/traits.h create mode 100644 src/ext/yaml-cpp/yaml.h create mode 100644 src/gnb.cpp create mode 100644 src/gnb/CMakeLists.txt create mode 100644 src/gnb/app/cmd_handler.cpp create mode 100644 src/gnb/app/cmd_handler.hpp create mode 100644 src/gnb/app/task.cpp create mode 100644 src/gnb/app/task.hpp create mode 100644 src/gnb/gnb.cpp create mode 100644 src/gnb/gnb.hpp create mode 100644 src/gnb/gtp/proto.cpp create mode 100644 src/gnb/gtp/proto.hpp create mode 100644 src/gnb/gtp/task.cpp create mode 100644 src/gnb/gtp/task.hpp create mode 100644 src/gnb/gtp/utils.cpp create mode 100644 src/gnb/gtp/utils.hpp create mode 100644 src/gnb/ngap/context.cpp create mode 100644 src/gnb/ngap/encode.cpp create mode 100644 src/gnb/ngap/encode.hpp create mode 100644 src/gnb/ngap/interface.cpp create mode 100644 src/gnb/ngap/management.cpp create mode 100644 src/gnb/ngap/nas.cpp create mode 100644 src/gnb/ngap/nnsf.cpp create mode 100644 src/gnb/ngap/radio.cpp create mode 100644 src/gnb/ngap/session.cpp create mode 100644 src/gnb/ngap/task.cpp create mode 100644 src/gnb/ngap/task.hpp create mode 100644 src/gnb/ngap/transport.cpp create mode 100644 src/gnb/ngap/utils.cpp create mode 100644 src/gnb/ngap/utils.hpp create mode 100644 src/gnb/nts.cpp create mode 100644 src/gnb/nts.hpp create mode 100644 src/gnb/rls/ctl_task.cpp create mode 100644 src/gnb/rls/ctl_task.hpp create mode 100644 src/gnb/rls/task.cpp create mode 100644 src/gnb/rls/task.hpp create mode 100644 src/gnb/rls/udp_task.cpp create mode 100644 src/gnb/rls/udp_task.hpp create mode 100644 src/gnb/rrc/broadcast.cpp create mode 100644 src/gnb/rrc/channel.cpp create mode 100644 src/gnb/rrc/connection.cpp create mode 100644 src/gnb/rrc/handler.cpp create mode 100644 src/gnb/rrc/management.cpp create mode 100644 src/gnb/rrc/sap.cpp create mode 100644 src/gnb/rrc/task.cpp create mode 100644 src/gnb/rrc/task.hpp create mode 100644 src/gnb/rrc/ues.cpp create mode 100644 src/gnb/sctp/task.cpp create mode 100644 src/gnb/sctp/task.hpp create mode 100644 src/gnb/types.cpp create mode 100644 src/gnb/types.hpp create mode 100644 src/lib/CMakeLists.txt create mode 100644 src/lib/app/CMakeLists.txt create mode 100644 src/lib/app/base_app.cpp create mode 100644 src/lib/app/base_app.hpp create mode 100644 src/lib/app/cli_base.cpp create mode 100644 src/lib/app/cli_base.hpp create mode 100644 src/lib/app/cli_cmd.cpp create mode 100644 src/lib/app/cli_cmd.hpp create mode 100644 src/lib/app/monitor.cpp create mode 100644 src/lib/app/monitor.hpp create mode 100644 src/lib/app/proc_table.cpp create mode 100644 src/lib/app/proc_table.hpp create mode 100644 src/lib/app/ue_ctl.cpp create mode 100644 src/lib/app/ue_ctl.hpp create mode 100644 src/lib/asn/ngap.cpp create mode 100644 src/lib/asn/ngap.hpp create mode 100644 src/lib/asn/ngap_msg.hpp create mode 100644 src/lib/asn/rrc.cpp create mode 100644 src/lib/asn/rrc.hpp create mode 100644 src/lib/asn/utils.cpp create mode 100644 src/lib/asn/utils.hpp create mode 100644 src/lib/crypt/crypt.cpp create mode 100644 src/lib/crypt/crypt.hpp create mode 100644 src/lib/crypt/eea2.cpp create mode 100644 src/lib/crypt/eea2.hpp create mode 100644 src/lib/crypt/eea3.cpp create mode 100644 src/lib/crypt/eea3.hpp create mode 100644 src/lib/crypt/eia2.cpp create mode 100644 src/lib/crypt/eia2.hpp create mode 100644 src/lib/crypt/mac.cpp create mode 100644 src/lib/crypt/mac.hpp create mode 100644 src/lib/crypt/milenage.cpp create mode 100644 src/lib/crypt/milenage.hpp create mode 100644 src/lib/crypt/snow3g.cpp create mode 100644 src/lib/crypt/snow3g.hpp create mode 100644 src/lib/crypt/uea2.cpp create mode 100644 src/lib/crypt/uea2.hpp create mode 100644 src/lib/crypt/zuc.cpp create mode 100644 src/lib/crypt/zuc.hpp create mode 100644 src/lib/nas/base.cpp create mode 100644 src/lib/nas/base.hpp create mode 100644 src/lib/nas/eap.cpp create mode 100644 src/lib/nas/eap.hpp create mode 100644 src/lib/nas/encode.cpp create mode 100644 src/lib/nas/encode.hpp create mode 100644 src/lib/nas/enums.cpp create mode 100644 src/lib/nas/enums.hpp create mode 100644 src/lib/nas/ie1.cpp create mode 100644 src/lib/nas/ie1.hpp create mode 100644 src/lib/nas/ie2.cpp create mode 100644 src/lib/nas/ie2.hpp create mode 100644 src/lib/nas/ie3.cpp create mode 100644 src/lib/nas/ie3.hpp create mode 100644 src/lib/nas/ie4.cpp create mode 100644 src/lib/nas/ie4.hpp create mode 100644 src/lib/nas/ie6.cpp create mode 100644 src/lib/nas/ie6.hpp create mode 100644 src/lib/nas/msg.cpp create mode 100644 src/lib/nas/msg.hpp create mode 100644 src/lib/nas/nas.cpp create mode 100644 src/lib/nas/nas.hpp create mode 100644 src/lib/nas/proto_conf.cpp create mode 100644 src/lib/nas/proto_conf.hpp create mode 100644 src/lib/nas/storage.cpp create mode 100644 src/lib/nas/storage.hpp create mode 100644 src/lib/nas/utils.cpp create mode 100644 src/lib/nas/utils.hpp create mode 100644 src/lib/nas/values.cpp create mode 100644 src/lib/nas/values.hpp create mode 100644 src/lib/rlc/encoder.cpp create mode 100644 src/lib/rlc/encoder.hpp create mode 100644 src/lib/rlc/entity_am.cpp create mode 100644 src/lib/rlc/entity_am.hpp create mode 100644 src/lib/rlc/entity_tm.cpp create mode 100644 src/lib/rlc/entity_tm.hpp create mode 100644 src/lib/rlc/entity_um.cpp create mode 100644 src/lib/rlc/entity_um.hpp create mode 100644 src/lib/rlc/func.cpp create mode 100644 src/lib/rlc/func.hpp create mode 100644 src/lib/rlc/rlc.cpp create mode 100644 src/lib/rlc/rlc.hpp create mode 100644 src/lib/rlc/test.cpp create mode 100644 src/lib/rlc/test.hpp create mode 100644 src/lib/rlc/utils.cpp create mode 100644 src/lib/rlc/utils.hpp create mode 100644 src/lib/rls/rls_base.cpp create mode 100644 src/lib/rls/rls_base.hpp create mode 100644 src/lib/rls/rls_pdu.cpp create mode 100644 src/lib/rls/rls_pdu.hpp create mode 100644 src/lib/rrc/encode.cpp create mode 100644 src/lib/rrc/encode.hpp create mode 100644 src/lib/rrc/rrc.cpp create mode 100644 src/lib/rrc/rrc.hpp create mode 100644 src/lib/sctp/client.cpp create mode 100644 src/lib/sctp/client.hpp create mode 100644 src/lib/sctp/internal.cpp create mode 100644 src/lib/sctp/internal.hpp create mode 100644 src/lib/sctp/sctp.cpp create mode 100644 src/lib/sctp/sctp.hpp create mode 100644 src/lib/sctp/server.cpp create mode 100644 src/lib/sctp/server.hpp create mode 100644 src/lib/sctp/types.cpp create mode 100644 src/lib/sctp/types.hpp create mode 100644 src/lib/udp/server.cpp create mode 100644 src/lib/udp/server.hpp create mode 100644 src/lib/udp/server_task.cpp create mode 100644 src/lib/udp/server_task.hpp create mode 100644 src/ue.cpp create mode 100644 src/ue/CMakeLists.txt create mode 100644 src/ue/app/cmd_handler.cpp create mode 100644 src/ue/app/cmd_handler.hpp create mode 100644 src/ue/app/task.cpp create mode 100644 src/ue/app/task.hpp create mode 100644 src/ue/nas/enc.cpp create mode 100644 src/ue/nas/enc.hpp create mode 100644 src/ue/nas/keys.cpp create mode 100644 src/ue/nas/keys.hpp create mode 100644 src/ue/nas/mm/access.cpp create mode 100644 src/ue/nas/mm/auth.cpp create mode 100644 src/ue/nas/mm/base.cpp create mode 100644 src/ue/nas/mm/config.cpp create mode 100644 src/ue/nas/mm/dereg.cpp create mode 100644 src/ue/nas/mm/ecall.cpp create mode 100644 src/ue/nas/mm/identity.cpp create mode 100644 src/ue/nas/mm/messaging.cpp create mode 100644 src/ue/nas/mm/mm.hpp create mode 100644 src/ue/nas/mm/proc.cpp create mode 100644 src/ue/nas/mm/radio.cpp create mode 100644 src/ue/nas/mm/register.cpp create mode 100644 src/ue/nas/mm/sap.cpp create mode 100644 src/ue/nas/mm/security.cpp create mode 100644 src/ue/nas/mm/service.cpp create mode 100644 src/ue/nas/mm/slice.cpp create mode 100644 src/ue/nas/mm/timer.cpp create mode 100644 src/ue/nas/mm/transport.cpp create mode 100644 src/ue/nas/sm/allocation.cpp create mode 100644 src/ue/nas/sm/base.cpp create mode 100644 src/ue/nas/sm/establishment.cpp create mode 100644 src/ue/nas/sm/procedure.cpp create mode 100644 src/ue/nas/sm/release.cpp create mode 100644 src/ue/nas/sm/resource.cpp create mode 100644 src/ue/nas/sm/sap.cpp create mode 100644 src/ue/nas/sm/sm.hpp create mode 100644 src/ue/nas/sm/timer.cpp create mode 100644 src/ue/nas/sm/transport.cpp create mode 100644 src/ue/nas/storage.cpp create mode 100644 src/ue/nas/storage.hpp create mode 100644 src/ue/nas/task.cpp create mode 100644 src/ue/nas/task.hpp create mode 100644 src/ue/nas/usim/sqn_mng.cpp create mode 100644 src/ue/nas/usim/sqn_mng.hpp create mode 100644 src/ue/nas/usim/usim.cpp create mode 100644 src/ue/nas/usim/usim.hpp create mode 100644 src/ue/nts.cpp create mode 100644 src/ue/nts.hpp create mode 100644 src/ue/rls/ctl_task.cpp create mode 100644 src/ue/rls/ctl_task.hpp create mode 100644 src/ue/rls/task.cpp create mode 100644 src/ue/rls/task.hpp create mode 100644 src/ue/rls/udp_task.cpp create mode 100644 src/ue/rls/udp_task.hpp create mode 100644 src/ue/rrc/access.cpp create mode 100644 src/ue/rrc/cells.cpp create mode 100644 src/ue/rrc/channel.cpp create mode 100644 src/ue/rrc/connection.cpp create mode 100644 src/ue/rrc/failures.cpp create mode 100644 src/ue/rrc/handler.cpp create mode 100644 src/ue/rrc/idle.cpp create mode 100644 src/ue/rrc/nas.cpp create mode 100644 src/ue/rrc/sap.cpp create mode 100644 src/ue/rrc/state.cpp create mode 100644 src/ue/rrc/sysinfo.cpp create mode 100644 src/ue/rrc/task.cpp create mode 100644 src/ue/rrc/task.hpp create mode 100644 src/ue/timer.cpp create mode 100644 src/ue/timer.hpp create mode 100644 src/ue/tun/config.cpp create mode 100644 src/ue/tun/config.hpp create mode 100644 src/ue/tun/task.cpp create mode 100644 src/ue/tun/task.hpp create mode 100644 src/ue/tun/tun.cpp create mode 100644 src/ue/tun/tun.hpp create mode 100644 src/ue/types.cpp create mode 100644 src/ue/types.hpp create mode 100644 src/ue/ue.cpp create mode 100644 src/ue/ue.hpp create mode 100644 src/utils/CMakeLists.txt create mode 100644 src/utils/bit_buffer.cpp create mode 100644 src/utils/bit_buffer.hpp create mode 100644 src/utils/bit_string.cpp create mode 100644 src/utils/bit_string.hpp create mode 100644 src/utils/bits.cpp create mode 100644 src/utils/bits.hpp create mode 100644 src/utils/common.cpp create mode 100644 src/utils/common.hpp create mode 100644 src/utils/common_types.cpp create mode 100644 src/utils/common_types.hpp create mode 100644 src/utils/concurrent_map.cpp create mode 100644 src/utils/concurrent_map.hpp create mode 100644 src/utils/constants.hpp create mode 100644 src/utils/io.cpp create mode 100644 src/utils/io.hpp create mode 100644 src/utils/json.cpp create mode 100644 src/utils/json.hpp create mode 100644 src/utils/libc_error.cpp create mode 100644 src/utils/libc_error.hpp create mode 100644 src/utils/light_sync.cpp create mode 100644 src/utils/light_sync.hpp create mode 100644 src/utils/linked_list.cpp create mode 100644 src/utils/linked_list.hpp create mode 100644 src/utils/locked.cpp create mode 100644 src/utils/locked.hpp create mode 100644 src/utils/logger.cpp create mode 100644 src/utils/logger.hpp create mode 100644 src/utils/network.cpp create mode 100644 src/utils/network.hpp create mode 100644 src/utils/nts.cpp create mode 100644 src/utils/nts.hpp create mode 100644 src/utils/octet.cpp create mode 100644 src/utils/octet.hpp create mode 100644 src/utils/octet_string.cpp create mode 100644 src/utils/octet_string.hpp create mode 100644 src/utils/octet_view.cpp create mode 100644 src/utils/octet_view.hpp create mode 100644 src/utils/options.cpp create mode 100644 src/utils/options.hpp create mode 100644 src/utils/ordered_map.cpp create mode 100644 src/utils/ordered_map.hpp create mode 100644 src/utils/printer.cpp create mode 100644 src/utils/printer.hpp create mode 100644 src/utils/random.cpp create mode 100644 src/utils/random.hpp create mode 100644 src/utils/scoped_thread.cpp create mode 100644 src/utils/scoped_thread.hpp create mode 100644 src/utils/time_stamp.cpp create mode 100644 src/utils/time_stamp.hpp create mode 100644 src/utils/unique_buffer.cpp create mode 100644 src/utils/unique_buffer.hpp create mode 100644 src/utils/yaml_utils.cpp create mode 100644 src/utils/yaml_utils.hpp create mode 100644 tools/ngap-15.8.0.asn1 create mode 100644 tools/ngap-17.9.asn create mode 100644 tools/nr-binder create mode 100644 tools/rls-wireshark-dissector.lua create mode 100644 tools/rrc-15.6.0.asn1 diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..287ab45 --- /dev/null +++ b/.clang-format @@ -0,0 +1,2 @@ +BasedOnStyle: Microsoft +AlwaysBreakTemplateDeclarations: Yes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1d5fafc --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* linguist-vendored +*.cpp linguist-vendored=false \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9fea1a --- /dev/null +++ b/.gitignore @@ -0,0 +1,126 @@ +# Project specific (OTHERS) +.idea +cmake-build-* +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +.directory +.idea +.vscode +.settings +*.iml +*/.idea +*/.settings + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so +*.o +*.a + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..08ec1fd --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.17) +project(ueransim) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +include_directories(src) + +#################### SUB DIRECTORIES #################### + +add_subdirectory(src/ext) +add_subdirectory(src/utils) +add_subdirectory(src/asn/asn1c) +add_subdirectory(src/asn/rrc) +add_subdirectory(src/asn/ngap) +add_subdirectory(src/lib) +add_subdirectory(src/gnb) +add_subdirectory(src/ue) + +#################### GNB EXECUTABLE #################### + +add_executable(nr-gnb src/gnb.cpp) + +target_link_libraries(nr-gnb pthread) + +target_compile_options(nr-gnb PRIVATE -Wall -Wextra -pedantic) + +target_link_libraries(nr-gnb asn-rrc) +target_link_libraries(nr-gnb asn-ngap) +target_link_libraries(nr-gnb common-lib) +target_link_libraries(nr-gnb gnb) + +#################### UE EXECUTABLE #################### + +add_executable(nr-ue src/ue.cpp) +target_link_libraries(nr-ue pthread) +target_compile_options(nr-ue PRIVATE -Wall -Wextra -pedantic) + +target_link_libraries(nr-ue common-lib) +target_link_libraries(nr-ue ue) + +###################### IF BINDER ###################### +add_library(devbnd SHARED src/binder.cpp) +target_compile_options(devbnd PRIVATE -D_GNU_SOURCE -Wall -Wextra) +target_link_options(devbnd PRIVATE -nostartfiles) +target_link_libraries(devbnd dl) + +#################### CLI EXECUTABLE #################### +add_executable(nr-cli src/cli.cpp) +target_link_libraries(nr-cli pthread) +target_compile_options(nr-cli PRIVATE -Wall -Wextra -pedantic) + +target_link_libraries(nr-cli common-lib) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..8ba0074 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,19 @@ +# Contributor Agreement + +## 1. Agreement + +Under this Contributor Agreement (“Agreement”), the party contributing to UERANSIM (“the Contributor”), hereby grants Ali GÜNGÖR (“the Project Owner”) the contributions made to the project. + +## 2. License to Contributions + +The Contributor hereby grants to the Project Owner, a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable license to use the contributions in any manner the Project Owner deems fit. + +## 3. Copyright + +The Contributor represents that the contributions are original, and that the Contributor has the right to make the contributions without violating any copyrights, trademarks, or other intellectual property rights. By making contributions, the Contributor is allowing the Project Owner to use the contributions for the Project as deemed appropriate by the Project Owner. + +## 4. Implicit Acceptance of Terms + +By contributing to UERANSIM, the Contributor implicitly acknowledges and accepts the terms of this Agreement. It is the responsibility of the Contributor to read and understand the terms of this Agreement before making any contributions to UERANSIM. + +--- diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 4121cb5..dd47c92 100644 --- a/README.md +++ b/README.md @@ -56,4 +56,4 @@ All source code and related files including documentation and wiki pages are dual licensed with [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) and a commercial license. > [!WARNING] -> Closed-source commercial usage of UERANSIM is **not** permitted with the GPL-3.0. If that license is not compatable with your use case, please contact [ueransim@gmail.com](mailto:ueransim@gmail.com) to buy a commercial license. \ No newline at end of file +> Closed-source commercial usage of UERANSIM is **not** permitted with the GPL-3.0. If that license is not compatable with your use case, please contact [ueransim@gmail.com](mailto:ueransim@gmail.com) to buy a commercial license. diff --git a/config/custom-gnb.yaml b/config/custom-gnb.yaml new file mode 100644 index 0000000..3b3a5e7 --- /dev/null +++ b/config/custom-gnb.yaml @@ -0,0 +1,23 @@ +mcc: '286' # Mobile Country Code value +mnc: '01' # Mobile Network Code value (2 or 3 digits) + +nci: '0x000000010' # NR Cell Identity (36-bit) +idLength: 32 # NR gNB ID length in bits [22...32] +tac: 1 # Tracking Area Code + +linkIp: 127.0.0.1 # gNB's local IP address for Radio Link Simulation (Usually same with local IP) +ngapIp: 127.0.0.1 # gNB's local IP address for N2 Interface (Usually same with local IP) +gtpIp: 127.0.0.1 # gNB's local IP address for N3 Interface (Usually same with local IP) + +# List of AMF address information +amfConfigs: + - address: 127.0.0.5 + port: 38412 + +# List of supported S-NSSAIs by this gNB +slices: + - sst: 1 + sd: 1 + +# Indicates whether or not SCTP stream number errors should be ignored. +ignoreStreamIds: true diff --git a/config/custom-ue.yaml b/config/custom-ue.yaml new file mode 100644 index 0000000..de39182 --- /dev/null +++ b/config/custom-ue.yaml @@ -0,0 +1,83 @@ +# IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 15 digits) +supi: 'imsi-286010000000001' +# Mobile Country Code value of HPLMN +mcc: '286' +# Mobile Network Code value of HPLMN (2 or 3 digits) +mnc: '01' +# SUCI Protection Scheme : 0 for Null-scheme, 1 for Profile A and 2 for Profile B +protectionScheme: 0 +# Home Network Public Key for protecting with SUCI Profile A +homeNetworkPublicKey: '5a8d38864820197c3394b92613b20b91633cbd897119273bf8e4a6f4eec0a650' +# Home Network Public Key ID for protecting with SUCI Profile A +homeNetworkPublicKeyId: 1 +# Routing Indicator +routingIndicator: '0000' + +# Permanent subscription key +key: '465B5CE8B199B49FAA5F0A2EE238A6BC' +# Operator code (OP or OPC) of the UE +op: 'E8ED289DEBA952E4283B54E88E6183CA' +# This value specifies the OP type and it can be either 'OP' or 'OPC' +opType: 'OP' +# Authentication Management Field (AMF) value +amf: '8000' +# IMEI number of the device. It is used if no SUPI is provided +imei: '356938035643803' +# IMEISV number of the device. It is used if no SUPI and IMEI is provided +imeiSv: '4370816125816151' + +# Network mask used for the UE's TUN interface to define the subnet size +tunNetmask: '255.255.255.0' + +# List of gNB IP addresses for Radio Link Simulation +gnbSearchList: + - 127.0.0.1 + +# UAC Access Identities Configuration +uacAic: + mps: false + mcs: false + +# UAC Access Control Class +uacAcc: + normalClass: 0 + class11: false + class12: false + class13: false + class14: false + class15: false + +# Initial PDU sessions to be established +sessions: + - type: 'IPv4' + apn: 'internet' + slice: + sst: 1 + sd: 1 + +# Configured NSSAI for this UE by HPLMN +configured-nssai: + - sst: 1 + sd: 1 + +# Default Configured NSSAI for this UE +default-nssai: + - sst: 1 + sd: 1 + +# Supported integrity algorithms by this UE +integrity: + IA1: true + IA2: true + IA3: true + +# Supported encryption algorithms by this UE +ciphering: + EA1: true + EA2: true + EA3: true + +# Integrity protection maximum data rate for user plane +integrityMaxRate: + uplink: 'full' + downlink: 'full' diff --git a/config/free5gc-gnb.yaml b/config/free5gc-gnb.yaml new file mode 100644 index 0000000..9a525da --- /dev/null +++ b/config/free5gc-gnb.yaml @@ -0,0 +1,23 @@ +mcc: '460' # Mobile Country Code value +mnc: '00' # Mobile Network Code value (2 or 3 digits) + +nci: '0x000000010' # NR Cell Identity (36-bit) +idLength: 32 # NR gNB ID length in bits [22...32] +tac: 4388 # Tracking Area Code + +linkIp: 192.168.8.117 # gNB's local IP address for Radio Link Simulation (Usually same with local IP) +ngapIp: 192.168.8.117 # gNB's local IP address for N2 Interface (Usually same with local IP) +gtpIp: 192.168.8.117 # gNB's local IP address for N3 Interface (Usually same with local IP) + +# List of AMF address information +amfConfigs: + - address: 192.168.13.172 + port: 38412 + +# List of supported S-NSSAIs by this gNB +slices: + - sst: 0x1 + sd: 0x000001 + +# Indicates whether or not SCTP stream number errors should be ignored. +ignoreStreamIds: true diff --git a/config/free5gc-ue.yaml b/config/free5gc-ue.yaml new file mode 100644 index 0000000..ac3fa8b --- /dev/null +++ b/config/free5gc-ue.yaml @@ -0,0 +1,83 @@ +# IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 15 digits) +supi: imsi-460000000000001 +# Mobile Country Code value of HPLMN +mcc: '460' +# Mobile Network Code value of HPLMN (2 or 3 digits) +mnc: '00' +# SUCI Protection Scheme : 0 for Null-scheme, 1 for Profile A and 2 for Profile B +protectionScheme: 0 +# Home Network Public Key for protecting with SUCI Profile A +homeNetworkPublicKey: '5a8d38864820197c3394b92613b20b91633cbd897119273bf8e4a6f4eec0a650' +# Home Network Public Key ID for protecting with SUCI Profile A +homeNetworkPublicKeyId: 1 +# Routing Indicator +routingIndicator: '0000' + +# Permanent subscription key +key: '11111111111111111111111111111111' +# Operator code (OP or OPC) of the UE +op: '11111111111111111111111111111111' +# This value specifies the OP type and it can be either 'OP' or 'OPC' +opType: 'OPC' +# Authentication Management Field (AMF) value +amf: '8000' +# IMEI number of the device. It is used if no SUPI is provided +imei: '356938035643803' +# IMEISV number of the device. It is used if no SUPI and IMEI is provided +imeiSv: '4370816125816151' + +# Network mask used for the UE's TUN interface to define the subnet size +tunNetmask: '255.255.255.0' + +# List of gNB IP addresses for Radio Link Simulation +gnbSearchList: + - 192.168.8.117 + +# UAC Access Identities Configuration +uacAic: + mps: false + mcs: false + +# UAC Access Control Class +uacAcc: + normalClass: 0 + class11: false + class12: false + class13: false + class14: false + class15: false + +# Initial PDU sessions to be established +sessions: + - type: 'IPv4' + apn: 'internet' + slice: + sst: 0x01 + sd: 0x000001 + +# Configured NSSAI for this UE by HPLMN +configured-nssai: + - sst: 0x01 + sd: 0x000001 + +# Default Configured NSSAI for this UE +default-nssai: + - sst: 1 + sd: 1 + +# Supported integrity algorithms by this UE +integrity: + IA1: true + IA2: true + IA3: true + +# Supported encryption algorithms by this UE +ciphering: + EA1: true + EA2: true + EA3: true + +# Integrity protection maximum data rate for user plane +integrityMaxRate: + uplink: 'full' + downlink: 'full' diff --git a/config/open5gs-gnb.yaml b/config/open5gs-gnb.yaml new file mode 100644 index 0000000..d0cdc16 --- /dev/null +++ b/config/open5gs-gnb.yaml @@ -0,0 +1,22 @@ +mcc: '999' # Mobile Country Code value +mnc: '70' # Mobile Network Code value (2 or 3 digits) + +nci: '0x000000010' # NR Cell Identity (36-bit) +idLength: 32 # NR gNB ID length in bits [22...32] +tac: 1 # Tracking Area Code + +linkIp: 127.0.0.1 # gNB's local IP address for Radio Link Simulation (Usually same with local IP) +ngapIp: 127.0.0.1 # gNB's local IP address for N2 Interface (Usually same with local IP) +gtpIp: 127.0.0.1 # gNB's local IP address for N3 Interface (Usually same with local IP) + +# List of AMF address information +amfConfigs: + - address: 127.0.0.5 + port: 38412 + +# List of supported S-NSSAIs by this gNB +slices: + - sst: 1 + +# Indicates whether or not SCTP stream number errors should be ignored. +ignoreStreamIds: true diff --git a/config/open5gs-ue.yaml b/config/open5gs-ue.yaml new file mode 100644 index 0000000..93629d8 --- /dev/null +++ b/config/open5gs-ue.yaml @@ -0,0 +1,81 @@ +# IMSI number of the UE. IMSI = [MCC|MNC|MSISDN] (In total 15 digits) +supi: 'imsi-999700000000001' +# Mobile Country Code value of HPLMN +mcc: '999' +# Mobile Network Code value of HPLMN (2 or 3 digits) +mnc: '70' +# SUCI Protection Scheme : 0 for Null-scheme, 1 for Profile A and 2 for Profile B +protectionScheme: 0 +# Home Network Public Key for protecting with SUCI Profile A +homeNetworkPublicKey: '5a8d38864820197c3394b92613b20b91633cbd897119273bf8e4a6f4eec0a650' +# Home Network Public Key ID for protecting with SUCI Profile A +homeNetworkPublicKeyId: 1 +# Routing Indicator +routingIndicator: '0000' + +# Permanent subscription key +key: '465B5CE8B199B49FAA5F0A2EE238A6BC' +# Operator code (OP or OPC) of the UE +op: 'E8ED289DEBA952E4283B54E88E6183CA' +# This value specifies the OP type and it can be either 'OP' or 'OPC' +opType: 'OPC' +# Authentication Management Field (AMF) value +amf: '8000' +# IMEI number of the device. It is used if no SUPI is provided +imei: '356938035643803' +# IMEISV number of the device. It is used if no SUPI and IMEI is provided +imeiSv: '4370816125816151' + +# Network mask used for the UE's TUN interface to define the subnet size +tunNetmask: '255.255.255.0' + +# List of gNB IP addresses for Radio Link Simulation +gnbSearchList: + - 127.0.0.1 + +# UAC Access Identities Configuration +uacAic: + mps: false + mcs: false + +# UAC Access Control Class +uacAcc: + normalClass: 0 + class11: false + class12: false + class13: false + class14: false + class15: false + +# Initial PDU sessions to be established +sessions: + - type: 'IPv4' + apn: 'internet' + slice: + sst: 1 + +# Configured NSSAI for this UE by HPLMN +configured-nssai: + - sst: 1 + +# Default Configured NSSAI for this UE +default-nssai: + - sst: 1 + sd: 1 + +# Supported integrity algorithms by this UE +integrity: + IA1: true + IA2: true + IA3: true + +# Supported encryption algorithms by this UE +ciphering: + EA1: true + EA2: true + EA3: true + +# Integrity protection maximum data rate for user plane +integrityMaxRate: + uplink: 'full' + downlink: 'full' diff --git a/src/asn/asn1c/ANY.c b/src/asn/asn1c/ANY.c new file mode 100644 index 0000000..b24d6f4 --- /dev/null +++ b/src/asn/asn1c/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; + + 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/src/asn/asn1c/ANY.h b/src/asn/asn1c/ANY.h new file mode 100644 index 0000000..b30381f --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/BIT_STRING.c b/src/asn/asn1c/BIT_STRING.c new file mode 100644 index 0000000..87246f1 --- /dev/null +++ b/src/asn/asn1c/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; + 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/src/asn/asn1c/BIT_STRING.h b/src/asn/asn1c/BIT_STRING.h new file mode 100644 index 0000000..c1bdbbc --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/BOOLEAN.c b/src/asn/asn1c/BOOLEAN.c new file mode 100644 index 0000000..1bb7f7d --- /dev/null +++ b/src/asn/asn1c/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; + 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/src/asn/asn1c/BOOLEAN.h b/src/asn/asn1c/BOOLEAN.h new file mode 100644 index 0000000..620acf7 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/CMakeLists.txt b/src/asn/asn1c/CMakeLists.txt new file mode 100644 index 0000000..552c743 --- /dev/null +++ b/src/asn/asn1c/CMakeLists.txt @@ -0,0 +1,7 @@ +file(GLOB HDR_FILES *.h) +file(GLOB SRC_FILES *.c) + +add_library(asn-asn1c ${HDR_FILES} ${SRC_FILES}) +target_include_directories(asn-asn1c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + +target_compile_options(asn-asn1c PUBLIC -DASN_DISABLE_OER_SUPPORT) diff --git a/src/asn/asn1c/INTEGER.c b/src/asn/asn1c/INTEGER.c new file mode 100644 index 0000000..ab001b2 --- /dev/null +++ b/src/asn/asn1c/INTEGER.c @@ -0,0 +1,1723 @@ +/*- + * 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; + + (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; + 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(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; + 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/src/asn/asn1c/INTEGER.h b/src/asn/asn1c/INTEGER.h new file mode 100644 index 0000000..f776c07 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/Makefile.am.libasncodec b/src/asn/asn1c/Makefile.am.libasncodec new file mode 100644 index 0000000..850c28a --- /dev/null +++ b/src/asn/asn1c/Makefile.am.libasncodec @@ -0,0 +1,2231 @@ +ASN_MODULE_SRCS= \ + ngap/ASN_NGAP_Criticality.c \ + ngap/ASN_NGAP_Presence.c \ + ngap/ASN_NGAP_PrivateIE-ID.c \ + ngap/ASN_NGAP_ProcedureCode.c \ + ngap/ASN_NGAP_ProtocolExtensionID.c \ + ngap/ASN_NGAP_ProtocolIE-ID.c \ + ngap/ASN_NGAP_TriggeringMessage.c \ + ngap/ASN_NGAP_ProtocolIE-Container.c \ + ngap/ASN_NGAP_ProtocolIE-SingleContainer.c \ + ngap/ASN_NGAP_ProtocolIE-Field.c \ + ngap/ASN_NGAP_ProtocolIE-ContainerPair.c \ + ngap/ASN_NGAP_ProtocolIE-FieldPair.c \ + ngap/ASN_NGAP_ProtocolIE-ContainerList.c \ + ngap/ASN_NGAP_ProtocolIE-ContainerPairList.c \ + ngap/ASN_NGAP_ProtocolExtensionContainer.c \ + ngap/ASN_NGAP_ProtocolExtensionField.c \ + ngap/ASN_NGAP_PrivateIE-Container.c \ + ngap/ASN_NGAP_PrivateIE-Field.c \ + ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.c \ + ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.c \ + ngap/ASN_NGAP_AdditionalQosFlowInformation.c \ + ngap/ASN_NGAP_AllocationAndRetentionPriority.c \ + ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c \ + ngap/ASN_NGAP_AllowedNSSAI.c \ + ngap/ASN_NGAP_AllowedNSSAI-Item.c \ + ngap/ASN_NGAP_Allowed-PNI-NPN-List.c \ + ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c \ + ngap/ASN_NGAP_AllowedTACs.c \ + ngap/ASN_NGAP_AlternativeQoSParaSetIndex.c \ + ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.c \ + ngap/ASN_NGAP_AlternativeQoSParaSetList.c \ + ngap/ASN_NGAP_AlternativeQoSParaSetItem.c \ + ngap/ASN_NGAP_AMFName.c \ + ngap/ASN_NGAP_AMFNameVisibleString.c \ + ngap/ASN_NGAP_AMFNameUTF8String.c \ + ngap/ASN_NGAP_AMFPagingTarget.c \ + ngap/ASN_NGAP_AMFPointer.c \ + ngap/ASN_NGAP_AMFRegionID.c \ + ngap/ASN_NGAP_AMFSetID.c \ + ngap/ASN_NGAP_AMF-TNLAssociationSetupList.c \ + ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToAddList.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.c \ + ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.c \ + ngap/ASN_NGAP_AMF-UE-NGAP-ID.c \ + ngap/ASN_NGAP_AreaOfInterest.c \ + ngap/ASN_NGAP_AreaOfInterestCellList.c \ + ngap/ASN_NGAP_AreaOfInterestCellItem.c \ + ngap/ASN_NGAP_AreaOfInterestList.c \ + ngap/ASN_NGAP_AreaOfInterestItem.c \ + ngap/ASN_NGAP_AreaOfInterestRANNodeList.c \ + ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c \ + ngap/ASN_NGAP_AreaOfInterestTAIList.c \ + ngap/ASN_NGAP_AreaOfInterestTAIItem.c \ + ngap/ASN_NGAP_AssistanceDataForPaging.c \ + ngap/ASN_NGAP_AssistanceDataForRecommendedCells.c \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.c \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.c \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c \ + ngap/ASN_NGAP_AssociatedQosFlowList.c \ + ngap/ASN_NGAP_AssociatedQosFlowItem.c \ + ngap/ASN_NGAP_AuthenticatedIndication.c \ + ngap/ASN_NGAP_AveragingWindow.c \ + ngap/ASN_NGAP_AreaScopeOfMDT-NR.c \ + ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c \ + ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c \ + ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c \ + ngap/ASN_NGAP_AreaScopeOfQMC.c \ + ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.c \ + ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.c \ + ngap/ASN_NGAP_BeamMeasurementsReportQuantity.c \ + ngap/ASN_NGAP_BitRate.c \ + ngap/ASN_NGAP_BroadcastCancelledAreaList.c \ + ngap/ASN_NGAP_BroadcastCompletedAreaList.c \ + ngap/ASN_NGAP_BroadcastPLMNList.c \ + ngap/ASN_NGAP_BroadcastPLMNItem.c \ + ngap/ASN_NGAP_BluetoothMeasurementConfiguration.c \ + ngap/ASN_NGAP_BluetoothMeasConfigNameList.c \ + ngap/ASN_NGAP_BluetoothMeasConfigNameItem.c \ + ngap/ASN_NGAP_BluetoothMeasConfig.c \ + ngap/ASN_NGAP_BluetoothName.c \ + ngap/ASN_NGAP_BurstArrivalTime.c \ + ngap/ASN_NGAP_CAG-ID.c \ + ngap/ASN_NGAP_CancelAllWarningMessages.c \ + ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c \ + ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c \ + ngap/ASN_NGAP_CancelledCellsInEAI-NR.c \ + ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.c \ + ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c \ + ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c \ + ngap/ASN_NGAP_CancelledCellsInTAI-NR.c \ + ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.c \ + ngap/ASN_NGAP_CandidateCellList.c \ + ngap/ASN_NGAP_CandidateCellItem.c \ + ngap/ASN_NGAP_CandidateCell.c \ + ngap/ASN_NGAP_CandidateCellID.c \ + ngap/ASN_NGAP_CandidatePCI.c \ + ngap/ASN_NGAP_Cause.c \ + ngap/ASN_NGAP_CauseMisc.c \ + ngap/ASN_NGAP_CauseNas.c \ + ngap/ASN_NGAP_CauseProtocol.c \ + ngap/ASN_NGAP_CauseRadioNetwork.c \ + ngap/ASN_NGAP_CauseTransport.c \ + ngap/ASN_NGAP_Cell-CAGInformation.c \ + ngap/ASN_NGAP_CellCAGList.c \ + ngap/ASN_NGAP_CellIDBroadcastEUTRA.c \ + ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c \ + ngap/ASN_NGAP_CellIDBroadcastNR.c \ + ngap/ASN_NGAP_CellIDBroadcastNR-Item.c \ + ngap/ASN_NGAP_CellIDCancelledEUTRA.c \ + ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c \ + ngap/ASN_NGAP_CellIDCancelledNR.c \ + ngap/ASN_NGAP_CellIDCancelledNR-Item.c \ + ngap/ASN_NGAP_CellIDListForRestart.c \ + ngap/ASN_NGAP_CellSize.c \ + ngap/ASN_NGAP_CellType.c \ + ngap/ASN_NGAP_CEmodeBSupport-Indicator.c \ + ngap/ASN_NGAP_CEmodeBrestricted.c \ + ngap/ASN_NGAP_CNAssistedRANTuning.c \ + ngap/ASN_NGAP_CNsubgroupID.c \ + ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.c \ + ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.c \ + ngap/ASN_NGAP_CNTypeRestrictionsForServing.c \ + ngap/ASN_NGAP_CommonNetworkInstance.c \ + ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c \ + ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c \ + ngap/ASN_NGAP_CompletedCellsInEAI-NR.c \ + ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.c \ + ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c \ + ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c \ + ngap/ASN_NGAP_CompletedCellsInTAI-NR.c \ + ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.c \ + ngap/ASN_NGAP_ConcurrentWarningMessageInd.c \ + ngap/ASN_NGAP_ConfidentialityProtectionIndication.c \ + ngap/ASN_NGAP_ConfidentialityProtectionResult.c \ + ngap/ASN_NGAP_ConfiguredTACIndication.c \ + ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.c \ + ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c \ + ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c \ + ngap/ASN_NGAP_CoverageEnhancementLevel.c \ + ngap/ASN_NGAP_CPTransportLayerInformation.c \ + ngap/ASN_NGAP_CriticalityDiagnostics.c \ + ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.c \ + ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.c \ + ngap/ASN_NGAP_CellBasedMDT-NR.c \ + ngap/ASN_NGAP_CellIdListforMDT-NR.c \ + ngap/ASN_NGAP_CellBasedMDT-EUTRA.c \ + ngap/ASN_NGAP_CellBasedQMC.c \ + ngap/ASN_NGAP_CellIdListforQMC.c \ + ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c \ + ngap/ASN_NGAP_DataCodingScheme.c \ + ngap/ASN_NGAP_DataForwardingAccepted.c \ + ngap/ASN_NGAP_DataForwardingNotPossible.c \ + ngap/ASN_NGAP_DataForwardingResponseDRBList.c \ + ngap/ASN_NGAP_DataForwardingResponseDRBItem.c \ + ngap/ASN_NGAP_DAPSRequestInfo.c \ + ngap/ASN_NGAP_DAPSResponseInfoList.c \ + ngap/ASN_NGAP_DAPSResponseInfoItem.c \ + ngap/ASN_NGAP_DAPSResponseInfo.c \ + ngap/ASN_NGAP_DataForwardingResponseERABList.c \ + ngap/ASN_NGAP_DataForwardingResponseERABListItem.c \ + ngap/ASN_NGAP_DelayCritical.c \ + ngap/ASN_NGAP_DL-CP-SecurityInformation.c \ + ngap/ASN_NGAP_DL-NAS-MAC.c \ + ngap/ASN_NGAP_DLForwarding.c \ + ngap/ASN_NGAP_DL-NGU-TNLInformationReused.c \ + ngap/ASN_NGAP_DirectForwardingPathAvailability.c \ + ngap/ASN_NGAP_DRB-ID.c \ + ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.c \ + ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.c \ + ngap/ASN_NGAP_DRBStatusDL.c \ + ngap/ASN_NGAP_DRBStatusDL12.c \ + ngap/ASN_NGAP_DRBStatusDL18.c \ + ngap/ASN_NGAP_DRBStatusUL.c \ + ngap/ASN_NGAP_DRBStatusUL12.c \ + ngap/ASN_NGAP_DRBStatusUL18.c \ + ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c \ + ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c \ + ngap/ASN_NGAP_Dynamic5QIDescriptor.c \ + ngap/ASN_NGAP_EarlyMeasurement.c \ + ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.c \ + ngap/ASN_NGAP_ProcedureStageChoice.c \ + ngap/ASN_NGAP_FirstDLCount.c \ + ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.c \ + ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c \ + ngap/ASN_NGAP_EDT-Session.c \ + ngap/ASN_NGAP_EmergencyAreaID.c \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.c \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.c \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.c \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c \ + ngap/ASN_NGAP_EmergencyAreaIDList.c \ + ngap/ASN_NGAP_EmergencyAreaIDListForRestart.c \ + ngap/ASN_NGAP_EmergencyFallbackIndicator.c \ + ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.c \ + ngap/ASN_NGAP_EmergencyServiceTargetCN.c \ + ngap/ASN_NGAP_ENB-ID.c \ + ngap/ASN_NGAP_Enhanced-CoverageRestriction.c \ + ngap/ASN_NGAP_Extended-ConnectedTime.c \ + ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.c \ + ngap/ASN_NGAP_EndpointIPAddressAndPort.c \ + ngap/ASN_NGAP_EndIndication.c \ + ngap/ASN_NGAP_EquivalentPLMNs.c \ + ngap/ASN_NGAP_EPS-TAC.c \ + ngap/ASN_NGAP_EPS-TAI.c \ + ngap/ASN_NGAP_E-RAB-ID.c \ + ngap/ASN_NGAP_E-RABInformationList.c \ + ngap/ASN_NGAP_E-RABInformationItem.c \ + ngap/ASN_NGAP_EUTRACellIdentity.c \ + ngap/ASN_NGAP_EUTRA-CGI.c \ + ngap/ASN_NGAP_EUTRA-CGIList.c \ + ngap/ASN_NGAP_EUTRA-CGIListForWarning.c \ + ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.c \ + ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c \ + ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c \ + ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c \ + ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.c \ + ngap/ASN_NGAP_EventType.c \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.c \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.c \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.c \ + ngap/ASN_NGAP_ExpectedActivityPeriod.c \ + ngap/ASN_NGAP_ExpectedHOInterval.c \ + ngap/ASN_NGAP_ExpectedIdlePeriod.c \ + ngap/ASN_NGAP_ExpectedUEActivityBehaviour.c \ + ngap/ASN_NGAP_ExpectedUEBehaviour.c \ + ngap/ASN_NGAP_ExpectedUEMobility.c \ + ngap/ASN_NGAP_ExpectedUEMovingTrajectory.c \ + ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.c \ + ngap/ASN_NGAP_Extended-AMFName.c \ + ngap/ASN_NGAP_ExtendedPacketDelayBudget.c \ + ngap/ASN_NGAP_Extended-RANNodeName.c \ + ngap/ASN_NGAP_ExtendedRATRestrictionInformation.c \ + ngap/ASN_NGAP_ExtendedRNC-ID.c \ + ngap/ASN_NGAP_ExtendedSliceSupportList.c \ + ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.c \ + ngap/ASN_NGAP_EventTrigger.c \ + ngap/ASN_NGAP_EventL1LoggedMDTConfig.c \ + ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.c \ + ngap/ASN_NGAP_FailureIndication.c \ + ngap/ASN_NGAP_FiveG-ProSeAuthorized.c \ + ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c \ + ngap/ASN_NGAP_FiveGProSeDirectCommunication.c \ + ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c \ + ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c \ + ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c \ + ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.c \ + ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c \ + ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c \ + ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c \ + ngap/ASN_NGAP_FiveG-S-TMSI.c \ + ngap/ASN_NGAP_FiveG-TMSI.c \ + ngap/ASN_NGAP_FiveQI.c \ + ngap/ASN_NGAP_ForbiddenAreaInformation.c \ + ngap/ASN_NGAP_ForbiddenAreaInformation-Item.c \ + ngap/ASN_NGAP_ForbiddenTACs.c \ + ngap/ASN_NGAP_FromEUTRANtoNGRAN.c \ + ngap/ASN_NGAP_FromNGRANtoEUTRAN.c \ + ngap/ASN_NGAP_GBR-QosInformation.c \ + ngap/ASN_NGAP_GlobalCable-ID.c \ + ngap/ASN_NGAP_GlobalCable-ID-new.c \ + ngap/ASN_NGAP_GlobalENB-ID.c \ + ngap/ASN_NGAP_GlobalGNB-ID.c \ + ngap/ASN_NGAP_GlobalN3IWF-ID.c \ + ngap/ASN_NGAP_GlobalLine-ID.c \ + ngap/ASN_NGAP_GlobalLineIdentity.c \ + ngap/ASN_NGAP_GlobalNgENB-ID.c \ + ngap/ASN_NGAP_GlobalRANNodeID.c \ + ngap/ASN_NGAP_GlobalTNGF-ID.c \ + ngap/ASN_NGAP_GlobalTWIF-ID.c \ + ngap/ASN_NGAP_GlobalW-AGF-ID.c \ + ngap/ASN_NGAP_GNB-ID.c \ + ngap/ASN_NGAP_GTP-TEID.c \ + ngap/ASN_NGAP_GTPTunnel.c \ + ngap/ASN_NGAP_GUAMI.c \ + ngap/ASN_NGAP_GUAMIType.c \ + ngap/ASN_NGAP_HandoverCommandTransfer.c \ + ngap/ASN_NGAP_HandoverFlag.c \ + ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.c \ + ngap/ASN_NGAP_HandoverRequiredTransfer.c \ + ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_HandoverType.c \ + ngap/ASN_NGAP_HashedUEIdentityIndexValue.c \ + ngap/ASN_NGAP_HFCNode-ID.c \ + ngap/ASN_NGAP_HFCNode-ID-new.c \ + ngap/ASN_NGAP_HOReport.c \ + ngap/ASN_NGAP_Hysteresis.c \ + ngap/ASN_NGAP_IAB-Authorized.c \ + ngap/ASN_NGAP_IAB-Supported.c \ + ngap/ASN_NGAP_IABNodeIndication.c \ + ngap/ASN_NGAP_IMSVoiceSupportIndicator.c \ + ngap/ASN_NGAP_IndexToRFSP.c \ + ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c \ + ngap/ASN_NGAP_IntegrityProtectionIndication.c \ + ngap/ASN_NGAP_IntegrityProtectionResult.c \ + ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.c \ + ngap/ASN_NGAP_InterfacesToTrace.c \ + ngap/ASN_NGAP_ImmediateMDTNr.c \ + ngap/ASN_NGAP_InterSystemFailureIndication.c \ + ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.c \ + ngap/ASN_NGAP_IntersystemSONTransferType.c \ + ngap/ASN_NGAP_IntersystemSONeNBID.c \ + ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c \ + ngap/ASN_NGAP_IntersystemSONInformation.c \ + ngap/ASN_NGAP_IntersystemSONInformationRequest.c \ + ngap/ASN_NGAP_IntersystemCellActivationRequest.c \ + ngap/ASN_NGAP_CellsToActivateList.c \ + ngap/ASN_NGAP_IntersystemResourceStatusRequest.c \ + ngap/ASN_NGAP_ReportingSystem.c \ + ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c \ + ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c \ + ngap/ASN_NGAP_EUTRAN-CellToReportList.c \ + ngap/ASN_NGAP_EUTRAN-CellToReportItem.c \ + ngap/ASN_NGAP_NGRAN-CellToReportList.c \ + ngap/ASN_NGAP_NGRAN-CellToReportItem.c \ + ngap/ASN_NGAP_ReportCharacteristics.c \ + ngap/ASN_NGAP_ReportType.c \ + ngap/ASN_NGAP_EventBasedReportingIEs.c \ + ngap/ASN_NGAP_IntersystemResourceThreshold.c \ + ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.c \ + ngap/ASN_NGAP_PeriodicReportingIEs.c \ + ngap/ASN_NGAP_ReportingPeriodicity.c \ + ngap/ASN_NGAP_IntersystemSONInformationReply.c \ + ngap/ASN_NGAP_IntersystemCellActivationReply.c \ + ngap/ASN_NGAP_ActivatedCellList.c \ + ngap/ASN_NGAP_IntersystemResourceStatusReply.c \ + ngap/ASN_NGAP_IntersystemSONInformationReport.c \ + ngap/ASN_NGAP_IntersystemCellStateIndication.c \ + ngap/ASN_NGAP_NotificationCellList.c \ + ngap/ASN_NGAP_NotificationCell-Item.c \ + ngap/ASN_NGAP_IntersystemResourceStatusReport.c \ + ngap/ASN_NGAP_ResourceStatusReportingSystem.c \ + ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c \ + ngap/ASN_NGAP_EUTRAN-CellReportList.c \ + ngap/ASN_NGAP_EUTRAN-CellReportItem.c \ + ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.c \ + ngap/ASN_NGAP_CompositeAvailableCapacity.c \ + ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c \ + ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.c \ + ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c \ + ngap/ASN_NGAP_NGRAN-CellReportList.c \ + ngap/ASN_NGAP_NGRAN-CellReportItem.c \ + ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c \ + ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c \ + ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c \ + ngap/ASN_NGAP_InterSystemHOReport.c \ + ngap/ASN_NGAP_InterSystemHandoverReportType.c \ + ngap/ASN_NGAP_IntersystemUnnecessaryHO.c \ + ngap/ASN_NGAP_LAC.c \ + ngap/ASN_NGAP_LAI.c \ + ngap/ASN_NGAP_LastVisitedCellInformation.c \ + ngap/ASN_NGAP_LastVisitedCellItem.c \ + ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.c \ + ngap/ASN_NGAP_LastVisitedGERANCellInformation.c \ + ngap/ASN_NGAP_LastVisitedNGRANCellInformation.c \ + ngap/ASN_NGAP_LastVisitedPSCellList.c \ + ngap/ASN_NGAP_LastVisitedPSCellInformation.c \ + ngap/ASN_NGAP_LastVisitedUTRANCellInformation.c \ + ngap/ASN_NGAP_LineType.c \ + ngap/ASN_NGAP_LocationReportingAdditionalInfo.c \ + ngap/ASN_NGAP_LocationReportingReferenceID.c \ + ngap/ASN_NGAP_LocationReportingRequestType.c \ + ngap/ASN_NGAP_LoggedMDTNr.c \ + ngap/ASN_NGAP_LoggingInterval.c \ + ngap/ASN_NGAP_LoggingDuration.c \ + ngap/ASN_NGAP_Links-to-log.c \ + ngap/ASN_NGAP_LoggedMDTTrigger.c \ + ngap/ASN_NGAP_LTEM-Indication.c \ + ngap/ASN_NGAP_LTEUERLFReportContainer.c \ + ngap/ASN_NGAP_LTEV2XServicesAuthorized.c \ + ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.c \ + ngap/ASN_NGAP_MaskedIMEISV.c \ + ngap/ASN_NGAP_MaximumDataBurstVolume.c \ + ngap/ASN_NGAP_MessageIdentifier.c \ + ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.c \ + ngap/ASN_NGAP_MBS-AreaSessionID.c \ + ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.c \ + ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.c \ + ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.c \ + ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.c \ + ngap/ASN_NGAP_MBS-QoSFlowList.c \ + ngap/ASN_NGAP_MRB-ProgressInformation.c \ + ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c \ + ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c \ + ngap/ASN_NGAP_MBS-ServiceArea.c \ + ngap/ASN_NGAP_MBS-ServiceAreaInformationList.c \ + ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.c \ + ngap/ASN_NGAP_MBS-ServiceAreaInformation.c \ + ngap/ASN_NGAP_MBS-ServiceAreaCellList.c \ + ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c \ + ngap/ASN_NGAP_MBS-SessionID.c \ + ngap/ASN_NGAP_MBSSessionFailedtoSetupList.c \ + ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.c \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c \ + ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.c \ + ngap/ASN_NGAP_MBSSessionSetupResponseList.c \ + ngap/ASN_NGAP_MBSSessionSetupResponseItem.c \ + ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.c \ + ngap/ASN_NGAP_MBS-SessionFSAIDList.c \ + ngap/ASN_NGAP_MBS-SessionFSAID.c \ + ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.c \ + ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.c \ + ngap/ASN_NGAP_MBS-SupportIndicator.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.c \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c \ + ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.c \ + ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.c \ + ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.c \ + ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_MBSSessionSetupRequestList.c \ + ngap/ASN_NGAP_MBSSessionSetupRequestItem.c \ + ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.c \ + ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.c \ + ngap/ASN_NGAP_MBSSessionToReleaseList.c \ + ngap/ASN_NGAP_MBSSessionToReleaseItem.c \ + ngap/ASN_NGAP_MBSSessionStatus.c \ + ngap/ASN_NGAP_MicoAllPLMN.c \ + ngap/ASN_NGAP_MICOModeIndication.c \ + ngap/ASN_NGAP_MobilityInformation.c \ + ngap/ASN_NGAP_ExtendedMobilityInformation.c \ + ngap/ASN_NGAP_MobilityRestrictionList.c \ + ngap/ASN_NGAP_MDT-AlignmentInfo.c \ + ngap/ASN_NGAP_MDTPLMNList.c \ + ngap/ASN_NGAP_MDTPLMNModificationList.c \ + ngap/ASN_NGAP_MDT-Configuration.c \ + ngap/ASN_NGAP_MDT-Configuration-NR.c \ + ngap/ASN_NGAP_MDT-Configuration-EUTRA.c \ + ngap/ASN_NGAP_MDT-Activation.c \ + ngap/ASN_NGAP_MDTModeNr.c \ + ngap/ASN_NGAP_MDTModeEutra.c \ + ngap/ASN_NGAP_MeasurementsToActivate.c \ + ngap/ASN_NGAP_MRB-ID.c \ + ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.c \ + ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.c \ + ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.c \ + ngap/ASN_NGAP_MulticastGroupPagingAreaList.c \ + ngap/ASN_NGAP_MulticastGroupPagingAreaItem.c \ + ngap/ASN_NGAP_MBS-AreaTAIList.c \ + ngap/ASN_NGAP_MulticastGroupPagingArea.c \ + ngap/ASN_NGAP_UE-PagingList.c \ + ngap/ASN_NGAP_UE-PagingItem.c \ + ngap/ASN_NGAP_M1Configuration.c \ + ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.c \ + ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c \ + ngap/ASN_NGAP_M1ReportingTrigger.c \ + ngap/ASN_NGAP_M1ThresholdEventA2.c \ + ngap/ASN_NGAP_M1ThresholdType.c \ + ngap/ASN_NGAP_M1PeriodicReporting.c \ + ngap/ASN_NGAP_M4Configuration.c \ + ngap/ASN_NGAP_M4ReportAmountMDT.c \ + ngap/ASN_NGAP_M4period.c \ + ngap/ASN_NGAP_M5Configuration.c \ + ngap/ASN_NGAP_M5ReportAmountMDT.c \ + ngap/ASN_NGAP_M5period.c \ + ngap/ASN_NGAP_M6Configuration.c \ + ngap/ASN_NGAP_M6ReportAmountMDT.c \ + ngap/ASN_NGAP_M6report-Interval.c \ + ngap/ASN_NGAP_M7Configuration.c \ + ngap/ASN_NGAP_M7ReportAmountMDT.c \ + ngap/ASN_NGAP_M7period.c \ + ngap/ASN_NGAP_MDT-Location-Info.c \ + ngap/ASN_NGAP_MDT-Location-Information.c \ + ngap/ASN_NGAP_N3IWF-ID.c \ + ngap/ASN_NGAP_NAS-PDU.c \ + ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.c \ + ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c \ + ngap/ASN_NGAP_NB-IoT-PagingDRX.c \ + ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c \ + ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c \ + ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c \ + ngap/ASN_NGAP_NB-IoT-UEPriority.c \ + ngap/ASN_NGAP_NetworkInstance.c \ + ngap/ASN_NGAP_NewSecurityContextInd.c \ + ngap/ASN_NGAP_NextHopChainingCount.c \ + ngap/ASN_NGAP_NextPagingAreaScope.c \ + ngap/ASN_NGAP_NGAPIESupportInformationRequestList.c \ + ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.c \ + ngap/ASN_NGAP_NGAPIESupportInformationResponseList.c \ + ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.c \ + ngap/ASN_NGAP_NgENB-ID.c \ + ngap/ASN_NGAP_NotifySourceNGRANNode.c \ + ngap/ASN_NGAP_NGRAN-CGI.c \ + ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.c \ + ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.c \ + ngap/ASN_NGAP_NGRANTraceID.c \ + ngap/ASN_NGAP_NID.c \ + ngap/ASN_NGAP_NonDynamic5QIDescriptor.c \ + ngap/ASN_NGAP_NotAllowedTACs.c \ + ngap/ASN_NGAP_NotificationCause.c \ + ngap/ASN_NGAP_NotificationControl.c \ + ngap/ASN_NGAP_NPN-AccessInformation.c \ + ngap/ASN_NGAP_NPN-MobilityInformation.c \ + ngap/ASN_NGAP_NPN-PagingAssistanceInformation.c \ + ngap/ASN_NGAP_NPN-Support.c \ + ngap/ASN_NGAP_NRCellIdentity.c \ + ngap/ASN_NGAP_NR-CGI.c \ + ngap/ASN_NGAP_NR-CGIList.c \ + ngap/ASN_NGAP_NR-CGIListForWarning.c \ + ngap/ASN_NGAP_NR-PagingeDRXInformation.c \ + ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c \ + ngap/ASN_NGAP_NR-Paging-Time-Window.c \ + ngap/ASN_NGAP_NRencryptionAlgorithms.c \ + ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.c \ + ngap/ASN_NGAP_NRMobilityHistoryReport.c \ + ngap/ASN_NGAP_NRPPa-PDU.c \ + ngap/ASN_NGAP_NRUERLFReportContainer.c \ + ngap/ASN_NGAP_NRNTNTAIInformation.c \ + ngap/ASN_NGAP_NumberOfBroadcasts.c \ + ngap/ASN_NGAP_NumberOfBroadcastsRequested.c \ + ngap/ASN_NGAP_NRARFCN.c \ + ngap/ASN_NGAP_NRFrequencyBand.c \ + ngap/ASN_NGAP_NRFrequencyBand-List.c \ + ngap/ASN_NGAP_NRFrequencyBandItem.c \ + ngap/ASN_NGAP_NRFrequencyInfo.c \ + ngap/ASN_NGAP_NR-PCI.c \ + ngap/ASN_NGAP_NRV2XServicesAuthorized.c \ + ngap/ASN_NGAP_VehicleUE.c \ + ngap/ASN_NGAP_PedestrianUE.c \ + ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.c \ + ngap/ASN_NGAP_NSAG-ID.c \ + ngap/ASN_NGAP_OnboardingSupport.c \ + ngap/ASN_NGAP_OverloadAction.c \ + ngap/ASN_NGAP_OverloadResponse.c \ + ngap/ASN_NGAP_OverloadStartNSSAIList.c \ + ngap/ASN_NGAP_OverloadStartNSSAIItem.c \ + ngap/ASN_NGAP_PacketDelayBudget.c \ + ngap/ASN_NGAP_PacketErrorRate.c \ + ngap/ASN_NGAP_PacketLossRate.c \ + ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.c \ + ngap/ASN_NGAP_PagingAttemptInformation.c \ + ngap/ASN_NGAP_PagingAttemptCount.c \ + ngap/ASN_NGAP_PagingCause.c \ + ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.c \ + ngap/ASN_NGAP_PagingDRX.c \ + ngap/ASN_NGAP_PagingOrigin.c \ + ngap/ASN_NGAP_PagingPriority.c \ + ngap/ASN_NGAP_PagingProbabilityInformation.c \ + ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.c \ + ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.c \ + ngap/ASN_NGAP_PathSwitchRequestTransfer.c \ + ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_PC5QoSParameters.c \ + ngap/ASN_NGAP_PC5QoSFlowList.c \ + ngap/ASN_NGAP_PC5QoSFlowItem.c \ + ngap/ASN_NGAP_PC5FlowBitRates.c \ + ngap/ASN_NGAP_PCIListForMDT.c \ + ngap/ASN_NGAP_PrivacyIndicator.c \ + ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.c \ + ngap/ASN_NGAP_PDUSessionID.c \ + ngap/ASN_NGAP_PDUSessionPairID.c \ + ngap/ASN_NGAP_PDUSessionResourceAdmittedList.c \ + ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.c \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.c \ + ngap/ASN_NGAP_PDUSessionResourceHandoverList.c \ + ngap/ASN_NGAP_PDUSessionResourceHandoverItem.c \ + ngap/ASN_NGAP_PDUSessionResourceInformationList.c \ + ngap/ASN_NGAP_PDUSessionResourceInformationItem.c \ + ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.c \ + ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c \ + ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.c \ + ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.c \ + ngap/ASN_NGAP_PDUSessionResourceListHORqd.c \ + ngap/ASN_NGAP_PDUSessionResourceItemHORqd.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceNotifyList.c \ + ngap/ASN_NGAP_PDUSessionResourceNotifyItem.c \ + ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.c \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.c \ + ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.c \ + ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.c \ + ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.c \ + ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.c \ + ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.c \ + ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c \ + ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.c \ + ngap/ASN_NGAP_PDUSessionResourceSwitchedList.c \ + ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.c \ + ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.c \ + ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.c \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.c \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.c \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.c \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.c \ + ngap/ASN_NGAP_PDUSessionType.c \ + ngap/ASN_NGAP_PDUSessionUsageReport.c \ + ngap/ASN_NGAP_PEIPSassistanceInformation.c \ + ngap/ASN_NGAP_Periodicity.c \ + ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.c \ + ngap/ASN_NGAP_PLMNIdentity.c \ + ngap/ASN_NGAP_PLMNAreaBasedQMC.c \ + ngap/ASN_NGAP_PLMNListforQMC.c \ + ngap/ASN_NGAP_PLMNSupportList.c \ + ngap/ASN_NGAP_PLMNSupportItem.c \ + ngap/ASN_NGAP_PNI-NPN-MobilityInformation.c \ + ngap/ASN_NGAP_PortNumber.c \ + ngap/ASN_NGAP_Pre-emptionCapability.c \ + ngap/ASN_NGAP_Pre-emptionVulnerability.c \ + ngap/ASN_NGAP_PriorityLevelARP.c \ + ngap/ASN_NGAP_PriorityLevelQos.c \ + ngap/ASN_NGAP_PWSFailedCellIDList.c \ + ngap/ASN_NGAP_QMCConfigInfo.c \ + ngap/ASN_NGAP_QMCDeactivation.c \ + ngap/ASN_NGAP_QoEReferenceList.c \ + ngap/ASN_NGAP_QoEReference.c \ + ngap/ASN_NGAP_QosCharacteristics.c \ + ngap/ASN_NGAP_QosFlowAcceptedList.c \ + ngap/ASN_NGAP_QosFlowAcceptedItem.c \ + ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.c \ + ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.c \ + ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.c \ + ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.c \ + ngap/ASN_NGAP_QosFlowFeedbackList.c \ + ngap/ASN_NGAP_QosFlowFeedbackItem.c \ + ngap/ASN_NGAP_QosFlowIdentifier.c \ + ngap/ASN_NGAP_QosFlowInformationList.c \ + ngap/ASN_NGAP_QosFlowInformationItem.c \ + ngap/ASN_NGAP_QosFlowLevelQosParameters.c \ + ngap/ASN_NGAP_QosMonitoringRequest.c \ + ngap/ASN_NGAP_QosMonitoringReportingFrequency.c \ + ngap/ASN_NGAP_QoSFlowList.c \ + ngap/ASN_NGAP_QosFlowListWithCause.c \ + ngap/ASN_NGAP_QosFlowWithCauseItem.c \ + ngap/ASN_NGAP_QosFlowModifyConfirmList.c \ + ngap/ASN_NGAP_QosFlowModifyConfirmItem.c \ + ngap/ASN_NGAP_QosFlowNotifyList.c \ + ngap/ASN_NGAP_QosFlowNotifyItem.c \ + ngap/ASN_NGAP_QosFlowParametersList.c \ + ngap/ASN_NGAP_QosFlowParametersItem.c \ + ngap/ASN_NGAP_QosFlowPerTNLInformation.c \ + ngap/ASN_NGAP_QosFlowPerTNLInformationList.c \ + ngap/ASN_NGAP_QosFlowPerTNLInformationItem.c \ + ngap/ASN_NGAP_QosFlowSetupRequestList.c \ + ngap/ASN_NGAP_QosFlowSetupRequestItem.c \ + ngap/ASN_NGAP_QosFlowListWithDataForwarding.c \ + ngap/ASN_NGAP_QosFlowItemWithDataForwarding.c \ + ngap/ASN_NGAP_QosFlowToBeForwardedList.c \ + ngap/ASN_NGAP_QosFlowToBeForwardedItem.c \ + ngap/ASN_NGAP_QoSFlowsUsageReportList.c \ + ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c \ + ngap/ASN_NGAP_Range.c \ + ngap/ASN_NGAP_RANNodeName.c \ + ngap/ASN_NGAP_RANNodeNameVisibleString.c \ + ngap/ASN_NGAP_RANNodeNameUTF8String.c \ + ngap/ASN_NGAP_RANPagingPriority.c \ + ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.c \ + ngap/ASN_NGAP_RAN-UE-NGAP-ID.c \ + ngap/ASN_NGAP_RAT-Information.c \ + ngap/ASN_NGAP_RATRestrictions.c \ + ngap/ASN_NGAP_RATRestrictions-Item.c \ + ngap/ASN_NGAP_RATRestrictionInformation.c \ + ngap/ASN_NGAP_RecommendedCellsForPaging.c \ + ngap/ASN_NGAP_RecommendedCellList.c \ + ngap/ASN_NGAP_RecommendedCellItem.c \ + ngap/ASN_NGAP_RecommendedRANNodesForPaging.c \ + ngap/ASN_NGAP_RecommendedRANNodeList.c \ + ngap/ASN_NGAP_RecommendedRANNodeItem.c \ + ngap/ASN_NGAP_RedCapIndication.c \ + ngap/ASN_NGAP_RedirectionVoiceFallback.c \ + ngap/ASN_NGAP_RedundantPDUSessionInformation.c \ + ngap/ASN_NGAP_RedundantQosFlowIndicator.c \ + ngap/ASN_NGAP_ReflectiveQosAttribute.c \ + ngap/ASN_NGAP_RelativeAMFCapacity.c \ + ngap/ASN_NGAP_ReportArea.c \ + ngap/ASN_NGAP_RepetitionPeriod.c \ + ngap/ASN_NGAP_ResetAll.c \ + ngap/ASN_NGAP_ReportAmountMDT.c \ + ngap/ASN_NGAP_ReportIntervalMDT.c \ + ngap/ASN_NGAP_ExtendedReportIntervalMDT.c \ + ngap/ASN_NGAP_ResetType.c \ + ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.c \ + ngap/ASN_NGAP_RNC-ID.c \ + ngap/ASN_NGAP_RoutingID.c \ + ngap/ASN_NGAP_RRCContainer.c \ + ngap/ASN_NGAP_RRCEstablishmentCause.c \ + ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.c \ + ngap/ASN_NGAP_RRCState.c \ + ngap/ASN_NGAP_RSN.c \ + ngap/ASN_NGAP_RIMInformationTransfer.c \ + ngap/ASN_NGAP_RIMInformation.c \ + ngap/ASN_NGAP_GNBSetID.c \ + ngap/ASN_NGAP_ScheduledCommunicationTime.c \ + ngap/ASN_NGAP_SCTP-TLAs.c \ + ngap/ASN_NGAP_SD.c \ + ngap/ASN_NGAP_SecondaryRATUsageInformation.c \ + ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.c \ + ngap/ASN_NGAP_SecurityContext.c \ + ngap/ASN_NGAP_SecurityIndication.c \ + ngap/ASN_NGAP_SecurityKey.c \ + ngap/ASN_NGAP_SecurityResult.c \ + ngap/ASN_NGAP_SensorMeasurementConfiguration.c \ + ngap/ASN_NGAP_SensorMeasConfigNameList.c \ + ngap/ASN_NGAP_SensorMeasConfigNameItem.c \ + ngap/ASN_NGAP_SensorMeasConfig.c \ + ngap/ASN_NGAP_SensorNameConfig.c \ + ngap/ASN_NGAP_SerialNumber.c \ + ngap/ASN_NGAP_ServedGUAMIList.c \ + ngap/ASN_NGAP_ServedGUAMIItem.c \ + ngap/ASN_NGAP_ServiceAreaInformation.c \ + ngap/ASN_NGAP_ServiceAreaInformation-Item.c \ + ngap/ASN_NGAP_ServiceType.c \ + ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c \ + ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.c \ + ngap/ASN_NGAP_SliceOverloadList.c \ + ngap/ASN_NGAP_SliceOverloadItem.c \ + ngap/ASN_NGAP_SliceSupportList.c \ + ngap/ASN_NGAP_SliceSupportItem.c \ + ngap/ASN_NGAP_SliceSupportListQMC.c \ + ngap/ASN_NGAP_SliceSupportQMC-Item.c \ + ngap/ASN_NGAP_SNPN-MobilityInformation.c \ + ngap/ASN_NGAP_S-NSSAI.c \ + ngap/ASN_NGAP_SONConfigurationTransfer.c \ + ngap/ASN_NGAP_SONInformation.c \ + ngap/ASN_NGAP_SONInformationReply.c \ + ngap/ASN_NGAP_SONInformationReport.c \ + ngap/ASN_NGAP_SuccessfulHandoverReportList.c \ + ngap/ASN_NGAP_SuccessfulHandoverReport-Item.c \ + ngap/ASN_NGAP_SONInformationRequest.c \ + ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c \ + ngap/ASN_NGAP_SourceNodeID.c \ + ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.c \ + ngap/ASN_NGAP_SourceRANNodeID.c \ + ngap/ASN_NGAP_SourceToTarget-TransparentContainer.c \ + ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.c \ + ngap/ASN_NGAP_SRVCCOperationPossible.c \ + ngap/ASN_NGAP_ConfiguredNSSAI.c \ + ngap/ASN_NGAP_RejectedNSSAIinPLMN.c \ + ngap/ASN_NGAP_RejectedNSSAIinTA.c \ + ngap/ASN_NGAP_SST.c \ + ngap/ASN_NGAP_SupportedTAList.c \ + ngap/ASN_NGAP_SupportedTAItem.c \ + ngap/ASN_NGAP_SuspendIndicator.c \ + ngap/ASN_NGAP_Suspend-Request-Indication.c \ + ngap/ASN_NGAP_Suspend-Response-Indication.c \ + ngap/ASN_NGAP_SurvivalTime.c \ + ngap/ASN_NGAP_TAC.c \ + ngap/ASN_NGAP_TACListInNRNTN.c \ + ngap/ASN_NGAP_TAI.c \ + ngap/ASN_NGAP_TAIBroadcastEUTRA.c \ + ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c \ + ngap/ASN_NGAP_TAIBroadcastNR.c \ + ngap/ASN_NGAP_TAIBroadcastNR-Item.c \ + ngap/ASN_NGAP_TAICancelledEUTRA.c \ + ngap/ASN_NGAP_TAICancelledEUTRA-Item.c \ + ngap/ASN_NGAP_TAICancelledNR.c \ + ngap/ASN_NGAP_TAICancelledNR-Item.c \ + ngap/ASN_NGAP_TAIListForInactive.c \ + ngap/ASN_NGAP_TAIListForInactiveItem.c \ + ngap/ASN_NGAP_TAIListForPaging.c \ + ngap/ASN_NGAP_TAIListForPagingItem.c \ + ngap/ASN_NGAP_TAIListForRestart.c \ + ngap/ASN_NGAP_TAIListForWarning.c \ + ngap/ASN_NGAP_TAINSAGSupportList.c \ + ngap/ASN_NGAP_TAINSAGSupportItem.c \ + ngap/ASN_NGAP_TargeteNB-ID.c \ + ngap/ASN_NGAP_TargetHomeENB-ID.c \ + ngap/ASN_NGAP_TargetID.c \ + ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c \ + ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c \ + ngap/ASN_NGAP_TargetNSSAI.c \ + ngap/ASN_NGAP_TargetNSSAI-Item.c \ + ngap/ASN_NGAP_TargetNSSAIInformation.c \ + ngap/ASN_NGAP_TargetRANNodeID.c \ + ngap/ASN_NGAP_TargetRANNodeID-RIM.c \ + ngap/ASN_NGAP_TargetRANNodeID-SON.c \ + ngap/ASN_NGAP_TargetRNC-ID.c \ + ngap/ASN_NGAP_TargetToSource-TransparentContainer.c \ + ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.c \ + ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.c \ + ngap/ASN_NGAP_TimeStamp.c \ + ngap/ASN_NGAP_TimeSyncAssistanceInfo.c \ + ngap/ASN_NGAP_TimeToWait.c \ + ngap/ASN_NGAP_TimeUEStayedInCell.c \ + ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.c \ + ngap/ASN_NGAP_TMGI.c \ + ngap/ASN_NGAP_TNAP-ID.c \ + ngap/ASN_NGAP_TNGF-ID.c \ + ngap/ASN_NGAP_TNLAddressWeightFactor.c \ + ngap/ASN_NGAP_TNLAssociationList.c \ + ngap/ASN_NGAP_TNLAssociationItem.c \ + ngap/ASN_NGAP_TNLAssociationUsage.c \ + ngap/ASN_NGAP_TooearlyIntersystemHO.c \ + ngap/ASN_NGAP_TraceActivation.c \ + ngap/ASN_NGAP_TraceDepth.c \ + ngap/ASN_NGAP_TrafficLoadReductionIndication.c \ + ngap/ASN_NGAP_TransportLayerAddress.c \ + ngap/ASN_NGAP_TypeOfError.c \ + ngap/ASN_NGAP_TAIBasedMDT.c \ + ngap/ASN_NGAP_TAIListforMDT.c \ + ngap/ASN_NGAP_TAIBasedQMC.c \ + ngap/ASN_NGAP_TAIListforQMC.c \ + ngap/ASN_NGAP_TABasedQMC.c \ + ngap/ASN_NGAP_TAListforQMC.c \ + ngap/ASN_NGAP_TABasedMDT.c \ + ngap/ASN_NGAP_TAListforMDT.c \ + ngap/ASN_NGAP_Threshold-RSRP.c \ + ngap/ASN_NGAP_Threshold-RSRQ.c \ + ngap/ASN_NGAP_Threshold-SINR.c \ + ngap/ASN_NGAP_TimeToTrigger.c \ + ngap/ASN_NGAP_TWAP-ID.c \ + ngap/ASN_NGAP_TWIF-ID.c \ + ngap/ASN_NGAP_TSCAssistanceInformation.c \ + ngap/ASN_NGAP_TSCTrafficCharacteristics.c \ + ngap/ASN_NGAP_UEAggregateMaximumBitRate.c \ + ngap/ASN_NGAP_UEAppLayerMeasInfoList.c \ + ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c \ + ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c \ + ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.c \ + ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.c \ + ngap/ASN_NGAP_UECapabilityInfoRequest.c \ + ngap/ASN_NGAP_UEContextRequest.c \ + ngap/ASN_NGAP_UEContextResumeRequestTransfer.c \ + ngap/ASN_NGAP_UEContextResumeResponseTransfer.c \ + ngap/ASN_NGAP_UEContextSuspendRequestTransfer.c \ + ngap/ASN_NGAP_UE-DifferentiationInfo.c \ + ngap/ASN_NGAP_UEHistoryInformation.c \ + ngap/ASN_NGAP_UEHistoryInformationFromTheUE.c \ + ngap/ASN_NGAP_UEIdentityIndexValue.c \ + ngap/ASN_NGAP_UE-NGAP-IDs.c \ + ngap/ASN_NGAP_UE-NGAP-ID-pair.c \ + ngap/ASN_NGAP_UEPagingIdentity.c \ + ngap/ASN_NGAP_UEPresence.c \ + ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.c \ + ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.c \ + ngap/ASN_NGAP_UERadioCapability.c \ + ngap/ASN_NGAP_UERadioCapabilityForPaging.c \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.c \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.c \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.c \ + ngap/ASN_NGAP_UERadioCapabilityID.c \ + ngap/ASN_NGAP_UERetentionInformation.c \ + ngap/ASN_NGAP_UERLFReportContainer.c \ + ngap/ASN_NGAP_UESecurityCapabilities.c \ + ngap/ASN_NGAP_UESliceMaximumBitRateList.c \ + ngap/ASN_NGAP_UESliceMaximumBitRateItem.c \ + ngap/ASN_NGAP_UE-UP-CIoT-Support.c \ + ngap/ASN_NGAP_UL-CP-SecurityInformation.c \ + ngap/ASN_NGAP_UL-NAS-MAC.c \ + ngap/ASN_NGAP_UL-NAS-Count.c \ + ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c \ + ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c \ + ngap/ASN_NGAP_UnavailableGUAMIList.c \ + ngap/ASN_NGAP_UnavailableGUAMIItem.c \ + ngap/ASN_NGAP_ULForwarding.c \ + ngap/ASN_NGAP_UpdateFeedback.c \ + ngap/ASN_NGAP_UPTransportLayerInformation.c \ + ngap/ASN_NGAP_UPTransportLayerInformationList.c \ + ngap/ASN_NGAP_UPTransportLayerInformationItem.c \ + ngap/ASN_NGAP_UPTransportLayerInformationPairList.c \ + ngap/ASN_NGAP_UPTransportLayerInformationPairItem.c \ + ngap/ASN_NGAP_URI-address.c \ + ngap/ASN_NGAP_UserLocationInformation.c \ + ngap/ASN_NGAP_UserLocationInformationEUTRA.c \ + ngap/ASN_NGAP_UserLocationInformationN3IWF.c \ + ngap/ASN_NGAP_UserLocationInformationTNGF.c \ + ngap/ASN_NGAP_UserLocationInformationTWIF.c \ + ngap/ASN_NGAP_UserLocationInformationW-AGF.c \ + ngap/ASN_NGAP_UserLocationInformationNR.c \ + ngap/ASN_NGAP_UserPlaneSecurityInformation.c \ + ngap/ASN_NGAP_VolumeTimedReportList.c \ + ngap/ASN_NGAP_VolumeTimedReport-Item.c \ + ngap/ASN_NGAP_W-AGF-ID.c \ + ngap/ASN_NGAP_WarningAreaCoordinates.c \ + ngap/ASN_NGAP_WarningAreaList.c \ + ngap/ASN_NGAP_WarningMessageContents.c \ + ngap/ASN_NGAP_WarningSecurityInfo.c \ + ngap/ASN_NGAP_WarningType.c \ + ngap/ASN_NGAP_WLANMeasurementConfiguration.c \ + ngap/ASN_NGAP_WLANMeasConfigNameList.c \ + ngap/ASN_NGAP_WLANMeasConfigNameItem.c \ + ngap/ASN_NGAP_WLANMeasConfig.c \ + ngap/ASN_NGAP_WLANName.c \ + ngap/ASN_NGAP_WUS-Assistance-Information.c \ + ngap/ASN_NGAP_XnExtTLAs.c \ + ngap/ASN_NGAP_XnExtTLA-Item.c \ + ngap/ASN_NGAP_XnGTP-TLAs.c \ + ngap/ASN_NGAP_XnTLAs.c \ + ngap/ASN_NGAP_XnTNLConfigurationInfo.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupRequest.c \ + ngap/ASN_NGAP_PDUSessionResourceSetupResponse.c \ + ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.c \ + ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyRequest.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyResponse.c \ + ngap/ASN_NGAP_PDUSessionResourceNotify.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndication.c \ + ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.c \ + ngap/ASN_NGAP_InitialContextSetupRequest.c \ + ngap/ASN_NGAP_InitialContextSetupResponse.c \ + ngap/ASN_NGAP_InitialContextSetupFailure.c \ + ngap/ASN_NGAP_UEContextReleaseRequest.c \ + ngap/ASN_NGAP_UEContextReleaseCommand.c \ + ngap/ASN_NGAP_UEContextReleaseComplete.c \ + ngap/ASN_NGAP_UEContextResumeRequest.c \ + ngap/ASN_NGAP_UEContextResumeResponse.c \ + ngap/ASN_NGAP_UEContextResumeFailure.c \ + ngap/ASN_NGAP_UEContextSuspendRequest.c \ + ngap/ASN_NGAP_UEContextSuspendResponse.c \ + ngap/ASN_NGAP_UEContextSuspendFailure.c \ + ngap/ASN_NGAP_UEContextModificationRequest.c \ + ngap/ASN_NGAP_UEContextModificationResponse.c \ + ngap/ASN_NGAP_UEContextModificationFailure.c \ + ngap/ASN_NGAP_RRCInactiveTransitionReport.c \ + ngap/ASN_NGAP_RetrieveUEInformation.c \ + ngap/ASN_NGAP_UEInformationTransfer.c \ + ngap/ASN_NGAP_RANCPRelocationIndication.c \ + ngap/ASN_NGAP_HandoverRequired.c \ + ngap/ASN_NGAP_HandoverCommand.c \ + ngap/ASN_NGAP_HandoverPreparationFailure.c \ + ngap/ASN_NGAP_HandoverRequest.c \ + ngap/ASN_NGAP_HandoverRequestAcknowledge.c \ + ngap/ASN_NGAP_HandoverFailure.c \ + ngap/ASN_NGAP_HandoverNotify.c \ + ngap/ASN_NGAP_PathSwitchRequest.c \ + ngap/ASN_NGAP_PathSwitchRequestAcknowledge.c \ + ngap/ASN_NGAP_PathSwitchRequestFailure.c \ + ngap/ASN_NGAP_HandoverCancel.c \ + ngap/ASN_NGAP_HandoverCancelAcknowledge.c \ + ngap/ASN_NGAP_HandoverSuccess.c \ + ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.c \ + ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.c \ + ngap/ASN_NGAP_UplinkRANStatusTransfer.c \ + ngap/ASN_NGAP_DownlinkRANStatusTransfer.c \ + ngap/ASN_NGAP_Paging.c \ + ngap/ASN_NGAP_InitialUEMessage.c \ + ngap/ASN_NGAP_DownlinkNASTransport.c \ + ngap/ASN_NGAP_UplinkNASTransport.c \ + ngap/ASN_NGAP_NASNonDeliveryIndication.c \ + ngap/ASN_NGAP_RerouteNASRequest.c \ + ngap/ASN_NGAP_NGSetupRequest.c \ + ngap/ASN_NGAP_NGSetupResponse.c \ + ngap/ASN_NGAP_NGSetupFailure.c \ + ngap/ASN_NGAP_RANConfigurationUpdate.c \ + ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.c \ + ngap/ASN_NGAP_RANConfigurationUpdateFailure.c \ + ngap/ASN_NGAP_AMFConfigurationUpdate.c \ + ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.c \ + ngap/ASN_NGAP_AMFConfigurationUpdateFailure.c \ + ngap/ASN_NGAP_AMFStatusIndication.c \ + ngap/ASN_NGAP_NGReset.c \ + ngap/ASN_NGAP_NGResetAcknowledge.c \ + ngap/ASN_NGAP_ErrorIndication.c \ + ngap/ASN_NGAP_OverloadStart.c \ + ngap/ASN_NGAP_OverloadStop.c \ + ngap/ASN_NGAP_UplinkRANConfigurationTransfer.c \ + ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.c \ + ngap/ASN_NGAP_WriteReplaceWarningRequest.c \ + ngap/ASN_NGAP_WriteReplaceWarningResponse.c \ + ngap/ASN_NGAP_PWSCancelRequest.c \ + ngap/ASN_NGAP_PWSCancelResponse.c \ + ngap/ASN_NGAP_PWSRestartIndication.c \ + ngap/ASN_NGAP_PWSFailureIndication.c \ + ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.c \ + ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.c \ + ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.c \ + ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.c \ + ngap/ASN_NGAP_TraceStart.c \ + ngap/ASN_NGAP_TraceFailureIndication.c \ + ngap/ASN_NGAP_DeactivateTrace.c \ + ngap/ASN_NGAP_CellTrafficTrace.c \ + ngap/ASN_NGAP_LocationReportingControl.c \ + ngap/ASN_NGAP_LocationReportingFailureIndication.c \ + ngap/ASN_NGAP_LocationReport.c \ + ngap/ASN_NGAP_UETNLABindingReleaseRequest.c \ + ngap/ASN_NGAP_UERadioCapabilityInfoIndication.c \ + ngap/ASN_NGAP_UERadioCapabilityCheckRequest.c \ + ngap/ASN_NGAP_UERadioCapabilityCheckResponse.c \ + ngap/ASN_NGAP_PrivateMessage.c \ + ngap/ASN_NGAP_SecondaryRATDataUsageReport.c \ + ngap/ASN_NGAP_UplinkRIMInformationTransfer.c \ + ngap/ASN_NGAP_DownlinkRIMInformationTransfer.c \ + ngap/ASN_NGAP_ConnectionEstablishmentIndication.c \ + ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.c \ + ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.c \ + ngap/ASN_NGAP_AMFCPRelocationIndication.c \ + ngap/ASN_NGAP_BroadcastSessionSetupRequest.c \ + ngap/ASN_NGAP_BroadcastSessionSetupResponse.c \ + ngap/ASN_NGAP_BroadcastSessionSetupFailure.c \ + ngap/ASN_NGAP_BroadcastSessionModificationRequest.c \ + ngap/ASN_NGAP_BroadcastSessionModificationResponse.c \ + ngap/ASN_NGAP_BroadcastSessionModificationFailure.c \ + ngap/ASN_NGAP_BroadcastSessionReleaseRequest.c \ + ngap/ASN_NGAP_BroadcastSessionReleaseRequired.c \ + ngap/ASN_NGAP_BroadcastSessionReleaseResponse.c \ + ngap/ASN_NGAP_DistributionSetupRequest.c \ + ngap/ASN_NGAP_DistributionSetupResponse.c \ + ngap/ASN_NGAP_DistributionSetupFailure.c \ + ngap/ASN_NGAP_DistributionReleaseRequest.c \ + ngap/ASN_NGAP_DistributionReleaseResponse.c \ + ngap/ASN_NGAP_MulticastSessionActivationRequest.c \ + ngap/ASN_NGAP_MulticastSessionActivationResponse.c \ + ngap/ASN_NGAP_MulticastSessionActivationFailure.c \ + ngap/ASN_NGAP_MulticastSessionDeactivationRequest.c \ + ngap/ASN_NGAP_MulticastSessionDeactivationResponse.c \ + ngap/ASN_NGAP_MulticastSessionUpdateRequest.c \ + ngap/ASN_NGAP_MulticastSessionUpdateResponse.c \ + ngap/ASN_NGAP_MulticastSessionUpdateFailure.c \ + ngap/ASN_NGAP_MulticastGroupPaging.c \ + ngap/ASN_NGAP_NGAP-PDU.c \ + ngap/ASN_NGAP_InitiatingMessage.c \ + ngap/ASN_NGAP_SuccessfulOutcome.c \ + ngap/ASN_NGAP_UnsuccessfulOutcome.c + +ASN_MODULE_HDRS= \ + ngap/ASN_NGAP_Criticality.h \ + ngap/ASN_NGAP_Presence.h \ + ngap/ASN_NGAP_PrivateIE-ID.h \ + ngap/ASN_NGAP_ProcedureCode.h \ + ngap/ASN_NGAP_ProtocolExtensionID.h \ + ngap/ASN_NGAP_ProtocolIE-ID.h \ + ngap/ASN_NGAP_TriggeringMessage.h \ + ngap/ASN_NGAP_ProtocolIE-Container.h \ + ngap/ASN_NGAP_ProtocolIE-SingleContainer.h \ + ngap/ASN_NGAP_ProtocolIE-Field.h \ + ngap/ASN_NGAP_ProtocolIE-ContainerPair.h \ + ngap/ASN_NGAP_ProtocolIE-FieldPair.h \ + ngap/ASN_NGAP_ProtocolIE-ContainerList.h \ + ngap/ASN_NGAP_ProtocolIE-ContainerPairList.h \ + ngap/ASN_NGAP_ProtocolExtensionContainer.h \ + ngap/ASN_NGAP_ProtocolExtensionField.h \ + ngap/ASN_NGAP_PrivateIE-Container.h \ + ngap/ASN_NGAP_PrivateIE-Field.h \ + ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h \ + ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h \ + ngap/ASN_NGAP_AdditionalQosFlowInformation.h \ + ngap/ASN_NGAP_AllocationAndRetentionPriority.h \ + ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h \ + ngap/ASN_NGAP_AllowedNSSAI.h \ + ngap/ASN_NGAP_AllowedNSSAI-Item.h \ + ngap/ASN_NGAP_Allowed-PNI-NPN-List.h \ + ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h \ + ngap/ASN_NGAP_AllowedTACs.h \ + ngap/ASN_NGAP_AlternativeQoSParaSetIndex.h \ + ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h \ + ngap/ASN_NGAP_AlternativeQoSParaSetList.h \ + ngap/ASN_NGAP_AlternativeQoSParaSetItem.h \ + ngap/ASN_NGAP_AMFName.h \ + ngap/ASN_NGAP_AMFNameVisibleString.h \ + ngap/ASN_NGAP_AMFNameUTF8String.h \ + ngap/ASN_NGAP_AMFPagingTarget.h \ + ngap/ASN_NGAP_AMFPointer.h \ + ngap/ASN_NGAP_AMFRegionID.h \ + ngap/ASN_NGAP_AMFSetID.h \ + ngap/ASN_NGAP_AMF-TNLAssociationSetupList.h \ + ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToAddList.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.h \ + ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.h \ + ngap/ASN_NGAP_AMF-UE-NGAP-ID.h \ + ngap/ASN_NGAP_AreaOfInterest.h \ + ngap/ASN_NGAP_AreaOfInterestCellList.h \ + ngap/ASN_NGAP_AreaOfInterestCellItem.h \ + ngap/ASN_NGAP_AreaOfInterestList.h \ + ngap/ASN_NGAP_AreaOfInterestItem.h \ + ngap/ASN_NGAP_AreaOfInterestRANNodeList.h \ + ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h \ + ngap/ASN_NGAP_AreaOfInterestTAIList.h \ + ngap/ASN_NGAP_AreaOfInterestTAIItem.h \ + ngap/ASN_NGAP_AssistanceDataForPaging.h \ + ngap/ASN_NGAP_AssistanceDataForRecommendedCells.h \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h \ + ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h \ + ngap/ASN_NGAP_AssociatedQosFlowList.h \ + ngap/ASN_NGAP_AssociatedQosFlowItem.h \ + ngap/ASN_NGAP_AuthenticatedIndication.h \ + ngap/ASN_NGAP_AveragingWindow.h \ + ngap/ASN_NGAP_AreaScopeOfMDT-NR.h \ + ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h \ + ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h \ + ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h \ + ngap/ASN_NGAP_AreaScopeOfQMC.h \ + ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.h \ + ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.h \ + ngap/ASN_NGAP_BeamMeasurementsReportQuantity.h \ + ngap/ASN_NGAP_BitRate.h \ + ngap/ASN_NGAP_BroadcastCancelledAreaList.h \ + ngap/ASN_NGAP_BroadcastCompletedAreaList.h \ + ngap/ASN_NGAP_BroadcastPLMNList.h \ + ngap/ASN_NGAP_BroadcastPLMNItem.h \ + ngap/ASN_NGAP_BluetoothMeasurementConfiguration.h \ + ngap/ASN_NGAP_BluetoothMeasConfigNameList.h \ + ngap/ASN_NGAP_BluetoothMeasConfigNameItem.h \ + ngap/ASN_NGAP_BluetoothMeasConfig.h \ + ngap/ASN_NGAP_BluetoothName.h \ + ngap/ASN_NGAP_BurstArrivalTime.h \ + ngap/ASN_NGAP_CAG-ID.h \ + ngap/ASN_NGAP_CancelAllWarningMessages.h \ + ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h \ + ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h \ + ngap/ASN_NGAP_CancelledCellsInEAI-NR.h \ + ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.h \ + ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h \ + ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h \ + ngap/ASN_NGAP_CancelledCellsInTAI-NR.h \ + ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.h \ + ngap/ASN_NGAP_CandidateCellList.h \ + ngap/ASN_NGAP_CandidateCellItem.h \ + ngap/ASN_NGAP_CandidateCell.h \ + ngap/ASN_NGAP_CandidateCellID.h \ + ngap/ASN_NGAP_CandidatePCI.h \ + ngap/ASN_NGAP_Cause.h \ + ngap/ASN_NGAP_CauseMisc.h \ + ngap/ASN_NGAP_CauseNas.h \ + ngap/ASN_NGAP_CauseProtocol.h \ + ngap/ASN_NGAP_CauseRadioNetwork.h \ + ngap/ASN_NGAP_CauseTransport.h \ + ngap/ASN_NGAP_Cell-CAGInformation.h \ + ngap/ASN_NGAP_CellCAGList.h \ + ngap/ASN_NGAP_CellIDBroadcastEUTRA.h \ + ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h \ + ngap/ASN_NGAP_CellIDBroadcastNR.h \ + ngap/ASN_NGAP_CellIDBroadcastNR-Item.h \ + ngap/ASN_NGAP_CellIDCancelledEUTRA.h \ + ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h \ + ngap/ASN_NGAP_CellIDCancelledNR.h \ + ngap/ASN_NGAP_CellIDCancelledNR-Item.h \ + ngap/ASN_NGAP_CellIDListForRestart.h \ + ngap/ASN_NGAP_CellSize.h \ + ngap/ASN_NGAP_CellType.h \ + ngap/ASN_NGAP_CEmodeBSupport-Indicator.h \ + ngap/ASN_NGAP_CEmodeBrestricted.h \ + ngap/ASN_NGAP_CNAssistedRANTuning.h \ + ngap/ASN_NGAP_CNsubgroupID.h \ + ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.h \ + ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h \ + ngap/ASN_NGAP_CNTypeRestrictionsForServing.h \ + ngap/ASN_NGAP_CommonNetworkInstance.h \ + ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h \ + ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h \ + ngap/ASN_NGAP_CompletedCellsInEAI-NR.h \ + ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.h \ + ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h \ + ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h \ + ngap/ASN_NGAP_CompletedCellsInTAI-NR.h \ + ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.h \ + ngap/ASN_NGAP_ConcurrentWarningMessageInd.h \ + ngap/ASN_NGAP_ConfidentialityProtectionIndication.h \ + ngap/ASN_NGAP_ConfidentialityProtectionResult.h \ + ngap/ASN_NGAP_ConfiguredTACIndication.h \ + ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h \ + ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h \ + ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h \ + ngap/ASN_NGAP_CoverageEnhancementLevel.h \ + ngap/ASN_NGAP_CPTransportLayerInformation.h \ + ngap/ASN_NGAP_CriticalityDiagnostics.h \ + ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.h \ + ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.h \ + ngap/ASN_NGAP_CellBasedMDT-NR.h \ + ngap/ASN_NGAP_CellIdListforMDT-NR.h \ + ngap/ASN_NGAP_CellBasedMDT-EUTRA.h \ + ngap/ASN_NGAP_CellBasedQMC.h \ + ngap/ASN_NGAP_CellIdListforQMC.h \ + ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h \ + ngap/ASN_NGAP_DataCodingScheme.h \ + ngap/ASN_NGAP_DataForwardingAccepted.h \ + ngap/ASN_NGAP_DataForwardingNotPossible.h \ + ngap/ASN_NGAP_DataForwardingResponseDRBList.h \ + ngap/ASN_NGAP_DataForwardingResponseDRBItem.h \ + ngap/ASN_NGAP_DAPSRequestInfo.h \ + ngap/ASN_NGAP_DAPSResponseInfoList.h \ + ngap/ASN_NGAP_DAPSResponseInfoItem.h \ + ngap/ASN_NGAP_DAPSResponseInfo.h \ + ngap/ASN_NGAP_DataForwardingResponseERABList.h \ + ngap/ASN_NGAP_DataForwardingResponseERABListItem.h \ + ngap/ASN_NGAP_DelayCritical.h \ + ngap/ASN_NGAP_DL-CP-SecurityInformation.h \ + ngap/ASN_NGAP_DL-NAS-MAC.h \ + ngap/ASN_NGAP_DLForwarding.h \ + ngap/ASN_NGAP_DL-NGU-TNLInformationReused.h \ + ngap/ASN_NGAP_DirectForwardingPathAvailability.h \ + ngap/ASN_NGAP_DRB-ID.h \ + ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.h \ + ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.h \ + ngap/ASN_NGAP_DRBStatusDL.h \ + ngap/ASN_NGAP_DRBStatusDL12.h \ + ngap/ASN_NGAP_DRBStatusDL18.h \ + ngap/ASN_NGAP_DRBStatusUL.h \ + ngap/ASN_NGAP_DRBStatusUL12.h \ + ngap/ASN_NGAP_DRBStatusUL18.h \ + ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h \ + ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h \ + ngap/ASN_NGAP_Dynamic5QIDescriptor.h \ + ngap/ASN_NGAP_EarlyMeasurement.h \ + ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h \ + ngap/ASN_NGAP_ProcedureStageChoice.h \ + ngap/ASN_NGAP_FirstDLCount.h \ + ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h \ + ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h \ + ngap/ASN_NGAP_EDT-Session.h \ + ngap/ASN_NGAP_EmergencyAreaID.h \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.h \ + ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.h \ + ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h \ + ngap/ASN_NGAP_EmergencyAreaIDList.h \ + ngap/ASN_NGAP_EmergencyAreaIDListForRestart.h \ + ngap/ASN_NGAP_EmergencyFallbackIndicator.h \ + ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.h \ + ngap/ASN_NGAP_EmergencyServiceTargetCN.h \ + ngap/ASN_NGAP_ENB-ID.h \ + ngap/ASN_NGAP_Enhanced-CoverageRestriction.h \ + ngap/ASN_NGAP_Extended-ConnectedTime.h \ + ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.h \ + ngap/ASN_NGAP_EndpointIPAddressAndPort.h \ + ngap/ASN_NGAP_EndIndication.h \ + ngap/ASN_NGAP_EquivalentPLMNs.h \ + ngap/ASN_NGAP_EPS-TAC.h \ + ngap/ASN_NGAP_EPS-TAI.h \ + ngap/ASN_NGAP_E-RAB-ID.h \ + ngap/ASN_NGAP_E-RABInformationList.h \ + ngap/ASN_NGAP_E-RABInformationItem.h \ + ngap/ASN_NGAP_EUTRACellIdentity.h \ + ngap/ASN_NGAP_EUTRA-CGI.h \ + ngap/ASN_NGAP_EUTRA-CGIList.h \ + ngap/ASN_NGAP_EUTRA-CGIListForWarning.h \ + ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.h \ + ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h \ + ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h \ + ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h \ + ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h \ + ngap/ASN_NGAP_EventType.h \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.h \ + ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.h \ + ngap/ASN_NGAP_ExpectedActivityPeriod.h \ + ngap/ASN_NGAP_ExpectedHOInterval.h \ + ngap/ASN_NGAP_ExpectedIdlePeriod.h \ + ngap/ASN_NGAP_ExpectedUEActivityBehaviour.h \ + ngap/ASN_NGAP_ExpectedUEBehaviour.h \ + ngap/ASN_NGAP_ExpectedUEMobility.h \ + ngap/ASN_NGAP_ExpectedUEMovingTrajectory.h \ + ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.h \ + ngap/ASN_NGAP_Extended-AMFName.h \ + ngap/ASN_NGAP_ExtendedPacketDelayBudget.h \ + ngap/ASN_NGAP_Extended-RANNodeName.h \ + ngap/ASN_NGAP_ExtendedRATRestrictionInformation.h \ + ngap/ASN_NGAP_ExtendedRNC-ID.h \ + ngap/ASN_NGAP_ExtendedSliceSupportList.h \ + ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.h \ + ngap/ASN_NGAP_EventTrigger.h \ + ngap/ASN_NGAP_EventL1LoggedMDTConfig.h \ + ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.h \ + ngap/ASN_NGAP_FailureIndication.h \ + ngap/ASN_NGAP_FiveG-ProSeAuthorized.h \ + ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h \ + ngap/ASN_NGAP_FiveGProSeDirectCommunication.h \ + ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h \ + ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h \ + ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h \ + ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.h \ + ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h \ + ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h \ + ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h \ + ngap/ASN_NGAP_FiveG-S-TMSI.h \ + ngap/ASN_NGAP_FiveG-TMSI.h \ + ngap/ASN_NGAP_FiveQI.h \ + ngap/ASN_NGAP_ForbiddenAreaInformation.h \ + ngap/ASN_NGAP_ForbiddenAreaInformation-Item.h \ + ngap/ASN_NGAP_ForbiddenTACs.h \ + ngap/ASN_NGAP_FromEUTRANtoNGRAN.h \ + ngap/ASN_NGAP_FromNGRANtoEUTRAN.h \ + ngap/ASN_NGAP_GBR-QosInformation.h \ + ngap/ASN_NGAP_GlobalCable-ID.h \ + ngap/ASN_NGAP_GlobalCable-ID-new.h \ + ngap/ASN_NGAP_GlobalENB-ID.h \ + ngap/ASN_NGAP_GlobalGNB-ID.h \ + ngap/ASN_NGAP_GlobalN3IWF-ID.h \ + ngap/ASN_NGAP_GlobalLine-ID.h \ + ngap/ASN_NGAP_GlobalLineIdentity.h \ + ngap/ASN_NGAP_GlobalNgENB-ID.h \ + ngap/ASN_NGAP_GlobalRANNodeID.h \ + ngap/ASN_NGAP_GlobalTNGF-ID.h \ + ngap/ASN_NGAP_GlobalTWIF-ID.h \ + ngap/ASN_NGAP_GlobalW-AGF-ID.h \ + ngap/ASN_NGAP_GNB-ID.h \ + ngap/ASN_NGAP_GTP-TEID.h \ + ngap/ASN_NGAP_GTPTunnel.h \ + ngap/ASN_NGAP_GUAMI.h \ + ngap/ASN_NGAP_GUAMIType.h \ + ngap/ASN_NGAP_HandoverCommandTransfer.h \ + ngap/ASN_NGAP_HandoverFlag.h \ + ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.h \ + ngap/ASN_NGAP_HandoverRequiredTransfer.h \ + ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_HandoverType.h \ + ngap/ASN_NGAP_HashedUEIdentityIndexValue.h \ + ngap/ASN_NGAP_HFCNode-ID.h \ + ngap/ASN_NGAP_HFCNode-ID-new.h \ + ngap/ASN_NGAP_HOReport.h \ + ngap/ASN_NGAP_Hysteresis.h \ + ngap/ASN_NGAP_IAB-Authorized.h \ + ngap/ASN_NGAP_IAB-Supported.h \ + ngap/ASN_NGAP_IABNodeIndication.h \ + ngap/ASN_NGAP_IMSVoiceSupportIndicator.h \ + ngap/ASN_NGAP_IndexToRFSP.h \ + ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h \ + ngap/ASN_NGAP_IntegrityProtectionIndication.h \ + ngap/ASN_NGAP_IntegrityProtectionResult.h \ + ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.h \ + ngap/ASN_NGAP_InterfacesToTrace.h \ + ngap/ASN_NGAP_ImmediateMDTNr.h \ + ngap/ASN_NGAP_InterSystemFailureIndication.h \ + ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.h \ + ngap/ASN_NGAP_IntersystemSONTransferType.h \ + ngap/ASN_NGAP_IntersystemSONeNBID.h \ + ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h \ + ngap/ASN_NGAP_IntersystemSONInformation.h \ + ngap/ASN_NGAP_IntersystemSONInformationRequest.h \ + ngap/ASN_NGAP_IntersystemCellActivationRequest.h \ + ngap/ASN_NGAP_CellsToActivateList.h \ + ngap/ASN_NGAP_IntersystemResourceStatusRequest.h \ + ngap/ASN_NGAP_ReportingSystem.h \ + ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h \ + ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h \ + ngap/ASN_NGAP_EUTRAN-CellToReportList.h \ + ngap/ASN_NGAP_EUTRAN-CellToReportItem.h \ + ngap/ASN_NGAP_NGRAN-CellToReportList.h \ + ngap/ASN_NGAP_NGRAN-CellToReportItem.h \ + ngap/ASN_NGAP_ReportCharacteristics.h \ + ngap/ASN_NGAP_ReportType.h \ + ngap/ASN_NGAP_EventBasedReportingIEs.h \ + ngap/ASN_NGAP_IntersystemResourceThreshold.h \ + ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.h \ + ngap/ASN_NGAP_PeriodicReportingIEs.h \ + ngap/ASN_NGAP_ReportingPeriodicity.h \ + ngap/ASN_NGAP_IntersystemSONInformationReply.h \ + ngap/ASN_NGAP_IntersystemCellActivationReply.h \ + ngap/ASN_NGAP_ActivatedCellList.h \ + ngap/ASN_NGAP_IntersystemResourceStatusReply.h \ + ngap/ASN_NGAP_IntersystemSONInformationReport.h \ + ngap/ASN_NGAP_IntersystemCellStateIndication.h \ + ngap/ASN_NGAP_NotificationCellList.h \ + ngap/ASN_NGAP_NotificationCell-Item.h \ + ngap/ASN_NGAP_IntersystemResourceStatusReport.h \ + ngap/ASN_NGAP_ResourceStatusReportingSystem.h \ + ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h \ + ngap/ASN_NGAP_EUTRAN-CellReportList.h \ + ngap/ASN_NGAP_EUTRAN-CellReportItem.h \ + ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h \ + ngap/ASN_NGAP_CompositeAvailableCapacity.h \ + ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h \ + ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.h \ + ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h \ + ngap/ASN_NGAP_NGRAN-CellReportList.h \ + ngap/ASN_NGAP_NGRAN-CellReportItem.h \ + ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h \ + ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h \ + ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h \ + ngap/ASN_NGAP_InterSystemHOReport.h \ + ngap/ASN_NGAP_InterSystemHandoverReportType.h \ + ngap/ASN_NGAP_IntersystemUnnecessaryHO.h \ + ngap/ASN_NGAP_LAC.h \ + ngap/ASN_NGAP_LAI.h \ + ngap/ASN_NGAP_LastVisitedCellInformation.h \ + ngap/ASN_NGAP_LastVisitedCellItem.h \ + ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.h \ + ngap/ASN_NGAP_LastVisitedGERANCellInformation.h \ + ngap/ASN_NGAP_LastVisitedNGRANCellInformation.h \ + ngap/ASN_NGAP_LastVisitedPSCellList.h \ + ngap/ASN_NGAP_LastVisitedPSCellInformation.h \ + ngap/ASN_NGAP_LastVisitedUTRANCellInformation.h \ + ngap/ASN_NGAP_LineType.h \ + ngap/ASN_NGAP_LocationReportingAdditionalInfo.h \ + ngap/ASN_NGAP_LocationReportingReferenceID.h \ + ngap/ASN_NGAP_LocationReportingRequestType.h \ + ngap/ASN_NGAP_LoggedMDTNr.h \ + ngap/ASN_NGAP_LoggingInterval.h \ + ngap/ASN_NGAP_LoggingDuration.h \ + ngap/ASN_NGAP_Links-to-log.h \ + ngap/ASN_NGAP_LoggedMDTTrigger.h \ + ngap/ASN_NGAP_LTEM-Indication.h \ + ngap/ASN_NGAP_LTEUERLFReportContainer.h \ + ngap/ASN_NGAP_LTEV2XServicesAuthorized.h \ + ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h \ + ngap/ASN_NGAP_MaskedIMEISV.h \ + ngap/ASN_NGAP_MaximumDataBurstVolume.h \ + ngap/ASN_NGAP_MessageIdentifier.h \ + ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.h \ + ngap/ASN_NGAP_MBS-AreaSessionID.h \ + ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.h \ + ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.h \ + ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.h \ + ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h \ + ngap/ASN_NGAP_MBS-QoSFlowList.h \ + ngap/ASN_NGAP_MRB-ProgressInformation.h \ + ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h \ + ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h \ + ngap/ASN_NGAP_MBS-ServiceArea.h \ + ngap/ASN_NGAP_MBS-ServiceAreaInformationList.h \ + ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.h \ + ngap/ASN_NGAP_MBS-ServiceAreaInformation.h \ + ngap/ASN_NGAP_MBS-ServiceAreaCellList.h \ + ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h \ + ngap/ASN_NGAP_MBS-SessionID.h \ + ngap/ASN_NGAP_MBSSessionFailedtoSetupList.h \ + ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.h \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h \ + ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h \ + ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h \ + ngap/ASN_NGAP_MBSSessionSetupResponseList.h \ + ngap/ASN_NGAP_MBSSessionSetupResponseItem.h \ + ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h \ + ngap/ASN_NGAP_MBS-SessionFSAIDList.h \ + ngap/ASN_NGAP_MBS-SessionFSAID.h \ + ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.h \ + ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h \ + ngap/ASN_NGAP_MBS-SupportIndicator.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.h \ + ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h \ + ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h \ + ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.h \ + ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.h \ + ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_MBSSessionSetupRequestList.h \ + ngap/ASN_NGAP_MBSSessionSetupRequestItem.h \ + ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.h \ + ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.h \ + ngap/ASN_NGAP_MBSSessionToReleaseList.h \ + ngap/ASN_NGAP_MBSSessionToReleaseItem.h \ + ngap/ASN_NGAP_MBSSessionStatus.h \ + ngap/ASN_NGAP_MicoAllPLMN.h \ + ngap/ASN_NGAP_MICOModeIndication.h \ + ngap/ASN_NGAP_MobilityInformation.h \ + ngap/ASN_NGAP_ExtendedMobilityInformation.h \ + ngap/ASN_NGAP_MobilityRestrictionList.h \ + ngap/ASN_NGAP_MDT-AlignmentInfo.h \ + ngap/ASN_NGAP_MDTPLMNList.h \ + ngap/ASN_NGAP_MDTPLMNModificationList.h \ + ngap/ASN_NGAP_MDT-Configuration.h \ + ngap/ASN_NGAP_MDT-Configuration-NR.h \ + ngap/ASN_NGAP_MDT-Configuration-EUTRA.h \ + ngap/ASN_NGAP_MDT-Activation.h \ + ngap/ASN_NGAP_MDTModeNr.h \ + ngap/ASN_NGAP_MDTModeEutra.h \ + ngap/ASN_NGAP_MeasurementsToActivate.h \ + ngap/ASN_NGAP_MRB-ID.h \ + ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.h \ + ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h \ + ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.h \ + ngap/ASN_NGAP_MulticastGroupPagingAreaList.h \ + ngap/ASN_NGAP_MulticastGroupPagingAreaItem.h \ + ngap/ASN_NGAP_MBS-AreaTAIList.h \ + ngap/ASN_NGAP_MulticastGroupPagingArea.h \ + ngap/ASN_NGAP_UE-PagingList.h \ + ngap/ASN_NGAP_UE-PagingItem.h \ + ngap/ASN_NGAP_M1Configuration.h \ + ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.h \ + ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h \ + ngap/ASN_NGAP_M1ReportingTrigger.h \ + ngap/ASN_NGAP_M1ThresholdEventA2.h \ + ngap/ASN_NGAP_M1ThresholdType.h \ + ngap/ASN_NGAP_M1PeriodicReporting.h \ + ngap/ASN_NGAP_M4Configuration.h \ + ngap/ASN_NGAP_M4ReportAmountMDT.h \ + ngap/ASN_NGAP_M4period.h \ + ngap/ASN_NGAP_M5Configuration.h \ + ngap/ASN_NGAP_M5ReportAmountMDT.h \ + ngap/ASN_NGAP_M5period.h \ + ngap/ASN_NGAP_M6Configuration.h \ + ngap/ASN_NGAP_M6ReportAmountMDT.h \ + ngap/ASN_NGAP_M6report-Interval.h \ + ngap/ASN_NGAP_M7Configuration.h \ + ngap/ASN_NGAP_M7ReportAmountMDT.h \ + ngap/ASN_NGAP_M7period.h \ + ngap/ASN_NGAP_MDT-Location-Info.h \ + ngap/ASN_NGAP_MDT-Location-Information.h \ + ngap/ASN_NGAP_N3IWF-ID.h \ + ngap/ASN_NGAP_NAS-PDU.h \ + ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.h \ + ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h \ + ngap/ASN_NGAP_NB-IoT-PagingDRX.h \ + ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h \ + ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h \ + ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h \ + ngap/ASN_NGAP_NB-IoT-UEPriority.h \ + ngap/ASN_NGAP_NetworkInstance.h \ + ngap/ASN_NGAP_NewSecurityContextInd.h \ + ngap/ASN_NGAP_NextHopChainingCount.h \ + ngap/ASN_NGAP_NextPagingAreaScope.h \ + ngap/ASN_NGAP_NGAPIESupportInformationRequestList.h \ + ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.h \ + ngap/ASN_NGAP_NGAPIESupportInformationResponseList.h \ + ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.h \ + ngap/ASN_NGAP_NgENB-ID.h \ + ngap/ASN_NGAP_NotifySourceNGRANNode.h \ + ngap/ASN_NGAP_NGRAN-CGI.h \ + ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h \ + ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h \ + ngap/ASN_NGAP_NGRANTraceID.h \ + ngap/ASN_NGAP_NID.h \ + ngap/ASN_NGAP_NonDynamic5QIDescriptor.h \ + ngap/ASN_NGAP_NotAllowedTACs.h \ + ngap/ASN_NGAP_NotificationCause.h \ + ngap/ASN_NGAP_NotificationControl.h \ + ngap/ASN_NGAP_NPN-AccessInformation.h \ + ngap/ASN_NGAP_NPN-MobilityInformation.h \ + ngap/ASN_NGAP_NPN-PagingAssistanceInformation.h \ + ngap/ASN_NGAP_NPN-Support.h \ + ngap/ASN_NGAP_NRCellIdentity.h \ + ngap/ASN_NGAP_NR-CGI.h \ + ngap/ASN_NGAP_NR-CGIList.h \ + ngap/ASN_NGAP_NR-CGIListForWarning.h \ + ngap/ASN_NGAP_NR-PagingeDRXInformation.h \ + ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h \ + ngap/ASN_NGAP_NR-Paging-Time-Window.h \ + ngap/ASN_NGAP_NRencryptionAlgorithms.h \ + ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.h \ + ngap/ASN_NGAP_NRMobilityHistoryReport.h \ + ngap/ASN_NGAP_NRPPa-PDU.h \ + ngap/ASN_NGAP_NRUERLFReportContainer.h \ + ngap/ASN_NGAP_NRNTNTAIInformation.h \ + ngap/ASN_NGAP_NumberOfBroadcasts.h \ + ngap/ASN_NGAP_NumberOfBroadcastsRequested.h \ + ngap/ASN_NGAP_NRARFCN.h \ + ngap/ASN_NGAP_NRFrequencyBand.h \ + ngap/ASN_NGAP_NRFrequencyBand-List.h \ + ngap/ASN_NGAP_NRFrequencyBandItem.h \ + ngap/ASN_NGAP_NRFrequencyInfo.h \ + ngap/ASN_NGAP_NR-PCI.h \ + ngap/ASN_NGAP_NRV2XServicesAuthorized.h \ + ngap/ASN_NGAP_VehicleUE.h \ + ngap/ASN_NGAP_PedestrianUE.h \ + ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h \ + ngap/ASN_NGAP_NSAG-ID.h \ + ngap/ASN_NGAP_OnboardingSupport.h \ + ngap/ASN_NGAP_OverloadAction.h \ + ngap/ASN_NGAP_OverloadResponse.h \ + ngap/ASN_NGAP_OverloadStartNSSAIList.h \ + ngap/ASN_NGAP_OverloadStartNSSAIItem.h \ + ngap/ASN_NGAP_PacketDelayBudget.h \ + ngap/ASN_NGAP_PacketErrorRate.h \ + ngap/ASN_NGAP_PacketLossRate.h \ + ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.h \ + ngap/ASN_NGAP_PagingAttemptInformation.h \ + ngap/ASN_NGAP_PagingAttemptCount.h \ + ngap/ASN_NGAP_PagingCause.h \ + ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.h \ + ngap/ASN_NGAP_PagingDRX.h \ + ngap/ASN_NGAP_PagingOrigin.h \ + ngap/ASN_NGAP_PagingPriority.h \ + ngap/ASN_NGAP_PagingProbabilityInformation.h \ + ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h \ + ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h \ + ngap/ASN_NGAP_PathSwitchRequestTransfer.h \ + ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_PC5QoSParameters.h \ + ngap/ASN_NGAP_PC5QoSFlowList.h \ + ngap/ASN_NGAP_PC5QoSFlowItem.h \ + ngap/ASN_NGAP_PC5FlowBitRates.h \ + ngap/ASN_NGAP_PCIListForMDT.h \ + ngap/ASN_NGAP_PrivacyIndicator.h \ + ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.h \ + ngap/ASN_NGAP_PDUSessionID.h \ + ngap/ASN_NGAP_PDUSessionPairID.h \ + ngap/ASN_NGAP_PDUSessionResourceAdmittedList.h \ + ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h \ + ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h \ + ngap/ASN_NGAP_PDUSessionResourceHandoverList.h \ + ngap/ASN_NGAP_PDUSessionResourceHandoverItem.h \ + ngap/ASN_NGAP_PDUSessionResourceInformationList.h \ + ngap/ASN_NGAP_PDUSessionResourceInformationItem.h \ + ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.h \ + ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h \ + ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.h \ + ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.h \ + ngap/ASN_NGAP_PDUSessionResourceListHORqd.h \ + ngap/ASN_NGAP_PDUSessionResourceItemHORqd.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceNotifyList.h \ + ngap/ASN_NGAP_PDUSessionResourceNotifyItem.h \ + ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.h \ + ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h \ + ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.h \ + ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.h \ + ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.h \ + ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.h \ + ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h \ + ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h \ + ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h \ + ngap/ASN_NGAP_PDUSessionResourceSwitchedList.h \ + ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.h \ + ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h \ + ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h \ + ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h \ + ngap/ASN_NGAP_PDUSessionType.h \ + ngap/ASN_NGAP_PDUSessionUsageReport.h \ + ngap/ASN_NGAP_PEIPSassistanceInformation.h \ + ngap/ASN_NGAP_Periodicity.h \ + ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.h \ + ngap/ASN_NGAP_PLMNIdentity.h \ + ngap/ASN_NGAP_PLMNAreaBasedQMC.h \ + ngap/ASN_NGAP_PLMNListforQMC.h \ + ngap/ASN_NGAP_PLMNSupportList.h \ + ngap/ASN_NGAP_PLMNSupportItem.h \ + ngap/ASN_NGAP_PNI-NPN-MobilityInformation.h \ + ngap/ASN_NGAP_PortNumber.h \ + ngap/ASN_NGAP_Pre-emptionCapability.h \ + ngap/ASN_NGAP_Pre-emptionVulnerability.h \ + ngap/ASN_NGAP_PriorityLevelARP.h \ + ngap/ASN_NGAP_PriorityLevelQos.h \ + ngap/ASN_NGAP_PWSFailedCellIDList.h \ + ngap/ASN_NGAP_QMCConfigInfo.h \ + ngap/ASN_NGAP_QMCDeactivation.h \ + ngap/ASN_NGAP_QoEReferenceList.h \ + ngap/ASN_NGAP_QoEReference.h \ + ngap/ASN_NGAP_QosCharacteristics.h \ + ngap/ASN_NGAP_QosFlowAcceptedList.h \ + ngap/ASN_NGAP_QosFlowAcceptedItem.h \ + ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.h \ + ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.h \ + ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.h \ + ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.h \ + ngap/ASN_NGAP_QosFlowFeedbackList.h \ + ngap/ASN_NGAP_QosFlowFeedbackItem.h \ + ngap/ASN_NGAP_QosFlowIdentifier.h \ + ngap/ASN_NGAP_QosFlowInformationList.h \ + ngap/ASN_NGAP_QosFlowInformationItem.h \ + ngap/ASN_NGAP_QosFlowLevelQosParameters.h \ + ngap/ASN_NGAP_QosMonitoringRequest.h \ + ngap/ASN_NGAP_QosMonitoringReportingFrequency.h \ + ngap/ASN_NGAP_QoSFlowList.h \ + ngap/ASN_NGAP_QosFlowListWithCause.h \ + ngap/ASN_NGAP_QosFlowWithCauseItem.h \ + ngap/ASN_NGAP_QosFlowModifyConfirmList.h \ + ngap/ASN_NGAP_QosFlowModifyConfirmItem.h \ + ngap/ASN_NGAP_QosFlowNotifyList.h \ + ngap/ASN_NGAP_QosFlowNotifyItem.h \ + ngap/ASN_NGAP_QosFlowParametersList.h \ + ngap/ASN_NGAP_QosFlowParametersItem.h \ + ngap/ASN_NGAP_QosFlowPerTNLInformation.h \ + ngap/ASN_NGAP_QosFlowPerTNLInformationList.h \ + ngap/ASN_NGAP_QosFlowPerTNLInformationItem.h \ + ngap/ASN_NGAP_QosFlowSetupRequestList.h \ + ngap/ASN_NGAP_QosFlowSetupRequestItem.h \ + ngap/ASN_NGAP_QosFlowListWithDataForwarding.h \ + ngap/ASN_NGAP_QosFlowItemWithDataForwarding.h \ + ngap/ASN_NGAP_QosFlowToBeForwardedList.h \ + ngap/ASN_NGAP_QosFlowToBeForwardedItem.h \ + ngap/ASN_NGAP_QoSFlowsUsageReportList.h \ + ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h \ + ngap/ASN_NGAP_Range.h \ + ngap/ASN_NGAP_RANNodeName.h \ + ngap/ASN_NGAP_RANNodeNameVisibleString.h \ + ngap/ASN_NGAP_RANNodeNameUTF8String.h \ + ngap/ASN_NGAP_RANPagingPriority.h \ + ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.h \ + ngap/ASN_NGAP_RAN-UE-NGAP-ID.h \ + ngap/ASN_NGAP_RAT-Information.h \ + ngap/ASN_NGAP_RATRestrictions.h \ + ngap/ASN_NGAP_RATRestrictions-Item.h \ + ngap/ASN_NGAP_RATRestrictionInformation.h \ + ngap/ASN_NGAP_RecommendedCellsForPaging.h \ + ngap/ASN_NGAP_RecommendedCellList.h \ + ngap/ASN_NGAP_RecommendedCellItem.h \ + ngap/ASN_NGAP_RecommendedRANNodesForPaging.h \ + ngap/ASN_NGAP_RecommendedRANNodeList.h \ + ngap/ASN_NGAP_RecommendedRANNodeItem.h \ + ngap/ASN_NGAP_RedCapIndication.h \ + ngap/ASN_NGAP_RedirectionVoiceFallback.h \ + ngap/ASN_NGAP_RedundantPDUSessionInformation.h \ + ngap/ASN_NGAP_RedundantQosFlowIndicator.h \ + ngap/ASN_NGAP_ReflectiveQosAttribute.h \ + ngap/ASN_NGAP_RelativeAMFCapacity.h \ + ngap/ASN_NGAP_ReportArea.h \ + ngap/ASN_NGAP_RepetitionPeriod.h \ + ngap/ASN_NGAP_ResetAll.h \ + ngap/ASN_NGAP_ReportAmountMDT.h \ + ngap/ASN_NGAP_ReportIntervalMDT.h \ + ngap/ASN_NGAP_ExtendedReportIntervalMDT.h \ + ngap/ASN_NGAP_ResetType.h \ + ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.h \ + ngap/ASN_NGAP_RNC-ID.h \ + ngap/ASN_NGAP_RoutingID.h \ + ngap/ASN_NGAP_RRCContainer.h \ + ngap/ASN_NGAP_RRCEstablishmentCause.h \ + ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.h \ + ngap/ASN_NGAP_RRCState.h \ + ngap/ASN_NGAP_RSN.h \ + ngap/ASN_NGAP_RIMInformationTransfer.h \ + ngap/ASN_NGAP_RIMInformation.h \ + ngap/ASN_NGAP_GNBSetID.h \ + ngap/ASN_NGAP_ScheduledCommunicationTime.h \ + ngap/ASN_NGAP_SCTP-TLAs.h \ + ngap/ASN_NGAP_SD.h \ + ngap/ASN_NGAP_SecondaryRATUsageInformation.h \ + ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.h \ + ngap/ASN_NGAP_SecurityContext.h \ + ngap/ASN_NGAP_SecurityIndication.h \ + ngap/ASN_NGAP_SecurityKey.h \ + ngap/ASN_NGAP_SecurityResult.h \ + ngap/ASN_NGAP_SensorMeasurementConfiguration.h \ + ngap/ASN_NGAP_SensorMeasConfigNameList.h \ + ngap/ASN_NGAP_SensorMeasConfigNameItem.h \ + ngap/ASN_NGAP_SensorMeasConfig.h \ + ngap/ASN_NGAP_SensorNameConfig.h \ + ngap/ASN_NGAP_SerialNumber.h \ + ngap/ASN_NGAP_ServedGUAMIList.h \ + ngap/ASN_NGAP_ServedGUAMIItem.h \ + ngap/ASN_NGAP_ServiceAreaInformation.h \ + ngap/ASN_NGAP_ServiceAreaInformation-Item.h \ + ngap/ASN_NGAP_ServiceType.h \ + ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h \ + ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.h \ + ngap/ASN_NGAP_SliceOverloadList.h \ + ngap/ASN_NGAP_SliceOverloadItem.h \ + ngap/ASN_NGAP_SliceSupportList.h \ + ngap/ASN_NGAP_SliceSupportItem.h \ + ngap/ASN_NGAP_SliceSupportListQMC.h \ + ngap/ASN_NGAP_SliceSupportQMC-Item.h \ + ngap/ASN_NGAP_SNPN-MobilityInformation.h \ + ngap/ASN_NGAP_S-NSSAI.h \ + ngap/ASN_NGAP_SONConfigurationTransfer.h \ + ngap/ASN_NGAP_SONInformation.h \ + ngap/ASN_NGAP_SONInformationReply.h \ + ngap/ASN_NGAP_SONInformationReport.h \ + ngap/ASN_NGAP_SuccessfulHandoverReportList.h \ + ngap/ASN_NGAP_SuccessfulHandoverReport-Item.h \ + ngap/ASN_NGAP_SONInformationRequest.h \ + ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h \ + ngap/ASN_NGAP_SourceNodeID.h \ + ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.h \ + ngap/ASN_NGAP_SourceRANNodeID.h \ + ngap/ASN_NGAP_SourceToTarget-TransparentContainer.h \ + ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.h \ + ngap/ASN_NGAP_SRVCCOperationPossible.h \ + ngap/ASN_NGAP_ConfiguredNSSAI.h \ + ngap/ASN_NGAP_RejectedNSSAIinPLMN.h \ + ngap/ASN_NGAP_RejectedNSSAIinTA.h \ + ngap/ASN_NGAP_SST.h \ + ngap/ASN_NGAP_SupportedTAList.h \ + ngap/ASN_NGAP_SupportedTAItem.h \ + ngap/ASN_NGAP_SuspendIndicator.h \ + ngap/ASN_NGAP_Suspend-Request-Indication.h \ + ngap/ASN_NGAP_Suspend-Response-Indication.h \ + ngap/ASN_NGAP_SurvivalTime.h \ + ngap/ASN_NGAP_TAC.h \ + ngap/ASN_NGAP_TACListInNRNTN.h \ + ngap/ASN_NGAP_TAI.h \ + ngap/ASN_NGAP_TAIBroadcastEUTRA.h \ + ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h \ + ngap/ASN_NGAP_TAIBroadcastNR.h \ + ngap/ASN_NGAP_TAIBroadcastNR-Item.h \ + ngap/ASN_NGAP_TAICancelledEUTRA.h \ + ngap/ASN_NGAP_TAICancelledEUTRA-Item.h \ + ngap/ASN_NGAP_TAICancelledNR.h \ + ngap/ASN_NGAP_TAICancelledNR-Item.h \ + ngap/ASN_NGAP_TAIListForInactive.h \ + ngap/ASN_NGAP_TAIListForInactiveItem.h \ + ngap/ASN_NGAP_TAIListForPaging.h \ + ngap/ASN_NGAP_TAIListForPagingItem.h \ + ngap/ASN_NGAP_TAIListForRestart.h \ + ngap/ASN_NGAP_TAIListForWarning.h \ + ngap/ASN_NGAP_TAINSAGSupportList.h \ + ngap/ASN_NGAP_TAINSAGSupportItem.h \ + ngap/ASN_NGAP_TargeteNB-ID.h \ + ngap/ASN_NGAP_TargetHomeENB-ID.h \ + ngap/ASN_NGAP_TargetID.h \ + ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h \ + ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h \ + ngap/ASN_NGAP_TargetNSSAI.h \ + ngap/ASN_NGAP_TargetNSSAI-Item.h \ + ngap/ASN_NGAP_TargetNSSAIInformation.h \ + ngap/ASN_NGAP_TargetRANNodeID.h \ + ngap/ASN_NGAP_TargetRANNodeID-RIM.h \ + ngap/ASN_NGAP_TargetRANNodeID-SON.h \ + ngap/ASN_NGAP_TargetRNC-ID.h \ + ngap/ASN_NGAP_TargetToSource-TransparentContainer.h \ + ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.h \ + ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.h \ + ngap/ASN_NGAP_TimeStamp.h \ + ngap/ASN_NGAP_TimeSyncAssistanceInfo.h \ + ngap/ASN_NGAP_TimeToWait.h \ + ngap/ASN_NGAP_TimeUEStayedInCell.h \ + ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h \ + ngap/ASN_NGAP_TMGI.h \ + ngap/ASN_NGAP_TNAP-ID.h \ + ngap/ASN_NGAP_TNGF-ID.h \ + ngap/ASN_NGAP_TNLAddressWeightFactor.h \ + ngap/ASN_NGAP_TNLAssociationList.h \ + ngap/ASN_NGAP_TNLAssociationItem.h \ + ngap/ASN_NGAP_TNLAssociationUsage.h \ + ngap/ASN_NGAP_TooearlyIntersystemHO.h \ + ngap/ASN_NGAP_TraceActivation.h \ + ngap/ASN_NGAP_TraceDepth.h \ + ngap/ASN_NGAP_TrafficLoadReductionIndication.h \ + ngap/ASN_NGAP_TransportLayerAddress.h \ + ngap/ASN_NGAP_TypeOfError.h \ + ngap/ASN_NGAP_TAIBasedMDT.h \ + ngap/ASN_NGAP_TAIListforMDT.h \ + ngap/ASN_NGAP_TAIBasedQMC.h \ + ngap/ASN_NGAP_TAIListforQMC.h \ + ngap/ASN_NGAP_TABasedQMC.h \ + ngap/ASN_NGAP_TAListforQMC.h \ + ngap/ASN_NGAP_TABasedMDT.h \ + ngap/ASN_NGAP_TAListforMDT.h \ + ngap/ASN_NGAP_Threshold-RSRP.h \ + ngap/ASN_NGAP_Threshold-RSRQ.h \ + ngap/ASN_NGAP_Threshold-SINR.h \ + ngap/ASN_NGAP_TimeToTrigger.h \ + ngap/ASN_NGAP_TWAP-ID.h \ + ngap/ASN_NGAP_TWIF-ID.h \ + ngap/ASN_NGAP_TSCAssistanceInformation.h \ + ngap/ASN_NGAP_TSCTrafficCharacteristics.h \ + ngap/ASN_NGAP_UEAggregateMaximumBitRate.h \ + ngap/ASN_NGAP_UEAppLayerMeasInfoList.h \ + ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h \ + ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h \ + ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.h \ + ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.h \ + ngap/ASN_NGAP_UECapabilityInfoRequest.h \ + ngap/ASN_NGAP_UEContextRequest.h \ + ngap/ASN_NGAP_UEContextResumeRequestTransfer.h \ + ngap/ASN_NGAP_UEContextResumeResponseTransfer.h \ + ngap/ASN_NGAP_UEContextSuspendRequestTransfer.h \ + ngap/ASN_NGAP_UE-DifferentiationInfo.h \ + ngap/ASN_NGAP_UEHistoryInformation.h \ + ngap/ASN_NGAP_UEHistoryInformationFromTheUE.h \ + ngap/ASN_NGAP_UEIdentityIndexValue.h \ + ngap/ASN_NGAP_UE-NGAP-IDs.h \ + ngap/ASN_NGAP_UE-NGAP-ID-pair.h \ + ngap/ASN_NGAP_UEPagingIdentity.h \ + ngap/ASN_NGAP_UEPresence.h \ + ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.h \ + ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.h \ + ngap/ASN_NGAP_UERadioCapability.h \ + ngap/ASN_NGAP_UERadioCapabilityForPaging.h \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.h \ + ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h \ + ngap/ASN_NGAP_UERadioCapabilityID.h \ + ngap/ASN_NGAP_UERetentionInformation.h \ + ngap/ASN_NGAP_UERLFReportContainer.h \ + ngap/ASN_NGAP_UESecurityCapabilities.h \ + ngap/ASN_NGAP_UESliceMaximumBitRateList.h \ + ngap/ASN_NGAP_UESliceMaximumBitRateItem.h \ + ngap/ASN_NGAP_UE-UP-CIoT-Support.h \ + ngap/ASN_NGAP_UL-CP-SecurityInformation.h \ + ngap/ASN_NGAP_UL-NAS-MAC.h \ + ngap/ASN_NGAP_UL-NAS-Count.h \ + ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h \ + ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h \ + ngap/ASN_NGAP_UnavailableGUAMIList.h \ + ngap/ASN_NGAP_UnavailableGUAMIItem.h \ + ngap/ASN_NGAP_ULForwarding.h \ + ngap/ASN_NGAP_UpdateFeedback.h \ + ngap/ASN_NGAP_UPTransportLayerInformation.h \ + ngap/ASN_NGAP_UPTransportLayerInformationList.h \ + ngap/ASN_NGAP_UPTransportLayerInformationItem.h \ + ngap/ASN_NGAP_UPTransportLayerInformationPairList.h \ + ngap/ASN_NGAP_UPTransportLayerInformationPairItem.h \ + ngap/ASN_NGAP_URI-address.h \ + ngap/ASN_NGAP_UserLocationInformation.h \ + ngap/ASN_NGAP_UserLocationInformationEUTRA.h \ + ngap/ASN_NGAP_UserLocationInformationN3IWF.h \ + ngap/ASN_NGAP_UserLocationInformationTNGF.h \ + ngap/ASN_NGAP_UserLocationInformationTWIF.h \ + ngap/ASN_NGAP_UserLocationInformationW-AGF.h \ + ngap/ASN_NGAP_UserLocationInformationNR.h \ + ngap/ASN_NGAP_UserPlaneSecurityInformation.h \ + ngap/ASN_NGAP_VolumeTimedReportList.h \ + ngap/ASN_NGAP_VolumeTimedReport-Item.h \ + ngap/ASN_NGAP_W-AGF-ID.h \ + ngap/ASN_NGAP_WarningAreaCoordinates.h \ + ngap/ASN_NGAP_WarningAreaList.h \ + ngap/ASN_NGAP_WarningMessageContents.h \ + ngap/ASN_NGAP_WarningSecurityInfo.h \ + ngap/ASN_NGAP_WarningType.h \ + ngap/ASN_NGAP_WLANMeasurementConfiguration.h \ + ngap/ASN_NGAP_WLANMeasConfigNameList.h \ + ngap/ASN_NGAP_WLANMeasConfigNameItem.h \ + ngap/ASN_NGAP_WLANMeasConfig.h \ + ngap/ASN_NGAP_WLANName.h \ + ngap/ASN_NGAP_WUS-Assistance-Information.h \ + ngap/ASN_NGAP_XnExtTLAs.h \ + ngap/ASN_NGAP_XnExtTLA-Item.h \ + ngap/ASN_NGAP_XnGTP-TLAs.h \ + ngap/ASN_NGAP_XnTLAs.h \ + ngap/ASN_NGAP_XnTNLConfigurationInfo.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupRequest.h \ + ngap/ASN_NGAP_PDUSessionResourceSetupResponse.h \ + ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.h \ + ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyRequest.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyResponse.h \ + ngap/ASN_NGAP_PDUSessionResourceNotify.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyIndication.h \ + ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.h \ + ngap/ASN_NGAP_InitialContextSetupRequest.h \ + ngap/ASN_NGAP_InitialContextSetupResponse.h \ + ngap/ASN_NGAP_InitialContextSetupFailure.h \ + ngap/ASN_NGAP_UEContextReleaseRequest.h \ + ngap/ASN_NGAP_UEContextReleaseCommand.h \ + ngap/ASN_NGAP_UEContextReleaseComplete.h \ + ngap/ASN_NGAP_UEContextResumeRequest.h \ + ngap/ASN_NGAP_UEContextResumeResponse.h \ + ngap/ASN_NGAP_UEContextResumeFailure.h \ + ngap/ASN_NGAP_UEContextSuspendRequest.h \ + ngap/ASN_NGAP_UEContextSuspendResponse.h \ + ngap/ASN_NGAP_UEContextSuspendFailure.h \ + ngap/ASN_NGAP_UEContextModificationRequest.h \ + ngap/ASN_NGAP_UEContextModificationResponse.h \ + ngap/ASN_NGAP_UEContextModificationFailure.h \ + ngap/ASN_NGAP_RRCInactiveTransitionReport.h \ + ngap/ASN_NGAP_RetrieveUEInformation.h \ + ngap/ASN_NGAP_UEInformationTransfer.h \ + ngap/ASN_NGAP_RANCPRelocationIndication.h \ + ngap/ASN_NGAP_HandoverRequired.h \ + ngap/ASN_NGAP_HandoverCommand.h \ + ngap/ASN_NGAP_HandoverPreparationFailure.h \ + ngap/ASN_NGAP_HandoverRequest.h \ + ngap/ASN_NGAP_HandoverRequestAcknowledge.h \ + ngap/ASN_NGAP_HandoverFailure.h \ + ngap/ASN_NGAP_HandoverNotify.h \ + ngap/ASN_NGAP_PathSwitchRequest.h \ + ngap/ASN_NGAP_PathSwitchRequestAcknowledge.h \ + ngap/ASN_NGAP_PathSwitchRequestFailure.h \ + ngap/ASN_NGAP_HandoverCancel.h \ + ngap/ASN_NGAP_HandoverCancelAcknowledge.h \ + ngap/ASN_NGAP_HandoverSuccess.h \ + ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.h \ + ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.h \ + ngap/ASN_NGAP_UplinkRANStatusTransfer.h \ + ngap/ASN_NGAP_DownlinkRANStatusTransfer.h \ + ngap/ASN_NGAP_Paging.h \ + ngap/ASN_NGAP_InitialUEMessage.h \ + ngap/ASN_NGAP_DownlinkNASTransport.h \ + ngap/ASN_NGAP_UplinkNASTransport.h \ + ngap/ASN_NGAP_NASNonDeliveryIndication.h \ + ngap/ASN_NGAP_RerouteNASRequest.h \ + ngap/ASN_NGAP_NGSetupRequest.h \ + ngap/ASN_NGAP_NGSetupResponse.h \ + ngap/ASN_NGAP_NGSetupFailure.h \ + ngap/ASN_NGAP_RANConfigurationUpdate.h \ + ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.h \ + ngap/ASN_NGAP_RANConfigurationUpdateFailure.h \ + ngap/ASN_NGAP_AMFConfigurationUpdate.h \ + ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.h \ + ngap/ASN_NGAP_AMFConfigurationUpdateFailure.h \ + ngap/ASN_NGAP_AMFStatusIndication.h \ + ngap/ASN_NGAP_NGReset.h \ + ngap/ASN_NGAP_NGResetAcknowledge.h \ + ngap/ASN_NGAP_ErrorIndication.h \ + ngap/ASN_NGAP_OverloadStart.h \ + ngap/ASN_NGAP_OverloadStop.h \ + ngap/ASN_NGAP_UplinkRANConfigurationTransfer.h \ + ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.h \ + ngap/ASN_NGAP_WriteReplaceWarningRequest.h \ + ngap/ASN_NGAP_WriteReplaceWarningResponse.h \ + ngap/ASN_NGAP_PWSCancelRequest.h \ + ngap/ASN_NGAP_PWSCancelResponse.h \ + ngap/ASN_NGAP_PWSRestartIndication.h \ + ngap/ASN_NGAP_PWSFailureIndication.h \ + ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h \ + ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h \ + ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h \ + ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h \ + ngap/ASN_NGAP_TraceStart.h \ + ngap/ASN_NGAP_TraceFailureIndication.h \ + ngap/ASN_NGAP_DeactivateTrace.h \ + ngap/ASN_NGAP_CellTrafficTrace.h \ + ngap/ASN_NGAP_LocationReportingControl.h \ + ngap/ASN_NGAP_LocationReportingFailureIndication.h \ + ngap/ASN_NGAP_LocationReport.h \ + ngap/ASN_NGAP_UETNLABindingReleaseRequest.h \ + ngap/ASN_NGAP_UERadioCapabilityInfoIndication.h \ + ngap/ASN_NGAP_UERadioCapabilityCheckRequest.h \ + ngap/ASN_NGAP_UERadioCapabilityCheckResponse.h \ + ngap/ASN_NGAP_PrivateMessage.h \ + ngap/ASN_NGAP_SecondaryRATDataUsageReport.h \ + ngap/ASN_NGAP_UplinkRIMInformationTransfer.h \ + ngap/ASN_NGAP_DownlinkRIMInformationTransfer.h \ + ngap/ASN_NGAP_ConnectionEstablishmentIndication.h \ + ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.h \ + ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.h \ + ngap/ASN_NGAP_AMFCPRelocationIndication.h \ + ngap/ASN_NGAP_BroadcastSessionSetupRequest.h \ + ngap/ASN_NGAP_BroadcastSessionSetupResponse.h \ + ngap/ASN_NGAP_BroadcastSessionSetupFailure.h \ + ngap/ASN_NGAP_BroadcastSessionModificationRequest.h \ + ngap/ASN_NGAP_BroadcastSessionModificationResponse.h \ + ngap/ASN_NGAP_BroadcastSessionModificationFailure.h \ + ngap/ASN_NGAP_BroadcastSessionReleaseRequest.h \ + ngap/ASN_NGAP_BroadcastSessionReleaseRequired.h \ + ngap/ASN_NGAP_BroadcastSessionReleaseResponse.h \ + ngap/ASN_NGAP_DistributionSetupRequest.h \ + ngap/ASN_NGAP_DistributionSetupResponse.h \ + ngap/ASN_NGAP_DistributionSetupFailure.h \ + ngap/ASN_NGAP_DistributionReleaseRequest.h \ + ngap/ASN_NGAP_DistributionReleaseResponse.h \ + ngap/ASN_NGAP_MulticastSessionActivationRequest.h \ + ngap/ASN_NGAP_MulticastSessionActivationResponse.h \ + ngap/ASN_NGAP_MulticastSessionActivationFailure.h \ + ngap/ASN_NGAP_MulticastSessionDeactivationRequest.h \ + ngap/ASN_NGAP_MulticastSessionDeactivationResponse.h \ + ngap/ASN_NGAP_MulticastSessionUpdateRequest.h \ + ngap/ASN_NGAP_MulticastSessionUpdateResponse.h \ + ngap/ASN_NGAP_MulticastSessionUpdateFailure.h \ + ngap/ASN_NGAP_MulticastGroupPaging.h \ + ngap/ASN_NGAP_NGAP-PDU.h \ + ngap/ASN_NGAP_InitiatingMessage.h \ + ngap/ASN_NGAP_SuccessfulOutcome.h \ + ngap/ASN_NGAP_UnsuccessfulOutcome.h + +ASN_MODULE_HDRS+=ngap/ANY.h +ASN_MODULE_SRCS+=ngap/ANY.c +ASN_MODULE_HDRS+=ngap/OCTET_STRING.h +ASN_MODULE_HDRS+=ngap/OPEN_TYPE.h +ASN_MODULE_SRCS+=ngap/OPEN_TYPE.c +ASN_MODULE_HDRS+=ngap/constr_CHOICE.h +ASN_MODULE_HDRS+=ngap/BOOLEAN.h +ASN_MODULE_SRCS+=ngap/BOOLEAN.c +ASN_MODULE_HDRS+=ngap/INTEGER.h +ASN_MODULE_SRCS+=ngap/INTEGER.c +ASN_MODULE_HDRS+=ngap/NULL.h +ASN_MODULE_SRCS+=ngap/NULL.c +ASN_MODULE_HDRS+=ngap/NativeEnumerated.h +ASN_MODULE_SRCS+=ngap/NativeEnumerated.c +ASN_MODULE_HDRS+=ngap/NativeInteger.h +ASN_MODULE_SRCS+=ngap/NativeInteger.c +ASN_MODULE_HDRS+=ngap/OBJECT_IDENTIFIER.h +ASN_MODULE_SRCS+=ngap/OBJECT_IDENTIFIER.c +ASN_MODULE_HDRS+=ngap/PrintableString.h +ASN_MODULE_SRCS+=ngap/PrintableString.c +ASN_MODULE_HDRS+=ngap/UTF8String.h +ASN_MODULE_SRCS+=ngap/UTF8String.c +ASN_MODULE_HDRS+=ngap/VisibleString.h +ASN_MODULE_SRCS+=ngap/VisibleString.c +ASN_MODULE_HDRS+=ngap/asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=ngap/asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=ngap/asn_SET_OF.h +ASN_MODULE_SRCS+=ngap/asn_SET_OF.c +ASN_MODULE_SRCS+=ngap/constr_CHOICE.c +ASN_MODULE_HDRS+=ngap/constr_SEQUENCE.h +ASN_MODULE_SRCS+=ngap/constr_SEQUENCE.c +ASN_MODULE_HDRS+=ngap/constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=ngap/constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=ngap/constr_SET_OF.h +ASN_MODULE_SRCS+=ngap/constr_SET_OF.c +ASN_MODULE_HDRS+=ngap/asn_application.h +ASN_MODULE_SRCS+=ngap/asn_application.c +ASN_MODULE_HDRS+=ngap/asn_ioc.h +ASN_MODULE_HDRS+=ngap/asn_system.h +ASN_MODULE_HDRS+=ngap/asn_codecs.h +ASN_MODULE_HDRS+=ngap/asn_internal.h +ASN_MODULE_SRCS+=ngap/asn_internal.c +ASN_MODULE_HDRS+=ngap/asn_random_fill.h +ASN_MODULE_SRCS+=ngap/asn_random_fill.c +ASN_MODULE_HDRS+=ngap/asn_bit_data.h +ASN_MODULE_SRCS+=ngap/asn_bit_data.c +ASN_MODULE_SRCS+=ngap/OCTET_STRING.c +ASN_MODULE_HDRS+=ngap/BIT_STRING.h +ASN_MODULE_SRCS+=ngap/BIT_STRING.c +ASN_MODULE_SRCS+=ngap/asn_codecs_prim.c +ASN_MODULE_HDRS+=ngap/asn_codecs_prim.h +ASN_MODULE_HDRS+=ngap/ber_tlv_length.h +ASN_MODULE_SRCS+=ngap/ber_tlv_length.c +ASN_MODULE_HDRS+=ngap/ber_tlv_tag.h +ASN_MODULE_SRCS+=ngap/ber_tlv_tag.c +ASN_MODULE_HDRS+=ngap/ber_decoder.h +ASN_MODULE_SRCS+=ngap/ber_decoder.c +ASN_MODULE_HDRS+=ngap/der_encoder.h +ASN_MODULE_SRCS+=ngap/der_encoder.c +ASN_MODULE_HDRS+=ngap/constr_TYPE.h +ASN_MODULE_SRCS+=ngap/constr_TYPE.c +ASN_MODULE_HDRS+=ngap/constraints.h +ASN_MODULE_SRCS+=ngap/constraints.c +ASN_MODULE_HDRS+=ngap/xer_support.h +ASN_MODULE_SRCS+=ngap/xer_support.c +ASN_MODULE_HDRS+=ngap/xer_decoder.h +ASN_MODULE_SRCS+=ngap/xer_decoder.c +ASN_MODULE_HDRS+=ngap/xer_encoder.h +ASN_MODULE_SRCS+=ngap/xer_encoder.c +ASN_MODULE_HDRS+=ngap/per_support.h +ASN_MODULE_SRCS+=ngap/per_support.c +ASN_MODULE_HDRS+=ngap/per_decoder.h +ASN_MODULE_SRCS+=ngap/per_decoder.c +ASN_MODULE_HDRS+=ngap/per_encoder.h +ASN_MODULE_SRCS+=ngap/per_encoder.c +ASN_MODULE_HDRS+=ngap/per_opentype.h +ASN_MODULE_SRCS+=ngap/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)/ngap/ +libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) +libasncodec_la_LDFLAGS=-lm diff --git a/src/asn/asn1c/NULL.c b/src/asn/asn1c/NULL.c new file mode 100644 index 0000000..d882500 --- /dev/null +++ b/src/asn/asn1c/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; + + 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; + + (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; + + (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; + + (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; + + (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; + + (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/src/asn/asn1c/NULL.h b/src/asn/asn1c/NULL.h new file mode 100644 index 0000000..802d12c --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/NativeEnumerated.c b/src/asn/asn1c/NativeEnumerated.c new file mode 100644 index 0000000..7c069e7 --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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; + 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/src/asn/asn1c/NativeEnumerated.h b/src/asn/asn1c/NativeEnumerated.h new file mode 100644 index 0000000..459f0e6 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/NativeInteger.c b/src/asn/asn1c/NativeInteger.c new file mode 100644 index 0000000..8c00d54 --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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; + 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; + 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/src/asn/asn1c/NativeInteger.h b/src/asn/asn1c/NativeInteger.h new file mode 100644 index 0000000..c74406a --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/OBJECT_IDENTIFIER.c b/src/asn/asn1c/OBJECT_IDENTIFIER.c new file mode 100644 index 0000000..80ab797 --- /dev/null +++ b/src/asn/asn1c/OBJECT_IDENTIFIER.c @@ -0,0 +1,647 @@ +/*- + * 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; + /* Gather all bits into the accumulator */ + for(accum = 0; b < arcend; b++) { + accum = (accum << 7) | (*b & ~0x80); + if((*b & 0x80) == 0) { + if(accum <= ASN_OID_ARC_MAX) { + *ret_value = accum; + return 1 + (b - arcbuf); + } else { + 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; + + (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/src/asn/asn1c/OBJECT_IDENTIFIER.h b/src/asn/asn1c/OBJECT_IDENTIFIER.h new file mode 100644 index 0000000..087c6fd --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/OCTET_STRING.c b/src/asn/asn1c/OCTET_STRING.c new file mode 100644 index 0000000..5779330 --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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; + 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/src/asn/asn1c/OCTET_STRING.h b/src/asn/asn1c/OCTET_STRING.h new file mode 100644 index 0000000..c2f8bae --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/OPEN_TYPE.c b/src/asn/asn1c/OPEN_TYPE.c new file mode 100644 index 0000000..fd25b69 --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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/src/asn/asn1c/OPEN_TYPE.h b/src/asn/asn1c/OPEN_TYPE.h new file mode 100644 index 0000000..b0d023c --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/PrintableString.c b/src/asn/asn1c/PrintableString.c new file mode 100644 index 0000000..8fc3939 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/PrintableString.h b/src/asn/asn1c/PrintableString.h new file mode 100644 index 0000000..8c2b61a --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/UTF8String.c b/src/asn/asn1c/UTF8String.c new file mode 100644 index 0000000..c023ca1 --- /dev/null +++ b/src/asn/asn1c/UTF8String.c @@ -0,0 +1,294 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * UTF8String basic type description. + */ +static const ber_tlv_tag_t asn_DEF_UTF8String_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)), /* [UNIVERSAL 12] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), /* ... OCTET STRING */ +}; +asn_TYPE_operation_t asn_OP_UTF8String = { + OCTET_STRING_free, + UTF8String_print, + 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 */ + UTF8String_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_UTF8String = { + "UTF8String", + "UTF8String", + &asn_OP_UTF8String, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[0]) - 1, + asn_DEF_UTF8String_tags, + sizeof(asn_DEF_UTF8String_tags) + / sizeof(asn_DEF_UTF8String_tags[0]), + { 0, 0, UTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +/* + * This is the table of length expectations. + * The second half of this table is only applicable to the long sequences. + */ +static const int UTF8String_ht[2][16] = { + { /* 0x0 ... 0x7 */ + /* 0000..0111 */ + 1, 1, 1, 1, 1, 1, 1, 1, + /* 1000..1011(0), 1100..1101(2), 1110(3), 1111(-1) */ + 0, 0, 0, 0, 2, 2, 3, -1 }, + { /* 0xF0 .. 0xF7 */ + /* 11110000..11110111 */ + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 6, 6, -1, -1 } +}; +static const int32_t UTF8String_mv[7] = { 0, 0, + 0x00000080, + 0x00000800, + 0x00010000, + 0x00200000, + 0x04000000 +}; + +/* Internal aliases for return codes */ +#define U8E_TRUNC -1 /* UTF-8 sequence truncated */ +#define U8E_ILLSTART -2 /* Illegal UTF-8 sequence start */ +#define U8E_NOTCONT -3 /* Continuation expectation failed */ +#define U8E_NOTMIN -4 /* Not minimal length encoding */ +#define U8E_EINVAL -5 /* Invalid arguments */ + +int +UTF8String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + ssize_t len = UTF8String_length((const UTF8String_t *)sptr); + switch(len) { + case U8E_EINVAL: + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given", td->name); + break; + case U8E_TRUNC: + ASN__CTFAIL(app_key, td, sptr, + "%s: truncated UTF-8 sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_ILLSTART: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 illegal start of encoding (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTCONT: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not continuation (%s:%d)", + td->name, __FILE__, __LINE__); + break; + case U8E_NOTMIN: + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8 not minimal sequence (%s:%d)", + td->name, __FILE__, __LINE__); + break; + } + return (len < 0) ? -1 : 0; +} + +static ssize_t +UTF8String__process(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + size_t length; + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + uint32_t *dstend = dst + dstlen; + + for(length = 0; buf < end; length++) { + int ch = *buf; + uint8_t *cend; + int32_t value; + int want; + + /* Compute the sequence length */ + want = UTF8String_ht[0][ch >> 4]; + switch(want) { + case -1: + /* Second half of the table, long sequence */ + want = UTF8String_ht[1][ch & 0x0F]; + if(want != -1) break; + /* Fall through */ + case 0: + return U8E_ILLSTART; + } + + /* assert(want >= 1 && want <= 6) */ + + /* Check character sequence length */ + if(buf + want > end) return U8E_TRUNC; + + value = ch & (0xff >> want); + cend = buf + want; + for(buf++; buf < cend; buf++) { + ch = *buf; + if(ch < 0x80 || ch > 0xbf) return U8E_NOTCONT; + value = (value << 6) | (ch & 0x3F); + } + if(value < UTF8String_mv[want]) + return U8E_NOTMIN; + if(dst < dstend) + *dst++ = value; /* Record value */ + } + + if(dst < dstend) *dst = 0; /* zero-terminate */ + + return length; +} + + +ssize_t +UTF8String_length(const UTF8String_t *st) { + if(st && st->buf) { + return UTF8String__process(st, 0, 0); + } else { + return U8E_EINVAL; + } +} + +size_t +UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen) { + if(st && st->buf) { + ssize_t ret = UTF8String__process(st, dst, dstlen); + return (ret < 0) ? 0 : ret; + } else { + return 0; + } +} + +int +UTF8String_print(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, + asn_app_consume_bytes_f *cb, void *app_key) { + const UTF8String_t *st = (const UTF8String_t *)sptr; + + (void)td; /* Unused argument */ + (void)ilevel; /* Unused argument */ + + if(st && st->buf) { + return (cb(st->buf, st->size, app_key) < 0) ? -1 : 0; + } else { + return (cb("", 8, app_key) < 0) ? -1 : 0; + } +} + + +/* + * Biased function for randomizing UTF-8 sequences. + */ +static size_t +UTF8String__random_char(uint8_t *b, size_t size) { + static const struct rnd_value { + const char *value; + size_t size; + } values[] = {{"\0", 1}, + {"\x01", 1}, + {"\x7f", 1}, + {"\xc2\xa2", 2}, + {"\xe2\x82\xac", 3}, + {"\xf0\x90\x8d\x88", 4}, + {"\xf4\x8f\xbf\xbf", 4}}; + + const struct rnd_value *v; + size_t max_idx = 0; + + switch(size) { + case 0: + assert(size != 0); + return 0; + case 1: + max_idx = 2; + break; + case 2: + max_idx = 3; + break; + default: + case 4: + max_idx = sizeof(values) / sizeof(values[0]) - 1; + break; + } + + v = &values[asn_random_between(0, max_idx)]; + memcpy(b, v->value, v->size); + return v->size; +} + +asn_random_fill_result_t +UTF8String_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}; + uint8_t *buf; + uint8_t *bend; + uint8_t *b; + size_t rnd_len; + size_t idx; + UTF8String_t *st; + + if(max_length == 0 && !*sptr) return result_skipped; + + /* Figure out how far we should go */ + rnd_len = OCTET_STRING_random_length_constrained(td, constraints, + max_length / 4); + + buf = CALLOC(4, rnd_len + 1); + if(!buf) return result_failed; + + bend = &buf[4 * rnd_len]; + + for(b = buf, idx = 0; idx < rnd_len; idx++) { + b += UTF8String__random_char(b, (bend - b)); + } + *(uint8_t *)b = 0; + + if(*sptr) { + st = *sptr; + FREEMEM(st->buf); + } else { + st = (OCTET_STRING_t *)(*sptr = CALLOC(1, sizeof(UTF8String_t))); + if(!st) { + FREEMEM(buf); + return result_failed; + } + } + + st->buf = buf; + st->size = b - buf; + + assert(UTF8String_length(st) == (ssize_t)rnd_len); + + return result_ok; +} diff --git a/src/asn/asn1c/UTF8String.h b/src/asn/asn1c/UTF8String.h new file mode 100644 index 0000000..7ad9c82 --- /dev/null +++ b/src/asn/asn1c/UTF8String.h @@ -0,0 +1,63 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _UTF8String_H_ +#define _UTF8String_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t UTF8String_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_UTF8String; +extern asn_TYPE_operation_t asn_OP_UTF8String; + +asn_struct_print_f UTF8String_print; +asn_constr_check_f UTF8String_constraint; +asn_random_fill_f UTF8String_random_fill; + +#define UTF8String_free OCTET_STRING_free +#define UTF8String_compare OCTET_STRING_compare +#define UTF8String_constraint UTF8String_constraint +#define UTF8String_decode_ber OCTET_STRING_decode_ber +#define UTF8String_encode_der OCTET_STRING_encode_der +#define UTF8String_decode_xer OCTET_STRING_decode_xer_utf8 +#define UTF8String_encode_xer OCTET_STRING_encode_xer_utf8 +#define UTF8String_decode_uper OCTET_STRING_decode_uper +#define UTF8String_encode_uper OCTET_STRING_encode_uper +#define UTF8String_decode_aper OCTET_STRING_decode_aper +#define UTF8String_encode_aper OCTET_STRING_encode_aper + +/* + * Returns length of the given UTF-8 string in characters, + * or a negative error code: + * -1: UTF-8 sequence truncated + * -2: Illegal UTF-8 sequence start + * -3: Continuation expectation failed + * -4: Not minimal length encoding + * -5: Invalid arguments + */ +ssize_t UTF8String_length(const UTF8String_t *st); + +/* + * Convert the UTF-8 string into a sequence of wide characters. + * Returns the number of characters necessary. + * Returned value might be greater than dstlen. + * In case of conversion error, 0 is returned. + * + * If st points to a valid UTF-8 string, calling + * UTF8String_to_wcs(st, 0, 0); + * is equivalent to + * UTF8String_length(const UTF8String_t *st); + */ +size_t UTF8String_to_wcs(const UTF8String_t *st, uint32_t *dst, size_t dstlen); + +#ifdef __cplusplus +} +#endif + +#endif /* _UTF8String_H_ */ diff --git a/src/asn/asn1c/VisibleString.c b/src/asn/asn1c/VisibleString.c new file mode 100644 index 0000000..03fef8b --- /dev/null +++ b/src/asn/asn1c/VisibleString.c @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2003, 2006 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * VisibleString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_VisibleString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), /* [UNIVERSAL 26] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static asn_per_constraints_t asn_DEF_VisibleString_constraints = { + { APC_CONSTRAINED, 7, 7, 0x20, 0x7e }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + 0, 0 +}; +asn_TYPE_operation_t asn_OP_VisibleString = { + 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_VisibleString = { + "VisibleString", + "VisibleString", + &asn_OP_VisibleString, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_tags[0]) - 1, + asn_DEF_VisibleString_tags, + sizeof(asn_DEF_VisibleString_tags) + / sizeof(asn_DEF_VisibleString_tags[0]), + { 0, &asn_DEF_VisibleString_constraints, VisibleString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + +int +VisibleString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const VisibleString_t *st = (const VisibleString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the VisibleString. + * ISO646, ISOReg#6 + * The alphabet is a subset of ASCII between the space + * and "~" (tilde). + */ + for(; buf < end; buf++) { + if(*buf < 0x20 || *buf > 0x7e) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in VisibleString 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/src/asn/asn1c/VisibleString.h b/src/asn/asn1c/VisibleString.h new file mode 100644 index 0000000..ad5f713 --- /dev/null +++ b/src/asn/asn1c/VisibleString.h @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _VisibleString_H_ +#define _VisibleString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t VisibleString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_VisibleString; +extern asn_TYPE_operation_t asn_OP_VisibleString; + +asn_constr_check_f VisibleString_constraint; + +#define VisibleString_free OCTET_STRING_free +#define VisibleString_print OCTET_STRING_print +#define VisibleString_compare OCTET_STRING_compare +#define VisibleString_constraint VisibleString_constraint +#define VisibleString_decode_ber OCTET_STRING_decode_ber +#define VisibleString_encode_der OCTET_STRING_encode_der +#define VisibleString_decode_xer OCTET_STRING_decode_xer_hex +#define VisibleString_encode_xer OCTET_STRING_encode_xer +#define VisibleString_decode_uper OCTET_STRING_decode_uper +#define VisibleString_encode_uper OCTET_STRING_encode_uper +#define VisibleString_decode_aper OCTET_STRING_decode_aper +#define VisibleString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _VisibleString_H_ */ diff --git a/src/asn/asn1c/asn_SEQUENCE_OF.c b/src/asn/asn1c/asn_SEQUENCE_OF.c new file mode 100644 index 0000000..ec952fc --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_SEQUENCE_OF.h b/src/asn/asn1c/asn_SEQUENCE_OF.h new file mode 100644 index 0000000..e35bc44 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_SET_OF.c b/src/asn/asn1c/asn_SET_OF.c new file mode 100644 index 0000000..944f2cb --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_SET_OF.h b/src/asn/asn1c/asn_SET_OF.h new file mode 100644 index 0000000..882e1a4 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_application.c b/src/asn/asn1c/asn_application.c new file mode 100644 index 0000000..a55e14e --- /dev/null +++ b/src/asn/asn1c/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; + + 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; + + 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; + 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/src/asn/asn1c/asn_application.h b/src/asn/asn1c/asn_application.h new file mode 100644 index 0000000..449318d --- /dev/null +++ b/src/asn/asn1c/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 generatede 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/src/asn/asn1c/asn_bit_data.c b/src/asn/asn1c/asn_bit_data.c new file mode 100644 index 0000000..fe4b89b --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_bit_data.h b/src/asn/asn1c/asn_bit_data.h new file mode 100644 index 0000000..59de7af --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_codecs.h b/src/asn/asn1c/asn_codecs.h new file mode 100644 index 0000000..e75c270 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_codecs_prim.c b/src/asn/asn1c/asn_codecs_prim.c new file mode 100644 index 0000000..78448a8 --- /dev/null +++ b/src/asn/asn1c/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; + 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/src/asn/asn1c/asn_codecs_prim.h b/src/asn/asn1c/asn_codecs_prim.h new file mode 100644 index 0000000..fbc5576 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_internal.c b/src/asn/asn1c/asn_internal.c new file mode 100644 index 0000000..c2a8108 --- /dev/null +++ b/src/asn/asn1c/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); + va_end(args); + if(wrote < (ssize_t)buf_size) { + if(wrote < 0) { + if(buf != scratch) FREEMEM(buf); + 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/src/asn/asn1c/asn_internal.h b/src/asn/asn1c/asn_internal.h new file mode 100644 index 0000000..2736083 --- /dev/null +++ b/src/asn/asn1c/asn_internal.h @@ -0,0 +1,151 @@ +/* + * 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 __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 */ +#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) +#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/src/asn/asn1c/asn_ioc.h b/src/asn/asn1c/asn_ioc.h new file mode 100644 index 0000000..7de210e --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_random_fill.c b/src/asn/asn1c/asn_random_fill.c new file mode 100644 index 0000000..819cf70 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_random_fill.h b/src/asn/asn1c/asn_random_fill.h new file mode 100644 index 0000000..47f9b8a --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/asn_system.h b/src/asn/asn1c/asn_system.h new file mode 100644 index 0000000..fa8cf11 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_decoder.c b/src/asn/asn1c/ber_decoder.c new file mode 100644 index 0000000..75d6016 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_decoder.h b/src/asn/asn1c/ber_decoder.h new file mode 100644 index 0000000..1ac2a5e --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_tlv_length.c b/src/asn/asn1c/ber_tlv_length.c new file mode 100644 index 0000000..0a0deec --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_tlv_length.h b/src/asn/asn1c/ber_tlv_length.h new file mode 100644 index 0000000..d1e4d48 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_tlv_tag.c b/src/asn/asn1c/ber_tlv_tag.c new file mode 100644 index 0000000..4a7d732 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/ber_tlv_tag.h b/src/asn/asn1c/ber_tlv_tag.h new file mode 100644 index 0000000..ce227ad --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_CHOICE.c b/src/asn/asn1c/constr_CHOICE.c new file mode 100644 index 0000000..402b6be --- /dev/null +++ b/src/asn/asn1c/constr_CHOICE.c @@ -0,0 +1,1509 @@ +/* + * 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; + 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; + unsigned present; + + 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; + asn_TYPE_member_t *elm = &td->elements[present-1]; + 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) 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; + 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; + if(specs->ext_start == -1) + ASN__ENCODE_FAILED; + 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/src/asn/asn1c/constr_CHOICE.h b/src/asn/asn1c/constr_CHOICE.h new file mode 100644 index 0000000..a1999ed --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_SEQUENCE.c b/src/asn/asn1c/constr_SEQUENCE.c new file mode 100644 index 0000000..f12275c --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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; + 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; + 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; + 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; + 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) == 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 */ + + 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) == 0) + 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/src/asn/asn1c/constr_SEQUENCE.h b/src/asn/asn1c/constr_SEQUENCE.h new file mode 100644 index 0000000..a22ed3a --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_SEQUENCE_OF.c b/src/asn/asn1c/constr_SEQUENCE_OF.c new file mode 100644 index 0000000..2a500c3 --- /dev/null +++ b/src/asn/asn1c/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; + 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; + 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; + 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; + 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; + 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/src/asn/asn1c/constr_SEQUENCE_OF.h b/src/asn/asn1c/constr_SEQUENCE_OF.h new file mode 100644 index 0000000..6857f0f --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_SET_OF.c b/src/asn/asn1c/constr_SET_OF.c new file mode 100644 index 0000000..ab51d38 --- /dev/null +++ b/src/asn/asn1c/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; + + 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; + + 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; + 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; + 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; /* 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; + + /* 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; + 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; + + 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; + 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; + 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; + 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/src/asn/asn1c/constr_SET_OF.h b/src/asn/asn1c/constr_SET_OF.h new file mode 100644 index 0000000..7681062 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_TYPE.c b/src/asn/asn1c/constr_TYPE.c new file mode 100644 index 0000000..aefaefd --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constr_TYPE.h b/src/asn/asn1c/constr_TYPE.h new file mode 100644 index 0000000..d80dea5 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constraints.c b/src/asn/asn1c/constraints.c new file mode 100644 index 0000000..df3c6c1 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/constraints.h b/src/asn/asn1c/constraints.h new file mode 100644 index 0000000..0bd86a9 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/der_encoder.c b/src/asn/asn1c/der_encoder.c new file mode 100644 index 0000000..2c6a6f7 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/der_encoder.h b/src/asn/asn1c/der_encoder.h new file mode 100644 index 0000000..e93944e --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_decoder.c b/src/asn/asn1c/per_decoder.c new file mode 100644 index 0000000..8a3e39d --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_decoder.h b/src/asn/asn1c/per_decoder.h new file mode 100644 index 0000000..eea474a --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_encoder.c b/src/asn/asn1c/per_encoder.c new file mode 100644 index 0000000..a5d73ce --- /dev/null +++ b/src/asn/asn1c/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; + + /* + * 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; + 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; + 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; + + /* + * 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/src/asn/asn1c/per_encoder.h b/src/asn/asn1c/per_encoder.h new file mode 100644 index 0000000..b615ef0 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_opentype.c b/src/asn/asn1c/per_opentype.c new file mode 100644 index 0000000..28f3cb6 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_opentype.h b/src/asn/asn1c/per_opentype.h new file mode 100644 index 0000000..1493b2d --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_support.c b/src/asn/asn1c/per_support.c new file mode 100644 index 0000000..2285677 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/per_support.h b/src/asn/asn1c/per_support.h new file mode 100644 index 0000000..5203687 --- /dev/null +++ b/src/asn/asn1c/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 long lower_bound; /* "lb" value */ + long 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/src/asn/asn1c/xer_decoder.c b/src/asn/asn1c/xer_decoder.c new file mode 100644 index 0000000..5b87703 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/xer_decoder.h b/src/asn/asn1c/xer_decoder.h new file mode 100644 index 0000000..b951c41 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/xer_encoder.c b/src/asn/asn1c/xer_encoder.c new file mode 100644 index 0000000..dff3c44 --- /dev/null +++ b/src/asn/asn1c/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; + + 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/src/asn/asn1c/xer_encoder.h b/src/asn/asn1c/xer_encoder.h new file mode 100644 index 0000000..9d75922 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/xer_support.c b/src/asn/asn1c/xer_support.c new file mode 100644 index 0000000..36b4bfb --- /dev/null +++ b/src/asn/asn1c/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/src/asn/asn1c/xer_support.h b/src/asn/asn1c/xer_support.h new file mode 100644 index 0000000..c3a36e7 --- /dev/null +++ b/src/asn/asn1c/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/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.c new file mode 100644 index 0000000..fb00c42 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationSetupItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem, aMF_TNLAssociationAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-TNLAssociationAddress" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-TNLAssociationAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationSetupItem), + offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem = { + "AMF-TNLAssociationSetupItem", + "AMF-TNLAssociationSetupItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.h new file mode 100644 index 0000000..1fe53cd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationSetupItem_H_ +#define _ASN_NGAP_AMF_TNLAssociationSetupItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AMF-TNLAssociationSetupItem */ +typedef struct ASN_NGAP_AMF_TNLAssociationSetupItem { + ASN_NGAP_CPTransportLayerInformation_t aMF_TNLAssociationAddress; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationSetupItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationSetupItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.c new file mode 100644 index 0000000..bc31c3f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationSetupList.h" + +#include "ASN_NGAP_AMF-TNLAssociationSetupItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationSetupList_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_ASN_NGAP_AMF_TNLAssociationSetupList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupList_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationSetupList), + offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList = { + "AMF-TNLAssociationSetupList", + "AMF-TNLAssociationSetupList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMF_TNLAssociationSetupList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.h new file mode 100644 index 0000000..fe51973 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationSetupList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationSetupList_H_ +#define _ASN_NGAP_AMF_TNLAssociationSetupList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AMF_TNLAssociationSetupItem; + +/* ASN_NGAP_AMF-TNLAssociationSetupList */ +typedef struct ASN_NGAP_AMF_TNLAssociationSetupList { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationSetupItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationSetupList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationSetupList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationSetupList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.c new file mode 100644 index 0000000..2bcb639 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToAddItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem, aMF_TNLAssociationAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-TNLAssociationAddress" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem, tNLAssociationUsage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNLAssociationUsage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationUsage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem, tNLAddressWeightFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNLAddressWeightFactor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAddressWeightFactor" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-TNLAssociationAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNLAssociationUsage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tNLAddressWeightFactor */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToAddItem), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem = { + "AMF-TNLAssociationToAddItem", + "AMF-TNLAssociationToAddItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.h new file mode 100644 index 0000000..2a9800e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToAddItem_H_ +#define _ASN_NGAP_AMF_TNLAssociationToAddItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include "ASN_NGAP_TNLAssociationUsage.h" +#include "ASN_NGAP_TNLAddressWeightFactor.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AMF-TNLAssociationToAddItem */ +typedef struct ASN_NGAP_AMF_TNLAssociationToAddItem { + ASN_NGAP_CPTransportLayerInformation_t aMF_TNLAssociationAddress; + ASN_NGAP_TNLAssociationUsage_t *tNLAssociationUsage; /* OPTIONAL */ + ASN_NGAP_TNLAddressWeightFactor_t tNLAddressWeightFactor; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToAddItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToAddItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.c new file mode 100644 index 0000000..c439ce1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToAddList.h" + +#include "ASN_NGAP_AMF-TNLAssociationToAddItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToAddList_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_ASN_NGAP_AMF_TNLAssociationToAddList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddList_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToAddList), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList = { + "AMF-TNLAssociationToAddList", + "AMF-TNLAssociationToAddList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMF_TNLAssociationToAddList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.h new file mode 100644 index 0000000..01c4e08 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToAddList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToAddList_H_ +#define _ASN_NGAP_AMF_TNLAssociationToAddList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AMF_TNLAssociationToAddItem; + +/* ASN_NGAP_AMF-TNLAssociationToAddList */ +typedef struct ASN_NGAP_AMF_TNLAssociationToAddList { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToAddItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToAddList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToAddList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToAddList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.c new file mode 100644 index 0000000..6bb94ef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToRemoveItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem, aMF_TNLAssociationAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-TNLAssociationAddress" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-TNLAssociationAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem = { + "AMF-TNLAssociationToRemoveItem", + "AMF-TNLAssociationToRemoveItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.h new file mode 100644 index 0000000..88b8b32 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToRemoveItem_H_ +#define _ASN_NGAP_AMF_TNLAssociationToRemoveItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AMF-TNLAssociationToRemoveItem */ +typedef struct ASN_NGAP_AMF_TNLAssociationToRemoveItem { + ASN_NGAP_CPTransportLayerInformation_t aMF_TNLAssociationAddress; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToRemoveItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToRemoveItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.c new file mode 100644 index 0000000..426fcc9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToRemoveList.h" + +#include "ASN_NGAP_AMF-TNLAssociationToRemoveItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToRemoveList_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_ASN_NGAP_AMF_TNLAssociationToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveList_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToRemoveList), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList = { + "AMF-TNLAssociationToRemoveList", + "AMF-TNLAssociationToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMF_TNLAssociationToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.h new file mode 100644 index 0000000..19498a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToRemoveList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToRemoveList_H_ +#define _ASN_NGAP_AMF_TNLAssociationToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AMF_TNLAssociationToRemoveItem; + +/* ASN_NGAP_AMF-TNLAssociationToRemoveList */ +typedef struct ASN_NGAP_AMF_TNLAssociationToRemoveList { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToRemoveList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.c new file mode 100644 index 0000000..92d19ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToUpdateItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem, aMF_TNLAssociationAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-TNLAssociationAddress" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem, tNLAssociationUsage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNLAssociationUsage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationUsage" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem, tNLAddressWeightFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNLAddressWeightFactor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAddressWeightFactor" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-TNLAssociationAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNLAssociationUsage */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tNLAddressWeightFactor */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem = { + "AMF-TNLAssociationToUpdateItem", + "AMF-TNLAssociationToUpdateItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.h new file mode 100644 index 0000000..1b8883f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToUpdateItem_H_ +#define _ASN_NGAP_AMF_TNLAssociationToUpdateItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include "ASN_NGAP_TNLAssociationUsage.h" +#include "ASN_NGAP_TNLAddressWeightFactor.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AMF-TNLAssociationToUpdateItem */ +typedef struct ASN_NGAP_AMF_TNLAssociationToUpdateItem { + ASN_NGAP_CPTransportLayerInformation_t aMF_TNLAssociationAddress; + ASN_NGAP_TNLAssociationUsage_t *tNLAssociationUsage; /* OPTIONAL */ + ASN_NGAP_TNLAddressWeightFactor_t *tNLAddressWeightFactor; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToUpdateItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToUpdateItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.c b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.c new file mode 100644 index 0000000..942d1a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-TNLAssociationToUpdateList.h" + +#include "ASN_NGAP_AMF-TNLAssociationToUpdateItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToUpdateList_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_ASN_NGAP_AMF_TNLAssociationToUpdateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateList_specs_1 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToUpdateList), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList = { + "AMF-TNLAssociationToUpdateList", + "AMF-TNLAssociationToUpdateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMF_TNLAssociationToUpdateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.h b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.h new file mode 100644 index 0000000..267a668 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-TNLAssociationToUpdateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_TNLAssociationToUpdateList_H_ +#define _ASN_NGAP_AMF_TNLAssociationToUpdateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AMF_TNLAssociationToUpdateItem; + +/* ASN_NGAP_AMF-TNLAssociationToUpdateList */ +typedef struct ASN_NGAP_AMF_TNLAssociationToUpdateList { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToUpdateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_TNLAssociationToUpdateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_TNLAssociationToUpdateList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.c b/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.c new file mode 100644 index 0000000..1e8469a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMF-UE-NGAP-ID.h" + +int +ASN_NGAP_AMF_UE_NGAP_ID_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 <= 1099511627775)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_AMF_UE_NGAP_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 40, -1, 0, 1099511627775 } /* (0..1099511627775) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID = { + "AMF-UE-NGAP-ID", + "AMF-UE-NGAP-ID", + &asn_OP_INTEGER, + asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMF_UE_NGAP_ID_constr_1, ASN_NGAP_AMF_UE_NGAP_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.h b/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.h new file mode 100644 index 0000000..aca061a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMF-UE-NGAP-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMF_UE_NGAP_ID_H_ +#define _ASN_NGAP_AMF_UE_NGAP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMF-UE-NGAP-ID */ +typedef INTEGER_t ASN_NGAP_AMF_UE_NGAP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMF_UE_NGAP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID; +asn_struct_free_f ASN_NGAP_AMF_UE_NGAP_ID_free; +asn_struct_print_f ASN_NGAP_AMF_UE_NGAP_ID_print; +asn_constr_check_f ASN_NGAP_AMF_UE_NGAP_ID_constraint; +ber_type_decoder_f ASN_NGAP_AMF_UE_NGAP_ID_decode_ber; +der_type_encoder_f ASN_NGAP_AMF_UE_NGAP_ID_encode_der; +xer_type_decoder_f ASN_NGAP_AMF_UE_NGAP_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_AMF_UE_NGAP_ID_encode_xer; +per_type_decoder_f ASN_NGAP_AMF_UE_NGAP_ID_decode_uper; +per_type_encoder_f ASN_NGAP_AMF_UE_NGAP_ID_encode_uper; +per_type_decoder_f ASN_NGAP_AMF_UE_NGAP_ID_decode_aper; +per_type_encoder_f ASN_NGAP_AMF_UE_NGAP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMF_UE_NGAP_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.c b/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.c new file mode 100644 index 0000000..da30b14 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFCPRelocationIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFCPRelocationIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFCPRelocationIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFCPRelocationIndication_specs_1 = { + sizeof(struct ASN_NGAP_AMFCPRelocationIndication), + offsetof(struct ASN_NGAP_AMFCPRelocationIndication, _asn_ctx), + asn_MAP_ASN_NGAP_AMFCPRelocationIndication_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_ASN_NGAP_AMFCPRelocationIndication = { + "AMFCPRelocationIndication", + "AMFCPRelocationIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFCPRelocationIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFCPRelocationIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.h b/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.h new file mode 100644 index 0000000..7c50f42 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFCPRelocationIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFCPRelocationIndication_H_ +#define _ASN_NGAP_AMFCPRelocationIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFCPRelocationIndication */ +typedef struct ASN_NGAP_AMFCPRelocationIndication { + ASN_NGAP_ProtocolIE_Container_123P99_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFCPRelocationIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFCPRelocationIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFCPRelocationIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFCPRelocationIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFCPRelocationIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.c b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.c new file mode 100644 index 0000000..af56832 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFConfigurationUpdate.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdate_specs_1 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdate), + offsetof(struct ASN_NGAP_AMFConfigurationUpdate, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdate_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_ASN_NGAP_AMFConfigurationUpdate = { + "AMFConfigurationUpdate", + "AMFConfigurationUpdate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.h b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.h new file mode 100644 index 0000000..409593c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFConfigurationUpdate_H_ +#define _ASN_NGAP_AMFConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFConfigurationUpdate */ +typedef struct ASN_NGAP_AMFConfigurationUpdate { + ASN_NGAP_ProtocolIE_Container_123P61_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFConfigurationUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFConfigurationUpdate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.c b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.c new file mode 100644 index 0000000..6aaccf3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFConfigurationUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledge), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdateAcknowledge_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_ASN_NGAP_AMFConfigurationUpdateAcknowledge = { + "AMFConfigurationUpdateAcknowledge", + "AMFConfigurationUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.h b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.h new file mode 100644 index 0000000..9fb851d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFConfigurationUpdateAcknowledge_H_ +#define _ASN_NGAP_AMFConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFConfigurationUpdateAcknowledge */ +typedef struct ASN_NGAP_AMFConfigurationUpdateAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P62_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFConfigurationUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFConfigurationUpdateAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.c b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.c new file mode 100644 index 0000000..cf1c2fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFConfigurationUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailure_specs_1 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateFailure), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailure, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdateFailure_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_ASN_NGAP_AMFConfigurationUpdateFailure = { + "AMFConfigurationUpdateFailure", + "AMFConfigurationUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.h b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.h new file mode 100644 index 0000000..19c6854 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFConfigurationUpdateFailure_H_ +#define _ASN_NGAP_AMFConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFConfigurationUpdateFailure */ +typedef struct ASN_NGAP_AMFConfigurationUpdateFailure { + ASN_NGAP_ProtocolIE_Container_123P63_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFConfigurationUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFConfigurationUpdateFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFName.c b/src/asn/ngap/ASN_NGAP_AMFName.c new file mode 100644 index 0000000..bff5212 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFName.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFName.h" + +static const int permitted_alphabet_table_1[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 permitted_alphabet_code2value_1[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,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +ASN_NGAP_AMFName_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; + 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 <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_ASN_NGAP_AMFName_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_ASN_NGAP_AMFName_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_ASN_NGAP_AMFName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_ASN_NGAP_AMFName_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFName = { + "AMFName", + "AMFName", + &asn_OP_PrintableString, + asn_DEF_ASN_NGAP_AMFName_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFName_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFName_constr_1, ASN_NGAP_AMFName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFName.h b/src/asn/ngap/ASN_NGAP_AMFName.h new file mode 100644 index 0000000..0d4a78f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFName_H_ +#define _ASN_NGAP_AMFName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFName */ +typedef PrintableString_t ASN_NGAP_AMFName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFName; +asn_struct_free_f ASN_NGAP_AMFName_free; +asn_struct_print_f ASN_NGAP_AMFName_print; +asn_constr_check_f ASN_NGAP_AMFName_constraint; +ber_type_decoder_f ASN_NGAP_AMFName_decode_ber; +der_type_encoder_f ASN_NGAP_AMFName_encode_der; +xer_type_decoder_f ASN_NGAP_AMFName_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFName_encode_xer; +per_type_decoder_f ASN_NGAP_AMFName_decode_uper; +per_type_encoder_f ASN_NGAP_AMFName_encode_uper; +per_type_decoder_f ASN_NGAP_AMFName_decode_aper; +per_type_encoder_f ASN_NGAP_AMFName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.c b/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.c new file mode 100644 index 0000000..8b3b3db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFNameUTF8String.h" + +int +ASN_NGAP_AMFNameUTF8String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_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 = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFNameUTF8String_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFNameUTF8String = { + "AMFNameUTF8String", + "AMFNameUTF8String", + &asn_OP_UTF8String, + asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFNameUTF8String_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFNameUTF8String_constr_1, ASN_NGAP_AMFNameUTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.h b/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.h new file mode 100644 index 0000000..bf5b23d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFNameUTF8String.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFNameUTF8String_H_ +#define _ASN_NGAP_AMFNameUTF8String_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFNameUTF8String */ +typedef UTF8String_t ASN_NGAP_AMFNameUTF8String_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFNameUTF8String_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFNameUTF8String; +asn_struct_free_f ASN_NGAP_AMFNameUTF8String_free; +asn_struct_print_f ASN_NGAP_AMFNameUTF8String_print; +asn_constr_check_f ASN_NGAP_AMFNameUTF8String_constraint; +ber_type_decoder_f ASN_NGAP_AMFNameUTF8String_decode_ber; +der_type_encoder_f ASN_NGAP_AMFNameUTF8String_encode_der; +xer_type_decoder_f ASN_NGAP_AMFNameUTF8String_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFNameUTF8String_encode_xer; +per_type_decoder_f ASN_NGAP_AMFNameUTF8String_decode_uper; +per_type_encoder_f ASN_NGAP_AMFNameUTF8String_encode_uper; +per_type_decoder_f ASN_NGAP_AMFNameUTF8String_decode_aper; +per_type_encoder_f ASN_NGAP_AMFNameUTF8String_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFNameUTF8String_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.c b/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.c new file mode 100644 index 0000000..3ab0a8b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFNameVisibleString.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is VisibleString */ + const VisibleString_t *st = (const VisibleString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv >= 32 && cv <= 126)) return -1; + } + return 0; +} + +int +ASN_NGAP_AMFNameVisibleString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const VisibleString_t *st = (const VisibleString_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 <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using VisibleString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFNameVisibleString_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 126 } /* (32..126) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFNameVisibleString = { + "AMFNameVisibleString", + "AMFNameVisibleString", + &asn_OP_VisibleString, + asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFNameVisibleString_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFNameVisibleString_constr_1, ASN_NGAP_AMFNameVisibleString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.h b/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.h new file mode 100644 index 0000000..1d6f3dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFNameVisibleString.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFNameVisibleString_H_ +#define _ASN_NGAP_AMFNameVisibleString_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFNameVisibleString */ +typedef VisibleString_t ASN_NGAP_AMFNameVisibleString_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFNameVisibleString_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFNameVisibleString; +asn_struct_free_f ASN_NGAP_AMFNameVisibleString_free; +asn_struct_print_f ASN_NGAP_AMFNameVisibleString_print; +asn_constr_check_f ASN_NGAP_AMFNameVisibleString_constraint; +ber_type_decoder_f ASN_NGAP_AMFNameVisibleString_decode_ber; +der_type_encoder_f ASN_NGAP_AMFNameVisibleString_encode_der; +xer_type_decoder_f ASN_NGAP_AMFNameVisibleString_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFNameVisibleString_encode_xer; +per_type_decoder_f ASN_NGAP_AMFNameVisibleString_decode_uper; +per_type_encoder_f ASN_NGAP_AMFNameVisibleString_encode_uper; +per_type_decoder_f ASN_NGAP_AMFNameVisibleString_decode_aper; +per_type_encoder_f ASN_NGAP_AMFNameVisibleString_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFNameVisibleString_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFPagingTarget.c b/src/asn/ngap/ASN_NGAP_AMFPagingTarget.c new file mode 100644 index 0000000..6556309 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFPagingTarget.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFPagingTarget.h" + +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFPagingTarget_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFPagingTarget_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AMFPagingTarget, choice.globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AMFPagingTarget, choice.tAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AMFPagingTarget, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFPagingTarget_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AMFPagingTarget_specs_1 = { + sizeof(struct ASN_NGAP_AMFPagingTarget), + offsetof(struct ASN_NGAP_AMFPagingTarget, _asn_ctx), + offsetof(struct ASN_NGAP_AMFPagingTarget, present), + sizeof(((struct ASN_NGAP_AMFPagingTarget *)0)->present), + asn_MAP_ASN_NGAP_AMFPagingTarget_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPagingTarget = { + "AMFPagingTarget", + "AMFPagingTarget", + &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_ASN_NGAP_AMFPagingTarget_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_AMFPagingTarget_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFPagingTarget_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFPagingTarget.h b/src/asn/ngap/ASN_NGAP_AMFPagingTarget.h new file mode 100644 index 0000000..7342a04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFPagingTarget.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFPagingTarget_H_ +#define _ASN_NGAP_AMFPagingTarget_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AMFPagingTarget_PR { + ASN_NGAP_AMFPagingTarget_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFPagingTarget_PR_globalRANNodeID, + ASN_NGAP_AMFPagingTarget_PR_tAI, + ASN_NGAP_AMFPagingTarget_PR_choice_Extensions +} ASN_NGAP_AMFPagingTarget_PR; + +/* Forward declarations */ +struct ASN_NGAP_GlobalRANNodeID; +struct ASN_NGAP_TAI; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_AMFPagingTarget */ +typedef struct ASN_NGAP_AMFPagingTarget { + ASN_NGAP_AMFPagingTarget_PR present; + union ASN_NGAP_AMFPagingTarget_u { + struct ASN_NGAP_GlobalRANNodeID *globalRANNodeID; + struct ASN_NGAP_TAI *tAI; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFPagingTarget_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPagingTarget; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AMFPagingTarget_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFPagingTarget_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFPagingTarget_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFPagingTarget_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFPointer.c b/src/asn/ngap/ASN_NGAP_AMFPointer.c new file mode 100644 index 0000000..9fdf60c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFPointer.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFPointer.h" + +int +ASN_NGAP_AMFPointer_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_ASN_NGAP_AMFPointer_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_ASN_NGAP_AMFPointer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPointer = { + "AMFPointer", + "AMFPointer", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_AMFPointer_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFPointer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFPointer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFPointer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFPointer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFPointer_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFPointer_constr_1, ASN_NGAP_AMFPointer_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFPointer.h b/src/asn/ngap/ASN_NGAP_AMFPointer.h new file mode 100644 index 0000000..72c4f02 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFPointer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFPointer_H_ +#define _ASN_NGAP_AMFPointer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFPointer */ +typedef BIT_STRING_t ASN_NGAP_AMFPointer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFPointer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPointer; +asn_struct_free_f ASN_NGAP_AMFPointer_free; +asn_struct_print_f ASN_NGAP_AMFPointer_print; +asn_constr_check_f ASN_NGAP_AMFPointer_constraint; +ber_type_decoder_f ASN_NGAP_AMFPointer_decode_ber; +der_type_encoder_f ASN_NGAP_AMFPointer_encode_der; +xer_type_decoder_f ASN_NGAP_AMFPointer_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFPointer_encode_xer; +per_type_decoder_f ASN_NGAP_AMFPointer_decode_uper; +per_type_encoder_f ASN_NGAP_AMFPointer_encode_uper; +per_type_decoder_f ASN_NGAP_AMFPointer_decode_aper; +per_type_encoder_f ASN_NGAP_AMFPointer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFPointer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFRegionID.c b/src/asn/ngap/ASN_NGAP_AMFRegionID.c new file mode 100644 index 0000000..f381ba4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFRegionID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFRegionID.h" + +int +ASN_NGAP_AMFRegionID_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_ASN_NGAP_AMFRegionID_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_ASN_NGAP_AMFRegionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFRegionID = { + "AMFRegionID", + "AMFRegionID", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_AMFRegionID_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFRegionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFRegionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFRegionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFRegionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFRegionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFRegionID_constr_1, ASN_NGAP_AMFRegionID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFRegionID.h b/src/asn/ngap/ASN_NGAP_AMFRegionID.h new file mode 100644 index 0000000..165ec81 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFRegionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFRegionID_H_ +#define _ASN_NGAP_AMFRegionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFRegionID */ +typedef BIT_STRING_t ASN_NGAP_AMFRegionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFRegionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFRegionID; +asn_struct_free_f ASN_NGAP_AMFRegionID_free; +asn_struct_print_f ASN_NGAP_AMFRegionID_print; +asn_constr_check_f ASN_NGAP_AMFRegionID_constraint; +ber_type_decoder_f ASN_NGAP_AMFRegionID_decode_ber; +der_type_encoder_f ASN_NGAP_AMFRegionID_encode_der; +xer_type_decoder_f ASN_NGAP_AMFRegionID_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFRegionID_encode_xer; +per_type_decoder_f ASN_NGAP_AMFRegionID_decode_uper; +per_type_encoder_f ASN_NGAP_AMFRegionID_encode_uper; +per_type_decoder_f ASN_NGAP_AMFRegionID_decode_aper; +per_type_encoder_f ASN_NGAP_AMFRegionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFRegionID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFSetID.c b/src/asn/ngap/ASN_NGAP_AMFSetID.c new file mode 100644 index 0000000..8b43431 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFSetID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFSetID.h" + +int +ASN_NGAP_AMFSetID_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 == 10)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_AMFSetID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFSetID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFSetID = { + "AMFSetID", + "AMFSetID", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_AMFSetID_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFSetID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFSetID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFSetID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFSetID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFSetID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AMFSetID_constr_1, ASN_NGAP_AMFSetID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFSetID.h b/src/asn/ngap/ASN_NGAP_AMFSetID.h new file mode 100644 index 0000000..07145b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFSetID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFSetID_H_ +#define _ASN_NGAP_AMFSetID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFSetID */ +typedef BIT_STRING_t ASN_NGAP_AMFSetID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AMFSetID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFSetID; +asn_struct_free_f ASN_NGAP_AMFSetID_free; +asn_struct_print_f ASN_NGAP_AMFSetID_print; +asn_constr_check_f ASN_NGAP_AMFSetID_constraint; +ber_type_decoder_f ASN_NGAP_AMFSetID_decode_ber; +der_type_encoder_f ASN_NGAP_AMFSetID_encode_der; +xer_type_decoder_f ASN_NGAP_AMFSetID_decode_xer; +xer_type_encoder_f ASN_NGAP_AMFSetID_encode_xer; +per_type_decoder_f ASN_NGAP_AMFSetID_decode_uper; +per_type_encoder_f ASN_NGAP_AMFSetID_encode_uper; +per_type_decoder_f ASN_NGAP_AMFSetID_decode_aper; +per_type_encoder_f ASN_NGAP_AMFSetID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFSetID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AMFStatusIndication.c b/src/asn/ngap/ASN_NGAP_AMFStatusIndication.c new file mode 100644 index 0000000..d3fbfe6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFStatusIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AMFStatusIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFStatusIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFStatusIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFStatusIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFStatusIndication_specs_1 = { + sizeof(struct ASN_NGAP_AMFStatusIndication), + offsetof(struct ASN_NGAP_AMFStatusIndication, _asn_ctx), + asn_MAP_ASN_NGAP_AMFStatusIndication_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_ASN_NGAP_AMFStatusIndication = { + "AMFStatusIndication", + "AMFStatusIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFStatusIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFStatusIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFStatusIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AMFStatusIndication.h b/src/asn/ngap/ASN_NGAP_AMFStatusIndication.h new file mode 100644 index 0000000..522d98a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AMFStatusIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AMFStatusIndication_H_ +#define _ASN_NGAP_AMFStatusIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AMFStatusIndication */ +typedef struct ASN_NGAP_AMFStatusIndication { + ASN_NGAP_ProtocolIE_Container_123P64_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFStatusIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFStatusIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFStatusIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFStatusIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AMFStatusIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ActivatedCellList.c b/src/asn/ngap/ASN_NGAP_ActivatedCellList.c new file mode 100644 index 0000000..8571144 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ActivatedCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ActivatedCellList.h" + +#include "ASN_NGAP_NGRAN-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ActivatedCellList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ActivatedCellList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ActivatedCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ActivatedCellList_specs_1 = { + sizeof(struct ASN_NGAP_ActivatedCellList), + offsetof(struct ASN_NGAP_ActivatedCellList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ActivatedCellList = { + "ActivatedCellList", + "ActivatedCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ActivatedCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_ActivatedCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ActivatedCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ActivatedCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ActivatedCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ActivatedCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ActivatedCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ActivatedCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ActivatedCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ActivatedCellList.h b/src/asn/ngap/ASN_NGAP_ActivatedCellList.h new file mode 100644 index 0000000..5256efc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ActivatedCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ActivatedCellList_H_ +#define _ASN_NGAP_ActivatedCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CGI; + +/* ASN_NGAP_ActivatedCellList */ +typedef struct ASN_NGAP_ActivatedCellList { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ActivatedCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ActivatedCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ActivatedCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ActivatedCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ActivatedCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ActivatedCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.c b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.c new file mode 100644 index 0000000..f7bdb69 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, additionalDL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDL-NGU-UP-TNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, additionalQosFlowSetupResponseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalQosFlowSetupResponseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, additionalDLForwardingUPTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDLForwardingUPTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalDL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalQosFlowSetupResponseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* additionalDLForwardingUPTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_specs_1 = { + sizeof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem), + offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, _asn_ctx), + asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem = { + "AdditionalDLUPTNLInformationForHOItem", + "AdditionalDLUPTNLInformationForHOItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h new file mode 100644 index 0000000..d289120 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_H_ +#define _ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_QosFlowListWithDataForwarding.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AdditionalDLUPTNLInformationForHOItem */ +typedef struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem { + ASN_NGAP_UPTransportLayerInformation_t additionalDL_NGU_UP_TNLInformation; + ASN_NGAP_QosFlowListWithDataForwarding_t additionalQosFlowSetupResponseList; + struct ASN_NGAP_UPTransportLayerInformation *additionalDLForwardingUPTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.c b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.c new file mode 100644 index 0000000..f89bcc5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h" + +#include "ASN_NGAP_AdditionalDLUPTNLInformationForHOItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_specs_1 = { + sizeof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOList), + offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList = { + "AdditionalDLUPTNLInformationForHOList", + "AdditionalDLUPTNLInformationForHOList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h new file mode 100644 index 0000000..3498593 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AdditionalDLUPTNLInformationForHOList_H_ +#define _ASN_NGAP_AdditionalDLUPTNLInformationForHOList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem; + +/* ASN_NGAP_AdditionalDLUPTNLInformationForHOList */ +typedef struct ASN_NGAP_AdditionalDLUPTNLInformationForHOList { + A_SEQUENCE_OF(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AdditionalDLUPTNLInformationForHOList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AdditionalDLUPTNLInformationForHOList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AdditionalDLUPTNLInformationForHOList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.c b/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.c new file mode 100644 index 0000000..f151cf2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AdditionalQosFlowInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AdditionalQosFlowInformation_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_ASN_NGAP_AdditionalQosFlowInformation_value2enum_1[] = { + { 0, 11, "more-likely" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_AdditionalQosFlowInformation_enum2value_1[] = { + 0 /* more-likely(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_AdditionalQosFlowInformation_specs_1 = { + asn_MAP_ASN_NGAP_AdditionalQosFlowInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_AdditionalQosFlowInformation_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_ASN_NGAP_AdditionalQosFlowInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalQosFlowInformation = { + "AdditionalQosFlowInformation", + "AdditionalQosFlowInformation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalQosFlowInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AdditionalQosFlowInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_AdditionalQosFlowInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.h b/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.h new file mode 100644 index 0000000..f031e61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AdditionalQosFlowInformation.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AdditionalQosFlowInformation_H_ +#define _ASN_NGAP_AdditionalQosFlowInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AdditionalQosFlowInformation { + ASN_NGAP_AdditionalQosFlowInformation_more_likely = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_AdditionalQosFlowInformation; + +/* ASN_NGAP_AdditionalQosFlowInformation */ +typedef long ASN_NGAP_AdditionalQosFlowInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AdditionalQosFlowInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalQosFlowInformation; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_AdditionalQosFlowInformation_specs_1; +asn_struct_free_f ASN_NGAP_AdditionalQosFlowInformation_free; +asn_struct_print_f ASN_NGAP_AdditionalQosFlowInformation_print; +asn_constr_check_f ASN_NGAP_AdditionalQosFlowInformation_constraint; +ber_type_decoder_f ASN_NGAP_AdditionalQosFlowInformation_decode_ber; +der_type_encoder_f ASN_NGAP_AdditionalQosFlowInformation_encode_der; +xer_type_decoder_f ASN_NGAP_AdditionalQosFlowInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_AdditionalQosFlowInformation_encode_xer; +per_type_decoder_f ASN_NGAP_AdditionalQosFlowInformation_decode_uper; +per_type_encoder_f ASN_NGAP_AdditionalQosFlowInformation_encode_uper; +per_type_decoder_f ASN_NGAP_AdditionalQosFlowInformation_decode_aper; +per_type_encoder_f ASN_NGAP_AdditionalQosFlowInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AdditionalQosFlowInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.c b/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.c new file mode 100644 index 0000000..bc3dbf1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AllocationAndRetentionPriority.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority, priorityLevelARP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PriorityLevelARP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorityLevelARP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority, pre_emptionCapability), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Pre_emptionCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority, pre_emptionVulnerability), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Pre_emptionVulnerability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-emptionVulnerability" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevelARP */ + { (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_ASN_NGAP_AllocationAndRetentionPriority_specs_1 = { + sizeof(struct ASN_NGAP_AllocationAndRetentionPriority), + offsetof(struct ASN_NGAP_AllocationAndRetentionPriority, _asn_ctx), + asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority = { + "AllocationAndRetentionPriority", + "AllocationAndRetentionPriority", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1, + sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_AllocationAndRetentionPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.h b/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.h new file mode 100644 index 0000000..161e4be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllocationAndRetentionPriority.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AllocationAndRetentionPriority_H_ +#define _ASN_NGAP_AllocationAndRetentionPriority_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PriorityLevelARP.h" +#include "ASN_NGAP_Pre-emptionCapability.h" +#include "ASN_NGAP_Pre-emptionVulnerability.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AllocationAndRetentionPriority */ +typedef struct ASN_NGAP_AllocationAndRetentionPriority { + ASN_NGAP_PriorityLevelARP_t priorityLevelARP; + ASN_NGAP_Pre_emptionCapability_t pre_emptionCapability; + ASN_NGAP_Pre_emptionVulnerability_t pre_emptionVulnerability; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllocationAndRetentionPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllocationAndRetentionPriority_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AllocationAndRetentionPriority_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c b/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c new file mode 100644 index 0000000..52313ae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Allowed-CAG-List-per-PLMN.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_Allowed_CAG_List_per_PLMN_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_ASN_NGAP_Allowed_CAG_List_per_PLMN_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_CAG_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_Allowed_CAG_List_per_PLMN_specs_1 = { + sizeof(struct ASN_NGAP_Allowed_CAG_List_per_PLMN), + offsetof(struct ASN_NGAP_Allowed_CAG_List_per_PLMN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN = { + "Allowed-CAG-List-per-PLMN", + "Allowed-CAG-List-per-PLMN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1, + sizeof(asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Allowed_CAG_List_per_PLMN_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_Allowed_CAG_List_per_PLMN_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_Allowed_CAG_List_per_PLMN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h b/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h new file mode 100644 index 0000000..4e060a6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-CAG-List-per-PLMN.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Allowed_CAG_List_per_PLMN_H_ +#define _ASN_NGAP_Allowed_CAG_List_per_PLMN_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CAG-ID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Allowed-CAG-List-per-PLMN */ +typedef struct ASN_NGAP_Allowed_CAG_List_per_PLMN { + A_SEQUENCE_OF(ASN_NGAP_CAG_ID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Allowed_CAG_List_per_PLMN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_Allowed_CAG_List_per_PLMN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_CAG_List_per_PLMN_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Allowed_CAG_List_per_PLMN_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Allowed_CAG_List_per_PLMN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c new file mode 100644 index 0000000..e03c2d1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Allowed-PNI-NPN-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_pNI_NPN_restricted_constr_3 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_ASN_NGAP_pNI_NPN_restricted_value2enum_3[] = { + { 0, 10, "restricted" }, + { 1, 14, "not-restricted" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_pNI_NPN_restricted_enum2value_3[] = { + 1, /* not-restricted(1) */ + 0 /* restricted(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_pNI_NPN_restricted_specs_3 = { + asn_MAP_ASN_NGAP_pNI_NPN_restricted_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_pNI_NPN_restricted_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_pNI_NPN_restricted_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_ASN_NGAP_pNI_NPN_restricted_3 = { + "pNI-NPN-restricted", + "pNI-NPN-restricted", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3, + sizeof(asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3) + /sizeof(asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3) + /sizeof(asn_DEF_ASN_NGAP_pNI_NPN_restricted_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_pNI_NPN_restricted_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_pNI_NPN_restricted_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item, pNI_NPN_restricted), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_pNI_NPN_restricted_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pNI-NPN-restricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item, allowed_CAG_List_per_PLMN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Allowed_CAG_List_per_PLMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowed-CAG-List-per-PLMN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pNI-NPN-restricted */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* allowed-CAG-List-per-PLMN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_specs_1 = { + sizeof(struct ASN_NGAP_Allowed_PNI_NPN_Item), + offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item, _asn_ctx), + asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item = { + "Allowed-PNI-NPN-Item", + "Allowed-PNI-NPN-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h new file mode 100644 index 0000000..a83907a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-Item.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Allowed_PNI_NPN_Item_H_ +#define _ASN_NGAP_Allowed_PNI_NPN_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include "ASN_NGAP_Allowed-CAG-List-per-PLMN.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Allowed_PNI_NPN_Item__pNI_NPN_restricted { + ASN_NGAP_Allowed_PNI_NPN_Item__pNI_NPN_restricted_restricted = 0, + ASN_NGAP_Allowed_PNI_NPN_Item__pNI_NPN_restricted_not_restricted = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Allowed_PNI_NPN_Item__pNI_NPN_restricted; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_Allowed-PNI-NPN-Item */ +typedef struct ASN_NGAP_Allowed_PNI_NPN_Item { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + long pNI_NPN_restricted; + ASN_NGAP_Allowed_CAG_List_per_PLMN_t allowed_CAG_List_per_PLMN; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Allowed_PNI_NPN_Item_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_pNI_NPN_restricted_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Allowed_PNI_NPN_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.c b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.c new file mode 100644 index 0000000..78bd707 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Allowed-PNI-NPN-List.h" + +#include "ASN_NGAP_Allowed-PNI-NPN-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_Allowed_PNI_NPN_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_ASN_NGAP_Allowed_PNI_NPN_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_List_specs_1 = { + sizeof(struct ASN_NGAP_Allowed_PNI_NPN_List), + offsetof(struct ASN_NGAP_Allowed_PNI_NPN_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List = { + "Allowed-PNI-NPN-List", + "Allowed-PNI-NPN-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1, + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Allowed_PNI_NPN_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_Allowed_PNI_NPN_List_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_Allowed_PNI_NPN_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.h b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.h new file mode 100644 index 0000000..40eb753 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Allowed-PNI-NPN-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Allowed_PNI_NPN_List_H_ +#define _ASN_NGAP_Allowed_PNI_NPN_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_Allowed_PNI_NPN_Item; + +/* ASN_NGAP_Allowed-PNI-NPN-List */ +typedef struct ASN_NGAP_Allowed_PNI_NPN_List { + A_SEQUENCE_OF(struct ASN_NGAP_Allowed_PNI_NPN_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Allowed_PNI_NPN_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_PNI_NPN_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Allowed_PNI_NPN_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Allowed_PNI_NPN_List_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.c b/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.c new file mode 100644 index 0000000..52bfc1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AllowedNSSAI-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedNSSAI_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllowedNSSAI_Item, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AllowedNSSAI_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AllowedNSSAI_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AllowedNSSAI_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_Item_specs_1 = { + sizeof(struct ASN_NGAP_AllowedNSSAI_Item), + offsetof(struct ASN_NGAP_AllowedNSSAI_Item, _asn_ctx), + asn_MAP_ASN_NGAP_AllowedNSSAI_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AllowedNSSAI_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item = { + "AllowedNSSAI-Item", + "AllowedNSSAI-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AllowedNSSAI_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AllowedNSSAI_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.h b/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.h new file mode 100644 index 0000000..526f17c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedNSSAI-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AllowedNSSAI_Item_H_ +#define _ASN_NGAP_AllowedNSSAI_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AllowedNSSAI-Item */ +typedef struct ASN_NGAP_AllowedNSSAI_Item { + ASN_NGAP_S_NSSAI_t s_NSSAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllowedNSSAI_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedNSSAI_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AllowedNSSAI_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AllowedNSSAI.c b/src/asn/ngap/ASN_NGAP_AllowedNSSAI.c new file mode 100644 index 0000000..ee46a91 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedNSSAI.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AllowedNSSAI.h" + +#include "ASN_NGAP_AllowedNSSAI-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AllowedNSSAI_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_ASN_NGAP_AllowedNSSAI_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_specs_1 = { + sizeof(struct ASN_NGAP_AllowedNSSAI), + offsetof(struct ASN_NGAP_AllowedNSSAI, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI = { + "AllowedNSSAI", + "AllowedNSSAI", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AllowedNSSAI_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AllowedNSSAI_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AllowedNSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AllowedNSSAI.h b/src/asn/ngap/ASN_NGAP_AllowedNSSAI.h new file mode 100644 index 0000000..933c942 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedNSSAI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AllowedNSSAI_H_ +#define _ASN_NGAP_AllowedNSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AllowedNSSAI_Item; + +/* ASN_NGAP_AllowedNSSAI */ +typedef struct ASN_NGAP_AllowedNSSAI { + A_SEQUENCE_OF(struct ASN_NGAP_AllowedNSSAI_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllowedNSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedNSSAI_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AllowedNSSAI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AllowedNSSAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AllowedTACs.c b/src/asn/ngap/ASN_NGAP_AllowedTACs.c new file mode 100644 index 0000000..7ab944c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedTACs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AllowedTACs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_AllowedTACs_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_ASN_NGAP_AllowedTACs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllowedTACs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AllowedTACs_specs_1 = { + sizeof(struct ASN_NGAP_AllowedTACs), + offsetof(struct ASN_NGAP_AllowedTACs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedTACs = { + "AllowedTACs", + "AllowedTACs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AllowedTACs_tags_1, + sizeof(asn_DEF_ASN_NGAP_AllowedTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedTACs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllowedTACs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllowedTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AllowedTACs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AllowedTACs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AllowedTACs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AllowedTACs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AllowedTACs.h b/src/asn/ngap/ASN_NGAP_AllowedTACs.h new file mode 100644 index 0000000..356193a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AllowedTACs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AllowedTACs_H_ +#define _ASN_NGAP_AllowedTACs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AllowedTACs */ +typedef struct ASN_NGAP_AllowedTACs { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllowedTACs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedTACs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AllowedTACs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedTACs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AllowedTACs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AllowedTACs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.c b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.c new file mode 100644 index 0000000..af5edfb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AlternativeQoSParaSetIndex.h" + +int +ASN_NGAP_AlternativeQoSParaSetIndex_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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetIndex_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_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex = { + "AlternativeQoSParaSetIndex", + "AlternativeQoSParaSetIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1, + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AlternativeQoSParaSetIndex_constr_1, ASN_NGAP_AlternativeQoSParaSetIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.h b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.h new file mode 100644 index 0000000..737abe7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AlternativeQoSParaSetIndex_H_ +#define _ASN_NGAP_AlternativeQoSParaSetIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AlternativeQoSParaSetIndex */ +typedef long ASN_NGAP_AlternativeQoSParaSetIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex; +asn_struct_free_f ASN_NGAP_AlternativeQoSParaSetIndex_free; +asn_struct_print_f ASN_NGAP_AlternativeQoSParaSetIndex_print; +asn_constr_check_f ASN_NGAP_AlternativeQoSParaSetIndex_constraint; +ber_type_decoder_f ASN_NGAP_AlternativeQoSParaSetIndex_decode_ber; +der_type_encoder_f ASN_NGAP_AlternativeQoSParaSetIndex_encode_der; +xer_type_decoder_f ASN_NGAP_AlternativeQoSParaSetIndex_decode_xer; +xer_type_encoder_f ASN_NGAP_AlternativeQoSParaSetIndex_encode_xer; +per_type_decoder_f ASN_NGAP_AlternativeQoSParaSetIndex_decode_uper; +per_type_encoder_f ASN_NGAP_AlternativeQoSParaSetIndex_encode_uper; +per_type_decoder_f ASN_NGAP_AlternativeQoSParaSetIndex_decode_aper; +per_type_encoder_f ASN_NGAP_AlternativeQoSParaSetIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AlternativeQoSParaSetIndex_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.c b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.c new file mode 100644 index 0000000..7784cfc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AlternativeQoSParaSetItem.h" + +#include "ASN_NGAP_PacketErrorRate.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, alternativeQoSParaSetIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alternativeQoSParaSetIndex" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, guaranteedFlowBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateDL" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, guaranteedFlowBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateUL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, packetDelayBudget), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetDelayBudget" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, packetErrorRate), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketErrorRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetErrorRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* alternativeQoSParaSetIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* guaranteedFlowBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* guaranteedFlowBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* packetDelayBudget */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* packetErrorRate */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_specs_1 = { + sizeof(struct ASN_NGAP_AlternativeQoSParaSetItem), + offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem, _asn_ctx), + asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem = { + "AlternativeQoSParaSetItem", + "AlternativeQoSParaSetItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.h b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.h new file mode 100644 index 0000000..b90a2aa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetItem.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AlternativeQoSParaSetItem_H_ +#define _ASN_NGAP_AlternativeQoSParaSetItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AlternativeQoSParaSetIndex.h" +#include "ASN_NGAP_BitRate.h" +#include "ASN_NGAP_PacketDelayBudget.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PacketErrorRate; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AlternativeQoSParaSetItem */ +typedef struct ASN_NGAP_AlternativeQoSParaSetItem { + ASN_NGAP_AlternativeQoSParaSetIndex_t alternativeQoSParaSetIndex; + ASN_NGAP_BitRate_t *guaranteedFlowBitRateDL; /* OPTIONAL */ + ASN_NGAP_BitRate_t *guaranteedFlowBitRateUL; /* OPTIONAL */ + ASN_NGAP_PacketDelayBudget_t *packetDelayBudget; /* OPTIONAL */ + struct ASN_NGAP_PacketErrorRate *packetErrorRate; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AlternativeQoSParaSetItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AlternativeQoSParaSetItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.c b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.c new file mode 100644 index 0000000..59c1b34 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AlternativeQoSParaSetList.h" + +#include "ASN_NGAP_AlternativeQoSParaSetItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetList_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_ASN_NGAP_AlternativeQoSParaSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetList_specs_1 = { + sizeof(struct ASN_NGAP_AlternativeQoSParaSetList), + offsetof(struct ASN_NGAP_AlternativeQoSParaSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetList = { + "AlternativeQoSParaSetList", + "AlternativeQoSParaSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AlternativeQoSParaSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AlternativeQoSParaSetList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AlternativeQoSParaSetList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.h b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.h new file mode 100644 index 0000000..aae75fd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AlternativeQoSParaSetList_H_ +#define _ASN_NGAP_AlternativeQoSParaSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AlternativeQoSParaSetItem; + +/* ASN_NGAP_AlternativeQoSParaSetList */ +typedef struct ASN_NGAP_AlternativeQoSParaSetList { + A_SEQUENCE_OF(struct ASN_NGAP_AlternativeQoSParaSetItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AlternativeQoSParaSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AlternativeQoSParaSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AlternativeQoSParaSetList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.c b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.c new file mode 100644 index 0000000..b84dfc6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h" + +int +ASN_NGAP_AlternativeQoSParaSetNotifyIndex_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 <= 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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_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 ber_tlv_tag_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex = { + "AlternativeQoSParaSetNotifyIndex", + "AlternativeQoSParaSetNotifyIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1, + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_constr_1, ASN_NGAP_AlternativeQoSParaSetNotifyIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h new file mode 100644 index 0000000..47e74c0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AlternativeQoSParaSetNotifyIndex_H_ +#define _ASN_NGAP_AlternativeQoSParaSetNotifyIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AlternativeQoSParaSetNotifyIndex */ +typedef long ASN_NGAP_AlternativeQoSParaSetNotifyIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AlternativeQoSParaSetNotifyIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex; +asn_struct_free_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_free; +asn_struct_print_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_print; +asn_constr_check_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_constraint; +ber_type_decoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_decode_ber; +der_type_encoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_encode_der; +xer_type_decoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_decode_xer; +xer_type_encoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_encode_xer; +per_type_decoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_decode_uper; +per_type_encoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_encode_uper; +per_type_decoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_decode_aper; +per_type_encoder_f ASN_NGAP_AlternativeQoSParaSetNotifyIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AlternativeQoSParaSetNotifyIndex_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterest.c b/src/asn/ngap/ASN_NGAP_AreaOfInterest.c new file mode 100644 index 0000000..9d01c37 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterest.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterest.h" + +#include "ASN_NGAP_AreaOfInterestTAIList.h" +#include "ASN_NGAP_AreaOfInterestCellList.h" +#include "ASN_NGAP_AreaOfInterestRANNodeList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterest_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_AreaOfInterest, areaOfInterestTAIList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaOfInterestTAIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaOfInterestTAIList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_AreaOfInterest, areaOfInterestCellList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaOfInterestCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaOfInterestCellList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AreaOfInterest, areaOfInterestRANNodeList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaOfInterestRANNodeList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaOfInterest, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaOfInterest_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* areaOfInterestTAIList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* areaOfInterestCellList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* areaOfInterestRANNodeList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterest_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterest), + offsetof(struct ASN_NGAP_AreaOfInterest, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterest_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaOfInterest_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterest = { + "AreaOfInterest", + "AreaOfInterest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterest_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterest_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterest.h b/src/asn/ngap/ASN_NGAP_AreaOfInterest.h new file mode 100644 index 0000000..8302af1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterest.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterest_H_ +#define _ASN_NGAP_AreaOfInterest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestTAIList; +struct ASN_NGAP_AreaOfInterestCellList; +struct ASN_NGAP_AreaOfInterestRANNodeList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaOfInterest */ +typedef struct ASN_NGAP_AreaOfInterest { + struct ASN_NGAP_AreaOfInterestTAIList *areaOfInterestTAIList; /* OPTIONAL */ + struct ASN_NGAP_AreaOfInterestCellList *areaOfInterestCellList; /* OPTIONAL */ + struct ASN_NGAP_AreaOfInterestRANNodeList *areaOfInterestRANNodeList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterest_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.c new file mode 100644 index 0000000..e0dba2f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestCellItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestCellItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestCellItem, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaOfInterestCellItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaOfInterestCellItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestCellItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellItem_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestCellItem), + offsetof(struct ASN_NGAP_AreaOfInterestCellItem, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestCellItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaOfInterestCellItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem = { + "AreaOfInterestCellItem", + "AreaOfInterestCellItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestCellItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestCellItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.h new file mode 100644 index 0000000..c20fedd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestCellItem_H_ +#define _ASN_NGAP_AreaOfInterestCellItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaOfInterestCellItem */ +typedef struct ASN_NGAP_AreaOfInterestCellItem { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestCellItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestCellItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestCellItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.c new file mode 100644 index 0000000..f471d64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestCellList.h" + +#include "ASN_NGAP_AreaOfInterestCellItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestCellList_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_ASN_NGAP_AreaOfInterestCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestCellItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellList_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestCellList), + offsetof(struct ASN_NGAP_AreaOfInterestCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellList = { + "AreaOfInterestCellList", + "AreaOfInterestCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AreaOfInterestCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AreaOfInterestCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.h new file mode 100644 index 0000000..9fae5b2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestCellList_H_ +#define _ASN_NGAP_AreaOfInterestCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestCellItem; + +/* ASN_NGAP_AreaOfInterestCellList */ +typedef struct ASN_NGAP_AreaOfInterestCellList { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestCellItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.c new file mode 100644 index 0000000..1d07138 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestItem, areaOfInterest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaOfInterest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaOfInterest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestItem, locationReportingReferenceID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LocationReportingReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationReportingReferenceID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaOfInterestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaOfInterestItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* areaOfInterest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationReportingReferenceID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestItem_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestItem), + offsetof(struct ASN_NGAP_AreaOfInterestItem, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaOfInterestItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestItem = { + "AreaOfInterestItem", + "AreaOfInterestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.h new file mode 100644 index 0000000..d319cf2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestItem_H_ +#define _ASN_NGAP_AreaOfInterestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AreaOfInterest.h" +#include "ASN_NGAP_LocationReportingReferenceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaOfInterestItem */ +typedef struct ASN_NGAP_AreaOfInterestItem { + ASN_NGAP_AreaOfInterest_t areaOfInterest; + ASN_NGAP_LocationReportingReferenceID_t locationReportingReferenceID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestList.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestList.c new file mode 100644 index 0000000..bd86d04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestList.h" + +#include "ASN_NGAP_AreaOfInterestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestList_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestList), + offsetof(struct ASN_NGAP_AreaOfInterestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestList = { + "AreaOfInterestList", + "AreaOfInterestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AreaOfInterestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AreaOfInterestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestList.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestList.h new file mode 100644 index 0000000..5e13c67 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestList_H_ +#define _ASN_NGAP_AreaOfInterestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestItem; + +/* ASN_NGAP_AreaOfInterestList */ +typedef struct ASN_NGAP_AreaOfInterestList { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c new file mode 100644 index 0000000..bce1e7e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestRANNodeItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestRANNodeItem), + offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem = { + "AreaOfInterestRANNodeItem", + "AreaOfInterestRANNodeItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h new file mode 100644 index 0000000..4cf29b9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestRANNodeItem_H_ +#define _ASN_NGAP_AreaOfInterestRANNodeItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaOfInterestRANNodeItem */ +typedef struct ASN_NGAP_AreaOfInterestRANNodeItem { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestRANNodeItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestRANNodeItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.c new file mode 100644 index 0000000..cbeee6e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestRANNodeList.h" + +#include "ASN_NGAP_AreaOfInterestRANNodeItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestRANNodeList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeList_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestRANNodeList), + offsetof(struct ASN_NGAP_AreaOfInterestRANNodeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList = { + "AreaOfInterestRANNodeList", + "AreaOfInterestRANNodeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AreaOfInterestRANNodeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestRANNodeList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AreaOfInterestRANNodeList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.h new file mode 100644 index 0000000..07f789b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestRANNodeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestRANNodeList_H_ +#define _ASN_NGAP_AreaOfInterestRANNodeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestRANNodeItem; + +/* ASN_NGAP_AreaOfInterestRANNodeList */ +typedef struct ASN_NGAP_AreaOfInterestRANNodeList { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestRANNodeItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestRANNodeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestRANNodeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestRANNodeList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.c new file mode 100644 index 0000000..753df01 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestTAIItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestTAIItem, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaOfInterestTAIItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestTAIItem), + offsetof(struct ASN_NGAP_AreaOfInterestTAIItem, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem = { + "AreaOfInterestTAIItem", + "AreaOfInterestTAIItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.h new file mode 100644 index 0000000..c21c480 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestTAIItem_H_ +#define _ASN_NGAP_AreaOfInterestTAIItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaOfInterestTAIItem */ +typedef struct ASN_NGAP_AreaOfInterestTAIItem { + ASN_NGAP_TAI_t tAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestTAIItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestTAIItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.c b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.c new file mode 100644 index 0000000..f66272a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaOfInterestTAIList.h" + +#include "ASN_NGAP_AreaOfInterestTAIItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestTAIList_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_ASN_NGAP_AreaOfInterestTAIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestTAIItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIList_specs_1 = { + sizeof(struct ASN_NGAP_AreaOfInterestTAIList), + offsetof(struct ASN_NGAP_AreaOfInterestTAIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIList = { + "AreaOfInterestTAIList", + "AreaOfInterestTAIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AreaOfInterestTAIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestTAIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AreaOfInterestTAIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.h b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.h new file mode 100644 index 0000000..a25e2b2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaOfInterestTAIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaOfInterestTAIList_H_ +#define _ASN_NGAP_AreaOfInterestTAIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestTAIItem; + +/* ASN_NGAP_AreaOfInterestTAIList */ +typedef struct ASN_NGAP_AreaOfInterestTAIList { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestTAIItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestTAIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestTAIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaOfInterestTAIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaOfInterestTAIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c new file mode 100644 index 0000000..4a340a6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaScopeOfMDT-EUTRA.h" + +#include "ASN_NGAP_CellBasedMDT-EUTRA.h" +#include "ASN_NGAP_TABasedMDT.h" +#include "ASN_NGAP_TAIBasedMDT.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfMDT_EUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, choice.cellBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, choice.tABased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TABasedMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tABased" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, 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 ASN_NGAP_AreaScopeOfMDT_EUTRA, choice.tAIBased), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIBasedMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfMDT_EUTRA_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_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA, present), + sizeof(((struct ASN_NGAP_AreaScopeOfMDT_EUTRA *)0)->present), + asn_MAP_ASN_NGAP_AreaScopeOfMDT_EUTRA_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA = { + "AreaScopeOfMDT-EUTRA", + "AreaScopeOfMDT-EUTRA", + &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_ASN_NGAP_AreaScopeOfMDT_EUTRA_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h new file mode 100644 index 0000000..fed1d04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-EUTRA.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaScopeOfMDT_EUTRA_H_ +#define _ASN_NGAP_AreaScopeOfMDT_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AreaScopeOfMDT_EUTRA_PR { + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_NOTHING, /* No components present */ + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_cellBased, + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_tABased, + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_pLMNWide, + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_tAIBased, + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR_choice_Extensions +} ASN_NGAP_AreaScopeOfMDT_EUTRA_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellBasedMDT_EUTRA; +struct ASN_NGAP_TABasedMDT; +struct ASN_NGAP_TAIBasedMDT; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_AreaScopeOfMDT-EUTRA */ +typedef struct ASN_NGAP_AreaScopeOfMDT_EUTRA { + ASN_NGAP_AreaScopeOfMDT_EUTRA_PR present; + union ASN_NGAP_AreaScopeOfMDT_EUTRA_u { + struct ASN_NGAP_CellBasedMDT_EUTRA *cellBased; + struct ASN_NGAP_TABasedMDT *tABased; + NULL_t pLMNWide; + struct ASN_NGAP_TAIBasedMDT *tAIBased; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfMDT_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfMDT_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaScopeOfMDT_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.c b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.c new file mode 100644 index 0000000..edbc373 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaScopeOfMDT-NR.h" + +#include "ASN_NGAP_CellBasedMDT-NR.h" +#include "ASN_NGAP_TABasedMDT.h" +#include "ASN_NGAP_TAIBasedMDT.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfMDT_NR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, choice.cellBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellBasedMDT_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, choice.tABased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TABasedMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tABased" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, 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 ASN_NGAP_AreaScopeOfMDT_NR, choice.tAIBased), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIBasedMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfMDT_NR_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_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_specs_1 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_NR), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR, present), + sizeof(((struct ASN_NGAP_AreaScopeOfMDT_NR *)0)->present), + asn_MAP_ASN_NGAP_AreaScopeOfMDT_NR_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR = { + "AreaScopeOfMDT-NR", + "AreaScopeOfMDT-NR", + &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_ASN_NGAP_AreaScopeOfMDT_NR_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.h b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.h new file mode 100644 index 0000000..9233ef6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfMDT-NR.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaScopeOfMDT_NR_H_ +#define _ASN_NGAP_AreaScopeOfMDT_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AreaScopeOfMDT_NR_PR { + ASN_NGAP_AreaScopeOfMDT_NR_PR_NOTHING, /* No components present */ + ASN_NGAP_AreaScopeOfMDT_NR_PR_cellBased, + ASN_NGAP_AreaScopeOfMDT_NR_PR_tABased, + ASN_NGAP_AreaScopeOfMDT_NR_PR_pLMNWide, + ASN_NGAP_AreaScopeOfMDT_NR_PR_tAIBased, + ASN_NGAP_AreaScopeOfMDT_NR_PR_choice_Extensions +} ASN_NGAP_AreaScopeOfMDT_NR_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellBasedMDT_NR; +struct ASN_NGAP_TABasedMDT; +struct ASN_NGAP_TAIBasedMDT; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_AreaScopeOfMDT-NR */ +typedef struct ASN_NGAP_AreaScopeOfMDT_NR { + ASN_NGAP_AreaScopeOfMDT_NR_PR present; + union ASN_NGAP_AreaScopeOfMDT_NR_u { + struct ASN_NGAP_CellBasedMDT_NR *cellBased; + struct ASN_NGAP_TABasedMDT *tABased; + NULL_t pLMNWide; + struct ASN_NGAP_TAIBasedMDT *tAIBased; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfMDT_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfMDT_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaScopeOfMDT_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c new file mode 100644 index 0000000..f9d9bbc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaScopeOfNeighCellsItem.h" + +#include "ASN_NGAP_PCIListForMDT.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem, nrFrequencyInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRFrequencyInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrFrequencyInfo" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem, pciListForMDT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PCIListForMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pciListForMDT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrFrequencyInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pciListForMDT */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_specs_1 = { + sizeof(struct ASN_NGAP_AreaScopeOfNeighCellsItem), + offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem, _asn_ctx), + asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem = { + "AreaScopeOfNeighCellsItem", + "AreaScopeOfNeighCellsItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h new file mode 100644 index 0000000..442470b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaScopeOfNeighCellsItem_H_ +#define _ASN_NGAP_AreaScopeOfNeighCellsItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRFrequencyInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PCIListForMDT; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AreaScopeOfNeighCellsItem */ +typedef struct ASN_NGAP_AreaScopeOfNeighCellsItem { + ASN_NGAP_NRFrequencyInfo_t nrFrequencyInfo; + struct ASN_NGAP_PCIListForMDT *pciListForMDT; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfNeighCellsItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaScopeOfNeighCellsItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c new file mode 100644 index 0000000..3f757c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaScopeOfNeighCellsList.h" + +#include "ASN_NGAP_AreaScopeOfNeighCellsItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfNeighCellsList_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_ASN_NGAP_AreaScopeOfNeighCellsList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsList_specs_1 = { + sizeof(struct ASN_NGAP_AreaScopeOfNeighCellsList), + offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList = { + "AreaScopeOfNeighCellsList", + "AreaScopeOfNeighCellsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AreaScopeOfNeighCellsList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h new file mode 100644 index 0000000..54fed1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfNeighCellsList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaScopeOfNeighCellsList_H_ +#define _ASN_NGAP_AreaScopeOfNeighCellsList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaScopeOfNeighCellsItem; + +/* ASN_NGAP_AreaScopeOfNeighCellsList */ +typedef struct ASN_NGAP_AreaScopeOfNeighCellsList { + A_SEQUENCE_OF(struct ASN_NGAP_AreaScopeOfNeighCellsItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfNeighCellsList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfNeighCellsList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaScopeOfNeighCellsList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.c b/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.c new file mode 100644 index 0000000..e3e751e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AreaScopeOfQMC.h" + +#include "ASN_NGAP_CellBasedQMC.h" +#include "ASN_NGAP_TABasedQMC.h" +#include "ASN_NGAP_TAIBasedQMC.h" +#include "ASN_NGAP_PLMNAreaBasedQMC.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfQMC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfQMC_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC, choice.cellBased), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellBasedQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC, choice.tABased), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TABasedQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tABased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC, choice.tAIBased), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIBasedQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC, choice.pLMNAreaBased), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNAreaBasedQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNAreaBased" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfQMC_specs_1 = { + sizeof(struct ASN_NGAP_AreaScopeOfQMC), + offsetof(struct ASN_NGAP_AreaScopeOfQMC, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfQMC, present), + sizeof(((struct ASN_NGAP_AreaScopeOfQMC *)0)->present), + asn_MAP_ASN_NGAP_AreaScopeOfQMC_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_AreaScopeOfQMC_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfQMC_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.h b/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.h new file mode 100644 index 0000000..e0df793 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AreaScopeOfQMC.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AreaScopeOfQMC_H_ +#define _ASN_NGAP_AreaScopeOfQMC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AreaScopeOfQMC_PR { + ASN_NGAP_AreaScopeOfQMC_PR_NOTHING, /* No components present */ + ASN_NGAP_AreaScopeOfQMC_PR_cellBased, + ASN_NGAP_AreaScopeOfQMC_PR_tABased, + ASN_NGAP_AreaScopeOfQMC_PR_tAIBased, + ASN_NGAP_AreaScopeOfQMC_PR_pLMNAreaBased, + ASN_NGAP_AreaScopeOfQMC_PR_choice_Extensions +} ASN_NGAP_AreaScopeOfQMC_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellBasedQMC; +struct ASN_NGAP_TABasedQMC; +struct ASN_NGAP_TAIBasedQMC; +struct ASN_NGAP_PLMNAreaBasedQMC; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_AreaScopeOfQMC */ +typedef struct ASN_NGAP_AreaScopeOfQMC { + ASN_NGAP_AreaScopeOfQMC_PR present; + union ASN_NGAP_AreaScopeOfQMC_u { + struct ASN_NGAP_CellBasedQMC *cellBased; + struct ASN_NGAP_TABasedQMC *tABased; + struct ASN_NGAP_TAIBasedQMC *tAIBased; + struct ASN_NGAP_PLMNAreaBasedQMC *pLMNAreaBased; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfQMC; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfQMC_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AreaScopeOfQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AreaScopeOfQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.c b/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.c new file mode 100644 index 0000000..da4280d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssistanceDataForPaging.h" + +#include "ASN_NGAP_AssistanceDataForRecommendedCells.h" +#include "ASN_NGAP_PagingAttemptInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForPaging_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_AssistanceDataForPaging, assistanceDataForRecommendedCells), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "assistanceDataForRecommendedCells" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AssistanceDataForPaging, pagingAttemptInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PagingAttemptInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingAttemptInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AssistanceDataForPaging, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AssistanceDataForPaging_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssistanceDataForPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* assistanceDataForRecommendedCells */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pagingAttemptInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForPaging_specs_1 = { + sizeof(struct ASN_NGAP_AssistanceDataForPaging), + offsetof(struct ASN_NGAP_AssistanceDataForPaging, _asn_ctx), + asn_MAP_ASN_NGAP_AssistanceDataForPaging_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AssistanceDataForPaging_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForPaging = { + "AssistanceDataForPaging", + "AssistanceDataForPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssistanceDataForPaging_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssistanceDataForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.h b/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.h new file mode 100644 index 0000000..917d3af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssistanceDataForPaging.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssistanceDataForPaging_H_ +#define _ASN_NGAP_AssistanceDataForPaging_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssistanceDataForRecommendedCells; +struct ASN_NGAP_PagingAttemptInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AssistanceDataForPaging */ +typedef struct ASN_NGAP_AssistanceDataForPaging { + struct ASN_NGAP_AssistanceDataForRecommendedCells *assistanceDataForRecommendedCells; /* OPTIONAL */ + struct ASN_NGAP_PagingAttemptInformation *pagingAttemptInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssistanceDataForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForPaging_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssistanceDataForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.c b/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.c new file mode 100644 index 0000000..c54ad1c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssistanceDataForRecommendedCells.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells, recommendedCellsForPaging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RecommendedCellsForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedCellsForPaging" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* recommendedCellsForPaging */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_specs_1 = { + sizeof(struct ASN_NGAP_AssistanceDataForRecommendedCells), + offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells, _asn_ctx), + asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells = { + "AssistanceDataForRecommendedCells", + "AssistanceDataForRecommendedCells", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.h b/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.h new file mode 100644 index 0000000..8656737 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssistanceDataForRecommendedCells.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssistanceDataForRecommendedCells_H_ +#define _ASN_NGAP_AssistanceDataForRecommendedCells_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RecommendedCellsForPaging.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AssistanceDataForRecommendedCells */ +typedef struct ASN_NGAP_AssistanceDataForRecommendedCells { + ASN_NGAP_RecommendedCellsForPaging_t recommendedCellsForPaging; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssistanceDataForRecommendedCells_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssistanceDataForRecommendedCells_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.c b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.c new file mode 100644 index 0000000..9e9239b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem, mBS_QosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem, associatedUnicastQosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedUnicastQosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-QosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* associatedUnicastQosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem = { + "AssociatedMBSQosFlowSetupRequestItem", + "AssociatedMBSQosFlowSetupRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h new file mode 100644 index 0000000..0365527 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_H_ +#define _ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem */ +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem { + ASN_NGAP_QosFlowIdentifier_t mBS_QosFlowIdentifier; + ASN_NGAP_QosFlowIdentifier_t associatedUnicastQosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.c b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.c new file mode 100644 index 0000000..2b9a4f4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h" + +#include "ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestList), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList = { + "AssociatedMBSQosFlowSetupRequestList", + "AssociatedMBSQosFlowSetupRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h new file mode 100644 index 0000000..7999fd8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_H_ +#define _ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem; + +/* ASN_NGAP_AssociatedMBSQosFlowSetupRequestList */ +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedMBSQosFlowSetupRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c new file mode 100644 index 0000000..0001377 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem, mBS_QosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem, associatedUnicastQosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedUnicastQosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-QosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* associatedUnicastQosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem = { + "AssociatedMBSQosFlowSetuporModifyRequestItem", + "AssociatedMBSQosFlowSetuporModifyRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h new file mode 100644 index 0000000..abb8a50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_H_ +#define _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem */ +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem { + ASN_NGAP_QosFlowIdentifier_t mBS_QosFlowIdentifier; + ASN_NGAP_QosFlowIdentifier_t associatedUnicastQosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c new file mode 100644 index 0000000..3a548bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h" + +#include "ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList = { + "AssociatedMBSQosFlowSetuporModifyRequestList", + "AssociatedMBSQosFlowSetuporModifyRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h new file mode 100644 index 0000000..a02a33f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_H_ +#define _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem; + +/* ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList */ +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.c b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.c new file mode 100644 index 0000000..ba7c0e8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedQosFlowItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_qosFlowMappingIndication_constr_3 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_ASN_NGAP_qosFlowMappingIndication_value2enum_3[] = { + { 0, 2, "ul" }, + { 1, 2, "dl" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_qosFlowMappingIndication_enum2value_3[] = { + 1, /* dl(1) */ + 0 /* ul(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_qosFlowMappingIndication_specs_3 = { + asn_MAP_ASN_NGAP_qosFlowMappingIndication_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_qosFlowMappingIndication_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_qosFlowMappingIndication_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_ASN_NGAP_qosFlowMappingIndication_3 = { + "qosFlowMappingIndication", + "qosFlowMappingIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3, + sizeof(asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3) + /sizeof(asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3) + /sizeof(asn_DEF_ASN_NGAP_qosFlowMappingIndication_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_qosFlowMappingIndication_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_qosFlowMappingIndication_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedQosFlowItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AssociatedQosFlowItem, qosFlowMappingIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_qosFlowMappingIndication_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowMappingIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AssociatedQosFlowItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AssociatedQosFlowItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedQosFlowItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowMappingIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowItem_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedQosFlowItem), + offsetof(struct ASN_NGAP_AssociatedQosFlowItem, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedQosFlowItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AssociatedQosFlowItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem = { + "AssociatedQosFlowItem", + "AssociatedQosFlowItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedQosFlowItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedQosFlowItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.h b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.h new file mode 100644 index 0000000..6adc7b8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowItem.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedQosFlowItem_H_ +#define _ASN_NGAP_AssociatedQosFlowItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AssociatedQosFlowItem__qosFlowMappingIndication { + ASN_NGAP_AssociatedQosFlowItem__qosFlowMappingIndication_ul = 0, + ASN_NGAP_AssociatedQosFlowItem__qosFlowMappingIndication_dl = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_AssociatedQosFlowItem__qosFlowMappingIndication; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AssociatedQosFlowItem */ +typedef struct ASN_NGAP_AssociatedQosFlowItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + long *qosFlowMappingIndication; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedQosFlowItem_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_qosFlowMappingIndication_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedQosFlowItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.c b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.c new file mode 100644 index 0000000..6369079 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AssociatedQosFlowList.h" + +#include "ASN_NGAP_AssociatedQosFlowItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedQosFlowList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedQosFlowItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowList_specs_1 = { + sizeof(struct ASN_NGAP_AssociatedQosFlowList), + offsetof(struct ASN_NGAP_AssociatedQosFlowList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowList = { + "AssociatedQosFlowList", + "AssociatedQosFlowList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1, + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AssociatedQosFlowList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_AssociatedQosFlowList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_AssociatedQosFlowList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.h b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.h new file mode 100644 index 0000000..8579c2c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AssociatedQosFlowList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AssociatedQosFlowList_H_ +#define _ASN_NGAP_AssociatedQosFlowList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssociatedQosFlowItem; + +/* ASN_NGAP_AssociatedQosFlowList */ +typedef struct ASN_NGAP_AssociatedQosFlowList { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedQosFlowItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedQosFlowList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AssociatedQosFlowList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AssociatedQosFlowList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.c b/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.c new file mode 100644 index 0000000..3ab1991 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AuthenticatedIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_AuthenticatedIndication_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_ASN_NGAP_AuthenticatedIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_AuthenticatedIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_AuthenticatedIndication_specs_1 = { + asn_MAP_ASN_NGAP_AuthenticatedIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_AuthenticatedIndication_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_ASN_NGAP_AuthenticatedIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AuthenticatedIndication = { + "AuthenticatedIndication", + "AuthenticatedIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AuthenticatedIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AuthenticatedIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_AuthenticatedIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.h b/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.h new file mode 100644 index 0000000..ebd4573 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AuthenticatedIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AuthenticatedIndication_H_ +#define _ASN_NGAP_AuthenticatedIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AuthenticatedIndication { + ASN_NGAP_AuthenticatedIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_AuthenticatedIndication; + +/* ASN_NGAP_AuthenticatedIndication */ +typedef long ASN_NGAP_AuthenticatedIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AuthenticatedIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AuthenticatedIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_AuthenticatedIndication_specs_1; +asn_struct_free_f ASN_NGAP_AuthenticatedIndication_free; +asn_struct_print_f ASN_NGAP_AuthenticatedIndication_print; +asn_constr_check_f ASN_NGAP_AuthenticatedIndication_constraint; +ber_type_decoder_f ASN_NGAP_AuthenticatedIndication_decode_ber; +der_type_encoder_f ASN_NGAP_AuthenticatedIndication_encode_der; +xer_type_decoder_f ASN_NGAP_AuthenticatedIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_AuthenticatedIndication_encode_xer; +per_type_decoder_f ASN_NGAP_AuthenticatedIndication_decode_uper; +per_type_encoder_f ASN_NGAP_AuthenticatedIndication_encode_uper; +per_type_decoder_f ASN_NGAP_AuthenticatedIndication_decode_aper; +per_type_encoder_f ASN_NGAP_AuthenticatedIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AuthenticatedIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.c b/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.c new file mode 100644 index 0000000..567a658 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AvailableRANVisibleQoEMetrics.h" + +#include "ASN_NGAP_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_ASN_NGAP_applicationLayerBufferLevelList_constr_2 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_ASN_NGAP_playoutDelayForMediaStartup_constr_5 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_ASN_NGAP_applicationLayerBufferLevelList_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_applicationLayerBufferLevelList_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_applicationLayerBufferLevelList_specs_2 = { + asn_MAP_ASN_NGAP_applicationLayerBufferLevelList_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_applicationLayerBufferLevelList_enum2value_2, /* 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_ASN_NGAP_applicationLayerBufferLevelList_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_ASN_NGAP_applicationLayerBufferLevelList_2 = { + "applicationLayerBufferLevelList", + "applicationLayerBufferLevelList", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2, + sizeof(asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2) + /sizeof(asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2) + /sizeof(asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_applicationLayerBufferLevelList_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_applicationLayerBufferLevelList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_playoutDelayForMediaStartup_value2enum_5[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_playoutDelayForMediaStartup_enum2value_5[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_playoutDelayForMediaStartup_specs_5 = { + asn_MAP_ASN_NGAP_playoutDelayForMediaStartup_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_playoutDelayForMediaStartup_enum2value_5, /* 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_ASN_NGAP_playoutDelayForMediaStartup_tags_5[] = { + (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_ASN_NGAP_playoutDelayForMediaStartup_5 = { + "playoutDelayForMediaStartup", + "playoutDelayForMediaStartup", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5, + sizeof(asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5) + /sizeof(asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5) + /sizeof(asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_playoutDelayForMediaStartup_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_playoutDelayForMediaStartup_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics, applicationLayerBufferLevelList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "applicationLayerBufferLevelList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics, playoutDelayForMediaStartup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "playoutDelayForMediaStartup" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* applicationLayerBufferLevelList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* playoutDelayForMediaStartup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_specs_1 = { + sizeof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics), + offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics, _asn_ctx), + asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics = { + "AvailableRANVisibleQoEMetrics", + "AvailableRANVisibleQoEMetrics", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1, + sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.h b/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.h new file mode 100644 index 0000000..8ce0b84 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AvailableRANVisibleQoEMetrics.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AvailableRANVisibleQoEMetrics_H_ +#define _ASN_NGAP_AvailableRANVisibleQoEMetrics_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AvailableRANVisibleQoEMetrics__applicationLayerBufferLevelList { + ASN_NGAP_AvailableRANVisibleQoEMetrics__applicationLayerBufferLevelList_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_AvailableRANVisibleQoEMetrics__applicationLayerBufferLevelList; +typedef enum ASN_NGAP_AvailableRANVisibleQoEMetrics__playoutDelayForMediaStartup { + ASN_NGAP_AvailableRANVisibleQoEMetrics__playoutDelayForMediaStartup_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_AvailableRANVisibleQoEMetrics__playoutDelayForMediaStartup; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_AvailableRANVisibleQoEMetrics */ +typedef struct ASN_NGAP_AvailableRANVisibleQoEMetrics { + long *applicationLayerBufferLevelList; /* OPTIONAL */ + long *playoutDelayForMediaStartup; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AvailableRANVisibleQoEMetrics_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_applicationLayerBufferLevelList_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_playoutDelayForMediaStartup_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AvailableRANVisibleQoEMetrics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_AveragingWindow.c b/src/asn/ngap/ASN_NGAP_AveragingWindow.c new file mode 100644 index 0000000..7cc8bff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AveragingWindow.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_AveragingWindow.h" + +int +ASN_NGAP_AveragingWindow_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_ASN_NGAP_AveragingWindow_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_ASN_NGAP_AveragingWindow_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AveragingWindow = { + "AveragingWindow", + "AveragingWindow", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_AveragingWindow_tags_1, + sizeof(asn_DEF_ASN_NGAP_AveragingWindow_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AveragingWindow_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AveragingWindow_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AveragingWindow_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AveragingWindow_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_AveragingWindow_constr_1, ASN_NGAP_AveragingWindow_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_AveragingWindow.h b/src/asn/ngap/ASN_NGAP_AveragingWindow.h new file mode 100644 index 0000000..afeb05b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_AveragingWindow.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_AveragingWindow_H_ +#define _ASN_NGAP_AveragingWindow_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_AveragingWindow */ +typedef long ASN_NGAP_AveragingWindow_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_AveragingWindow_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AveragingWindow; +asn_struct_free_f ASN_NGAP_AveragingWindow_free; +asn_struct_print_f ASN_NGAP_AveragingWindow_print; +asn_constr_check_f ASN_NGAP_AveragingWindow_constraint; +ber_type_decoder_f ASN_NGAP_AveragingWindow_decode_ber; +der_type_encoder_f ASN_NGAP_AveragingWindow_encode_der; +xer_type_decoder_f ASN_NGAP_AveragingWindow_decode_xer; +xer_type_encoder_f ASN_NGAP_AveragingWindow_encode_xer; +per_type_decoder_f ASN_NGAP_AveragingWindow_decode_uper; +per_type_encoder_f ASN_NGAP_AveragingWindow_encode_uper; +per_type_decoder_f ASN_NGAP_AveragingWindow_decode_aper; +per_type_encoder_f ASN_NGAP_AveragingWindow_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_AveragingWindow_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.c b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.c new file mode 100644 index 0000000..8365d50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BeamMeasurementsReportConfiguration.h" + +#include "ASN_NGAP_BeamMeasurementsReportQuantity.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration, beamMeasurementsReportQuantity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamMeasurementsReportQuantity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration, maxNrofRS_IndexesToReport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNrofRS-IndexesToReport" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* beamMeasurementsReportQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNrofRS-IndexesToReport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_specs_1 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportConfiguration), + offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration, _asn_ctx), + asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration = { + "BeamMeasurementsReportConfiguration", + "BeamMeasurementsReportConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1, + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.h b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.h new file mode 100644 index 0000000..acdb5d7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportConfiguration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BeamMeasurementsReportConfiguration_H_ +#define _ASN_NGAP_BeamMeasurementsReportConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MaxNrofRS-IndexesToReport.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_BeamMeasurementsReportQuantity; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_BeamMeasurementsReportConfiguration */ +typedef struct ASN_NGAP_BeamMeasurementsReportConfiguration { + struct ASN_NGAP_BeamMeasurementsReportQuantity *beamMeasurementsReportQuantity; /* OPTIONAL */ + ASN_NGAP_MaxNrofRS_IndexesToReport_t *maxNrofRS_IndexesToReport; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BeamMeasurementsReportConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BeamMeasurementsReportConfiguration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.c b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.c new file mode 100644 index 0000000..b072dac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BeamMeasurementsReportQuantity.h" + +#include "ASN_NGAP_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_ASN_NGAP_rSRP_constr_2 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_ASN_NGAP_rSRQ_constr_5 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_ASN_NGAP_sINR_constr_8 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_ASN_NGAP_rSRP_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_rSRP_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_rSRP_specs_2 = { + asn_MAP_ASN_NGAP_rSRP_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_rSRP_enum2value_2, /* 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_ASN_NGAP_rSRP_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_ASN_NGAP_rSRP_2 = { + "rSRP", + "rSRP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_rSRP_tags_2, + sizeof(asn_DEF_ASN_NGAP_rSRP_tags_2) + /sizeof(asn_DEF_ASN_NGAP_rSRP_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_rSRP_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_rSRP_tags_2) + /sizeof(asn_DEF_ASN_NGAP_rSRP_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_rSRP_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_rSRP_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_rSRQ_value2enum_5[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_rSRQ_enum2value_5[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_rSRQ_specs_5 = { + asn_MAP_ASN_NGAP_rSRQ_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_rSRQ_enum2value_5, /* 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_ASN_NGAP_rSRQ_tags_5[] = { + (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_ASN_NGAP_rSRQ_5 = { + "rSRQ", + "rSRQ", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_rSRQ_tags_5, + sizeof(asn_DEF_ASN_NGAP_rSRQ_tags_5) + /sizeof(asn_DEF_ASN_NGAP_rSRQ_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_rSRQ_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_rSRQ_tags_5) + /sizeof(asn_DEF_ASN_NGAP_rSRQ_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_rSRQ_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_rSRQ_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_sINR_value2enum_8[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_sINR_enum2value_8[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_sINR_specs_8 = { + asn_MAP_ASN_NGAP_sINR_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_sINR_enum2value_8, /* 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_ASN_NGAP_sINR_tags_8[] = { + (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_ASN_NGAP_sINR_8 = { + "sINR", + "sINR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_sINR_tags_8, + sizeof(asn_DEF_ASN_NGAP_sINR_tags_8) + /sizeof(asn_DEF_ASN_NGAP_sINR_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_sINR_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_sINR_tags_8) + /sizeof(asn_DEF_ASN_NGAP_sINR_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_sINR_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_sINR_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity, rSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_rSRP_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity, rSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_rSRQ_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rSRQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity, sINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_sINR_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sINR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rSRP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rSRQ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sINR */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_specs_1 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportQuantity), + offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity, _asn_ctx), + asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity = { + "BeamMeasurementsReportQuantity", + "BeamMeasurementsReportQuantity", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1, + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.h b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.h new file mode 100644 index 0000000..bfff20b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BeamMeasurementsReportQuantity.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BeamMeasurementsReportQuantity_H_ +#define _ASN_NGAP_BeamMeasurementsReportQuantity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_BeamMeasurementsReportQuantity__rSRP { + ASN_NGAP_BeamMeasurementsReportQuantity__rSRP_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_BeamMeasurementsReportQuantity__rSRP; +typedef enum ASN_NGAP_BeamMeasurementsReportQuantity__rSRQ { + ASN_NGAP_BeamMeasurementsReportQuantity__rSRQ_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_BeamMeasurementsReportQuantity__rSRQ; +typedef enum ASN_NGAP_BeamMeasurementsReportQuantity__sINR { + ASN_NGAP_BeamMeasurementsReportQuantity__sINR_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_BeamMeasurementsReportQuantity__sINR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_BeamMeasurementsReportQuantity */ +typedef struct ASN_NGAP_BeamMeasurementsReportQuantity { + long rSRP; + long rSRQ; + long sINR; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BeamMeasurementsReportQuantity_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_rSRP_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_rSRQ_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_sINR_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BeamMeasurementsReportQuantity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BitRate.c b/src/asn/ngap/ASN_NGAP_BitRate.c new file mode 100644 index 0000000..5cfcf76 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BitRate.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BitRate.h" + +int +ASN_NGAP_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 <= 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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_BitRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 42, -1, 0, 4000000000000 } /* (0..4000000000000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BitRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BitRate = { + "BitRate", + "BitRate", + &asn_OP_INTEGER, + asn_DEF_ASN_NGAP_BitRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_BitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BitRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BitRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BitRate_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_BitRate_constr_1, ASN_NGAP_BitRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BitRate.h b/src/asn/ngap/ASN_NGAP_BitRate.h new file mode 100644 index 0000000..42c4caa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BitRate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BitRate_H_ +#define _ASN_NGAP_BitRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BitRate */ +typedef INTEGER_t ASN_NGAP_BitRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BitRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BitRate; +asn_struct_free_f ASN_NGAP_BitRate_free; +asn_struct_print_f ASN_NGAP_BitRate_print; +asn_constr_check_f ASN_NGAP_BitRate_constraint; +ber_type_decoder_f ASN_NGAP_BitRate_decode_ber; +der_type_encoder_f ASN_NGAP_BitRate_encode_der; +xer_type_decoder_f ASN_NGAP_BitRate_decode_xer; +xer_type_encoder_f ASN_NGAP_BitRate_encode_xer; +per_type_decoder_f ASN_NGAP_BitRate_decode_uper; +per_type_encoder_f ASN_NGAP_BitRate_encode_uper; +per_type_decoder_f ASN_NGAP_BitRate_decode_aper; +per_type_encoder_f ASN_NGAP_BitRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BitRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.c b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.c new file mode 100644 index 0000000..f9f6d7a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BluetoothMeasConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_BluetoothMeasConfig_value2enum_1[] = { + { 0, 5, "setup" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_BluetoothMeasConfig_enum2value_1[] = { + 0 /* setup(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfig_specs_1 = { + asn_MAP_ASN_NGAP_BluetoothMeasConfig_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_BluetoothMeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfig = { + "BluetoothMeasConfig", + "BluetoothMeasConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfig_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_BluetoothMeasConfig_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_BluetoothMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.h b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.h new file mode 100644 index 0000000..c4d7171 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BluetoothMeasConfig_H_ +#define _ASN_NGAP_BluetoothMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_BluetoothMeasConfig { + ASN_NGAP_BluetoothMeasConfig_setup = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_BluetoothMeasConfig; + +/* ASN_NGAP_BluetoothMeasConfig */ +typedef long ASN_NGAP_BluetoothMeasConfig_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BluetoothMeasConfig_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfig; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfig_specs_1; +asn_struct_free_f ASN_NGAP_BluetoothMeasConfig_free; +asn_struct_print_f ASN_NGAP_BluetoothMeasConfig_print; +asn_constr_check_f ASN_NGAP_BluetoothMeasConfig_constraint; +ber_type_decoder_f ASN_NGAP_BluetoothMeasConfig_decode_ber; +der_type_encoder_f ASN_NGAP_BluetoothMeasConfig_encode_der; +xer_type_decoder_f ASN_NGAP_BluetoothMeasConfig_decode_xer; +xer_type_encoder_f ASN_NGAP_BluetoothMeasConfig_encode_xer; +per_type_decoder_f ASN_NGAP_BluetoothMeasConfig_decode_uper; +per_type_encoder_f ASN_NGAP_BluetoothMeasConfig_encode_uper; +per_type_decoder_f ASN_NGAP_BluetoothMeasConfig_decode_aper; +per_type_encoder_f ASN_NGAP_BluetoothMeasConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BluetoothMeasConfig_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.c b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.c new file mode 100644 index 0000000..5a7a902 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BluetoothMeasConfigNameItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem, bluetoothName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BluetoothName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetoothName" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bluetoothName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_specs_1 = { + sizeof(struct ASN_NGAP_BluetoothMeasConfigNameItem), + offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem, _asn_ctx), + asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem = { + "BluetoothMeasConfigNameItem", + "BluetoothMeasConfigNameItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.h b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.h new file mode 100644 index 0000000..8b0ce88 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BluetoothMeasConfigNameItem_H_ +#define _ASN_NGAP_BluetoothMeasConfigNameItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BluetoothName.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_BluetoothMeasConfigNameItem */ +typedef struct ASN_NGAP_BluetoothMeasConfigNameItem { + ASN_NGAP_BluetoothName_t bluetoothName; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BluetoothMeasConfigNameItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BluetoothMeasConfigNameItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.c b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.c new file mode 100644 index 0000000..7f21aeb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BluetoothMeasConfigNameList.h" + +#include "ASN_NGAP_BluetoothMeasConfigNameItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_BluetoothMeasConfigNameList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameList_specs_1 = { + sizeof(struct ASN_NGAP_BluetoothMeasConfigNameList), + offsetof(struct ASN_NGAP_BluetoothMeasConfigNameList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList = { + "BluetoothMeasConfigNameList", + "BluetoothMeasConfigNameList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_BluetoothMeasConfigNameList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_BluetoothMeasConfigNameList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_BluetoothMeasConfigNameList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.h b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.h new file mode 100644 index 0000000..b9ce2ee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasConfigNameList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BluetoothMeasConfigNameList_H_ +#define _ASN_NGAP_BluetoothMeasConfigNameList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_BluetoothMeasConfigNameItem; + +/* ASN_NGAP_BluetoothMeasConfigNameList */ +typedef struct ASN_NGAP_BluetoothMeasConfigNameList { + A_SEQUENCE_OF(struct ASN_NGAP_BluetoothMeasConfigNameItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BluetoothMeasConfigNameList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasConfigNameList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BluetoothMeasConfigNameList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BluetoothMeasConfigNameList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.c b/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.c new file mode 100644 index 0000000..d832502 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BluetoothMeasurementConfiguration.h" + +#include "ASN_NGAP_BluetoothMeasConfigNameList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_bt_rssi_value2enum_4[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_bt_rssi_enum2value_4[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_bt_rssi_specs_4 = { + asn_MAP_ASN_NGAP_bt_rssi_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_bt_rssi_4 = { + "bt-rssi", + "bt-rssi", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_bt_rssi_tags_4, + sizeof(asn_DEF_ASN_NGAP_bt_rssi_tags_4) + /sizeof(asn_DEF_ASN_NGAP_bt_rssi_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_bt_rssi_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_bt_rssi_tags_4) + /sizeof(asn_DEF_ASN_NGAP_bt_rssi_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_bt_rssi_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_bt_rssi_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration, bluetoothMeasConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BluetoothMeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetoothMeasConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration, bluetoothMeasConfigNameList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BluetoothMeasConfigNameList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetoothMeasConfigNameList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration, bt_rssi), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_bt_rssi_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bt-rssi" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_BluetoothMeasurementConfiguration_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_specs_1 = { + sizeof(struct ASN_NGAP_BluetoothMeasurementConfiguration), + offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration, _asn_ctx), + asn_MAP_ASN_NGAP_BluetoothMeasurementConfiguration_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_BluetoothMeasurementConfiguration_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration = { + "BluetoothMeasurementConfiguration", + "BluetoothMeasurementConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.h b/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.h new file mode 100644 index 0000000..a7168d0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothMeasurementConfiguration.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BluetoothMeasurementConfiguration_H_ +#define _ASN_NGAP_BluetoothMeasurementConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BluetoothMeasConfig.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_BluetoothMeasurementConfiguration__bt_rssi { + ASN_NGAP_BluetoothMeasurementConfiguration__bt_rssi_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_BluetoothMeasurementConfiguration__bt_rssi; + +/* Forward declarations */ +struct ASN_NGAP_BluetoothMeasConfigNameList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_BluetoothMeasurementConfiguration */ +typedef struct ASN_NGAP_BluetoothMeasurementConfiguration { + ASN_NGAP_BluetoothMeasConfig_t bluetoothMeasConfig; + struct ASN_NGAP_BluetoothMeasConfigNameList *bluetoothMeasConfigNameList; /* OPTIONAL */ + long *bt_rssi; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BluetoothMeasurementConfiguration_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_bt_rssi_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BluetoothMeasurementConfiguration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BluetoothName.c b/src/asn/ngap/ASN_NGAP_BluetoothName.c new file mode 100644 index 0000000..23c69ed --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothName.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BluetoothName.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_BluetoothName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothName = { + "BluetoothName", + "BluetoothName", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_BluetoothName_tags_1, + sizeof(asn_DEF_ASN_NGAP_BluetoothName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BluetoothName_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_BluetoothName_constr_1, ASN_NGAP_BluetoothName_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BluetoothName.h b/src/asn/ngap/ASN_NGAP_BluetoothName.h new file mode 100644 index 0000000..a01a8c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BluetoothName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BluetoothName_H_ +#define _ASN_NGAP_BluetoothName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BluetoothName */ +typedef OCTET_STRING_t ASN_NGAP_BluetoothName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BluetoothName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothName; +asn_struct_free_f ASN_NGAP_BluetoothName_free; +asn_struct_print_f ASN_NGAP_BluetoothName_print; +asn_constr_check_f ASN_NGAP_BluetoothName_constraint; +ber_type_decoder_f ASN_NGAP_BluetoothName_decode_ber; +der_type_encoder_f ASN_NGAP_BluetoothName_encode_der; +xer_type_decoder_f ASN_NGAP_BluetoothName_decode_xer; +xer_type_encoder_f ASN_NGAP_BluetoothName_encode_xer; +per_type_decoder_f ASN_NGAP_BluetoothName_decode_uper; +per_type_encoder_f ASN_NGAP_BluetoothName_encode_uper; +per_type_decoder_f ASN_NGAP_BluetoothName_decode_aper; +per_type_encoder_f ASN_NGAP_BluetoothName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BluetoothName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.c b/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.c new file mode 100644 index 0000000..459c070 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastCancelledAreaList.h" + +#include "ASN_NGAP_CellIDCancelledEUTRA.h" +#include "ASN_NGAP_TAICancelledEUTRA.h" +#include "ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h" +#include "ASN_NGAP_CellIDCancelledNR.h" +#include "ASN_NGAP_TAICancelledNR.h" +#include "ASN_NGAP_EmergencyAreaIDCancelledNR.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastCancelledAreaList_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.cellIDCancelledEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIDCancelledEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIDCancelledEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.tAICancelledEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAICancelledEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAICancelledEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.emergencyAreaIDCancelledEUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaIDCancelledEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.cellIDCancelledNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIDCancelledNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIDCancelledNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.tAICancelledNR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAICancelledNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAICancelledNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.emergencyAreaIDCancelledNR), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaIDCancelledNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastCancelledAreaList_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIDCancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAICancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emergencyAreaIDCancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cellIDCancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* tAICancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyAreaIDCancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastCancelledAreaList), + offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastCancelledAreaList, present), + sizeof(((struct ASN_NGAP_BroadcastCancelledAreaList *)0)->present), + asn_MAP_ASN_NGAP_BroadcastCancelledAreaList_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCancelledAreaList = { + "BroadcastCancelledAreaList", + "BroadcastCancelledAreaList", + &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_ASN_NGAP_BroadcastCancelledAreaList_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.h b/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.h new file mode 100644 index 0000000..18d346a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastCancelledAreaList.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastCancelledAreaList_H_ +#define _ASN_NGAP_BroadcastCancelledAreaList_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_BroadcastCancelledAreaList_PR { + ASN_NGAP_BroadcastCancelledAreaList_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastCancelledAreaList_PR_cellIDCancelledEUTRA, + ASN_NGAP_BroadcastCancelledAreaList_PR_tAICancelledEUTRA, + ASN_NGAP_BroadcastCancelledAreaList_PR_emergencyAreaIDCancelledEUTRA, + ASN_NGAP_BroadcastCancelledAreaList_PR_cellIDCancelledNR, + ASN_NGAP_BroadcastCancelledAreaList_PR_tAICancelledNR, + ASN_NGAP_BroadcastCancelledAreaList_PR_emergencyAreaIDCancelledNR, + ASN_NGAP_BroadcastCancelledAreaList_PR_choice_Extensions +} ASN_NGAP_BroadcastCancelledAreaList_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellIDCancelledEUTRA; +struct ASN_NGAP_TAICancelledEUTRA; +struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA; +struct ASN_NGAP_CellIDCancelledNR; +struct ASN_NGAP_TAICancelledNR; +struct ASN_NGAP_EmergencyAreaIDCancelledNR; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_BroadcastCancelledAreaList */ +typedef struct ASN_NGAP_BroadcastCancelledAreaList { + ASN_NGAP_BroadcastCancelledAreaList_PR present; + union ASN_NGAP_BroadcastCancelledAreaList_u { + struct ASN_NGAP_CellIDCancelledEUTRA *cellIDCancelledEUTRA; + struct ASN_NGAP_TAICancelledEUTRA *tAICancelledEUTRA; + struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA *emergencyAreaIDCancelledEUTRA; + struct ASN_NGAP_CellIDCancelledNR *cellIDCancelledNR; + struct ASN_NGAP_TAICancelledNR *tAICancelledNR; + struct ASN_NGAP_EmergencyAreaIDCancelledNR *emergencyAreaIDCancelledNR; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastCancelledAreaList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCancelledAreaList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_1[7]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastCancelledAreaList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastCancelledAreaList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.c b/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.c new file mode 100644 index 0000000..4bc2088 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastCompletedAreaList.h" + +#include "ASN_NGAP_CellIDBroadcastEUTRA.h" +#include "ASN_NGAP_TAIBroadcastEUTRA.h" +#include "ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h" +#include "ASN_NGAP_CellIDBroadcastNR.h" +#include "ASN_NGAP_TAIBroadcastNR.h" +#include "ASN_NGAP_EmergencyAreaIDBroadcastNR.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastCompletedAreaList_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.cellIDBroadcastEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIDBroadcastEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.tAIBroadcastEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIBroadcastEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIBroadcastEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.emergencyAreaIDBroadcastEUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaIDBroadcastEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.cellIDBroadcastNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIDBroadcastNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIDBroadcastNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.tAIBroadcastNR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIBroadcastNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIBroadcastNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.emergencyAreaIDBroadcastNR), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaIDBroadcastNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastCompletedAreaList_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIDBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAIBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emergencyAreaIDBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cellIDBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* tAIBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* emergencyAreaIDBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastCompletedAreaList), + offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastCompletedAreaList, present), + sizeof(((struct ASN_NGAP_BroadcastCompletedAreaList *)0)->present), + asn_MAP_ASN_NGAP_BroadcastCompletedAreaList_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCompletedAreaList = { + "BroadcastCompletedAreaList", + "BroadcastCompletedAreaList", + &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_ASN_NGAP_BroadcastCompletedAreaList_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.h b/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.h new file mode 100644 index 0000000..cb77845 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastCompletedAreaList.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastCompletedAreaList_H_ +#define _ASN_NGAP_BroadcastCompletedAreaList_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_BroadcastCompletedAreaList_PR { + ASN_NGAP_BroadcastCompletedAreaList_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastCompletedAreaList_PR_cellIDBroadcastEUTRA, + ASN_NGAP_BroadcastCompletedAreaList_PR_tAIBroadcastEUTRA, + ASN_NGAP_BroadcastCompletedAreaList_PR_emergencyAreaIDBroadcastEUTRA, + ASN_NGAP_BroadcastCompletedAreaList_PR_cellIDBroadcastNR, + ASN_NGAP_BroadcastCompletedAreaList_PR_tAIBroadcastNR, + ASN_NGAP_BroadcastCompletedAreaList_PR_emergencyAreaIDBroadcastNR, + ASN_NGAP_BroadcastCompletedAreaList_PR_choice_Extensions +} ASN_NGAP_BroadcastCompletedAreaList_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellIDBroadcastEUTRA; +struct ASN_NGAP_TAIBroadcastEUTRA; +struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA; +struct ASN_NGAP_CellIDBroadcastNR; +struct ASN_NGAP_TAIBroadcastNR; +struct ASN_NGAP_EmergencyAreaIDBroadcastNR; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_BroadcastCompletedAreaList */ +typedef struct ASN_NGAP_BroadcastCompletedAreaList { + ASN_NGAP_BroadcastCompletedAreaList_PR present; + union ASN_NGAP_BroadcastCompletedAreaList_u { + struct ASN_NGAP_CellIDBroadcastEUTRA *cellIDBroadcastEUTRA; + struct ASN_NGAP_TAIBroadcastEUTRA *tAIBroadcastEUTRA; + struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA *emergencyAreaIDBroadcastEUTRA; + struct ASN_NGAP_CellIDBroadcastNR *cellIDBroadcastNR; + struct ASN_NGAP_TAIBroadcastNR *tAIBroadcastNR; + struct ASN_NGAP_EmergencyAreaIDBroadcastNR *emergencyAreaIDBroadcastNR; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastCompletedAreaList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCompletedAreaList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_1[7]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastCompletedAreaList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastCompletedAreaList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.c b/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.c new file mode 100644 index 0000000..3644bdb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastPLMNItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem, tAISliceSupportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAISliceSupportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_BroadcastPLMNItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_BroadcastPLMNItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastPLMNItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAISliceSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNItem_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastPLMNItem), + offsetof(struct ASN_NGAP_BroadcastPLMNItem, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastPLMNItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_BroadcastPLMNItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNItem = { + "BroadcastPLMNItem", + "BroadcastPLMNItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastPLMNItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastPLMNItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.h b/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.h new file mode 100644 index 0000000..a8127d0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastPLMNItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastPLMNItem_H_ +#define _ASN_NGAP_BroadcastPLMNItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_SliceSupportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_BroadcastPLMNItem */ +typedef struct ASN_NGAP_BroadcastPLMNItem { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_SliceSupportList_t tAISliceSupportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastPLMNItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastPLMNItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.c b/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.c new file mode 100644 index 0000000..c61cd83 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastPLMNList.h" + +#include "ASN_NGAP_BroadcastPLMNItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastPLMNList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastPLMNItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNList_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastPLMNList), + offsetof(struct ASN_NGAP_BroadcastPLMNList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNList = { + "BroadcastPLMNList", + "BroadcastPLMNList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_BroadcastPLMNList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_BroadcastPLMNList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_BroadcastPLMNList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.h b/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.h new file mode 100644 index 0000000..d72d22e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastPLMNList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastPLMNList_H_ +#define _ASN_NGAP_BroadcastPLMNList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_BroadcastPLMNItem; + +/* ASN_NGAP_BroadcastPLMNList */ +typedef struct ASN_NGAP_BroadcastPLMNList { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastPLMNItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastPLMNList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_BroadcastPLMNList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastPLMNList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.c new file mode 100644 index 0000000..332d27e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionModificationFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationFailure_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationFailure), + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailure, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationFailure_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_ASN_NGAP_BroadcastSessionModificationFailure = { + "BroadcastSessionModificationFailure", + "BroadcastSessionModificationFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.h new file mode 100644 index 0000000..e6265bb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionModificationFailure_H_ +#define _ASN_NGAP_BroadcastSessionModificationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionModificationFailure */ +typedef struct ASN_NGAP_BroadcastSessionModificationFailure { + ASN_NGAP_ProtocolIE_Container_123P105_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionModificationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionModificationFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.c new file mode 100644 index 0000000..27bfbd6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionModificationRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationRequest_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationRequest), + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequest, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationRequest_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_ASN_NGAP_BroadcastSessionModificationRequest = { + "BroadcastSessionModificationRequest", + "BroadcastSessionModificationRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.h new file mode 100644 index 0000000..9284835 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionModificationRequest_H_ +#define _ASN_NGAP_BroadcastSessionModificationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionModificationRequest */ +typedef struct ASN_NGAP_BroadcastSessionModificationRequest { + ASN_NGAP_ProtocolIE_Container_123P103_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionModificationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionModificationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.c new file mode 100644 index 0000000..bcf56d7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionModificationResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationResponse_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationResponse), + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponse, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationResponse_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_ASN_NGAP_BroadcastSessionModificationResponse = { + "BroadcastSessionModificationResponse", + "BroadcastSessionModificationResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.h new file mode 100644 index 0000000..94d6470 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionModificationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionModificationResponse_H_ +#define _ASN_NGAP_BroadcastSessionModificationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionModificationResponse */ +typedef struct ASN_NGAP_BroadcastSessionModificationResponse { + ASN_NGAP_ProtocolIE_Container_123P104_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionModificationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionModificationResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.c new file mode 100644 index 0000000..49b5dfb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionReleaseRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequest_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequest), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequest, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequest_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_ASN_NGAP_BroadcastSessionReleaseRequest = { + "BroadcastSessionReleaseRequest", + "BroadcastSessionReleaseRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.h new file mode 100644 index 0000000..9d084b2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionReleaseRequest_H_ +#define _ASN_NGAP_BroadcastSessionReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionReleaseRequest */ +typedef struct ASN_NGAP_BroadcastSessionReleaseRequest { + ASN_NGAP_ProtocolIE_Container_123P106_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionReleaseRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionReleaseRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.c new file mode 100644 index 0000000..5a0c1b1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionReleaseRequired.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequired_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequired), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequired, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequired_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_ASN_NGAP_BroadcastSessionReleaseRequired = { + "BroadcastSessionReleaseRequired", + "BroadcastSessionReleaseRequired", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequired_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequired_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.h new file mode 100644 index 0000000..cc84192 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionReleaseRequired_H_ +#define _ASN_NGAP_BroadcastSessionReleaseRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionReleaseRequired */ +typedef struct ASN_NGAP_BroadcastSessionReleaseRequired { + ASN_NGAP_ProtocolIE_Container_123P107_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionReleaseRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionReleaseRequired_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.c new file mode 100644 index 0000000..263cccf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionReleaseResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponse_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseResponse), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponse, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseResponse_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_ASN_NGAP_BroadcastSessionReleaseResponse = { + "BroadcastSessionReleaseResponse", + "BroadcastSessionReleaseResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.h new file mode 100644 index 0000000..cd56cc7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionReleaseResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionReleaseResponse_H_ +#define _ASN_NGAP_BroadcastSessionReleaseResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionReleaseResponse */ +typedef struct ASN_NGAP_BroadcastSessionReleaseResponse { + ASN_NGAP_ProtocolIE_Container_123P108_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionReleaseResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionReleaseResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.c new file mode 100644 index 0000000..64cfeea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionSetupFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupFailure_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupFailure), + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailure, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupFailure_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_ASN_NGAP_BroadcastSessionSetupFailure = { + "BroadcastSessionSetupFailure", + "BroadcastSessionSetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.h new file mode 100644 index 0000000..8e78edc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionSetupFailure_H_ +#define _ASN_NGAP_BroadcastSessionSetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionSetupFailure */ +typedef struct ASN_NGAP_BroadcastSessionSetupFailure { + ASN_NGAP_ProtocolIE_Container_123P102_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionSetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionSetupFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.c new file mode 100644 index 0000000..6bf5142 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupRequest_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupRequest), + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequest, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupRequest_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_ASN_NGAP_BroadcastSessionSetupRequest = { + "BroadcastSessionSetupRequest", + "BroadcastSessionSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.h new file mode 100644 index 0000000..3b30a68 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionSetupRequest_H_ +#define _ASN_NGAP_BroadcastSessionSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionSetupRequest */ +typedef struct ASN_NGAP_BroadcastSessionSetupRequest { + ASN_NGAP_ProtocolIE_Container_123P100_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionSetupRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.c b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.c new file mode 100644 index 0000000..040c70a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BroadcastSessionSetupResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupResponse_specs_1 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupResponse), + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponse, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupResponse_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_ASN_NGAP_BroadcastSessionSetupResponse = { + "BroadcastSessionSetupResponse", + "BroadcastSessionSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.h b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.h new file mode 100644 index 0000000..e953dba --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BroadcastSessionSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BroadcastSessionSetupResponse_H_ +#define _ASN_NGAP_BroadcastSessionSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BroadcastSessionSetupResponse */ +typedef struct ASN_NGAP_BroadcastSessionSetupResponse { + ASN_NGAP_ProtocolIE_Container_123P101_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BroadcastSessionSetupResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_BurstArrivalTime.c b/src/asn/ngap/ASN_NGAP_BurstArrivalTime.c new file mode 100644 index 0000000..7dfb854 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BurstArrivalTime.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_BurstArrivalTime.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BurstArrivalTime = { + "BurstArrivalTime", + "BurstArrivalTime", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1, + sizeof(asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_BurstArrivalTime_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_BurstArrivalTime.h b/src/asn/ngap/ASN_NGAP_BurstArrivalTime.h new file mode 100644 index 0000000..1722bb0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_BurstArrivalTime.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_BurstArrivalTime_H_ +#define _ASN_NGAP_BurstArrivalTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_BurstArrivalTime */ +typedef OCTET_STRING_t ASN_NGAP_BurstArrivalTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BurstArrivalTime; +asn_struct_free_f ASN_NGAP_BurstArrivalTime_free; +asn_struct_print_f ASN_NGAP_BurstArrivalTime_print; +asn_constr_check_f ASN_NGAP_BurstArrivalTime_constraint; +ber_type_decoder_f ASN_NGAP_BurstArrivalTime_decode_ber; +der_type_encoder_f ASN_NGAP_BurstArrivalTime_encode_der; +xer_type_decoder_f ASN_NGAP_BurstArrivalTime_decode_xer; +xer_type_encoder_f ASN_NGAP_BurstArrivalTime_encode_xer; +per_type_decoder_f ASN_NGAP_BurstArrivalTime_decode_uper; +per_type_encoder_f ASN_NGAP_BurstArrivalTime_encode_uper; +per_type_decoder_f ASN_NGAP_BurstArrivalTime_decode_aper; +per_type_encoder_f ASN_NGAP_BurstArrivalTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_BurstArrivalTime_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CAG-ID.c b/src/asn/ngap/ASN_NGAP_CAG-ID.c new file mode 100644 index 0000000..74b284d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CAG-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CAG-ID.h" + +int +ASN_NGAP_CAG_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 == 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_ASN_NGAP_CAG_ID_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_ASN_NGAP_CAG_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CAG_ID = { + "CAG-ID", + "CAG-ID", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_CAG_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_CAG_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CAG_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CAG_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CAG_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CAG_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CAG_ID_constr_1, ASN_NGAP_CAG_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CAG-ID.h b/src/asn/ngap/ASN_NGAP_CAG-ID.h new file mode 100644 index 0000000..d49b60b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CAG-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CAG_ID_H_ +#define _ASN_NGAP_CAG_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CAG-ID */ +typedef BIT_STRING_t ASN_NGAP_CAG_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CAG_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CAG_ID; +asn_struct_free_f ASN_NGAP_CAG_ID_free; +asn_struct_print_f ASN_NGAP_CAG_ID_print; +asn_constr_check_f ASN_NGAP_CAG_ID_constraint; +ber_type_decoder_f ASN_NGAP_CAG_ID_decode_ber; +der_type_encoder_f ASN_NGAP_CAG_ID_encode_der; +xer_type_decoder_f ASN_NGAP_CAG_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_CAG_ID_encode_xer; +per_type_decoder_f ASN_NGAP_CAG_ID_decode_uper; +per_type_encoder_f ASN_NGAP_CAG_ID_encode_uper; +per_type_decoder_f ASN_NGAP_CAG_ID_decode_aper; +per_type_encoder_f ASN_NGAP_CAG_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CAG_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.c b/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.c new file mode 100644 index 0000000..7e43433 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CEmodeBSupport-Indicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CEmodeBSupport_Indicator_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_ASN_NGAP_CEmodeBSupport_Indicator_value2enum_1[] = { + { 0, 9, "supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CEmodeBSupport_Indicator_enum2value_1[] = { + 0 /* supported(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CEmodeBSupport_Indicator_specs_1 = { + asn_MAP_ASN_NGAP_CEmodeBSupport_Indicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CEmodeBSupport_Indicator_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator = { + "CEmodeBSupport-Indicator", + "CEmodeBSupport-Indicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CEmodeBSupport_Indicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CEmodeBSupport_Indicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.h b/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.h new file mode 100644 index 0000000..0a760e3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CEmodeBSupport-Indicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CEmodeBSupport_Indicator_H_ +#define _ASN_NGAP_CEmodeBSupport_Indicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CEmodeBSupport_Indicator { + ASN_NGAP_CEmodeBSupport_Indicator_supported = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CEmodeBSupport_Indicator; + +/* ASN_NGAP_CEmodeBSupport-Indicator */ +typedef long ASN_NGAP_CEmodeBSupport_Indicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CEmodeBSupport_Indicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CEmodeBSupport_Indicator_specs_1; +asn_struct_free_f ASN_NGAP_CEmodeBSupport_Indicator_free; +asn_struct_print_f ASN_NGAP_CEmodeBSupport_Indicator_print; +asn_constr_check_f ASN_NGAP_CEmodeBSupport_Indicator_constraint; +ber_type_decoder_f ASN_NGAP_CEmodeBSupport_Indicator_decode_ber; +der_type_encoder_f ASN_NGAP_CEmodeBSupport_Indicator_encode_der; +xer_type_decoder_f ASN_NGAP_CEmodeBSupport_Indicator_decode_xer; +xer_type_encoder_f ASN_NGAP_CEmodeBSupport_Indicator_encode_xer; +per_type_decoder_f ASN_NGAP_CEmodeBSupport_Indicator_decode_uper; +per_type_encoder_f ASN_NGAP_CEmodeBSupport_Indicator_encode_uper; +per_type_decoder_f ASN_NGAP_CEmodeBSupport_Indicator_decode_aper; +per_type_encoder_f ASN_NGAP_CEmodeBSupport_Indicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CEmodeBSupport_Indicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.c b/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.c new file mode 100644 index 0000000..9677f00 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CEmodeBrestricted.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CEmodeBrestricted_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_ASN_NGAP_CEmodeBrestricted_value2enum_1[] = { + { 0, 10, "restricted" }, + { 1, 14, "not-restricted" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CEmodeBrestricted_enum2value_1[] = { + 1, /* not-restricted(1) */ + 0 /* restricted(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CEmodeBrestricted_specs_1 = { + asn_MAP_ASN_NGAP_CEmodeBrestricted_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CEmodeBrestricted_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_ASN_NGAP_CEmodeBrestricted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CEmodeBrestricted = { + "CEmodeBrestricted", + "CEmodeBrestricted", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1, + sizeof(asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CEmodeBrestricted_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CEmodeBrestricted_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CEmodeBrestricted_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.h b/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.h new file mode 100644 index 0000000..0ae7522 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CEmodeBrestricted.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CEmodeBrestricted_H_ +#define _ASN_NGAP_CEmodeBrestricted_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CEmodeBrestricted { + ASN_NGAP_CEmodeBrestricted_restricted = 0, + ASN_NGAP_CEmodeBrestricted_not_restricted = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CEmodeBrestricted; + +/* ASN_NGAP_CEmodeBrestricted */ +typedef long ASN_NGAP_CEmodeBrestricted_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CEmodeBrestricted_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CEmodeBrestricted; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CEmodeBrestricted_specs_1; +asn_struct_free_f ASN_NGAP_CEmodeBrestricted_free; +asn_struct_print_f ASN_NGAP_CEmodeBrestricted_print; +asn_constr_check_f ASN_NGAP_CEmodeBrestricted_constraint; +ber_type_decoder_f ASN_NGAP_CEmodeBrestricted_decode_ber; +der_type_encoder_f ASN_NGAP_CEmodeBrestricted_encode_der; +xer_type_decoder_f ASN_NGAP_CEmodeBrestricted_decode_xer; +xer_type_encoder_f ASN_NGAP_CEmodeBrestricted_encode_xer; +per_type_decoder_f ASN_NGAP_CEmodeBrestricted_decode_uper; +per_type_encoder_f ASN_NGAP_CEmodeBrestricted_encode_uper; +per_type_decoder_f ASN_NGAP_CEmodeBrestricted_decode_aper; +per_type_encoder_f ASN_NGAP_CEmodeBrestricted_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CEmodeBrestricted_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.c b/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.c new file mode 100644 index 0000000..3dfdc3c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CNAssistedRANTuning.h" + +#include "ASN_NGAP_ExpectedUEBehaviour.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CNAssistedRANTuning_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_CNAssistedRANTuning, expectedUEBehaviour), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedUEBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedUEBehaviour" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CNAssistedRANTuning, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CNAssistedRANTuning_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CNAssistedRANTuning_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedUEBehaviour */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNAssistedRANTuning_specs_1 = { + sizeof(struct ASN_NGAP_CNAssistedRANTuning), + offsetof(struct ASN_NGAP_CNAssistedRANTuning, _asn_ctx), + asn_MAP_ASN_NGAP_CNAssistedRANTuning_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CNAssistedRANTuning_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNAssistedRANTuning = { + "CNAssistedRANTuning", + "CNAssistedRANTuning", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1, + sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CNAssistedRANTuning_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CNAssistedRANTuning_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.h b/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.h new file mode 100644 index 0000000..1217486 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNAssistedRANTuning.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CNAssistedRANTuning_H_ +#define _ASN_NGAP_CNAssistedRANTuning_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ExpectedUEBehaviour; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CNAssistedRANTuning */ +typedef struct ASN_NGAP_CNAssistedRANTuning { + struct ASN_NGAP_ExpectedUEBehaviour *expectedUEBehaviour; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CNAssistedRANTuning_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNAssistedRANTuning; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNAssistedRANTuning_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CNAssistedRANTuning_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CNAssistedRANTuning_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.c b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.c new file mode 100644 index 0000000..ae36a19 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CNTypeRestrictionsForEquivalent.h" + +#include "ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CNTypeRestrictionsForEquivalent_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_ASN_NGAP_CNTypeRestrictionsForEquivalent_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalent_specs_1 = { + sizeof(struct ASN_NGAP_CNTypeRestrictionsForEquivalent), + offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalent, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent = { + "CNTypeRestrictionsForEquivalent", + "CNTypeRestrictionsForEquivalent", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1, + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CNTypeRestrictionsForEquivalent_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalent_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalent_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.h b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.h new file mode 100644 index 0000000..2b882bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalent.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CNTypeRestrictionsForEquivalent_H_ +#define _ASN_NGAP_CNTypeRestrictionsForEquivalent_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem; + +/* ASN_NGAP_CNTypeRestrictionsForEquivalent */ +typedef struct ASN_NGAP_CNTypeRestrictionsForEquivalent { + A_SEQUENCE_OF(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CNTypeRestrictionsForEquivalent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalent_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalent_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CNTypeRestrictionsForEquivalent_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CNTypeRestrictionsForEquivalent_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.c b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.c new file mode 100644 index 0000000..bc33adc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_cn_Type_constr_3 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_ASN_NGAP_cn_Type_value2enum_3[] = { + { 0, 13, "epc-forbidden" }, + { 1, 16, "fiveGC-forbidden" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_cn_Type_enum2value_3[] = { + 0, /* epc-forbidden(0) */ + 1 /* fiveGC-forbidden(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_cn_Type_specs_3 = { + asn_MAP_ASN_NGAP_cn_Type_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_cn_Type_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_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_ASN_NGAP_cn_Type_3 = { + "cn-Type", + "cn-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_cn_Type_tags_3, + sizeof(asn_DEF_ASN_NGAP_cn_Type_tags_3) + /sizeof(asn_DEF_ASN_NGAP_cn_Type_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_cn_Type_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_cn_Type_tags_3) + /sizeof(asn_DEF_ASN_NGAP_cn_Type_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_cn_Type_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_cn_Type_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem, plmnIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmnIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem, cn_Type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_cn_Type_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cn-Type" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmnIdentity */ + { (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_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_specs_1 = { + sizeof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem), + offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem, _asn_ctx), + asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem = { + "CNTypeRestrictionsForEquivalentItem", + "CNTypeRestrictionsForEquivalentItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h new file mode 100644 index 0000000..fba5cd6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForEquivalentItem.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CNTypeRestrictionsForEquivalentItem_H_ +#define _ASN_NGAP_CNTypeRestrictionsForEquivalentItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CNTypeRestrictionsForEquivalentItem__cn_Type { + ASN_NGAP_CNTypeRestrictionsForEquivalentItem__cn_Type_epc_forbidden = 0, + ASN_NGAP_CNTypeRestrictionsForEquivalentItem__cn_Type_fiveGC_forbidden = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CNTypeRestrictionsForEquivalentItem__cn_Type; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CNTypeRestrictionsForEquivalentItem */ +typedef struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem { + ASN_NGAP_PLMNIdentity_t plmnIdentity; + long cn_Type; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CNTypeRestrictionsForEquivalentItem_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_cn_Type_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CNTypeRestrictionsForEquivalentItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.c b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.c new file mode 100644 index 0000000..9e89e74 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CNTypeRestrictionsForServing.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CNTypeRestrictionsForServing_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_ASN_NGAP_CNTypeRestrictionsForServing_value2enum_1[] = { + { 0, 13, "epc-forbidden" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CNTypeRestrictionsForServing_enum2value_1[] = { + 0 /* epc-forbidden(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForServing_specs_1 = { + asn_MAP_ASN_NGAP_CNTypeRestrictionsForServing_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CNTypeRestrictionsForServing_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_ASN_NGAP_CNTypeRestrictionsForServing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing = { + "CNTypeRestrictionsForServing", + "CNTypeRestrictionsForServing", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1, + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CNTypeRestrictionsForServing_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CNTypeRestrictionsForServing_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.h b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.h new file mode 100644 index 0000000..c52f626 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNTypeRestrictionsForServing.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CNTypeRestrictionsForServing_H_ +#define _ASN_NGAP_CNTypeRestrictionsForServing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CNTypeRestrictionsForServing { + ASN_NGAP_CNTypeRestrictionsForServing_epc_forbidden = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CNTypeRestrictionsForServing; + +/* ASN_NGAP_CNTypeRestrictionsForServing */ +typedef long ASN_NGAP_CNTypeRestrictionsForServing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CNTypeRestrictionsForServing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForServing_specs_1; +asn_struct_free_f ASN_NGAP_CNTypeRestrictionsForServing_free; +asn_struct_print_f ASN_NGAP_CNTypeRestrictionsForServing_print; +asn_constr_check_f ASN_NGAP_CNTypeRestrictionsForServing_constraint; +ber_type_decoder_f ASN_NGAP_CNTypeRestrictionsForServing_decode_ber; +der_type_encoder_f ASN_NGAP_CNTypeRestrictionsForServing_encode_der; +xer_type_decoder_f ASN_NGAP_CNTypeRestrictionsForServing_decode_xer; +xer_type_encoder_f ASN_NGAP_CNTypeRestrictionsForServing_encode_xer; +per_type_decoder_f ASN_NGAP_CNTypeRestrictionsForServing_decode_uper; +per_type_encoder_f ASN_NGAP_CNTypeRestrictionsForServing_encode_uper; +per_type_decoder_f ASN_NGAP_CNTypeRestrictionsForServing_decode_aper; +per_type_encoder_f ASN_NGAP_CNTypeRestrictionsForServing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CNTypeRestrictionsForServing_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CNsubgroupID.c b/src/asn/ngap/ASN_NGAP_CNsubgroupID.c new file mode 100644 index 0000000..2a548be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNsubgroupID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CNsubgroupID.h" + +int +ASN_NGAP_CNsubgroupID_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_ASN_NGAP_CNsubgroupID_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_ASN_NGAP_CNsubgroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNsubgroupID = { + "CNsubgroupID", + "CNsubgroupID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_CNsubgroupID_tags_1, + sizeof(asn_DEF_ASN_NGAP_CNsubgroupID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNsubgroupID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNsubgroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNsubgroupID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CNsubgroupID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CNsubgroupID_constr_1, ASN_NGAP_CNsubgroupID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CNsubgroupID.h b/src/asn/ngap/ASN_NGAP_CNsubgroupID.h new file mode 100644 index 0000000..edb8192 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CNsubgroupID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CNsubgroupID_H_ +#define _ASN_NGAP_CNsubgroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CNsubgroupID */ +typedef long ASN_NGAP_CNsubgroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CNsubgroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNsubgroupID; +asn_struct_free_f ASN_NGAP_CNsubgroupID_free; +asn_struct_print_f ASN_NGAP_CNsubgroupID_print; +asn_constr_check_f ASN_NGAP_CNsubgroupID_constraint; +ber_type_decoder_f ASN_NGAP_CNsubgroupID_decode_ber; +der_type_encoder_f ASN_NGAP_CNsubgroupID_encode_der; +xer_type_decoder_f ASN_NGAP_CNsubgroupID_decode_xer; +xer_type_encoder_f ASN_NGAP_CNsubgroupID_encode_xer; +per_type_decoder_f ASN_NGAP_CNsubgroupID_decode_uper; +per_type_encoder_f ASN_NGAP_CNsubgroupID_encode_uper; +per_type_decoder_f ASN_NGAP_CNsubgroupID_decode_aper; +per_type_encoder_f ASN_NGAP_CNsubgroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CNsubgroupID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c new file mode 100644 index 0000000..6581c0c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_COUNTValueForPDCP-SN12.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDCP_SN12_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 int +memb_ASN_NGAP_hFN_PDCP_SN12_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 <= 1048575)) { + /* Constraint 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_ASN_NGAP_pDCP_SN12_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_hFN_PDCP_SN12_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 20, -1, 0, 1048575 } /* (0..1048575) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12, pDCP_SN12), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDCP_SN12_constr_2, memb_ASN_NGAP_pDCP_SN12_constraint_1 }, + 0, 0, /* No default value */ + "pDCP-SN12" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12, hFN_PDCP_SN12), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_hFN_PDCP_SN12_constr_3, memb_ASN_NGAP_hFN_PDCP_SN12_constraint_1 }, + 0, 0, /* No default value */ + "hFN-PDCP-SN12" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SN12 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFN-PDCP-SN12 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_specs_1 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN12), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12, _asn_ctx), + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12 = { + "COUNTValueForPDCP-SN12", + "COUNTValueForPDCP-SN12", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1, + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h new file mode 100644 index 0000000..85994ed --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN12.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_COUNTValueForPDCP_SN12_H_ +#define _ASN_NGAP_COUNTValueForPDCP_SN12_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_COUNTValueForPDCP-SN12 */ +typedef struct ASN_NGAP_COUNTValueForPDCP_SN12 { + long pDCP_SN12; + long hFN_PDCP_SN12; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_COUNTValueForPDCP_SN12_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_COUNTValueForPDCP_SN12_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c new file mode 100644 index 0000000..f339643 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_COUNTValueForPDCP-SN18.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDCP_SN18_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 <= 262143)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_hFN_PDCP_SN18_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 <= 16383)) { + /* Constraint 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_ASN_NGAP_pDCP_SN18_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, 0, 262143 } /* (0..262143) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_hFN_PDCP_SN18_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18, pDCP_SN18), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDCP_SN18_constr_2, memb_ASN_NGAP_pDCP_SN18_constraint_1 }, + 0, 0, /* No default value */ + "pDCP-SN18" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18, hFN_PDCP_SN18), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_hFN_PDCP_SN18_constr_3, memb_ASN_NGAP_hFN_PDCP_SN18_constraint_1 }, + 0, 0, /* No default value */ + "hFN-PDCP-SN18" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SN18 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFN-PDCP-SN18 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_specs_1 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN18), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18, _asn_ctx), + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18 = { + "COUNTValueForPDCP-SN18", + "COUNTValueForPDCP-SN18", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1, + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h new file mode 100644 index 0000000..d292b61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_COUNTValueForPDCP-SN18.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_COUNTValueForPDCP_SN18_H_ +#define _ASN_NGAP_COUNTValueForPDCP_SN18_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_COUNTValueForPDCP-SN18 */ +typedef struct ASN_NGAP_COUNTValueForPDCP_SN18 { + long pDCP_SN18; + long hFN_PDCP_SN18; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_COUNTValueForPDCP_SN18_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_COUNTValueForPDCP_SN18_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.c b/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.c new file mode 100644 index 0000000..9d3ecb8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CPTransportLayerInformation.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CPTransportLayerInformation_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_ASN_NGAP_CPTransportLayerInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation, choice.endpointIPAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "endpointIPAddress" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CPTransportLayerInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* endpointIPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CPTransportLayerInformation_specs_1 = { + sizeof(struct ASN_NGAP_CPTransportLayerInformation), + offsetof(struct ASN_NGAP_CPTransportLayerInformation, _asn_ctx), + offsetof(struct ASN_NGAP_CPTransportLayerInformation, present), + sizeof(((struct ASN_NGAP_CPTransportLayerInformation *)0)->present), + asn_MAP_ASN_NGAP_CPTransportLayerInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CPTransportLayerInformation = { + "CPTransportLayerInformation", + "CPTransportLayerInformation", + &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_ASN_NGAP_CPTransportLayerInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_CPTransportLayerInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CPTransportLayerInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.h b/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.h new file mode 100644 index 0000000..a250c80 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CPTransportLayerInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CPTransportLayerInformation_H_ +#define _ASN_NGAP_CPTransportLayerInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CPTransportLayerInformation_PR { + ASN_NGAP_CPTransportLayerInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_CPTransportLayerInformation_PR_endpointIPAddress, + ASN_NGAP_CPTransportLayerInformation_PR_choice_Extensions +} ASN_NGAP_CPTransportLayerInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_CPTransportLayerInformation */ +typedef struct ASN_NGAP_CPTransportLayerInformation { + ASN_NGAP_CPTransportLayerInformation_PR present; + union ASN_NGAP_CPTransportLayerInformation_u { + ASN_NGAP_TransportLayerAddress_t endpointIPAddress; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CPTransportLayerInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CPTransportLayerInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CPTransportLayerInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CPTransportLayerInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CPTransportLayerInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CPTransportLayerInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.c b/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.c new file mode 100644 index 0000000..e1c5e38 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelAllWarningMessages.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelAllWarningMessages_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_ASN_NGAP_CancelAllWarningMessages_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CancelAllWarningMessages_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CancelAllWarningMessages_specs_1 = { + asn_MAP_ASN_NGAP_CancelAllWarningMessages_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CancelAllWarningMessages_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_ASN_NGAP_CancelAllWarningMessages_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelAllWarningMessages = { + "CancelAllWarningMessages", + "CancelAllWarningMessages", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelAllWarningMessages_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CancelAllWarningMessages_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CancelAllWarningMessages_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.h b/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.h new file mode 100644 index 0000000..dbee347 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelAllWarningMessages.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelAllWarningMessages_H_ +#define _ASN_NGAP_CancelAllWarningMessages_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CancelAllWarningMessages { + ASN_NGAP_CancelAllWarningMessages_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CancelAllWarningMessages; + +/* ASN_NGAP_CancelAllWarningMessages */ +typedef long ASN_NGAP_CancelAllWarningMessages_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelAllWarningMessages_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelAllWarningMessages; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CancelAllWarningMessages_specs_1; +asn_struct_free_f ASN_NGAP_CancelAllWarningMessages_free; +asn_struct_print_f ASN_NGAP_CancelAllWarningMessages_print; +asn_constr_check_f ASN_NGAP_CancelAllWarningMessages_constraint; +ber_type_decoder_f ASN_NGAP_CancelAllWarningMessages_decode_ber; +der_type_encoder_f ASN_NGAP_CancelAllWarningMessages_encode_der; +xer_type_decoder_f ASN_NGAP_CancelAllWarningMessages_decode_xer; +xer_type_encoder_f ASN_NGAP_CancelAllWarningMessages_encode_xer; +per_type_decoder_f ASN_NGAP_CancelAllWarningMessages_decode_uper; +per_type_encoder_f ASN_NGAP_CancelAllWarningMessages_encode_uper; +per_type_decoder_f ASN_NGAP_CancelAllWarningMessages_decode_aper; +per_type_encoder_f ASN_NGAP_CancelAllWarningMessages_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelAllWarningMessages_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c new file mode 100644 index 0000000..d31ba25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item = { + "CancelledCellsInEAI-EUTRA-Item", + "CancelledCellsInEAI-EUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h new file mode 100644 index 0000000..44efff5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_H_ +#define _ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CancelledCellsInEAI-EUTRA-Item */ +typedef struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c new file mode 100644 index 0000000..be3eb9d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInEAI-EUTRA.h" + +#include "ASN_NGAP_CancelledCellsInEAI-EUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInEAI_EUTRA_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_ASN_NGAP_CancelledCellsInEAI_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA = { + "CancelledCellsInEAI-EUTRA", + "CancelledCellsInEAI-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CancelledCellsInEAI_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h new file mode 100644 index 0000000..0be24c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInEAI_EUTRA_H_ +#define _ASN_NGAP_CancelledCellsInEAI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item; + +/* ASN_NGAP_CancelledCellsInEAI-EUTRA */ +typedef struct ASN_NGAP_CancelledCellsInEAI_EUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInEAI_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInEAI_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.c new file mode 100644 index 0000000..67c2d33 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInEAI-NR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item = { + "CancelledCellsInEAI-NR-Item", + "CancelledCellsInEAI-NR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.h new file mode 100644 index 0000000..d2e919c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInEAI_NR_Item_H_ +#define _ASN_NGAP_CancelledCellsInEAI_NR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CancelledCellsInEAI-NR-Item */ +typedef struct ASN_NGAP_CancelledCellsInEAI_NR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_NR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInEAI_NR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.c new file mode 100644 index 0000000..238fbb9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInEAI-NR.h" + +#include "ASN_NGAP_CancelledCellsInEAI-NR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInEAI_NR_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_ASN_NGAP_CancelledCellsInEAI_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_NR), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR = { + "CancelledCellsInEAI-NR", + "CancelledCellsInEAI-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CancelledCellsInEAI_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.h new file mode 100644 index 0000000..02c3bd9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInEAI-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInEAI_NR_H_ +#define _ASN_NGAP_CancelledCellsInEAI_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CancelledCellsInEAI_NR_Item; + +/* ASN_NGAP_CancelledCellsInEAI-NR */ +typedef struct ASN_NGAP_CancelledCellsInEAI_NR { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInEAI_NR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInEAI_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInEAI_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c new file mode 100644 index 0000000..028ced1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item = { + "CancelledCellsInTAI-EUTRA-Item", + "CancelledCellsInTAI-EUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h new file mode 100644 index 0000000..8bc9fb7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_H_ +#define _ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CancelledCellsInTAI-EUTRA-Item */ +typedef struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c new file mode 100644 index 0000000..87f0cc5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInTAI-EUTRA.h" + +#include "ASN_NGAP_CancelledCellsInTAI-EUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInTAI_EUTRA_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_ASN_NGAP_CancelledCellsInTAI_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA = { + "CancelledCellsInTAI-EUTRA", + "CancelledCellsInTAI-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CancelledCellsInTAI_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h new file mode 100644 index 0000000..92716b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInTAI_EUTRA_H_ +#define _ASN_NGAP_CancelledCellsInTAI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item; + +/* ASN_NGAP_CancelledCellsInTAI-EUTRA */ +typedef struct ASN_NGAP_CancelledCellsInTAI_EUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInTAI_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInTAI_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.c new file mode 100644 index 0000000..896de2b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInTAI-NR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item = { + "CancelledCellsInTAI-NR-Item", + "CancelledCellsInTAI-NR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.h new file mode 100644 index 0000000..c669a04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInTAI_NR_Item_H_ +#define _ASN_NGAP_CancelledCellsInTAI_NR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CancelledCellsInTAI-NR-Item */ +typedef struct ASN_NGAP_CancelledCellsInTAI_NR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_NR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInTAI_NR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.c b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.c new file mode 100644 index 0000000..46b1092 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CancelledCellsInTAI-NR.h" + +#include "ASN_NGAP_CancelledCellsInTAI-NR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInTAI_NR_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_ASN_NGAP_CancelledCellsInTAI_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_specs_1 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_NR), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR = { + "CancelledCellsInTAI-NR", + "CancelledCellsInTAI-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CancelledCellsInTAI_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.h b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.h new file mode 100644 index 0000000..76258b8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CancelledCellsInTAI-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CancelledCellsInTAI_NR_H_ +#define _ASN_NGAP_CancelledCellsInTAI_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CancelledCellsInTAI_NR_Item; + +/* ASN_NGAP_CancelledCellsInTAI-NR */ +typedef struct ASN_NGAP_CancelledCellsInTAI_NR { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInTAI_NR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CancelledCellsInTAI_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CancelledCellsInTAI_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CandidateCell.c b/src/asn/ngap/ASN_NGAP_CandidateCell.c new file mode 100644 index 0000000..17087f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCell.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CandidateCell.h" + +#include "ASN_NGAP_CandidateCellID.h" +#include "ASN_NGAP_CandidatePCI.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CandidateCell_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCell_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CandidateCell, choice.candidateCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CandidateCellID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCGI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CandidateCell, choice.candidatePCI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CandidatePCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidatePCI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CandidateCell, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidateCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* candidatePCI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CandidateCell_specs_1 = { + sizeof(struct ASN_NGAP_CandidateCell), + offsetof(struct ASN_NGAP_CandidateCell, _asn_ctx), + offsetof(struct ASN_NGAP_CandidateCell, present), + sizeof(((struct ASN_NGAP_CandidateCell *)0)->present), + asn_MAP_ASN_NGAP_CandidateCell_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCell = { + "CandidateCell", + "CandidateCell", + &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_ASN_NGAP_CandidateCell_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_CandidateCell_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CandidateCell.h b/src/asn/ngap/ASN_NGAP_CandidateCell.h new file mode 100644 index 0000000..5f39f4d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCell.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CandidateCell_H_ +#define _ASN_NGAP_CandidateCell_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CandidateCell_PR { + ASN_NGAP_CandidateCell_PR_NOTHING, /* No components present */ + ASN_NGAP_CandidateCell_PR_candidateCGI, + ASN_NGAP_CandidateCell_PR_candidatePCI, + ASN_NGAP_CandidateCell_PR_choice_Extensions +} ASN_NGAP_CandidateCell_PR; + +/* Forward declarations */ +struct ASN_NGAP_CandidateCellID; +struct ASN_NGAP_CandidatePCI; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_CandidateCell */ +typedef struct ASN_NGAP_CandidateCell { + ASN_NGAP_CandidateCell_PR present; + union ASN_NGAP_CandidateCell_u { + struct ASN_NGAP_CandidateCellID *candidateCGI; + struct ASN_NGAP_CandidatePCI *candidatePCI; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCell; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CandidateCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCell_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CandidateCell_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CandidateCell_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellID.c b/src/asn/ngap/ASN_NGAP_CandidateCellID.c new file mode 100644 index 0000000..37348a5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellID.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CandidateCellID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellID, candidateCellID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CandidateCellID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CandidateCellID_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCellID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCellID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidateCellID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellID_specs_1 = { + sizeof(struct ASN_NGAP_CandidateCellID), + offsetof(struct ASN_NGAP_CandidateCellID, _asn_ctx), + asn_MAP_ASN_NGAP_CandidateCellID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CandidateCellID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellID = { + "CandidateCellID", + "CandidateCellID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidateCellID_tags_1, + sizeof(asn_DEF_ASN_NGAP_CandidateCellID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCellID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCellID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCellID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCellID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellID.h b/src/asn/ngap/ASN_NGAP_CandidateCellID.h new file mode 100644 index 0000000..a866133 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellID.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CandidateCellID_H_ +#define _ASN_NGAP_CandidateCellID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CandidateCellID */ +typedef struct ASN_NGAP_CandidateCellID { + ASN_NGAP_NR_CGI_t candidateCellID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCellID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CandidateCellID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellItem.c b/src/asn/ngap/ASN_NGAP_CandidateCellItem.c new file mode 100644 index 0000000..d739c4f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CandidateCellItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellItem, candidateCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CandidateCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CandidateCellItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CandidateCellItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCellItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCellItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidateCell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellItem_specs_1 = { + sizeof(struct ASN_NGAP_CandidateCellItem), + offsetof(struct ASN_NGAP_CandidateCellItem, _asn_ctx), + asn_MAP_ASN_NGAP_CandidateCellItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CandidateCellItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellItem = { + "CandidateCellItem", + "CandidateCellItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidateCellItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCellItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCellItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCellItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellItem.h b/src/asn/ngap/ASN_NGAP_CandidateCellItem.h new file mode 100644 index 0000000..33355bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CandidateCellItem_H_ +#define _ASN_NGAP_CandidateCellItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CandidateCell.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CandidateCellItem */ +typedef struct ASN_NGAP_CandidateCellItem { + ASN_NGAP_CandidateCell_t candidateCell; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCellItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CandidateCellItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellList.c b/src/asn/ngap/ASN_NGAP_CandidateCellList.c new file mode 100644 index 0000000..f37c68c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CandidateCellList.h" + +#include "ASN_NGAP_CandidateCellItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CandidateCellList_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_ASN_NGAP_CandidateCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CandidateCellItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CandidateCellList_specs_1 = { + sizeof(struct ASN_NGAP_CandidateCellList), + offsetof(struct ASN_NGAP_CandidateCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellList = { + "CandidateCellList", + "CandidateCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CandidateCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_CandidateCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CandidateCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CandidateCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CandidateCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CandidateCellList.h b/src/asn/ngap/ASN_NGAP_CandidateCellList.h new file mode 100644 index 0000000..a76de89 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidateCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CandidateCellList_H_ +#define _ASN_NGAP_CandidateCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CandidateCellItem; + +/* ASN_NGAP_CandidateCellList */ +typedef struct ASN_NGAP_CandidateCellList { + A_SEQUENCE_OF(struct ASN_NGAP_CandidateCellItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CandidateCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CandidateCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CandidateCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CandidatePCI.c b/src/asn/ngap/ASN_NGAP_CandidatePCI.c new file mode 100644 index 0000000..3662dfb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidatePCI.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CandidatePCI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_candidatePCI_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 <= 1007)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_candidateNRARFCN_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_ASN_NGAP_candidatePCI_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 0, 1007 } /* (0..1007,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_candidateNRARFCN_constr_3 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_ASN_NGAP_CandidatePCI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidatePCI, candidatePCI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_candidatePCI_constr_2, memb_ASN_NGAP_candidatePCI_constraint_1 }, + 0, 0, /* No default value */ + "candidatePCI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidatePCI, candidateNRARFCN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_candidateNRARFCN_constr_3, memb_ASN_NGAP_candidateNRARFCN_constraint_1 }, + 0, 0, /* No default value */ + "candidateNRARFCN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CandidatePCI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CandidatePCI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidatePCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidatePCI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidatePCI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* candidateNRARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidatePCI_specs_1 = { + sizeof(struct ASN_NGAP_CandidatePCI), + offsetof(struct ASN_NGAP_CandidatePCI, _asn_ctx), + asn_MAP_ASN_NGAP_CandidatePCI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CandidatePCI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidatePCI = { + "CandidatePCI", + "CandidatePCI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidatePCI_tags_1, + sizeof(asn_DEF_ASN_NGAP_CandidatePCI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidatePCI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidatePCI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidatePCI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CandidatePCI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidatePCI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidatePCI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CandidatePCI.h b/src/asn/ngap/ASN_NGAP_CandidatePCI.h new file mode 100644 index 0000000..19d2686 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CandidatePCI.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CandidatePCI_H_ +#define _ASN_NGAP_CandidatePCI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CandidatePCI */ +typedef struct ASN_NGAP_CandidatePCI { + long candidatePCI; + long candidateNRARFCN; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidatePCI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidatePCI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidatePCI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidatePCI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CandidatePCI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Cause.c b/src/asn/ngap/ASN_NGAP_Cause.c new file mode 100644 index 0000000..20f345c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Cause.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Cause.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_Cause_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_Cause_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause, choice.radioNetwork), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CauseRadioNetwork, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioNetwork" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CauseTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause, choice.nas), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CauseNas, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nas" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause, choice.protocol), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CauseProtocol, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocol" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause, choice.misc), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CauseMisc, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "misc" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_Cause, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_Cause_specs_1 = { + sizeof(struct ASN_NGAP_Cause), + offsetof(struct ASN_NGAP_Cause, _asn_ctx), + offsetof(struct ASN_NGAP_Cause, present), + sizeof(((struct ASN_NGAP_Cause *)0)->present), + asn_MAP_ASN_NGAP_Cause_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_Cause_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_Cause_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_Cause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Cause.h b/src/asn/ngap/ASN_NGAP_Cause.h new file mode 100644 index 0000000..51468dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Cause.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Cause_H_ +#define _ASN_NGAP_Cause_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CauseRadioNetwork.h" +#include "ASN_NGAP_CauseTransport.h" +#include "ASN_NGAP_CauseNas.h" +#include "ASN_NGAP_CauseProtocol.h" +#include "ASN_NGAP_CauseMisc.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Cause_PR { + ASN_NGAP_Cause_PR_NOTHING, /* No components present */ + ASN_NGAP_Cause_PR_radioNetwork, + ASN_NGAP_Cause_PR_transport, + ASN_NGAP_Cause_PR_nas, + ASN_NGAP_Cause_PR_protocol, + ASN_NGAP_Cause_PR_misc, + ASN_NGAP_Cause_PR_choice_Extensions +} ASN_NGAP_Cause_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_Cause */ +typedef struct ASN_NGAP_Cause { + ASN_NGAP_Cause_PR present; + union ASN_NGAP_Cause_u { + ASN_NGAP_CauseRadioNetwork_t radioNetwork; + ASN_NGAP_CauseTransport_t transport; + ASN_NGAP_CauseNas_t nas; + ASN_NGAP_CauseProtocol_t protocol; + ASN_NGAP_CauseMisc_t misc; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Cause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cause; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_Cause_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Cause_1[6]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Cause_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Cause_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CauseMisc.c b/src/asn/ngap/ASN_NGAP_CauseMisc.c new file mode 100644 index 0000000..ccfad8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseMisc.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CauseMisc.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseMisc_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_ASN_NGAP_CauseMisc_value2enum_1[] = { + { 0, 27, "control-processing-overload" }, + { 1, 42, "not-enough-user-plane-processing-resources" }, + { 2, 16, "hardware-failure" }, + { 3, 15, "om-intervention" }, + { 4, 20, "unknown-PLMN-or-SNPN" }, + { 5, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CauseMisc_enum2value_1[] = { + 0, /* control-processing-overload(0) */ + 2, /* hardware-failure(2) */ + 1, /* not-enough-user-plane-processing-resources(1) */ + 3, /* om-intervention(3) */ + 4, /* unknown-PLMN-or-SNPN(4) */ + 5 /* unspecified(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseMisc_specs_1 = { + asn_MAP_ASN_NGAP_CauseMisc_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CauseMisc_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_ASN_NGAP_CauseMisc_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseMisc = { + "CauseMisc", + "CauseMisc", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CauseMisc_tags_1, + sizeof(asn_DEF_ASN_NGAP_CauseMisc_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseMisc_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CauseMisc_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CauseMisc_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseMisc_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CauseMisc_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CauseMisc_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CauseMisc.h b/src/asn/ngap/ASN_NGAP_CauseMisc.h new file mode 100644 index 0000000..a9600db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseMisc.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CauseMisc_H_ +#define _ASN_NGAP_CauseMisc_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CauseMisc { + ASN_NGAP_CauseMisc_control_processing_overload = 0, + ASN_NGAP_CauseMisc_not_enough_user_plane_processing_resources = 1, + ASN_NGAP_CauseMisc_hardware_failure = 2, + ASN_NGAP_CauseMisc_om_intervention = 3, + ASN_NGAP_CauseMisc_unknown_PLMN_or_SNPN = 4, + ASN_NGAP_CauseMisc_unspecified = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CauseMisc; + +/* ASN_NGAP_CauseMisc */ +typedef long ASN_NGAP_CauseMisc_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseMisc_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseMisc; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseMisc_specs_1; +asn_struct_free_f ASN_NGAP_CauseMisc_free; +asn_struct_print_f ASN_NGAP_CauseMisc_print; +asn_constr_check_f ASN_NGAP_CauseMisc_constraint; +ber_type_decoder_f ASN_NGAP_CauseMisc_decode_ber; +der_type_encoder_f ASN_NGAP_CauseMisc_encode_der; +xer_type_decoder_f ASN_NGAP_CauseMisc_decode_xer; +xer_type_encoder_f ASN_NGAP_CauseMisc_encode_xer; +per_type_decoder_f ASN_NGAP_CauseMisc_decode_uper; +per_type_encoder_f ASN_NGAP_CauseMisc_encode_uper; +per_type_decoder_f ASN_NGAP_CauseMisc_decode_aper; +per_type_encoder_f ASN_NGAP_CauseMisc_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CauseMisc_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CauseNas.c b/src/asn/ngap/ASN_NGAP_CauseNas.c new file mode 100644 index 0000000..32cb44f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseNas.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CauseNas.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseNas_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_ASN_NGAP_CauseNas_value2enum_1[] = { + { 0, 14, "normal-release" }, + { 1, 22, "authentication-failure" }, + { 2, 10, "deregister" }, + { 3, 11, "unspecified" }, + { 4, 27, "uE-not-in-PLMN-serving-area" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CauseNas_enum2value_1[] = { + 1, /* authentication-failure(1) */ + 2, /* deregister(2) */ + 0, /* normal-release(0) */ + 4, /* uE-not-in-PLMN-serving-area(4) */ + 3 /* unspecified(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseNas_specs_1 = { + asn_MAP_ASN_NGAP_CauseNas_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CauseNas_enum2value_1, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_NGAP_CauseNas_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseNas = { + "CauseNas", + "CauseNas", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CauseNas_tags_1, + sizeof(asn_DEF_ASN_NGAP_CauseNas_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseNas_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CauseNas_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CauseNas_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseNas_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CauseNas_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CauseNas_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CauseNas.h b/src/asn/ngap/ASN_NGAP_CauseNas.h new file mode 100644 index 0000000..2d1876a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseNas.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CauseNas_H_ +#define _ASN_NGAP_CauseNas_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CauseNas { + ASN_NGAP_CauseNas_normal_release = 0, + ASN_NGAP_CauseNas_authentication_failure = 1, + ASN_NGAP_CauseNas_deregister = 2, + ASN_NGAP_CauseNas_unspecified = 3, + /* + * Enumeration is extensible + */ + ASN_NGAP_CauseNas_uE_not_in_PLMN_serving_area = 4 +} e_ASN_NGAP_CauseNas; + +/* ASN_NGAP_CauseNas */ +typedef long ASN_NGAP_CauseNas_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseNas_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseNas; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseNas_specs_1; +asn_struct_free_f ASN_NGAP_CauseNas_free; +asn_struct_print_f ASN_NGAP_CauseNas_print; +asn_constr_check_f ASN_NGAP_CauseNas_constraint; +ber_type_decoder_f ASN_NGAP_CauseNas_decode_ber; +der_type_encoder_f ASN_NGAP_CauseNas_encode_der; +xer_type_decoder_f ASN_NGAP_CauseNas_decode_xer; +xer_type_encoder_f ASN_NGAP_CauseNas_encode_xer; +per_type_decoder_f ASN_NGAP_CauseNas_decode_uper; +per_type_encoder_f ASN_NGAP_CauseNas_encode_uper; +per_type_decoder_f ASN_NGAP_CauseNas_decode_aper; +per_type_encoder_f ASN_NGAP_CauseNas_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CauseNas_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CauseProtocol.c b/src/asn/ngap/ASN_NGAP_CauseProtocol.c new file mode 100644 index 0000000..a10b237 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseProtocol.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CauseProtocol.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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, 49, "abstract-syntax-error-falsely-constructed-message" }, + { 6, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CauseProtocol_enum2value_1[] = { + 5, /* abstract-syntax-error-falsely-constructed-message(5) */ + 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) */ + 6 /* unspecified(6) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseProtocol_specs_1 = { + asn_MAP_ASN_NGAP_CauseProtocol_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_CauseProtocol_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseProtocol = { + "CauseProtocol", + "CauseProtocol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CauseProtocol_tags_1, + sizeof(asn_DEF_ASN_NGAP_CauseProtocol_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseProtocol_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CauseProtocol_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CauseProtocol_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseProtocol_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CauseProtocol_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CauseProtocol_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CauseProtocol.h b/src/asn/ngap/ASN_NGAP_CauseProtocol.h new file mode 100644 index 0000000..8f7c33e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseProtocol.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CauseProtocol_H_ +#define _ASN_NGAP_CauseProtocol_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CauseProtocol { + ASN_NGAP_CauseProtocol_transfer_syntax_error = 0, + ASN_NGAP_CauseProtocol_abstract_syntax_error_reject = 1, + ASN_NGAP_CauseProtocol_abstract_syntax_error_ignore_and_notify = 2, + ASN_NGAP_CauseProtocol_message_not_compatible_with_receiver_state = 3, + ASN_NGAP_CauseProtocol_semantic_error = 4, + ASN_NGAP_CauseProtocol_abstract_syntax_error_falsely_constructed_message = 5, + ASN_NGAP_CauseProtocol_unspecified = 6 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CauseProtocol; + +/* ASN_NGAP_CauseProtocol */ +typedef long ASN_NGAP_CauseProtocol_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseProtocol_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseProtocol; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseProtocol_specs_1; +asn_struct_free_f ASN_NGAP_CauseProtocol_free; +asn_struct_print_f ASN_NGAP_CauseProtocol_print; +asn_constr_check_f ASN_NGAP_CauseProtocol_constraint; +ber_type_decoder_f ASN_NGAP_CauseProtocol_decode_ber; +der_type_encoder_f ASN_NGAP_CauseProtocol_encode_der; +xer_type_decoder_f ASN_NGAP_CauseProtocol_decode_xer; +xer_type_encoder_f ASN_NGAP_CauseProtocol_encode_xer; +per_type_decoder_f ASN_NGAP_CauseProtocol_decode_uper; +per_type_encoder_f ASN_NGAP_CauseProtocol_encode_uper; +per_type_decoder_f ASN_NGAP_CauseProtocol_decode_aper; +per_type_encoder_f ASN_NGAP_CauseProtocol_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CauseProtocol_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.c b/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.c new file mode 100644 index 0000000..6f69c2b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CauseRadioNetwork.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseRadioNetwork_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 44 } /* (0..44,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_CauseRadioNetwork_value2enum_1[] = { + { 0, 11, "unspecified" }, + { 1, 22, "txnrelocoverall-expiry" }, + { 2, 19, "successful-handover" }, + { 3, 37, "release-due-to-ngran-generated-reason" }, + { 4, 35, "release-due-to-5gc-generated-reason" }, + { 5, 18, "handover-cancelled" }, + { 6, 16, "partial-handover" }, + { 7, 52, "ho-failure-in-target-5GC-ngran-node-or-target-system" }, + { 8, 21, "ho-target-not-allowed" }, + { 9, 22, "tngrelocoverall-expiry" }, + { 10, 19, "tngrelocprep-expiry" }, + { 11, 18, "cell-not-available" }, + { 12, 16, "unknown-targetID" }, + { 13, 43, "no-radio-resources-available-in-target-cell" }, + { 14, 24, "unknown-local-UE-NGAP-ID" }, + { 15, 30, "inconsistent-remote-UE-NGAP-ID" }, + { 16, 35, "handover-desirable-for-radio-reason" }, + { 17, 22, "time-critical-handover" }, + { 18, 30, "resource-optimisation-handover" }, + { 19, 27, "reduce-load-in-serving-cell" }, + { 20, 15, "user-inactivity" }, + { 21, 29, "radio-connection-with-ue-lost" }, + { 22, 29, "radio-resources-not-available" }, + { 23, 23, "invalid-qos-combination" }, + { 24, 36, "failure-in-radio-interface-procedure" }, + { 25, 32, "interaction-with-other-procedure" }, + { 26, 22, "unknown-PDU-session-ID" }, + { 27, 18, "unkown-qos-flow-ID" }, + { 28, 33, "multiple-PDU-session-ID-instances" }, + { 29, 30, "multiple-qos-flow-ID-instances" }, + { 30, 63, "encryption-and-or-integrity-protection-algorithms-not-supported" }, + { 31, 34, "ng-intra-system-handover-triggered" }, + { 32, 34, "ng-inter-system-handover-triggered" }, + { 33, 21, "xn-handover-triggered" }, + { 34, 23, "not-supported-5QI-value" }, + { 35, 19, "ue-context-transfer" }, + { 36, 48, "ims-voice-eps-fallback-or-rat-fallback-triggered" }, + { 37, 36, "up-integrity-protection-not-possible" }, + { 38, 42, "up-confidentiality-protection-not-possible" }, + { 39, 19, "slice-not-supported" }, + { 40, 38, "ue-in-rrc-inactive-state-not-reachable" }, + { 41, 11, "redirection" }, + { 42, 37, "resources-not-available-for-the-slice" }, + { 43, 43, "ue-max-integrity-protected-data-rate-reason" }, + { 44, 35, "release-due-to-cn-detected-mobility" }, + { 45, 27, "n26-interface-not-available" }, + { 46, 26, "release-due-to-pre-emption" }, + { 47, 50, "multiple-location-reporting-reference-ID-instances" }, + { 48, 28, "rsn-not-available-for-the-up" }, + { 49, 17, "npn-access-denied" }, + { 50, 22, "cag-only-access-denied" }, + { 51, 28, "insufficient-ue-capabilities" }, + { 52, 23, "redcap-ue-not-supported" }, + { 53, 22, "unknown-MBS-Session-ID" }, + { 54, 60, "indicated-MBS-session-area-information-not-served-by-the-gNB" }, + { 55, 39, "inconsistent-slice-info-for-the-session" }, + { 56, 44, "misaligned-association-for-multicast-unicast" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CauseRadioNetwork_enum2value_1[] = { + 50, /* cag-only-access-denied(50) */ + 11, /* cell-not-available(11) */ + 30, /* encryption-and-or-integrity-protection-algorithms-not-supported(30) */ + 24, /* failure-in-radio-interface-procedure(24) */ + 5, /* handover-cancelled(5) */ + 16, /* handover-desirable-for-radio-reason(16) */ + 7, /* ho-failure-in-target-5GC-ngran-node-or-target-system(7) */ + 8, /* ho-target-not-allowed(8) */ + 36, /* ims-voice-eps-fallback-or-rat-fallback-triggered(36) */ + 15, /* inconsistent-remote-UE-NGAP-ID(15) */ + 55, /* inconsistent-slice-info-for-the-session(55) */ + 54, /* indicated-MBS-session-area-information-not-served-by-the-gNB(54) */ + 51, /* insufficient-ue-capabilities(51) */ + 25, /* interaction-with-other-procedure(25) */ + 23, /* invalid-qos-combination(23) */ + 56, /* misaligned-association-for-multicast-unicast(56) */ + 28, /* multiple-PDU-session-ID-instances(28) */ + 47, /* multiple-location-reporting-reference-ID-instances(47) */ + 29, /* multiple-qos-flow-ID-instances(29) */ + 45, /* n26-interface-not-available(45) */ + 32, /* ng-inter-system-handover-triggered(32) */ + 31, /* ng-intra-system-handover-triggered(31) */ + 13, /* no-radio-resources-available-in-target-cell(13) */ + 34, /* not-supported-5QI-value(34) */ + 49, /* npn-access-denied(49) */ + 6, /* partial-handover(6) */ + 21, /* radio-connection-with-ue-lost(21) */ + 22, /* radio-resources-not-available(22) */ + 52, /* redcap-ue-not-supported(52) */ + 41, /* redirection(41) */ + 19, /* reduce-load-in-serving-cell(19) */ + 4, /* release-due-to-5gc-generated-reason(4) */ + 44, /* release-due-to-cn-detected-mobility(44) */ + 3, /* release-due-to-ngran-generated-reason(3) */ + 46, /* release-due-to-pre-emption(46) */ + 18, /* resource-optimisation-handover(18) */ + 42, /* resources-not-available-for-the-slice(42) */ + 48, /* rsn-not-available-for-the-up(48) */ + 39, /* slice-not-supported(39) */ + 2, /* successful-handover(2) */ + 17, /* time-critical-handover(17) */ + 9, /* tngrelocoverall-expiry(9) */ + 10, /* tngrelocprep-expiry(10) */ + 1, /* txnrelocoverall-expiry(1) */ + 35, /* ue-context-transfer(35) */ + 40, /* ue-in-rrc-inactive-state-not-reachable(40) */ + 43, /* ue-max-integrity-protected-data-rate-reason(43) */ + 53, /* unknown-MBS-Session-ID(53) */ + 26, /* unknown-PDU-session-ID(26) */ + 14, /* unknown-local-UE-NGAP-ID(14) */ + 12, /* unknown-targetID(12) */ + 27, /* unkown-qos-flow-ID(27) */ + 0, /* unspecified(0) */ + 38, /* up-confidentiality-protection-not-possible(38) */ + 37, /* up-integrity-protection-not-possible(37) */ + 20, /* user-inactivity(20) */ + 33 /* xn-handover-triggered(33) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseRadioNetwork_specs_1 = { + asn_MAP_ASN_NGAP_CauseRadioNetwork_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CauseRadioNetwork_enum2value_1, /* N => "tag"; sorted by N */ + 57, /* Number of elements in the maps */ + 46, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseRadioNetwork = { + "CauseRadioNetwork", + "CauseRadioNetwork", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1, + sizeof(asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseRadioNetwork_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CauseRadioNetwork_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CauseRadioNetwork_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.h b/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.h new file mode 100644 index 0000000..33f6005 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseRadioNetwork.h @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CauseRadioNetwork_H_ +#define _ASN_NGAP_CauseRadioNetwork_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CauseRadioNetwork { + ASN_NGAP_CauseRadioNetwork_unspecified = 0, + ASN_NGAP_CauseRadioNetwork_txnrelocoverall_expiry = 1, + ASN_NGAP_CauseRadioNetwork_successful_handover = 2, + ASN_NGAP_CauseRadioNetwork_release_due_to_ngran_generated_reason = 3, + ASN_NGAP_CauseRadioNetwork_release_due_to_5gc_generated_reason = 4, + ASN_NGAP_CauseRadioNetwork_handover_cancelled = 5, + ASN_NGAP_CauseRadioNetwork_partial_handover = 6, + ASN_NGAP_CauseRadioNetwork_ho_failure_in_target_5GC_ngran_node_or_target_system = 7, + ASN_NGAP_CauseRadioNetwork_ho_target_not_allowed = 8, + ASN_NGAP_CauseRadioNetwork_tngrelocoverall_expiry = 9, + ASN_NGAP_CauseRadioNetwork_tngrelocprep_expiry = 10, + ASN_NGAP_CauseRadioNetwork_cell_not_available = 11, + ASN_NGAP_CauseRadioNetwork_unknown_targetID = 12, + ASN_NGAP_CauseRadioNetwork_no_radio_resources_available_in_target_cell = 13, + ASN_NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID = 14, + ASN_NGAP_CauseRadioNetwork_inconsistent_remote_UE_NGAP_ID = 15, + ASN_NGAP_CauseRadioNetwork_handover_desirable_for_radio_reason = 16, + ASN_NGAP_CauseRadioNetwork_time_critical_handover = 17, + ASN_NGAP_CauseRadioNetwork_resource_optimisation_handover = 18, + ASN_NGAP_CauseRadioNetwork_reduce_load_in_serving_cell = 19, + ASN_NGAP_CauseRadioNetwork_user_inactivity = 20, + ASN_NGAP_CauseRadioNetwork_radio_connection_with_ue_lost = 21, + ASN_NGAP_CauseRadioNetwork_radio_resources_not_available = 22, + ASN_NGAP_CauseRadioNetwork_invalid_qos_combination = 23, + ASN_NGAP_CauseRadioNetwork_failure_in_radio_interface_procedure = 24, + ASN_NGAP_CauseRadioNetwork_interaction_with_other_procedure = 25, + ASN_NGAP_CauseRadioNetwork_unknown_PDU_session_ID = 26, + ASN_NGAP_CauseRadioNetwork_unkown_qos_flow_ID = 27, + ASN_NGAP_CauseRadioNetwork_multiple_PDU_session_ID_instances = 28, + ASN_NGAP_CauseRadioNetwork_multiple_qos_flow_ID_instances = 29, + ASN_NGAP_CauseRadioNetwork_encryption_and_or_integrity_protection_algorithms_not_supported = 30, + ASN_NGAP_CauseRadioNetwork_ng_intra_system_handover_triggered = 31, + ASN_NGAP_CauseRadioNetwork_ng_inter_system_handover_triggered = 32, + ASN_NGAP_CauseRadioNetwork_xn_handover_triggered = 33, + ASN_NGAP_CauseRadioNetwork_not_supported_5QI_value = 34, + ASN_NGAP_CauseRadioNetwork_ue_context_transfer = 35, + ASN_NGAP_CauseRadioNetwork_ims_voice_eps_fallback_or_rat_fallback_triggered = 36, + ASN_NGAP_CauseRadioNetwork_up_integrity_protection_not_possible = 37, + ASN_NGAP_CauseRadioNetwork_up_confidentiality_protection_not_possible = 38, + ASN_NGAP_CauseRadioNetwork_slice_not_supported = 39, + ASN_NGAP_CauseRadioNetwork_ue_in_rrc_inactive_state_not_reachable = 40, + ASN_NGAP_CauseRadioNetwork_redirection = 41, + ASN_NGAP_CauseRadioNetwork_resources_not_available_for_the_slice = 42, + ASN_NGAP_CauseRadioNetwork_ue_max_integrity_protected_data_rate_reason = 43, + ASN_NGAP_CauseRadioNetwork_release_due_to_cn_detected_mobility = 44, + /* + * Enumeration is extensible + */ + ASN_NGAP_CauseRadioNetwork_n26_interface_not_available = 45, + ASN_NGAP_CauseRadioNetwork_release_due_to_pre_emption = 46, + ASN_NGAP_CauseRadioNetwork_multiple_location_reporting_reference_ID_instances = 47, + ASN_NGAP_CauseRadioNetwork_rsn_not_available_for_the_up = 48, + ASN_NGAP_CauseRadioNetwork_npn_access_denied = 49, + ASN_NGAP_CauseRadioNetwork_cag_only_access_denied = 50, + ASN_NGAP_CauseRadioNetwork_insufficient_ue_capabilities = 51, + ASN_NGAP_CauseRadioNetwork_redcap_ue_not_supported = 52, + ASN_NGAP_CauseRadioNetwork_unknown_MBS_Session_ID = 53, + ASN_NGAP_CauseRadioNetwork_indicated_MBS_session_area_information_not_served_by_the_gNB = 54, + ASN_NGAP_CauseRadioNetwork_inconsistent_slice_info_for_the_session = 55, + ASN_NGAP_CauseRadioNetwork_misaligned_association_for_multicast_unicast = 56 +} e_ASN_NGAP_CauseRadioNetwork; + +/* ASN_NGAP_CauseRadioNetwork */ +typedef long ASN_NGAP_CauseRadioNetwork_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseRadioNetwork_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseRadioNetwork; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseRadioNetwork_specs_1; +asn_struct_free_f ASN_NGAP_CauseRadioNetwork_free; +asn_struct_print_f ASN_NGAP_CauseRadioNetwork_print; +asn_constr_check_f ASN_NGAP_CauseRadioNetwork_constraint; +ber_type_decoder_f ASN_NGAP_CauseRadioNetwork_decode_ber; +der_type_encoder_f ASN_NGAP_CauseRadioNetwork_encode_der; +xer_type_decoder_f ASN_NGAP_CauseRadioNetwork_decode_xer; +xer_type_encoder_f ASN_NGAP_CauseRadioNetwork_encode_xer; +per_type_decoder_f ASN_NGAP_CauseRadioNetwork_decode_uper; +per_type_encoder_f ASN_NGAP_CauseRadioNetwork_encode_uper; +per_type_decoder_f ASN_NGAP_CauseRadioNetwork_decode_aper; +per_type_encoder_f ASN_NGAP_CauseRadioNetwork_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CauseRadioNetwork_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CauseTransport.c b/src/asn/ngap/ASN_NGAP_CauseTransport.c new file mode 100644 index 0000000..48df270 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseTransport.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CauseTransport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_CauseTransport_value2enum_1[] = { + { 0, 30, "transport-resource-unavailable" }, + { 1, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CauseTransport_enum2value_1[] = { + 0, /* transport-resource-unavailable(0) */ + 1 /* unspecified(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseTransport_specs_1 = { + asn_MAP_ASN_NGAP_CauseTransport_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_CauseTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseTransport = { + "CauseTransport", + "CauseTransport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CauseTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_CauseTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CauseTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CauseTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CauseTransport_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CauseTransport_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CauseTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CauseTransport.h b/src/asn/ngap/ASN_NGAP_CauseTransport.h new file mode 100644 index 0000000..0a24875 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CauseTransport.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CauseTransport_H_ +#define _ASN_NGAP_CauseTransport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CauseTransport { + ASN_NGAP_CauseTransport_transport_resource_unavailable = 0, + ASN_NGAP_CauseTransport_unspecified = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CauseTransport; + +/* ASN_NGAP_CauseTransport */ +typedef long ASN_NGAP_CauseTransport_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CauseTransport_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CauseTransport; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CauseTransport_specs_1; +asn_struct_free_f ASN_NGAP_CauseTransport_free; +asn_struct_print_f ASN_NGAP_CauseTransport_print; +asn_constr_check_f ASN_NGAP_CauseTransport_constraint; +ber_type_decoder_f ASN_NGAP_CauseTransport_decode_ber; +der_type_encoder_f ASN_NGAP_CauseTransport_encode_der; +xer_type_decoder_f ASN_NGAP_CauseTransport_decode_xer; +xer_type_encoder_f ASN_NGAP_CauseTransport_encode_xer; +per_type_decoder_f ASN_NGAP_CauseTransport_decode_uper; +per_type_encoder_f ASN_NGAP_CauseTransport_encode_uper; +per_type_decoder_f ASN_NGAP_CauseTransport_decode_aper; +per_type_encoder_f ASN_NGAP_CauseTransport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CauseTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.c b/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.c new file mode 100644 index 0000000..25a5f3b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Cell-CAGInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_Cell_CAGInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cell_CAGInformation, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cell_CAGInformation, cellCAGList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellCAGList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellCAGList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_Cell_CAGInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_Cell_CAGInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Cell_CAGInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellCAGList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cell_CAGInformation_specs_1 = { + sizeof(struct ASN_NGAP_Cell_CAGInformation), + offsetof(struct ASN_NGAP_Cell_CAGInformation, _asn_ctx), + asn_MAP_ASN_NGAP_Cell_CAGInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_Cell_CAGInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cell_CAGInformation = { + "Cell-CAGInformation", + "Cell-CAGInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Cell_CAGInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Cell_CAGInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.h b/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.h new file mode 100644 index 0000000..1455fd9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Cell-CAGInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Cell_CAGInformation_H_ +#define _ASN_NGAP_Cell_CAGInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_CellCAGList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_Cell-CAGInformation */ +typedef struct ASN_NGAP_Cell_CAGInformation { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + ASN_NGAP_CellCAGList_t cellCAGList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Cell_CAGInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cell_CAGInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cell_CAGInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Cell_CAGInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Cell_CAGInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.c b/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.c new file mode 100644 index 0000000..5290bfd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellBasedMDT-EUTRA.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA, cellIdListforMDT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdListforMDT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_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_ASN_NGAP_CellBasedMDT_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CellBasedMDT_EUTRA), + offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA = { + "CellBasedMDT-EUTRA", + "CellBasedMDT-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedMDT_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.h b/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.h new file mode 100644 index 0000000..10c6692 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedMDT-EUTRA.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellBasedMDT_EUTRA_H_ +#define _ASN_NGAP_CellBasedMDT_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CellIdListforMDT-EUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellBasedMDT-EUTRA */ +typedef struct ASN_NGAP_CellBasedMDT_EUTRA { + ASN_NGAP_CellIdListforMDT_EUTRA_t cellIdListforMDT; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedMDT_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellBasedMDT_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.c b/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.c new file mode 100644 index 0000000..a5c0e56 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellBasedMDT-NR.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_NR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_NR, cellIdListforMDT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIdListforMDT_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdListforMDT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellBasedMDT_NR, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellBasedMDT_NR_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellBasedMDT_NR_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_ASN_NGAP_CellBasedMDT_NR_specs_1 = { + sizeof(struct ASN_NGAP_CellBasedMDT_NR), + offsetof(struct ASN_NGAP_CellBasedMDT_NR, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedMDT_NR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellBasedMDT_NR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_NR = { + "CellBasedMDT-NR", + "CellBasedMDT-NR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedMDT_NR_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedMDT_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.h b/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.h new file mode 100644 index 0000000..c7e6c10 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedMDT-NR.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellBasedMDT_NR_H_ +#define _ASN_NGAP_CellBasedMDT_NR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CellIdListforMDT-NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellBasedMDT-NR */ +typedef struct ASN_NGAP_CellBasedMDT_NR { + ASN_NGAP_CellIdListforMDT_NR_t cellIdListforMDT; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedMDT_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_NR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_NR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellBasedMDT_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellBasedQMC.c b/src/asn/ngap/ASN_NGAP_CellBasedQMC.c new file mode 100644 index 0000000..6b2fe82 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellBasedQMC.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedQMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedQMC, cellIdListforQMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellIdListforQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdListforQMC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellBasedQMC, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellBasedQMC_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_CellBasedQMC_specs_1 = { + sizeof(struct ASN_NGAP_CellBasedQMC), + offsetof(struct ASN_NGAP_CellBasedQMC, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedQMC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellBasedQMC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedQMC = { + "CellBasedQMC", + "CellBasedQMC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedQMC_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellBasedQMC.h b/src/asn/ngap/ASN_NGAP_CellBasedQMC.h new file mode 100644 index 0000000..edb2ba6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellBasedQMC_H_ +#define _ASN_NGAP_CellBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CellIdListforQMC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellBasedQMC */ +typedef struct ASN_NGAP_CellBasedQMC { + ASN_NGAP_CellIdListforQMC_t cellIdListforQMC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedQMC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedQMC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellBasedQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellCAGList.c b/src/asn/ngap/ASN_NGAP_CellCAGList.c new file mode 100644 index 0000000..24997e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellCAGList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellCAGList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellCAGList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellCAGList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_CAG_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellCAGList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellCAGList_specs_1 = { + sizeof(struct ASN_NGAP_CellCAGList), + offsetof(struct ASN_NGAP_CellCAGList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellCAGList = { + "CellCAGList", + "CellCAGList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellCAGList_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellCAGList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellCAGList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellCAGList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellCAGList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellCAGList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellCAGList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellCAGList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellCAGList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellCAGList.h b/src/asn/ngap/ASN_NGAP_CellCAGList.h new file mode 100644 index 0000000..124bfe3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellCAGList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellCAGList_H_ +#define _ASN_NGAP_CellCAGList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CAG-ID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CellCAGList */ +typedef struct ASN_NGAP_CellCAGList { + A_SEQUENCE_OF(ASN_NGAP_CAG_ID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellCAGList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellCAGList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellCAGList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellCAGList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellCAGList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellCAGList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c new file mode 100644 index 0000000..b6a74b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDBroadcastEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item), + offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item = { + "CellIDBroadcastEUTRA-Item", + "CellIDBroadcastEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h new file mode 100644 index 0000000..472b789 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDBroadcastEUTRA_Item_H_ +#define _ASN_NGAP_CellIDBroadcastEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellIDBroadcastEUTRA-Item */ +typedef struct ASN_NGAP_CellIDBroadcastEUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDBroadcastEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.c b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.c new file mode 100644 index 0000000..baa7fd6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDBroadcastEUTRA.h" + +#include "ASN_NGAP_CellIDBroadcastEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDBroadcastEUTRA_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_ASN_NGAP_CellIDBroadcastEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CellIDBroadcastEUTRA), + offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA = { + "CellIDBroadcastEUTRA", + "CellIDBroadcastEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIDBroadcastEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.h b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.h new file mode 100644 index 0000000..eccb011 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDBroadcastEUTRA_H_ +#define _ASN_NGAP_CellIDBroadcastEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CellIDBroadcastEUTRA_Item; + +/* ASN_NGAP_CellIDBroadcastEUTRA */ +typedef struct ASN_NGAP_CellIDBroadcastEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDBroadcastEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDBroadcastEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDBroadcastEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.c b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.c new file mode 100644 index 0000000..ce97b4b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDBroadcastNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CellIDBroadcastNR_Item), + offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item = { + "CellIDBroadcastNR-Item", + "CellIDBroadcastNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.h b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.h new file mode 100644 index 0000000..f543b17 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDBroadcastNR_Item_H_ +#define _ASN_NGAP_CellIDBroadcastNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellIDBroadcastNR-Item */ +typedef struct ASN_NGAP_CellIDBroadcastNR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDBroadcastNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.c b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.c new file mode 100644 index 0000000..0ddab1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDBroadcastNR.h" + +#include "ASN_NGAP_CellIDBroadcastNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDBroadcastNR_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_ASN_NGAP_CellIDBroadcastNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_specs_1 = { + sizeof(struct ASN_NGAP_CellIDBroadcastNR), + offsetof(struct ASN_NGAP_CellIDBroadcastNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR = { + "CellIDBroadcastNR", + "CellIDBroadcastNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIDBroadcastNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIDBroadcastNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.h b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.h new file mode 100644 index 0000000..24441b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDBroadcastNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDBroadcastNR_H_ +#define _ASN_NGAP_CellIDBroadcastNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CellIDBroadcastNR_Item; + +/* ASN_NGAP_CellIDBroadcastNR */ +typedef struct ASN_NGAP_CellIDBroadcastNR { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDBroadcastNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDBroadcastNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDBroadcastNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c new file mode 100644 index 0000000..15d1f38 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDCancelledEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CellIDCancelledEUTRA_Item), + offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item = { + "CellIDCancelledEUTRA-Item", + "CellIDCancelledEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h new file mode 100644 index 0000000..56108d4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDCancelledEUTRA_Item_H_ +#define _ASN_NGAP_CellIDCancelledEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellIDCancelledEUTRA-Item */ +typedef struct ASN_NGAP_CellIDCancelledEUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDCancelledEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.c b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.c new file mode 100644 index 0000000..1ed872f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDCancelledEUTRA.h" + +#include "ASN_NGAP_CellIDCancelledEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDCancelledEUTRA_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_ASN_NGAP_CellIDCancelledEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CellIDCancelledEUTRA), + offsetof(struct ASN_NGAP_CellIDCancelledEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA = { + "CellIDCancelledEUTRA", + "CellIDCancelledEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIDCancelledEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.h b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.h new file mode 100644 index 0000000..b53daa6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDCancelledEUTRA_H_ +#define _ASN_NGAP_CellIDCancelledEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CellIDCancelledEUTRA_Item; + +/* ASN_NGAP_CellIDCancelledEUTRA */ +typedef struct ASN_NGAP_CellIDCancelledEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDCancelledEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDCancelledEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDCancelledEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.c b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.c new file mode 100644 index 0000000..4e37ced --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDCancelledNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item, numberOfBroadcasts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfBroadcasts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBroadcasts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* numberOfBroadcasts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CellIDCancelledNR_Item), + offsetof(struct ASN_NGAP_CellIDCancelledNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item = { + "CellIDCancelledNR-Item", + "CellIDCancelledNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.h b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.h new file mode 100644 index 0000000..45a5cfe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDCancelledNR_Item_H_ +#define _ASN_NGAP_CellIDCancelledNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_NumberOfBroadcasts.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellIDCancelledNR-Item */ +typedef struct ASN_NGAP_CellIDCancelledNR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + ASN_NGAP_NumberOfBroadcasts_t numberOfBroadcasts; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDCancelledNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.c b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.c new file mode 100644 index 0000000..0d2b84e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDCancelledNR.h" + +#include "ASN_NGAP_CellIDCancelledNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDCancelledNR_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_ASN_NGAP_CellIDCancelledNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDCancelledNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_specs_1 = { + sizeof(struct ASN_NGAP_CellIDCancelledNR), + offsetof(struct ASN_NGAP_CellIDCancelledNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR = { + "CellIDCancelledNR", + "CellIDCancelledNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIDCancelledNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIDCancelledNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.h b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.h new file mode 100644 index 0000000..6d3613f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDCancelledNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDCancelledNR_H_ +#define _ASN_NGAP_CellIDCancelledNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CellIDCancelledNR_Item; + +/* ASN_NGAP_CellIDCancelledNR */ +typedef struct ASN_NGAP_CellIDCancelledNR { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDCancelledNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDCancelledNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDCancelledNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIDListForRestart.c b/src/asn/ngap/ASN_NGAP_CellIDListForRestart.c new file mode 100644 index 0000000..85e8f2f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDListForRestart.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIDListForRestart.h" + +#include "ASN_NGAP_EUTRA-CGIList.h" +#include "ASN_NGAP_NR-CGIList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDListForRestart_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDListForRestart_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CellIDListForRestart, choice.eUTRA_CGIListforRestart), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGIListforRestart" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CellIDListForRestart, choice.nR_CGIListforRestart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGIListforRestart" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_CellIDListForRestart, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDListForRestart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGIListforRestart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-CGIListforRestart */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CellIDListForRestart_specs_1 = { + sizeof(struct ASN_NGAP_CellIDListForRestart), + offsetof(struct ASN_NGAP_CellIDListForRestart, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDListForRestart, present), + sizeof(((struct ASN_NGAP_CellIDListForRestart *)0)->present), + asn_MAP_ASN_NGAP_CellIDListForRestart_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDListForRestart = { + "CellIDListForRestart", + "CellIDListForRestart", + &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_ASN_NGAP_CellIDListForRestart_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_CellIDListForRestart_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDListForRestart_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIDListForRestart.h b/src/asn/ngap/ASN_NGAP_CellIDListForRestart.h new file mode 100644 index 0000000..5bf345d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIDListForRestart.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIDListForRestart_H_ +#define _ASN_NGAP_CellIDListForRestart_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CellIDListForRestart_PR { + ASN_NGAP_CellIDListForRestart_PR_NOTHING, /* No components present */ + ASN_NGAP_CellIDListForRestart_PR_eUTRA_CGIListforRestart, + ASN_NGAP_CellIDListForRestart_PR_nR_CGIListforRestart, + ASN_NGAP_CellIDListForRestart_PR_choice_Extensions +} ASN_NGAP_CellIDListForRestart_PR; + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGIList; +struct ASN_NGAP_NR_CGIList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_CellIDListForRestart */ +typedef struct ASN_NGAP_CellIDListForRestart { + ASN_NGAP_CellIDListForRestart_PR present; + union ASN_NGAP_CellIDListForRestart_u { + struct ASN_NGAP_EUTRA_CGIList *eUTRA_CGIListforRestart; + struct ASN_NGAP_NR_CGIList *nR_CGIListforRestart; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDListForRestart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDListForRestart; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_CellIDListForRestart_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDListForRestart_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIDListForRestart_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIDListForRestart_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c new file mode 100644 index 0000000..387cb58 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIdListforMDT-EUTRA.h" + +#include "ASN_NGAP_EUTRA-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIdListforMDT_EUTRA_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_ASN_NGAP_CellIdListforMDT_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforMDT_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CellIdListforMDT_EUTRA), + offsetof(struct ASN_NGAP_CellIdListforMDT_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA = { + "CellIdListforMDT-EUTRA", + "CellIdListforMDT-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIdListforMDT_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIdListforMDT_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIdListforMDT_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h new file mode 100644 index 0000000..944b873 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIdListforMDT_EUTRA_H_ +#define _ASN_NGAP_CellIdListforMDT_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGI; + +/* ASN_NGAP_CellIdListforMDT-EUTRA */ +typedef struct ASN_NGAP_CellIdListforMDT_EUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRA_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIdListforMDT_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforMDT_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforMDT_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIdListforMDT_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIdListforMDT_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIdListforMDT_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.c b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.c new file mode 100644 index 0000000..e14874f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIdListforMDT-NR.h" + +#include "ASN_NGAP_NR-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIdListforMDT_NR_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_ASN_NGAP_CellIdListforMDT_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforMDT_NR_specs_1 = { + sizeof(struct ASN_NGAP_CellIdListforMDT_NR), + offsetof(struct ASN_NGAP_CellIdListforMDT_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforMDT_NR = { + "CellIdListforMDT-NR", + "CellIdListforMDT-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforMDT_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIdListforMDT_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIdListforMDT_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIdListforMDT_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.h b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.h new file mode 100644 index 0000000..f9c6e2b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforMDT-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIdListforMDT_NR_H_ +#define _ASN_NGAP_CellIdListforMDT_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NR_CGI; + +/* ASN_NGAP_CellIdListforMDT-NR */ +typedef struct ASN_NGAP_CellIdListforMDT_NR { + A_SEQUENCE_OF(struct ASN_NGAP_NR_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIdListforMDT_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforMDT_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforMDT_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIdListforMDT_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIdListforMDT_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIdListforMDT_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforQMC.c b/src/asn/ngap/ASN_NGAP_CellIdListforQMC.c new file mode 100644 index 0000000..778ebae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforQMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellIdListforQMC.h" + +#include "ASN_NGAP_NGRAN-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_CellIdListforQMC_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforQMC_specs_1 = { + sizeof(struct ASN_NGAP_CellIdListforQMC), + offsetof(struct ASN_NGAP_CellIdListforQMC, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforQMC = { + "CellIdListforQMC", + "CellIdListforQMC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellIdListforQMC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellIdListforQMC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellIdListforQMC_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellIdListforQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellIdListforQMC.h b/src/asn/ngap/ASN_NGAP_CellIdListforQMC.h new file mode 100644 index 0000000..16d00bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellIdListforQMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellIdListforQMC_H_ +#define _ASN_NGAP_CellIdListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CGI; + +/* ASN_NGAP_CellIdListforQMC */ +typedef struct ASN_NGAP_CellIdListforQMC { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIdListforQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIdListforQMC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellIdListforQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIdListforQMC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellIdListforQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellIdListforQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellSize.c b/src/asn/ngap/ASN_NGAP_CellSize.c new file mode 100644 index 0000000..ef59c21 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellSize.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellSize.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellSize_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_ASN_NGAP_CellSize_value2enum_1[] = { + { 0, 9, "verysmall" }, + { 1, 5, "small" }, + { 2, 6, "medium" }, + { 3, 5, "large" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_CellSize_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_ASN_NGAP_CellSize_specs_1 = { + asn_MAP_ASN_NGAP_CellSize_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_CellSize_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_ASN_NGAP_CellSize_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellSize = { + "CellSize", + "CellSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_CellSize_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellSize_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellSize_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellSize_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellSize_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellSize_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellSize_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_CellSize_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellSize.h b/src/asn/ngap/ASN_NGAP_CellSize.h new file mode 100644 index 0000000..f84d1cd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellSize.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellSize_H_ +#define _ASN_NGAP_CellSize_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_CellSize { + ASN_NGAP_CellSize_verysmall = 0, + ASN_NGAP_CellSize_small = 1, + ASN_NGAP_CellSize_medium = 2, + ASN_NGAP_CellSize_large = 3 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_CellSize; + +/* ASN_NGAP_CellSize */ +typedef long ASN_NGAP_CellSize_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellSize_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellSize; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_CellSize_specs_1; +asn_struct_free_f ASN_NGAP_CellSize_free; +asn_struct_print_f ASN_NGAP_CellSize_print; +asn_constr_check_f ASN_NGAP_CellSize_constraint; +ber_type_decoder_f ASN_NGAP_CellSize_decode_ber; +der_type_encoder_f ASN_NGAP_CellSize_encode_der; +xer_type_decoder_f ASN_NGAP_CellSize_decode_xer; +xer_type_encoder_f ASN_NGAP_CellSize_encode_xer; +per_type_decoder_f ASN_NGAP_CellSize_decode_uper; +per_type_encoder_f ASN_NGAP_CellSize_encode_uper; +per_type_decoder_f ASN_NGAP_CellSize_decode_aper; +per_type_encoder_f ASN_NGAP_CellSize_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellSize_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellTrafficTrace.c b/src/asn/ngap/ASN_NGAP_CellTrafficTrace.c new file mode 100644 index 0000000..086554c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellTrafficTrace.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellTrafficTrace.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellTrafficTrace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTrace, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellTrafficTrace_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellTrafficTrace_specs_1 = { + sizeof(struct ASN_NGAP_CellTrafficTrace), + offsetof(struct ASN_NGAP_CellTrafficTrace, _asn_ctx), + asn_MAP_ASN_NGAP_CellTrafficTrace_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_ASN_NGAP_CellTrafficTrace = { + "CellTrafficTrace", + "CellTrafficTrace", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellTrafficTrace_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellTrafficTrace_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_CellTrafficTrace_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellTrafficTrace.h b/src/asn/ngap/ASN_NGAP_CellTrafficTrace.h new file mode 100644 index 0000000..4295d4c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellTrafficTrace.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellTrafficTrace_H_ +#define _ASN_NGAP_CellTrafficTrace_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CellTrafficTrace */ +typedef struct ASN_NGAP_CellTrafficTrace { + ASN_NGAP_ProtocolIE_Container_123P85_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellTrafficTrace_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellTrafficTrace; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellTrafficTrace_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellTrafficTrace_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellTrafficTrace_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellType.c b/src/asn/ngap/ASN_NGAP_CellType.c new file mode 100644 index 0000000..4c7fe74 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellType.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellType.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellType, cellSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellSize, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellSize" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CellType, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CellType_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellSize */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellType_specs_1 = { + sizeof(struct ASN_NGAP_CellType), + offsetof(struct ASN_NGAP_CellType, _asn_ctx), + asn_MAP_ASN_NGAP_CellType_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CellType_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellType = { + "CellType", + "CellType", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellType_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellType_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CellType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellType.h b/src/asn/ngap/ASN_NGAP_CellType.h new file mode 100644 index 0000000..100a009 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellType.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellType_H_ +#define _ASN_NGAP_CellType_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CellSize.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CellType */ +typedef struct ASN_NGAP_CellType { + ASN_NGAP_CellSize_t cellSize; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellType; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellType_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CellsToActivateList.c b/src/asn/ngap/ASN_NGAP_CellsToActivateList.c new file mode 100644 index 0000000..add43ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellsToActivateList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CellsToActivateList.h" + +#include "ASN_NGAP_NGRAN-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CellsToActivateList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellsToActivateList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellsToActivateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellsToActivateList_specs_1 = { + sizeof(struct ASN_NGAP_CellsToActivateList), + offsetof(struct ASN_NGAP_CellsToActivateList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellsToActivateList = { + "CellsToActivateList", + "CellsToActivateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CellsToActivateList_tags_1, + sizeof(asn_DEF_ASN_NGAP_CellsToActivateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellsToActivateList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellsToActivateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellsToActivateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CellsToActivateList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CellsToActivateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CellsToActivateList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CellsToActivateList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CellsToActivateList.h b/src/asn/ngap/ASN_NGAP_CellsToActivateList.h new file mode 100644 index 0000000..1cd2d9c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CellsToActivateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CellsToActivateList_H_ +#define _ASN_NGAP_CellsToActivateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CGI; + +/* ASN_NGAP_CellsToActivateList */ +typedef struct ASN_NGAP_CellsToActivateList { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellsToActivateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellsToActivateList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CellsToActivateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellsToActivateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CellsToActivateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CellsToActivateList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.c b/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.c new file mode 100644 index 0000000..1da1932 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CommonNetworkInstance.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CommonNetworkInstance = { + "CommonNetworkInstance", + "CommonNetworkInstance", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1, + sizeof(asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CommonNetworkInstance_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.h b/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.h new file mode 100644 index 0000000..57a804b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CommonNetworkInstance.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CommonNetworkInstance_H_ +#define _ASN_NGAP_CommonNetworkInstance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CommonNetworkInstance */ +typedef OCTET_STRING_t ASN_NGAP_CommonNetworkInstance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CommonNetworkInstance; +asn_struct_free_f ASN_NGAP_CommonNetworkInstance_free; +asn_struct_print_f ASN_NGAP_CommonNetworkInstance_print; +asn_constr_check_f ASN_NGAP_CommonNetworkInstance_constraint; +ber_type_decoder_f ASN_NGAP_CommonNetworkInstance_decode_ber; +der_type_encoder_f ASN_NGAP_CommonNetworkInstance_encode_der; +xer_type_decoder_f ASN_NGAP_CommonNetworkInstance_decode_xer; +xer_type_encoder_f ASN_NGAP_CommonNetworkInstance_encode_xer; +per_type_decoder_f ASN_NGAP_CommonNetworkInstance_decode_uper; +per_type_encoder_f ASN_NGAP_CommonNetworkInstance_encode_uper; +per_type_decoder_f ASN_NGAP_CommonNetworkInstance_decode_aper; +per_type_encoder_f ASN_NGAP_CommonNetworkInstance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CommonNetworkInstance_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c new file mode 100644 index 0000000..b8a9615 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item = { + "CompletedCellsInEAI-EUTRA-Item", + "CompletedCellsInEAI-EUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h new file mode 100644 index 0000000..3a3e92c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_H_ +#define _ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CompletedCellsInEAI-EUTRA-Item */ +typedef struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c new file mode 100644 index 0000000..5db8e68 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInEAI-EUTRA.h" + +#include "ASN_NGAP_CompletedCellsInEAI-EUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInEAI_EUTRA_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_ASN_NGAP_CompletedCellsInEAI_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA = { + "CompletedCellsInEAI-EUTRA", + "CompletedCellsInEAI-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CompletedCellsInEAI_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h new file mode 100644 index 0000000..e719428 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInEAI_EUTRA_H_ +#define _ASN_NGAP_CompletedCellsInEAI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item; + +/* ASN_NGAP_CompletedCellsInEAI-EUTRA */ +typedef struct ASN_NGAP_CompletedCellsInEAI_EUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInEAI_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInEAI_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.c new file mode 100644 index 0000000..74c4e47 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInEAI-NR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item = { + "CompletedCellsInEAI-NR-Item", + "CompletedCellsInEAI-NR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.h new file mode 100644 index 0000000..11afdef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInEAI_NR_Item_H_ +#define _ASN_NGAP_CompletedCellsInEAI_NR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CompletedCellsInEAI-NR-Item */ +typedef struct ASN_NGAP_CompletedCellsInEAI_NR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_NR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInEAI_NR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.c new file mode 100644 index 0000000..3c6c762 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInEAI-NR.h" + +#include "ASN_NGAP_CompletedCellsInEAI-NR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInEAI_NR_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_ASN_NGAP_CompletedCellsInEAI_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_NR), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR = { + "CompletedCellsInEAI-NR", + "CompletedCellsInEAI-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CompletedCellsInEAI_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.h new file mode 100644 index 0000000..2b77fb2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInEAI-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInEAI_NR_H_ +#define _ASN_NGAP_CompletedCellsInEAI_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CompletedCellsInEAI_NR_Item; + +/* ASN_NGAP_CompletedCellsInEAI-NR */ +typedef struct ASN_NGAP_CompletedCellsInEAI_NR { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInEAI_NR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInEAI_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInEAI_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c new file mode 100644 index 0000000..60a953b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item = { + "CompletedCellsInTAI-EUTRA-Item", + "CompletedCellsInTAI-EUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h new file mode 100644 index 0000000..06c49c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_H_ +#define _ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CompletedCellsInTAI-EUTRA-Item */ +typedef struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c new file mode 100644 index 0000000..89ccf45 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInTAI-EUTRA.h" + +#include "ASN_NGAP_CompletedCellsInTAI-EUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInTAI_EUTRA_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_ASN_NGAP_CompletedCellsInTAI_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA = { + "CompletedCellsInTAI-EUTRA", + "CompletedCellsInTAI-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CompletedCellsInTAI_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h new file mode 100644 index 0000000..f672ab2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInTAI_EUTRA_H_ +#define _ASN_NGAP_CompletedCellsInTAI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item; + +/* ASN_NGAP_CompletedCellsInTAI-EUTRA */ +typedef struct ASN_NGAP_CompletedCellsInTAI_EUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInTAI_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInTAI_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.c new file mode 100644 index 0000000..f313f38 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInTAI-NR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item = { + "CompletedCellsInTAI-NR-Item", + "CompletedCellsInTAI-NR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.h new file mode 100644 index 0000000..abaf2ab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInTAI_NR_Item_H_ +#define _ASN_NGAP_CompletedCellsInTAI_NR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CompletedCellsInTAI-NR-Item */ +typedef struct ASN_NGAP_CompletedCellsInTAI_NR_Item { + ASN_NGAP_NR_CGI_t nR_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_NR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInTAI_NR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.c b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.c new file mode 100644 index 0000000..9eea6e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompletedCellsInTAI-NR.h" + +#include "ASN_NGAP_CompletedCellsInTAI-NR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInTAI_NR_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_ASN_NGAP_CompletedCellsInTAI_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_specs_1 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_NR), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR = { + "CompletedCellsInTAI-NR", + "CompletedCellsInTAI-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CompletedCellsInTAI_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.h b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.h new file mode 100644 index 0000000..b934fa0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompletedCellsInTAI-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompletedCellsInTAI_NR_H_ +#define _ASN_NGAP_CompletedCellsInTAI_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CompletedCellsInTAI_NR_Item; + +/* ASN_NGAP_CompletedCellsInTAI-NR */ +typedef struct ASN_NGAP_CompletedCellsInTAI_NR { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInTAI_NR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CompletedCellsInTAI_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompletedCellsInTAI_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.c b/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.c new file mode 100644 index 0000000..b7e16a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CompositeAvailableCapacity.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_cellCapacityClassValue_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_capacityValue_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 <= 100)) { + /* Constraint 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_ASN_NGAP_cellCapacityClassValue_constr_2 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 asn_per_constraints_t asn_PER_memb_ASN_NGAP_capacityValue_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompositeAvailableCapacity_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompositeAvailableCapacity, cellCapacityClassValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_cellCapacityClassValue_constr_2, memb_ASN_NGAP_cellCapacityClassValue_constraint_1 }, + 0, 0, /* No default value */ + "cellCapacityClassValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompositeAvailableCapacity, capacityValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_capacityValue_constr_3, memb_ASN_NGAP_capacityValue_constraint_1 }, + 0, 0, /* No default value */ + "capacityValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CompositeAvailableCapacity, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CompositeAvailableCapacity_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_CompositeAvailableCapacity_specs_1 = { + sizeof(struct ASN_NGAP_CompositeAvailableCapacity), + offsetof(struct ASN_NGAP_CompositeAvailableCapacity, _asn_ctx), + asn_MAP_ASN_NGAP_CompositeAvailableCapacity_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CompositeAvailableCapacity_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity = { + "CompositeAvailableCapacity", + "CompositeAvailableCapacity", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1, + sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompositeAvailableCapacity_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompositeAvailableCapacity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.h b/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.h new file mode 100644 index 0000000..2e6da11 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CompositeAvailableCapacity.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CompositeAvailableCapacity_H_ +#define _ASN_NGAP_CompositeAvailableCapacity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CompositeAvailableCapacity */ +typedef struct ASN_NGAP_CompositeAvailableCapacity { + long *cellCapacityClassValue; /* OPTIONAL */ + long capacityValue; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompositeAvailableCapacity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompositeAvailableCapacity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompositeAvailableCapacity_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CompositeAvailableCapacity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.c b/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.c new file mode 100644 index 0000000..70bad1d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConcurrentWarningMessageInd.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ConcurrentWarningMessageInd_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_ASN_NGAP_ConcurrentWarningMessageInd_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ConcurrentWarningMessageInd_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConcurrentWarningMessageInd_specs_1 = { + asn_MAP_ASN_NGAP_ConcurrentWarningMessageInd_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ConcurrentWarningMessageInd_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_ASN_NGAP_ConcurrentWarningMessageInd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd = { + "ConcurrentWarningMessageInd", + "ConcurrentWarningMessageInd", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ConcurrentWarningMessageInd_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ConcurrentWarningMessageInd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.h b/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.h new file mode 100644 index 0000000..ab0bf23 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConcurrentWarningMessageInd.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConcurrentWarningMessageInd_H_ +#define _ASN_NGAP_ConcurrentWarningMessageInd_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ConcurrentWarningMessageInd { + ASN_NGAP_ConcurrentWarningMessageInd_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ConcurrentWarningMessageInd; + +/* ASN_NGAP_ConcurrentWarningMessageInd */ +typedef long ASN_NGAP_ConcurrentWarningMessageInd_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ConcurrentWarningMessageInd_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConcurrentWarningMessageInd_specs_1; +asn_struct_free_f ASN_NGAP_ConcurrentWarningMessageInd_free; +asn_struct_print_f ASN_NGAP_ConcurrentWarningMessageInd_print; +asn_constr_check_f ASN_NGAP_ConcurrentWarningMessageInd_constraint; +ber_type_decoder_f ASN_NGAP_ConcurrentWarningMessageInd_decode_ber; +der_type_encoder_f ASN_NGAP_ConcurrentWarningMessageInd_encode_der; +xer_type_decoder_f ASN_NGAP_ConcurrentWarningMessageInd_decode_xer; +xer_type_encoder_f ASN_NGAP_ConcurrentWarningMessageInd_encode_xer; +per_type_decoder_f ASN_NGAP_ConcurrentWarningMessageInd_decode_uper; +per_type_encoder_f ASN_NGAP_ConcurrentWarningMessageInd_encode_uper; +per_type_decoder_f ASN_NGAP_ConcurrentWarningMessageInd_decode_aper; +per_type_encoder_f ASN_NGAP_ConcurrentWarningMessageInd_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConcurrentWarningMessageInd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.c b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.c new file mode 100644 index 0000000..1380717 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConfidentialityProtectionIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfidentialityProtectionIndication_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_ASN_NGAP_ConfidentialityProtectionIndication_value2enum_1[] = { + { 0, 8, "required" }, + { 1, 9, "preferred" }, + { 2, 10, "not-needed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ConfidentialityProtectionIndication_enum2value_1[] = { + 2, /* not-needed(2) */ + 1, /* preferred(1) */ + 0 /* required(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfidentialityProtectionIndication_specs_1 = { + asn_MAP_ASN_NGAP_ConfidentialityProtectionIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ConfidentialityProtectionIndication_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_ASN_NGAP_ConfidentialityProtectionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication = { + "ConfidentialityProtectionIndication", + "ConfidentialityProtectionIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ConfidentialityProtectionIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ConfidentialityProtectionIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.h b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.h new file mode 100644 index 0000000..71a7663 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionIndication.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConfidentialityProtectionIndication_H_ +#define _ASN_NGAP_ConfidentialityProtectionIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ConfidentialityProtectionIndication { + ASN_NGAP_ConfidentialityProtectionIndication_required = 0, + ASN_NGAP_ConfidentialityProtectionIndication_preferred = 1, + ASN_NGAP_ConfidentialityProtectionIndication_not_needed = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ConfidentialityProtectionIndication; + +/* ASN_NGAP_ConfidentialityProtectionIndication */ +typedef long ASN_NGAP_ConfidentialityProtectionIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfidentialityProtectionIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfidentialityProtectionIndication_specs_1; +asn_struct_free_f ASN_NGAP_ConfidentialityProtectionIndication_free; +asn_struct_print_f ASN_NGAP_ConfidentialityProtectionIndication_print; +asn_constr_check_f ASN_NGAP_ConfidentialityProtectionIndication_constraint; +ber_type_decoder_f ASN_NGAP_ConfidentialityProtectionIndication_decode_ber; +der_type_encoder_f ASN_NGAP_ConfidentialityProtectionIndication_encode_der; +xer_type_decoder_f ASN_NGAP_ConfidentialityProtectionIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_ConfidentialityProtectionIndication_encode_xer; +per_type_decoder_f ASN_NGAP_ConfidentialityProtectionIndication_decode_uper; +per_type_encoder_f ASN_NGAP_ConfidentialityProtectionIndication_encode_uper; +per_type_decoder_f ASN_NGAP_ConfidentialityProtectionIndication_decode_aper; +per_type_encoder_f ASN_NGAP_ConfidentialityProtectionIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConfidentialityProtectionIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.c b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.c new file mode 100644 index 0000000..6c41ace --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConfidentialityProtectionResult.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfidentialityProtectionResult_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_ASN_NGAP_ConfidentialityProtectionResult_value2enum_1[] = { + { 0, 9, "performed" }, + { 1, 13, "not-performed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ConfidentialityProtectionResult_enum2value_1[] = { + 1, /* not-performed(1) */ + 0 /* performed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfidentialityProtectionResult_specs_1 = { + asn_MAP_ASN_NGAP_ConfidentialityProtectionResult_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ConfidentialityProtectionResult_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_ASN_NGAP_ConfidentialityProtectionResult_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfidentialityProtectionResult = { + "ConfidentialityProtectionResult", + "ConfidentialityProtectionResult", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfidentialityProtectionResult_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ConfidentialityProtectionResult_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ConfidentialityProtectionResult_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.h b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.h new file mode 100644 index 0000000..e911348 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfidentialityProtectionResult.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConfidentialityProtectionResult_H_ +#define _ASN_NGAP_ConfidentialityProtectionResult_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ConfidentialityProtectionResult { + ASN_NGAP_ConfidentialityProtectionResult_performed = 0, + ASN_NGAP_ConfidentialityProtectionResult_not_performed = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ConfidentialityProtectionResult; + +/* ASN_NGAP_ConfidentialityProtectionResult */ +typedef long ASN_NGAP_ConfidentialityProtectionResult_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfidentialityProtectionResult_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfidentialityProtectionResult; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfidentialityProtectionResult_specs_1; +asn_struct_free_f ASN_NGAP_ConfidentialityProtectionResult_free; +asn_struct_print_f ASN_NGAP_ConfidentialityProtectionResult_print; +asn_constr_check_f ASN_NGAP_ConfidentialityProtectionResult_constraint; +ber_type_decoder_f ASN_NGAP_ConfidentialityProtectionResult_decode_ber; +der_type_encoder_f ASN_NGAP_ConfidentialityProtectionResult_encode_der; +xer_type_decoder_f ASN_NGAP_ConfidentialityProtectionResult_decode_xer; +xer_type_encoder_f ASN_NGAP_ConfidentialityProtectionResult_encode_xer; +per_type_decoder_f ASN_NGAP_ConfidentialityProtectionResult_decode_uper; +per_type_encoder_f ASN_NGAP_ConfidentialityProtectionResult_encode_uper; +per_type_decoder_f ASN_NGAP_ConfidentialityProtectionResult_decode_aper; +per_type_encoder_f ASN_NGAP_ConfidentialityProtectionResult_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConfidentialityProtectionResult_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.c b/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.c new file mode 100644 index 0000000..9cf0254 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConfiguredNSSAI.h" + +int +ASN_NGAP_ConfiguredNSSAI_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 == 128)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_ConfiguredNSSAI_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfiguredNSSAI = { + "ConfiguredNSSAI", + "ConfiguredNSSAI", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfiguredNSSAI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ConfiguredNSSAI_constr_1, ASN_NGAP_ConfiguredNSSAI_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.h b/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.h new file mode 100644 index 0000000..78bf97a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfiguredNSSAI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConfiguredNSSAI_H_ +#define _ASN_NGAP_ConfiguredNSSAI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ConfiguredNSSAI */ +typedef OCTET_STRING_t ASN_NGAP_ConfiguredNSSAI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfiguredNSSAI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfiguredNSSAI; +asn_struct_free_f ASN_NGAP_ConfiguredNSSAI_free; +asn_struct_print_f ASN_NGAP_ConfiguredNSSAI_print; +asn_constr_check_f ASN_NGAP_ConfiguredNSSAI_constraint; +ber_type_decoder_f ASN_NGAP_ConfiguredNSSAI_decode_ber; +der_type_encoder_f ASN_NGAP_ConfiguredNSSAI_encode_der; +xer_type_decoder_f ASN_NGAP_ConfiguredNSSAI_decode_xer; +xer_type_encoder_f ASN_NGAP_ConfiguredNSSAI_encode_xer; +per_type_decoder_f ASN_NGAP_ConfiguredNSSAI_decode_uper; +per_type_encoder_f ASN_NGAP_ConfiguredNSSAI_encode_uper; +per_type_decoder_f ASN_NGAP_ConfiguredNSSAI_decode_aper; +per_type_encoder_f ASN_NGAP_ConfiguredNSSAI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConfiguredNSSAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.c b/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.c new file mode 100644 index 0000000..214e0db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConfiguredTACIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfiguredTACIndication_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_ASN_NGAP_ConfiguredTACIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ConfiguredTACIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfiguredTACIndication_specs_1 = { + asn_MAP_ASN_NGAP_ConfiguredTACIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ConfiguredTACIndication_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_ASN_NGAP_ConfiguredTACIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfiguredTACIndication = { + "ConfiguredTACIndication", + "ConfiguredTACIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConfiguredTACIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ConfiguredTACIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ConfiguredTACIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.h b/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.h new file mode 100644 index 0000000..d5b6fe7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConfiguredTACIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConfiguredTACIndication_H_ +#define _ASN_NGAP_ConfiguredTACIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ConfiguredTACIndication { + ASN_NGAP_ConfiguredTACIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ConfiguredTACIndication; + +/* ASN_NGAP_ConfiguredTACIndication */ +typedef long ASN_NGAP_ConfiguredTACIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ConfiguredTACIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConfiguredTACIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ConfiguredTACIndication_specs_1; +asn_struct_free_f ASN_NGAP_ConfiguredTACIndication_free; +asn_struct_print_f ASN_NGAP_ConfiguredTACIndication_print; +asn_constr_check_f ASN_NGAP_ConfiguredTACIndication_constraint; +ber_type_decoder_f ASN_NGAP_ConfiguredTACIndication_decode_ber; +der_type_encoder_f ASN_NGAP_ConfiguredTACIndication_encode_der; +xer_type_decoder_f ASN_NGAP_ConfiguredTACIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_ConfiguredTACIndication_encode_xer; +per_type_decoder_f ASN_NGAP_ConfiguredTACIndication_decode_uper; +per_type_encoder_f ASN_NGAP_ConfiguredTACIndication_encode_uper; +per_type_decoder_f ASN_NGAP_ConfiguredTACIndication_decode_aper; +per_type_encoder_f ASN_NGAP_ConfiguredTACIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConfiguredTACIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.c b/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.c new file mode 100644 index 0000000..70fcabb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ConnectionEstablishmentIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ConnectionEstablishmentIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ConnectionEstablishmentIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ConnectionEstablishmentIndication_specs_1 = { + sizeof(struct ASN_NGAP_ConnectionEstablishmentIndication), + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndication, _asn_ctx), + asn_MAP_ASN_NGAP_ConnectionEstablishmentIndication_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_ASN_NGAP_ConnectionEstablishmentIndication = { + "ConnectionEstablishmentIndication", + "ConnectionEstablishmentIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ConnectionEstablishmentIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_ConnectionEstablishmentIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.h b/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.h new file mode 100644 index 0000000..f415a4a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ConnectionEstablishmentIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ConnectionEstablishmentIndication_H_ +#define _ASN_NGAP_ConnectionEstablishmentIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ConnectionEstablishmentIndication */ +typedef struct ASN_NGAP_ConnectionEstablishmentIndication { + ASN_NGAP_ProtocolIE_Container_123P96_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ConnectionEstablishmentIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ConnectionEstablishmentIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ConnectionEstablishmentIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ConnectionEstablishmentIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.c b/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.c new file mode 100644 index 0000000..6d29394 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h" + +#include "ASN_NGAP_ExpectedUEBehaviour.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, uEIdentityIndexValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEIdentityIndexValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEIdentityIndexValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, uESpecificDRX), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uESpecificDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, periodicRegistrationUpdateTimer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicRegistrationUpdateTimer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, mICOModeIndication), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MICOModeIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mICOModeIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, tAIListForInactive), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIListForInactive, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIListForInactive" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, expectedUEBehaviour), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedUEBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedUEBehaviour" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_oms_1[] = { 1, 3, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEIdentityIndexValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESpecificDRX */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* periodicRegistrationUpdateTimer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mICOModeIndication */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* tAIListForInactive */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* expectedUEBehaviour */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_specs_1 = { + sizeof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive), + offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive, _asn_ctx), + asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive = { + "CoreNetworkAssistanceInformationForInactive", + "CoreNetworkAssistanceInformationForInactive", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1, + sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h b/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h new file mode 100644 index 0000000..5578c69 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CoreNetworkAssistanceInformationForInactive_H_ +#define _ASN_NGAP_CoreNetworkAssistanceInformationForInactive_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UEIdentityIndexValue.h" +#include "ASN_NGAP_PagingDRX.h" +#include "ASN_NGAP_PeriodicRegistrationUpdateTimer.h" +#include "ASN_NGAP_MICOModeIndication.h" +#include "ASN_NGAP_TAIListForInactive.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ExpectedUEBehaviour; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CoreNetworkAssistanceInformationForInactive */ +typedef struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive { + ASN_NGAP_UEIdentityIndexValue_t uEIdentityIndexValue; + ASN_NGAP_PagingDRX_t *uESpecificDRX; /* OPTIONAL */ + ASN_NGAP_PeriodicRegistrationUpdateTimer_t periodicRegistrationUpdateTimer; + ASN_NGAP_MICOModeIndication_t *mICOModeIndication; /* OPTIONAL */ + ASN_NGAP_TAIListForInactive_t tAIListForInactive; + struct ASN_NGAP_ExpectedUEBehaviour *expectedUEBehaviour; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CoreNetworkAssistanceInformationForInactive_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CoreNetworkAssistanceInformationForInactive_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.c b/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.c new file mode 100644 index 0000000..20ec2ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CoverageEnhancementLevel.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoverageEnhancementLevel = { + "CoverageEnhancementLevel", + "CoverageEnhancementLevel", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1, + sizeof(asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CoverageEnhancementLevel_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.h b/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.h new file mode 100644 index 0000000..1b6e2e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CoverageEnhancementLevel.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CoverageEnhancementLevel_H_ +#define _ASN_NGAP_CoverageEnhancementLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_CoverageEnhancementLevel */ +typedef OCTET_STRING_t ASN_NGAP_CoverageEnhancementLevel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoverageEnhancementLevel; +asn_struct_free_f ASN_NGAP_CoverageEnhancementLevel_free; +asn_struct_print_f ASN_NGAP_CoverageEnhancementLevel_print; +asn_constr_check_f ASN_NGAP_CoverageEnhancementLevel_constraint; +ber_type_decoder_f ASN_NGAP_CoverageEnhancementLevel_decode_ber; +der_type_encoder_f ASN_NGAP_CoverageEnhancementLevel_encode_der; +xer_type_decoder_f ASN_NGAP_CoverageEnhancementLevel_decode_xer; +xer_type_encoder_f ASN_NGAP_CoverageEnhancementLevel_encode_xer; +per_type_decoder_f ASN_NGAP_CoverageEnhancementLevel_decode_uper; +per_type_encoder_f ASN_NGAP_CoverageEnhancementLevel_encode_uper; +per_type_decoder_f ASN_NGAP_CoverageEnhancementLevel_decode_aper; +per_type_encoder_f ASN_NGAP_CoverageEnhancementLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CoverageEnhancementLevel_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Criticality.c b/src/asn/ngap/ASN_NGAP_Criticality.c new file mode 100644 index 0000000..561b9a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Criticality.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Criticality.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_Criticality_value2enum_1[] = { + { 0, 6, "reject" }, + { 1, 6, "ignore" }, + { 2, 6, "notify" } +}; +static const unsigned int asn_MAP_ASN_NGAP_Criticality_enum2value_1[] = { + 1, /* ignore(1) */ + 2, /* notify(2) */ + 0 /* reject(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Criticality_specs_1 = { + asn_MAP_ASN_NGAP_Criticality_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_Criticality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Criticality = { + "Criticality", + "Criticality", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Criticality_tags_1, + sizeof(asn_DEF_ASN_NGAP_Criticality_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Criticality_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Criticality_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Criticality_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Criticality_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Criticality_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Criticality_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Criticality.h b/src/asn/ngap/ASN_NGAP_Criticality.h new file mode 100644 index 0000000..ba1e7b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Criticality.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Criticality_H_ +#define _ASN_NGAP_Criticality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Criticality { + ASN_NGAP_Criticality_reject = 0, + ASN_NGAP_Criticality_ignore = 1, + ASN_NGAP_Criticality_notify = 2 +} e_ASN_NGAP_Criticality; + +/* ASN_NGAP_Criticality */ +typedef long ASN_NGAP_Criticality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Criticality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Criticality; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Criticality_specs_1; +asn_struct_free_f ASN_NGAP_Criticality_free; +asn_struct_print_f ASN_NGAP_Criticality_print; +asn_constr_check_f ASN_NGAP_Criticality_constraint; +ber_type_decoder_f ASN_NGAP_Criticality_decode_ber; +der_type_encoder_f ASN_NGAP_Criticality_encode_der; +xer_type_decoder_f ASN_NGAP_Criticality_decode_xer; +xer_type_encoder_f ASN_NGAP_Criticality_encode_xer; +per_type_decoder_f ASN_NGAP_Criticality_decode_uper; +per_type_encoder_f ASN_NGAP_Criticality_encode_uper; +per_type_decoder_f ASN_NGAP_Criticality_decode_aper; +per_type_encoder_f ASN_NGAP_Criticality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Criticality_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.c b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.c new file mode 100644 index 0000000..cc7a0f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CriticalityDiagnostics-IE-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item, iECriticality), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iECriticality" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item, iE_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item, typeOfError), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TypeOfError, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeOfError" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_tag2el_1[] = { + { (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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_specs_1 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item, _asn_ctx), + asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item = { + "CriticalityDiagnostics-IE-Item", + "CriticalityDiagnostics-IE-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.h b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.h new file mode 100644 index 0000000..1193f05 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CriticalityDiagnostics_IE_Item_H_ +#define _ASN_NGAP_CriticalityDiagnostics_IE_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Criticality.h" +#include "ASN_NGAP_ProtocolIE-ID.h" +#include "ASN_NGAP_TypeOfError.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CriticalityDiagnostics-IE-Item */ +typedef struct ASN_NGAP_CriticalityDiagnostics_IE_Item { + ASN_NGAP_Criticality_t iECriticality; + ASN_NGAP_ProtocolIE_ID_t iE_ID; + ASN_NGAP_TypeOfError_t typeOfError; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CriticalityDiagnostics_IE_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CriticalityDiagnostics_IE_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.c b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.c new file mode 100644 index 0000000..a48cba4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CriticalityDiagnostics-IE-List.h" + +#include "ASN_NGAP_CriticalityDiagnostics-IE-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_List_specs_1 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_IE_List), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List = { + "CriticalityDiagnostics-IE-List", + "CriticalityDiagnostics-IE-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1, + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_CriticalityDiagnostics_IE_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_List_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.h b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.h new file mode 100644 index 0000000..29f29b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics-IE-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CriticalityDiagnostics_IE_List_H_ +#define _ASN_NGAP_CriticalityDiagnostics_IE_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics_IE_Item; + +/* ASN_NGAP_CriticalityDiagnostics-IE-List */ +typedef struct ASN_NGAP_CriticalityDiagnostics_IE_List { + A_SEQUENCE_OF(struct ASN_NGAP_CriticalityDiagnostics_IE_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CriticalityDiagnostics_IE_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_CriticalityDiagnostics_IE_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CriticalityDiagnostics_IE_List_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.c b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.c new file mode 100644 index 0000000..1242a82 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_CriticalityDiagnostics.h" + +#include "ASN_NGAP_CriticalityDiagnostics-IE-List.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_CriticalityDiagnostics, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProcedureCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_CriticalityDiagnostics, triggeringMessage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TriggeringMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "triggeringMessage" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_CriticalityDiagnostics, procedureCriticality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "procedureCriticality" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_CriticalityDiagnostics, iEsCriticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iEsCriticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_CriticalityDiagnostics, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_CriticalityDiagnostics_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_specs_1 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics), + offsetof(struct ASN_NGAP_CriticalityDiagnostics, _asn_ctx), + asn_MAP_ASN_NGAP_CriticalityDiagnostics_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_CriticalityDiagnostics_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics = { + "CriticalityDiagnostics", + "CriticalityDiagnostics", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1, + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CriticalityDiagnostics_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_CriticalityDiagnostics_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.h b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.h new file mode 100644 index 0000000..0dd96c5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_CriticalityDiagnostics.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_CriticalityDiagnostics_H_ +#define _ASN_NGAP_CriticalityDiagnostics_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProcedureCode.h" +#include "ASN_NGAP_TriggeringMessage.h" +#include "ASN_NGAP_Criticality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics_IE_List; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_CriticalityDiagnostics */ +typedef struct ASN_NGAP_CriticalityDiagnostics { + ASN_NGAP_ProcedureCode_t *procedureCode; /* OPTIONAL */ + ASN_NGAP_TriggeringMessage_t *triggeringMessage; /* OPTIONAL */ + ASN_NGAP_Criticality_t *procedureCriticality; /* OPTIONAL */ + struct ASN_NGAP_CriticalityDiagnostics_IE_List *iEsCriticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CriticalityDiagnostics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_CriticalityDiagnostics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.c b/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.c new file mode 100644 index 0000000..2471330 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DAPSRequestInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_dAPSIndicator_constr_2 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_ASN_NGAP_dAPSIndicator_value2enum_2[] = { + { 0, 16, "daps-ho-required" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_dAPSIndicator_enum2value_2[] = { + 0 /* daps-ho-required(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_dAPSIndicator_specs_2 = { + asn_MAP_ASN_NGAP_dAPSIndicator_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_dAPSIndicator_enum2value_2, /* 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_ASN_NGAP_dAPSIndicator_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_ASN_NGAP_dAPSIndicator_2 = { + "dAPSIndicator", + "dAPSIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_dAPSIndicator_tags_2, + sizeof(asn_DEF_ASN_NGAP_dAPSIndicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_dAPSIndicator_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_dAPSIndicator_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_dAPSIndicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_dAPSIndicator_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_dAPSIndicator_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_dAPSIndicator_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSRequestInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSRequestInfo, dAPSIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_dAPSIndicator_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dAPSIndicator" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DAPSRequestInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DAPSRequestInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSRequestInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dAPSIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSRequestInfo_specs_1 = { + sizeof(struct ASN_NGAP_DAPSRequestInfo), + offsetof(struct ASN_NGAP_DAPSRequestInfo, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSRequestInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DAPSRequestInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSRequestInfo = { + "DAPSRequestInfo", + "DAPSRequestInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSRequestInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSRequestInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.h b/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.h new file mode 100644 index 0000000..9184098 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSRequestInfo.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DAPSRequestInfo_H_ +#define _ASN_NGAP_DAPSRequestInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DAPSRequestInfo__dAPSIndicator { + ASN_NGAP_DAPSRequestInfo__dAPSIndicator_daps_ho_required = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DAPSRequestInfo__dAPSIndicator; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DAPSRequestInfo */ +typedef struct ASN_NGAP_DAPSRequestInfo { + long dAPSIndicator; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSRequestInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_dAPSIndicator_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSRequestInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSRequestInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSRequestInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DAPSRequestInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.c b/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.c new file mode 100644 index 0000000..b43133d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DAPSResponseInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_dapsresponseindicator_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_dapsresponseindicator_value2enum_2[] = { + { 0, 16, "daps-ho-accepted" }, + { 1, 20, "daps-ho-not-accepted" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_dapsresponseindicator_enum2value_2[] = { + 0, /* daps-ho-accepted(0) */ + 1 /* daps-ho-not-accepted(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_dapsresponseindicator_specs_2 = { + asn_MAP_ASN_NGAP_dapsresponseindicator_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_dapsresponseindicator_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_ASN_NGAP_dapsresponseindicator_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_ASN_NGAP_dapsresponseindicator_2 = { + "dapsresponseindicator", + "dapsresponseindicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2, + sizeof(asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_dapsresponseindicator_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_dapsresponseindicator_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_dapsresponseindicator_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfo, dapsresponseindicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_dapsresponseindicator_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dapsresponseindicator" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DAPSResponseInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DAPSResponseInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSResponseInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dapsresponseindicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfo_specs_1 = { + sizeof(struct ASN_NGAP_DAPSResponseInfo), + offsetof(struct ASN_NGAP_DAPSResponseInfo, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSResponseInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DAPSResponseInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfo = { + "DAPSResponseInfo", + "DAPSResponseInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSResponseInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSResponseInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.h b/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.h new file mode 100644 index 0000000..823d1a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfo.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DAPSResponseInfo_H_ +#define _ASN_NGAP_DAPSResponseInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DAPSResponseInfo__dapsresponseindicator { + ASN_NGAP_DAPSResponseInfo__dapsresponseindicator_daps_ho_accepted = 0, + ASN_NGAP_DAPSResponseInfo__dapsresponseindicator_daps_ho_not_accepted = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DAPSResponseInfo__dapsresponseindicator; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DAPSResponseInfo */ +typedef struct ASN_NGAP_DAPSResponseInfo { + long dapsresponseindicator; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSResponseInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_dapsresponseindicator_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DAPSResponseInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.c b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.c new file mode 100644 index 0000000..c13cee9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DAPSResponseInfoItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfoItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfoItem, dRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfoItem, dAPSResponseInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DAPSResponseInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dAPSResponseInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DAPSResponseInfoItem, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DAPSResponseInfoItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSResponseInfoItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dAPSResponseInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoItem_specs_1 = { + sizeof(struct ASN_NGAP_DAPSResponseInfoItem), + offsetof(struct ASN_NGAP_DAPSResponseInfoItem, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSResponseInfoItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DAPSResponseInfoItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem = { + "DAPSResponseInfoItem", + "DAPSResponseInfoItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSResponseInfoItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSResponseInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.h b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.h new file mode 100644 index 0000000..f732ef4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DAPSResponseInfoItem_H_ +#define _ASN_NGAP_DAPSResponseInfoItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRB-ID.h" +#include "ASN_NGAP_DAPSResponseInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DAPSResponseInfoItem */ +typedef struct ASN_NGAP_DAPSResponseInfoItem { + ASN_NGAP_DRB_ID_t dRB_ID; + ASN_NGAP_DAPSResponseInfo_t dAPSResponseInfo; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSResponseInfoItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfoItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DAPSResponseInfoItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.c b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.c new file mode 100644 index 0000000..56d960a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DAPSResponseInfoList.h" + +#include "ASN_NGAP_DAPSResponseInfoItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DAPSResponseInfoList_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_ASN_NGAP_DAPSResponseInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSResponseInfoItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoList_specs_1 = { + sizeof(struct ASN_NGAP_DAPSResponseInfoList), + offsetof(struct ASN_NGAP_DAPSResponseInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoList = { + "DAPSResponseInfoList", + "DAPSResponseInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1, + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DAPSResponseInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DAPSResponseInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DAPSResponseInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.h b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.h new file mode 100644 index 0000000..ad07c83 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DAPSResponseInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DAPSResponseInfoList_H_ +#define _ASN_NGAP_DAPSResponseInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DAPSResponseInfoItem; + +/* ASN_NGAP_DAPSResponseInfoList */ +typedef struct ASN_NGAP_DAPSResponseInfoList { + A_SEQUENCE_OF(struct ASN_NGAP_DAPSResponseInfoItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSResponseInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DAPSResponseInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DAPSResponseInfoList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.c b/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.c new file mode 100644 index 0000000..da22681 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DL-CP-SecurityInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DL_CP_SecurityInformation, dl_NAS_MAC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DL_NAS_MAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-NAS-MAC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DL_CP_SecurityInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-NAS-MAC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_specs_1 = { + sizeof(struct ASN_NGAP_DL_CP_SecurityInformation), + offsetof(struct ASN_NGAP_DL_CP_SecurityInformation, _asn_ctx), + asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation = { + "DL-CP-SecurityInformation", + "DL-CP-SecurityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.h b/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.h new file mode 100644 index 0000000..7199d91 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-CP-SecurityInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DL_CP_SecurityInformation_H_ +#define _ASN_NGAP_DL_CP_SecurityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DL-NAS-MAC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DL-CP-SecurityInformation */ +typedef struct ASN_NGAP_DL_CP_SecurityInformation { + ASN_NGAP_DL_NAS_MAC_t dl_NAS_MAC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DL_CP_SecurityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DL_CP_SecurityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.c b/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.c new file mode 100644 index 0000000..75b253a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DL-NAS-MAC.h" + +int +ASN_NGAP_DL_NAS_MAC_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_ASN_NGAP_DL_NAS_MAC_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_ASN_NGAP_DL_NAS_MAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_NAS_MAC = { + "DL-NAS-MAC", + "DL-NAS-MAC", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1, + sizeof(asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_NAS_MAC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DL_NAS_MAC_constr_1, ASN_NGAP_DL_NAS_MAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.h b/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.h new file mode 100644 index 0000000..f5a2dd7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-NAS-MAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DL_NAS_MAC_H_ +#define _ASN_NGAP_DL_NAS_MAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DL-NAS-MAC */ +typedef BIT_STRING_t ASN_NGAP_DL_NAS_MAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DL_NAS_MAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_NAS_MAC; +asn_struct_free_f ASN_NGAP_DL_NAS_MAC_free; +asn_struct_print_f ASN_NGAP_DL_NAS_MAC_print; +asn_constr_check_f ASN_NGAP_DL_NAS_MAC_constraint; +ber_type_decoder_f ASN_NGAP_DL_NAS_MAC_decode_ber; +der_type_encoder_f ASN_NGAP_DL_NAS_MAC_encode_der; +xer_type_decoder_f ASN_NGAP_DL_NAS_MAC_decode_xer; +xer_type_encoder_f ASN_NGAP_DL_NAS_MAC_encode_xer; +per_type_decoder_f ASN_NGAP_DL_NAS_MAC_decode_uper; +per_type_encoder_f ASN_NGAP_DL_NAS_MAC_encode_uper; +per_type_decoder_f ASN_NGAP_DL_NAS_MAC_decode_aper; +per_type_encoder_f ASN_NGAP_DL_NAS_MAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DL_NAS_MAC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.c b/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.c new file mode 100644 index 0000000..ea3ea3d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DL-NGU-TNLInformationReused.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DL_NGU_TNLInformationReused_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_ASN_NGAP_DL_NGU_TNLInformationReused_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DL_NGU_TNLInformationReused_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DL_NGU_TNLInformationReused_specs_1 = { + asn_MAP_ASN_NGAP_DL_NGU_TNLInformationReused_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DL_NGU_TNLInformationReused_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_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused = { + "DL-NGU-TNLInformationReused", + "DL-NGU-TNLInformationReused", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1, + sizeof(asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DL_NGU_TNLInformationReused_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DL_NGU_TNLInformationReused_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.h b/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.h new file mode 100644 index 0000000..17b352a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DL-NGU-TNLInformationReused.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DL_NGU_TNLInformationReused_H_ +#define _ASN_NGAP_DL_NGU_TNLInformationReused_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DL_NGU_TNLInformationReused { + ASN_NGAP_DL_NGU_TNLInformationReused_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DL_NGU_TNLInformationReused; + +/* ASN_NGAP_DL-NGU-TNLInformationReused */ +typedef long ASN_NGAP_DL_NGU_TNLInformationReused_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DL_NGU_TNLInformationReused_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DL_NGU_TNLInformationReused_specs_1; +asn_struct_free_f ASN_NGAP_DL_NGU_TNLInformationReused_free; +asn_struct_print_f ASN_NGAP_DL_NGU_TNLInformationReused_print; +asn_constr_check_f ASN_NGAP_DL_NGU_TNLInformationReused_constraint; +ber_type_decoder_f ASN_NGAP_DL_NGU_TNLInformationReused_decode_ber; +der_type_encoder_f ASN_NGAP_DL_NGU_TNLInformationReused_encode_der; +xer_type_decoder_f ASN_NGAP_DL_NGU_TNLInformationReused_decode_xer; +xer_type_encoder_f ASN_NGAP_DL_NGU_TNLInformationReused_encode_xer; +per_type_decoder_f ASN_NGAP_DL_NGU_TNLInformationReused_decode_uper; +per_type_encoder_f ASN_NGAP_DL_NGU_TNLInformationReused_encode_uper; +per_type_decoder_f ASN_NGAP_DL_NGU_TNLInformationReused_decode_aper; +per_type_encoder_f ASN_NGAP_DL_NGU_TNLInformationReused_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DL_NGU_TNLInformationReused_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DLForwarding.c b/src/asn/ngap/ASN_NGAP_DLForwarding.c new file mode 100644 index 0000000..c7a8467 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DLForwarding.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DLForwarding.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DLForwarding_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_ASN_NGAP_DLForwarding_value2enum_1[] = { + { 0, 22, "dl-forwarding-proposed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DLForwarding_enum2value_1[] = { + 0 /* dl-forwarding-proposed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DLForwarding_specs_1 = { + asn_MAP_ASN_NGAP_DLForwarding_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DLForwarding_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_ASN_NGAP_DLForwarding_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DLForwarding = { + "DLForwarding", + "DLForwarding", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DLForwarding_tags_1, + sizeof(asn_DEF_ASN_NGAP_DLForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DLForwarding_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DLForwarding_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DLForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DLForwarding_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DLForwarding_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DLForwarding_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DLForwarding.h b/src/asn/ngap/ASN_NGAP_DLForwarding.h new file mode 100644 index 0000000..aea6a28 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DLForwarding.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DLForwarding_H_ +#define _ASN_NGAP_DLForwarding_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DLForwarding { + ASN_NGAP_DLForwarding_dl_forwarding_proposed = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DLForwarding; + +/* ASN_NGAP_DLForwarding */ +typedef long ASN_NGAP_DLForwarding_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DLForwarding_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DLForwarding; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DLForwarding_specs_1; +asn_struct_free_f ASN_NGAP_DLForwarding_free; +asn_struct_print_f ASN_NGAP_DLForwarding_print; +asn_constr_check_f ASN_NGAP_DLForwarding_constraint; +ber_type_decoder_f ASN_NGAP_DLForwarding_decode_ber; +der_type_encoder_f ASN_NGAP_DLForwarding_encode_der; +xer_type_decoder_f ASN_NGAP_DLForwarding_decode_xer; +xer_type_encoder_f ASN_NGAP_DLForwarding_encode_xer; +per_type_decoder_f ASN_NGAP_DLForwarding_decode_uper; +per_type_encoder_f ASN_NGAP_DLForwarding_encode_uper; +per_type_decoder_f ASN_NGAP_DLForwarding_decode_aper; +per_type_encoder_f ASN_NGAP_DLForwarding_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DLForwarding_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRB-ID.c b/src/asn/ngap/ASN_NGAP_DRB-ID.c new file mode 100644 index 0000000..f09d71d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRB-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRB-ID.h" + +int +ASN_NGAP_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_ASN_NGAP_DRB_ID_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_ASN_NGAP_DRB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRB_ID = { + "DRB-ID", + "DRB-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_DRB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRB_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DRB_ID_constr_1, ASN_NGAP_DRB_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRB-ID.h b/src/asn/ngap/ASN_NGAP_DRB-ID.h new file mode 100644 index 0000000..57b0e1f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRB_ID_H_ +#define _ASN_NGAP_DRB_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DRB-ID */ +typedef long ASN_NGAP_DRB_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRB_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRB_ID; +asn_struct_free_f ASN_NGAP_DRB_ID_free; +asn_struct_print_f ASN_NGAP_DRB_ID_print; +asn_constr_check_f ASN_NGAP_DRB_ID_constraint; +ber_type_decoder_f ASN_NGAP_DRB_ID_decode_ber; +der_type_encoder_f ASN_NGAP_DRB_ID_encode_der; +xer_type_decoder_f ASN_NGAP_DRB_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_DRB_ID_encode_xer; +per_type_decoder_f ASN_NGAP_DRB_ID_decode_uper; +per_type_encoder_f ASN_NGAP_DRB_ID_encode_uper; +per_type_decoder_f ASN_NGAP_DRB_ID_decode_aper; +per_type_encoder_f ASN_NGAP_DRB_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL.c b/src/asn/ngap/ASN_NGAP_DRBStatusDL.c new file mode 100644 index 0000000..443a971 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusDL.h" + +#include "ASN_NGAP_DRBStatusDL12.h" +#include "ASN_NGAP_DRBStatusDL18.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBStatusDL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusDL, choice.dRBStatusDL12), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusDL12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusDL12" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusDL, choice.dRBStatusDL18), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusDL18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusDL18" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusDL, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBStatusDL12 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dRBStatusDL18 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusDL), + offsetof(struct ASN_NGAP_DRBStatusDL, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusDL, present), + sizeof(((struct ASN_NGAP_DRBStatusDL *)0)->present), + asn_MAP_ASN_NGAP_DRBStatusDL_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL = { + "DRBStatusDL", + "DRBStatusDL", + &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_ASN_NGAP_DRBStatusDL_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL.h b/src/asn/ngap/ASN_NGAP_DRBStatusDL.h new file mode 100644 index 0000000..63a1f30 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusDL_H_ +#define _ASN_NGAP_DRBStatusDL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DRBStatusDL_PR { + ASN_NGAP_DRBStatusDL_PR_NOTHING, /* No components present */ + ASN_NGAP_DRBStatusDL_PR_dRBStatusDL12, + ASN_NGAP_DRBStatusDL_PR_dRBStatusDL18, + ASN_NGAP_DRBStatusDL_PR_choice_Extensions +} ASN_NGAP_DRBStatusDL_PR; + +/* Forward declarations */ +struct ASN_NGAP_DRBStatusDL12; +struct ASN_NGAP_DRBStatusDL18; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_DRBStatusDL */ +typedef struct ASN_NGAP_DRBStatusDL { + ASN_NGAP_DRBStatusDL_PR present; + union ASN_NGAP_DRBStatusDL_u { + struct ASN_NGAP_DRBStatusDL12 *dRBStatusDL12; + struct ASN_NGAP_DRBStatusDL18 *dRBStatusDL18; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusDL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBStatusDL_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusDL_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL12.c b/src/asn/ngap/ASN_NGAP_DRBStatusDL12.c new file mode 100644 index 0000000..06de9ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL12.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusDL12.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL12_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL12, dL_COUNTValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-COUNTValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBStatusDL12, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBStatusDL12_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL12_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-COUNTValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL12_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusDL12), + offsetof(struct ASN_NGAP_DRBStatusDL12, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusDL12_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBStatusDL12_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL12 = { + "DRBStatusDL12", + "DRBStatusDL12", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL12_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL12_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL12.h b/src/asn/ngap/ASN_NGAP_DRBStatusDL12.h new file mode 100644 index 0000000..24ec2bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL12.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusDL12_H_ +#define _ASN_NGAP_DRBStatusDL12_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_COUNTValueForPDCP-SN12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBStatusDL12 */ +typedef struct ASN_NGAP_DRBStatusDL12 { + ASN_NGAP_COUNTValueForPDCP_SN12_t dL_COUNTValue; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusDL12_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL12; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL12_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL12_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusDL12_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL18.c b/src/asn/ngap/ASN_NGAP_DRBStatusDL18.c new file mode 100644 index 0000000..007c2b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL18.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusDL18.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL18_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL18, dL_COUNTValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-COUNTValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBStatusDL18, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBStatusDL18_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL18_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-COUNTValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL18_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusDL18), + offsetof(struct ASN_NGAP_DRBStatusDL18, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusDL18_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBStatusDL18_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL18 = { + "DRBStatusDL18", + "DRBStatusDL18", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL18_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL18_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusDL18.h b/src/asn/ngap/ASN_NGAP_DRBStatusDL18.h new file mode 100644 index 0000000..cc342ed --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusDL18.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusDL18_H_ +#define _ASN_NGAP_DRBStatusDL18_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_COUNTValueForPDCP-SN18.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBStatusDL18 */ +typedef struct ASN_NGAP_DRBStatusDL18 { + ASN_NGAP_COUNTValueForPDCP_SN18_t dL_COUNTValue; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusDL18_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL18; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL18_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL18_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusDL18_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL.c b/src/asn/ngap/ASN_NGAP_DRBStatusUL.c new file mode 100644 index 0000000..7fda93a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusUL.h" + +#include "ASN_NGAP_DRBStatusUL12.h" +#include "ASN_NGAP_DRBStatusUL18.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBStatusUL_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusUL, choice.dRBStatusUL12), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusUL12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusUL12" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusUL, choice.dRBStatusUL18), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusUL18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusUL18" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_DRBStatusUL, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBStatusUL12 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dRBStatusUL18 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusUL), + offsetof(struct ASN_NGAP_DRBStatusUL, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusUL, present), + sizeof(((struct ASN_NGAP_DRBStatusUL *)0)->present), + asn_MAP_ASN_NGAP_DRBStatusUL_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL = { + "DRBStatusUL", + "DRBStatusUL", + &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_ASN_NGAP_DRBStatusUL_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL.h b/src/asn/ngap/ASN_NGAP_DRBStatusUL.h new file mode 100644 index 0000000..d94a713 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusUL_H_ +#define _ASN_NGAP_DRBStatusUL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DRBStatusUL_PR { + ASN_NGAP_DRBStatusUL_PR_NOTHING, /* No components present */ + ASN_NGAP_DRBStatusUL_PR_dRBStatusUL12, + ASN_NGAP_DRBStatusUL_PR_dRBStatusUL18, + ASN_NGAP_DRBStatusUL_PR_choice_Extensions +} ASN_NGAP_DRBStatusUL_PR; + +/* Forward declarations */ +struct ASN_NGAP_DRBStatusUL12; +struct ASN_NGAP_DRBStatusUL18; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_DRBStatusUL */ +typedef struct ASN_NGAP_DRBStatusUL { + ASN_NGAP_DRBStatusUL_PR present; + union ASN_NGAP_DRBStatusUL_u { + struct ASN_NGAP_DRBStatusUL12 *dRBStatusUL12; + struct ASN_NGAP_DRBStatusUL18 *dRBStatusUL18; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusUL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBStatusUL_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusUL_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL12.c b/src/asn/ngap/ASN_NGAP_DRBStatusUL12.c new file mode 100644 index 0000000..d15f4d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL12.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusUL12.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_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 <= 2048)) { + /* Constraint 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_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 2048 } /* (SIZE(1..2048)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL12_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL12, uL_COUNTValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-COUNTValue" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_DRBStatusUL12, receiveStatusOfUL_PDCP_SDUs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constr_3, memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constraint_1 }, + 0, 0, /* No default value */ + "receiveStatusOfUL-PDCP-SDUs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBStatusUL12, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBStatusUL12_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL12_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-COUNTValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* receiveStatusOfUL-PDCP-SDUs */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL12_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusUL12), + offsetof(struct ASN_NGAP_DRBStatusUL12, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusUL12_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBStatusUL12_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL12 = { + "DRBStatusUL12", + "DRBStatusUL12", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL12_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL12_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL12.h b/src/asn/ngap/ASN_NGAP_DRBStatusUL12.h new file mode 100644 index 0000000..df0659d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL12.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusUL12_H_ +#define _ASN_NGAP_DRBStatusUL12_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_COUNTValueForPDCP-SN12.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBStatusUL12 */ +typedef struct ASN_NGAP_DRBStatusUL12 { + ASN_NGAP_COUNTValueForPDCP_SN12_t uL_COUNTValue; + BIT_STRING_t *receiveStatusOfUL_PDCP_SDUs; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusUL12_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL12; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL12_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL12_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusUL12_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL18.c b/src/asn/ngap/ASN_NGAP_DRBStatusUL18.c new file mode 100644 index 0000000..6fec256 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL18.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBStatusUL18.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_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 <= 131072)) { + /* Constraint 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_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 17, -1, 1, 131072 } /* (SIZE(1..131072)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL18_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL18, uL_COUNTValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-COUNTValue" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_DRBStatusUL18, receiveStatusOfUL_PDCP_SDUs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constr_3, memb_ASN_NGAP_receiveStatusOfUL_PDCP_SDUs_constraint_1 }, + 0, 0, /* No default value */ + "receiveStatusOfUL-PDCP-SDUs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBStatusUL18, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBStatusUL18_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL18_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-COUNTValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* receiveStatusOfUL-PDCP-SDUs */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL18_specs_1 = { + sizeof(struct ASN_NGAP_DRBStatusUL18), + offsetof(struct ASN_NGAP_DRBStatusUL18, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusUL18_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBStatusUL18_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL18 = { + "DRBStatusUL18", + "DRBStatusUL18", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL18_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL18_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBStatusUL18.h b/src/asn/ngap/ASN_NGAP_DRBStatusUL18.h new file mode 100644 index 0000000..9a2d8eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBStatusUL18.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBStatusUL18_H_ +#define _ASN_NGAP_DRBStatusUL18_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_COUNTValueForPDCP-SN18.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBStatusUL18 */ +typedef struct ASN_NGAP_DRBStatusUL18 { + ASN_NGAP_COUNTValueForPDCP_SN18_t uL_COUNTValue; + BIT_STRING_t *receiveStatusOfUL_PDCP_SDUs; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusUL18_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL18; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL18_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL18_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBStatusUL18_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c new file mode 100644 index 0000000..3df458b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item, dRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item, firstDLCOUNT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstDLCOUNT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* firstDLCOUNT */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_specs_1 = { + sizeof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item), + offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item = { + "DRBsSubjectToEarlyStatusTransfer-Item", + "DRBsSubjectToEarlyStatusTransfer-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h new file mode 100644 index 0000000..d25c925 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_H_ +#define _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRB-ID.h" +#include "ASN_NGAP_DRBStatusDL.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item */ +typedef struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item { + ASN_NGAP_DRB_ID_t dRB_ID; + ASN_NGAP_DRBStatusDL_t firstDLCOUNT; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.c b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.c new file mode 100644 index 0000000..ade831f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h" + +#include "ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_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_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_specs_1 = { + sizeof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List), + offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List = { + "DRBsSubjectToEarlyStatusTransfer-List", + "DRBsSubjectToEarlyStatusTransfer-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h new file mode 100644 index 0000000..e21ebb2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_H_ +#define _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item; + +/* ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List */ +typedef struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.c b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.c new file mode 100644 index 0000000..f8be8d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsSubjectToStatusTransferItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem, dRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem, dRBStatusUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem, dRBStatusDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBStatusDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBStatusDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dRBStatusUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dRBStatusDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_specs_1 = { + sizeof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem), + offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem = { + "DRBsSubjectToStatusTransferItem", + "DRBsSubjectToStatusTransferItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.h b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.h new file mode 100644 index 0000000..968c67a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsSubjectToStatusTransferItem_H_ +#define _ASN_NGAP_DRBsSubjectToStatusTransferItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRB-ID.h" +#include "ASN_NGAP_DRBStatusUL.h" +#include "ASN_NGAP_DRBStatusDL.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBsSubjectToStatusTransferItem */ +typedef struct ASN_NGAP_DRBsSubjectToStatusTransferItem { + ASN_NGAP_DRB_ID_t dRB_ID; + ASN_NGAP_DRBStatusUL_t dRBStatusUL; + ASN_NGAP_DRBStatusDL_t dRBStatusDL; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToStatusTransferItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsSubjectToStatusTransferItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.c b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.c new file mode 100644 index 0000000..32131ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsSubjectToStatusTransferList.h" + +#include "ASN_NGAP_DRBsSubjectToStatusTransferItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsSubjectToStatusTransferList_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_ASN_NGAP_DRBsSubjectToStatusTransferList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferList_specs_1 = { + sizeof(struct ASN_NGAP_DRBsSubjectToStatusTransferList), + offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList = { + "DRBsSubjectToStatusTransferList", + "DRBsSubjectToStatusTransferList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DRBsSubjectToStatusTransferList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.h b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.h new file mode 100644 index 0000000..0118733 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsSubjectToStatusTransferList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsSubjectToStatusTransferList_H_ +#define _ASN_NGAP_DRBsSubjectToStatusTransferList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DRBsSubjectToStatusTransferItem; + +/* ASN_NGAP_DRBsSubjectToStatusTransferList */ +typedef struct ASN_NGAP_DRBsSubjectToStatusTransferList { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsSubjectToStatusTransferItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToStatusTransferList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsSubjectToStatusTransferList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsSubjectToStatusTransferList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c new file mode 100644 index 0000000..8066bb8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsToQosFlowsMappingItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem, dRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem, associatedQosFlowList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AssociatedQosFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedQosFlowList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* associatedQosFlowList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_specs_1 = { + sizeof(struct ASN_NGAP_DRBsToQosFlowsMappingItem), + offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem = { + "DRBsToQosFlowsMappingItem", + "DRBsToQosFlowsMappingItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h new file mode 100644 index 0000000..9a8b146 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsToQosFlowsMappingItem_H_ +#define _ASN_NGAP_DRBsToQosFlowsMappingItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRB-ID.h" +#include "ASN_NGAP_AssociatedQosFlowList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DRBsToQosFlowsMappingItem */ +typedef struct ASN_NGAP_DRBsToQosFlowsMappingItem { + ASN_NGAP_DRB_ID_t dRB_ID; + ASN_NGAP_AssociatedQosFlowList_t associatedQosFlowList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsToQosFlowsMappingItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsToQosFlowsMappingItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c new file mode 100644 index 0000000..7ef1210 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DRBsToQosFlowsMappingList.h" + +#include "ASN_NGAP_DRBsToQosFlowsMappingItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsToQosFlowsMappingList_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_ASN_NGAP_DRBsToQosFlowsMappingList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingList_specs_1 = { + sizeof(struct ASN_NGAP_DRBsToQosFlowsMappingList), + offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList = { + "DRBsToQosFlowsMappingList", + "DRBsToQosFlowsMappingList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1, + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DRBsToQosFlowsMappingList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h new file mode 100644 index 0000000..2c407be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DRBsToQosFlowsMappingList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DRBsToQosFlowsMappingList_H_ +#define _ASN_NGAP_DRBsToQosFlowsMappingList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DRBsToQosFlowsMappingItem; + +/* ASN_NGAP_DRBsToQosFlowsMappingList */ +typedef struct ASN_NGAP_DRBsToQosFlowsMappingList { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsToQosFlowsMappingItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsToQosFlowsMappingList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DRBsToQosFlowsMappingList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DRBsToQosFlowsMappingList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataCodingScheme.c b/src/asn/ngap/ASN_NGAP_DataCodingScheme.c new file mode 100644 index 0000000..98184a5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataCodingScheme.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataCodingScheme.h" + +int +ASN_NGAP_DataCodingScheme_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_ASN_NGAP_DataCodingScheme_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_ASN_NGAP_DataCodingScheme_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataCodingScheme = { + "DataCodingScheme", + "DataCodingScheme", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_DataCodingScheme_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataCodingScheme_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataCodingScheme_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataCodingScheme_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataCodingScheme_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataCodingScheme_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DataCodingScheme_constr_1, ASN_NGAP_DataCodingScheme_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataCodingScheme.h b/src/asn/ngap/ASN_NGAP_DataCodingScheme.h new file mode 100644 index 0000000..39ed557 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataCodingScheme.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataCodingScheme_H_ +#define _ASN_NGAP_DataCodingScheme_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DataCodingScheme */ +typedef BIT_STRING_t ASN_NGAP_DataCodingScheme_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DataCodingScheme_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataCodingScheme; +asn_struct_free_f ASN_NGAP_DataCodingScheme_free; +asn_struct_print_f ASN_NGAP_DataCodingScheme_print; +asn_constr_check_f ASN_NGAP_DataCodingScheme_constraint; +ber_type_decoder_f ASN_NGAP_DataCodingScheme_decode_ber; +der_type_encoder_f ASN_NGAP_DataCodingScheme_encode_der; +xer_type_decoder_f ASN_NGAP_DataCodingScheme_decode_xer; +xer_type_encoder_f ASN_NGAP_DataCodingScheme_encode_xer; +per_type_decoder_f ASN_NGAP_DataCodingScheme_decode_uper; +per_type_encoder_f ASN_NGAP_DataCodingScheme_encode_uper; +per_type_decoder_f ASN_NGAP_DataCodingScheme_decode_aper; +per_type_encoder_f ASN_NGAP_DataCodingScheme_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataCodingScheme_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.c b/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.c new file mode 100644 index 0000000..239778e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingAccepted.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingAccepted_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_ASN_NGAP_DataForwardingAccepted_value2enum_1[] = { + { 0, 24, "data-forwarding-accepted" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DataForwardingAccepted_enum2value_1[] = { + 0 /* data-forwarding-accepted(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DataForwardingAccepted_specs_1 = { + asn_MAP_ASN_NGAP_DataForwardingAccepted_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DataForwardingAccepted_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_ASN_NGAP_DataForwardingAccepted_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingAccepted = { + "DataForwardingAccepted", + "DataForwardingAccepted", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingAccepted_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DataForwardingAccepted_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DataForwardingAccepted_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.h b/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.h new file mode 100644 index 0000000..e2707de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingAccepted.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingAccepted_H_ +#define _ASN_NGAP_DataForwardingAccepted_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DataForwardingAccepted { + ASN_NGAP_DataForwardingAccepted_data_forwarding_accepted = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DataForwardingAccepted; + +/* ASN_NGAP_DataForwardingAccepted */ +typedef long ASN_NGAP_DataForwardingAccepted_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingAccepted_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingAccepted; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DataForwardingAccepted_specs_1; +asn_struct_free_f ASN_NGAP_DataForwardingAccepted_free; +asn_struct_print_f ASN_NGAP_DataForwardingAccepted_print; +asn_constr_check_f ASN_NGAP_DataForwardingAccepted_constraint; +ber_type_decoder_f ASN_NGAP_DataForwardingAccepted_decode_ber; +der_type_encoder_f ASN_NGAP_DataForwardingAccepted_encode_der; +xer_type_decoder_f ASN_NGAP_DataForwardingAccepted_decode_xer; +xer_type_encoder_f ASN_NGAP_DataForwardingAccepted_encode_xer; +per_type_decoder_f ASN_NGAP_DataForwardingAccepted_decode_uper; +per_type_encoder_f ASN_NGAP_DataForwardingAccepted_encode_uper; +per_type_decoder_f ASN_NGAP_DataForwardingAccepted_decode_aper; +per_type_encoder_f ASN_NGAP_DataForwardingAccepted_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingAccepted_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.c b/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.c new file mode 100644 index 0000000..8611c79 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingNotPossible.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingNotPossible_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_ASN_NGAP_DataForwardingNotPossible_value2enum_1[] = { + { 0, 28, "data-forwarding-not-possible" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DataForwardingNotPossible_enum2value_1[] = { + 0 /* data-forwarding-not-possible(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DataForwardingNotPossible_specs_1 = { + asn_MAP_ASN_NGAP_DataForwardingNotPossible_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DataForwardingNotPossible_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_ASN_NGAP_DataForwardingNotPossible_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingNotPossible = { + "DataForwardingNotPossible", + "DataForwardingNotPossible", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingNotPossible_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DataForwardingNotPossible_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DataForwardingNotPossible_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.h b/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.h new file mode 100644 index 0000000..898b148 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingNotPossible.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingNotPossible_H_ +#define _ASN_NGAP_DataForwardingNotPossible_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DataForwardingNotPossible { + ASN_NGAP_DataForwardingNotPossible_data_forwarding_not_possible = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DataForwardingNotPossible; + +/* ASN_NGAP_DataForwardingNotPossible */ +typedef long ASN_NGAP_DataForwardingNotPossible_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingNotPossible_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingNotPossible; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DataForwardingNotPossible_specs_1; +asn_struct_free_f ASN_NGAP_DataForwardingNotPossible_free; +asn_struct_print_f ASN_NGAP_DataForwardingNotPossible_print; +asn_constr_check_f ASN_NGAP_DataForwardingNotPossible_constraint; +ber_type_decoder_f ASN_NGAP_DataForwardingNotPossible_decode_ber; +der_type_encoder_f ASN_NGAP_DataForwardingNotPossible_encode_der; +xer_type_decoder_f ASN_NGAP_DataForwardingNotPossible_decode_xer; +xer_type_encoder_f ASN_NGAP_DataForwardingNotPossible_encode_xer; +per_type_decoder_f ASN_NGAP_DataForwardingNotPossible_decode_uper; +per_type_encoder_f ASN_NGAP_DataForwardingNotPossible_encode_uper; +per_type_decoder_f ASN_NGAP_DataForwardingNotPossible_decode_aper; +per_type_encoder_f ASN_NGAP_DataForwardingNotPossible_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingNotPossible_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.c b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.c new file mode 100644 index 0000000..84794ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingResponseDRBItem.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem, dRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRB-ID" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem, dLForwardingUP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwardingUP-TNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem, uLForwardingUP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLForwardingUP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLForwardingUP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uLForwardingUP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_specs_1 = { + sizeof(struct ASN_NGAP_DataForwardingResponseDRBItem), + offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem, _asn_ctx), + asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem = { + "DataForwardingResponseDRBItem", + "DataForwardingResponseDRBItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.h b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.h new file mode 100644 index 0000000..aff8096 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBItem.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingResponseDRBItem_H_ +#define _ASN_NGAP_DataForwardingResponseDRBItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DataForwardingResponseDRBItem */ +typedef struct ASN_NGAP_DataForwardingResponseDRBItem { + ASN_NGAP_DRB_ID_t dRB_ID; + struct ASN_NGAP_UPTransportLayerInformation *dLForwardingUP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_UPTransportLayerInformation *uLForwardingUP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseDRBItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingResponseDRBItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.c b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.c new file mode 100644 index 0000000..d6e8b51 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingResponseDRBList.h" + +#include "ASN_NGAP_DataForwardingResponseDRBItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingResponseDRBList_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_ASN_NGAP_DataForwardingResponseDRBList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBList_specs_1 = { + sizeof(struct ASN_NGAP_DataForwardingResponseDRBList), + offsetof(struct ASN_NGAP_DataForwardingResponseDRBList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBList = { + "DataForwardingResponseDRBList", + "DataForwardingResponseDRBList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DataForwardingResponseDRBList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseDRBList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DataForwardingResponseDRBList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.h b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.h new file mode 100644 index 0000000..ca23a53 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseDRBList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingResponseDRBList_H_ +#define _ASN_NGAP_DataForwardingResponseDRBList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DataForwardingResponseDRBItem; + +/* ASN_NGAP_DataForwardingResponseDRBList */ +typedef struct ASN_NGAP_DataForwardingResponseDRBList { + A_SEQUENCE_OF(struct ASN_NGAP_DataForwardingResponseDRBItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseDRBList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseDRBList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingResponseDRBList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingResponseDRBList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.c b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.c new file mode 100644 index 0000000..88ce08c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingResponseERABList.h" + +#include "ASN_NGAP_DataForwardingResponseERABListItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingResponseERABList_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_ASN_NGAP_DataForwardingResponseERABList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABList_specs_1 = { + sizeof(struct ASN_NGAP_DataForwardingResponseERABList), + offsetof(struct ASN_NGAP_DataForwardingResponseERABList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABList = { + "DataForwardingResponseERABList", + "DataForwardingResponseERABList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DataForwardingResponseERABList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseERABList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_DataForwardingResponseERABList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.h b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.h new file mode 100644 index 0000000..18c5cfc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingResponseERABList_H_ +#define _ASN_NGAP_DataForwardingResponseERABList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DataForwardingResponseERABListItem; + +/* ASN_NGAP_DataForwardingResponseERABList */ +typedef struct ASN_NGAP_DataForwardingResponseERABList { + A_SEQUENCE_OF(struct ASN_NGAP_DataForwardingResponseERABListItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseERABList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseERABList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DataForwardingResponseERABList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingResponseERABList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.c b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.c new file mode 100644 index 0000000..7c0dbb9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DataForwardingResponseERABListItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem, e_RAB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_E_RAB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem, dLForwardingUP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwardingUP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLForwardingUP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_specs_1 = { + sizeof(struct ASN_NGAP_DataForwardingResponseERABListItem), + offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem, _asn_ctx), + asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem = { + "DataForwardingResponseERABListItem", + "DataForwardingResponseERABListItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.h b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.h new file mode 100644 index 0000000..543eef9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DataForwardingResponseERABListItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DataForwardingResponseERABListItem_H_ +#define _ASN_NGAP_DataForwardingResponseERABListItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_E-RAB-ID.h" +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_DataForwardingResponseERABListItem */ +typedef struct ASN_NGAP_DataForwardingResponseERABListItem { + ASN_NGAP_E_RAB_ID_t e_RAB_ID; + ASN_NGAP_UPTransportLayerInformation_t dLForwardingUP_TNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseERABListItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DataForwardingResponseERABListItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DeactivateTrace.c b/src/asn/ngap/ASN_NGAP_DeactivateTrace.c new file mode 100644 index 0000000..33cfbac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DeactivateTrace.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DeactivateTrace.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DeactivateTrace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTrace, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DeactivateTrace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DeactivateTrace_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DeactivateTrace_specs_1 = { + sizeof(struct ASN_NGAP_DeactivateTrace), + offsetof(struct ASN_NGAP_DeactivateTrace, _asn_ctx), + asn_MAP_ASN_NGAP_DeactivateTrace_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_ASN_NGAP_DeactivateTrace = { + "DeactivateTrace", + "DeactivateTrace", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DeactivateTrace_tags_1, + sizeof(asn_DEF_ASN_NGAP_DeactivateTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DeactivateTrace_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DeactivateTrace_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DeactivateTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DeactivateTrace_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DeactivateTrace_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DeactivateTrace_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DeactivateTrace.h b/src/asn/ngap/ASN_NGAP_DeactivateTrace.h new file mode 100644 index 0000000..cc663f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DeactivateTrace.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DeactivateTrace_H_ +#define _ASN_NGAP_DeactivateTrace_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DeactivateTrace */ +typedef struct ASN_NGAP_DeactivateTrace { + ASN_NGAP_ProtocolIE_Container_123P84_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DeactivateTrace_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DeactivateTrace; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DeactivateTrace_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DeactivateTrace_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DeactivateTrace_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DelayCritical.c b/src/asn/ngap/ASN_NGAP_DelayCritical.c new file mode 100644 index 0000000..30186d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DelayCritical.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DelayCritical.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DelayCritical_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_ASN_NGAP_DelayCritical_value2enum_1[] = { + { 0, 14, "delay-critical" }, + { 1, 18, "non-delay-critical" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DelayCritical_enum2value_1[] = { + 0, /* delay-critical(0) */ + 1 /* non-delay-critical(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DelayCritical_specs_1 = { + asn_MAP_ASN_NGAP_DelayCritical_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DelayCritical_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_ASN_NGAP_DelayCritical_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DelayCritical = { + "DelayCritical", + "DelayCritical", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DelayCritical_tags_1, + sizeof(asn_DEF_ASN_NGAP_DelayCritical_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DelayCritical_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DelayCritical_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DelayCritical_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DelayCritical_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DelayCritical_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DelayCritical_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DelayCritical.h b/src/asn/ngap/ASN_NGAP_DelayCritical.h new file mode 100644 index 0000000..c49b0ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DelayCritical.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DelayCritical_H_ +#define _ASN_NGAP_DelayCritical_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DelayCritical { + ASN_NGAP_DelayCritical_delay_critical = 0, + ASN_NGAP_DelayCritical_non_delay_critical = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DelayCritical; + +/* ASN_NGAP_DelayCritical */ +typedef long ASN_NGAP_DelayCritical_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DelayCritical_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DelayCritical; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DelayCritical_specs_1; +asn_struct_free_f ASN_NGAP_DelayCritical_free; +asn_struct_print_f ASN_NGAP_DelayCritical_print; +asn_constr_check_f ASN_NGAP_DelayCritical_constraint; +ber_type_decoder_f ASN_NGAP_DelayCritical_decode_ber; +der_type_encoder_f ASN_NGAP_DelayCritical_encode_der; +xer_type_decoder_f ASN_NGAP_DelayCritical_decode_xer; +xer_type_encoder_f ASN_NGAP_DelayCritical_encode_xer; +per_type_decoder_f ASN_NGAP_DelayCritical_decode_uper; +per_type_encoder_f ASN_NGAP_DelayCritical_encode_uper; +per_type_decoder_f ASN_NGAP_DelayCritical_decode_aper; +per_type_encoder_f ASN_NGAP_DelayCritical_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DelayCritical_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.c b/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.c new file mode 100644 index 0000000..fe6d5a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DirectForwardingPathAvailability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_DirectForwardingPathAvailability_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_ASN_NGAP_DirectForwardingPathAvailability_value2enum_1[] = { + { 0, 21, "direct-path-available" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_DirectForwardingPathAvailability_enum2value_1[] = { + 0 /* direct-path-available(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DirectForwardingPathAvailability_specs_1 = { + asn_MAP_ASN_NGAP_DirectForwardingPathAvailability_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_DirectForwardingPathAvailability_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_ASN_NGAP_DirectForwardingPathAvailability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DirectForwardingPathAvailability = { + "DirectForwardingPathAvailability", + "DirectForwardingPathAvailability", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1, + sizeof(asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DirectForwardingPathAvailability_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_DirectForwardingPathAvailability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_DirectForwardingPathAvailability_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.h b/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.h new file mode 100644 index 0000000..70d3dc5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DirectForwardingPathAvailability.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DirectForwardingPathAvailability_H_ +#define _ASN_NGAP_DirectForwardingPathAvailability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_DirectForwardingPathAvailability { + ASN_NGAP_DirectForwardingPathAvailability_direct_path_available = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_DirectForwardingPathAvailability; + +/* ASN_NGAP_DirectForwardingPathAvailability */ +typedef long ASN_NGAP_DirectForwardingPathAvailability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_DirectForwardingPathAvailability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DirectForwardingPathAvailability; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_DirectForwardingPathAvailability_specs_1; +asn_struct_free_f ASN_NGAP_DirectForwardingPathAvailability_free; +asn_struct_print_f ASN_NGAP_DirectForwardingPathAvailability_print; +asn_constr_check_f ASN_NGAP_DirectForwardingPathAvailability_constraint; +ber_type_decoder_f ASN_NGAP_DirectForwardingPathAvailability_decode_ber; +der_type_encoder_f ASN_NGAP_DirectForwardingPathAvailability_encode_der; +xer_type_decoder_f ASN_NGAP_DirectForwardingPathAvailability_decode_xer; +xer_type_encoder_f ASN_NGAP_DirectForwardingPathAvailability_encode_xer; +per_type_decoder_f ASN_NGAP_DirectForwardingPathAvailability_decode_uper; +per_type_encoder_f ASN_NGAP_DirectForwardingPathAvailability_encode_uper; +per_type_decoder_f ASN_NGAP_DirectForwardingPathAvailability_decode_aper; +per_type_encoder_f ASN_NGAP_DirectForwardingPathAvailability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DirectForwardingPathAvailability_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.c b/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.c new file mode 100644 index 0000000..8a39fa6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DistributionReleaseRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionReleaseRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseRequest_specs_1 = { + sizeof(struct ASN_NGAP_DistributionReleaseRequest), + offsetof(struct ASN_NGAP_DistributionReleaseRequest, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionReleaseRequest_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_ASN_NGAP_DistributionReleaseRequest = { + "DistributionReleaseRequest", + "DistributionReleaseRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionReleaseRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionReleaseRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.h b/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.h new file mode 100644 index 0000000..f01139d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DistributionReleaseRequest_H_ +#define _ASN_NGAP_DistributionReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DistributionReleaseRequest */ +typedef struct ASN_NGAP_DistributionReleaseRequest { + ASN_NGAP_ProtocolIE_Container_123P112_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionReleaseRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DistributionReleaseRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.c b/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.c new file mode 100644 index 0000000..5632acb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DistributionReleaseResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionReleaseResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseResponse_specs_1 = { + sizeof(struct ASN_NGAP_DistributionReleaseResponse), + offsetof(struct ASN_NGAP_DistributionReleaseResponse, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionReleaseResponse_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_ASN_NGAP_DistributionReleaseResponse = { + "DistributionReleaseResponse", + "DistributionReleaseResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionReleaseResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionReleaseResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.h b/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.h new file mode 100644 index 0000000..bfbc5c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionReleaseResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DistributionReleaseResponse_H_ +#define _ASN_NGAP_DistributionReleaseResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DistributionReleaseResponse */ +typedef struct ASN_NGAP_DistributionReleaseResponse { + ASN_NGAP_ProtocolIE_Container_123P113_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionReleaseResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DistributionReleaseResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.c b/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.c new file mode 100644 index 0000000..8428d80 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DistributionSetupFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupFailure_specs_1 = { + sizeof(struct ASN_NGAP_DistributionSetupFailure), + offsetof(struct ASN_NGAP_DistributionSetupFailure, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupFailure_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_ASN_NGAP_DistributionSetupFailure = { + "DistributionSetupFailure", + "DistributionSetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.h b/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.h new file mode 100644 index 0000000..ee822b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DistributionSetupFailure_H_ +#define _ASN_NGAP_DistributionSetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DistributionSetupFailure */ +typedef struct ASN_NGAP_DistributionSetupFailure { + ASN_NGAP_ProtocolIE_Container_123P111_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionSetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DistributionSetupFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.c b/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.c new file mode 100644 index 0000000..f83060d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DistributionSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupRequest_specs_1 = { + sizeof(struct ASN_NGAP_DistributionSetupRequest), + offsetof(struct ASN_NGAP_DistributionSetupRequest, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupRequest_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_ASN_NGAP_DistributionSetupRequest = { + "DistributionSetupRequest", + "DistributionSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.h b/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.h new file mode 100644 index 0000000..14f7af6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DistributionSetupRequest_H_ +#define _ASN_NGAP_DistributionSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DistributionSetupRequest */ +typedef struct ASN_NGAP_DistributionSetupRequest { + ASN_NGAP_ProtocolIE_Container_123P109_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DistributionSetupRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.c b/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.c new file mode 100644 index 0000000..a822fc2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DistributionSetupResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupResponse_specs_1 = { + sizeof(struct ASN_NGAP_DistributionSetupResponse), + offsetof(struct ASN_NGAP_DistributionSetupResponse, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupResponse_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_ASN_NGAP_DistributionSetupResponse = { + "DistributionSetupResponse", + "DistributionSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.h b/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.h new file mode 100644 index 0000000..f7664c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DistributionSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DistributionSetupResponse_H_ +#define _ASN_NGAP_DistributionSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DistributionSetupResponse */ +typedef struct ASN_NGAP_DistributionSetupResponse { + ASN_NGAP_ProtocolIE_Container_123P110_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DistributionSetupResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.c b/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.c new file mode 100644 index 0000000..1b3b8ec --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkNASTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNASTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkNASTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNASTransport_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkNASTransport), + offsetof(struct ASN_NGAP_DownlinkNASTransport, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkNASTransport_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_ASN_NGAP_DownlinkNASTransport = { + "DownlinkNASTransport", + "DownlinkNASTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkNASTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkNASTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.h b/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.h new file mode 100644 index 0000000..aaad0e5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkNASTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkNASTransport_H_ +#define _ASN_NGAP_DownlinkNASTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkNASTransport */ +typedef struct ASN_NGAP_DownlinkNASTransport { + ASN_NGAP_ProtocolIE_Container_123P51_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkNASTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNASTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNASTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNASTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkNASTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.c b/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.c new file mode 100644 index 0000000..a81ca92 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport), + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_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_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport = { + "DownlinkNonUEAssociatedNRPPaTransport", + "DownlinkNonUEAssociatedNRPPaTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h b/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h new file mode 100644 index 0000000..e9d6507 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_H_ +#define _ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport */ +typedef struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport { + ASN_NGAP_ProtocolIE_Container_123P80_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.c b/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.c new file mode 100644 index 0000000..b3c1f78 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkRANConfigurationTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANConfigurationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkRANConfigurationTransfer), + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANConfigurationTransfer_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_ASN_NGAP_DownlinkRANConfigurationTransfer = { + "DownlinkRANConfigurationTransfer", + "DownlinkRANConfigurationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.h b/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.h new file mode 100644 index 0000000..4c9c7b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANConfigurationTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkRANConfigurationTransfer_H_ +#define _ASN_NGAP_DownlinkRANConfigurationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkRANConfigurationTransfer */ +typedef struct ASN_NGAP_DownlinkRANConfigurationTransfer { + ASN_NGAP_ProtocolIE_Container_123P71_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANConfigurationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkRANConfigurationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.c b/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.c new file mode 100644 index 0000000..5e72bfc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkRANEarlyStatusTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransfer_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkRANEarlyStatusTransfer), + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANEarlyStatusTransfer_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_ASN_NGAP_DownlinkRANEarlyStatusTransfer = { + "DownlinkRANEarlyStatusTransfer", + "DownlinkRANEarlyStatusTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.h b/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.h new file mode 100644 index 0000000..0bff69f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANEarlyStatusTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkRANEarlyStatusTransfer_H_ +#define _ASN_NGAP_DownlinkRANEarlyStatusTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkRANEarlyStatusTransfer */ +typedef struct ASN_NGAP_DownlinkRANEarlyStatusTransfer { + ASN_NGAP_ProtocolIE_Container_123P46_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANEarlyStatusTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkRANEarlyStatusTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.c b/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.c new file mode 100644 index 0000000..743b600 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkRANStatusTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANStatusTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANStatusTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANStatusTransfer_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkRANStatusTransfer), + offsetof(struct ASN_NGAP_DownlinkRANStatusTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANStatusTransfer_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_ASN_NGAP_DownlinkRANStatusTransfer = { + "DownlinkRANStatusTransfer", + "DownlinkRANStatusTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANStatusTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANStatusTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.h b/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.h new file mode 100644 index 0000000..9f35617 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRANStatusTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkRANStatusTransfer_H_ +#define _ASN_NGAP_DownlinkRANStatusTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkRANStatusTransfer */ +typedef struct ASN_NGAP_DownlinkRANStatusTransfer { + ASN_NGAP_ProtocolIE_Container_123P48_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANStatusTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANStatusTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANStatusTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkRANStatusTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.c b/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.c new file mode 100644 index 0000000..c1e51de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkRIMInformationTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRIMInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRIMInformationTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRIMInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRIMInformationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkRIMInformationTransfer), + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRIMInformationTransfer_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_ASN_NGAP_DownlinkRIMInformationTransfer = { + "DownlinkRIMInformationTransfer", + "DownlinkRIMInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRIMInformationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRIMInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.h b/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.h new file mode 100644 index 0000000..8085d40 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkRIMInformationTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkRIMInformationTransfer_H_ +#define _ASN_NGAP_DownlinkRIMInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkRIMInformationTransfer */ +typedef struct ASN_NGAP_DownlinkRIMInformationTransfer { + ASN_NGAP_ProtocolIE_Container_123P95_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRIMInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRIMInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRIMInformationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkRIMInformationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.c b/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.c new file mode 100644 index 0000000..913c25b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_specs_1 = { + sizeof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransport), + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransport, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_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_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport = { + "DownlinkUEAssociatedNRPPaTransport", + "DownlinkUEAssociatedNRPPaTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h b/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h new file mode 100644 index 0000000..b5ec21d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_H_ +#define _ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_DownlinkUEAssociatedNRPPaTransport */ +typedef struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransport { + ASN_NGAP_ProtocolIE_Container_123P78_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.c b/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.c new file mode 100644 index 0000000..de6bbab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Dynamic5QIDescriptor.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, priorityLevelQos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PriorityLevelQos, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorityLevelQos" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, packetDelayBudget), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, packetErrorRate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketErrorRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "packetErrorRate" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, delayCritical), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DelayCritical, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayCritical" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, averagingWindow), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AveragingWindow, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "averagingWindow" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, maximumDataBurstVolume), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MaximumDataBurstVolume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumDataBurstVolume" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_oms_1[] = { 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priorityLevelQos */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* packetDelayBudget */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* packetErrorRate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* delayCritical */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* averagingWindow */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* maximumDataBurstVolume */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_specs_1 = { + sizeof(struct ASN_NGAP_Dynamic5QIDescriptor), + offsetof(struct ASN_NGAP_Dynamic5QIDescriptor, _asn_ctx), + asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor = { + "Dynamic5QIDescriptor", + "Dynamic5QIDescriptor", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1, + sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_1, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.h b/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.h new file mode 100644 index 0000000..7407c64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Dynamic5QIDescriptor.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Dynamic5QIDescriptor_H_ +#define _ASN_NGAP_Dynamic5QIDescriptor_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PriorityLevelQos.h" +#include "ASN_NGAP_PacketDelayBudget.h" +#include "ASN_NGAP_PacketErrorRate.h" +#include "ASN_NGAP_FiveQI.h" +#include "ASN_NGAP_DelayCritical.h" +#include "ASN_NGAP_AveragingWindow.h" +#include "ASN_NGAP_MaximumDataBurstVolume.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_Dynamic5QIDescriptor */ +typedef struct ASN_NGAP_Dynamic5QIDescriptor { + ASN_NGAP_PriorityLevelQos_t priorityLevelQos; + ASN_NGAP_PacketDelayBudget_t packetDelayBudget; + ASN_NGAP_PacketErrorRate_t packetErrorRate; + ASN_NGAP_FiveQI_t *fiveQI; /* OPTIONAL */ + ASN_NGAP_DelayCritical_t *delayCritical; /* OPTIONAL */ + ASN_NGAP_AveragingWindow_t *averagingWindow; /* OPTIONAL */ + ASN_NGAP_MaximumDataBurstVolume_t *maximumDataBurstVolume; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Dynamic5QIDescriptor_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Dynamic5QIDescriptor_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_E-RAB-ID.c b/src/asn/ngap/ASN_NGAP_E-RAB-ID.c new file mode 100644 index 0000000..ddc14b8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RAB-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_E-RAB-ID.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_E_RAB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RAB_ID = { + "E-RAB-ID", + "E-RAB-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_E_RAB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_E_RAB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RAB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_E_RAB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_E_RAB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RAB_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_E_RAB_ID_constr_1, ASN_NGAP_E_RAB_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_E-RAB-ID.h b/src/asn/ngap/ASN_NGAP_E-RAB-ID.h new file mode 100644 index 0000000..0c0f5d0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RAB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_E_RAB_ID_H_ +#define _ASN_NGAP_E_RAB_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_E-RAB-ID */ +typedef long ASN_NGAP_E_RAB_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_E_RAB_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RAB_ID; +asn_struct_free_f ASN_NGAP_E_RAB_ID_free; +asn_struct_print_f ASN_NGAP_E_RAB_ID_print; +asn_constr_check_f ASN_NGAP_E_RAB_ID_constraint; +ber_type_decoder_f ASN_NGAP_E_RAB_ID_decode_ber; +der_type_encoder_f ASN_NGAP_E_RAB_ID_encode_der; +xer_type_decoder_f ASN_NGAP_E_RAB_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_E_RAB_ID_encode_xer; +per_type_decoder_f ASN_NGAP_E_RAB_ID_decode_uper; +per_type_encoder_f ASN_NGAP_E_RAB_ID_encode_uper; +per_type_decoder_f ASN_NGAP_E_RAB_ID_decode_aper; +per_type_encoder_f ASN_NGAP_E_RAB_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_E_RAB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_E-RABInformationItem.c b/src/asn/ngap/ASN_NGAP_E-RABInformationItem.c new file mode 100644 index 0000000..051fd5b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RABInformationItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_E-RABInformationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_E_RABInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem, e_RAB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_E_RAB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-ID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_E_RABInformationItem, dLForwarding), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DLForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwarding" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_E_RABInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_E_RABInformationItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_E_RABInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e-RAB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLForwarding */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_E_RABInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_E_RABInformationItem), + offsetof(struct ASN_NGAP_E_RABInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_E_RABInformationItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_E_RABInformationItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationItem = { + "E-RABInformationItem", + "E-RABInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_E_RABInformationItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_E_RABInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_E-RABInformationItem.h b/src/asn/ngap/ASN_NGAP_E-RABInformationItem.h new file mode 100644 index 0000000..cea3382 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RABInformationItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_E_RABInformationItem_H_ +#define _ASN_NGAP_E_RABInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_E-RAB-ID.h" +#include "ASN_NGAP_DLForwarding.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_E-RABInformationItem */ +typedef struct ASN_NGAP_E_RABInformationItem { + ASN_NGAP_E_RAB_ID_t e_RAB_ID; + ASN_NGAP_DLForwarding_t *dLForwarding; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_E_RABInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_E_RABInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_E_RABInformationItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_E_RABInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_E-RABInformationList.c b/src/asn/ngap/ASN_NGAP_E-RABInformationList.c new file mode 100644 index 0000000..fd6cac2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RABInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_E-RABInformationList.h" + +#include "ASN_NGAP_E-RABInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_E_RABInformationList_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_ASN_NGAP_E_RABInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_E_RABInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_E_RABInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_E_RABInformationList_specs_1 = { + sizeof(struct ASN_NGAP_E_RABInformationList), + offsetof(struct ASN_NGAP_E_RABInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationList = { + "E-RABInformationList", + "E-RABInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_E_RABInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_E_RABInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_E_RABInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_E_RABInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_E_RABInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_E_RABInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_E_RABInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_E-RABInformationList.h b/src/asn/ngap/ASN_NGAP_E-RABInformationList.h new file mode 100644 index 0000000..e5fee20 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_E-RABInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_E_RABInformationList_H_ +#define _ASN_NGAP_E_RABInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_E_RABInformationItem; + +/* ASN_NGAP_E-RABInformationList */ +typedef struct ASN_NGAP_E_RABInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_E_RABInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_E_RABInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_E_RABInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_E_RABInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_E_RABInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_E_RABInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EDT-Session.c b/src/asn/ngap/ASN_NGAP_EDT-Session.c new file mode 100644 index 0000000..d65c094 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EDT-Session.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EDT-Session.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EDT_Session_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_ASN_NGAP_EDT_Session_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EDT_Session_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EDT_Session_specs_1 = { + asn_MAP_ASN_NGAP_EDT_Session_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EDT_Session_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_ASN_NGAP_EDT_Session_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EDT_Session = { + "EDT-Session", + "EDT-Session", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EDT_Session_tags_1, + sizeof(asn_DEF_ASN_NGAP_EDT_Session_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EDT_Session_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EDT_Session_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EDT_Session_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EDT_Session_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EDT_Session_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EDT_Session_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EDT-Session.h b/src/asn/ngap/ASN_NGAP_EDT-Session.h new file mode 100644 index 0000000..9a8036e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EDT-Session.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EDT_Session_H_ +#define _ASN_NGAP_EDT_Session_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EDT_Session { + ASN_NGAP_EDT_Session_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EDT_Session; + +/* ASN_NGAP_EDT-Session */ +typedef long ASN_NGAP_EDT_Session_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EDT_Session_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EDT_Session; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EDT_Session_specs_1; +asn_struct_free_f ASN_NGAP_EDT_Session_free; +asn_struct_print_f ASN_NGAP_EDT_Session_print; +asn_constr_check_f ASN_NGAP_EDT_Session_constraint; +ber_type_decoder_f ASN_NGAP_EDT_Session_decode_ber; +der_type_encoder_f ASN_NGAP_EDT_Session_encode_der; +xer_type_decoder_f ASN_NGAP_EDT_Session_decode_xer; +xer_type_encoder_f ASN_NGAP_EDT_Session_encode_xer; +per_type_decoder_f ASN_NGAP_EDT_Session_decode_uper; +per_type_encoder_f ASN_NGAP_EDT_Session_encode_uper; +per_type_decoder_f ASN_NGAP_EDT_Session_decode_aper; +per_type_encoder_f ASN_NGAP_EDT_Session_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EDT_Session_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.c b/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.c new file mode 100644 index 0000000..9e6499d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EN-DCSONConfigurationTransfer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer = { + "EN-DCSONConfigurationTransfer", + "EN-DCSONConfigurationTransfer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.h b/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.h new file mode 100644 index 0000000..25f9138 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EN-DCSONConfigurationTransfer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EN_DCSONConfigurationTransfer_H_ +#define _ASN_NGAP_EN_DCSONConfigurationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EN-DCSONConfigurationTransfer */ +typedef OCTET_STRING_t ASN_NGAP_EN_DCSONConfigurationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer; +asn_struct_free_f ASN_NGAP_EN_DCSONConfigurationTransfer_free; +asn_struct_print_f ASN_NGAP_EN_DCSONConfigurationTransfer_print; +asn_constr_check_f ASN_NGAP_EN_DCSONConfigurationTransfer_constraint; +ber_type_decoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_decode_ber; +der_type_encoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_encode_der; +xer_type_decoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_decode_xer; +xer_type_encoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_encode_xer; +per_type_decoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_decode_uper; +per_type_encoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_encode_uper; +per_type_decoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_decode_aper; +per_type_encoder_f ASN_NGAP_EN_DCSONConfigurationTransfer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EN_DCSONConfigurationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ENB-ID.c b/src/asn/ngap/ASN_NGAP_ENB-ID.c new file mode 100644 index 0000000..3481f34 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ENB-ID.c @@ -0,0 +1,237 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ENB-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_macroENB_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_ASN_NGAP_homeENB_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_ASN_NGAP_short_macroENB_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_ASN_NGAP_long_macroENB_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_ASN_NGAP_macroENB_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_ASN_NGAP_homeENB_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_ASN_NGAP_short_macroENB_ID_constr_4 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_ASN_NGAP_long_macroENB_ID_constr_5 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_ASN_NGAP_ENB_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID, choice.macroENB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_macroENB_ID_constr_2, memb_ASN_NGAP_macroENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "macroENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID, choice.homeENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_homeENB_ID_constr_3, memb_ASN_NGAP_homeENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "homeENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID, choice.short_macroENB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_short_macroENB_ID_constr_4, memb_ASN_NGAP_short_macroENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "short-macroENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID, choice.long_macroENB_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_long_macroENB_ID_constr_5, memb_ASN_NGAP_long_macroENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "long-macroENB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ENB_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* homeENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* short-macroENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* long-macroENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ENB_ID_specs_1 = { + sizeof(struct ASN_NGAP_ENB_ID), + offsetof(struct ASN_NGAP_ENB_ID, _asn_ctx), + offsetof(struct ASN_NGAP_ENB_ID, present), + sizeof(((struct ASN_NGAP_ENB_ID *)0)->present), + asn_MAP_ASN_NGAP_ENB_ID_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_ENB_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ENB_ID_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_ENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ENB-ID.h b/src/asn/ngap/ASN_NGAP_ENB-ID.h new file mode 100644 index 0000000..e38b389 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ENB-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ENB_ID_H_ +#define _ASN_NGAP_ENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ENB_ID_PR { + ASN_NGAP_ENB_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_ENB_ID_PR_macroENB_ID, + ASN_NGAP_ENB_ID_PR_homeENB_ID, + ASN_NGAP_ENB_ID_PR_short_macroENB_ID, + ASN_NGAP_ENB_ID_PR_long_macroENB_ID, + ASN_NGAP_ENB_ID_PR_choice_Extensions +} ASN_NGAP_ENB_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ENB-ID */ +typedef struct ASN_NGAP_ENB_ID { + ASN_NGAP_ENB_ID_PR present; + union ASN_NGAP_ENB_ID_u { + BIT_STRING_t macroENB_ID; + BIT_STRING_t homeENB_ID; + BIT_STRING_t short_macroENB_ID; + BIT_STRING_t long_macroENB_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ENB_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ENB_ID_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ENB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ENB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EPS-TAC.c b/src/asn/ngap/ASN_NGAP_EPS-TAC.c new file mode 100644 index 0000000..516ceca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EPS-TAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EPS-TAC.h" + +int +ASN_NGAP_EPS_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_ASN_NGAP_EPS_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_ASN_NGAP_EPS_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAC = { + "EPS-TAC", + "EPS-TAC", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_EPS_TAC_tags_1, + sizeof(asn_DEF_ASN_NGAP_EPS_TAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EPS_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EPS_TAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EPS_TAC_constr_1, ASN_NGAP_EPS_TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EPS-TAC.h b/src/asn/ngap/ASN_NGAP_EPS-TAC.h new file mode 100644 index 0000000..95660e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EPS-TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EPS_TAC_H_ +#define _ASN_NGAP_EPS_TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EPS-TAC */ +typedef OCTET_STRING_t ASN_NGAP_EPS_TAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EPS_TAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAC; +asn_struct_free_f ASN_NGAP_EPS_TAC_free; +asn_struct_print_f ASN_NGAP_EPS_TAC_print; +asn_constr_check_f ASN_NGAP_EPS_TAC_constraint; +ber_type_decoder_f ASN_NGAP_EPS_TAC_decode_ber; +der_type_encoder_f ASN_NGAP_EPS_TAC_encode_der; +xer_type_decoder_f ASN_NGAP_EPS_TAC_decode_xer; +xer_type_encoder_f ASN_NGAP_EPS_TAC_encode_xer; +per_type_decoder_f ASN_NGAP_EPS_TAC_decode_uper; +per_type_encoder_f ASN_NGAP_EPS_TAC_encode_uper; +per_type_decoder_f ASN_NGAP_EPS_TAC_decode_aper; +per_type_encoder_f ASN_NGAP_EPS_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EPS_TAC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EPS-TAI.c b/src/asn/ngap/ASN_NGAP_EPS-TAI.c new file mode 100644 index 0000000..8653381 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EPS-TAI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EPS-TAI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EPS_TAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EPS_TAI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EPS_TAI, ePS_TAC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EPS_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ePS-TAC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EPS_TAI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EPS_TAI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EPS_TAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EPS_TAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ePS-TAC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EPS_TAI_specs_1 = { + sizeof(struct ASN_NGAP_EPS_TAI), + offsetof(struct ASN_NGAP_EPS_TAI, _asn_ctx), + asn_MAP_ASN_NGAP_EPS_TAI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EPS_TAI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAI = { + "EPS-TAI", + "EPS-TAI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EPS_TAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_EPS_TAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EPS_TAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EPS_TAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EPS_TAI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EPS_TAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EPS-TAI.h b/src/asn/ngap/ASN_NGAP_EPS-TAI.h new file mode 100644 index 0000000..7d0e9b3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EPS-TAI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EPS_TAI_H_ +#define _ASN_NGAP_EPS_TAI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_EPS-TAC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EPS-TAI */ +typedef struct ASN_NGAP_EPS_TAI { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_EPS_TAC_t ePS_TAC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EPS_TAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EPS_TAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EPS_TAI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EPS_TAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGI.c b/src/asn/ngap/ASN_NGAP_EUTRA-CGI.c new file mode 100644 index 0000000..3b2d69b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-CGI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_CGI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_CGI, eUTRACellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRACellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRACellIdentity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRA_CGI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRA_CGI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRA_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRACellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGI_specs_1 = { + sizeof(struct ASN_NGAP_EUTRA_CGI), + offsetof(struct ASN_NGAP_EUTRA_CGI, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRA_CGI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRA_CGI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGI = { + "EUTRA-CGI", + "EUTRA-CGI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRA_CGI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRA_CGI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGI.h b/src/asn/ngap/ASN_NGAP_EUTRA-CGI.h new file mode 100644 index 0000000..6455893 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_CGI_H_ +#define _ASN_NGAP_EUTRA_CGI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_EUTRACellIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRA-CGI */ +typedef struct ASN_NGAP_EUTRA_CGI { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_EUTRACellIdentity_t eUTRACellIdentity; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_CGI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.c b/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.c new file mode 100644 index 0000000..4027bf6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-CGIList.h" + +#include "ASN_NGAP_EUTRA-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_CGIList_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_ASN_NGAP_EUTRA_CGIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGIList_specs_1 = { + sizeof(struct ASN_NGAP_EUTRA_CGIList), + offsetof(struct ASN_NGAP_EUTRA_CGIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGIList = { + "EUTRA-CGIList", + "EUTRA-CGIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRA_CGIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EUTRA_CGIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EUTRA_CGIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.h b/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.h new file mode 100644 index 0000000..c8b115c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_CGIList_H_ +#define _ASN_NGAP_EUTRA_CGIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGI; + +/* ASN_NGAP_EUTRA-CGIList */ +typedef struct ASN_NGAP_EUTRA_CGIList { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRA_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_CGIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_CGIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_CGIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.c b/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.c new file mode 100644 index 0000000..0cf283f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-CGIListForWarning.h" + +#include "ASN_NGAP_EUTRA-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_CGIListForWarning_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_ASN_NGAP_EUTRA_CGIListForWarning_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGIListForWarning_specs_1 = { + sizeof(struct ASN_NGAP_EUTRA_CGIListForWarning), + offsetof(struct ASN_NGAP_EUTRA_CGIListForWarning, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning = { + "EUTRA-CGIListForWarning", + "EUTRA-CGIListForWarning", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRA_CGIListForWarning_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EUTRA_CGIListForWarning_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EUTRA_CGIListForWarning_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.h b/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.h new file mode 100644 index 0000000..5aeb67e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-CGIListForWarning.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_CGIListForWarning_H_ +#define _ASN_NGAP_EUTRA_CGIListForWarning_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGI; + +/* ASN_NGAP_EUTRA-CGIListForWarning */ +typedef struct ASN_NGAP_EUTRA_CGIListForWarning { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRA_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_CGIListForWarning_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGIListForWarning_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGIListForWarning_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_CGIListForWarning_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_CGIListForWarning_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c new file mode 100644 index 0000000..8ab4428 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-Paging-Time-Window.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_Paging_Time_Window_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_ASN_NGAP_EUTRA_Paging_Time_Window_value2enum_1[] = { + { 0, 2, "s1" }, + { 1, 2, "s2" }, + { 2, 2, "s3" }, + { 3, 2, "s4" }, + { 4, 2, "s5" }, + { 5, 2, "s6" }, + { 6, 2, "s7" }, + { 7, 2, "s8" }, + { 8, 2, "s9" }, + { 9, 3, "s10" }, + { 10, 3, "s11" }, + { 11, 3, "s12" }, + { 12, 3, "s13" }, + { 13, 3, "s14" }, + { 14, 3, "s15" }, + { 15, 3, "s16" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EUTRA_Paging_Time_Window_enum2value_1[] = { + 0, /* s1(0) */ + 9, /* s10(9) */ + 10, /* s11(10) */ + 11, /* s12(11) */ + 12, /* s13(12) */ + 13, /* s14(13) */ + 14, /* s15(14) */ + 15, /* s16(15) */ + 1, /* s2(1) */ + 2, /* s3(2) */ + 3, /* s4(3) */ + 4, /* s5(4) */ + 5, /* s6(5) */ + 6, /* s7(6) */ + 7, /* s8(7) */ + 8 /* s9(8) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EUTRA_Paging_Time_Window_specs_1 = { + asn_MAP_ASN_NGAP_EUTRA_Paging_Time_Window_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EUTRA_Paging_Time_Window_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_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window = { + "EUTRA-Paging-Time-Window", + "EUTRA-Paging-Time-Window", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRA_Paging_Time_Window_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EUTRA_Paging_Time_Window_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h new file mode 100644 index 0000000..edd2697 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-Time-Window.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_Paging_Time_Window_H_ +#define _ASN_NGAP_EUTRA_Paging_Time_Window_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EUTRA_Paging_Time_Window { + ASN_NGAP_EUTRA_Paging_Time_Window_s1 = 0, + ASN_NGAP_EUTRA_Paging_Time_Window_s2 = 1, + ASN_NGAP_EUTRA_Paging_Time_Window_s3 = 2, + ASN_NGAP_EUTRA_Paging_Time_Window_s4 = 3, + ASN_NGAP_EUTRA_Paging_Time_Window_s5 = 4, + ASN_NGAP_EUTRA_Paging_Time_Window_s6 = 5, + ASN_NGAP_EUTRA_Paging_Time_Window_s7 = 6, + ASN_NGAP_EUTRA_Paging_Time_Window_s8 = 7, + ASN_NGAP_EUTRA_Paging_Time_Window_s9 = 8, + ASN_NGAP_EUTRA_Paging_Time_Window_s10 = 9, + ASN_NGAP_EUTRA_Paging_Time_Window_s11 = 10, + ASN_NGAP_EUTRA_Paging_Time_Window_s12 = 11, + ASN_NGAP_EUTRA_Paging_Time_Window_s13 = 12, + ASN_NGAP_EUTRA_Paging_Time_Window_s14 = 13, + ASN_NGAP_EUTRA_Paging_Time_Window_s15 = 14, + ASN_NGAP_EUTRA_Paging_Time_Window_s16 = 15 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EUTRA_Paging_Time_Window; + +/* ASN_NGAP_EUTRA-Paging-Time-Window */ +typedef long ASN_NGAP_EUTRA_Paging_Time_Window_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_Paging_Time_Window_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EUTRA_Paging_Time_Window_specs_1; +asn_struct_free_f ASN_NGAP_EUTRA_Paging_Time_Window_free; +asn_struct_print_f ASN_NGAP_EUTRA_Paging_Time_Window_print; +asn_constr_check_f ASN_NGAP_EUTRA_Paging_Time_Window_constraint; +ber_type_decoder_f ASN_NGAP_EUTRA_Paging_Time_Window_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRA_Paging_Time_Window_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRA_Paging_Time_Window_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRA_Paging_Time_Window_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRA_Paging_Time_Window_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRA_Paging_Time_Window_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRA_Paging_Time_Window_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRA_Paging_Time_Window_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_Paging_Time_Window_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c new file mode 100644 index 0000000..0d82dc4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_value2enum_1[] = { + { 0, 6, "hfhalf" }, + { 1, 3, "hf1" }, + { 2, 3, "hf2" }, + { 3, 3, "hf4" }, + { 4, 3, "hf6" }, + { 5, 3, "hf8" }, + { 6, 4, "hf10" }, + { 7, 4, "hf12" }, + { 8, 4, "hf14" }, + { 9, 4, "hf16" }, + { 10, 4, "hf32" }, + { 11, 4, "hf64" }, + { 12, 5, "hf128" }, + { 13, 5, "hf256" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_enum2value_1[] = { + 1, /* hf1(1) */ + 6, /* hf10(6) */ + 7, /* hf12(7) */ + 12, /* hf128(12) */ + 8, /* hf14(8) */ + 9, /* hf16(9) */ + 2, /* hf2(2) */ + 13, /* hf256(13) */ + 10, /* hf32(10) */ + 3, /* hf4(3) */ + 4, /* hf6(4) */ + 11, /* hf64(11) */ + 5, /* hf8(5) */ + 0 /* hfhalf(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_specs_1 = { + asn_MAP_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle = { + "EUTRA-Paging-eDRX-Cycle", + "EUTRA-Paging-eDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h new file mode 100644 index 0000000..0d64942 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_Paging_eDRX_Cycle_H_ +#define _ASN_NGAP_EUTRA_Paging_eDRX_Cycle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EUTRA_Paging_eDRX_Cycle { + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hfhalf = 0, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf1 = 1, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf2 = 2, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf4 = 3, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf6 = 4, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf8 = 5, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf10 = 6, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf12 = 7, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf14 = 8, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf16 = 9, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf32 = 10, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf64 = 11, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf128 = 12, + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_hf256 = 13 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EUTRA_Paging_eDRX_Cycle; + +/* ASN_NGAP_EUTRA-Paging-eDRX-Cycle */ +typedef long ASN_NGAP_EUTRA_Paging_eDRX_Cycle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EUTRA_Paging_eDRX_Cycle_specs_1; +asn_struct_free_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_free; +asn_struct_print_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_print; +asn_constr_check_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_constraint; +ber_type_decoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRA_Paging_eDRX_Cycle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_Paging_eDRX_Cycle_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.c b/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.c new file mode 100644 index 0000000..3ca8358 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRA-PagingeDRXInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation, eUTRA_paging_eDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_Paging_eDRX_Cycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-paging-eDRX-Cycle" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation, eUTRA_paging_Time_Window), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_Paging_Time_Window, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-paging-Time-Window" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-paging-eDRX-Cycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRA-paging-Time-Window */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_specs_1 = { + sizeof(struct ASN_NGAP_EUTRA_PagingeDRXInformation), + offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation = { + "EUTRA-PagingeDRXInformation", + "EUTRA-PagingeDRXInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.h b/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.h new file mode 100644 index 0000000..7428046 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRA-PagingeDRXInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRA_PagingeDRXInformation_H_ +#define _ASN_NGAP_EUTRA_PagingeDRXInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-Paging-eDRX-Cycle.h" +#include "ASN_NGAP_EUTRA-Paging-Time-Window.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRA-PagingeDRXInformation */ +typedef struct ASN_NGAP_EUTRA_PagingeDRXInformation { + ASN_NGAP_EUTRA_Paging_eDRX_Cycle_t eUTRA_paging_eDRX_Cycle; + ASN_NGAP_EUTRA_Paging_Time_Window_t *eUTRA_paging_Time_Window; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_PagingeDRXInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRA_PagingeDRXInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.c b/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.c new file mode 100644 index 0000000..1715b5d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRACellIdentity.h" + +int +ASN_NGAP_EUTRACellIdentity_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_ASN_NGAP_EUTRACellIdentity_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_ASN_NGAP_EUTRACellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRACellIdentity = { + "EUTRACellIdentity", + "EUTRACellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRACellIdentity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRACellIdentity_constr_1, ASN_NGAP_EUTRACellIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.h b/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.h new file mode 100644 index 0000000..6d52425 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRACellIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRACellIdentity_H_ +#define _ASN_NGAP_EUTRACellIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EUTRACellIdentity */ +typedef BIT_STRING_t ASN_NGAP_EUTRACellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRACellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRACellIdentity; +asn_struct_free_f ASN_NGAP_EUTRACellIdentity_free; +asn_struct_print_f ASN_NGAP_EUTRACellIdentity_print; +asn_constr_check_f ASN_NGAP_EUTRACellIdentity_constraint; +ber_type_decoder_f ASN_NGAP_EUTRACellIdentity_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRACellIdentity_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRACellIdentity_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRACellIdentity_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRACellIdentity_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRACellIdentity_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRACellIdentity_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRACellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRACellIdentity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.c b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.c new file mode 100644 index 0000000..2c78f2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-CellReportItem.h" + +#include "ASN_NGAP_EUTRAN-RadioResourceStatus.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, eCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, eUTRAN_CompositeAvailableCapacityGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-CompositeAvailableCapacityGroup" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, eUTRAN_NumberOfActiveUEs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-NumberOfActiveUEs" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, eUTRAN_NoofRRCConnections), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-NoofRRCConnections" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, eUTRAN_RadioResourceStatus), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-RadioResourceStatus" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eCGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRAN-CompositeAvailableCapacityGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eUTRAN-NumberOfActiveUEs */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eUTRAN-NoofRRCConnections */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eUTRAN-RadioResourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_CellReportItem), + offsetof(struct ASN_NGAP_EUTRAN_CellReportItem, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem = { + "EUTRAN-CellReportItem", + "EUTRAN-CellReportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.h b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.h new file mode 100644 index 0000000..5f0fb85 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportItem.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_CellReportItem_H_ +#define _ASN_NGAP_EUTRAN_CellReportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h" +#include "ASN_NGAP_EUTRAN-NumberOfActiveUEs.h" +#include "ASN_NGAP_NGRAN-NoofRRCConnections.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRAN_RadioResourceStatus; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-CellReportItem */ +typedef struct ASN_NGAP_EUTRAN_CellReportItem { + ASN_NGAP_EUTRA_CGI_t eCGI; + ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_t eUTRAN_CompositeAvailableCapacityGroup; + ASN_NGAP_EUTRAN_NumberOfActiveUEs_t *eUTRAN_NumberOfActiveUEs; /* OPTIONAL */ + ASN_NGAP_NGRAN_NoofRRCConnections_t *eUTRAN_NoofRRCConnections; /* OPTIONAL */ + struct ASN_NGAP_EUTRAN_RadioResourceStatus *eUTRAN_RadioResourceStatus; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellReportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_CellReportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.c b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.c new file mode 100644 index 0000000..bb8c8fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-CellReportList.h" + +#include "ASN_NGAP_EUTRAN-CellReportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAN_CellReportList_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_ASN_NGAP_EUTRAN_CellReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_CellReportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportList_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_CellReportList), + offsetof(struct ASN_NGAP_EUTRAN_CellReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportList = { + "EUTRAN-CellReportList", + "EUTRAN-CellReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRAN_CellReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EUTRAN_CellReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.h b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.h new file mode 100644 index 0000000..666c55a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_CellReportList_H_ +#define _ASN_NGAP_EUTRAN_CellReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRAN_CellReportItem; + +/* ASN_NGAP_EUTRAN-CellReportList */ +typedef struct ASN_NGAP_EUTRAN_CellReportList { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_CellReportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAN_CellReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_CellReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.c b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.c new file mode 100644 index 0000000..09aaadf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-CellToReportItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem, eCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eCGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_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_ASN_NGAP_EUTRAN_CellToReportItem_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_CellToReportItem), + offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem = { + "EUTRAN-CellToReportItem", + "EUTRAN-CellToReportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CellToReportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.h b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.h new file mode 100644 index 0000000..5c19255 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_CellToReportItem_H_ +#define _ASN_NGAP_EUTRAN_CellToReportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-CellToReportItem */ +typedef struct ASN_NGAP_EUTRAN_CellToReportItem { + ASN_NGAP_EUTRA_CGI_t eCGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellToReportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellToReportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_CellToReportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.c b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.c new file mode 100644 index 0000000..a666485 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-CellToReportList.h" + +#include "ASN_NGAP_EUTRAN-CellToReportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAN_CellToReportList_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_ASN_NGAP_EUTRAN_CellToReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellToReportList_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_CellToReportList), + offsetof(struct ASN_NGAP_EUTRAN_CellToReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportList = { + "EUTRAN-CellToReportList", + "EUTRAN-CellToReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRAN_CellToReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellToReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EUTRAN_CellToReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.h b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.h new file mode 100644 index 0000000..bb30477 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CellToReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_CellToReportList_H_ +#define _ASN_NGAP_EUTRAN_CellToReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EUTRAN_CellToReportItem; + +/* ASN_NGAP_EUTRAN-CellToReportList */ +typedef struct ASN_NGAP_EUTRAN_CellToReportList { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_CellToReportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellToReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellToReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellToReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAN_CellToReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_CellToReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.c b/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.c new file mode 100644 index 0000000..914fd60 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, dL_CompositeAvailableCapacity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompositeAvailableCapacity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-CompositeAvailableCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, uL_CompositeAvailableCapacity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompositeAvailableCapacity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-CompositeAvailableCapacity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup), + offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup = { + "EUTRAN-CompositeAvailableCapacityGroup", + "EUTRAN-CompositeAvailableCapacityGroup", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h b/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h new file mode 100644 index 0000000..53794af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_H_ +#define _ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CompositeAvailableCapacity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup */ +typedef struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup { + ASN_NGAP_CompositeAvailableCapacity_t dL_CompositeAvailableCapacity; + ASN_NGAP_CompositeAvailableCapacity_t uL_CompositeAvailableCapacity; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c b/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c new file mode 100644 index 0000000..fec62b9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-NumberOfActiveUEs.h" + +int +ASN_NGAP_EUTRAN_NumberOfActiveUEs_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 <= 16777215)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_EUTRAN_NumberOfActiveUEs_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 24, -1, 0, 16777215 } /* (0..16777215,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs = { + "EUTRAN-NumberOfActiveUEs", + "EUTRAN-NumberOfActiveUEs", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRAN_NumberOfActiveUEs_constr_1, ASN_NGAP_EUTRAN_NumberOfActiveUEs_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h b/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h new file mode 100644 index 0000000..a68ad87 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-NumberOfActiveUEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_NumberOfActiveUEs_H_ +#define _ASN_NGAP_EUTRAN_NumberOfActiveUEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EUTRAN-NumberOfActiveUEs */ +typedef long ASN_NGAP_EUTRAN_NumberOfActiveUEs_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAN_NumberOfActiveUEs_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_NumberOfActiveUEs; +asn_struct_free_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_free; +asn_struct_print_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_print; +asn_constr_check_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_constraint; +ber_type_decoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRAN_NumberOfActiveUEs_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_NumberOfActiveUEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.c b/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.c new file mode 100644 index 0000000..28ef874 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.c @@ -0,0 +1,373 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-RadioResourceStatus.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_dL_GBR_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_GBR_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_dL_non_GBR_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_non_GBR_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_dL_Total_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_Total_PRB_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_dL_scheduling_PDCCH_CCE_usage_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_scheduling_PDCCH_CCE_usage_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 <= 100)) { + /* Constraint 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_ASN_NGAP_dL_GBR_PRB_usage_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_GBR_PRB_usage_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_dL_non_GBR_PRB_usage_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_non_GBR_PRB_usage_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_dL_Total_PRB_usage_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_Total_PRB_usage_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_dL_scheduling_PDCCH_CCE_usage_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_scheduling_PDCCH_CCE_usage_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, dL_GBR_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_GBR_PRB_usage_constr_2, memb_ASN_NGAP_dL_GBR_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "dL-GBR-PRB-usage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, uL_GBR_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_GBR_PRB_usage_constr_3, memb_ASN_NGAP_uL_GBR_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "uL-GBR-PRB-usage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, dL_non_GBR_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_non_GBR_PRB_usage_constr_4, memb_ASN_NGAP_dL_non_GBR_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "dL-non-GBR-PRB-usage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, uL_non_GBR_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_non_GBR_PRB_usage_constr_5, memb_ASN_NGAP_uL_non_GBR_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "uL-non-GBR-PRB-usage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, dL_Total_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_Total_PRB_usage_constr_6, memb_ASN_NGAP_dL_Total_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "dL-Total-PRB-usage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, uL_Total_PRB_usage), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_Total_PRB_usage_constr_7, memb_ASN_NGAP_uL_Total_PRB_usage_constraint_1 }, + 0, 0, /* No default value */ + "uL-Total-PRB-usage" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, dL_scheduling_PDCCH_CCE_usage), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_scheduling_PDCCH_CCE_usage_constr_8, memb_ASN_NGAP_dL_scheduling_PDCCH_CCE_usage_constraint_1 }, + 0, 0, /* No default value */ + "dL-scheduling-PDCCH-CCE-usage" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, uL_scheduling_PDCCH_CCE_usage), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_scheduling_PDCCH_CCE_usage_constr_9, memb_ASN_NGAP_uL_scheduling_PDCCH_CCE_usage_constraint_1 }, + 0, 0, /* No default value */ + "uL-scheduling-PDCCH-CCE-usage" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_RadioResourceStatus_oms_1[] = { 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_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 }, /* dL-scheduling-PDCCH-CCE-usage */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* uL-scheduling-PDCCH-CCE-usage */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_RadioResourceStatus), + offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_RadioResourceStatus_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_RadioResourceStatus_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus = { + "EUTRAN-RadioResourceStatus", + "EUTRAN-RadioResourceStatus", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_1, + 9, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.h b/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.h new file mode 100644 index 0000000..f4749a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-RadioResourceStatus.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_RadioResourceStatus_H_ +#define _ASN_NGAP_EUTRAN_RadioResourceStatus_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-RadioResourceStatus */ +typedef struct ASN_NGAP_EUTRAN_RadioResourceStatus { + long dL_GBR_PRB_usage; + long uL_GBR_PRB_usage; + long dL_non_GBR_PRB_usage; + long uL_non_GBR_PRB_usage; + long dL_Total_PRB_usage; + long uL_Total_PRB_usage; + long *dL_scheduling_PDCCH_CCE_usage; /* OPTIONAL */ + long *uL_scheduling_PDCCH_CCE_usage; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_RadioResourceStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_RadioResourceStatus_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c new file mode 100644 index 0000000..e053704 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-ReportingStatusIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs, eUTRAN_CellReportList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_CellReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-CellReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRAN-CellReportList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs), + offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs = { + "EUTRAN-ReportingStatusIEs", + "EUTRAN-ReportingStatusIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h new file mode 100644 index 0000000..2f37724 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingStatusIEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_ReportingStatusIEs_H_ +#define _ASN_NGAP_EUTRAN_ReportingStatusIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRAN-CellReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-ReportingStatusIEs */ +typedef struct ASN_NGAP_EUTRAN_ReportingStatusIEs { + ASN_NGAP_EUTRAN_CellReportList_t eUTRAN_CellReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_ReportingStatusIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_ReportingStatusIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c new file mode 100644 index 0000000..1fa3a2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAN-ReportingSystemIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs, eUTRAN_CellToReportList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_CellToReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-CellToReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRAN-CellToReportList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_specs_1 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs), + offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs = { + "EUTRAN-ReportingSystemIEs", + "EUTRAN-ReportingSystemIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h new file mode 100644 index 0000000..77691c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAN-ReportingSystemIEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAN_ReportingSystemIEs_H_ +#define _ASN_NGAP_EUTRAN_ReportingSystemIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRAN-CellToReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EUTRAN-ReportingSystemIEs */ +typedef struct ASN_NGAP_EUTRAN_ReportingSystemIEs { + ASN_NGAP_EUTRAN_CellToReportList_t eUTRAN_CellToReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_ReportingSystemIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAN_ReportingSystemIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c b/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c new file mode 100644 index 0000000..60070ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAencryptionAlgorithms.h" + +int +ASN_NGAP_EUTRAencryptionAlgorithms_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_ASN_NGAP_EUTRAencryptionAlgorithms_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_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms = { + "EUTRAencryptionAlgorithms", + "EUTRAencryptionAlgorithms", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRAencryptionAlgorithms_constr_1, ASN_NGAP_EUTRAencryptionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h b/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h new file mode 100644 index 0000000..c22bc9d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAencryptionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAencryptionAlgorithms_H_ +#define _ASN_NGAP_EUTRAencryptionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EUTRAencryptionAlgorithms */ +typedef BIT_STRING_t ASN_NGAP_EUTRAencryptionAlgorithms_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAencryptionAlgorithms_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms; +asn_struct_free_f ASN_NGAP_EUTRAencryptionAlgorithms_free; +asn_struct_print_f ASN_NGAP_EUTRAencryptionAlgorithms_print; +asn_constr_check_f ASN_NGAP_EUTRAencryptionAlgorithms_constraint; +ber_type_decoder_f ASN_NGAP_EUTRAencryptionAlgorithms_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRAencryptionAlgorithms_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRAencryptionAlgorithms_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRAencryptionAlgorithms_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRAencryptionAlgorithms_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRAencryptionAlgorithms_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRAencryptionAlgorithms_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRAencryptionAlgorithms_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAencryptionAlgorithms_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.c b/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.c new file mode 100644 index 0000000..8c913e6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h" + +int +ASN_NGAP_EUTRAintegrityProtectionAlgorithms_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_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_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_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms = { + "EUTRAintegrityProtectionAlgorithms", + "EUTRAintegrityProtectionAlgorithms", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1, + sizeof(asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_constr_1, ASN_NGAP_EUTRAintegrityProtectionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h b/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h new file mode 100644 index 0000000..674197b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EUTRAintegrityProtectionAlgorithms_H_ +#define _ASN_NGAP_EUTRAintegrityProtectionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EUTRAintegrityProtectionAlgorithms */ +typedef BIT_STRING_t ASN_NGAP_EUTRAintegrityProtectionAlgorithms_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EUTRAintegrityProtectionAlgorithms_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms; +asn_struct_free_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_free; +asn_struct_print_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_print; +asn_constr_check_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_constraint; +ber_type_decoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_decode_ber; +der_type_encoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_encode_der; +xer_type_decoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_decode_xer; +xer_type_encoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_encode_xer; +per_type_decoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_decode_uper; +per_type_encoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_encode_uper; +per_type_decoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_decode_aper; +per_type_encoder_f ASN_NGAP_EUTRAintegrityProtectionAlgorithms_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EUTRAintegrityProtectionAlgorithms_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EarlyMeasurement.c b/src/asn/ngap/ASN_NGAP_EarlyMeasurement.c new file mode 100644 index 0000000..b9c7a93 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EarlyMeasurement.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EarlyMeasurement.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EarlyMeasurement_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_ASN_NGAP_EarlyMeasurement_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EarlyMeasurement_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EarlyMeasurement_specs_1 = { + asn_MAP_ASN_NGAP_EarlyMeasurement_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EarlyMeasurement_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_ASN_NGAP_EarlyMeasurement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyMeasurement = { + "EarlyMeasurement", + "EarlyMeasurement", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1, + sizeof(asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EarlyMeasurement_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EarlyMeasurement_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EarlyMeasurement_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EarlyMeasurement.h b/src/asn/ngap/ASN_NGAP_EarlyMeasurement.h new file mode 100644 index 0000000..e7810c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EarlyMeasurement.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EarlyMeasurement_H_ +#define _ASN_NGAP_EarlyMeasurement_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EarlyMeasurement { + ASN_NGAP_EarlyMeasurement_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EarlyMeasurement; + +/* ASN_NGAP_EarlyMeasurement */ +typedef long ASN_NGAP_EarlyMeasurement_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EarlyMeasurement_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyMeasurement; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EarlyMeasurement_specs_1; +asn_struct_free_f ASN_NGAP_EarlyMeasurement_free; +asn_struct_print_f ASN_NGAP_EarlyMeasurement_print; +asn_constr_check_f ASN_NGAP_EarlyMeasurement_constraint; +ber_type_decoder_f ASN_NGAP_EarlyMeasurement_decode_ber; +der_type_encoder_f ASN_NGAP_EarlyMeasurement_encode_der; +xer_type_decoder_f ASN_NGAP_EarlyMeasurement_decode_xer; +xer_type_encoder_f ASN_NGAP_EarlyMeasurement_encode_xer; +per_type_decoder_f ASN_NGAP_EarlyMeasurement_decode_uper; +per_type_encoder_f ASN_NGAP_EarlyMeasurement_encode_uper; +per_type_decoder_f ASN_NGAP_EarlyMeasurement_decode_aper; +per_type_encoder_f ASN_NGAP_EarlyMeasurement_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EarlyMeasurement_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.c new file mode 100644 index 0000000..521dbdc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer, procedureStage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProcedureStageChoice, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "procedureStage" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureStage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_specs_1 = { + sizeof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer), + offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer, _asn_ctx), + asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer = { + "EarlyStatusTransfer-TransparentContainer", + "EarlyStatusTransfer-TransparentContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h new file mode 100644 index 0000000..20fa261 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EarlyStatusTransfer_TransparentContainer_H_ +#define _ASN_NGAP_EarlyStatusTransfer_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProcedureStageChoice.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EarlyStatusTransfer-TransparentContainer */ +typedef struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer { + ASN_NGAP_ProcedureStageChoice_t procedureStage; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EarlyStatusTransfer_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EarlyStatusTransfer_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaID.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaID.c new file mode 100644 index 0000000..a90aff6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaID.h" + +int +ASN_NGAP_EmergencyAreaID_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_ASN_NGAP_EmergencyAreaID_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_ASN_NGAP_EmergencyAreaID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaID = { + "EmergencyAreaID", + "EmergencyAreaID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaID_constr_1, ASN_NGAP_EmergencyAreaID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaID.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaID.h new file mode 100644 index 0000000..545f2b3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaID_H_ +#define _ASN_NGAP_EmergencyAreaID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EmergencyAreaID */ +typedef OCTET_STRING_t ASN_NGAP_EmergencyAreaID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaID; +asn_struct_free_f ASN_NGAP_EmergencyAreaID_free; +asn_struct_print_f ASN_NGAP_EmergencyAreaID_print; +asn_constr_check_f ASN_NGAP_EmergencyAreaID_constraint; +ber_type_decoder_f ASN_NGAP_EmergencyAreaID_decode_ber; +der_type_encoder_f ASN_NGAP_EmergencyAreaID_encode_der; +xer_type_decoder_f ASN_NGAP_EmergencyAreaID_decode_xer; +xer_type_encoder_f ASN_NGAP_EmergencyAreaID_encode_xer; +per_type_decoder_f ASN_NGAP_EmergencyAreaID_decode_uper; +per_type_encoder_f ASN_NGAP_EmergencyAreaID_encode_uper; +per_type_decoder_f ASN_NGAP_EmergencyAreaID_decode_aper; +per_type_encoder_f ASN_NGAP_EmergencyAreaID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c new file mode 100644 index 0000000..03493eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item, emergencyAreaID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item, completedCellsInEAI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "completedCellsInEAI-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emergencyAreaID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* completedCellsInEAI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item = { + "EmergencyAreaIDBroadcastEUTRA-Item", + "EmergencyAreaIDBroadcastEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h new file mode 100644 index 0000000..57d7f81 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_H_ +#define _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include "ASN_NGAP_CompletedCellsInEAI-EUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item */ +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item { + ASN_NGAP_EmergencyAreaID_t emergencyAreaID; + ASN_NGAP_CompletedCellsInEAI_EUTRA_t completedCellsInEAI_EUTRA; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c new file mode 100644 index 0000000..debb839 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h" + +#include "ASN_NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_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_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA = { + "EmergencyAreaIDBroadcastEUTRA", + "EmergencyAreaIDBroadcastEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h new file mode 100644 index 0000000..82049e4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_H_ +#define _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item; + +/* ASN_NGAP_EmergencyAreaIDBroadcastEUTRA */ +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c new file mode 100644 index 0000000..96c06a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item, emergencyAreaID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item, completedCellsInEAI_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "completedCellsInEAI-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emergencyAreaID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* completedCellsInEAI-NR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item = { + "EmergencyAreaIDBroadcastNR-Item", + "EmergencyAreaIDBroadcastNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h new file mode 100644 index 0000000..1a94207 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_H_ +#define _ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include "ASN_NGAP_CompletedCellsInEAI-NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EmergencyAreaIDBroadcastNR-Item */ +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item { + ASN_NGAP_EmergencyAreaID_t emergencyAreaID; + ASN_NGAP_CompletedCellsInEAI_NR_t completedCellsInEAI_NR; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.c new file mode 100644 index 0000000..e423078 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDBroadcastNR.h" + +#include "ASN_NGAP_EmergencyAreaIDBroadcastNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastNR_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_ASN_NGAP_EmergencyAreaIDBroadcastNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR = { + "EmergencyAreaIDBroadcastNR", + "EmergencyAreaIDBroadcastNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.h new file mode 100644 index 0000000..7fcd58c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDBroadcastNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDBroadcastNR_H_ +#define _ASN_NGAP_EmergencyAreaIDBroadcastNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item; + +/* ASN_NGAP_EmergencyAreaIDBroadcastNR */ +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastNR { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDBroadcastNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDBroadcastNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.c new file mode 100644 index 0000000..4fe6afc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item, emergencyAreaID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item, cancelledCellsInEAI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cancelledCellsInEAI-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emergencyAreaID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cancelledCellsInEAI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item = { + "EmergencyAreaIDCancelledEUTRA-Item", + "EmergencyAreaIDCancelledEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h new file mode 100644 index 0000000..facf183 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_H_ +#define _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include "ASN_NGAP_CancelledCellsInEAI-EUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item */ +typedef struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item { + ASN_NGAP_EmergencyAreaID_t emergencyAreaID; + ASN_NGAP_CancelledCellsInEAI_EUTRA_t cancelledCellsInEAI_EUTRA; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c new file mode 100644 index 0000000..fb2a8f4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h" + +#include "ASN_NGAP_EmergencyAreaIDCancelledEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_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_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA = { + "EmergencyAreaIDCancelledEUTRA", + "EmergencyAreaIDCancelledEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h new file mode 100644 index 0000000..4c66ff7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_H_ +#define _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item; + +/* ASN_NGAP_EmergencyAreaIDCancelledEUTRA */ +typedef struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDCancelledEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c new file mode 100644 index 0000000..2d8c360 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item, emergencyAreaID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item, cancelledCellsInEAI_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cancelledCellsInEAI-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emergencyAreaID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cancelledCellsInEAI-NR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item = { + "EmergencyAreaIDCancelledNR-Item", + "EmergencyAreaIDCancelledNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h new file mode 100644 index 0000000..f8e14b3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDCancelledNR_Item_H_ +#define _ASN_NGAP_EmergencyAreaIDCancelledNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include "ASN_NGAP_CancelledCellsInEAI-NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EmergencyAreaIDCancelledNR-Item */ +typedef struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item { + ASN_NGAP_EmergencyAreaID_t emergencyAreaID; + ASN_NGAP_CancelledCellsInEAI_NR_t cancelledCellsInEAI_NR; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDCancelledNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.c new file mode 100644 index 0000000..2fdc671 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDCancelledNR.h" + +#include "ASN_NGAP_EmergencyAreaIDCancelledNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledNR_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_ASN_NGAP_EmergencyAreaIDCancelledNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledNR), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR = { + "EmergencyAreaIDCancelledNR", + "EmergencyAreaIDCancelledNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.h new file mode 100644 index 0000000..2eb9c19 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDCancelledNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDCancelledNR_H_ +#define _ASN_NGAP_EmergencyAreaIDCancelledNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item; + +/* ASN_NGAP_EmergencyAreaIDCancelledNR */ +typedef struct ASN_NGAP_EmergencyAreaIDCancelledNR { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDCancelledNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDCancelledNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.c new file mode 100644 index 0000000..6935d6b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDList_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_ASN_NGAP_EmergencyAreaIDList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDList_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDList), + offsetof(struct ASN_NGAP_EmergencyAreaIDList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDList = { + "EmergencyAreaIDList", + "EmergencyAreaIDList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.h new file mode 100644 index 0000000..a2d1e48 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDList_H_ +#define _ASN_NGAP_EmergencyAreaIDList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EmergencyAreaIDList */ +typedef struct ASN_NGAP_EmergencyAreaIDList { + A_SEQUENCE_OF(ASN_NGAP_EmergencyAreaID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.c b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.c new file mode 100644 index 0000000..aa8103f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyAreaIDListForRestart.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDListForRestart_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_ASN_NGAP_EmergencyAreaIDListForRestart_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDListForRestart_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDListForRestart), + offsetof(struct ASN_NGAP_EmergencyAreaIDListForRestart, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart = { + "EmergencyAreaIDListForRestart", + "EmergencyAreaIDListForRestart", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyAreaIDListForRestart_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDListForRestart_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDListForRestart_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.h b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.h new file mode 100644 index 0000000..4423335 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyAreaIDListForRestart.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyAreaIDListForRestart_H_ +#define _ASN_NGAP_EmergencyAreaIDListForRestart_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyAreaID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EmergencyAreaIDListForRestart */ +typedef struct ASN_NGAP_EmergencyAreaIDListForRestart { + A_SEQUENCE_OF(ASN_NGAP_EmergencyAreaID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDListForRestart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDListForRestart_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDListForRestart_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyAreaIDListForRestart_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyAreaIDListForRestart_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.c b/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.c new file mode 100644 index 0000000..22a6318 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyFallbackIndicator.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator, emergencyFallbackRequestIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyFallbackRequestIndicator" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator, emergencyServiceTargetCN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyServiceTargetCN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyServiceTargetCN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* emergencyFallbackRequestIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* emergencyServiceTargetCN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_specs_1 = { + sizeof(struct ASN_NGAP_EmergencyFallbackIndicator), + offsetof(struct ASN_NGAP_EmergencyFallbackIndicator, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator = { + "EmergencyFallbackIndicator", + "EmergencyFallbackIndicator", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.h b/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.h new file mode 100644 index 0000000..c9d3b6d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyFallbackIndicator.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyFallbackIndicator_H_ +#define _ASN_NGAP_EmergencyFallbackIndicator_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EmergencyFallbackRequestIndicator.h" +#include "ASN_NGAP_EmergencyServiceTargetCN.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EmergencyFallbackIndicator */ +typedef struct ASN_NGAP_EmergencyFallbackIndicator { + ASN_NGAP_EmergencyFallbackRequestIndicator_t emergencyFallbackRequestIndicator; + ASN_NGAP_EmergencyServiceTargetCN_t *emergencyServiceTargetCN; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyFallbackIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyFallbackIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.c b/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.c new file mode 100644 index 0000000..5b49018 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyFallbackRequestIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyFallbackRequestIndicator_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_ASN_NGAP_EmergencyFallbackRequestIndicator_value2enum_1[] = { + { 0, 28, "emergency-fallback-requested" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EmergencyFallbackRequestIndicator_enum2value_1[] = { + 0 /* emergency-fallback-requested(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackRequestIndicator_specs_1 = { + asn_MAP_ASN_NGAP_EmergencyFallbackRequestIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EmergencyFallbackRequestIndicator_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_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator = { + "EmergencyFallbackRequestIndicator", + "EmergencyFallbackRequestIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyFallbackRequestIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EmergencyFallbackRequestIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.h b/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.h new file mode 100644 index 0000000..18242e5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyFallbackRequestIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyFallbackRequestIndicator_H_ +#define _ASN_NGAP_EmergencyFallbackRequestIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EmergencyFallbackRequestIndicator { + ASN_NGAP_EmergencyFallbackRequestIndicator_emergency_fallback_requested = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EmergencyFallbackRequestIndicator; + +/* ASN_NGAP_EmergencyFallbackRequestIndicator */ +typedef long ASN_NGAP_EmergencyFallbackRequestIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyFallbackRequestIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackRequestIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackRequestIndicator_specs_1; +asn_struct_free_f ASN_NGAP_EmergencyFallbackRequestIndicator_free; +asn_struct_print_f ASN_NGAP_EmergencyFallbackRequestIndicator_print; +asn_constr_check_f ASN_NGAP_EmergencyFallbackRequestIndicator_constraint; +ber_type_decoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_EmergencyFallbackRequestIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyFallbackRequestIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.c b/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.c new file mode 100644 index 0000000..248d862 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EmergencyServiceTargetCN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyServiceTargetCN_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_ASN_NGAP_EmergencyServiceTargetCN_value2enum_1[] = { + { 0, 6, "fiveGC" }, + { 1, 3, "epc" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EmergencyServiceTargetCN_enum2value_1[] = { + 1, /* epc(1) */ + 0 /* fiveGC(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EmergencyServiceTargetCN_specs_1 = { + asn_MAP_ASN_NGAP_EmergencyServiceTargetCN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EmergencyServiceTargetCN_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_ASN_NGAP_EmergencyServiceTargetCN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyServiceTargetCN = { + "EmergencyServiceTargetCN", + "EmergencyServiceTargetCN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1, + sizeof(asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EmergencyServiceTargetCN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EmergencyServiceTargetCN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EmergencyServiceTargetCN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.h b/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.h new file mode 100644 index 0000000..b30645a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EmergencyServiceTargetCN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EmergencyServiceTargetCN_H_ +#define _ASN_NGAP_EmergencyServiceTargetCN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EmergencyServiceTargetCN { + ASN_NGAP_EmergencyServiceTargetCN_fiveGC = 0, + ASN_NGAP_EmergencyServiceTargetCN_epc = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EmergencyServiceTargetCN; + +/* ASN_NGAP_EmergencyServiceTargetCN */ +typedef long ASN_NGAP_EmergencyServiceTargetCN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EmergencyServiceTargetCN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyServiceTargetCN; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EmergencyServiceTargetCN_specs_1; +asn_struct_free_f ASN_NGAP_EmergencyServiceTargetCN_free; +asn_struct_print_f ASN_NGAP_EmergencyServiceTargetCN_print; +asn_constr_check_f ASN_NGAP_EmergencyServiceTargetCN_constraint; +ber_type_decoder_f ASN_NGAP_EmergencyServiceTargetCN_decode_ber; +der_type_encoder_f ASN_NGAP_EmergencyServiceTargetCN_encode_der; +xer_type_decoder_f ASN_NGAP_EmergencyServiceTargetCN_decode_xer; +xer_type_encoder_f ASN_NGAP_EmergencyServiceTargetCN_encode_xer; +per_type_decoder_f ASN_NGAP_EmergencyServiceTargetCN_decode_uper; +per_type_encoder_f ASN_NGAP_EmergencyServiceTargetCN_encode_uper; +per_type_decoder_f ASN_NGAP_EmergencyServiceTargetCN_decode_aper; +per_type_encoder_f ASN_NGAP_EmergencyServiceTargetCN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EmergencyServiceTargetCN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EndIndication.c b/src/asn/ngap/ASN_NGAP_EndIndication.c new file mode 100644 index 0000000..b5c48ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EndIndication.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EndIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EndIndication_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_ASN_NGAP_EndIndication_value2enum_1[] = { + { 0, 15, "no-further-data" }, + { 1, 19, "further-data-exists" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EndIndication_enum2value_1[] = { + 1, /* further-data-exists(1) */ + 0 /* no-further-data(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EndIndication_specs_1 = { + asn_MAP_ASN_NGAP_EndIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EndIndication_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_ASN_NGAP_EndIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndIndication = { + "EndIndication", + "EndIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EndIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_EndIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EndIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EndIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EndIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EndIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EndIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EndIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EndIndication.h b/src/asn/ngap/ASN_NGAP_EndIndication.h new file mode 100644 index 0000000..1e06c6a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EndIndication.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EndIndication_H_ +#define _ASN_NGAP_EndIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EndIndication { + ASN_NGAP_EndIndication_no_further_data = 0, + ASN_NGAP_EndIndication_further_data_exists = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EndIndication; + +/* ASN_NGAP_EndIndication */ +typedef long ASN_NGAP_EndIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EndIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EndIndication_specs_1; +asn_struct_free_f ASN_NGAP_EndIndication_free; +asn_struct_print_f ASN_NGAP_EndIndication_print; +asn_constr_check_f ASN_NGAP_EndIndication_constraint; +ber_type_decoder_f ASN_NGAP_EndIndication_decode_ber; +der_type_encoder_f ASN_NGAP_EndIndication_encode_der; +xer_type_decoder_f ASN_NGAP_EndIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_EndIndication_encode_xer; +per_type_decoder_f ASN_NGAP_EndIndication_decode_uper; +per_type_encoder_f ASN_NGAP_EndIndication_encode_uper; +per_type_decoder_f ASN_NGAP_EndIndication_decode_aper; +per_type_encoder_f ASN_NGAP_EndIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EndIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.c b/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.c new file mode 100644 index 0000000..05131bc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EndpointIPAddressAndPort.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort, endpointIPAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "endpointIPAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort, portNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PortNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portNumber" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* endpointIPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* portNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_specs_1 = { + sizeof(struct ASN_NGAP_EndpointIPAddressAndPort), + offsetof(struct ASN_NGAP_EndpointIPAddressAndPort, _asn_ctx), + asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort = { + "EndpointIPAddressAndPort", + "EndpointIPAddressAndPort", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1, + sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.h b/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.h new file mode 100644 index 0000000..63d2511 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EndpointIPAddressAndPort.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EndpointIPAddressAndPort_H_ +#define _ASN_NGAP_EndpointIPAddressAndPort_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_PortNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EndpointIPAddressAndPort */ +typedef struct ASN_NGAP_EndpointIPAddressAndPort { + ASN_NGAP_TransportLayerAddress_t endpointIPAddress; + ASN_NGAP_PortNumber_t portNumber; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EndpointIPAddressAndPort_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EndpointIPAddressAndPort_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.c b/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.c new file mode 100644 index 0000000..7289692 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Enhanced-CoverageRestriction.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Enhanced_CoverageRestriction_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_ASN_NGAP_Enhanced_CoverageRestriction_value2enum_1[] = { + { 0, 10, "restricted" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Enhanced_CoverageRestriction_enum2value_1[] = { + 0 /* restricted(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Enhanced_CoverageRestriction_specs_1 = { + asn_MAP_ASN_NGAP_Enhanced_CoverageRestriction_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Enhanced_CoverageRestriction_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_ASN_NGAP_Enhanced_CoverageRestriction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction = { + "Enhanced-CoverageRestriction", + "Enhanced-CoverageRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1, + sizeof(asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Enhanced_CoverageRestriction_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Enhanced_CoverageRestriction_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.h b/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.h new file mode 100644 index 0000000..ed08b61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Enhanced-CoverageRestriction.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Enhanced_CoverageRestriction_H_ +#define _ASN_NGAP_Enhanced_CoverageRestriction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Enhanced_CoverageRestriction { + ASN_NGAP_Enhanced_CoverageRestriction_restricted = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Enhanced_CoverageRestriction; + +/* ASN_NGAP_Enhanced-CoverageRestriction */ +typedef long ASN_NGAP_Enhanced_CoverageRestriction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Enhanced_CoverageRestriction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Enhanced_CoverageRestriction_specs_1; +asn_struct_free_f ASN_NGAP_Enhanced_CoverageRestriction_free; +asn_struct_print_f ASN_NGAP_Enhanced_CoverageRestriction_print; +asn_constr_check_f ASN_NGAP_Enhanced_CoverageRestriction_constraint; +ber_type_decoder_f ASN_NGAP_Enhanced_CoverageRestriction_decode_ber; +der_type_encoder_f ASN_NGAP_Enhanced_CoverageRestriction_encode_der; +xer_type_decoder_f ASN_NGAP_Enhanced_CoverageRestriction_decode_xer; +xer_type_encoder_f ASN_NGAP_Enhanced_CoverageRestriction_encode_xer; +per_type_decoder_f ASN_NGAP_Enhanced_CoverageRestriction_decode_uper; +per_type_encoder_f ASN_NGAP_Enhanced_CoverageRestriction_encode_uper; +per_type_decoder_f ASN_NGAP_Enhanced_CoverageRestriction_decode_aper; +per_type_encoder_f ASN_NGAP_Enhanced_CoverageRestriction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Enhanced_CoverageRestriction_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.c b/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.c new file mode 100644 index 0000000..5d4cbd7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EquivalentPLMNs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_EquivalentPLMNs_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_ASN_NGAP_EquivalentPLMNs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EquivalentPLMNs_specs_1 = { + sizeof(struct ASN_NGAP_EquivalentPLMNs), + offsetof(struct ASN_NGAP_EquivalentPLMNs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EquivalentPLMNs = { + "EquivalentPLMNs", + "EquivalentPLMNs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1, + sizeof(asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EquivalentPLMNs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EquivalentPLMNs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_EquivalentPLMNs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_EquivalentPLMNs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.h b/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.h new file mode 100644 index 0000000..d12b3ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EquivalentPLMNs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EquivalentPLMNs_H_ +#define _ASN_NGAP_EquivalentPLMNs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_EquivalentPLMNs */ +typedef struct ASN_NGAP_EquivalentPLMNs { + A_SEQUENCE_OF(ASN_NGAP_PLMNIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EquivalentPLMNs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EquivalentPLMNs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_EquivalentPLMNs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EquivalentPLMNs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EquivalentPLMNs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EquivalentPLMNs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ErrorIndication.c b/src/asn/ngap/ASN_NGAP_ErrorIndication.c new file mode 100644 index 0000000..55730fb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ErrorIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ErrorIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ErrorIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ErrorIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ErrorIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ErrorIndication_specs_1 = { + sizeof(struct ASN_NGAP_ErrorIndication), + offsetof(struct ASN_NGAP_ErrorIndication, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_ErrorIndication = { + "ErrorIndication", + "ErrorIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ErrorIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_ErrorIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ErrorIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ErrorIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ErrorIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ErrorIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ErrorIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_ErrorIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ErrorIndication.h b/src/asn/ngap/ASN_NGAP_ErrorIndication.h new file mode 100644 index 0000000..85efc5a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ErrorIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ErrorIndication_H_ +#define _ASN_NGAP_ErrorIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ErrorIndication */ +typedef struct ASN_NGAP_ErrorIndication { + ASN_NGAP_ProtocolIE_Container_123P67_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ErrorIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ErrorIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ErrorIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ErrorIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ErrorIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.c b/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.c new file mode 100644 index 0000000..d04457d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EventBasedReportingIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventBasedReportingIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs, intersystemResourceThresholdLow), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemResourceThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersystemResourceThresholdLow" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs, intersystemResourceThresholdHigh), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemResourceThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersystemResourceThresholdHigh" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs, numberOfMeasurementReportingLevels), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfMeasurementReportingLevels" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EventBasedReportingIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EventBasedReportingIEs_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventBasedReportingIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* intersystemResourceThresholdLow */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intersystemResourceThresholdHigh */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* numberOfMeasurementReportingLevels */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventBasedReportingIEs_specs_1 = { + sizeof(struct ASN_NGAP_EventBasedReportingIEs), + offsetof(struct ASN_NGAP_EventBasedReportingIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EventBasedReportingIEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EventBasedReportingIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventBasedReportingIEs = { + "EventBasedReportingIEs", + "EventBasedReportingIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventBasedReportingIEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_EventBasedReportingIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.h b/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.h new file mode 100644 index 0000000..4548e1c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventBasedReportingIEs.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EventBasedReportingIEs_H_ +#define _ASN_NGAP_EventBasedReportingIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntersystemResourceThreshold.h" +#include "ASN_NGAP_NumberOfMeasurementReportingLevels.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EventBasedReportingIEs */ +typedef struct ASN_NGAP_EventBasedReportingIEs { + ASN_NGAP_IntersystemResourceThreshold_t intersystemResourceThresholdLow; + ASN_NGAP_IntersystemResourceThreshold_t intersystemResourceThresholdHigh; + ASN_NGAP_NumberOfMeasurementReportingLevels_t numberOfMeasurementReportingLevels; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EventBasedReportingIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventBasedReportingIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventBasedReportingIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventBasedReportingIEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EventBasedReportingIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.c b/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.c new file mode 100644 index 0000000..3eafaae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EventL1LoggedMDTConfig.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig, l1Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "l1Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* l1Threshold */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeToTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_specs_1 = { + sizeof(struct ASN_NGAP_EventL1LoggedMDTConfig), + offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig, _asn_ctx), + asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig = { + "EventL1LoggedMDTConfig", + "EventL1LoggedMDTConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1, + sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.h b/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.h new file mode 100644 index 0000000..873dbb3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventL1LoggedMDTConfig.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EventL1LoggedMDTConfig_H_ +#define _ASN_NGAP_EventL1LoggedMDTConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MeasurementThresholdL1LoggedMDT.h" +#include "ASN_NGAP_Hysteresis.h" +#include "ASN_NGAP_TimeToTrigger.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_EventL1LoggedMDTConfig */ +typedef struct ASN_NGAP_EventL1LoggedMDTConfig { + ASN_NGAP_MeasurementThresholdL1LoggedMDT_t l1Threshold; + ASN_NGAP_Hysteresis_t hysteresis; + ASN_NGAP_TimeToTrigger_t timeToTrigger; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EventL1LoggedMDTConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EventL1LoggedMDTConfig_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EventTrigger.c b/src/asn/ngap/ASN_NGAP_EventTrigger.c new file mode 100644 index 0000000..5633819 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventTrigger.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EventTrigger.h" + +#include "ASN_NGAP_EventL1LoggedMDTConfig.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_outOfCoverage_constr_2 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_per_constraints_t asn_PER_type_ASN_NGAP_EventTrigger_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_ASN_NGAP_outOfCoverage_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_outOfCoverage_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_outOfCoverage_specs_2 = { + asn_MAP_ASN_NGAP_outOfCoverage_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_outOfCoverage_enum2value_2, /* 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_ASN_NGAP_outOfCoverage_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_ASN_NGAP_outOfCoverage_2 = { + "outOfCoverage", + "outOfCoverage", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_outOfCoverage_tags_2, + sizeof(asn_DEF_ASN_NGAP_outOfCoverage_tags_2) + /sizeof(asn_DEF_ASN_NGAP_outOfCoverage_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_outOfCoverage_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_outOfCoverage_tags_2) + /sizeof(asn_DEF_ASN_NGAP_outOfCoverage_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_outOfCoverage_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_outOfCoverage_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventTrigger_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventTrigger, choice.outOfCoverage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_outOfCoverage_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outOfCoverage" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_EventTrigger, choice.eventL1LoggedMDTConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventL1LoggedMDTConfig" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_EventTrigger, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventTrigger_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* outOfCoverage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventL1LoggedMDTConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_EventTrigger_specs_1 = { + sizeof(struct ASN_NGAP_EventTrigger), + offsetof(struct ASN_NGAP_EventTrigger, _asn_ctx), + offsetof(struct ASN_NGAP_EventTrigger, present), + sizeof(((struct ASN_NGAP_EventTrigger *)0)->present), + asn_MAP_ASN_NGAP_EventTrigger_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventTrigger = { + "EventTrigger", + "EventTrigger", + &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_ASN_NGAP_EventTrigger_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_EventTrigger_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EventTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EventTrigger.h b/src/asn/ngap/ASN_NGAP_EventTrigger.h new file mode 100644 index 0000000..04445e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventTrigger.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EventTrigger_H_ +#define _ASN_NGAP_EventTrigger_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EventTrigger_PR { + ASN_NGAP_EventTrigger_PR_NOTHING, /* No components present */ + ASN_NGAP_EventTrigger_PR_outOfCoverage, + ASN_NGAP_EventTrigger_PR_eventL1LoggedMDTConfig, + ASN_NGAP_EventTrigger_PR_choice_Extensions +} ASN_NGAP_EventTrigger_PR; +typedef enum ASN_NGAP_EventTrigger__outOfCoverage { + ASN_NGAP_EventTrigger__outOfCoverage_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EventTrigger__outOfCoverage; + +/* Forward declarations */ +struct ASN_NGAP_EventL1LoggedMDTConfig; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_EventTrigger */ +typedef struct ASN_NGAP_EventTrigger { + ASN_NGAP_EventTrigger_PR present; + union ASN_NGAP_EventTrigger_u { + long outOfCoverage; + struct ASN_NGAP_EventL1LoggedMDTConfig *eventL1LoggedMDTConfig; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EventTrigger_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_outOfCoverage_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventTrigger; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_EventTrigger_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventTrigger_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EventTrigger_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EventTrigger_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_EventType.c b/src/asn/ngap/ASN_NGAP_EventType.c new file mode 100644 index 0000000..53d5e93 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventType.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_EventType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_EventType_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_ASN_NGAP_EventType_value2enum_1[] = { + { 0, 6, "direct" }, + { 1, 20, "change-of-serve-cell" }, + { 2, 31, "ue-presence-in-area-of-interest" }, + { 3, 25, "stop-change-of-serve-cell" }, + { 4, 36, "stop-ue-presence-in-area-of-interest" }, + { 5, 36, "cancel-location-reporting-for-the-ue" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_EventType_enum2value_1[] = { + 5, /* cancel-location-reporting-for-the-ue(5) */ + 1, /* change-of-serve-cell(1) */ + 0, /* direct(0) */ + 3, /* stop-change-of-serve-cell(3) */ + 4, /* stop-ue-presence-in-area-of-interest(4) */ + 2 /* ue-presence-in-area-of-interest(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EventType_specs_1 = { + asn_MAP_ASN_NGAP_EventType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_EventType_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_ASN_NGAP_EventType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventType = { + "EventType", + "EventType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_EventType_tags_1, + sizeof(asn_DEF_ASN_NGAP_EventType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_EventType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_EventType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_EventType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_EventType.h b/src/asn/ngap/ASN_NGAP_EventType.h new file mode 100644 index 0000000..d793bb2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_EventType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_EventType_H_ +#define _ASN_NGAP_EventType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_EventType { + ASN_NGAP_EventType_direct = 0, + ASN_NGAP_EventType_change_of_serve_cell = 1, + ASN_NGAP_EventType_ue_presence_in_area_of_interest = 2, + ASN_NGAP_EventType_stop_change_of_serve_cell = 3, + ASN_NGAP_EventType_stop_ue_presence_in_area_of_interest = 4, + ASN_NGAP_EventType_cancel_location_reporting_for_the_ue = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_EventType; + +/* ASN_NGAP_EventType */ +typedef long ASN_NGAP_EventType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_EventType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_EventType_specs_1; +asn_struct_free_f ASN_NGAP_EventType_free; +asn_struct_print_f ASN_NGAP_EventType_print; +asn_constr_check_f ASN_NGAP_EventType_constraint; +ber_type_decoder_f ASN_NGAP_EventType_decode_ber; +der_type_encoder_f ASN_NGAP_EventType_encode_der; +xer_type_decoder_f ASN_NGAP_EventType_decode_xer; +xer_type_encoder_f ASN_NGAP_EventType_encode_xer; +per_type_decoder_f ASN_NGAP_EventType_decode_uper; +per_type_encoder_f ASN_NGAP_EventType_encode_uper; +per_type_decoder_f ASN_NGAP_EventType_decode_aper; +per_type_encoder_f ASN_NGAP_EventType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_EventType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.c b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.c new file mode 100644 index 0000000..0025dbf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h" + +#include "ASN_NGAP_ExcessPacketDelayThresholdItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 255 } /* (SIZE(1..255)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_specs_1 = { + sizeof(struct ASN_NGAP_ExcessPacketDelayThresholdConfiguration), + offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdConfiguration, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration = { + "ExcessPacketDelayThresholdConfiguration", + "ExcessPacketDelayThresholdConfiguration", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h new file mode 100644 index 0000000..b16f8b8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExcessPacketDelayThresholdConfiguration_H_ +#define _ASN_NGAP_ExcessPacketDelayThresholdConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ExcessPacketDelayThresholdItem; + +/* ASN_NGAP_ExcessPacketDelayThresholdConfiguration */ +typedef struct ASN_NGAP_ExcessPacketDelayThresholdConfiguration { + A_SEQUENCE_OF(struct ASN_NGAP_ExcessPacketDelayThresholdItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExcessPacketDelayThresholdConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdConfiguration_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExcessPacketDelayThresholdConfiguration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.c b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.c new file mode 100644 index 0000000..e14e839 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExcessPacketDelayThresholdItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem, fiveQi), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveQi" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem, excessPacketDelayThresholdValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "excessPacketDelayThresholdValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQi */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* excessPacketDelayThresholdValue */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_specs_1 = { + sizeof(struct ASN_NGAP_ExcessPacketDelayThresholdItem), + offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem, _asn_ctx), + asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem = { + "ExcessPacketDelayThresholdItem", + "ExcessPacketDelayThresholdItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.h b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.h new file mode 100644 index 0000000..176b48c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExcessPacketDelayThresholdItem_H_ +#define _ASN_NGAP_ExcessPacketDelayThresholdItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveQI.h" +#include "ASN_NGAP_ExcessPacketDelayThresholdValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ExcessPacketDelayThresholdItem */ +typedef struct ASN_NGAP_ExcessPacketDelayThresholdItem { + ASN_NGAP_FiveQI_t fiveQi; + ASN_NGAP_ExcessPacketDelayThresholdValue_t excessPacketDelayThresholdValue; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExcessPacketDelayThresholdItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExcessPacketDelayThresholdItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.c b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.c new file mode 100644 index 0000000..7ebb3a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.c @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExcessPacketDelayThresholdValue.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdValue_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 18 } /* (0..18,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdValue_value2enum_1[] = { + { 0, 8, "ms0dot25" }, + { 1, 7, "ms0dot5" }, + { 2, 3, "ms1" }, + { 3, 3, "ms2" }, + { 4, 3, "ms4" }, + { 5, 3, "ms5" }, + { 6, 4, "ms10" }, + { 7, 4, "ms20" }, + { 8, 4, "ms30" }, + { 9, 4, "ms40" }, + { 10, 4, "ms50" }, + { 11, 4, "ms60" }, + { 12, 4, "ms70" }, + { 13, 4, "ms80" }, + { 14, 4, "ms90" }, + { 15, 5, "ms100" }, + { 16, 5, "ms150" }, + { 17, 5, "ms300" }, + { 18, 5, "ms500" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdValue_enum2value_1[] = { + 0, /* ms0dot25(0) */ + 1, /* ms0dot5(1) */ + 2, /* ms1(2) */ + 6, /* ms10(6) */ + 15, /* ms100(15) */ + 16, /* ms150(16) */ + 3, /* ms2(3) */ + 7, /* ms20(7) */ + 8, /* ms30(8) */ + 17, /* ms300(17) */ + 4, /* ms4(4) */ + 9, /* ms40(9) */ + 5, /* ms5(5) */ + 10, /* ms50(10) */ + 18, /* ms500(18) */ + 11, /* ms60(11) */ + 12, /* ms70(12) */ + 13, /* ms80(13) */ + 14 /* ms90(14) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdValue_specs_1 = { + asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdValue_enum2value_1, /* N => "tag"; sorted by N */ + 19, /* Number of elements in the maps */ + 20, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue = { + "ExcessPacketDelayThresholdValue", + "ExcessPacketDelayThresholdValue", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdValue_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdValue_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.h b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.h new file mode 100644 index 0000000..c4b95f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExcessPacketDelayThresholdValue.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExcessPacketDelayThresholdValue_H_ +#define _ASN_NGAP_ExcessPacketDelayThresholdValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ExcessPacketDelayThresholdValue { + ASN_NGAP_ExcessPacketDelayThresholdValue_ms0dot25 = 0, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms0dot5 = 1, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms1 = 2, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms2 = 3, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms4 = 4, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms5 = 5, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms10 = 6, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms20 = 7, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms30 = 8, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms40 = 9, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms50 = 10, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms60 = 11, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms70 = 12, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms80 = 13, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms90 = 14, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms100 = 15, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms150 = 16, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms300 = 17, + ASN_NGAP_ExcessPacketDelayThresholdValue_ms500 = 18 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ExcessPacketDelayThresholdValue; + +/* ASN_NGAP_ExcessPacketDelayThresholdValue */ +typedef long ASN_NGAP_ExcessPacketDelayThresholdValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExcessPacketDelayThresholdValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdValue; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdValue_specs_1; +asn_struct_free_f ASN_NGAP_ExcessPacketDelayThresholdValue_free; +asn_struct_print_f ASN_NGAP_ExcessPacketDelayThresholdValue_print; +asn_constr_check_f ASN_NGAP_ExcessPacketDelayThresholdValue_constraint; +ber_type_decoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_decode_ber; +der_type_encoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_encode_der; +xer_type_decoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_decode_xer; +xer_type_encoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_encode_xer; +per_type_decoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_decode_uper; +per_type_encoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_encode_uper; +per_type_decoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_decode_aper; +per_type_encoder_f ASN_NGAP_ExcessPacketDelayThresholdValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExcessPacketDelayThresholdValue_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.c b/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.c new file mode 100644 index 0000000..8e2e24c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedActivityPeriod.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ExpectedActivityPeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedActivityPeriod = { + "ExpectedActivityPeriod", + "ExpectedActivityPeriod", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedActivityPeriod_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExpectedActivityPeriod_constr_1, ASN_NGAP_ExpectedActivityPeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.h b/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.h new file mode 100644 index 0000000..c16b7d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedActivityPeriod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedActivityPeriod_H_ +#define _ASN_NGAP_ExpectedActivityPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExpectedActivityPeriod */ +typedef long ASN_NGAP_ExpectedActivityPeriod_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedActivityPeriod_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedActivityPeriod; +asn_struct_free_f ASN_NGAP_ExpectedActivityPeriod_free; +asn_struct_print_f ASN_NGAP_ExpectedActivityPeriod_print; +asn_constr_check_f ASN_NGAP_ExpectedActivityPeriod_constraint; +ber_type_decoder_f ASN_NGAP_ExpectedActivityPeriod_decode_ber; +der_type_encoder_f ASN_NGAP_ExpectedActivityPeriod_encode_der; +xer_type_decoder_f ASN_NGAP_ExpectedActivityPeriod_decode_xer; +xer_type_encoder_f ASN_NGAP_ExpectedActivityPeriod_encode_xer; +per_type_decoder_f ASN_NGAP_ExpectedActivityPeriod_decode_uper; +per_type_encoder_f ASN_NGAP_ExpectedActivityPeriod_encode_uper; +per_type_decoder_f ASN_NGAP_ExpectedActivityPeriod_decode_aper; +per_type_encoder_f ASN_NGAP_ExpectedActivityPeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedActivityPeriod_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.c b/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.c new file mode 100644 index 0000000..e80e753 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedHOInterval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ExpectedHOInterval_specs_1 = { + asn_MAP_ASN_NGAP_ExpectedHOInterval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_ExpectedHOInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedHOInterval = { + "ExpectedHOInterval", + "ExpectedHOInterval", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedHOInterval_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExpectedHOInterval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ExpectedHOInterval_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.h b/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.h new file mode 100644 index 0000000..5639751 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedHOInterval.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedHOInterval_H_ +#define _ASN_NGAP_ExpectedHOInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ExpectedHOInterval { + ASN_NGAP_ExpectedHOInterval_sec15 = 0, + ASN_NGAP_ExpectedHOInterval_sec30 = 1, + ASN_NGAP_ExpectedHOInterval_sec60 = 2, + ASN_NGAP_ExpectedHOInterval_sec90 = 3, + ASN_NGAP_ExpectedHOInterval_sec120 = 4, + ASN_NGAP_ExpectedHOInterval_sec180 = 5, + ASN_NGAP_ExpectedHOInterval_long_time = 6 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ExpectedHOInterval; + +/* ASN_NGAP_ExpectedHOInterval */ +typedef long ASN_NGAP_ExpectedHOInterval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedHOInterval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedHOInterval; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExpectedHOInterval_specs_1; +asn_struct_free_f ASN_NGAP_ExpectedHOInterval_free; +asn_struct_print_f ASN_NGAP_ExpectedHOInterval_print; +asn_constr_check_f ASN_NGAP_ExpectedHOInterval_constraint; +ber_type_decoder_f ASN_NGAP_ExpectedHOInterval_decode_ber; +der_type_encoder_f ASN_NGAP_ExpectedHOInterval_encode_der; +xer_type_decoder_f ASN_NGAP_ExpectedHOInterval_decode_xer; +xer_type_encoder_f ASN_NGAP_ExpectedHOInterval_encode_xer; +per_type_decoder_f ASN_NGAP_ExpectedHOInterval_decode_uper; +per_type_encoder_f ASN_NGAP_ExpectedHOInterval_encode_uper; +per_type_decoder_f ASN_NGAP_ExpectedHOInterval_decode_aper; +per_type_encoder_f ASN_NGAP_ExpectedHOInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedHOInterval_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.c b/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.c new file mode 100644 index 0000000..6ab2518 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedIdlePeriod.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ExpectedIdlePeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedIdlePeriod = { + "ExpectedIdlePeriod", + "ExpectedIdlePeriod", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedIdlePeriod_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExpectedIdlePeriod_constr_1, ASN_NGAP_ExpectedIdlePeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.h b/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.h new file mode 100644 index 0000000..1082ceb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedIdlePeriod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedIdlePeriod_H_ +#define _ASN_NGAP_ExpectedIdlePeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExpectedIdlePeriod */ +typedef long ASN_NGAP_ExpectedIdlePeriod_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedIdlePeriod_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedIdlePeriod; +asn_struct_free_f ASN_NGAP_ExpectedIdlePeriod_free; +asn_struct_print_f ASN_NGAP_ExpectedIdlePeriod_print; +asn_constr_check_f ASN_NGAP_ExpectedIdlePeriod_constraint; +ber_type_decoder_f ASN_NGAP_ExpectedIdlePeriod_decode_ber; +der_type_encoder_f ASN_NGAP_ExpectedIdlePeriod_encode_der; +xer_type_decoder_f ASN_NGAP_ExpectedIdlePeriod_decode_xer; +xer_type_encoder_f ASN_NGAP_ExpectedIdlePeriod_encode_xer; +per_type_decoder_f ASN_NGAP_ExpectedIdlePeriod_decode_uper; +per_type_encoder_f ASN_NGAP_ExpectedIdlePeriod_encode_uper; +per_type_decoder_f ASN_NGAP_ExpectedIdlePeriod_decode_aper; +per_type_encoder_f ASN_NGAP_ExpectedIdlePeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedIdlePeriod_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.c b/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.c new file mode 100644 index 0000000..77e1200 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedUEActivityBehaviour.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour, expectedActivityPeriod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedActivityPeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedActivityPeriod" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour, expectedIdlePeriod), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedIdlePeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedIdlePeriod" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour, sourceOfUEActivityBehaviourInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceOfUEActivityBehaviourInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ExpectedUEActivityBehaviour_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_ExpectedUEActivityBehaviour_specs_1 = { + sizeof(struct ASN_NGAP_ExpectedUEActivityBehaviour), + offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEActivityBehaviour_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ExpectedUEActivityBehaviour_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour = { + "ExpectedUEActivityBehaviour", + "ExpectedUEActivityBehaviour", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEActivityBehaviour_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.h b/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.h new file mode 100644 index 0000000..dc07f62 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEActivityBehaviour.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedUEActivityBehaviour_H_ +#define _ASN_NGAP_ExpectedUEActivityBehaviour_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ExpectedActivityPeriod.h" +#include "ASN_NGAP_ExpectedIdlePeriod.h" +#include "ASN_NGAP_SourceOfUEActivityBehaviourInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ExpectedUEActivityBehaviour */ +typedef struct ASN_NGAP_ExpectedUEActivityBehaviour { + ASN_NGAP_ExpectedActivityPeriod_t *expectedActivityPeriod; /* OPTIONAL */ + ASN_NGAP_ExpectedIdlePeriod_t *expectedIdlePeriod; /* OPTIONAL */ + ASN_NGAP_SourceOfUEActivityBehaviourInformation_t *sourceOfUEActivityBehaviourInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEActivityBehaviour_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEActivityBehaviour_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedUEActivityBehaviour_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.c b/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.c new file mode 100644 index 0000000..eab2618 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedUEBehaviour.h" + +#include "ASN_NGAP_ExpectedUEActivityBehaviour.h" +#include "ASN_NGAP_ExpectedUEMovingTrajectory.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEBehaviour_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_ExpectedUEBehaviour, expectedUEActivityBehaviour), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedUEActivityBehaviour" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_ExpectedUEBehaviour, expectedHOInterval), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedHOInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedHOInterval" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_ExpectedUEBehaviour, expectedUEMobility), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedUEMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedUEMobility" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ExpectedUEBehaviour, expectedUEMovingTrajectory), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "expectedUEMovingTrajectory" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ExpectedUEBehaviour, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ExpectedUEBehaviour_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExpectedUEBehaviour_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* expectedUEActivityBehaviour */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* expectedHOInterval */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* expectedUEMobility */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* expectedUEMovingTrajectory */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEBehaviour_specs_1 = { + sizeof(struct ASN_NGAP_ExpectedUEBehaviour), + offsetof(struct ASN_NGAP_ExpectedUEBehaviour, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEBehaviour_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ExpectedUEBehaviour_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour = { + "ExpectedUEBehaviour", + "ExpectedUEBehaviour", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEBehaviour_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEBehaviour_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.h b/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.h new file mode 100644 index 0000000..284515f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEBehaviour.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedUEBehaviour_H_ +#define _ASN_NGAP_ExpectedUEBehaviour_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ExpectedHOInterval.h" +#include "ASN_NGAP_ExpectedUEMobility.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ExpectedUEActivityBehaviour; +struct ASN_NGAP_ExpectedUEMovingTrajectory; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ExpectedUEBehaviour */ +typedef struct ASN_NGAP_ExpectedUEBehaviour { + struct ASN_NGAP_ExpectedUEActivityBehaviour *expectedUEActivityBehaviour; /* OPTIONAL */ + ASN_NGAP_ExpectedHOInterval_t *expectedHOInterval; /* OPTIONAL */ + ASN_NGAP_ExpectedUEMobility_t *expectedUEMobility; /* OPTIONAL */ + struct ASN_NGAP_ExpectedUEMovingTrajectory *expectedUEMovingTrajectory; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEBehaviour_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEBehaviour_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEBehaviour_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedUEBehaviour_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.c b/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.c new file mode 100644 index 0000000..e87c5e2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedUEMobility.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedUEMobility_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_ASN_NGAP_ExpectedUEMobility_value2enum_1[] = { + { 0, 10, "stationary" }, + { 1, 6, "mobile" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ExpectedUEMobility_enum2value_1[] = { + 1, /* mobile(1) */ + 0 /* stationary(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMobility_specs_1 = { + asn_MAP_ASN_NGAP_ExpectedUEMobility_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ExpectedUEMobility_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_ASN_NGAP_ExpectedUEMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMobility = { + "ExpectedUEMobility", + "ExpectedUEMobility", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMobility_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExpectedUEMobility_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ExpectedUEMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.h b/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.h new file mode 100644 index 0000000..be611f9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMobility.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedUEMobility_H_ +#define _ASN_NGAP_ExpectedUEMobility_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ExpectedUEMobility { + ASN_NGAP_ExpectedUEMobility_stationary = 0, + ASN_NGAP_ExpectedUEMobility_mobile = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ExpectedUEMobility; + +/* ASN_NGAP_ExpectedUEMobility */ +typedef long ASN_NGAP_ExpectedUEMobility_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedUEMobility_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMobility; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMobility_specs_1; +asn_struct_free_f ASN_NGAP_ExpectedUEMobility_free; +asn_struct_print_f ASN_NGAP_ExpectedUEMobility_print; +asn_constr_check_f ASN_NGAP_ExpectedUEMobility_constraint; +ber_type_decoder_f ASN_NGAP_ExpectedUEMobility_decode_ber; +der_type_encoder_f ASN_NGAP_ExpectedUEMobility_encode_der; +xer_type_decoder_f ASN_NGAP_ExpectedUEMobility_decode_xer; +xer_type_encoder_f ASN_NGAP_ExpectedUEMobility_encode_xer; +per_type_decoder_f ASN_NGAP_ExpectedUEMobility_decode_uper; +per_type_encoder_f ASN_NGAP_ExpectedUEMobility_encode_uper; +per_type_decoder_f ASN_NGAP_ExpectedUEMobility_decode_aper; +per_type_encoder_f ASN_NGAP_ExpectedUEMobility_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedUEMobility_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.c b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.c new file mode 100644 index 0000000..3b53af7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedUEMovingTrajectory.h" + +#include "ASN_NGAP_ExpectedUEMovingTrajectoryItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedUEMovingTrajectory_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_ASN_NGAP_ExpectedUEMovingTrajectory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectory_specs_1 = { + sizeof(struct ASN_NGAP_ExpectedUEMovingTrajectory), + offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory = { + "ExpectedUEMovingTrajectory", + "ExpectedUEMovingTrajectory", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExpectedUEMovingTrajectory_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectory_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectory_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.h b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.h new file mode 100644 index 0000000..511dea7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectory.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedUEMovingTrajectory_H_ +#define _ASN_NGAP_ExpectedUEMovingTrajectory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ExpectedUEMovingTrajectoryItem; + +/* ASN_NGAP_ExpectedUEMovingTrajectory */ +typedef struct ASN_NGAP_ExpectedUEMovingTrajectory { + A_SEQUENCE_OF(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEMovingTrajectory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectory; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectory_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectory_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExpectedUEMovingTrajectory_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedUEMovingTrajectory_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.c b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.c new file mode 100644 index 0000000..1af0390 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExpectedUEMovingTrajectoryItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_timeStayedInCell_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_ASN_NGAP_timeStayedInCell_constr_3 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_ASN_NGAP_ExpectedUEMovingTrajectoryItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem, timeStayedInCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_timeStayedInCell_constr_3, memb_ASN_NGAP_timeStayedInCell_constraint_1 }, + 0, 0, /* No default value */ + "timeStayedInCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStayedInCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_specs_1 = { + sizeof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem), + offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem = { + "ExpectedUEMovingTrajectoryItem", + "ExpectedUEMovingTrajectoryItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectoryItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.h b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.h new file mode 100644 index 0000000..74f8cab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExpectedUEMovingTrajectoryItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExpectedUEMovingTrajectoryItem_H_ +#define _ASN_NGAP_ExpectedUEMovingTrajectoryItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ExpectedUEMovingTrajectoryItem */ +typedef struct ASN_NGAP_ExpectedUEMovingTrajectoryItem { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + long *timeStayedInCell; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEMovingTrajectoryItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectoryItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExpectedUEMovingTrajectoryItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Extended-AMFName.c b/src/asn/ngap/ASN_NGAP_Extended-AMFName.c new file mode 100644 index 0000000..61b7727 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-AMFName.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Extended-AMFName.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_AMFName_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_Extended_AMFName, aMFNameVisibleString), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFNameVisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFNameVisibleString" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_Extended_AMFName, aMFNameUTF8String), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFNameUTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFNameUTF8String" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_Extended_AMFName, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_Extended_AMFName_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Extended_AMFName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Extended_AMFName_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMFNameVisibleString */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMFNameUTF8String */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_AMFName_specs_1 = { + sizeof(struct ASN_NGAP_Extended_AMFName), + offsetof(struct ASN_NGAP_Extended_AMFName, _asn_ctx), + asn_MAP_ASN_NGAP_Extended_AMFName_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_Extended_AMFName_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_AMFName = { + "Extended-AMFName", + "Extended-AMFName", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Extended_AMFName_tags_1, + sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Extended_AMFName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Extended_AMFName_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Extended_AMFName_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Extended-AMFName.h b/src/asn/ngap/ASN_NGAP_Extended-AMFName.h new file mode 100644 index 0000000..8cfac8f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-AMFName.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Extended_AMFName_H_ +#define _ASN_NGAP_Extended_AMFName_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMFNameVisibleString.h" +#include "ASN_NGAP_AMFNameUTF8String.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_Extended-AMFName */ +typedef struct ASN_NGAP_Extended_AMFName { + ASN_NGAP_AMFNameVisibleString_t *aMFNameVisibleString; /* OPTIONAL */ + ASN_NGAP_AMFNameUTF8String_t *aMFNameUTF8String; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Extended_AMFName_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_AMFName; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_AMFName_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_AMFName_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Extended_AMFName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.c b/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.c new file mode 100644 index 0000000..36bacbf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Extended-ConnectedTime.h" + +int +ASN_NGAP_Extended_ConnectedTime_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_ASN_NGAP_Extended_ConnectedTime_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_ASN_NGAP_Extended_ConnectedTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_ConnectedTime = { + "Extended-ConnectedTime", + "Extended-ConnectedTime", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1, + sizeof(asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_ConnectedTime_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Extended_ConnectedTime_constr_1, ASN_NGAP_Extended_ConnectedTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.h b/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.h new file mode 100644 index 0000000..e083737 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-ConnectedTime.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Extended_ConnectedTime_H_ +#define _ASN_NGAP_Extended_ConnectedTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Extended-ConnectedTime */ +typedef long ASN_NGAP_Extended_ConnectedTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Extended_ConnectedTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_ConnectedTime; +asn_struct_free_f ASN_NGAP_Extended_ConnectedTime_free; +asn_struct_print_f ASN_NGAP_Extended_ConnectedTime_print; +asn_constr_check_f ASN_NGAP_Extended_ConnectedTime_constraint; +ber_type_decoder_f ASN_NGAP_Extended_ConnectedTime_decode_ber; +der_type_encoder_f ASN_NGAP_Extended_ConnectedTime_encode_der; +xer_type_decoder_f ASN_NGAP_Extended_ConnectedTime_decode_xer; +xer_type_encoder_f ASN_NGAP_Extended_ConnectedTime_encode_xer; +per_type_decoder_f ASN_NGAP_Extended_ConnectedTime_decode_uper; +per_type_encoder_f ASN_NGAP_Extended_ConnectedTime_encode_uper; +per_type_decoder_f ASN_NGAP_Extended_ConnectedTime_decode_aper; +per_type_encoder_f ASN_NGAP_Extended_ConnectedTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Extended_ConnectedTime_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.c b/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.c new file mode 100644 index 0000000..e2cde0d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Extended-RANNodeName.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_RANNodeName_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_Extended_RANNodeName, rANNodeNameVisibleString), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RANNodeNameVisibleString, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rANNodeNameVisibleString" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_Extended_RANNodeName, rANNodeNameUTF8String), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RANNodeNameUTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rANNodeNameUTF8String" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_Extended_RANNodeName, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_Extended_RANNodeName_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Extended_RANNodeName_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rANNodeNameVisibleString */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rANNodeNameUTF8String */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_RANNodeName_specs_1 = { + sizeof(struct ASN_NGAP_Extended_RANNodeName), + offsetof(struct ASN_NGAP_Extended_RANNodeName, _asn_ctx), + asn_MAP_ASN_NGAP_Extended_RANNodeName_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_Extended_RANNodeName_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_RANNodeName = { + "Extended-RANNodeName", + "Extended-RANNodeName", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1, + sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Extended_RANNodeName_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Extended_RANNodeName_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.h b/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.h new file mode 100644 index 0000000..bcf3d44 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Extended-RANNodeName.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Extended_RANNodeName_H_ +#define _ASN_NGAP_Extended_RANNodeName_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RANNodeNameVisibleString.h" +#include "ASN_NGAP_RANNodeNameUTF8String.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_Extended-RANNodeName */ +typedef struct ASN_NGAP_Extended_RANNodeName { + ASN_NGAP_RANNodeNameVisibleString_t *rANNodeNameVisibleString; /* OPTIONAL */ + ASN_NGAP_RANNodeNameUTF8String_t *rANNodeNameUTF8String; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Extended_RANNodeName_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_RANNodeName; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_RANNodeName_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_RANNodeName_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Extended_RANNodeName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.c b/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.c new file mode 100644 index 0000000..354a44f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedMobilityInformation.h" + +int +ASN_NGAP_ExtendedMobilityInformation_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_ASN_NGAP_ExtendedMobilityInformation_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_ASN_NGAP_ExtendedMobilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedMobilityInformation = { + "ExtendedMobilityInformation", + "ExtendedMobilityInformation", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedMobilityInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedMobilityInformation_constr_1, ASN_NGAP_ExtendedMobilityInformation_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.h b/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.h new file mode 100644 index 0000000..c5154fd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedMobilityInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedMobilityInformation_H_ +#define _ASN_NGAP_ExtendedMobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExtendedMobilityInformation */ +typedef BIT_STRING_t ASN_NGAP_ExtendedMobilityInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedMobilityInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedMobilityInformation; +asn_struct_free_f ASN_NGAP_ExtendedMobilityInformation_free; +asn_struct_print_f ASN_NGAP_ExtendedMobilityInformation_print; +asn_constr_check_f ASN_NGAP_ExtendedMobilityInformation_constraint; +ber_type_decoder_f ASN_NGAP_ExtendedMobilityInformation_decode_ber; +der_type_encoder_f ASN_NGAP_ExtendedMobilityInformation_encode_der; +xer_type_decoder_f ASN_NGAP_ExtendedMobilityInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_ExtendedMobilityInformation_encode_xer; +per_type_decoder_f ASN_NGAP_ExtendedMobilityInformation_decode_uper; +per_type_encoder_f ASN_NGAP_ExtendedMobilityInformation_encode_uper; +per_type_decoder_f ASN_NGAP_ExtendedMobilityInformation_decode_aper; +per_type_encoder_f ASN_NGAP_ExtendedMobilityInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedMobilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.c b/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.c new file mode 100644 index 0000000..e61f75d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedPacketDelayBudget.h" + +int +ASN_NGAP_ExtendedPacketDelayBudget_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 <= 109999)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_ExtendedPacketDelayBudget_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 17, -1, 1, 109999 } /* (1..109999,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget = { + "ExtendedPacketDelayBudget", + "ExtendedPacketDelayBudget", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedPacketDelayBudget_constr_1, ASN_NGAP_ExtendedPacketDelayBudget_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.h b/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.h new file mode 100644 index 0000000..ea03e6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedPacketDelayBudget.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedPacketDelayBudget_H_ +#define _ASN_NGAP_ExtendedPacketDelayBudget_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExtendedPacketDelayBudget */ +typedef long ASN_NGAP_ExtendedPacketDelayBudget_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedPacketDelayBudget_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget; +asn_struct_free_f ASN_NGAP_ExtendedPacketDelayBudget_free; +asn_struct_print_f ASN_NGAP_ExtendedPacketDelayBudget_print; +asn_constr_check_f ASN_NGAP_ExtendedPacketDelayBudget_constraint; +ber_type_decoder_f ASN_NGAP_ExtendedPacketDelayBudget_decode_ber; +der_type_encoder_f ASN_NGAP_ExtendedPacketDelayBudget_encode_der; +xer_type_decoder_f ASN_NGAP_ExtendedPacketDelayBudget_decode_xer; +xer_type_encoder_f ASN_NGAP_ExtendedPacketDelayBudget_encode_xer; +per_type_decoder_f ASN_NGAP_ExtendedPacketDelayBudget_decode_uper; +per_type_encoder_f ASN_NGAP_ExtendedPacketDelayBudget_encode_uper; +per_type_decoder_f ASN_NGAP_ExtendedPacketDelayBudget_decode_aper; +per_type_encoder_f ASN_NGAP_ExtendedPacketDelayBudget_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedPacketDelayBudget_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.c b/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.c new file mode 100644 index 0000000..73ad09d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedRATRestrictionInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_primaryRATRestriction_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) || (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; + } +} + +static int +memb_ASN_NGAP_secondaryRATRestriction_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 asn_per_constraints_t asn_PER_memb_ASN_NGAP_primaryRATRestriction_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 8, 16 } /* (SIZE(8..16,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_secondaryRATRestriction_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation, primaryRATRestriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_primaryRATRestriction_constr_2, memb_ASN_NGAP_primaryRATRestriction_constraint_1 }, + 0, 0, /* No default value */ + "primaryRATRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation, secondaryRATRestriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_secondaryRATRestriction_constr_3, memb_ASN_NGAP_secondaryRATRestriction_constraint_1 }, + 0, 0, /* No default value */ + "secondaryRATRestriction" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* primaryRATRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondaryRATRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_specs_1 = { + sizeof(struct ASN_NGAP_ExtendedRATRestrictionInformation), + offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation, _asn_ctx), + asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation = { + "ExtendedRATRestrictionInformation", + "ExtendedRATRestrictionInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.h b/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.h new file mode 100644 index 0000000..7458aa3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedRATRestrictionInformation.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedRATRestrictionInformation_H_ +#define _ASN_NGAP_ExtendedRATRestrictionInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ExtendedRATRestrictionInformation */ +typedef struct ASN_NGAP_ExtendedRATRestrictionInformation { + BIT_STRING_t primaryRATRestriction; + BIT_STRING_t secondaryRATRestriction; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExtendedRATRestrictionInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedRATRestrictionInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.c b/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.c new file mode 100644 index 0000000..490358d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedRNC-ID.h" + +int +ASN_NGAP_ExtendedRNC_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 >= 4096 && value <= 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_ASN_NGAP_ExtendedRNC_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 4096, 65535 } /* (4096..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRNC_ID = { + "ExtendedRNC-ID", + "ExtendedRNC-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRNC_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedRNC_ID_constr_1, ASN_NGAP_ExtendedRNC_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.h b/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.h new file mode 100644 index 0000000..69f105c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedRNC-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedRNC_ID_H_ +#define _ASN_NGAP_ExtendedRNC_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExtendedRNC-ID */ +typedef long ASN_NGAP_ExtendedRNC_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedRNC_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRNC_ID; +asn_struct_free_f ASN_NGAP_ExtendedRNC_ID_free; +asn_struct_print_f ASN_NGAP_ExtendedRNC_ID_print; +asn_constr_check_f ASN_NGAP_ExtendedRNC_ID_constraint; +ber_type_decoder_f ASN_NGAP_ExtendedRNC_ID_decode_ber; +der_type_encoder_f ASN_NGAP_ExtendedRNC_ID_encode_der; +xer_type_decoder_f ASN_NGAP_ExtendedRNC_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_ExtendedRNC_ID_encode_xer; +per_type_decoder_f ASN_NGAP_ExtendedRNC_ID_decode_uper; +per_type_encoder_f ASN_NGAP_ExtendedRNC_ID_encode_uper; +per_type_decoder_f ASN_NGAP_ExtendedRNC_ID_decode_aper; +per_type_encoder_f ASN_NGAP_ExtendedRNC_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedRNC_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.c b/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.c new file mode 100644 index 0000000..5816924 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedReportIntervalMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedReportIntervalMDT_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_ASN_NGAP_ExtendedReportIntervalMDT_value2enum_1[] = { + { 0, 7, "ms20480" }, + { 1, 7, "ms40960" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ExtendedReportIntervalMDT_enum2value_1[] = { + 0, /* ms20480(0) */ + 1 /* ms40960(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExtendedReportIntervalMDT_specs_1 = { + asn_MAP_ASN_NGAP_ExtendedReportIntervalMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ExtendedReportIntervalMDT_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_ASN_NGAP_ExtendedReportIntervalMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT = { + "ExtendedReportIntervalMDT", + "ExtendedReportIntervalMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedReportIntervalMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ExtendedReportIntervalMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.h b/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.h new file mode 100644 index 0000000..dd6b309 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedReportIntervalMDT.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedReportIntervalMDT_H_ +#define _ASN_NGAP_ExtendedReportIntervalMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ExtendedReportIntervalMDT { + ASN_NGAP_ExtendedReportIntervalMDT_ms20480 = 0, + ASN_NGAP_ExtendedReportIntervalMDT_ms40960 = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ExtendedReportIntervalMDT; + +/* ASN_NGAP_ExtendedReportIntervalMDT */ +typedef long ASN_NGAP_ExtendedReportIntervalMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedReportIntervalMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ExtendedReportIntervalMDT_specs_1; +asn_struct_free_f ASN_NGAP_ExtendedReportIntervalMDT_free; +asn_struct_print_f ASN_NGAP_ExtendedReportIntervalMDT_print; +asn_constr_check_f ASN_NGAP_ExtendedReportIntervalMDT_constraint; +ber_type_decoder_f ASN_NGAP_ExtendedReportIntervalMDT_decode_ber; +der_type_encoder_f ASN_NGAP_ExtendedReportIntervalMDT_encode_der; +xer_type_decoder_f ASN_NGAP_ExtendedReportIntervalMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_ExtendedReportIntervalMDT_encode_xer; +per_type_decoder_f ASN_NGAP_ExtendedReportIntervalMDT_decode_uper; +per_type_encoder_f ASN_NGAP_ExtendedReportIntervalMDT_encode_uper; +per_type_decoder_f ASN_NGAP_ExtendedReportIntervalMDT_decode_aper; +per_type_encoder_f ASN_NGAP_ExtendedReportIntervalMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedReportIntervalMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.c b/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.c new file mode 100644 index 0000000..570cb27 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedSliceSupportList.h" + +#include "ASN_NGAP_SliceSupportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedSliceSupportList_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_ASN_NGAP_ExtendedSliceSupportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceSupportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExtendedSliceSupportList_specs_1 = { + sizeof(struct ASN_NGAP_ExtendedSliceSupportList), + offsetof(struct ASN_NGAP_ExtendedSliceSupportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedSliceSupportList = { + "ExtendedSliceSupportList", + "ExtendedSliceSupportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedSliceSupportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedSliceSupportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ExtendedSliceSupportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ExtendedSliceSupportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.h b/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.h new file mode 100644 index 0000000..7d0e8b3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedSliceSupportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedSliceSupportList_H_ +#define _ASN_NGAP_ExtendedSliceSupportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SliceSupportItem; + +/* ASN_NGAP_ExtendedSliceSupportList */ +typedef struct ASN_NGAP_ExtendedSliceSupportList { + A_SEQUENCE_OF(struct ASN_NGAP_SliceSupportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExtendedSliceSupportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedSliceSupportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ExtendedSliceSupportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExtendedSliceSupportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedSliceSupportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedSliceSupportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.c b/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.c new file mode 100644 index 0000000..29d9866 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ExtendedUEIdentityIndexValue.h" + +int +ASN_NGAP_ExtendedUEIdentityIndexValue_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_ASN_NGAP_ExtendedUEIdentityIndexValue_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_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue = { + "ExtendedUEIdentityIndexValue", + "ExtendedUEIdentityIndexValue", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1, + sizeof(asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ExtendedUEIdentityIndexValue_constr_1, ASN_NGAP_ExtendedUEIdentityIndexValue_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.h b/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.h new file mode 100644 index 0000000..134cd97 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ExtendedUEIdentityIndexValue.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ExtendedUEIdentityIndexValue_H_ +#define _ASN_NGAP_ExtendedUEIdentityIndexValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ExtendedUEIdentityIndexValue */ +typedef BIT_STRING_t ASN_NGAP_ExtendedUEIdentityIndexValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ExtendedUEIdentityIndexValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue; +asn_struct_free_f ASN_NGAP_ExtendedUEIdentityIndexValue_free; +asn_struct_print_f ASN_NGAP_ExtendedUEIdentityIndexValue_print; +asn_constr_check_f ASN_NGAP_ExtendedUEIdentityIndexValue_constraint; +ber_type_decoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_decode_ber; +der_type_encoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_encode_der; +xer_type_decoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_decode_xer; +xer_type_encoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_encode_xer; +per_type_decoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_decode_uper; +per_type_encoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_encode_uper; +per_type_decoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_decode_aper; +per_type_encoder_f ASN_NGAP_ExtendedUEIdentityIndexValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ExtendedUEIdentityIndexValue_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FailureIndication.c b/src/asn/ngap/ASN_NGAP_FailureIndication.c new file mode 100644 index 0000000..2d70607 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FailureIndication.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FailureIndication.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FailureIndication, uERLFReportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERLFReportContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FailureIndication, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FailureIndication_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uERLFReportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FailureIndication_specs_1 = { + sizeof(struct ASN_NGAP_FailureIndication), + offsetof(struct ASN_NGAP_FailureIndication, _asn_ctx), + asn_MAP_ASN_NGAP_FailureIndication_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FailureIndication_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FailureIndication = { + "FailureIndication", + "FailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FailureIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_FailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FailureIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FailureIndication_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_FailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FailureIndication.h b/src/asn/ngap/ASN_NGAP_FailureIndication.h new file mode 100644 index 0000000..ec73549 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FailureIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FailureIndication_H_ +#define _ASN_NGAP_FailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UERLFReportContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FailureIndication */ +typedef struct ASN_NGAP_FailureIndication { + ASN_NGAP_UERLFReportContainer_t uERLFReportContainer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FailureIndication_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FailureIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FirstDLCount.c b/src/asn/ngap/ASN_NGAP_FirstDLCount.c new file mode 100644 index 0000000..cbb2faa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FirstDLCount.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FirstDLCount.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FirstDLCount_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FirstDLCount, dRBsSubjectToEarlyStatusTransfer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBsSubjectToEarlyStatusTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FirstDLCount, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_FirstDLCount_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FirstDLCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FirstDLCount_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBsSubjectToEarlyStatusTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FirstDLCount_specs_1 = { + sizeof(struct ASN_NGAP_FirstDLCount), + offsetof(struct ASN_NGAP_FirstDLCount, _asn_ctx), + asn_MAP_ASN_NGAP_FirstDLCount_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FirstDLCount_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FirstDLCount = { + "FirstDLCount", + "FirstDLCount", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FirstDLCount_tags_1, + sizeof(asn_DEF_ASN_NGAP_FirstDLCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FirstDLCount_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FirstDLCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FirstDLCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FirstDLCount_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FirstDLCount_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_FirstDLCount_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FirstDLCount.h b/src/asn/ngap/ASN_NGAP_FirstDLCount.h new file mode 100644 index 0000000..d091612 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FirstDLCount.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FirstDLCount_H_ +#define _ASN_NGAP_FirstDLCount_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRBsSubjectToEarlyStatusTransfer-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FirstDLCount */ +typedef struct ASN_NGAP_FirstDLCount { + ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_List_t dRBsSubjectToEarlyStatusTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FirstDLCount_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FirstDLCount; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FirstDLCount_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FirstDLCount_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FirstDLCount_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.c b/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.c new file mode 100644 index 0000000..29dbac9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveG-ProSeAuthorized.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, fiveGProSeDirectDiscovery), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSeDirectDiscovery" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, fiveGProSeDirectCommunication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSeDirectCommunication" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, fiveGProSeLayer2UEtoNetworkRelay), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSeLayer2UEtoNetworkRelay" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, fiveGProSeLayer3UEtoNetworkRelay), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSeLayer3UEtoNetworkRelay" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, fiveGProSeLayer2RemoteUE), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSeLayer2RemoteUE" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGProSeDirectDiscovery */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fiveGProSeDirectCommunication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGProSeLayer2UEtoNetworkRelay */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveGProSeLayer3UEtoNetworkRelay */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fiveGProSeLayer2RemoteUE */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_specs_1 = { + sizeof(struct ASN_NGAP_FiveG_ProSeAuthorized), + offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized = { + "FiveG-ProSeAuthorized", + "FiveG-ProSeAuthorized", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.h b/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.h new file mode 100644 index 0000000..9bc884c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-ProSeAuthorized.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveG_ProSeAuthorized_H_ +#define _ASN_NGAP_FiveG_ProSeAuthorized_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveGProSeDirectDiscovery.h" +#include "ASN_NGAP_FiveGProSeDirectCommunication.h" +#include "ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h" +#include "ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h" +#include "ASN_NGAP_FiveGProSeLayer2RemoteUE.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FiveG-ProSeAuthorized */ +typedef struct ASN_NGAP_FiveG_ProSeAuthorized { + ASN_NGAP_FiveGProSeDirectDiscovery_t *fiveGProSeDirectDiscovery; /* OPTIONAL */ + ASN_NGAP_FiveGProSeDirectCommunication_t *fiveGProSeDirectCommunication; /* OPTIONAL */ + ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_t *fiveGProSeLayer2UEtoNetworkRelay; /* OPTIONAL */ + ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_t *fiveGProSeLayer3UEtoNetworkRelay; /* OPTIONAL */ + ASN_NGAP_FiveGProSeLayer2RemoteUE_t *fiveGProSeLayer2RemoteUE; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_ProSeAuthorized_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveG_ProSeAuthorized_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.c b/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.c new file mode 100644 index 0000000..90f8d5b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveG-ProSePC5QoSParameters.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters, fiveGProSepc5QoSFlowList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSepc5QoSFlowList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters, fiveGProSepc5LinkAggregateBitRates), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGProSepc5LinkAggregateBitRates" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGProSepc5QoSFlowList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fiveGProSepc5LinkAggregateBitRates */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_specs_1 = { + sizeof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters), + offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters = { + "FiveG-ProSePC5QoSParameters", + "FiveG-ProSePC5QoSParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.h b/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.h new file mode 100644 index 0000000..f524ccd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-ProSePC5QoSParameters.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveG_ProSePC5QoSParameters_H_ +#define _ASN_NGAP_FiveG_ProSePC5QoSParameters_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveGProSePC5QoSFlowList.h" +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FiveG-ProSePC5QoSParameters */ +typedef struct ASN_NGAP_FiveG_ProSePC5QoSParameters { + ASN_NGAP_FiveGProSePC5QoSFlowList_t fiveGProSepc5QoSFlowList; + ASN_NGAP_BitRate_t *fiveGProSepc5LinkAggregateBitRates; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_ProSePC5QoSParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveG_ProSePC5QoSParameters_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.c b/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.c new file mode 100644 index 0000000..591b3fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveG-S-TMSI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_S_TMSI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI, aMFSetID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFSetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI, aMFPointer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFPointer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFPointer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI, fiveG_TMSI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveG_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveG-TMSI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FiveG_S_TMSI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FiveG_S_TMSI_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_S_TMSI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMFSetID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMFPointer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveG-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_S_TMSI_specs_1 = { + sizeof(struct ASN_NGAP_FiveG_S_TMSI), + offsetof(struct ASN_NGAP_FiveG_S_TMSI, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_S_TMSI_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FiveG_S_TMSI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_S_TMSI = { + "FiveG-S-TMSI", + "FiveG-S-TMSI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_S_TMSI_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_S_TMSI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.h b/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.h new file mode 100644 index 0000000..3a2bba2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-S-TMSI.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveG_S_TMSI_H_ +#define _ASN_NGAP_FiveG_S_TMSI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMFSetID.h" +#include "ASN_NGAP_AMFPointer.h" +#include "ASN_NGAP_FiveG-TMSI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FiveG-S-TMSI */ +typedef struct ASN_NGAP_FiveG_S_TMSI { + ASN_NGAP_AMFSetID_t aMFSetID; + ASN_NGAP_AMFPointer_t aMFPointer; + ASN_NGAP_FiveG_TMSI_t fiveG_TMSI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_S_TMSI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_S_TMSI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_S_TMSI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_S_TMSI_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveG_S_TMSI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveG-TMSI.c b/src/asn/ngap/ASN_NGAP_FiveG-TMSI.c new file mode 100644 index 0000000..d3b6c95 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-TMSI.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveG-TMSI.h" + +int +ASN_NGAP_FiveG_TMSI_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_ASN_NGAP_FiveG_TMSI_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_ASN_NGAP_FiveG_TMSI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_TMSI = { + "FiveG-TMSI", + "FiveG-TMSI", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveG_TMSI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveG_TMSI_constr_1, ASN_NGAP_FiveG_TMSI_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveG-TMSI.h b/src/asn/ngap/ASN_NGAP_FiveG-TMSI.h new file mode 100644 index 0000000..b9ae903 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveG-TMSI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveG_TMSI_H_ +#define _ASN_NGAP_FiveG_TMSI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_FiveG-TMSI */ +typedef OCTET_STRING_t ASN_NGAP_FiveG_TMSI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveG_TMSI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_TMSI; +asn_struct_free_f ASN_NGAP_FiveG_TMSI_free; +asn_struct_print_f ASN_NGAP_FiveG_TMSI_print; +asn_constr_check_f ASN_NGAP_FiveG_TMSI_constraint; +ber_type_decoder_f ASN_NGAP_FiveG_TMSI_decode_ber; +der_type_encoder_f ASN_NGAP_FiveG_TMSI_encode_der; +xer_type_decoder_f ASN_NGAP_FiveG_TMSI_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveG_TMSI_encode_xer; +per_type_decoder_f ASN_NGAP_FiveG_TMSI_decode_uper; +per_type_encoder_f ASN_NGAP_FiveG_TMSI_encode_uper; +per_type_decoder_f ASN_NGAP_FiveG_TMSI_decode_aper; +per_type_encoder_f ASN_NGAP_FiveG_TMSI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveG_TMSI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.c b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.c new file mode 100644 index 0000000..2e251c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSeDirectCommunication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeDirectCommunication_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_ASN_NGAP_FiveGProSeDirectCommunication_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_FiveGProSeDirectCommunication_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeDirectCommunication_specs_1 = { + asn_MAP_ASN_NGAP_FiveGProSeDirectCommunication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_FiveGProSeDirectCommunication_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_ASN_NGAP_FiveGProSeDirectCommunication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication = { + "FiveGProSeDirectCommunication", + "FiveGProSeDirectCommunication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSeDirectCommunication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_FiveGProSeDirectCommunication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.h b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.h new file mode 100644 index 0000000..842c182 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectCommunication.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSeDirectCommunication_H_ +#define _ASN_NGAP_FiveGProSeDirectCommunication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_FiveGProSeDirectCommunication { + ASN_NGAP_FiveGProSeDirectCommunication_authorized = 0, + ASN_NGAP_FiveGProSeDirectCommunication_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_FiveGProSeDirectCommunication; + +/* ASN_NGAP_FiveGProSeDirectCommunication */ +typedef long ASN_NGAP_FiveGProSeDirectCommunication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeDirectCommunication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeDirectCommunication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeDirectCommunication_specs_1; +asn_struct_free_f ASN_NGAP_FiveGProSeDirectCommunication_free; +asn_struct_print_f ASN_NGAP_FiveGProSeDirectCommunication_print; +asn_constr_check_f ASN_NGAP_FiveGProSeDirectCommunication_constraint; +ber_type_decoder_f ASN_NGAP_FiveGProSeDirectCommunication_decode_ber; +der_type_encoder_f ASN_NGAP_FiveGProSeDirectCommunication_encode_der; +xer_type_decoder_f ASN_NGAP_FiveGProSeDirectCommunication_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveGProSeDirectCommunication_encode_xer; +per_type_decoder_f ASN_NGAP_FiveGProSeDirectCommunication_decode_uper; +per_type_encoder_f ASN_NGAP_FiveGProSeDirectCommunication_encode_uper; +per_type_decoder_f ASN_NGAP_FiveGProSeDirectCommunication_decode_aper; +per_type_encoder_f ASN_NGAP_FiveGProSeDirectCommunication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSeDirectCommunication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c new file mode 100644 index 0000000..ed0e7db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSeDirectDiscovery.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeDirectDiscovery_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_ASN_NGAP_FiveGProSeDirectDiscovery_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_FiveGProSeDirectDiscovery_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeDirectDiscovery_specs_1 = { + asn_MAP_ASN_NGAP_FiveGProSeDirectDiscovery_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_FiveGProSeDirectDiscovery_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_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery = { + "FiveGProSeDirectDiscovery", + "FiveGProSeDirectDiscovery", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSeDirectDiscovery_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_FiveGProSeDirectDiscovery_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h new file mode 100644 index 0000000..4f03489 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeDirectDiscovery.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSeDirectDiscovery_H_ +#define _ASN_NGAP_FiveGProSeDirectDiscovery_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_FiveGProSeDirectDiscovery { + ASN_NGAP_FiveGProSeDirectDiscovery_authorized = 0, + ASN_NGAP_FiveGProSeDirectDiscovery_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_FiveGProSeDirectDiscovery; + +/* ASN_NGAP_FiveGProSeDirectDiscovery */ +typedef long ASN_NGAP_FiveGProSeDirectDiscovery_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeDirectDiscovery_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeDirectDiscovery; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeDirectDiscovery_specs_1; +asn_struct_free_f ASN_NGAP_FiveGProSeDirectDiscovery_free; +asn_struct_print_f ASN_NGAP_FiveGProSeDirectDiscovery_print; +asn_constr_check_f ASN_NGAP_FiveGProSeDirectDiscovery_constraint; +ber_type_decoder_f ASN_NGAP_FiveGProSeDirectDiscovery_decode_ber; +der_type_encoder_f ASN_NGAP_FiveGProSeDirectDiscovery_encode_der; +xer_type_decoder_f ASN_NGAP_FiveGProSeDirectDiscovery_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveGProSeDirectDiscovery_encode_xer; +per_type_decoder_f ASN_NGAP_FiveGProSeDirectDiscovery_decode_uper; +per_type_encoder_f ASN_NGAP_FiveGProSeDirectDiscovery_encode_uper; +per_type_decoder_f ASN_NGAP_FiveGProSeDirectDiscovery_decode_aper; +per_type_encoder_f ASN_NGAP_FiveGProSeDirectDiscovery_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSeDirectDiscovery_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c new file mode 100644 index 0000000..0dcdc0f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSeLayer2RemoteUE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer2RemoteUE_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_ASN_NGAP_FiveGProSeLayer2RemoteUE_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_FiveGProSeLayer2RemoteUE_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer2RemoteUE_specs_1 = { + asn_MAP_ASN_NGAP_FiveGProSeLayer2RemoteUE_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_FiveGProSeLayer2RemoteUE_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_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE = { + "FiveGProSeLayer2RemoteUE", + "FiveGProSeLayer2RemoteUE", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSeLayer2RemoteUE_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_FiveGProSeLayer2RemoteUE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h new file mode 100644 index 0000000..1f60a20 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2RemoteUE.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSeLayer2RemoteUE_H_ +#define _ASN_NGAP_FiveGProSeLayer2RemoteUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_FiveGProSeLayer2RemoteUE { + ASN_NGAP_FiveGProSeLayer2RemoteUE_authorized = 0, + ASN_NGAP_FiveGProSeLayer2RemoteUE_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_FiveGProSeLayer2RemoteUE; + +/* ASN_NGAP_FiveGProSeLayer2RemoteUE */ +typedef long ASN_NGAP_FiveGProSeLayer2RemoteUE_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer2RemoteUE_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer2RemoteUE; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer2RemoteUE_specs_1; +asn_struct_free_f ASN_NGAP_FiveGProSeLayer2RemoteUE_free; +asn_struct_print_f ASN_NGAP_FiveGProSeLayer2RemoteUE_print; +asn_constr_check_f ASN_NGAP_FiveGProSeLayer2RemoteUE_constraint; +ber_type_decoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_decode_ber; +der_type_encoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_encode_der; +xer_type_decoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_encode_xer; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_decode_uper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_encode_uper; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_decode_aper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer2RemoteUE_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSeLayer2RemoteUE_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c new file mode 100644 index 0000000..a88a06d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_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_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_specs_1 = { + asn_MAP_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_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_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay = { + "FiveGProSeLayer2UEtoNetworkRelay", + "FiveGProSeLayer2UEtoNetworkRelay", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h new file mode 100644 index 0000000..5ac70a4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_H_ +#define _ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay { + ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_authorized = 0, + ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay; + +/* ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay */ +typedef long ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_specs_1; +asn_struct_free_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_free; +asn_struct_print_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_print; +asn_constr_check_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_constraint; +ber_type_decoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_decode_ber; +der_type_encoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_der; +xer_type_decoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_xer; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_decode_uper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_uper; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_decode_aper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSeLayer2UEtoNetworkRelay_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c new file mode 100644 index 0000000..cd29a74 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_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_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_specs_1 = { + asn_MAP_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_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_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay = { + "FiveGProSeLayer3UEtoNetworkRelay", + "FiveGProSeLayer3UEtoNetworkRelay", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h new file mode 100644 index 0000000..2b9ff6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_H_ +#define _ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay { + ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_authorized = 0, + ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay; + +/* ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay */ +typedef long ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_specs_1; +asn_struct_free_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_free; +asn_struct_print_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_print; +asn_constr_check_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_constraint; +ber_type_decoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_decode_ber; +der_type_encoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_der; +xer_type_decoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_xer; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_decode_uper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_uper; +per_type_decoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_decode_aper; +per_type_encoder_f ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSeLayer3UEtoNetworkRelay_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c b/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c new file mode 100644 index 0000000..d3b900f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSePC5FlowBitRates.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates, fiveGproSeguaranteedFlowBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGproSeguaranteedFlowBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates, fiveGproSemaximumFlowBitRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGproSemaximumFlowBitRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGproSeguaranteedFlowBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fiveGproSemaximumFlowBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_specs_1 = { + sizeof(struct ASN_NGAP_FiveGProSePC5FlowBitRates), + offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates, _asn_ctx), + asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates = { + "FiveGProSePC5FlowBitRates", + "FiveGProSePC5FlowBitRates", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h b/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h new file mode 100644 index 0000000..a27a252 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5FlowBitRates.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSePC5FlowBitRates_H_ +#define _ASN_NGAP_FiveGProSePC5FlowBitRates_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FiveGProSePC5FlowBitRates */ +typedef struct ASN_NGAP_FiveGProSePC5FlowBitRates { + ASN_NGAP_BitRate_t fiveGproSeguaranteedFlowBitRate; + ASN_NGAP_BitRate_t fiveGproSemaximumFlowBitRate; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveGProSePC5FlowBitRates_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSePC5FlowBitRates_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c new file mode 100644 index 0000000..b2ba058 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSePC5QoSFlowItem.h" + +#include "ASN_NGAP_FiveGProSePC5FlowBitRates.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem, fiveGproSepQI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGproSepQI" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem, fiveGproSepc5FlowBitRates), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGproSepc5FlowBitRates" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem, fiveGproSerange), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveGproSerange" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveGproSepQI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fiveGproSepc5FlowBitRates */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGproSerange */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_specs_1 = { + sizeof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem), + offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem, _asn_ctx), + asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem = { + "FiveGProSePC5QoSFlowItem", + "FiveGProSePC5QoSFlowItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h new file mode 100644 index 0000000..aac006e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSePC5QoSFlowItem_H_ +#define _ASN_NGAP_FiveGProSePC5QoSFlowItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveQI.h" +#include "ASN_NGAP_Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_FiveGProSePC5FlowBitRates; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FiveGProSePC5QoSFlowItem */ +typedef struct ASN_NGAP_FiveGProSePC5QoSFlowItem { + ASN_NGAP_FiveQI_t fiveGproSepQI; + struct ASN_NGAP_FiveGProSePC5FlowBitRates *fiveGproSepc5FlowBitRates; /* OPTIONAL */ + ASN_NGAP_Range_t *fiveGproSerange; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveGProSePC5QoSFlowItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSePC5QoSFlowItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c new file mode 100644 index 0000000..353e93f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveGProSePC5QoSFlowList.h" + +#include "ASN_NGAP_FiveGProSePC5QoSFlowItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSePC5QoSFlowList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 2048 } /* (SIZE(1..2048)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowList_specs_1 = { + sizeof(struct ASN_NGAP_FiveGProSePC5QoSFlowList), + offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList = { + "FiveGProSePC5QoSFlowList", + "FiveGProSePC5QoSFlowList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveGProSePC5QoSFlowList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h new file mode 100644 index 0000000..8bd375d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveGProSePC5QoSFlowList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveGProSePC5QoSFlowList_H_ +#define _ASN_NGAP_FiveGProSePC5QoSFlowList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_FiveGProSePC5QoSFlowItem; + +/* ASN_NGAP_FiveGProSePC5QoSFlowList */ +typedef struct ASN_NGAP_FiveGProSePC5QoSFlowList { + A_SEQUENCE_OF(struct ASN_NGAP_FiveGProSePC5QoSFlowItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveGProSePC5QoSFlowList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveGProSePC5QoSFlowList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveGProSePC5QoSFlowList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FiveQI.c b/src/asn/ngap/ASN_NGAP_FiveQI.c new file mode 100644 index 0000000..a0750f2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveQI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FiveQI.h" + +int +ASN_NGAP_FiveQI_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_ASN_NGAP_FiveQI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_FiveQI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveQI = { + "FiveQI", + "FiveQI", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_FiveQI_tags_1, + sizeof(asn_DEF_ASN_NGAP_FiveQI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveQI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveQI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveQI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FiveQI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_FiveQI_constr_1, ASN_NGAP_FiveQI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FiveQI.h b/src/asn/ngap/ASN_NGAP_FiveQI.h new file mode 100644 index 0000000..18888f0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FiveQI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FiveQI_H_ +#define _ASN_NGAP_FiveQI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_FiveQI */ +typedef long ASN_NGAP_FiveQI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_FiveQI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveQI; +asn_struct_free_f ASN_NGAP_FiveQI_free; +asn_struct_print_f ASN_NGAP_FiveQI_print; +asn_constr_check_f ASN_NGAP_FiveQI_constraint; +ber_type_decoder_f ASN_NGAP_FiveQI_decode_ber; +der_type_encoder_f ASN_NGAP_FiveQI_encode_der; +xer_type_decoder_f ASN_NGAP_FiveQI_decode_xer; +xer_type_encoder_f ASN_NGAP_FiveQI_encode_xer; +per_type_decoder_f ASN_NGAP_FiveQI_decode_uper; +per_type_encoder_f ASN_NGAP_FiveQI_encode_uper; +per_type_decoder_f ASN_NGAP_FiveQI_decode_aper; +per_type_encoder_f ASN_NGAP_FiveQI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FiveQI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.c b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.c new file mode 100644 index 0000000..3dc18b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ForbiddenAreaInformation-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item, forbiddenTACs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ForbiddenTACs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "forbiddenTACs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (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_ASN_NGAP_ForbiddenAreaInformation_Item_specs_1 = { + sizeof(struct ASN_NGAP_ForbiddenAreaInformation_Item), + offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item, _asn_ctx), + asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item = { + "ForbiddenAreaInformation-Item", + "ForbiddenAreaInformation-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ForbiddenAreaInformation_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.h b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.h new file mode 100644 index 0000000..122b7e4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ForbiddenAreaInformation_Item_H_ +#define _ASN_NGAP_ForbiddenAreaInformation_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_ForbiddenTACs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ForbiddenAreaInformation-Item */ +typedef struct ASN_NGAP_ForbiddenAreaInformation_Item { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_ForbiddenTACs_t forbiddenTACs; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ForbiddenAreaInformation_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ForbiddenAreaInformation_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ForbiddenAreaInformation_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.c b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.c new file mode 100644 index 0000000..dbe10a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ForbiddenAreaInformation.h" + +#include "ASN_NGAP_ForbiddenAreaInformation-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ForbiddenAreaInformation_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_ASN_NGAP_ForbiddenAreaInformation_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ForbiddenAreaInformation_specs_1 = { + sizeof(struct ASN_NGAP_ForbiddenAreaInformation), + offsetof(struct ASN_NGAP_ForbiddenAreaInformation, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation = { + "ForbiddenAreaInformation", + "ForbiddenAreaInformation", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ForbiddenAreaInformation_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ForbiddenAreaInformation_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ForbiddenAreaInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.h b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.h new file mode 100644 index 0000000..9135f37 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenAreaInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ForbiddenAreaInformation_H_ +#define _ASN_NGAP_ForbiddenAreaInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ForbiddenAreaInformation_Item; + +/* ASN_NGAP_ForbiddenAreaInformation */ +typedef struct ASN_NGAP_ForbiddenAreaInformation { + A_SEQUENCE_OF(struct ASN_NGAP_ForbiddenAreaInformation_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ForbiddenAreaInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ForbiddenAreaInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenAreaInformation_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ForbiddenAreaInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ForbiddenAreaInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenTACs.c b/src/asn/ngap/ASN_NGAP_ForbiddenTACs.c new file mode 100644 index 0000000..c181f9a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenTACs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ForbiddenTACs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_ForbiddenTACs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ForbiddenTACs_specs_1 = { + sizeof(struct ASN_NGAP_ForbiddenTACs), + offsetof(struct ASN_NGAP_ForbiddenTACs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenTACs = { + "ForbiddenTACs", + "ForbiddenTACs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1, + sizeof(asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenTACs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ForbiddenTACs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ForbiddenTACs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ForbiddenTACs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ForbiddenTACs.h b/src/asn/ngap/ASN_NGAP_ForbiddenTACs.h new file mode 100644 index 0000000..41a4bb7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ForbiddenTACs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ForbiddenTACs_H_ +#define _ASN_NGAP_ForbiddenTACs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ForbiddenTACs */ +typedef struct ASN_NGAP_ForbiddenTACs { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ForbiddenTACs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenTACs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ForbiddenTACs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenTACs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ForbiddenTACs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ForbiddenTACs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.c b/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.c new file mode 100644 index 0000000..e8637cf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FromEUTRANtoNGRAN.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN, sourceeNBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONeNBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceeNBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN, targetNGRANnodeID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetNGRANnodeID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceeNBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetNGRANnodeID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_specs_1 = { + sizeof(struct ASN_NGAP_FromEUTRANtoNGRAN), + offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN, _asn_ctx), + asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN = { + "FromEUTRANtoNGRAN", + "FromEUTRANtoNGRAN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1, + sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.h b/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.h new file mode 100644 index 0000000..02a9e02 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FromEUTRANtoNGRAN.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FromEUTRANtoNGRAN_H_ +#define _ASN_NGAP_FromEUTRANtoNGRAN_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntersystemSONeNBID.h" +#include "ASN_NGAP_IntersystemSONNGRANnodeID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FromEUTRANtoNGRAN */ +typedef struct ASN_NGAP_FromEUTRANtoNGRAN { + ASN_NGAP_IntersystemSONeNBID_t sourceeNBID; + ASN_NGAP_IntersystemSONNGRANnodeID_t targetNGRANnodeID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FromEUTRANtoNGRAN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FromEUTRANtoNGRAN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.c b/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.c new file mode 100644 index 0000000..06651fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_FromNGRANtoEUTRAN.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN, sourceNGRANnodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceNGRANnodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN, targeteNBID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONeNBID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targeteNBID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceNGRANnodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targeteNBID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_specs_1 = { + sizeof(struct ASN_NGAP_FromNGRANtoEUTRAN), + offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN, _asn_ctx), + asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN = { + "FromNGRANtoEUTRAN", + "FromNGRANtoEUTRAN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1, + sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.h b/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.h new file mode 100644 index 0000000..7be838c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_FromNGRANtoEUTRAN.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_FromNGRANtoEUTRAN_H_ +#define _ASN_NGAP_FromNGRANtoEUTRAN_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntersystemSONNGRANnodeID.h" +#include "ASN_NGAP_IntersystemSONeNBID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_FromNGRANtoEUTRAN */ +typedef struct ASN_NGAP_FromNGRANtoEUTRAN { + ASN_NGAP_IntersystemSONNGRANnodeID_t sourceNGRANnodeID; + ASN_NGAP_IntersystemSONeNBID_t targeteNBID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FromNGRANtoEUTRAN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_FromNGRANtoEUTRAN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GBR-QosInformation.c b/src/asn/ngap/ASN_NGAP_GBR-QosInformation.c new file mode 100644 index 0000000..1da4677 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GBR-QosInformation.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GBR-QosInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GBR_QosInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation, maximumFlowBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumFlowBitRateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation, maximumFlowBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumFlowBitRateUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation, guaranteedFlowBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation, guaranteedFlowBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRateUL" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_GBR_QosInformation, notificationControl), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NotificationControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notificationControl" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_GBR_QosInformation, maximumPacketLossRateDL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketLossRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumPacketLossRateDL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_GBR_QosInformation, maximumPacketLossRateUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PacketLossRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumPacketLossRateUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GBR_QosInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GBR_QosInformation_oms_1[] = { 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GBR_QosInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maximumFlowBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maximumFlowBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* guaranteedFlowBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* guaranteedFlowBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* notificationControl */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maximumPacketLossRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* maximumPacketLossRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GBR_QosInformation_specs_1 = { + sizeof(struct ASN_NGAP_GBR_QosInformation), + offsetof(struct ASN_NGAP_GBR_QosInformation, _asn_ctx), + asn_MAP_ASN_NGAP_GBR_QosInformation_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GBR_QosInformation_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GBR_QosInformation = { + "GBR-QosInformation", + "GBR-QosInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GBR_QosInformation_1, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_GBR_QosInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GBR-QosInformation.h b/src/asn/ngap/ASN_NGAP_GBR-QosInformation.h new file mode 100644 index 0000000..a202c6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GBR-QosInformation.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GBR_QosInformation_H_ +#define _ASN_NGAP_GBR_QosInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include "ASN_NGAP_NotificationControl.h" +#include "ASN_NGAP_PacketLossRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GBR-QosInformation */ +typedef struct ASN_NGAP_GBR_QosInformation { + ASN_NGAP_BitRate_t maximumFlowBitRateDL; + ASN_NGAP_BitRate_t maximumFlowBitRateUL; + ASN_NGAP_BitRate_t guaranteedFlowBitRateDL; + ASN_NGAP_BitRate_t guaranteedFlowBitRateUL; + ASN_NGAP_NotificationControl_t *notificationControl; /* OPTIONAL */ + ASN_NGAP_PacketLossRate_t *maximumPacketLossRateDL; /* OPTIONAL */ + ASN_NGAP_PacketLossRate_t *maximumPacketLossRateUL; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GBR_QosInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GBR_QosInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GBR_QosInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GBR_QosInformation_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GBR_QosInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GNB-ID.c b/src/asn/ngap/ASN_NGAP_GNB-ID.c new file mode 100644 index 0000000..3e7c162 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GNB-ID.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GNB-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_GNB_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_ASN_NGAP_GNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_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_ASN_NGAP_gNB_ID_constr_2, memb_ASN_NGAP_gNB_ID_constraint_1 }, + 0, 0, /* No default value */ + "gNB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_GNB_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_GNB_ID_specs_1 = { + sizeof(struct ASN_NGAP_GNB_ID), + offsetof(struct ASN_NGAP_GNB_ID, _asn_ctx), + offsetof(struct ASN_NGAP_GNB_ID, present), + sizeof(((struct ASN_NGAP_GNB_ID *)0)->present), + asn_MAP_ASN_NGAP_GNB_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_GNB_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_GNB_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_GNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GNB-ID.h b/src/asn/ngap/ASN_NGAP_GNB-ID.h new file mode 100644 index 0000000..77bcb0f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GNB-ID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GNB_ID_H_ +#define _ASN_NGAP_GNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_GNB_ID_PR { + ASN_NGAP_GNB_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_GNB_ID_PR_gNB_ID, + ASN_NGAP_GNB_ID_PR_choice_Extensions +} ASN_NGAP_GNB_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_GNB-ID */ +typedef struct ASN_NGAP_GNB_ID { + ASN_NGAP_GNB_ID_PR present; + union ASN_NGAP_GNB_ID_u { + BIT_STRING_t gNB_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GNB_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_GNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GNB_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_GNB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GNB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GNBSetID.c b/src/asn/ngap/ASN_NGAP_GNBSetID.c new file mode 100644 index 0000000..5f14105 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GNBSetID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GNBSetID.h" + +int +ASN_NGAP_GNBSetID_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 == 22)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_GNBSetID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 22, 22 } /* (SIZE(22..22)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GNBSetID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GNBSetID = { + "GNBSetID", + "GNBSetID", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_GNBSetID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GNBSetID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GNBSetID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GNBSetID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GNBSetID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GNBSetID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_GNBSetID_constr_1, ASN_NGAP_GNBSetID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GNBSetID.h b/src/asn/ngap/ASN_NGAP_GNBSetID.h new file mode 100644 index 0000000..968f934 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GNBSetID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GNBSetID_H_ +#define _ASN_NGAP_GNBSetID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_GNBSetID */ +typedef BIT_STRING_t ASN_NGAP_GNBSetID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_GNBSetID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GNBSetID; +asn_struct_free_f ASN_NGAP_GNBSetID_free; +asn_struct_print_f ASN_NGAP_GNBSetID_print; +asn_constr_check_f ASN_NGAP_GNBSetID_constraint; +ber_type_decoder_f ASN_NGAP_GNBSetID_decode_ber; +der_type_encoder_f ASN_NGAP_GNBSetID_encode_der; +xer_type_decoder_f ASN_NGAP_GNBSetID_decode_xer; +xer_type_encoder_f ASN_NGAP_GNBSetID_encode_xer; +per_type_decoder_f ASN_NGAP_GNBSetID_decode_uper; +per_type_encoder_f ASN_NGAP_GNBSetID_encode_uper; +per_type_decoder_f ASN_NGAP_GNBSetID_decode_aper; +per_type_encoder_f ASN_NGAP_GNBSetID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GNBSetID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GTP-TEID.c b/src/asn/ngap/ASN_NGAP_GTP-TEID.c new file mode 100644 index 0000000..5f81de7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GTP-TEID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GTP-TEID.h" + +int +ASN_NGAP_GTP_TEID_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_ASN_NGAP_GTP_TEID_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_ASN_NGAP_GTP_TEID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTP_TEID = { + "GTP-TEID", + "GTP-TEID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_GTP_TEID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GTP_TEID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GTP_TEID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GTP_TEID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GTP_TEID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GTP_TEID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_GTP_TEID_constr_1, ASN_NGAP_GTP_TEID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GTP-TEID.h b/src/asn/ngap/ASN_NGAP_GTP-TEID.h new file mode 100644 index 0000000..a64d1f4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GTP-TEID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GTP_TEID_H_ +#define _ASN_NGAP_GTP_TEID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_GTP-TEID */ +typedef OCTET_STRING_t ASN_NGAP_GTP_TEID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_GTP_TEID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTP_TEID; +asn_struct_free_f ASN_NGAP_GTP_TEID_free; +asn_struct_print_f ASN_NGAP_GTP_TEID_print; +asn_constr_check_f ASN_NGAP_GTP_TEID_constraint; +ber_type_decoder_f ASN_NGAP_GTP_TEID_decode_ber; +der_type_encoder_f ASN_NGAP_GTP_TEID_encode_der; +xer_type_decoder_f ASN_NGAP_GTP_TEID_decode_xer; +xer_type_encoder_f ASN_NGAP_GTP_TEID_encode_xer; +per_type_decoder_f ASN_NGAP_GTP_TEID_decode_uper; +per_type_encoder_f ASN_NGAP_GTP_TEID_encode_uper; +per_type_decoder_f ASN_NGAP_GTP_TEID_decode_aper; +per_type_encoder_f ASN_NGAP_GTP_TEID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GTP_TEID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GTPTunnel.c b/src/asn/ngap/ASN_NGAP_GTPTunnel.c new file mode 100644 index 0000000..b140524 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GTPTunnel.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GTPTunnel.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GTPTunnel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GTPTunnel, transportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GTPTunnel, gTP_TEID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GTP_TEID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTP-TEID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GTPTunnel, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GTPTunnel_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GTPTunnel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GTPTunnel_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_ASN_NGAP_GTPTunnel_specs_1 = { + sizeof(struct ASN_NGAP_GTPTunnel), + offsetof(struct ASN_NGAP_GTPTunnel, _asn_ctx), + asn_MAP_ASN_NGAP_GTPTunnel_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GTPTunnel_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTPTunnel = { + "GTPTunnel", + "GTPTunnel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GTPTunnel_tags_1, + sizeof(asn_DEF_ASN_NGAP_GTPTunnel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GTPTunnel_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GTPTunnel_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GTPTunnel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GTPTunnel_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GTPTunnel_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GTPTunnel_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GTPTunnel.h b/src/asn/ngap/ASN_NGAP_GTPTunnel.h new file mode 100644 index 0000000..86117e8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GTPTunnel.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GTPTunnel_H_ +#define _ASN_NGAP_GTPTunnel_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_GTP-TEID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GTPTunnel */ +typedef struct ASN_NGAP_GTPTunnel { + ASN_NGAP_TransportLayerAddress_t transportLayerAddress; + ASN_NGAP_GTP_TEID_t gTP_TEID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GTPTunnel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTPTunnel; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GTPTunnel_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GTPTunnel_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GTPTunnel_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GUAMI.c b/src/asn/ngap/ASN_NGAP_GUAMI.c new file mode 100644 index 0000000..779bff8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GUAMI.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GUAMI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GUAMI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI, aMFRegionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFRegionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFRegionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI, aMFSetID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFSetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI, aMFPointer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFPointer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFPointer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GUAMI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GUAMI_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GUAMI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GUAMI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMFRegionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aMFSetID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* aMFPointer */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GUAMI_specs_1 = { + sizeof(struct ASN_NGAP_GUAMI), + offsetof(struct ASN_NGAP_GUAMI, _asn_ctx), + asn_MAP_ASN_NGAP_GUAMI_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GUAMI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMI = { + "GUAMI", + "GUAMI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GUAMI_tags_1, + sizeof(asn_DEF_ASN_NGAP_GUAMI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GUAMI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GUAMI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GUAMI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GUAMI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GUAMI_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_GUAMI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GUAMI.h b/src/asn/ngap/ASN_NGAP_GUAMI.h new file mode 100644 index 0000000..189bf15 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GUAMI.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GUAMI_H_ +#define _ASN_NGAP_GUAMI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_AMFRegionID.h" +#include "ASN_NGAP_AMFSetID.h" +#include "ASN_NGAP_AMFPointer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GUAMI */ +typedef struct ASN_NGAP_GUAMI { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_AMFRegionID_t aMFRegionID; + ASN_NGAP_AMFSetID_t aMFSetID; + ASN_NGAP_AMFPointer_t aMFPointer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GUAMI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GUAMI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GUAMI_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GUAMI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GUAMIType.c b/src/asn/ngap/ASN_NGAP_GUAMIType.c new file mode 100644 index 0000000..9ac8925 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GUAMIType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GUAMIType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_GUAMIType_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_ASN_NGAP_GUAMIType_value2enum_1[] = { + { 0, 6, "native" }, + { 1, 6, "mapped" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_GUAMIType_enum2value_1[] = { + 1, /* mapped(1) */ + 0 /* native(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_GUAMIType_specs_1 = { + asn_MAP_ASN_NGAP_GUAMIType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_GUAMIType_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_ASN_NGAP_GUAMIType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMIType = { + "GUAMIType", + "GUAMIType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_GUAMIType_tags_1, + sizeof(asn_DEF_ASN_NGAP_GUAMIType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GUAMIType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GUAMIType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GUAMIType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GUAMIType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_GUAMIType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_GUAMIType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GUAMIType.h b/src/asn/ngap/ASN_NGAP_GUAMIType.h new file mode 100644 index 0000000..5b11d6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GUAMIType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GUAMIType_H_ +#define _ASN_NGAP_GUAMIType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_GUAMIType { + ASN_NGAP_GUAMIType_native = 0, + ASN_NGAP_GUAMIType_mapped = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_GUAMIType; + +/* ASN_NGAP_GUAMIType */ +typedef long ASN_NGAP_GUAMIType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_GUAMIType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMIType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_GUAMIType_specs_1; +asn_struct_free_f ASN_NGAP_GUAMIType_free; +asn_struct_print_f ASN_NGAP_GUAMIType_print; +asn_constr_check_f ASN_NGAP_GUAMIType_constraint; +ber_type_decoder_f ASN_NGAP_GUAMIType_decode_ber; +der_type_encoder_f ASN_NGAP_GUAMIType_encode_der; +xer_type_decoder_f ASN_NGAP_GUAMIType_decode_xer; +xer_type_encoder_f ASN_NGAP_GUAMIType_encode_xer; +per_type_decoder_f ASN_NGAP_GUAMIType_decode_uper; +per_type_encoder_f ASN_NGAP_GUAMIType_encode_uper; +per_type_decoder_f ASN_NGAP_GUAMIType_decode_aper; +per_type_encoder_f ASN_NGAP_GUAMIType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GUAMIType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.c b/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.c new file mode 100644 index 0000000..8275a5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalCable-ID-new.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalCable_ID_new_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalCable_ID_new, globalCable_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalCable_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalCable-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalCable_ID_new, tAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalCable_ID_new, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalCable_ID_new_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalCable_ID_new_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalCable-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalCable_ID_new_specs_1 = { + sizeof(struct ASN_NGAP_GlobalCable_ID_new), + offsetof(struct ASN_NGAP_GlobalCable_ID_new, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalCable_ID_new_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalCable_ID_new_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID_new = { + "GlobalCable-ID-new", + "GlobalCable-ID-new", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalCable_ID_new_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalCable_ID_new_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.h b/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.h new file mode 100644 index 0000000..41f0617 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalCable-ID-new.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalCable_ID_new_H_ +#define _ASN_NGAP_GlobalCable_ID_new_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalCable-ID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalCable-ID-new */ +typedef struct ASN_NGAP_GlobalCable_ID_new { + ASN_NGAP_GlobalCable_ID_t globalCable_ID; + ASN_NGAP_TAI_t tAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalCable_ID_new_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID_new; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalCable_ID_new_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalCable_ID_new_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalCable_ID_new_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalCable-ID.c b/src/asn/ngap/ASN_NGAP_GlobalCable-ID.c new file mode 100644 index 0000000..c243426 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalCable-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalCable-ID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID = { + "GlobalCable-ID", + "GlobalCable-ID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalCable-ID.h b/src/asn/ngap/ASN_NGAP_GlobalCable-ID.h new file mode 100644 index 0000000..d716a53 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalCable-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalCable_ID_H_ +#define _ASN_NGAP_GlobalCable_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_GlobalCable-ID */ +typedef OCTET_STRING_t ASN_NGAP_GlobalCable_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID; +asn_struct_free_f ASN_NGAP_GlobalCable_ID_free; +asn_struct_print_f ASN_NGAP_GlobalCable_ID_print; +asn_constr_check_f ASN_NGAP_GlobalCable_ID_constraint; +ber_type_decoder_f ASN_NGAP_GlobalCable_ID_decode_ber; +der_type_encoder_f ASN_NGAP_GlobalCable_ID_encode_der; +xer_type_decoder_f ASN_NGAP_GlobalCable_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_GlobalCable_ID_encode_xer; +per_type_decoder_f ASN_NGAP_GlobalCable_ID_decode_uper; +per_type_encoder_f ASN_NGAP_GlobalCable_ID_encode_uper; +per_type_decoder_f ASN_NGAP_GlobalCable_ID_decode_aper; +per_type_encoder_f ASN_NGAP_GlobalCable_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalCable_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalENB-ID.c b/src/asn/ngap/ASN_NGAP_GlobalENB-ID.c new file mode 100644 index 0000000..e8819d0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalENB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalENB-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalENB_ID, pLMNidentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNidentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalENB_ID, eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalENB_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalENB_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalENB_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalENB_ID), + offsetof(struct ASN_NGAP_GlobalENB_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalENB_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalENB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalENB_ID = { + "GlobalENB-ID", + "GlobalENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalENB_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalENB-ID.h b/src/asn/ngap/ASN_NGAP_GlobalENB-ID.h new file mode 100644 index 0000000..fb905f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalENB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalENB_ID_H_ +#define _ASN_NGAP_GlobalENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_ENB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalENB-ID */ +typedef struct ASN_NGAP_GlobalENB_ID { + ASN_NGAP_PLMNIdentity_t pLMNidentity; + ASN_NGAP_ENB_ID_t eNB_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalENB_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalENB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.c b/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.c new file mode 100644 index 0000000..5c36074 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalGNB-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalGNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalGNB_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalGNB_ID, gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalGNB_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalGNB_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalGNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (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_ASN_NGAP_GlobalGNB_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalGNB_ID), + offsetof(struct ASN_NGAP_GlobalGNB_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalGNB_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalGNB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalGNB_ID = { + "GlobalGNB-ID", + "GlobalGNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalGNB_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalGNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.h b/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.h new file mode 100644 index 0000000..983be0c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalGNB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalGNB_ID_H_ +#define _ASN_NGAP_GlobalGNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_GNB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalGNB-ID */ +typedef struct ASN_NGAP_GlobalGNB_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_GNB_ID_t gNB_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalGNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalGNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalGNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalGNB_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalGNB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalLine-ID.c b/src/asn/ngap/ASN_NGAP_GlobalLine-ID.c new file mode 100644 index 0000000..2e1a008 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalLine-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalLine-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalLine_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalLine_ID, globalLineIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalLineIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalLineIdentity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_GlobalLine_ID, lineType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LineType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lineType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalLine_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalLine_ID_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalLine_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalLineIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lineType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalLine_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalLine_ID), + offsetof(struct ASN_NGAP_GlobalLine_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalLine_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalLine_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLine_ID = { + "GlobalLine-ID", + "GlobalLine-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalLine_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalLine_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalLine-ID.h b/src/asn/ngap/ASN_NGAP_GlobalLine-ID.h new file mode 100644 index 0000000..17ecaa8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalLine-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalLine_ID_H_ +#define _ASN_NGAP_GlobalLine_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalLineIdentity.h" +#include "ASN_NGAP_LineType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalLine-ID */ +typedef struct ASN_NGAP_GlobalLine_ID { + ASN_NGAP_GlobalLineIdentity_t globalLineIdentity; + ASN_NGAP_LineType_t *lineType; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalLine_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLine_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalLine_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalLine_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalLine_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.c b/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.c new file mode 100644 index 0000000..d7fdb35 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalLineIdentity.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLineIdentity = { + "GlobalLineIdentity", + "GlobalLineIdentity", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalLineIdentity_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.h b/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.h new file mode 100644 index 0000000..8724ed9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalLineIdentity.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalLineIdentity_H_ +#define _ASN_NGAP_GlobalLineIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_GlobalLineIdentity */ +typedef OCTET_STRING_t ASN_NGAP_GlobalLineIdentity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLineIdentity; +asn_struct_free_f ASN_NGAP_GlobalLineIdentity_free; +asn_struct_print_f ASN_NGAP_GlobalLineIdentity_print; +asn_constr_check_f ASN_NGAP_GlobalLineIdentity_constraint; +ber_type_decoder_f ASN_NGAP_GlobalLineIdentity_decode_ber; +der_type_encoder_f ASN_NGAP_GlobalLineIdentity_encode_der; +xer_type_decoder_f ASN_NGAP_GlobalLineIdentity_decode_xer; +xer_type_encoder_f ASN_NGAP_GlobalLineIdentity_encode_xer; +per_type_decoder_f ASN_NGAP_GlobalLineIdentity_decode_uper; +per_type_encoder_f ASN_NGAP_GlobalLineIdentity_encode_uper; +per_type_decoder_f ASN_NGAP_GlobalLineIdentity_decode_aper; +per_type_encoder_f ASN_NGAP_GlobalLineIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalLineIdentity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.c b/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.c new file mode 100644 index 0000000..ff11ad2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalN3IWF-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalN3IWF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalN3IWF_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalN3IWF_ID, n3IWF_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_N3IWF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n3IWF-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalN3IWF_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalN3IWF_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalN3IWF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* n3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalN3IWF_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalN3IWF_ID), + offsetof(struct ASN_NGAP_GlobalN3IWF_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalN3IWF_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalN3IWF_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID = { + "GlobalN3IWF-ID", + "GlobalN3IWF-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalN3IWF_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalN3IWF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.h b/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.h new file mode 100644 index 0000000..f5967a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalN3IWF-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalN3IWF_ID_H_ +#define _ASN_NGAP_GlobalN3IWF_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_N3IWF-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalN3IWF-ID */ +typedef struct ASN_NGAP_GlobalN3IWF_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_N3IWF_ID_t n3IWF_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalN3IWF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalN3IWF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalN3IWF_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalN3IWF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.c b/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.c new file mode 100644 index 0000000..fc3195e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalNgENB-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalNgENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalNgENB_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalNgENB_ID, ngENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NgENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngENB-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalNgENB_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalNgENB_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalNgENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ngENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalNgENB_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalNgENB_ID), + offsetof(struct ASN_NGAP_GlobalNgENB_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalNgENB_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalNgENB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalNgENB_ID = { + "GlobalNgENB-ID", + "GlobalNgENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalNgENB_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalNgENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.h b/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.h new file mode 100644 index 0000000..d1a9abf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalNgENB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalNgENB_ID_H_ +#define _ASN_NGAP_GlobalNgENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_NgENB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalNgENB-ID */ +typedef struct ASN_NGAP_GlobalNgENB_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_NgENB_ID_t ngENB_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalNgENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalNgENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalNgENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalNgENB_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalNgENB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.c b/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.c new file mode 100644 index 0000000..626ab64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalRANNodeID.h" + +#include "ASN_NGAP_GlobalGNB-ID.h" +#include "ASN_NGAP_GlobalNgENB-ID.h" +#include "ASN_NGAP_GlobalN3IWF-ID.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_GlobalRANNodeID_constr_1 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_ASN_NGAP_GlobalRANNodeID_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID, choice.globalGNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalGNB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID, choice.globalNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalNgENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalNgENB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID, choice.globalN3IWF_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalN3IWF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalN3IWF-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalRANNodeID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_GlobalRANNodeID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalRANNodeID), + offsetof(struct ASN_NGAP_GlobalRANNodeID, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalRANNodeID, present), + sizeof(((struct ASN_NGAP_GlobalRANNodeID *)0)->present), + asn_MAP_ASN_NGAP_GlobalRANNodeID_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalRANNodeID = { + "GlobalRANNodeID", + "GlobalRANNodeID", + &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_ASN_NGAP_GlobalRANNodeID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_GlobalRANNodeID_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalRANNodeID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.h b/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.h new file mode 100644 index 0000000..7c446b1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalRANNodeID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalRANNodeID_H_ +#define _ASN_NGAP_GlobalRANNodeID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_GlobalRANNodeID_PR { + ASN_NGAP_GlobalRANNodeID_PR_NOTHING, /* No components present */ + ASN_NGAP_GlobalRANNodeID_PR_globalGNB_ID, + ASN_NGAP_GlobalRANNodeID_PR_globalNgENB_ID, + ASN_NGAP_GlobalRANNodeID_PR_globalN3IWF_ID, + ASN_NGAP_GlobalRANNodeID_PR_choice_Extensions +} ASN_NGAP_GlobalRANNodeID_PR; + +/* Forward declarations */ +struct ASN_NGAP_GlobalGNB_ID; +struct ASN_NGAP_GlobalNgENB_ID; +struct ASN_NGAP_GlobalN3IWF_ID; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_GlobalRANNodeID */ +typedef struct ASN_NGAP_GlobalRANNodeID { + ASN_NGAP_GlobalRANNodeID_PR present; + union ASN_NGAP_GlobalRANNodeID_u { + struct ASN_NGAP_GlobalGNB_ID *globalGNB_ID; + struct ASN_NGAP_GlobalNgENB_ID *globalNgENB_ID; + struct ASN_NGAP_GlobalN3IWF_ID *globalN3IWF_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalRANNodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalRANNodeID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_GlobalRANNodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalRANNodeID_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_GlobalRANNodeID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalRANNodeID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.c b/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.c new file mode 100644 index 0000000..9c8bb7f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalTNGF-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTNGF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTNGF_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTNGF_ID, tNGF_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNGF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNGF-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalTNGF_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalTNGF_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalTNGF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNGF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTNGF_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalTNGF_ID), + offsetof(struct ASN_NGAP_GlobalTNGF_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalTNGF_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalTNGF_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTNGF_ID = { + "GlobalTNGF-ID", + "GlobalTNGF-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalTNGF_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalTNGF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.h b/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.h new file mode 100644 index 0000000..755bd56 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalTNGF-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalTNGF_ID_H_ +#define _ASN_NGAP_GlobalTNGF_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_TNGF-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalTNGF-ID */ +typedef struct ASN_NGAP_GlobalTNGF_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_TNGF_ID_t tNGF_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalTNGF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTNGF_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTNGF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTNGF_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalTNGF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.c b/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.c new file mode 100644 index 0000000..e191742 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalTWIF-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTWIF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTWIF_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTWIF_ID, tWIF_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TWIF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tWIF-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalTWIF_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalTWIF_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalTWIF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tWIF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTWIF_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalTWIF_ID), + offsetof(struct ASN_NGAP_GlobalTWIF_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalTWIF_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalTWIF_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTWIF_ID = { + "GlobalTWIF-ID", + "GlobalTWIF-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalTWIF_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalTWIF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.h b/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.h new file mode 100644 index 0000000..7f298a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalTWIF-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalTWIF_ID_H_ +#define _ASN_NGAP_GlobalTWIF_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_TWIF-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalTWIF-ID */ +typedef struct ASN_NGAP_GlobalTWIF_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_TWIF_ID_t tWIF_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalTWIF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTWIF_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTWIF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTWIF_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalTWIF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.c b/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.c new file mode 100644 index 0000000..795e6d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_GlobalW-AGF-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalW_AGF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalW_AGF_ID, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalW_AGF_ID, w_AGF_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_W_AGF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "w-AGF-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_GlobalW_AGF_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_GlobalW_AGF_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalW_AGF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* w-AGF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalW_AGF_ID_specs_1 = { + sizeof(struct ASN_NGAP_GlobalW_AGF_ID), + offsetof(struct ASN_NGAP_GlobalW_AGF_ID, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalW_AGF_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_GlobalW_AGF_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID = { + "GlobalW-AGF-ID", + "GlobalW-AGF-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalW_AGF_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalW_AGF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.h b/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.h new file mode 100644 index 0000000..b5a3447 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_GlobalW-AGF-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_GlobalW_AGF_ID_H_ +#define _ASN_NGAP_GlobalW_AGF_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_W-AGF-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_GlobalW-AGF-ID */ +typedef struct ASN_NGAP_GlobalW_AGF_ID { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_W_AGF_ID_t w_AGF_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalW_AGF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalW_AGF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalW_AGF_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_GlobalW_AGF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.c b/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.c new file mode 100644 index 0000000..e427c64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HFCNode-ID-new.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_HFCNode_ID_new_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HFCNode_ID_new, hFCNode_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_HFCNode_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hFCNode-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HFCNode_ID_new, tAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HFCNode_ID_new, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HFCNode_ID_new_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HFCNode_ID_new_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hFCNode-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HFCNode_ID_new_specs_1 = { + sizeof(struct ASN_NGAP_HFCNode_ID_new), + offsetof(struct ASN_NGAP_HFCNode_ID_new, _asn_ctx), + asn_MAP_ASN_NGAP_HFCNode_ID_new_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HFCNode_ID_new_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID_new = { + "HFCNode-ID-new", + "HFCNode-ID-new", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1, + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HFCNode_ID_new_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HFCNode_ID_new_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.h b/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.h new file mode 100644 index 0000000..b92b3d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HFCNode-ID-new.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HFCNode_ID_new_H_ +#define _ASN_NGAP_HFCNode_ID_new_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_HFCNode-ID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HFCNode-ID-new */ +typedef struct ASN_NGAP_HFCNode_ID_new { + ASN_NGAP_HFCNode_ID_t hFCNode_ID; + ASN_NGAP_TAI_t tAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HFCNode_ID_new_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID_new; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HFCNode_ID_new_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HFCNode_ID_new_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HFCNode_ID_new_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HFCNode-ID.c b/src/asn/ngap/ASN_NGAP_HFCNode-ID.c new file mode 100644 index 0000000..e986f35 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HFCNode-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HFCNode-ID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HFCNode_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID = { + "HFCNode-ID", + "HFCNode-ID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_HFCNode_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HFCNode_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HFCNode-ID.h b/src/asn/ngap/ASN_NGAP_HFCNode-ID.h new file mode 100644 index 0000000..aca4312 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HFCNode-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HFCNode_ID_H_ +#define _ASN_NGAP_HFCNode_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HFCNode-ID */ +typedef OCTET_STRING_t ASN_NGAP_HFCNode_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID; +asn_struct_free_f ASN_NGAP_HFCNode_ID_free; +asn_struct_print_f ASN_NGAP_HFCNode_ID_print; +asn_constr_check_f ASN_NGAP_HFCNode_ID_constraint; +ber_type_decoder_f ASN_NGAP_HFCNode_ID_decode_ber; +der_type_encoder_f ASN_NGAP_HFCNode_ID_encode_der; +xer_type_decoder_f ASN_NGAP_HFCNode_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_HFCNode_ID_encode_xer; +per_type_decoder_f ASN_NGAP_HFCNode_ID_decode_uper; +per_type_encoder_f ASN_NGAP_HFCNode_ID_encode_uper; +per_type_decoder_f ASN_NGAP_HFCNode_ID_decode_aper; +per_type_encoder_f ASN_NGAP_HFCNode_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HFCNode_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HOReport.c b/src/asn/ngap/ASN_NGAP_HOReport.c new file mode 100644 index 0000000..8af8297 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HOReport.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HOReport.h" + +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_UERLFReportContainer.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_NGAP_sourcecellC_RNTI_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 == 16)) { + /* Constraint 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_ASN_NGAP_handoverReportType_constr_2 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_ASN_NGAP_sourcecellC_RNTI_constr_11 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 asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_handoverReportType_value2enum_2[] = { + { 0, 12, "ho-too-early" }, + { 1, 16, "ho-to-wrong-cell" }, + { 2, 21, "intersystem-ping-pong" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_handoverReportType_enum2value_2[] = { + 1, /* ho-to-wrong-cell(1) */ + 0, /* ho-too-early(0) */ + 2 /* intersystem-ping-pong(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_handoverReportType_specs_2 = { + asn_MAP_ASN_NGAP_handoverReportType_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_handoverReportType_enum2value_2, /* 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_ASN_NGAP_handoverReportType_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_ASN_NGAP_handoverReportType_2 = { + "handoverReportType", + "handoverReportType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_handoverReportType_tags_2, + sizeof(asn_DEF_ASN_NGAP_handoverReportType_tags_2) + /sizeof(asn_DEF_ASN_NGAP_handoverReportType_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_handoverReportType_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_handoverReportType_tags_2) + /sizeof(asn_DEF_ASN_NGAP_handoverReportType_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_handoverReportType_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_handoverReportType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HOReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport, handoverReportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_handoverReportType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverReportType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport, handoverCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport, sourcecellCGI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcecellCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport, targetcellCGI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetcellCGI" + }, + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_HOReport, reestablishmentcellCGI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishmentcellCGI" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_HOReport, sourcecellC_RNTI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_sourcecellC_RNTI_constr_11, memb_ASN_NGAP_sourcecellC_RNTI_constraint_1 }, + 0, 0, /* No default value */ + "sourcecellC-RNTI" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_HOReport, targetcellinE_UTRAN), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetcellinE-UTRAN" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_HOReport, mobilityInformation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MobilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HOReport, uERLFReportContainer), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERLFReportContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HOReport, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HOReport_oms_1[] = { 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HOReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HOReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverReportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sourcecellCGI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* targetcellCGI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reestablishmentcellCGI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sourcecellC-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* targetcellinE-UTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* mobilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* uERLFReportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HOReport_specs_1 = { + sizeof(struct ASN_NGAP_HOReport), + offsetof(struct ASN_NGAP_HOReport, _asn_ctx), + asn_MAP_ASN_NGAP_HOReport_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HOReport_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HOReport = { + "HOReport", + "HOReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HOReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_HOReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HOReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HOReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HOReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HOReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HOReport_1, + 10, /* Elements count */ + &asn_SPC_ASN_NGAP_HOReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HOReport.h b/src/asn/ngap/ASN_NGAP_HOReport.h new file mode 100644 index 0000000..a04dd25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HOReport.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HOReport_H_ +#define _ASN_NGAP_HOReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_NGAP_Cause.h" +#include "ASN_NGAP_NGRAN-CGI.h" +#include +#include "ASN_NGAP_MobilityInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_HOReport__handoverReportType { + ASN_NGAP_HOReport__handoverReportType_ho_too_early = 0, + ASN_NGAP_HOReport__handoverReportType_ho_to_wrong_cell = 1, + ASN_NGAP_HOReport__handoverReportType_intersystem_ping_pong = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_HOReport__handoverReportType; + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CGI; +struct ASN_NGAP_EUTRA_CGI; +struct ASN_NGAP_UERLFReportContainer; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HOReport */ +typedef struct ASN_NGAP_HOReport { + long handoverReportType; + ASN_NGAP_Cause_t handoverCause; + ASN_NGAP_NGRAN_CGI_t sourcecellCGI; + ASN_NGAP_NGRAN_CGI_t targetcellCGI; + struct ASN_NGAP_NGRAN_CGI *reestablishmentcellCGI; /* OPTIONAL */ + BIT_STRING_t *sourcecellC_RNTI; /* OPTIONAL */ + struct ASN_NGAP_EUTRA_CGI *targetcellinE_UTRAN; /* OPTIONAL */ + ASN_NGAP_MobilityInformation_t *mobilityInformation; /* OPTIONAL */ + struct ASN_NGAP_UERLFReportContainer *uERLFReportContainer; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HOReport_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_handoverReportType_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HOReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HOReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HOReport_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HOReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverCancel.c b/src/asn/ngap/ASN_NGAP_HandoverCancel.c new file mode 100644 index 0000000..3e78c8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCancel.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverCancel.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancel_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancel, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCancel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCancel_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancel_specs_1 = { + sizeof(struct ASN_NGAP_HandoverCancel), + offsetof(struct ASN_NGAP_HandoverCancel, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_HandoverCancel = { + "HandoverCancel", + "HandoverCancel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCancel_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverCancel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancel_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCancel_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCancel_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancel_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCancel_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCancel_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverCancel.h b/src/asn/ngap/ASN_NGAP_HandoverCancel.h new file mode 100644 index 0000000..f76ee62 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCancel.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverCancel_H_ +#define _ASN_NGAP_HandoverCancel_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverCancel */ +typedef struct ASN_NGAP_HandoverCancel { + ASN_NGAP_ProtocolIE_Container_123P42_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverCancel_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancel; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancel_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancel_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverCancel_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.c b/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.c new file mode 100644 index 0000000..b25ba40 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverCancelAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCancelAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_HandoverCancelAcknowledge), + offsetof(struct ASN_NGAP_HandoverCancelAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCancelAcknowledge_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_ASN_NGAP_HandoverCancelAcknowledge = { + "HandoverCancelAcknowledge", + "HandoverCancelAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCancelAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCancelAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.h b/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.h new file mode 100644 index 0000000..4f64ae3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCancelAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverCancelAcknowledge_H_ +#define _ASN_NGAP_HandoverCancelAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverCancelAcknowledge */ +typedef struct ASN_NGAP_HandoverCancelAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P43_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverCancelAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancelAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverCancelAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverCommand.c b/src/asn/ngap/ASN_NGAP_HandoverCommand.c new file mode 100644 index 0000000..32f7720 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCommand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverCommand.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommand, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommand_specs_1 = { + sizeof(struct ASN_NGAP_HandoverCommand), + offsetof(struct ASN_NGAP_HandoverCommand, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCommand_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_ASN_NGAP_HandoverCommand = { + "HandoverCommand", + "HandoverCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCommand_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCommand_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverCommand.h b/src/asn/ngap/ASN_NGAP_HandoverCommand.h new file mode 100644 index 0000000..7e6a155 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCommand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverCommand_H_ +#define _ASN_NGAP_HandoverCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverCommand */ +typedef struct ASN_NGAP_HandoverCommand { + ASN_NGAP_ProtocolIE_Container_123P33_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommand_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverCommand_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.c b/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.c new file mode 100644 index 0000000..986f1bf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverCommandTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_QosFlowToBeForwardedList.h" +#include "ASN_NGAP_DataForwardingResponseDRBList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommandTransfer_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_HandoverCommandTransfer, dLForwardingUP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwardingUP-TNLInformation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_HandoverCommandTransfer, qosFlowToBeForwardedList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowToBeForwardedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowToBeForwardedList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HandoverCommandTransfer, dataForwardingResponseDRBList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DataForwardingResponseDRBList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataForwardingResponseDRBList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverCommandTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HandoverCommandTransfer_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCommandTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLForwardingUP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowToBeForwardedList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dataForwardingResponseDRBList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommandTransfer_specs_1 = { + sizeof(struct ASN_NGAP_HandoverCommandTransfer), + offsetof(struct ASN_NGAP_HandoverCommandTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCommandTransfer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HandoverCommandTransfer_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandTransfer = { + "HandoverCommandTransfer", + "HandoverCommandTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCommandTransfer_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCommandTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.h b/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.h new file mode 100644 index 0000000..ba65318 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverCommandTransfer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverCommandTransfer_H_ +#define _ASN_NGAP_HandoverCommandTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_QosFlowToBeForwardedList; +struct ASN_NGAP_DataForwardingResponseDRBList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HandoverCommandTransfer */ +typedef struct ASN_NGAP_HandoverCommandTransfer { + struct ASN_NGAP_UPTransportLayerInformation *dLForwardingUP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_QosFlowToBeForwardedList *qosFlowToBeForwardedList; /* OPTIONAL */ + struct ASN_NGAP_DataForwardingResponseDRBList *dataForwardingResponseDRBList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverCommandTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverCommandTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverFailure.c b/src/asn/ngap/ASN_NGAP_HandoverFailure.c new file mode 100644 index 0000000..da579da --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverFailure_specs_1 = { + sizeof(struct ASN_NGAP_HandoverFailure), + offsetof(struct ASN_NGAP_HandoverFailure, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverFailure_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_ASN_NGAP_HandoverFailure = { + "HandoverFailure", + "HandoverFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverFailure.h b/src/asn/ngap/ASN_NGAP_HandoverFailure.h new file mode 100644 index 0000000..eaa52eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverFailure_H_ +#define _ASN_NGAP_HandoverFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverFailure */ +typedef struct ASN_NGAP_HandoverFailure { + ASN_NGAP_ProtocolIE_Container_123P37_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverFlag.c b/src/asn/ngap/ASN_NGAP_HandoverFlag.c new file mode 100644 index 0000000..15385cc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverFlag.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverFlag.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_HandoverFlag_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_ASN_NGAP_HandoverFlag_value2enum_1[] = { + { 0, 20, "handover-preparation" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_HandoverFlag_enum2value_1[] = { + 0 /* handover-preparation(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_HandoverFlag_specs_1 = { + asn_MAP_ASN_NGAP_HandoverFlag_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_HandoverFlag_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_ASN_NGAP_HandoverFlag_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverFlag = { + "HandoverFlag", + "HandoverFlag", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_HandoverFlag_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverFlag_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverFlag_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverFlag_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverFlag_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverFlag_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_HandoverFlag_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_HandoverFlag_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverFlag.h b/src/asn/ngap/ASN_NGAP_HandoverFlag.h new file mode 100644 index 0000000..92e9e39 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverFlag.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverFlag_H_ +#define _ASN_NGAP_HandoverFlag_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_HandoverFlag { + ASN_NGAP_HandoverFlag_handover_preparation = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_HandoverFlag; + +/* ASN_NGAP_HandoverFlag */ +typedef long ASN_NGAP_HandoverFlag_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_HandoverFlag_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverFlag; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_HandoverFlag_specs_1; +asn_struct_free_f ASN_NGAP_HandoverFlag_free; +asn_struct_print_f ASN_NGAP_HandoverFlag_print; +asn_constr_check_f ASN_NGAP_HandoverFlag_constraint; +ber_type_decoder_f ASN_NGAP_HandoverFlag_decode_ber; +der_type_encoder_f ASN_NGAP_HandoverFlag_encode_der; +xer_type_decoder_f ASN_NGAP_HandoverFlag_decode_xer; +xer_type_encoder_f ASN_NGAP_HandoverFlag_encode_xer; +per_type_decoder_f ASN_NGAP_HandoverFlag_decode_uper; +per_type_encoder_f ASN_NGAP_HandoverFlag_encode_uper; +per_type_decoder_f ASN_NGAP_HandoverFlag_decode_aper; +per_type_encoder_f ASN_NGAP_HandoverFlag_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverFlag_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverNotify.c b/src/asn/ngap/ASN_NGAP_HandoverNotify.c new file mode 100644 index 0000000..ec73568 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverNotify.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverNotify.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverNotify_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotify, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverNotify_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverNotify_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverNotify_specs_1 = { + sizeof(struct ASN_NGAP_HandoverNotify), + offsetof(struct ASN_NGAP_HandoverNotify, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverNotify_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_ASN_NGAP_HandoverNotify = { + "HandoverNotify", + "HandoverNotify", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverNotify_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverNotify_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverNotify_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverNotify_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverNotify_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverNotify_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverNotify_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverNotify_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverNotify.h b/src/asn/ngap/ASN_NGAP_HandoverNotify.h new file mode 100644 index 0000000..e20e781 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverNotify.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverNotify_H_ +#define _ASN_NGAP_HandoverNotify_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverNotify */ +typedef struct ASN_NGAP_HandoverNotify { + ASN_NGAP_ProtocolIE_Container_123P38_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverNotify_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverNotify; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverNotify_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverNotify_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverNotify_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.c b/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.c new file mode 100644 index 0000000..fbfdb76 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverPreparationFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverPreparationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationFailure_specs_1 = { + sizeof(struct ASN_NGAP_HandoverPreparationFailure), + offsetof(struct ASN_NGAP_HandoverPreparationFailure, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_HandoverPreparationFailure = { + "HandoverPreparationFailure", + "HandoverPreparationFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverPreparationFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverPreparationFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.h b/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.h new file mode 100644 index 0000000..d95916e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverPreparationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverPreparationFailure_H_ +#define _ASN_NGAP_HandoverPreparationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverPreparationFailure */ +typedef struct ASN_NGAP_HandoverPreparationFailure { + ASN_NGAP_ProtocolIE_Container_123P34_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverPreparationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverPreparationFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.c new file mode 100644 index 0000000..c8bd4e3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer = { + "HandoverPreparationUnsuccessfulTransfer", + "HandoverPreparationUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h new file mode 100644 index 0000000..725b352 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverPreparationUnsuccessfulTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_H_ +#define _ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HandoverPreparationUnsuccessfulTransfer */ +typedef struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequest.c b/src/asn/ngap/ASN_NGAP_HandoverRequest.c new file mode 100644 index 0000000..1728700 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequest_specs_1 = { + sizeof(struct ASN_NGAP_HandoverRequest), + offsetof(struct ASN_NGAP_HandoverRequest, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_HandoverRequest = { + "HandoverRequest", + "HandoverRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequest.h b/src/asn/ngap/ASN_NGAP_HandoverRequest.h new file mode 100644 index 0000000..ae789d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverRequest_H_ +#define _ASN_NGAP_HandoverRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverRequest */ +typedef struct ASN_NGAP_HandoverRequest { + ASN_NGAP_ProtocolIE_Container_123P35_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.c b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.c new file mode 100644 index 0000000..5ef8dee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverRequestAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequestAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledge), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_HandoverRequestAcknowledge = { + "HandoverRequestAcknowledge", + "HandoverRequestAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequestAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequestAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.h b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.h new file mode 100644 index 0000000..b0b1e64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverRequestAcknowledge_H_ +#define _ASN_NGAP_HandoverRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverRequestAcknowledge */ +typedef struct ASN_NGAP_HandoverRequestAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P36_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequestAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverRequestAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.c b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.c new file mode 100644 index 0000000..1c0afb7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.c @@ -0,0 +1,117 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverRequestAcknowledgeTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_SecurityResult.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_DataForwardingResponseDRBList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, dL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, dLForwardingUP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwardingUP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, securityResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, qosFlowSetupResponseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowSetupResponseList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, qosFlowFailedToSetupList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToSetupList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, dataForwardingResponseDRBList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DataForwardingResponseDRBList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataForwardingResponseDRBList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_oms_1[] = { 1, 2, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLForwardingUP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* securityResult */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* qosFlowSetupResponseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qosFlowFailedToSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dataForwardingResponseDRBList */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeTransfer_specs_1 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer = { + "HandoverRequestAcknowledgeTransfer", + "HandoverRequestAcknowledgeTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeTransfer_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.h b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.h new file mode 100644 index 0000000..a8b5152 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequestAcknowledgeTransfer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverRequestAcknowledgeTransfer_H_ +#define _ASN_NGAP_HandoverRequestAcknowledgeTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_QosFlowListWithDataForwarding.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_SecurityResult; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_DataForwardingResponseDRBList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HandoverRequestAcknowledgeTransfer */ +typedef struct ASN_NGAP_HandoverRequestAcknowledgeTransfer { + ASN_NGAP_UPTransportLayerInformation_t dL_NGU_UP_TNLInformation; + struct ASN_NGAP_UPTransportLayerInformation *dLForwardingUP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_SecurityResult *securityResult; /* OPTIONAL */ + ASN_NGAP_QosFlowListWithDataForwarding_t qosFlowSetupResponseList; + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToSetupList; /* OPTIONAL */ + struct ASN_NGAP_DataForwardingResponseDRBList *dataForwardingResponseDRBList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequestAcknowledgeTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverRequestAcknowledgeTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequired.c b/src/asn/ngap/ASN_NGAP_HandoverRequired.c new file mode 100644 index 0000000..d9fcd3f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverRequired.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequired_specs_1 = { + sizeof(struct ASN_NGAP_HandoverRequired), + offsetof(struct ASN_NGAP_HandoverRequired, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequired_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_ASN_NGAP_HandoverRequired = { + "HandoverRequired", + "HandoverRequired", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequired_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverRequired_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequired_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequired_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequired_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequired_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequired.h b/src/asn/ngap/ASN_NGAP_HandoverRequired.h new file mode 100644 index 0000000..2756fe3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverRequired_H_ +#define _ASN_NGAP_HandoverRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverRequired */ +typedef struct ASN_NGAP_HandoverRequired { + ASN_NGAP_ProtocolIE_Container_123P32_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverRequired_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.c b/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.c new file mode 100644 index 0000000..fdff648 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverRequiredTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequiredTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HandoverRequiredTransfer, directForwardingPathAvailability), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "directForwardingPathAvailability" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverRequiredTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HandoverRequiredTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequiredTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* directForwardingPathAvailability */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequiredTransfer_specs_1 = { + sizeof(struct ASN_NGAP_HandoverRequiredTransfer), + offsetof(struct ASN_NGAP_HandoverRequiredTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequiredTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HandoverRequiredTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer = { + "HandoverRequiredTransfer", + "HandoverRequiredTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequiredTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequiredTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.h b/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.h new file mode 100644 index 0000000..985e177 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverRequiredTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverRequiredTransfer_H_ +#define _ASN_NGAP_HandoverRequiredTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DirectForwardingPathAvailability.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HandoverRequiredTransfer */ +typedef struct ASN_NGAP_HandoverRequiredTransfer { + ASN_NGAP_DirectForwardingPathAvailability_t *directForwardingPathAvailability; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequiredTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverRequiredTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c new file mode 100644 index 0000000..1d4b1b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h" + +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer, criticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer = { + "HandoverResourceAllocationUnsuccessfulTransfer", + "HandoverResourceAllocationUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h new file mode 100644 index 0000000..03a9639 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_H_ +#define _ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer */ +typedef struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_CriticalityDiagnostics *criticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverSuccess.c b/src/asn/ngap/ASN_NGAP_HandoverSuccess.c new file mode 100644 index 0000000..a372245 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverSuccess.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverSuccess.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverSuccess_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccess, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverSuccess_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverSuccess_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverSuccess_specs_1 = { + sizeof(struct ASN_NGAP_HandoverSuccess), + offsetof(struct ASN_NGAP_HandoverSuccess, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverSuccess_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_ASN_NGAP_HandoverSuccess = { + "HandoverSuccess", + "HandoverSuccess", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverSuccess_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverSuccess_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverSuccess_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverSuccess_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverSuccess_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverSuccess_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverSuccess_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverSuccess_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverSuccess.h b/src/asn/ngap/ASN_NGAP_HandoverSuccess.h new file mode 100644 index 0000000..c6bb6e4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverSuccess.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverSuccess_H_ +#define _ASN_NGAP_HandoverSuccess_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HandoverSuccess */ +typedef struct ASN_NGAP_HandoverSuccess { + ASN_NGAP_ProtocolIE_Container_123P44_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverSuccess_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverSuccess; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverSuccess_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverSuccess_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverSuccess_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HandoverType.c b/src/asn/ngap/ASN_NGAP_HandoverType.c new file mode 100644 index 0000000..fc9920c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverType.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HandoverType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_HandoverType_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_ASN_NGAP_HandoverType_value2enum_1[] = { + { 0, 8, "intra5gs" }, + { 1, 13, "fivegs-to-eps" }, + { 2, 10, "eps-to-5gs" }, + { 3, 15, "fivegs-to-utran" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_HandoverType_enum2value_1[] = { + 2, /* eps-to-5gs(2) */ + 1, /* fivegs-to-eps(1) */ + 3, /* fivegs-to-utran(3) */ + 0 /* intra5gs(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_HandoverType_specs_1 = { + asn_MAP_ASN_NGAP_HandoverType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_HandoverType_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_ASN_NGAP_HandoverType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverType = { + "HandoverType", + "HandoverType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_HandoverType_tags_1, + sizeof(asn_DEF_ASN_NGAP_HandoverType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HandoverType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_HandoverType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_HandoverType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HandoverType.h b/src/asn/ngap/ASN_NGAP_HandoverType.h new file mode 100644 index 0000000..3372db3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HandoverType.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HandoverType_H_ +#define _ASN_NGAP_HandoverType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_HandoverType { + ASN_NGAP_HandoverType_intra5gs = 0, + ASN_NGAP_HandoverType_fivegs_to_eps = 1, + ASN_NGAP_HandoverType_eps_to_5gs = 2, + /* + * Enumeration is extensible + */ + ASN_NGAP_HandoverType_fivegs_to_utran = 3 +} e_ASN_NGAP_HandoverType; + +/* ASN_NGAP_HandoverType */ +typedef long ASN_NGAP_HandoverType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_HandoverType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_HandoverType_specs_1; +asn_struct_free_f ASN_NGAP_HandoverType_free; +asn_struct_print_f ASN_NGAP_HandoverType_print; +asn_constr_check_f ASN_NGAP_HandoverType_constraint; +ber_type_decoder_f ASN_NGAP_HandoverType_decode_ber; +der_type_encoder_f ASN_NGAP_HandoverType_encode_der; +xer_type_decoder_f ASN_NGAP_HandoverType_decode_xer; +xer_type_encoder_f ASN_NGAP_HandoverType_encode_xer; +per_type_decoder_f ASN_NGAP_HandoverType_decode_uper; +per_type_encoder_f ASN_NGAP_HandoverType_encode_uper; +per_type_decoder_f ASN_NGAP_HandoverType_decode_aper; +per_type_encoder_f ASN_NGAP_HandoverType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HandoverType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.c b/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.c new file mode 100644 index 0000000..b645004 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_HashedUEIdentityIndexValue.h" + +int +ASN_NGAP_HashedUEIdentityIndexValue_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 == 13)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_HashedUEIdentityIndexValue_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 13, 13 } /* (SIZE(13..13,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue = { + "HashedUEIdentityIndexValue", + "HashedUEIdentityIndexValue", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1, + sizeof(asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1) + /sizeof(asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_HashedUEIdentityIndexValue_constr_1, ASN_NGAP_HashedUEIdentityIndexValue_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.h b/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.h new file mode 100644 index 0000000..0df20e6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_HashedUEIdentityIndexValue.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_HashedUEIdentityIndexValue_H_ +#define _ASN_NGAP_HashedUEIdentityIndexValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_HashedUEIdentityIndexValue */ +typedef BIT_STRING_t ASN_NGAP_HashedUEIdentityIndexValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_HashedUEIdentityIndexValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue; +asn_struct_free_f ASN_NGAP_HashedUEIdentityIndexValue_free; +asn_struct_print_f ASN_NGAP_HashedUEIdentityIndexValue_print; +asn_constr_check_f ASN_NGAP_HashedUEIdentityIndexValue_constraint; +ber_type_decoder_f ASN_NGAP_HashedUEIdentityIndexValue_decode_ber; +der_type_encoder_f ASN_NGAP_HashedUEIdentityIndexValue_encode_der; +xer_type_decoder_f ASN_NGAP_HashedUEIdentityIndexValue_decode_xer; +xer_type_encoder_f ASN_NGAP_HashedUEIdentityIndexValue_encode_xer; +per_type_decoder_f ASN_NGAP_HashedUEIdentityIndexValue_decode_uper; +per_type_encoder_f ASN_NGAP_HashedUEIdentityIndexValue_encode_uper; +per_type_decoder_f ASN_NGAP_HashedUEIdentityIndexValue_decode_aper; +per_type_encoder_f ASN_NGAP_HashedUEIdentityIndexValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_HashedUEIdentityIndexValue_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Hysteresis.c b/src/asn/ngap/ASN_NGAP_Hysteresis.c new file mode 100644 index 0000000..435e9f6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Hysteresis.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Hysteresis.h" + +int +ASN_NGAP_Hysteresis_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 <= 30)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_Hysteresis_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Hysteresis_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Hysteresis = { + "Hysteresis", + "Hysteresis", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Hysteresis_tags_1, + sizeof(asn_DEF_ASN_NGAP_Hysteresis_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Hysteresis_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Hysteresis_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Hysteresis_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Hysteresis_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Hysteresis_constr_1, ASN_NGAP_Hysteresis_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Hysteresis.h b/src/asn/ngap/ASN_NGAP_Hysteresis.h new file mode 100644 index 0000000..ae714ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Hysteresis.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Hysteresis_H_ +#define _ASN_NGAP_Hysteresis_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Hysteresis */ +typedef long ASN_NGAP_Hysteresis_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Hysteresis_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Hysteresis; +asn_struct_free_f ASN_NGAP_Hysteresis_free; +asn_struct_print_f ASN_NGAP_Hysteresis_print; +asn_constr_check_f ASN_NGAP_Hysteresis_constraint; +ber_type_decoder_f ASN_NGAP_Hysteresis_decode_ber; +der_type_encoder_f ASN_NGAP_Hysteresis_encode_der; +xer_type_decoder_f ASN_NGAP_Hysteresis_decode_xer; +xer_type_encoder_f ASN_NGAP_Hysteresis_encode_xer; +per_type_decoder_f ASN_NGAP_Hysteresis_decode_uper; +per_type_encoder_f ASN_NGAP_Hysteresis_encode_uper; +per_type_decoder_f ASN_NGAP_Hysteresis_decode_aper; +per_type_encoder_f ASN_NGAP_Hysteresis_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Hysteresis_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IAB-Authorized.c b/src/asn/ngap/ASN_NGAP_IAB-Authorized.c new file mode 100644 index 0000000..38bc1be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IAB-Authorized.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IAB-Authorized.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IAB_Authorized_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_ASN_NGAP_IAB_Authorized_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IAB_Authorized_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IAB_Authorized_specs_1 = { + asn_MAP_ASN_NGAP_IAB_Authorized_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IAB_Authorized_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_ASN_NGAP_IAB_Authorized_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IAB_Authorized = { + "IAB-Authorized", + "IAB-Authorized", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IAB_Authorized_tags_1, + sizeof(asn_DEF_ASN_NGAP_IAB_Authorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IAB_Authorized_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IAB_Authorized_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IAB_Authorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IAB_Authorized_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IAB_Authorized_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IAB_Authorized_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IAB-Authorized.h b/src/asn/ngap/ASN_NGAP_IAB-Authorized.h new file mode 100644 index 0000000..671596a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IAB-Authorized.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IAB_Authorized_H_ +#define _ASN_NGAP_IAB_Authorized_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IAB_Authorized { + ASN_NGAP_IAB_Authorized_authorized = 0, + ASN_NGAP_IAB_Authorized_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IAB_Authorized; + +/* ASN_NGAP_IAB-Authorized */ +typedef long ASN_NGAP_IAB_Authorized_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IAB_Authorized_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IAB_Authorized; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IAB_Authorized_specs_1; +asn_struct_free_f ASN_NGAP_IAB_Authorized_free; +asn_struct_print_f ASN_NGAP_IAB_Authorized_print; +asn_constr_check_f ASN_NGAP_IAB_Authorized_constraint; +ber_type_decoder_f ASN_NGAP_IAB_Authorized_decode_ber; +der_type_encoder_f ASN_NGAP_IAB_Authorized_encode_der; +xer_type_decoder_f ASN_NGAP_IAB_Authorized_decode_xer; +xer_type_encoder_f ASN_NGAP_IAB_Authorized_encode_xer; +per_type_decoder_f ASN_NGAP_IAB_Authorized_decode_uper; +per_type_encoder_f ASN_NGAP_IAB_Authorized_encode_uper; +per_type_decoder_f ASN_NGAP_IAB_Authorized_decode_aper; +per_type_encoder_f ASN_NGAP_IAB_Authorized_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IAB_Authorized_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IAB-Supported.c b/src/asn/ngap/ASN_NGAP_IAB-Supported.c new file mode 100644 index 0000000..e027da9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IAB-Supported.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IAB-Supported.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IAB_Supported_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_ASN_NGAP_IAB_Supported_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IAB_Supported_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IAB_Supported_specs_1 = { + asn_MAP_ASN_NGAP_IAB_Supported_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IAB_Supported_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_ASN_NGAP_IAB_Supported_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IAB_Supported = { + "IAB-Supported", + "IAB-Supported", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IAB_Supported_tags_1, + sizeof(asn_DEF_ASN_NGAP_IAB_Supported_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IAB_Supported_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IAB_Supported_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IAB_Supported_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IAB_Supported_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IAB_Supported_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IAB_Supported_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IAB-Supported.h b/src/asn/ngap/ASN_NGAP_IAB-Supported.h new file mode 100644 index 0000000..3a39303 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IAB-Supported.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IAB_Supported_H_ +#define _ASN_NGAP_IAB_Supported_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IAB_Supported { + ASN_NGAP_IAB_Supported_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IAB_Supported; + +/* ASN_NGAP_IAB-Supported */ +typedef long ASN_NGAP_IAB_Supported_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IAB_Supported_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IAB_Supported; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IAB_Supported_specs_1; +asn_struct_free_f ASN_NGAP_IAB_Supported_free; +asn_struct_print_f ASN_NGAP_IAB_Supported_print; +asn_constr_check_f ASN_NGAP_IAB_Supported_constraint; +ber_type_decoder_f ASN_NGAP_IAB_Supported_decode_ber; +der_type_encoder_f ASN_NGAP_IAB_Supported_encode_der; +xer_type_decoder_f ASN_NGAP_IAB_Supported_decode_xer; +xer_type_encoder_f ASN_NGAP_IAB_Supported_encode_xer; +per_type_decoder_f ASN_NGAP_IAB_Supported_decode_uper; +per_type_encoder_f ASN_NGAP_IAB_Supported_encode_uper; +per_type_decoder_f ASN_NGAP_IAB_Supported_decode_aper; +per_type_encoder_f ASN_NGAP_IAB_Supported_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IAB_Supported_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IABNodeIndication.c b/src/asn/ngap/ASN_NGAP_IABNodeIndication.c new file mode 100644 index 0000000..47e74d2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IABNodeIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IABNodeIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IABNodeIndication_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_ASN_NGAP_IABNodeIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IABNodeIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IABNodeIndication_specs_1 = { + asn_MAP_ASN_NGAP_IABNodeIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IABNodeIndication_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_ASN_NGAP_IABNodeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IABNodeIndication = { + "IABNodeIndication", + "IABNodeIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IABNodeIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_IABNodeIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IABNodeIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IABNodeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IABNodeIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IABNodeIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IABNodeIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IABNodeIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IABNodeIndication.h b/src/asn/ngap/ASN_NGAP_IABNodeIndication.h new file mode 100644 index 0000000..9d2dec3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IABNodeIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IABNodeIndication_H_ +#define _ASN_NGAP_IABNodeIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IABNodeIndication { + ASN_NGAP_IABNodeIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IABNodeIndication; + +/* ASN_NGAP_IABNodeIndication */ +typedef long ASN_NGAP_IABNodeIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IABNodeIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IABNodeIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IABNodeIndication_specs_1; +asn_struct_free_f ASN_NGAP_IABNodeIndication_free; +asn_struct_print_f ASN_NGAP_IABNodeIndication_print; +asn_constr_check_f ASN_NGAP_IABNodeIndication_constraint; +ber_type_decoder_f ASN_NGAP_IABNodeIndication_decode_ber; +der_type_encoder_f ASN_NGAP_IABNodeIndication_encode_der; +xer_type_decoder_f ASN_NGAP_IABNodeIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_IABNodeIndication_encode_xer; +per_type_decoder_f ASN_NGAP_IABNodeIndication_decode_uper; +per_type_encoder_f ASN_NGAP_IABNodeIndication_encode_uper; +per_type_decoder_f ASN_NGAP_IABNodeIndication_decode_aper; +per_type_encoder_f ASN_NGAP_IABNodeIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IABNodeIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.c b/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.c new file mode 100644 index 0000000..e87326d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IMSVoiceSupportIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IMSVoiceSupportIndicator_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_ASN_NGAP_IMSVoiceSupportIndicator_value2enum_1[] = { + { 0, 9, "supported" }, + { 1, 13, "not-supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IMSVoiceSupportIndicator_enum2value_1[] = { + 1, /* not-supported(1) */ + 0 /* supported(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IMSVoiceSupportIndicator_specs_1 = { + asn_MAP_ASN_NGAP_IMSVoiceSupportIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IMSVoiceSupportIndicator_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_ASN_NGAP_IMSVoiceSupportIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator = { + "IMSVoiceSupportIndicator", + "IMSVoiceSupportIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IMSVoiceSupportIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IMSVoiceSupportIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.h b/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.h new file mode 100644 index 0000000..542cdf3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IMSVoiceSupportIndicator.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IMSVoiceSupportIndicator_H_ +#define _ASN_NGAP_IMSVoiceSupportIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IMSVoiceSupportIndicator { + ASN_NGAP_IMSVoiceSupportIndicator_supported = 0, + ASN_NGAP_IMSVoiceSupportIndicator_not_supported = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IMSVoiceSupportIndicator; + +/* ASN_NGAP_IMSVoiceSupportIndicator */ +typedef long ASN_NGAP_IMSVoiceSupportIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IMSVoiceSupportIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IMSVoiceSupportIndicator_specs_1; +asn_struct_free_f ASN_NGAP_IMSVoiceSupportIndicator_free; +asn_struct_print_f ASN_NGAP_IMSVoiceSupportIndicator_print; +asn_constr_check_f ASN_NGAP_IMSVoiceSupportIndicator_constraint; +ber_type_decoder_f ASN_NGAP_IMSVoiceSupportIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_IMSVoiceSupportIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_IMSVoiceSupportIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_IMSVoiceSupportIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_IMSVoiceSupportIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_IMSVoiceSupportIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_IMSVoiceSupportIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_IMSVoiceSupportIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IMSVoiceSupportIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.c b/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.c new file mode 100644 index 0000000..adb1304 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ImmediateMDTNr.h" + +#include "ASN_NGAP_M1Configuration.h" +#include "ASN_NGAP_M4Configuration.h" +#include "ASN_NGAP_M5Configuration.h" +#include "ASN_NGAP_M6Configuration.h" +#include "ASN_NGAP_M7Configuration.h" +#include "ASN_NGAP_BluetoothMeasurementConfiguration.h" +#include "ASN_NGAP_WLANMeasurementConfiguration.h" +#include "ASN_NGAP_MDT-Location-Info.h" +#include "ASN_NGAP_SensorMeasurementConfiguration.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ImmediateMDTNr_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ImmediateMDTNr, measurementsToActivate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MeasurementsToActivate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementsToActivate" + }, + { ATF_POINTER, 10, offsetof(struct ASN_NGAP_ImmediateMDTNr, m1Configuration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M1Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m1Configuration" + }, + { ATF_POINTER, 9, offsetof(struct ASN_NGAP_ImmediateMDTNr, m4Configuration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M4Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m4Configuration" + }, + { ATF_POINTER, 8, offsetof(struct ASN_NGAP_ImmediateMDTNr, m5Configuration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M5Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m5Configuration" + }, + { ATF_POINTER, 7, offsetof(struct ASN_NGAP_ImmediateMDTNr, m6Configuration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M6Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m6Configuration" + }, + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_ImmediateMDTNr, m7Configuration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M7Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m7Configuration" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_ImmediateMDTNr, bluetoothMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetoothMeasurementConfiguration" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_ImmediateMDTNr, wLANMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_WLANMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wLANMeasurementConfiguration" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_ImmediateMDTNr, mDT_Location_Info), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Location_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mDT-Location-Info" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ImmediateMDTNr, sensorMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SensorMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorMeasurementConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ImmediateMDTNr, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ImmediateMDTNr_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ImmediateMDTNr_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementsToActivate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m1Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m4Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* m5Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* m6Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* m7Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* bluetoothMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* wLANMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* mDT-Location-Info */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sensorMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ImmediateMDTNr_specs_1 = { + sizeof(struct ASN_NGAP_ImmediateMDTNr), + offsetof(struct ASN_NGAP_ImmediateMDTNr, _asn_ctx), + asn_MAP_ASN_NGAP_ImmediateMDTNr_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ImmediateMDTNr_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ImmediateMDTNr = { + "ImmediateMDTNr", + "ImmediateMDTNr", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1, + sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ImmediateMDTNr_1, + 11, /* Elements count */ + &asn_SPC_ASN_NGAP_ImmediateMDTNr_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.h b/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.h new file mode 100644 index 0000000..5a2d508 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ImmediateMDTNr.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ImmediateMDTNr_H_ +#define _ASN_NGAP_ImmediateMDTNr_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MeasurementsToActivate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_M1Configuration; +struct ASN_NGAP_M4Configuration; +struct ASN_NGAP_M5Configuration; +struct ASN_NGAP_M6Configuration; +struct ASN_NGAP_M7Configuration; +struct ASN_NGAP_BluetoothMeasurementConfiguration; +struct ASN_NGAP_WLANMeasurementConfiguration; +struct ASN_NGAP_MDT_Location_Info; +struct ASN_NGAP_SensorMeasurementConfiguration; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ImmediateMDTNr */ +typedef struct ASN_NGAP_ImmediateMDTNr { + ASN_NGAP_MeasurementsToActivate_t measurementsToActivate; + struct ASN_NGAP_M1Configuration *m1Configuration; /* OPTIONAL */ + struct ASN_NGAP_M4Configuration *m4Configuration; /* OPTIONAL */ + struct ASN_NGAP_M5Configuration *m5Configuration; /* OPTIONAL */ + struct ASN_NGAP_M6Configuration *m6Configuration; /* OPTIONAL */ + struct ASN_NGAP_M7Configuration *m7Configuration; /* OPTIONAL */ + struct ASN_NGAP_BluetoothMeasurementConfiguration *bluetoothMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_WLANMeasurementConfiguration *wLANMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_MDT_Location_Info *mDT_Location_Info; /* OPTIONAL */ + struct ASN_NGAP_SensorMeasurementConfiguration *sensorMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ImmediateMDTNr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ImmediateMDTNr; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ImmediateMDTNr_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ImmediateMDTNr_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ImmediateMDTNr_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.c b/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.c new file mode 100644 index 0000000..f3ab0e5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IncludeBeamMeasurementsIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IncludeBeamMeasurementsIndication_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_ASN_NGAP_IncludeBeamMeasurementsIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IncludeBeamMeasurementsIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IncludeBeamMeasurementsIndication_specs_1 = { + asn_MAP_ASN_NGAP_IncludeBeamMeasurementsIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IncludeBeamMeasurementsIndication_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_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication = { + "IncludeBeamMeasurementsIndication", + "IncludeBeamMeasurementsIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IncludeBeamMeasurementsIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IncludeBeamMeasurementsIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.h b/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.h new file mode 100644 index 0000000..f1a7db7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IncludeBeamMeasurementsIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IncludeBeamMeasurementsIndication_H_ +#define _ASN_NGAP_IncludeBeamMeasurementsIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IncludeBeamMeasurementsIndication { + ASN_NGAP_IncludeBeamMeasurementsIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IncludeBeamMeasurementsIndication; + +/* ASN_NGAP_IncludeBeamMeasurementsIndication */ +typedef long ASN_NGAP_IncludeBeamMeasurementsIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IncludeBeamMeasurementsIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IncludeBeamMeasurementsIndication_specs_1; +asn_struct_free_f ASN_NGAP_IncludeBeamMeasurementsIndication_free; +asn_struct_print_f ASN_NGAP_IncludeBeamMeasurementsIndication_print; +asn_constr_check_f ASN_NGAP_IncludeBeamMeasurementsIndication_constraint; +ber_type_decoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_decode_ber; +der_type_encoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_encode_der; +xer_type_decoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_encode_xer; +per_type_decoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_decode_uper; +per_type_encoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_encode_uper; +per_type_decoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_decode_aper; +per_type_encoder_f ASN_NGAP_IncludeBeamMeasurementsIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IncludeBeamMeasurementsIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IndexToRFSP.c b/src/asn/ngap/ASN_NGAP_IndexToRFSP.c new file mode 100644 index 0000000..c066c77 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IndexToRFSP.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IndexToRFSP.h" + +int +ASN_NGAP_IndexToRFSP_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_ASN_NGAP_IndexToRFSP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IndexToRFSP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IndexToRFSP = { + "IndexToRFSP", + "IndexToRFSP", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_IndexToRFSP_tags_1, + sizeof(asn_DEF_ASN_NGAP_IndexToRFSP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IndexToRFSP_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IndexToRFSP_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IndexToRFSP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IndexToRFSP_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IndexToRFSP_constr_1, ASN_NGAP_IndexToRFSP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IndexToRFSP.h b/src/asn/ngap/ASN_NGAP_IndexToRFSP.h new file mode 100644 index 0000000..12a233c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IndexToRFSP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IndexToRFSP_H_ +#define _ASN_NGAP_IndexToRFSP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_IndexToRFSP */ +typedef long ASN_NGAP_IndexToRFSP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IndexToRFSP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IndexToRFSP; +asn_struct_free_f ASN_NGAP_IndexToRFSP_free; +asn_struct_print_f ASN_NGAP_IndexToRFSP_print; +asn_constr_check_f ASN_NGAP_IndexToRFSP_constraint; +ber_type_decoder_f ASN_NGAP_IndexToRFSP_decode_ber; +der_type_encoder_f ASN_NGAP_IndexToRFSP_encode_der; +xer_type_decoder_f ASN_NGAP_IndexToRFSP_decode_xer; +xer_type_encoder_f ASN_NGAP_IndexToRFSP_encode_xer; +per_type_decoder_f ASN_NGAP_IndexToRFSP_decode_uper; +per_type_encoder_f ASN_NGAP_IndexToRFSP_encode_uper; +per_type_decoder_f ASN_NGAP_IndexToRFSP_decode_aper; +per_type_encoder_f ASN_NGAP_IndexToRFSP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IndexToRFSP_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c b/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c new file mode 100644 index 0000000..2902977 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, recommendedCellsForPaging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RecommendedCellsForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedCellsForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, recommendRANNodesForPaging), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendRANNodesForPaging" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* recommendedCellsForPaging */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* recommendRANNodesForPaging */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_specs_1 = { + sizeof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging), + offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, _asn_ctx), + asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging = { + "InfoOnRecommendedCellsAndRANNodesForPaging", + "InfoOnRecommendedCellsAndRANNodesForPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h b/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h new file mode 100644 index 0000000..e9da781 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_H_ +#define _ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RecommendedCellsForPaging.h" +#include "ASN_NGAP_RecommendedRANNodesForPaging.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging */ +typedef struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging { + ASN_NGAP_RecommendedCellsForPaging_t recommendedCellsForPaging; + ASN_NGAP_RecommendedRANNodesForPaging_t recommendRANNodesForPaging; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.c b/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.c new file mode 100644 index 0000000..71fc528 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InitialContextSetupFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupFailure_specs_1 = { + sizeof(struct ASN_NGAP_InitialContextSetupFailure), + offsetof(struct ASN_NGAP_InitialContextSetupFailure, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupFailure_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_ASN_NGAP_InitialContextSetupFailure = { + "InitialContextSetupFailure", + "InitialContextSetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.h b/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.h new file mode 100644 index 0000000..1d08a10 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InitialContextSetupFailure_H_ +#define _ASN_NGAP_InitialContextSetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_InitialContextSetupFailure */ +typedef struct ASN_NGAP_InitialContextSetupFailure { + ASN_NGAP_ProtocolIE_Container_123P15_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialContextSetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InitialContextSetupFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.c b/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.c new file mode 100644 index 0000000..7cad988 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InitialContextSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupRequest_specs_1 = { + sizeof(struct ASN_NGAP_InitialContextSetupRequest), + offsetof(struct ASN_NGAP_InitialContextSetupRequest, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupRequest_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_ASN_NGAP_InitialContextSetupRequest = { + "InitialContextSetupRequest", + "InitialContextSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.h b/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.h new file mode 100644 index 0000000..92ea968 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InitialContextSetupRequest_H_ +#define _ASN_NGAP_InitialContextSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_InitialContextSetupRequest */ +typedef struct ASN_NGAP_InitialContextSetupRequest { + ASN_NGAP_ProtocolIE_Container_123P13_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialContextSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InitialContextSetupRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.c b/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.c new file mode 100644 index 0000000..8af4d76 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InitialContextSetupResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupResponse_specs_1 = { + sizeof(struct ASN_NGAP_InitialContextSetupResponse), + offsetof(struct ASN_NGAP_InitialContextSetupResponse, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupResponse_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_ASN_NGAP_InitialContextSetupResponse = { + "InitialContextSetupResponse", + "InitialContextSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.h b/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.h new file mode 100644 index 0000000..767c89b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialContextSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InitialContextSetupResponse_H_ +#define _ASN_NGAP_InitialContextSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_InitialContextSetupResponse */ +typedef struct ASN_NGAP_InitialContextSetupResponse { + ASN_NGAP_ProtocolIE_Container_123P14_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialContextSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InitialContextSetupResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InitialUEMessage.c b/src/asn/ngap/ASN_NGAP_InitialUEMessage.c new file mode 100644 index 0000000..fa65446 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialUEMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InitialUEMessage.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialUEMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialUEMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialUEMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialUEMessage_specs_1 = { + sizeof(struct ASN_NGAP_InitialUEMessage), + offsetof(struct ASN_NGAP_InitialUEMessage, _asn_ctx), + asn_MAP_ASN_NGAP_InitialUEMessage_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_ASN_NGAP_InitialUEMessage = { + "InitialUEMessage", + "InitialUEMessage", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialUEMessage_tags_1, + sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialUEMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialUEMessage_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialUEMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InitialUEMessage.h b/src/asn/ngap/ASN_NGAP_InitialUEMessage.h new file mode 100644 index 0000000..24f44be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitialUEMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InitialUEMessage_H_ +#define _ASN_NGAP_InitialUEMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_InitialUEMessage */ +typedef struct ASN_NGAP_InitialUEMessage { + ASN_NGAP_ProtocolIE_Container_123P50_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialUEMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialUEMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialUEMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialUEMessage_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InitialUEMessage_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InitiatingMessage.c b/src/asn/ngap/ASN_NGAP_InitiatingMessage.c new file mode 100644 index 0000000..9ee6e62 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitiatingMessage.c @@ -0,0 +1,1528 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InitiatingMessage.h" + +static const long asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate = 0; +static const long asn_VAL_1_ASN_NGAP_reject = 0; +static const long asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification = 66; +static const long asn_VAL_2_ASN_NGAP_reject = 0; +static const long asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease = 67; +static const long asn_VAL_3_ASN_NGAP_reject = 0; +static const long asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup = 68; +static const long asn_VAL_4_ASN_NGAP_reject = 0; +static const long asn_VAL_5_ASN_NGAP_id_DistributionSetup = 69; +static const long asn_VAL_5_ASN_NGAP_reject = 0; +static const long asn_VAL_6_ASN_NGAP_id_DistributionRelease = 70; +static const long asn_VAL_6_ASN_NGAP_reject = 0; +static const long asn_VAL_7_ASN_NGAP_id_HandoverCancel = 10; +static const long asn_VAL_7_ASN_NGAP_reject = 0; +static const long asn_VAL_8_ASN_NGAP_id_HandoverPreparation = 12; +static const long asn_VAL_8_ASN_NGAP_reject = 0; +static const long asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation = 13; +static const long asn_VAL_9_ASN_NGAP_reject = 0; +static const long asn_VAL_10_ASN_NGAP_id_InitialContextSetup = 14; +static const long asn_VAL_10_ASN_NGAP_reject = 0; +static const long asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation = 71; +static const long asn_VAL_11_ASN_NGAP_reject = 0; +static const long asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation = 72; +static const long asn_VAL_12_ASN_NGAP_reject = 0; +static const long asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate = 73; +static const long asn_VAL_13_ASN_NGAP_reject = 0; +static const long asn_VAL_14_ASN_NGAP_id_NGReset = 20; +static const long asn_VAL_14_ASN_NGAP_reject = 0; +static const long asn_VAL_15_ASN_NGAP_id_NGSetup = 21; +static const long asn_VAL_15_ASN_NGAP_reject = 0; +static const long asn_VAL_16_ASN_NGAP_id_PathSwitchRequest = 25; +static const long asn_VAL_16_ASN_NGAP_reject = 0; +static const long asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify = 26; +static const long asn_VAL_17_ASN_NGAP_reject = 0; +static const long asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication = 27; +static const long asn_VAL_18_ASN_NGAP_reject = 0; +static const long asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease = 28; +static const long asn_VAL_19_ASN_NGAP_reject = 0; +static const long asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup = 29; +static const long asn_VAL_20_ASN_NGAP_reject = 0; +static const long asn_VAL_21_ASN_NGAP_id_PWSCancel = 32; +static const long asn_VAL_21_ASN_NGAP_reject = 0; +static const long asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate = 35; +static const long asn_VAL_22_ASN_NGAP_reject = 0; +static const long asn_VAL_23_ASN_NGAP_id_UEContextModification = 40; +static const long asn_VAL_23_ASN_NGAP_reject = 0; +static const long asn_VAL_24_ASN_NGAP_id_UEContextRelease = 41; +static const long asn_VAL_24_ASN_NGAP_reject = 0; +static const long asn_VAL_25_ASN_NGAP_id_UEContextResume = 58; +static const long asn_VAL_25_ASN_NGAP_reject = 0; +static const long asn_VAL_26_ASN_NGAP_id_UEContextSuspend = 59; +static const long asn_VAL_26_ASN_NGAP_reject = 0; +static const long asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck = 43; +static const long asn_VAL_27_ASN_NGAP_reject = 0; +static const long asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping = 60; +static const long asn_VAL_28_ASN_NGAP_reject = 0; +static const long asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning = 51; +static const long asn_VAL_29_ASN_NGAP_reject = 0; +static const long asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication = 64; +static const long asn_VAL_30_ASN_NGAP_reject = 0; +static const long asn_VAL_31_ASN_NGAP_id_AMFStatusIndication = 1; +static const long asn_VAL_31_ASN_NGAP_ignore = 1; +static const long asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired = 75; +static const long asn_VAL_32_ASN_NGAP_reject = 0; +static const long asn_VAL_33_ASN_NGAP_id_CellTrafficTrace = 2; +static const long asn_VAL_33_ASN_NGAP_ignore = 1; +static const long asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication = 65; +static const long asn_VAL_34_ASN_NGAP_reject = 0; +static const long asn_VAL_35_ASN_NGAP_id_DeactivateTrace = 3; +static const long asn_VAL_35_ASN_NGAP_ignore = 1; +static const long asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport = 4; +static const long asn_VAL_36_ASN_NGAP_ignore = 1; +static const long asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport = 5; +static const long asn_VAL_37_ASN_NGAP_ignore = 1; +static const long asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer = 6; +static const long asn_VAL_38_ASN_NGAP_ignore = 1; +static const long asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer = 63; +static const long asn_VAL_39_ASN_NGAP_ignore = 1; +static const long asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer = 7; +static const long asn_VAL_40_ASN_NGAP_ignore = 1; +static const long asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer = 54; +static const long asn_VAL_41_ASN_NGAP_ignore = 1; +static const long asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport = 8; +static const long asn_VAL_42_ASN_NGAP_ignore = 1; +static const long asn_VAL_43_ASN_NGAP_id_ErrorIndication = 9; +static const long asn_VAL_43_ASN_NGAP_ignore = 1; +static const long asn_VAL_44_ASN_NGAP_id_HandoverNotification = 11; +static const long asn_VAL_44_ASN_NGAP_ignore = 1; +static const long asn_VAL_45_ASN_NGAP_id_HandoverSuccess = 61; +static const long asn_VAL_45_ASN_NGAP_ignore = 1; +static const long asn_VAL_46_ASN_NGAP_id_InitialUEMessage = 15; +static const long asn_VAL_46_ASN_NGAP_ignore = 1; +static const long asn_VAL_47_ASN_NGAP_id_LocationReport = 18; +static const long asn_VAL_47_ASN_NGAP_ignore = 1; +static const long asn_VAL_48_ASN_NGAP_id_LocationReportingControl = 16; +static const long asn_VAL_48_ASN_NGAP_ignore = 1; +static const long asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication = 17; +static const long asn_VAL_49_ASN_NGAP_ignore = 1; +static const long asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging = 74; +static const long asn_VAL_50_ASN_NGAP_ignore = 1; +static const long asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication = 19; +static const long asn_VAL_51_ASN_NGAP_ignore = 1; +static const long asn_VAL_52_ASN_NGAP_id_OverloadStart = 22; +static const long asn_VAL_52_ASN_NGAP_ignore = 1; +static const long asn_VAL_53_ASN_NGAP_id_OverloadStop = 23; +static const long asn_VAL_53_ASN_NGAP_reject = 0; +static const long asn_VAL_54_ASN_NGAP_id_Paging = 24; +static const long asn_VAL_54_ASN_NGAP_ignore = 1; +static const long asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify = 30; +static const long asn_VAL_55_ASN_NGAP_ignore = 1; +static const long asn_VAL_56_ASN_NGAP_id_PrivateMessage = 31; +static const long asn_VAL_56_ASN_NGAP_ignore = 1; +static const long asn_VAL_57_ASN_NGAP_id_PWSFailureIndication = 33; +static const long asn_VAL_57_ASN_NGAP_ignore = 1; +static const long asn_VAL_58_ASN_NGAP_id_PWSRestartIndication = 34; +static const long asn_VAL_58_ASN_NGAP_ignore = 1; +static const long asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication = 57; +static const long asn_VAL_59_ASN_NGAP_reject = 0; +static const long asn_VAL_60_ASN_NGAP_id_RerouteNASRequest = 36; +static const long asn_VAL_60_ASN_NGAP_reject = 0; +static const long asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation = 55; +static const long asn_VAL_61_ASN_NGAP_reject = 0; +static const long asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport = 37; +static const long asn_VAL_62_ASN_NGAP_ignore = 1; +static const long asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport = 52; +static const long asn_VAL_63_ASN_NGAP_ignore = 1; +static const long asn_VAL_64_ASN_NGAP_id_TraceFailureIndication = 38; +static const long asn_VAL_64_ASN_NGAP_ignore = 1; +static const long asn_VAL_65_ASN_NGAP_id_TraceStart = 39; +static const long asn_VAL_65_ASN_NGAP_ignore = 1; +static const long asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest = 42; +static const long asn_VAL_66_ASN_NGAP_ignore = 1; +static const long asn_VAL_67_ASN_NGAP_id_UEInformationTransfer = 56; +static const long asn_VAL_67_ASN_NGAP_reject = 0; +static const long asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication = 44; +static const long asn_VAL_68_ASN_NGAP_ignore = 1; +static const long asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease = 45; +static const long asn_VAL_69_ASN_NGAP_ignore = 1; +static const long asn_VAL_70_ASN_NGAP_id_UplinkNASTransport = 46; +static const long asn_VAL_70_ASN_NGAP_ignore = 1; +static const long asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport = 47; +static const long asn_VAL_71_ASN_NGAP_ignore = 1; +static const long asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer = 48; +static const long asn_VAL_72_ASN_NGAP_ignore = 1; +static const long asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer = 62; +static const long asn_VAL_73_ASN_NGAP_reject = 0; +static const long asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer = 49; +static const long asn_VAL_74_ASN_NGAP_ignore = 1; +static const long asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer = 53; +static const long asn_VAL_75_ASN_NGAP_ignore = 1; +static const long asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport = 50; +static const long asn_VAL_76_ASN_NGAP_ignore = 1; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_1_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_2_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_3_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_4_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_5_ASN_NGAP_id_DistributionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_5_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_6_ASN_NGAP_id_DistributionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_6_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancel }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancelAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_7_ASN_NGAP_id_HandoverCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_7_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCommand }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverPreparationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_8_ASN_NGAP_id_HandoverPreparation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_8_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_9_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_10_ASN_NGAP_id_InitialContextSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_10_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_11_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_12_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_13_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGReset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_14_ASN_NGAP_id_NGReset }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_14_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_15_ASN_NGAP_id_NGSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_15_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_16_ASN_NGAP_id_PathSwitchRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_16_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_17_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_18_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_19_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_20_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_21_ASN_NGAP_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_21_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_22_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_23_ASN_NGAP_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_23_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_24_ASN_NGAP_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_24_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_25_ASN_NGAP_id_UEContextResume }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_25_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_26_ASN_NGAP_id_UEContextSuspend }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_26_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_27_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_28_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_29_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_30_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_31_ASN_NGAP_id_AMFStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_31_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_32_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_CellTrafficTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_33_ASN_NGAP_id_CellTrafficTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_33_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_34_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DeactivateTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_35_ASN_NGAP_id_DeactivateTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_35_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_36_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_37_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_38_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_39_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_40_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_41_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_42_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_43_ASN_NGAP_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_43_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_44_ASN_NGAP_id_HandoverNotification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_44_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverSuccess }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_45_ASN_NGAP_id_HandoverSuccess }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_45_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialUEMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_46_ASN_NGAP_id_InitialUEMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_46_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_47_ASN_NGAP_id_LocationReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_47_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingControl }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_48_ASN_NGAP_id_LocationReportingControl }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_48_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_49_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastGroupPaging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_50_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NASNonDeliveryIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_51_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_52_ASN_NGAP_id_OverloadStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_52_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStop }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_53_ASN_NGAP_id_OverloadStop }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_53_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_54_ASN_NGAP_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_54_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_55_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_56_ASN_NGAP_id_PrivateMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_56_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_57_ASN_NGAP_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_57_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_58_ASN_NGAP_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_58_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_59_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RerouteNASRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_60_ASN_NGAP_id_RerouteNASRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_60_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RetrieveUEInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_61_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_62_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_63_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_64_ASN_NGAP_id_TraceFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_64_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_65_ASN_NGAP_id_TraceStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_65_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_66_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_67_ASN_NGAP_id_UEInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_67_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_68_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_69_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_70_ASN_NGAP_id_UplinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_70_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_71_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_72_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_73_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_74_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_75_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_76_ASN_NGAP_ignore } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1[] = { + { 76, 5, asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_ASN_NGAP_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_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.AMFConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.BroadcastSessionModificationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionModificationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.BroadcastSessionReleaseRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionReleaseRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.BroadcastSessionSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DistributionSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DistributionSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DistributionReleaseRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionReleaseRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DistributionReleaseRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.HandoverCancel), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCancel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverCancel" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.HandoverRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverRequired" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.HandoverRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.InitialContextSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InitialContextSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.MulticastSessionActivationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionActivationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.MulticastSessionDeactivationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionDeactivationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.MulticastSessionUpdateRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionUpdateRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.NGReset), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGReset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGReset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.NGSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PathSwitchRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PathSwitchRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PDUSessionResourceModifyRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PDUSessionResourceModifyIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PDUSessionResourceReleaseCommand), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleaseCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PDUSessionResourceSetupRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PWSCancelRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSCancelRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSCancelRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.RANConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEContextModificationRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEContextReleaseCommand), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEContextResumeRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextResumeRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEContextSuspendRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSuspendRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UERadioCapabilityCheckRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityCheckRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UERadioCapabilityIDMappingRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityIDMappingRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.WriteReplaceWarningRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WriteReplaceWarningRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WriteReplaceWarningRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.AMFCPRelocationIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFCPRelocationIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFCPRelocationIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.AMFStatusIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFStatusIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFStatusIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.BroadcastSessionReleaseRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionReleaseRequired" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.CellTrafficTrace), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellTrafficTrace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CellTrafficTrace" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.ConnectionEstablishmentIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConnectionEstablishmentIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DeactivateTrace), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DeactivateTrace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DeactivateTrace" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkNASTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkNASTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkNASTransport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkNonUEAssociatedNRPPaTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkNonUEAssociatedNRPPaTransport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkRANConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkRANConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkRANEarlyStatusTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkRANEarlyStatusTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkRANStatusTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkRANStatusTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkRIMInformationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkRIMInformationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.DownlinkUEAssociatedNRPPaTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DownlinkUEAssociatedNRPPaTransport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.ErrorIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ErrorIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ErrorIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.HandoverNotify), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverNotify, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverNotify" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.HandoverSuccess), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverSuccess, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverSuccess" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.InitialUEMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialUEMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InitialUEMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.LocationReport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.LocationReportingControl), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingControl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.LocationReportingFailureIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingFailureIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.MulticastGroupPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastGroupPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.NASNonDeliveryIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NASNonDeliveryIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NASNonDeliveryIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.OverloadStart), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OverloadStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.OverloadStop), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStop, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OverloadStop" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.Paging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Paging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Paging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PDUSessionResourceNotify), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotify, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceNotify" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PrivateMessage), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PrivateMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PrivateMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PWSFailureIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSFailureIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.PWSRestartIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSRestartIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSRestartIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.RANCPRelocationIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANCPRelocationIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANCPRelocationIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.RerouteNASRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RerouteNASRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RerouteNASRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.RetrieveUEInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RetrieveUEInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RetrieveUEInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.RRCInactiveTransitionReport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCInactiveTransitionReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.SecondaryRATDataUsageReport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATDataUsageReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.TraceFailureIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TraceFailureIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.TraceStart), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceStart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TraceStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEContextReleaseRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UEInformationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEInformationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UERadioCapabilityInfoIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityInfoIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UETNLABindingReleaseRequest), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UETNLABindingReleaseRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkNASTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkNASTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkNASTransport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkNonUEAssociatedNRPPaTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkNonUEAssociatedNRPPaTransport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkRANConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkRANConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkRANEarlyStatusTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkRANEarlyStatusTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkRANStatusTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANStatusTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkRANStatusTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkRIMInformationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkRIMInformationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage__value, choice.UplinkUEAssociatedNRPPaTransport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UplinkUEAssociatedNRPPaTransport" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 75 }, /* AMFConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 74 }, /* BroadcastSessionModificationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 73 }, /* BroadcastSessionReleaseRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 72 }, /* BroadcastSessionSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 71 }, /* DistributionSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 70 }, /* DistributionReleaseRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 69 }, /* HandoverCancel */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 68 }, /* HandoverRequired */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 67 }, /* HandoverRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 66 }, /* InitialContextSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 65 }, /* MulticastSessionActivationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 64 }, /* MulticastSessionDeactivationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 63 }, /* MulticastSessionUpdateRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 62 }, /* NGReset */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 61 }, /* NGSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 60 }, /* PathSwitchRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 59 }, /* PDUSessionResourceModifyRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 58 }, /* PDUSessionResourceModifyIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 57 }, /* PDUSessionResourceReleaseCommand */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 56 }, /* PDUSessionResourceSetupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 55 }, /* PWSCancelRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 54 }, /* RANConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 53 }, /* UEContextModificationRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 52 }, /* UEContextReleaseCommand */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 51 }, /* UEContextResumeRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -25, 50 }, /* UEContextSuspendRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -26, 49 }, /* UERadioCapabilityCheckRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -27, 48 }, /* UERadioCapabilityIDMappingRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -28, 47 }, /* WriteReplaceWarningRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -29, 46 }, /* AMFCPRelocationIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 30, -30, 45 }, /* AMFStatusIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 31, -31, 44 }, /* BroadcastSessionReleaseRequired */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 32, -32, 43 }, /* CellTrafficTrace */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 33, -33, 42 }, /* ConnectionEstablishmentIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 34, -34, 41 }, /* DeactivateTrace */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 35, -35, 40 }, /* DownlinkNASTransport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 36, -36, 39 }, /* DownlinkNonUEAssociatedNRPPaTransport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 37, -37, 38 }, /* DownlinkRANConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 38, -38, 37 }, /* DownlinkRANEarlyStatusTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 39, -39, 36 }, /* DownlinkRANStatusTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 40, -40, 35 }, /* DownlinkRIMInformationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 41, -41, 34 }, /* DownlinkUEAssociatedNRPPaTransport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 42, -42, 33 }, /* ErrorIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 43, -43, 32 }, /* HandoverNotify */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 44, -44, 31 }, /* HandoverSuccess */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 45, -45, 30 }, /* InitialUEMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 46, -46, 29 }, /* LocationReport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 47, -47, 28 }, /* LocationReportingControl */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 48, -48, 27 }, /* LocationReportingFailureIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 49, -49, 26 }, /* MulticastGroupPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 50, -50, 25 }, /* NASNonDeliveryIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 51, -51, 24 }, /* OverloadStart */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 52, -52, 23 }, /* OverloadStop */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 53, -53, 22 }, /* Paging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 54, -54, 21 }, /* PDUSessionResourceNotify */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 55, -55, 20 }, /* PrivateMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 56, -56, 19 }, /* PWSFailureIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 57, -57, 18 }, /* PWSRestartIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 58, -58, 17 }, /* RANCPRelocationIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 59, -59, 16 }, /* RerouteNASRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 60, -60, 15 }, /* RetrieveUEInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 61, -61, 14 }, /* RRCInactiveTransitionReport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 62, -62, 13 }, /* SecondaryRATDataUsageReport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 63, -63, 12 }, /* TraceFailureIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 64, -64, 11 }, /* TraceStart */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 65, -65, 10 }, /* UEContextReleaseRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 66, -66, 9 }, /* UEInformationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 67, -67, 8 }, /* UERadioCapabilityInfoIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 68, -68, 7 }, /* UETNLABindingReleaseRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 69, -69, 6 }, /* UplinkNASTransport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 70, -70, 5 }, /* UplinkNonUEAssociatedNRPPaTransport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 71, -71, 4 }, /* UplinkRANConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 72, -72, 3 }, /* UplinkRANEarlyStatusTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 73, -73, 2 }, /* UplinkRANStatusTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 74, -74, 1 }, /* UplinkRIMInformationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 75, -75, 0 } /* UplinkUEAssociatedNRPPaTransport */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_4 = { + sizeof(struct ASN_NGAP_InitiatingMessage__value), + offsetof(struct ASN_NGAP_InitiatingMessage__value, _asn_ctx), + offsetof(struct ASN_NGAP_InitiatingMessage__value, present), + sizeof(((struct ASN_NGAP_InitiatingMessage__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_4, + 76, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_4, + 76, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitiatingMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProcedureCode, + 0, + { 0, &asn_PER_memb_ASN_NGAP_procedureCode_constr_2, memb_ASN_NGAP_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Criticality, + select_InitiatingMessage_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitiatingMessage, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_value_4, + select_InitiatingMessage_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_4, memb_ASN_NGAP_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitiatingMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_InitiatingMessage_specs_1 = { + sizeof(struct ASN_NGAP_InitiatingMessage), + offsetof(struct ASN_NGAP_InitiatingMessage, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_InitiatingMessage = { + "InitiatingMessage", + "InitiatingMessage", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitiatingMessage_tags_1, + sizeof(asn_DEF_ASN_NGAP_InitiatingMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitiatingMessage_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitiatingMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitiatingMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InitiatingMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitiatingMessage_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InitiatingMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InitiatingMessage.h b/src/asn/ngap/ASN_NGAP_InitiatingMessage.h new file mode 100644 index 0000000..7be7a56 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InitiatingMessage.h @@ -0,0 +1,331 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InitiatingMessage_H_ +#define _ASN_NGAP_InitiatingMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProcedureCode.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include "ASN_NGAP_AMFConfigurationUpdate.h" +#include "ASN_NGAP_AMFConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_AMFConfigurationUpdateFailure.h" +#include "ASN_NGAP_BroadcastSessionModificationRequest.h" +#include "ASN_NGAP_BroadcastSessionModificationResponse.h" +#include "ASN_NGAP_BroadcastSessionModificationFailure.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequest.h" +#include "ASN_NGAP_BroadcastSessionReleaseResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupRequest.h" +#include "ASN_NGAP_BroadcastSessionSetupResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupFailure.h" +#include "ASN_NGAP_DistributionSetupRequest.h" +#include "ASN_NGAP_DistributionSetupResponse.h" +#include "ASN_NGAP_DistributionSetupFailure.h" +#include "ASN_NGAP_DistributionReleaseRequest.h" +#include "ASN_NGAP_DistributionReleaseResponse.h" +#include "ASN_NGAP_HandoverCancel.h" +#include "ASN_NGAP_HandoverCancelAcknowledge.h" +#include "ASN_NGAP_HandoverRequired.h" +#include "ASN_NGAP_HandoverCommand.h" +#include "ASN_NGAP_HandoverPreparationFailure.h" +#include "ASN_NGAP_HandoverRequest.h" +#include "ASN_NGAP_HandoverRequestAcknowledge.h" +#include "ASN_NGAP_HandoverFailure.h" +#include "ASN_NGAP_InitialContextSetupRequest.h" +#include "ASN_NGAP_InitialContextSetupResponse.h" +#include "ASN_NGAP_InitialContextSetupFailure.h" +#include "ASN_NGAP_MulticastSessionActivationRequest.h" +#include "ASN_NGAP_MulticastSessionActivationResponse.h" +#include "ASN_NGAP_MulticastSessionActivationFailure.h" +#include "ASN_NGAP_MulticastSessionDeactivationRequest.h" +#include "ASN_NGAP_MulticastSessionDeactivationResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateRequest.h" +#include "ASN_NGAP_MulticastSessionUpdateResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateFailure.h" +#include "ASN_NGAP_NGReset.h" +#include "ASN_NGAP_NGResetAcknowledge.h" +#include "ASN_NGAP_NGSetupRequest.h" +#include "ASN_NGAP_NGSetupResponse.h" +#include "ASN_NGAP_NGSetupFailure.h" +#include "ASN_NGAP_PathSwitchRequest.h" +#include "ASN_NGAP_PathSwitchRequestAcknowledge.h" +#include "ASN_NGAP_PathSwitchRequestFailure.h" +#include "ASN_NGAP_PDUSessionResourceModifyRequest.h" +#include "ASN_NGAP_PDUSessionResourceModifyResponse.h" +#include "ASN_NGAP_PDUSessionResourceModifyIndication.h" +#include "ASN_NGAP_PDUSessionResourceModifyConfirm.h" +#include "ASN_NGAP_PDUSessionResourceReleaseCommand.h" +#include "ASN_NGAP_PDUSessionResourceReleaseResponse.h" +#include "ASN_NGAP_PDUSessionResourceSetupRequest.h" +#include "ASN_NGAP_PDUSessionResourceSetupResponse.h" +#include "ASN_NGAP_PWSCancelRequest.h" +#include "ASN_NGAP_PWSCancelResponse.h" +#include "ASN_NGAP_RANConfigurationUpdate.h" +#include "ASN_NGAP_RANConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_RANConfigurationUpdateFailure.h" +#include "ASN_NGAP_UEContextModificationRequest.h" +#include "ASN_NGAP_UEContextModificationResponse.h" +#include "ASN_NGAP_UEContextModificationFailure.h" +#include "ASN_NGAP_UEContextReleaseCommand.h" +#include "ASN_NGAP_UEContextReleaseComplete.h" +#include "ASN_NGAP_UEContextResumeRequest.h" +#include "ASN_NGAP_UEContextResumeResponse.h" +#include "ASN_NGAP_UEContextResumeFailure.h" +#include "ASN_NGAP_UEContextSuspendRequest.h" +#include "ASN_NGAP_UEContextSuspendResponse.h" +#include "ASN_NGAP_UEContextSuspendFailure.h" +#include "ASN_NGAP_UERadioCapabilityCheckRequest.h" +#include "ASN_NGAP_UERadioCapabilityCheckResponse.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingRequest.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingResponse.h" +#include "ASN_NGAP_WriteReplaceWarningRequest.h" +#include "ASN_NGAP_WriteReplaceWarningResponse.h" +#include "ASN_NGAP_AMFCPRelocationIndication.h" +#include "ASN_NGAP_AMFStatusIndication.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequired.h" +#include "ASN_NGAP_CellTrafficTrace.h" +#include "ASN_NGAP_ConnectionEstablishmentIndication.h" +#include "ASN_NGAP_DeactivateTrace.h" +#include "ASN_NGAP_DownlinkNASTransport.h" +#include "ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_DownlinkRANConfigurationTransfer.h" +#include "ASN_NGAP_DownlinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_DownlinkRANStatusTransfer.h" +#include "ASN_NGAP_DownlinkRIMInformationTransfer.h" +#include "ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_ErrorIndication.h" +#include "ASN_NGAP_HandoverNotify.h" +#include "ASN_NGAP_HandoverSuccess.h" +#include "ASN_NGAP_InitialUEMessage.h" +#include "ASN_NGAP_LocationReport.h" +#include "ASN_NGAP_LocationReportingControl.h" +#include "ASN_NGAP_LocationReportingFailureIndication.h" +#include "ASN_NGAP_MulticastGroupPaging.h" +#include "ASN_NGAP_NASNonDeliveryIndication.h" +#include "ASN_NGAP_OverloadStart.h" +#include "ASN_NGAP_OverloadStop.h" +#include "ASN_NGAP_Paging.h" +#include "ASN_NGAP_PDUSessionResourceNotify.h" +#include "ASN_NGAP_PrivateMessage.h" +#include "ASN_NGAP_PWSFailureIndication.h" +#include "ASN_NGAP_PWSRestartIndication.h" +#include "ASN_NGAP_RANCPRelocationIndication.h" +#include "ASN_NGAP_RerouteNASRequest.h" +#include "ASN_NGAP_RetrieveUEInformation.h" +#include "ASN_NGAP_RRCInactiveTransitionReport.h" +#include "ASN_NGAP_SecondaryRATDataUsageReport.h" +#include "ASN_NGAP_TraceFailureIndication.h" +#include "ASN_NGAP_TraceStart.h" +#include "ASN_NGAP_UEContextReleaseRequest.h" +#include "ASN_NGAP_UEInformationTransfer.h" +#include "ASN_NGAP_UERadioCapabilityInfoIndication.h" +#include "ASN_NGAP_UETNLABindingReleaseRequest.h" +#include "ASN_NGAP_UplinkNASTransport.h" +#include "ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_UplinkRANConfigurationTransfer.h" +#include "ASN_NGAP_UplinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_UplinkRANStatusTransfer.h" +#include "ASN_NGAP_UplinkRIMInformationTransfer.h" +#include "ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_InitiatingMessage__value_PR { + ASN_NGAP_InitiatingMessage__value_PR_NOTHING, /* No components present */ + ASN_NGAP_InitiatingMessage__value_PR_AMFConfigurationUpdate, + ASN_NGAP_InitiatingMessage__value_PR_BroadcastSessionModificationRequest, + ASN_NGAP_InitiatingMessage__value_PR_BroadcastSessionReleaseRequest, + ASN_NGAP_InitiatingMessage__value_PR_BroadcastSessionSetupRequest, + ASN_NGAP_InitiatingMessage__value_PR_DistributionSetupRequest, + ASN_NGAP_InitiatingMessage__value_PR_DistributionReleaseRequest, + ASN_NGAP_InitiatingMessage__value_PR_HandoverCancel, + ASN_NGAP_InitiatingMessage__value_PR_HandoverRequired, + ASN_NGAP_InitiatingMessage__value_PR_HandoverRequest, + ASN_NGAP_InitiatingMessage__value_PR_InitialContextSetupRequest, + ASN_NGAP_InitiatingMessage__value_PR_MulticastSessionActivationRequest, + ASN_NGAP_InitiatingMessage__value_PR_MulticastSessionDeactivationRequest, + ASN_NGAP_InitiatingMessage__value_PR_MulticastSessionUpdateRequest, + ASN_NGAP_InitiatingMessage__value_PR_NGReset, + ASN_NGAP_InitiatingMessage__value_PR_NGSetupRequest, + ASN_NGAP_InitiatingMessage__value_PR_PathSwitchRequest, + ASN_NGAP_InitiatingMessage__value_PR_PDUSessionResourceModifyRequest, + ASN_NGAP_InitiatingMessage__value_PR_PDUSessionResourceModifyIndication, + ASN_NGAP_InitiatingMessage__value_PR_PDUSessionResourceReleaseCommand, + ASN_NGAP_InitiatingMessage__value_PR_PDUSessionResourceSetupRequest, + ASN_NGAP_InitiatingMessage__value_PR_PWSCancelRequest, + ASN_NGAP_InitiatingMessage__value_PR_RANConfigurationUpdate, + ASN_NGAP_InitiatingMessage__value_PR_UEContextModificationRequest, + ASN_NGAP_InitiatingMessage__value_PR_UEContextReleaseCommand, + ASN_NGAP_InitiatingMessage__value_PR_UEContextResumeRequest, + ASN_NGAP_InitiatingMessage__value_PR_UEContextSuspendRequest, + ASN_NGAP_InitiatingMessage__value_PR_UERadioCapabilityCheckRequest, + ASN_NGAP_InitiatingMessage__value_PR_UERadioCapabilityIDMappingRequest, + ASN_NGAP_InitiatingMessage__value_PR_WriteReplaceWarningRequest, + ASN_NGAP_InitiatingMessage__value_PR_AMFCPRelocationIndication, + ASN_NGAP_InitiatingMessage__value_PR_AMFStatusIndication, + ASN_NGAP_InitiatingMessage__value_PR_BroadcastSessionReleaseRequired, + ASN_NGAP_InitiatingMessage__value_PR_CellTrafficTrace, + ASN_NGAP_InitiatingMessage__value_PR_ConnectionEstablishmentIndication, + ASN_NGAP_InitiatingMessage__value_PR_DeactivateTrace, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkNASTransport, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkNonUEAssociatedNRPPaTransport, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkRANConfigurationTransfer, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkRANEarlyStatusTransfer, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkRANStatusTransfer, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkRIMInformationTransfer, + ASN_NGAP_InitiatingMessage__value_PR_DownlinkUEAssociatedNRPPaTransport, + ASN_NGAP_InitiatingMessage__value_PR_ErrorIndication, + ASN_NGAP_InitiatingMessage__value_PR_HandoverNotify, + ASN_NGAP_InitiatingMessage__value_PR_HandoverSuccess, + ASN_NGAP_InitiatingMessage__value_PR_InitialUEMessage, + ASN_NGAP_InitiatingMessage__value_PR_LocationReport, + ASN_NGAP_InitiatingMessage__value_PR_LocationReportingControl, + ASN_NGAP_InitiatingMessage__value_PR_LocationReportingFailureIndication, + ASN_NGAP_InitiatingMessage__value_PR_MulticastGroupPaging, + ASN_NGAP_InitiatingMessage__value_PR_NASNonDeliveryIndication, + ASN_NGAP_InitiatingMessage__value_PR_OverloadStart, + ASN_NGAP_InitiatingMessage__value_PR_OverloadStop, + ASN_NGAP_InitiatingMessage__value_PR_Paging, + ASN_NGAP_InitiatingMessage__value_PR_PDUSessionResourceNotify, + ASN_NGAP_InitiatingMessage__value_PR_PrivateMessage, + ASN_NGAP_InitiatingMessage__value_PR_PWSFailureIndication, + ASN_NGAP_InitiatingMessage__value_PR_PWSRestartIndication, + ASN_NGAP_InitiatingMessage__value_PR_RANCPRelocationIndication, + ASN_NGAP_InitiatingMessage__value_PR_RerouteNASRequest, + ASN_NGAP_InitiatingMessage__value_PR_RetrieveUEInformation, + ASN_NGAP_InitiatingMessage__value_PR_RRCInactiveTransitionReport, + ASN_NGAP_InitiatingMessage__value_PR_SecondaryRATDataUsageReport, + ASN_NGAP_InitiatingMessage__value_PR_TraceFailureIndication, + ASN_NGAP_InitiatingMessage__value_PR_TraceStart, + ASN_NGAP_InitiatingMessage__value_PR_UEContextReleaseRequest, + ASN_NGAP_InitiatingMessage__value_PR_UEInformationTransfer, + ASN_NGAP_InitiatingMessage__value_PR_UERadioCapabilityInfoIndication, + ASN_NGAP_InitiatingMessage__value_PR_UETNLABindingReleaseRequest, + ASN_NGAP_InitiatingMessage__value_PR_UplinkNASTransport, + ASN_NGAP_InitiatingMessage__value_PR_UplinkNonUEAssociatedNRPPaTransport, + ASN_NGAP_InitiatingMessage__value_PR_UplinkRANConfigurationTransfer, + ASN_NGAP_InitiatingMessage__value_PR_UplinkRANEarlyStatusTransfer, + ASN_NGAP_InitiatingMessage__value_PR_UplinkRANStatusTransfer, + ASN_NGAP_InitiatingMessage__value_PR_UplinkRIMInformationTransfer, + ASN_NGAP_InitiatingMessage__value_PR_UplinkUEAssociatedNRPPaTransport +} ASN_NGAP_InitiatingMessage__value_PR; + +/* ASN_NGAP_InitiatingMessage */ +typedef struct ASN_NGAP_InitiatingMessage { + ASN_NGAP_ProcedureCode_t procedureCode; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InitiatingMessage__value { + ASN_NGAP_InitiatingMessage__value_PR present; + union ASN_NGAP_InitiatingMessage__ASN_NGAP_value_u { + ASN_NGAP_AMFConfigurationUpdate_t AMFConfigurationUpdate; + ASN_NGAP_BroadcastSessionModificationRequest_t BroadcastSessionModificationRequest; + ASN_NGAP_BroadcastSessionReleaseRequest_t BroadcastSessionReleaseRequest; + ASN_NGAP_BroadcastSessionSetupRequest_t BroadcastSessionSetupRequest; + ASN_NGAP_DistributionSetupRequest_t DistributionSetupRequest; + ASN_NGAP_DistributionReleaseRequest_t DistributionReleaseRequest; + ASN_NGAP_HandoverCancel_t HandoverCancel; + ASN_NGAP_HandoverRequired_t HandoverRequired; + ASN_NGAP_HandoverRequest_t HandoverRequest; + ASN_NGAP_InitialContextSetupRequest_t InitialContextSetupRequest; + ASN_NGAP_MulticastSessionActivationRequest_t MulticastSessionActivationRequest; + ASN_NGAP_MulticastSessionDeactivationRequest_t MulticastSessionDeactivationRequest; + ASN_NGAP_MulticastSessionUpdateRequest_t MulticastSessionUpdateRequest; + ASN_NGAP_NGReset_t NGReset; + ASN_NGAP_NGSetupRequest_t NGSetupRequest; + ASN_NGAP_PathSwitchRequest_t PathSwitchRequest; + ASN_NGAP_PDUSessionResourceModifyRequest_t PDUSessionResourceModifyRequest; + ASN_NGAP_PDUSessionResourceModifyIndication_t PDUSessionResourceModifyIndication; + ASN_NGAP_PDUSessionResourceReleaseCommand_t PDUSessionResourceReleaseCommand; + ASN_NGAP_PDUSessionResourceSetupRequest_t PDUSessionResourceSetupRequest; + ASN_NGAP_PWSCancelRequest_t PWSCancelRequest; + ASN_NGAP_RANConfigurationUpdate_t RANConfigurationUpdate; + ASN_NGAP_UEContextModificationRequest_t UEContextModificationRequest; + ASN_NGAP_UEContextReleaseCommand_t UEContextReleaseCommand; + ASN_NGAP_UEContextResumeRequest_t UEContextResumeRequest; + ASN_NGAP_UEContextSuspendRequest_t UEContextSuspendRequest; + ASN_NGAP_UERadioCapabilityCheckRequest_t UERadioCapabilityCheckRequest; + ASN_NGAP_UERadioCapabilityIDMappingRequest_t UERadioCapabilityIDMappingRequest; + ASN_NGAP_WriteReplaceWarningRequest_t WriteReplaceWarningRequest; + ASN_NGAP_AMFCPRelocationIndication_t AMFCPRelocationIndication; + ASN_NGAP_AMFStatusIndication_t AMFStatusIndication; + ASN_NGAP_BroadcastSessionReleaseRequired_t BroadcastSessionReleaseRequired; + ASN_NGAP_CellTrafficTrace_t CellTrafficTrace; + ASN_NGAP_ConnectionEstablishmentIndication_t ConnectionEstablishmentIndication; + ASN_NGAP_DeactivateTrace_t DeactivateTrace; + ASN_NGAP_DownlinkNASTransport_t DownlinkNASTransport; + ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport_t DownlinkNonUEAssociatedNRPPaTransport; + ASN_NGAP_DownlinkRANConfigurationTransfer_t DownlinkRANConfigurationTransfer; + ASN_NGAP_DownlinkRANEarlyStatusTransfer_t DownlinkRANEarlyStatusTransfer; + ASN_NGAP_DownlinkRANStatusTransfer_t DownlinkRANStatusTransfer; + ASN_NGAP_DownlinkRIMInformationTransfer_t DownlinkRIMInformationTransfer; + ASN_NGAP_DownlinkUEAssociatedNRPPaTransport_t DownlinkUEAssociatedNRPPaTransport; + ASN_NGAP_ErrorIndication_t ErrorIndication; + ASN_NGAP_HandoverNotify_t HandoverNotify; + ASN_NGAP_HandoverSuccess_t HandoverSuccess; + ASN_NGAP_InitialUEMessage_t InitialUEMessage; + ASN_NGAP_LocationReport_t LocationReport; + ASN_NGAP_LocationReportingControl_t LocationReportingControl; + ASN_NGAP_LocationReportingFailureIndication_t LocationReportingFailureIndication; + ASN_NGAP_MulticastGroupPaging_t MulticastGroupPaging; + ASN_NGAP_NASNonDeliveryIndication_t NASNonDeliveryIndication; + ASN_NGAP_OverloadStart_t OverloadStart; + ASN_NGAP_OverloadStop_t OverloadStop; + ASN_NGAP_Paging_t Paging; + ASN_NGAP_PDUSessionResourceNotify_t PDUSessionResourceNotify; + ASN_NGAP_PrivateMessage_t PrivateMessage; + ASN_NGAP_PWSFailureIndication_t PWSFailureIndication; + ASN_NGAP_PWSRestartIndication_t PWSRestartIndication; + ASN_NGAP_RANCPRelocationIndication_t RANCPRelocationIndication; + ASN_NGAP_RerouteNASRequest_t RerouteNASRequest; + ASN_NGAP_RetrieveUEInformation_t RetrieveUEInformation; + ASN_NGAP_RRCInactiveTransitionReport_t RRCInactiveTransitionReport; + ASN_NGAP_SecondaryRATDataUsageReport_t SecondaryRATDataUsageReport; + ASN_NGAP_TraceFailureIndication_t TraceFailureIndication; + ASN_NGAP_TraceStart_t TraceStart; + ASN_NGAP_UEContextReleaseRequest_t UEContextReleaseRequest; + ASN_NGAP_UEInformationTransfer_t UEInformationTransfer; + ASN_NGAP_UERadioCapabilityInfoIndication_t UERadioCapabilityInfoIndication; + ASN_NGAP_UETNLABindingReleaseRequest_t UETNLABindingReleaseRequest; + ASN_NGAP_UplinkNASTransport_t UplinkNASTransport; + ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_t UplinkNonUEAssociatedNRPPaTransport; + ASN_NGAP_UplinkRANConfigurationTransfer_t UplinkRANConfigurationTransfer; + ASN_NGAP_UplinkRANEarlyStatusTransfer_t UplinkRANEarlyStatusTransfer; + ASN_NGAP_UplinkRANStatusTransfer_t UplinkRANStatusTransfer; + ASN_NGAP_UplinkRIMInformationTransfer_t UplinkRIMInformationTransfer; + ASN_NGAP_UplinkUEAssociatedNRPPaTransport_t UplinkUEAssociatedNRPPaTransport; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitiatingMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitiatingMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitiatingMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitiatingMessage_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InitiatingMessage_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.c b/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.c new file mode 100644 index 0000000..6ab985c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntegrityProtectionIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntegrityProtectionIndication_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_ASN_NGAP_IntegrityProtectionIndication_value2enum_1[] = { + { 0, 8, "required" }, + { 1, 9, "preferred" }, + { 2, 10, "not-needed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IntegrityProtectionIndication_enum2value_1[] = { + 2, /* not-needed(2) */ + 1, /* preferred(1) */ + 0 /* required(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IntegrityProtectionIndication_specs_1 = { + asn_MAP_ASN_NGAP_IntegrityProtectionIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IntegrityProtectionIndication_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_ASN_NGAP_IntegrityProtectionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntegrityProtectionIndication = { + "IntegrityProtectionIndication", + "IntegrityProtectionIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IntegrityProtectionIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IntegrityProtectionIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.h b/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.h new file mode 100644 index 0000000..eea721f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntegrityProtectionIndication.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntegrityProtectionIndication_H_ +#define _ASN_NGAP_IntegrityProtectionIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntegrityProtectionIndication { + ASN_NGAP_IntegrityProtectionIndication_required = 0, + ASN_NGAP_IntegrityProtectionIndication_preferred = 1, + ASN_NGAP_IntegrityProtectionIndication_not_needed = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IntegrityProtectionIndication; + +/* ASN_NGAP_IntegrityProtectionIndication */ +typedef long ASN_NGAP_IntegrityProtectionIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntegrityProtectionIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntegrityProtectionIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IntegrityProtectionIndication_specs_1; +asn_struct_free_f ASN_NGAP_IntegrityProtectionIndication_free; +asn_struct_print_f ASN_NGAP_IntegrityProtectionIndication_print; +asn_constr_check_f ASN_NGAP_IntegrityProtectionIndication_constraint; +ber_type_decoder_f ASN_NGAP_IntegrityProtectionIndication_decode_ber; +der_type_encoder_f ASN_NGAP_IntegrityProtectionIndication_encode_der; +xer_type_decoder_f ASN_NGAP_IntegrityProtectionIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_IntegrityProtectionIndication_encode_xer; +per_type_decoder_f ASN_NGAP_IntegrityProtectionIndication_decode_uper; +per_type_encoder_f ASN_NGAP_IntegrityProtectionIndication_encode_uper; +per_type_decoder_f ASN_NGAP_IntegrityProtectionIndication_decode_aper; +per_type_encoder_f ASN_NGAP_IntegrityProtectionIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntegrityProtectionIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.c b/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.c new file mode 100644 index 0000000..9a50958 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntegrityProtectionResult.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntegrityProtectionResult_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_ASN_NGAP_IntegrityProtectionResult_value2enum_1[] = { + { 0, 9, "performed" }, + { 1, 13, "not-performed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_IntegrityProtectionResult_enum2value_1[] = { + 1, /* not-performed(1) */ + 0 /* performed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IntegrityProtectionResult_specs_1 = { + asn_MAP_ASN_NGAP_IntegrityProtectionResult_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_IntegrityProtectionResult_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_ASN_NGAP_IntegrityProtectionResult_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntegrityProtectionResult = { + "IntegrityProtectionResult", + "IntegrityProtectionResult", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntegrityProtectionResult_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IntegrityProtectionResult_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_IntegrityProtectionResult_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.h b/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.h new file mode 100644 index 0000000..acccc7e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntegrityProtectionResult.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntegrityProtectionResult_H_ +#define _ASN_NGAP_IntegrityProtectionResult_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntegrityProtectionResult { + ASN_NGAP_IntegrityProtectionResult_performed = 0, + ASN_NGAP_IntegrityProtectionResult_not_performed = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IntegrityProtectionResult; + +/* ASN_NGAP_IntegrityProtectionResult */ +typedef long ASN_NGAP_IntegrityProtectionResult_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntegrityProtectionResult_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntegrityProtectionResult; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_IntegrityProtectionResult_specs_1; +asn_struct_free_f ASN_NGAP_IntegrityProtectionResult_free; +asn_struct_print_f ASN_NGAP_IntegrityProtectionResult_print; +asn_constr_check_f ASN_NGAP_IntegrityProtectionResult_constraint; +ber_type_decoder_f ASN_NGAP_IntegrityProtectionResult_decode_ber; +der_type_encoder_f ASN_NGAP_IntegrityProtectionResult_encode_der; +xer_type_decoder_f ASN_NGAP_IntegrityProtectionResult_decode_xer; +xer_type_encoder_f ASN_NGAP_IntegrityProtectionResult_encode_xer; +per_type_decoder_f ASN_NGAP_IntegrityProtectionResult_decode_uper; +per_type_encoder_f ASN_NGAP_IntegrityProtectionResult_encode_uper; +per_type_decoder_f ASN_NGAP_IntegrityProtectionResult_decode_aper; +per_type_encoder_f ASN_NGAP_IntegrityProtectionResult_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntegrityProtectionResult_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.c b/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.c new file mode 100644 index 0000000..03c5542 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntendedNumberOfPagingAttempts.h" + +int +ASN_NGAP_IntendedNumberOfPagingAttempts_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntendedNumberOfPagingAttempts_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (1..16,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts = { + "IntendedNumberOfPagingAttempts", + "IntendedNumberOfPagingAttempts", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IntendedNumberOfPagingAttempts_constr_1, ASN_NGAP_IntendedNumberOfPagingAttempts_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.h b/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.h new file mode 100644 index 0000000..ea7ce01 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntendedNumberOfPagingAttempts.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntendedNumberOfPagingAttempts_H_ +#define _ASN_NGAP_IntendedNumberOfPagingAttempts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_IntendedNumberOfPagingAttempts */ +typedef long ASN_NGAP_IntendedNumberOfPagingAttempts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntendedNumberOfPagingAttempts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts; +asn_struct_free_f ASN_NGAP_IntendedNumberOfPagingAttempts_free; +asn_struct_print_f ASN_NGAP_IntendedNumberOfPagingAttempts_print; +asn_constr_check_f ASN_NGAP_IntendedNumberOfPagingAttempts_constraint; +ber_type_decoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_decode_ber; +der_type_encoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_encode_der; +xer_type_decoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_decode_xer; +xer_type_encoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_encode_xer; +per_type_decoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_decode_uper; +per_type_encoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_encode_uper; +per_type_decoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_decode_aper; +per_type_encoder_f ASN_NGAP_IntendedNumberOfPagingAttempts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntendedNumberOfPagingAttempts_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.c b/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.c new file mode 100644 index 0000000..ba05ee5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InterSystemFailureIndication.h" + +#include "ASN_NGAP_UERLFReportContainer.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemFailureIndication_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_InterSystemFailureIndication, uERLFReportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERLFReportContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_InterSystemFailureIndication, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_InterSystemFailureIndication_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uERLFReportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemFailureIndication_specs_1 = { + sizeof(struct ASN_NGAP_InterSystemFailureIndication), + offsetof(struct ASN_NGAP_InterSystemFailureIndication, _asn_ctx), + asn_MAP_ASN_NGAP_InterSystemFailureIndication_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_InterSystemFailureIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemFailureIndication = { + "InterSystemFailureIndication", + "InterSystemFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemFailureIndication_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.h b/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.h new file mode 100644 index 0000000..31faa93 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemFailureIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InterSystemFailureIndication_H_ +#define _ASN_NGAP_InterSystemFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UERLFReportContainer; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_InterSystemFailureIndication */ +typedef struct ASN_NGAP_InterSystemFailureIndication { + struct ASN_NGAP_UERLFReportContainer *uERLFReportContainer; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InterSystemFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemFailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemFailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemFailureIndication_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InterSystemFailureIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InterSystemHOReport.c b/src/asn/ngap/ASN_NGAP_InterSystemHOReport.c new file mode 100644 index 0000000..d4b4f28 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemHOReport.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InterSystemHOReport.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHOReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHOReport, handoverReportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_InterSystemHandoverReportType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverReportType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_InterSystemHOReport, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_InterSystemHOReport_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemHOReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverReportType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHOReport_specs_1 = { + sizeof(struct ASN_NGAP_InterSystemHOReport), + offsetof(struct ASN_NGAP_InterSystemHOReport, _asn_ctx), + asn_MAP_ASN_NGAP_InterSystemHOReport_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_InterSystemHOReport_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHOReport = { + "InterSystemHOReport", + "InterSystemHOReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemHOReport_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemHOReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InterSystemHOReport.h b/src/asn/ngap/ASN_NGAP_InterSystemHOReport.h new file mode 100644 index 0000000..60105a5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemHOReport.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InterSystemHOReport_H_ +#define _ASN_NGAP_InterSystemHOReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_InterSystemHandoverReportType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_InterSystemHOReport */ +typedef struct ASN_NGAP_InterSystemHOReport { + ASN_NGAP_InterSystemHandoverReportType_t handoverReportType; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InterSystemHOReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHOReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHOReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHOReport_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InterSystemHOReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.c b/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.c new file mode 100644 index 0000000..9092e7e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InterSystemHandoverReportType.h" + +#include "ASN_NGAP_TooearlyIntersystemHO.h" +#include "ASN_NGAP_IntersystemUnnecessaryHO.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_InterSystemHandoverReportType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHandoverReportType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType, choice.tooearlyIntersystemHO), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TooearlyIntersystemHO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tooearlyIntersystemHO" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType, choice.intersystemUnnecessaryHO), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersystemUnnecessaryHO" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemHandoverReportType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tooearlyIntersystemHO */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intersystemUnnecessaryHO */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_InterSystemHandoverReportType_specs_1 = { + sizeof(struct ASN_NGAP_InterSystemHandoverReportType), + offsetof(struct ASN_NGAP_InterSystemHandoverReportType, _asn_ctx), + offsetof(struct ASN_NGAP_InterSystemHandoverReportType, present), + sizeof(((struct ASN_NGAP_InterSystemHandoverReportType *)0)->present), + asn_MAP_ASN_NGAP_InterSystemHandoverReportType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHandoverReportType = { + "InterSystemHandoverReportType", + "InterSystemHandoverReportType", + &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_ASN_NGAP_InterSystemHandoverReportType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_InterSystemHandoverReportType_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemHandoverReportType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.h b/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.h new file mode 100644 index 0000000..4124880 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterSystemHandoverReportType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InterSystemHandoverReportType_H_ +#define _ASN_NGAP_InterSystemHandoverReportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_InterSystemHandoverReportType_PR { + ASN_NGAP_InterSystemHandoverReportType_PR_NOTHING, /* No components present */ + ASN_NGAP_InterSystemHandoverReportType_PR_tooearlyIntersystemHO, + ASN_NGAP_InterSystemHandoverReportType_PR_intersystemUnnecessaryHO, + ASN_NGAP_InterSystemHandoverReportType_PR_choice_Extensions +} ASN_NGAP_InterSystemHandoverReportType_PR; + +/* Forward declarations */ +struct ASN_NGAP_TooearlyIntersystemHO; +struct ASN_NGAP_IntersystemUnnecessaryHO; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_InterSystemHandoverReportType */ +typedef struct ASN_NGAP_InterSystemHandoverReportType { + ASN_NGAP_InterSystemHandoverReportType_PR present; + union ASN_NGAP_InterSystemHandoverReportType_u { + struct ASN_NGAP_TooearlyIntersystemHO *tooearlyIntersystemHO; + struct ASN_NGAP_IntersystemUnnecessaryHO *intersystemUnnecessaryHO; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InterSystemHandoverReportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHandoverReportType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_InterSystemHandoverReportType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHandoverReportType_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_InterSystemHandoverReportType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InterSystemHandoverReportType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_InterfacesToTrace.c b/src/asn/ngap/ASN_NGAP_InterfacesToTrace.c new file mode 100644 index 0000000..f45dc6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterfacesToTrace.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_InterfacesToTrace.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_InterfacesToTrace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterfacesToTrace = { + "InterfacesToTrace", + "InterfacesToTrace", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1, + sizeof(asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1) + /sizeof(asn_DEF_ASN_NGAP_InterfacesToTrace_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_InterfacesToTrace_constr_1, ASN_NGAP_InterfacesToTrace_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_InterfacesToTrace.h b/src/asn/ngap/ASN_NGAP_InterfacesToTrace.h new file mode 100644 index 0000000..c1a00e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_InterfacesToTrace.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_InterfacesToTrace_H_ +#define _ASN_NGAP_InterfacesToTrace_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_InterfacesToTrace */ +typedef BIT_STRING_t ASN_NGAP_InterfacesToTrace_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_InterfacesToTrace_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterfacesToTrace; +asn_struct_free_f ASN_NGAP_InterfacesToTrace_free; +asn_struct_print_f ASN_NGAP_InterfacesToTrace_print; +asn_constr_check_f ASN_NGAP_InterfacesToTrace_constraint; +ber_type_decoder_f ASN_NGAP_InterfacesToTrace_decode_ber; +der_type_encoder_f ASN_NGAP_InterfacesToTrace_encode_der; +xer_type_decoder_f ASN_NGAP_InterfacesToTrace_decode_xer; +xer_type_encoder_f ASN_NGAP_InterfacesToTrace_encode_xer; +per_type_decoder_f ASN_NGAP_InterfacesToTrace_decode_uper; +per_type_encoder_f ASN_NGAP_InterfacesToTrace_encode_uper; +per_type_decoder_f ASN_NGAP_InterfacesToTrace_decode_aper; +per_type_encoder_f ASN_NGAP_InterfacesToTrace_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_InterfacesToTrace_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.c b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.c new file mode 100644 index 0000000..82236e2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemCellActivationReply.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_activation_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 <= 16384)) { + /* Constraint 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_ASN_NGAP_activation_ID_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 15, 15, 0, 16384 } /* (0..16384,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationReply_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationReply, activatedCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ActivatedCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "activatedCellList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationReply, activation_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_activation_ID_constr_3, memb_ASN_NGAP_activation_ID_constraint_1 }, + 0, 0, /* No default value */ + "activation-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemCellActivationReply, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemCellActivationReply_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellActivationReply_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activatedCellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* activation-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationReply_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationReply), + offsetof(struct ASN_NGAP_IntersystemCellActivationReply, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellActivationReply_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemCellActivationReply_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply = { + "IntersystemCellActivationReply", + "IntersystemCellActivationReply", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellActivationReply_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellActivationReply_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.h b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.h new file mode 100644 index 0000000..57b9cea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationReply.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemCellActivationReply_H_ +#define _ASN_NGAP_IntersystemCellActivationReply_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ActivatedCellList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemCellActivationReply */ +typedef struct ASN_NGAP_IntersystemCellActivationReply { + ASN_NGAP_ActivatedCellList_t activatedCellList; + long activation_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellActivationReply_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationReply_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationReply_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemCellActivationReply_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.c b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.c new file mode 100644 index 0000000..eef54ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemCellActivationRequest.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_activationID_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 <= 16384)) { + /* Constraint 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_ASN_NGAP_activationID_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 15, 15, 0, 16384 } /* (0..16384,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest, activationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_activationID_constr_2, memb_ASN_NGAP_activationID_constraint_1 }, + 0, 0, /* No default value */ + "activationID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest, cellsToActivateList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellsToActivateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToActivateList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* activationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellsToActivateList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationRequest), + offsetof(struct ASN_NGAP_IntersystemCellActivationRequest, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest = { + "IntersystemCellActivationRequest", + "IntersystemCellActivationRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.h b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.h new file mode 100644 index 0000000..58d9b5c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellActivationRequest.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemCellActivationRequest_H_ +#define _ASN_NGAP_IntersystemCellActivationRequest_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_NGAP_CellsToActivateList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemCellActivationRequest */ +typedef struct ASN_NGAP_IntersystemCellActivationRequest { + long activationID; + ASN_NGAP_CellsToActivateList_t cellsToActivateList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellActivationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemCellActivationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.c b/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.c new file mode 100644 index 0000000..968c5c3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemCellStateIndication.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellStateIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellStateIndication, notificationCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NotificationCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notificationCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemCellStateIndication, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemCellStateIndication_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellStateIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notificationCellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellStateIndication_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemCellStateIndication), + offsetof(struct ASN_NGAP_IntersystemCellStateIndication, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellStateIndication_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemCellStateIndication_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication = { + "IntersystemCellStateIndication", + "IntersystemCellStateIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellStateIndication_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellStateIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.h b/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.h new file mode 100644 index 0000000..79bbd75 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemCellStateIndication.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemCellStateIndication_H_ +#define _ASN_NGAP_IntersystemCellStateIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NotificationCellList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemCellStateIndication */ +typedef struct ASN_NGAP_IntersystemCellStateIndication { + ASN_NGAP_NotificationCellList_t notificationCellList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellStateIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellStateIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellStateIndication_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemCellStateIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.c b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.c new file mode 100644 index 0000000..97ec147 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemResourceStatusReply.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReply, reportingsystem), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportingSystem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportingsystem" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemResourceStatusReply, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportingsystem */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReply), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReply, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply = { + "IntersystemResourceStatusReply", + "IntersystemResourceStatusReply", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.h b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.h new file mode 100644 index 0000000..1c0d0b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReply.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemResourceStatusReply_H_ +#define _ASN_NGAP_IntersystemResourceStatusReply_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ReportingSystem.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemResourceStatusReply */ +typedef struct ASN_NGAP_IntersystemResourceStatusReply { + ASN_NGAP_ReportingSystem_t reportingsystem; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusReply_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemResourceStatusReply_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.c b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.c new file mode 100644 index 0000000..1dc64a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemResourceStatusReport.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReport, reportingSystem), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ResourceStatusReportingSystem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportingSystem" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemResourceStatusReport, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportingSystem */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReport), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReport, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport = { + "IntersystemResourceStatusReport", + "IntersystemResourceStatusReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.h b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.h new file mode 100644 index 0000000..48dc99c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusReport.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemResourceStatusReport_H_ +#define _ASN_NGAP_IntersystemResourceStatusReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ResourceStatusReportingSystem.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemResourceStatusReport */ +typedef struct ASN_NGAP_IntersystemResourceStatusReport { + ASN_NGAP_ResourceStatusReportingSystem_t reportingSystem; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemResourceStatusReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.c b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.c new file mode 100644 index 0000000..09fe604 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemResourceStatusRequest.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest, reportingSystem), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportingSystem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportingSystem" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest, reportCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest, reportType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportingSystem */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusRequest), + offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest = { + "IntersystemResourceStatusRequest", + "IntersystemResourceStatusRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.h b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.h new file mode 100644 index 0000000..1c54f9d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceStatusRequest.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemResourceStatusRequest_H_ +#define _ASN_NGAP_IntersystemResourceStatusRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ReportingSystem.h" +#include "ASN_NGAP_ReportCharacteristics.h" +#include "ASN_NGAP_ReportType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemResourceStatusRequest */ +typedef struct ASN_NGAP_IntersystemResourceStatusRequest { + ASN_NGAP_ReportingSystem_t reportingSystem; + ASN_NGAP_ReportCharacteristics_t reportCharacteristics; + ASN_NGAP_ReportType_t reportType; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemResourceStatusRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.c b/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.c new file mode 100644 index 0000000..5a7c174 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemResourceThreshold.h" + +int +ASN_NGAP_IntersystemResourceThreshold_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_ASN_NGAP_IntersystemResourceThreshold_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_ASN_NGAP_IntersystemResourceThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceThreshold = { + "IntersystemResourceThreshold", + "IntersystemResourceThreshold", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceThreshold_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_IntersystemResourceThreshold_constr_1, ASN_NGAP_IntersystemResourceThreshold_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.h b/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.h new file mode 100644 index 0000000..d828373 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemResourceThreshold.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemResourceThreshold_H_ +#define _ASN_NGAP_IntersystemResourceThreshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_IntersystemResourceThreshold */ +typedef long ASN_NGAP_IntersystemResourceThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemResourceThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceThreshold; +asn_struct_free_f ASN_NGAP_IntersystemResourceThreshold_free; +asn_struct_print_f ASN_NGAP_IntersystemResourceThreshold_print; +asn_constr_check_f ASN_NGAP_IntersystemResourceThreshold_constraint; +ber_type_decoder_f ASN_NGAP_IntersystemResourceThreshold_decode_ber; +der_type_encoder_f ASN_NGAP_IntersystemResourceThreshold_encode_der; +xer_type_decoder_f ASN_NGAP_IntersystemResourceThreshold_decode_xer; +xer_type_encoder_f ASN_NGAP_IntersystemResourceThreshold_encode_xer; +per_type_decoder_f ASN_NGAP_IntersystemResourceThreshold_decode_uper; +per_type_encoder_f ASN_NGAP_IntersystemResourceThreshold_encode_uper; +per_type_decoder_f ASN_NGAP_IntersystemResourceThreshold_decode_aper; +per_type_encoder_f ASN_NGAP_IntersystemResourceThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemResourceThreshold_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.c b/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.c new file mode 100644 index 0000000..f800583 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONConfigurationTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer, transferType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONTransferType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transferType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer, intersystemSONInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersystemSONInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transferType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intersystemSONInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONConfigurationTransfer), + offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer = { + "IntersystemSONConfigurationTransfer", + "IntersystemSONConfigurationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.h b/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.h new file mode 100644 index 0000000..e28b618 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONConfigurationTransfer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONConfigurationTransfer_H_ +#define _ASN_NGAP_IntersystemSONConfigurationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntersystemSONTransferType.h" +#include "ASN_NGAP_IntersystemSONInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemSONConfigurationTransfer */ +typedef struct ASN_NGAP_IntersystemSONConfigurationTransfer { + ASN_NGAP_IntersystemSONTransferType_t transferType; + ASN_NGAP_IntersystemSONInformation_t intersystemSONInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONConfigurationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONConfigurationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.c b/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.c new file mode 100644 index 0000000..53925f2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONInformation.h" + +#include "ASN_NGAP_IntersystemSONInformationReport.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformation_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_ASN_NGAP_IntersystemSONInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation, choice.intersystemSONInformationReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemSONInformationReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intersystemSONInformationReport" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* intersystemSONInformationReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformation_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONInformation), + offsetof(struct ASN_NGAP_IntersystemSONInformation, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformation, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformation *)0)->present), + asn_MAP_ASN_NGAP_IntersystemSONInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformation = { + "IntersystemSONInformation", + "IntersystemSONInformation", + &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_ASN_NGAP_IntersystemSONInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.h b/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.h new file mode 100644 index 0000000..43b28de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONInformation_H_ +#define _ASN_NGAP_IntersystemSONInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemSONInformation_PR { + ASN_NGAP_IntersystemSONInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformation_PR_intersystemSONInformationReport, + ASN_NGAP_IntersystemSONInformation_PR_choice_Extensions +} ASN_NGAP_IntersystemSONInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_IntersystemSONInformationReport; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_IntersystemSONInformation */ +typedef struct ASN_NGAP_IntersystemSONInformation { + ASN_NGAP_IntersystemSONInformation_PR present; + union ASN_NGAP_IntersystemSONInformation_u { + struct ASN_NGAP_IntersystemSONInformationReport *intersystemSONInformationReport; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.c b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.c new file mode 100644 index 0000000..700c6b1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONInformationReply.h" + +#include "ASN_NGAP_IntersystemCellActivationReply.h" +#include "ASN_NGAP_IntersystemResourceStatusReply.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationReply_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReply_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply, choice.nGRAN_CellActivation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemCellActivationReply, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CellActivation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply, choice.resourceStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemResourceStatusReply, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceStatus" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationReply_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CellActivation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReply_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReply), + offsetof(struct ASN_NGAP_IntersystemSONInformationReply, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationReply, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationReply *)0)->present), + asn_MAP_ASN_NGAP_IntersystemSONInformationReply_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReply = { + "IntersystemSONInformationReply", + "IntersystemSONInformationReply", + &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_ASN_NGAP_IntersystemSONInformationReply_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReply_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReply_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.h b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.h new file mode 100644 index 0000000..3d6e536 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReply.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONInformationReply_H_ +#define _ASN_NGAP_IntersystemSONInformationReply_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemSONInformationReply_PR { + ASN_NGAP_IntersystemSONInformationReply_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformationReply_PR_nGRAN_CellActivation, + ASN_NGAP_IntersystemSONInformationReply_PR_resourceStatus, + ASN_NGAP_IntersystemSONInformationReply_PR_choice_Extensions +} ASN_NGAP_IntersystemSONInformationReply_PR; + +/* Forward declarations */ +struct ASN_NGAP_IntersystemCellActivationReply; +struct ASN_NGAP_IntersystemResourceStatusReply; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_IntersystemSONInformationReply */ +typedef struct ASN_NGAP_IntersystemSONInformationReply { + ASN_NGAP_IntersystemSONInformationReply_PR present; + union ASN_NGAP_IntersystemSONInformationReply_u { + struct ASN_NGAP_IntersystemCellActivationReply *nGRAN_CellActivation; + struct ASN_NGAP_IntersystemResourceStatusReply *resourceStatus; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformationReply_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReply; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReply_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReply_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationReply_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONInformationReply_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.c b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.c new file mode 100644 index 0000000..1f6fd79 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONInformationReport.h" + +#include "ASN_NGAP_InterSystemHOReport.h" +#include "ASN_NGAP_InterSystemFailureIndication.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationReport_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReport_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport, choice.hOReportInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_InterSystemHOReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hOReportInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport, choice.failureIndicationInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_InterSystemFailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureIndicationInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* hOReportInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* failureIndicationInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReport_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReport), + offsetof(struct ASN_NGAP_IntersystemSONInformationReport, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationReport, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationReport *)0)->present), + asn_MAP_ASN_NGAP_IntersystemSONInformationReport_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReport = { + "IntersystemSONInformationReport", + "IntersystemSONInformationReport", + &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_ASN_NGAP_IntersystemSONInformationReport_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReport_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.h b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.h new file mode 100644 index 0000000..0150250 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationReport.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONInformationReport_H_ +#define _ASN_NGAP_IntersystemSONInformationReport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemSONInformationReport_PR { + ASN_NGAP_IntersystemSONInformationReport_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformationReport_PR_hOReportInformation, + ASN_NGAP_IntersystemSONInformationReport_PR_failureIndicationInformation, + ASN_NGAP_IntersystemSONInformationReport_PR_choice_Extensions +} ASN_NGAP_IntersystemSONInformationReport_PR; + +/* Forward declarations */ +struct ASN_NGAP_InterSystemHOReport; +struct ASN_NGAP_InterSystemFailureIndication; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_IntersystemSONInformationReport */ +typedef struct ASN_NGAP_IntersystemSONInformationReport { + ASN_NGAP_IntersystemSONInformationReport_PR present; + union ASN_NGAP_IntersystemSONInformationReport_u { + struct ASN_NGAP_InterSystemHOReport *hOReportInformation; + struct ASN_NGAP_InterSystemFailureIndication *failureIndicationInformation; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformationReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReport; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReport_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationReport_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONInformationReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.c b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.c new file mode 100644 index 0000000..0817c95 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONInformationRequest.h" + +#include "ASN_NGAP_IntersystemCellActivationRequest.h" +#include "ASN_NGAP_IntersystemResourceStatusRequest.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationRequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest, choice.nGRAN_CellActivation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemCellActivationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CellActivation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest, choice.resourceStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceStatus" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CellActivation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationRequest), + offsetof(struct ASN_NGAP_IntersystemSONInformationRequest, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationRequest, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationRequest *)0)->present), + asn_MAP_ASN_NGAP_IntersystemSONInformationRequest_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationRequest = { + "IntersystemSONInformationRequest", + "IntersystemSONInformationRequest", + &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_ASN_NGAP_IntersystemSONInformationRequest_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.h b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.h new file mode 100644 index 0000000..2d1a0a3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONInformationRequest.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONInformationRequest_H_ +#define _ASN_NGAP_IntersystemSONInformationRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemSONInformationRequest_PR { + ASN_NGAP_IntersystemSONInformationRequest_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformationRequest_PR_nGRAN_CellActivation, + ASN_NGAP_IntersystemSONInformationRequest_PR_resourceStatus, + ASN_NGAP_IntersystemSONInformationRequest_PR_choice_Extensions +} ASN_NGAP_IntersystemSONInformationRequest_PR; + +/* Forward declarations */ +struct ASN_NGAP_IntersystemCellActivationRequest; +struct ASN_NGAP_IntersystemResourceStatusRequest; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_IntersystemSONInformationRequest */ +typedef struct ASN_NGAP_IntersystemSONInformationRequest { + ASN_NGAP_IntersystemSONInformationRequest_PR present; + union ASN_NGAP_IntersystemSONInformationRequest_u { + struct ASN_NGAP_IntersystemCellActivationRequest *nGRAN_CellActivation; + struct ASN_NGAP_IntersystemResourceStatusRequest *resourceStatus; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationRequest; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONInformationRequest_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONInformationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c b/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c new file mode 100644 index 0000000..bfbfba9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONNGRANnodeID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID, selectedTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONNGRANnodeID), + offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID = { + "IntersystemSONNGRANnodeID", + "IntersystemSONNGRANnodeID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h b/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h new file mode 100644 index 0000000..e207fe9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONNGRANnodeID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONNGRANnodeID_H_ +#define _ASN_NGAP_IntersystemSONNGRANnodeID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemSONNGRANnodeID */ +typedef struct ASN_NGAP_IntersystemSONNGRANnodeID { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + ASN_NGAP_TAI_t selectedTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONNGRANnodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONNGRANnodeID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.c b/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.c new file mode 100644 index 0000000..d867721 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONTransferType.h" + +#include "ASN_NGAP_FromEUTRANtoNGRAN.h" +#include "ASN_NGAP_FromNGRANtoEUTRAN.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONTransferType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONTransferType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType, choice.fromEUTRANtoNGRAN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fromEUTRANtoNGRAN" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType, choice.fromNGRANtoEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fromNGRANtoEUTRAN" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONTransferType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fromEUTRANtoNGRAN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fromNGRANtoEUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONTransferType_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONTransferType), + offsetof(struct ASN_NGAP_IntersystemSONTransferType, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONTransferType, present), + sizeof(((struct ASN_NGAP_IntersystemSONTransferType *)0)->present), + asn_MAP_ASN_NGAP_IntersystemSONTransferType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONTransferType = { + "IntersystemSONTransferType", + "IntersystemSONTransferType", + &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_ASN_NGAP_IntersystemSONTransferType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONTransferType_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONTransferType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.h b/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.h new file mode 100644 index 0000000..acb2721 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONTransferType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONTransferType_H_ +#define _ASN_NGAP_IntersystemSONTransferType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemSONTransferType_PR { + ASN_NGAP_IntersystemSONTransferType_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONTransferType_PR_fromEUTRANtoNGRAN, + ASN_NGAP_IntersystemSONTransferType_PR_fromNGRANtoEUTRAN, + ASN_NGAP_IntersystemSONTransferType_PR_choice_Extensions +} ASN_NGAP_IntersystemSONTransferType_PR; + +/* Forward declarations */ +struct ASN_NGAP_FromEUTRANtoNGRAN; +struct ASN_NGAP_FromNGRANtoEUTRAN; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_IntersystemSONTransferType */ +typedef struct ASN_NGAP_IntersystemSONTransferType { + ASN_NGAP_IntersystemSONTransferType_PR present; + union ASN_NGAP_IntersystemSONTransferType_u { + struct ASN_NGAP_FromEUTRANtoNGRAN *fromEUTRANtoNGRAN; + struct ASN_NGAP_FromNGRANtoEUTRAN *fromNGRANtoEUTRAN; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONTransferType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONTransferType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONTransferType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONTransferType_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_IntersystemSONTransferType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONTransferType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.c b/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.c new file mode 100644 index 0000000..71394ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemSONeNBID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONeNBID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONeNBID, globaleNBID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globaleNBID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONeNBID, selectedEPSTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EPS_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedEPSTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemSONeNBID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemSONeNBID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONeNBID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globaleNBID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedEPSTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONeNBID_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemSONeNBID), + offsetof(struct ASN_NGAP_IntersystemSONeNBID, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONeNBID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemSONeNBID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONeNBID = { + "IntersystemSONeNBID", + "IntersystemSONeNBID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONeNBID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONeNBID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.h b/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.h new file mode 100644 index 0000000..2251e80 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemSONeNBID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemSONeNBID_H_ +#define _ASN_NGAP_IntersystemSONeNBID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalENB-ID.h" +#include "ASN_NGAP_EPS-TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemSONeNBID */ +typedef struct ASN_NGAP_IntersystemSONeNBID { + ASN_NGAP_GlobalENB_ID_t globaleNBID; + ASN_NGAP_EPS_TAI_t selectedEPSTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONeNBID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONeNBID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONeNBID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONeNBID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemSONeNBID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.c b/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.c new file mode 100644 index 0000000..2052dbc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_IntersystemUnnecessaryHO.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_earlyIRATHO_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_earlyIRATHO_value2enum_4[] = { + { 0, 4, "true" }, + { 1, 5, "false" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_earlyIRATHO_enum2value_4[] = { + 1, /* false(1) */ + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_earlyIRATHO_specs_4 = { + asn_MAP_ASN_NGAP_earlyIRATHO_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_earlyIRATHO_enum2value_4, /* 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_ASN_NGAP_earlyIRATHO_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_ASN_NGAP_earlyIRATHO_4 = { + "earlyIRATHO", + "earlyIRATHO", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_earlyIRATHO_tags_4, + sizeof(asn_DEF_ASN_NGAP_earlyIRATHO_tags_4) + /sizeof(asn_DEF_ASN_NGAP_earlyIRATHO_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_earlyIRATHO_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_earlyIRATHO_tags_4) + /sizeof(asn_DEF_ASN_NGAP_earlyIRATHO_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_earlyIRATHO_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_earlyIRATHO_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, sourcecellID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcecellID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, targetcellID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetcellID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, earlyIRATHO), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_earlyIRATHO_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "earlyIRATHO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, candidateCellList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CandidateCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourcecellID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetcellID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* earlyIRATHO */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* candidateCellList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_specs_1 = { + sizeof(struct ASN_NGAP_IntersystemUnnecessaryHO), + offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO = { + "IntersystemUnnecessaryHO", + "IntersystemUnnecessaryHO", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1, + sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1) + /sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.h b/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.h new file mode 100644 index 0000000..018c9ef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_IntersystemUnnecessaryHO.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_IntersystemUnnecessaryHO_H_ +#define _ASN_NGAP_IntersystemUnnecessaryHO_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_EUTRA-CGI.h" +#include +#include "ASN_NGAP_CandidateCellList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_IntersystemUnnecessaryHO__earlyIRATHO { + ASN_NGAP_IntersystemUnnecessaryHO__earlyIRATHO_true = 0, + ASN_NGAP_IntersystemUnnecessaryHO__earlyIRATHO_false = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_IntersystemUnnecessaryHO__earlyIRATHO; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_IntersystemUnnecessaryHO */ +typedef struct ASN_NGAP_IntersystemUnnecessaryHO { + ASN_NGAP_NGRAN_CGI_t sourcecellID; + ASN_NGAP_EUTRA_CGI_t targetcellID; + long earlyIRATHO; + ASN_NGAP_CandidateCellList_t candidateCellList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemUnnecessaryHO_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_earlyIRATHO_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_IntersystemUnnecessaryHO_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LAC.c b/src/asn/ngap/ASN_NGAP_LAC.c new file mode 100644 index 0000000..2b35b50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LAC.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_LAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAC = { + "LAC", + "LAC", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_LAC_tags_1, + sizeof(asn_DEF_ASN_NGAP_LAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LAC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LAC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LAC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LAC_constr_1, ASN_NGAP_LAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LAC.h b/src/asn/ngap/ASN_NGAP_LAC.h new file mode 100644 index 0000000..9d2ae1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LAC_H_ +#define _ASN_NGAP_LAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LAC */ +typedef OCTET_STRING_t ASN_NGAP_LAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAC; +asn_struct_free_f ASN_NGAP_LAC_free; +asn_struct_print_f ASN_NGAP_LAC_print; +asn_constr_check_f ASN_NGAP_LAC_constraint; +ber_type_decoder_f ASN_NGAP_LAC_decode_ber; +der_type_encoder_f ASN_NGAP_LAC_encode_der; +xer_type_decoder_f ASN_NGAP_LAC_decode_xer; +xer_type_encoder_f ASN_NGAP_LAC_encode_xer; +per_type_decoder_f ASN_NGAP_LAC_decode_uper; +per_type_encoder_f ASN_NGAP_LAC_encode_uper; +per_type_decoder_f ASN_NGAP_LAC_decode_aper; +per_type_encoder_f ASN_NGAP_LAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LAC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LAI.c b/src/asn/ngap/ASN_NGAP_LAI.c new file mode 100644 index 0000000..006b39a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LAI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LAI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LAI, pLMNidentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNidentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LAI, lAC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lAC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LAI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LAI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lAC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LAI_specs_1 = { + sizeof(struct ASN_NGAP_LAI), + offsetof(struct ASN_NGAP_LAI, _asn_ctx), + asn_MAP_ASN_NGAP_LAI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LAI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAI = { + "LAI", + "LAI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_LAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LAI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LAI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LAI.h b/src/asn/ngap/ASN_NGAP_LAI.h new file mode 100644 index 0000000..120c353 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LAI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LAI_H_ +#define _ASN_NGAP_LAI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_LAC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LAI */ +typedef struct ASN_NGAP_LAI { + ASN_NGAP_PLMNIdentity_t pLMNidentity; + ASN_NGAP_LAC_t lAC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LAI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LTEM-Indication.c b/src/asn/ngap/ASN_NGAP_LTEM-Indication.c new file mode 100644 index 0000000..7980e50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEM-Indication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LTEM-Indication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LTEM_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_ASN_NGAP_LTEM_Indication_value2enum_1[] = { + { 0, 5, "lte-m" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_LTEM_Indication_enum2value_1[] = { + 0 /* lte-m(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LTEM_Indication_specs_1 = { + asn_MAP_ASN_NGAP_LTEM_Indication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_LTEM_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_ASN_NGAP_LTEM_Indication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEM_Indication = { + "LTEM-Indication", + "LTEM-Indication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_LTEM_Indication_tags_1, + sizeof(asn_DEF_ASN_NGAP_LTEM_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEM_Indication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEM_Indication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEM_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEM_Indication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LTEM_Indication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_LTEM_Indication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LTEM-Indication.h b/src/asn/ngap/ASN_NGAP_LTEM-Indication.h new file mode 100644 index 0000000..3fd2396 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEM-Indication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LTEM_Indication_H_ +#define _ASN_NGAP_LTEM_Indication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LTEM_Indication { + ASN_NGAP_LTEM_Indication_lte_m = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_LTEM_Indication; + +/* ASN_NGAP_LTEM-Indication */ +typedef long ASN_NGAP_LTEM_Indication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LTEM_Indication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEM_Indication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LTEM_Indication_specs_1; +asn_struct_free_f ASN_NGAP_LTEM_Indication_free; +asn_struct_print_f ASN_NGAP_LTEM_Indication_print; +asn_constr_check_f ASN_NGAP_LTEM_Indication_constraint; +ber_type_decoder_f ASN_NGAP_LTEM_Indication_decode_ber; +der_type_encoder_f ASN_NGAP_LTEM_Indication_encode_der; +xer_type_decoder_f ASN_NGAP_LTEM_Indication_decode_xer; +xer_type_encoder_f ASN_NGAP_LTEM_Indication_encode_xer; +per_type_decoder_f ASN_NGAP_LTEM_Indication_decode_uper; +per_type_encoder_f ASN_NGAP_LTEM_Indication_encode_uper; +per_type_decoder_f ASN_NGAP_LTEM_Indication_decode_aper; +per_type_encoder_f ASN_NGAP_LTEM_Indication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LTEM_Indication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.c b/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.c new file mode 100644 index 0000000..50cf152 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LTEUERLFReportContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUERLFReportContainer = { + "LTEUERLFReportContainer", + "LTEUERLFReportContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEUERLFReportContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.h b/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.h new file mode 100644 index 0000000..a149df3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEUERLFReportContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LTEUERLFReportContainer_H_ +#define _ASN_NGAP_LTEUERLFReportContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LTEUERLFReportContainer */ +typedef OCTET_STRING_t ASN_NGAP_LTEUERLFReportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUERLFReportContainer; +asn_struct_free_f ASN_NGAP_LTEUERLFReportContainer_free; +asn_struct_print_f ASN_NGAP_LTEUERLFReportContainer_print; +asn_constr_check_f ASN_NGAP_LTEUERLFReportContainer_constraint; +ber_type_decoder_f ASN_NGAP_LTEUERLFReportContainer_decode_ber; +der_type_encoder_f ASN_NGAP_LTEUERLFReportContainer_encode_der; +xer_type_decoder_f ASN_NGAP_LTEUERLFReportContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_LTEUERLFReportContainer_encode_xer; +per_type_decoder_f ASN_NGAP_LTEUERLFReportContainer_decode_uper; +per_type_encoder_f ASN_NGAP_LTEUERLFReportContainer_encode_uper; +per_type_decoder_f ASN_NGAP_LTEUERLFReportContainer_decode_aper; +per_type_encoder_f ASN_NGAP_LTEUERLFReportContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LTEUERLFReportContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.c b/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.c new file mode 100644 index 0000000..a9c61de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, uESidelinkAggregateMaximumBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uESidelinkAggregateMaximumBitRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uESidelinkAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_specs_1 = { + sizeof(struct ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate), + offsetof(struct ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, _asn_ctx), + asn_MAP_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate = { + "LTEUESidelinkAggregateMaximumBitrate", + "LTEUESidelinkAggregateMaximumBitrate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1, + sizeof(asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h b/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h new file mode 100644 index 0000000..6687cdf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_H_ +#define _ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate */ +typedef struct ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate { + ASN_NGAP_BitRate_t uESidelinkAggregateMaximumBitRate; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.c b/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.c new file mode 100644 index 0000000..94c0ec2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LTEV2XServicesAuthorized.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized, vehicleUE), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_VehicleUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleUE" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized, pedestrianUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PedestrianUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedestrianUE" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_specs_1 = { + sizeof(struct ASN_NGAP_LTEV2XServicesAuthorized), + offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized, _asn_ctx), + asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized = { + "LTEV2XServicesAuthorized", + "LTEV2XServicesAuthorized", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1, + sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.h b/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.h new file mode 100644 index 0000000..9cbff68 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LTEV2XServicesAuthorized.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LTEV2XServicesAuthorized_H_ +#define _ASN_NGAP_LTEV2XServicesAuthorized_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_VehicleUE.h" +#include "ASN_NGAP_PedestrianUE.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LTEV2XServicesAuthorized */ +typedef struct ASN_NGAP_LTEV2XServicesAuthorized { + ASN_NGAP_VehicleUE_t *vehicleUE; /* OPTIONAL */ + ASN_NGAP_PedestrianUE_t *pedestrianUE; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LTEV2XServicesAuthorized_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LTEV2XServicesAuthorized_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.c new file mode 100644 index 0000000..d9e4c1c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedCellInformation.h" + +#include "ASN_NGAP_LastVisitedNGRANCellInformation.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_LastVisitedCellInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation, choice.nGRANCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRANCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation, choice.eUTRANCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRANCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation, choice.uTRANCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uTRANCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation, choice.gERANCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gERANCell" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedCellInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRANCell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRANCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uTRANCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* gERANCell */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellInformation_specs_1 = { + sizeof(struct ASN_NGAP_LastVisitedCellInformation), + offsetof(struct ASN_NGAP_LastVisitedCellInformation, _asn_ctx), + offsetof(struct ASN_NGAP_LastVisitedCellInformation, present), + sizeof(((struct ASN_NGAP_LastVisitedCellInformation *)0)->present), + asn_MAP_ASN_NGAP_LastVisitedCellInformation_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellInformation = { + "LastVisitedCellInformation", + "LastVisitedCellInformation", + &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_ASN_NGAP_LastVisitedCellInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedCellInformation_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedCellInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.h new file mode 100644 index 0000000..c3ef36b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedCellInformation.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedCellInformation_H_ +#define _ASN_NGAP_LastVisitedCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_LastVisitedEUTRANCellInformation.h" +#include "ASN_NGAP_LastVisitedUTRANCellInformation.h" +#include "ASN_NGAP_LastVisitedGERANCellInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LastVisitedCellInformation_PR { + ASN_NGAP_LastVisitedCellInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_LastVisitedCellInformation_PR_nGRANCell, + ASN_NGAP_LastVisitedCellInformation_PR_eUTRANCell, + ASN_NGAP_LastVisitedCellInformation_PR_uTRANCell, + ASN_NGAP_LastVisitedCellInformation_PR_gERANCell, + ASN_NGAP_LastVisitedCellInformation_PR_choice_Extensions +} ASN_NGAP_LastVisitedCellInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_LastVisitedNGRANCellInformation; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_LastVisitedCellInformation */ +typedef struct ASN_NGAP_LastVisitedCellInformation { + ASN_NGAP_LastVisitedCellInformation_PR present; + union ASN_NGAP_LastVisitedCellInformation_u { + struct ASN_NGAP_LastVisitedNGRANCellInformation *nGRANCell; + ASN_NGAP_LastVisitedEUTRANCellInformation_t eUTRANCell; + ASN_NGAP_LastVisitedUTRANCellInformation_t uTRANCell; + ASN_NGAP_LastVisitedGERANCellInformation_t gERANCell; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellInformation_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LastVisitedCellInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.c b/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.c new file mode 100644 index 0000000..eab339c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedCellItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellItem, lastVisitedCellInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LastVisitedCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lastVisitedCellInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LastVisitedCellItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LastVisitedCellItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedCellItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lastVisitedCellInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellItem_specs_1 = { + sizeof(struct ASN_NGAP_LastVisitedCellItem), + offsetof(struct ASN_NGAP_LastVisitedCellItem, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedCellItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LastVisitedCellItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellItem = { + "LastVisitedCellItem", + "LastVisitedCellItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedCellItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedCellItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.h b/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.h new file mode 100644 index 0000000..48762af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedCellItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedCellItem_H_ +#define _ASN_NGAP_LastVisitedCellItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_LastVisitedCellInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LastVisitedCellItem */ +typedef struct ASN_NGAP_LastVisitedCellItem { + ASN_NGAP_LastVisitedCellInformation_t lastVisitedCellInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedCellItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedCellItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.c new file mode 100644 index 0000000..362c755 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedEUTRANCellInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation = { + "LastVisitedEUTRANCellInformation", + "LastVisitedEUTRANCellInformation", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.h new file mode 100644 index 0000000..e76c54b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedEUTRANCellInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedEUTRANCellInformation_H_ +#define _ASN_NGAP_LastVisitedEUTRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LastVisitedEUTRANCellInformation */ +typedef OCTET_STRING_t ASN_NGAP_LastVisitedEUTRANCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedEUTRANCellInformation; +asn_struct_free_f ASN_NGAP_LastVisitedEUTRANCellInformation_free; +asn_struct_print_f ASN_NGAP_LastVisitedEUTRANCellInformation_print; +asn_constr_check_f ASN_NGAP_LastVisitedEUTRANCellInformation_constraint; +ber_type_decoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_decode_ber; +der_type_encoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_encode_der; +xer_type_decoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_encode_xer; +per_type_decoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_decode_uper; +per_type_encoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_encode_uper; +per_type_decoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_decode_aper; +per_type_encoder_f ASN_NGAP_LastVisitedEUTRANCellInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedEUTRANCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.c new file mode 100644 index 0000000..23ccc7d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedGERANCellInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation = { + "LastVisitedGERANCellInformation", + "LastVisitedGERANCellInformation", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.h new file mode 100644 index 0000000..fa7adf4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedGERANCellInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedGERANCellInformation_H_ +#define _ASN_NGAP_LastVisitedGERANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LastVisitedGERANCellInformation */ +typedef OCTET_STRING_t ASN_NGAP_LastVisitedGERANCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedGERANCellInformation; +asn_struct_free_f ASN_NGAP_LastVisitedGERANCellInformation_free; +asn_struct_print_f ASN_NGAP_LastVisitedGERANCellInformation_print; +asn_constr_check_f ASN_NGAP_LastVisitedGERANCellInformation_constraint; +ber_type_decoder_f ASN_NGAP_LastVisitedGERANCellInformation_decode_ber; +der_type_encoder_f ASN_NGAP_LastVisitedGERANCellInformation_encode_der; +xer_type_decoder_f ASN_NGAP_LastVisitedGERANCellInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_LastVisitedGERANCellInformation_encode_xer; +per_type_decoder_f ASN_NGAP_LastVisitedGERANCellInformation_decode_uper; +per_type_encoder_f ASN_NGAP_LastVisitedGERANCellInformation_encode_uper; +per_type_decoder_f ASN_NGAP_LastVisitedGERANCellInformation_decode_aper; +per_type_encoder_f ASN_NGAP_LastVisitedGERANCellInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedGERANCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.c new file mode 100644 index 0000000..4c3422a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedNGRANCellInformation.h" + +#include "ASN_NGAP_Cause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, globalCellID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalCellID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, cellType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, timeUEStayedInCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimeUEStayedInCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeUEStayedInCell" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, timeUEStayedInCellEnhancedGranularity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeUEStayedInCellEnhancedGranularity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, hOCauseValue), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hOCauseValue" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_oms_1[] = { 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalCellID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeUEStayedInCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeUEStayedInCellEnhancedGranularity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* hOCauseValue */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_specs_1 = { + sizeof(struct ASN_NGAP_LastVisitedNGRANCellInformation), + offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation = { + "LastVisitedNGRANCellInformation", + "LastVisitedNGRANCellInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.h new file mode 100644 index 0000000..13ff703 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedNGRANCellInformation.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedNGRANCellInformation_H_ +#define _ASN_NGAP_LastVisitedNGRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_CellType.h" +#include "ASN_NGAP_TimeUEStayedInCell.h" +#include "ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_Cause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LastVisitedNGRANCellInformation */ +typedef struct ASN_NGAP_LastVisitedNGRANCellInformation { + ASN_NGAP_NGRAN_CGI_t globalCellID; + ASN_NGAP_CellType_t cellType; + ASN_NGAP_TimeUEStayedInCell_t timeUEStayedInCell; + ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_t *timeUEStayedInCellEnhancedGranularity; /* OPTIONAL */ + struct ASN_NGAP_Cause *hOCauseValue; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedNGRANCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedNGRANCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.c new file mode 100644 index 0000000..a25c1cb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedPSCellInformation.h" + +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_timeStay_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 <= 40950)) { + /* Constraint 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_ASN_NGAP_timeStay_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 40950 } /* (0..40950) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation, pSCellID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pSCellID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation, timeStay), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_timeStay_constr_3, memb_ASN_NGAP_timeStay_constraint_1 }, + 0, 0, /* No default value */ + "timeStay" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pSCellID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStay */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_specs_1 = { + sizeof(struct ASN_NGAP_LastVisitedPSCellInformation), + offsetof(struct ASN_NGAP_LastVisitedPSCellInformation, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation = { + "LastVisitedPSCellInformation", + "LastVisitedPSCellInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.h new file mode 100644 index 0000000..98c644a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedPSCellInformation_H_ +#define _ASN_NGAP_LastVisitedPSCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CGI; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LastVisitedPSCellInformation */ +typedef struct ASN_NGAP_LastVisitedPSCellInformation { + struct ASN_NGAP_NGRAN_CGI *pSCellID; /* OPTIONAL */ + long timeStay; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedPSCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedPSCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.c b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.c new file mode 100644 index 0000000..933dbcd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedPSCellList.h" + +#include "ASN_NGAP_LastVisitedPSCellInformation.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_LastVisitedPSCellList_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_ASN_NGAP_LastVisitedPSCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedPSCellInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellList_specs_1 = { + sizeof(struct ASN_NGAP_LastVisitedPSCellList), + offsetof(struct ASN_NGAP_LastVisitedPSCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellList = { + "LastVisitedPSCellList", + "LastVisitedPSCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LastVisitedPSCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_LastVisitedPSCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_LastVisitedPSCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.h b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.h new file mode 100644 index 0000000..421cac2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedPSCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedPSCellList_H_ +#define _ASN_NGAP_LastVisitedPSCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_LastVisitedPSCellInformation; + +/* ASN_NGAP_LastVisitedPSCellList */ +typedef struct ASN_NGAP_LastVisitedPSCellList { + A_SEQUENCE_OF(struct ASN_NGAP_LastVisitedPSCellInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedPSCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedPSCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LastVisitedPSCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedPSCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.c b/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.c new file mode 100644 index 0000000..4dcf83a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LastVisitedUTRANCellInformation.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation = { + "LastVisitedUTRANCellInformation", + "LastVisitedUTRANCellInformation", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.h b/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.h new file mode 100644 index 0000000..6cc2a23 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LastVisitedUTRANCellInformation.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LastVisitedUTRANCellInformation_H_ +#define _ASN_NGAP_LastVisitedUTRANCellInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LastVisitedUTRANCellInformation */ +typedef OCTET_STRING_t ASN_NGAP_LastVisitedUTRANCellInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedUTRANCellInformation; +asn_struct_free_f ASN_NGAP_LastVisitedUTRANCellInformation_free; +asn_struct_print_f ASN_NGAP_LastVisitedUTRANCellInformation_print; +asn_constr_check_f ASN_NGAP_LastVisitedUTRANCellInformation_constraint; +ber_type_decoder_f ASN_NGAP_LastVisitedUTRANCellInformation_decode_ber; +der_type_encoder_f ASN_NGAP_LastVisitedUTRANCellInformation_encode_der; +xer_type_decoder_f ASN_NGAP_LastVisitedUTRANCellInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_LastVisitedUTRANCellInformation_encode_xer; +per_type_decoder_f ASN_NGAP_LastVisitedUTRANCellInformation_decode_uper; +per_type_encoder_f ASN_NGAP_LastVisitedUTRANCellInformation_encode_uper; +per_type_decoder_f ASN_NGAP_LastVisitedUTRANCellInformation_decode_aper; +per_type_encoder_f ASN_NGAP_LastVisitedUTRANCellInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LastVisitedUTRANCellInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LineType.c b/src/asn/ngap/ASN_NGAP_LineType.c new file mode 100644 index 0000000..213a3e8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LineType.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LineType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LineType_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_ASN_NGAP_LineType_value2enum_1[] = { + { 0, 3, "dsl" }, + { 1, 3, "pon" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_LineType_enum2value_1[] = { + 0, /* dsl(0) */ + 1 /* pon(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LineType_specs_1 = { + asn_MAP_ASN_NGAP_LineType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_LineType_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_ASN_NGAP_LineType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LineType = { + "LineType", + "LineType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_LineType_tags_1, + sizeof(asn_DEF_ASN_NGAP_LineType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LineType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LineType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LineType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LineType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LineType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_LineType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LineType.h b/src/asn/ngap/ASN_NGAP_LineType.h new file mode 100644 index 0000000..b53c78a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LineType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LineType_H_ +#define _ASN_NGAP_LineType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LineType { + ASN_NGAP_LineType_dsl = 0, + ASN_NGAP_LineType_pon = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_LineType; + +/* ASN_NGAP_LineType */ +typedef long ASN_NGAP_LineType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LineType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LineType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LineType_specs_1; +asn_struct_free_f ASN_NGAP_LineType_free; +asn_struct_print_f ASN_NGAP_LineType_print; +asn_constr_check_f ASN_NGAP_LineType_constraint; +ber_type_decoder_f ASN_NGAP_LineType_decode_ber; +der_type_encoder_f ASN_NGAP_LineType_encode_der; +xer_type_decoder_f ASN_NGAP_LineType_decode_xer; +xer_type_encoder_f ASN_NGAP_LineType_encode_xer; +per_type_decoder_f ASN_NGAP_LineType_decode_uper; +per_type_encoder_f ASN_NGAP_LineType_encode_uper; +per_type_decoder_f ASN_NGAP_LineType_decode_aper; +per_type_encoder_f ASN_NGAP_LineType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LineType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Links-to-log.c b/src/asn/ngap/ASN_NGAP_Links-to-log.c new file mode 100644 index 0000000..9a2739e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Links-to-log.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Links-to-log.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_Links_to_log_specs_1 = { + asn_MAP_ASN_NGAP_Links_to_log_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_Links_to_log_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Links_to_log = { + "Links-to-log", + "Links-to-log", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Links_to_log_tags_1, + sizeof(asn_DEF_ASN_NGAP_Links_to_log_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Links_to_log_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Links_to_log_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Links_to_log_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Links_to_log_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Links_to_log_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Links_to_log_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Links-to-log.h b/src/asn/ngap/ASN_NGAP_Links-to-log.h new file mode 100644 index 0000000..e7c8270 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Links-to-log.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Links_to_log_H_ +#define _ASN_NGAP_Links_to_log_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Links_to_log { + ASN_NGAP_Links_to_log_uplink = 0, + ASN_NGAP_Links_to_log_downlink = 1, + ASN_NGAP_Links_to_log_both_uplink_and_downlink = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Links_to_log; + +/* ASN_NGAP_Links-to-log */ +typedef long ASN_NGAP_Links_to_log_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Links_to_log_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Links_to_log; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Links_to_log_specs_1; +asn_struct_free_f ASN_NGAP_Links_to_log_free; +asn_struct_print_f ASN_NGAP_Links_to_log_print; +asn_constr_check_f ASN_NGAP_Links_to_log_constraint; +ber_type_decoder_f ASN_NGAP_Links_to_log_decode_ber; +der_type_encoder_f ASN_NGAP_Links_to_log_encode_der; +xer_type_decoder_f ASN_NGAP_Links_to_log_decode_xer; +xer_type_encoder_f ASN_NGAP_Links_to_log_encode_xer; +per_type_decoder_f ASN_NGAP_Links_to_log_decode_uper; +per_type_encoder_f ASN_NGAP_Links_to_log_encode_uper; +per_type_decoder_f ASN_NGAP_Links_to_log_decode_aper; +per_type_encoder_f ASN_NGAP_Links_to_log_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Links_to_log_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReport.c b/src/asn/ngap/ASN_NGAP_LocationReport.c new file mode 100644 index 0000000..7458630 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReport_specs_1 = { + sizeof(struct ASN_NGAP_LocationReport), + offsetof(struct ASN_NGAP_LocationReport, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReport_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_ASN_NGAP_LocationReport = { + "LocationReport", + "LocationReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReport.h b/src/asn/ngap/ASN_NGAP_LocationReport.h new file mode 100644 index 0000000..6e5426f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReport_H_ +#define _ASN_NGAP_LocationReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LocationReport */ +typedef struct ASN_NGAP_LocationReport { + ASN_NGAP_ProtocolIE_Container_123P88_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.c b/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.c new file mode 100644 index 0000000..d4bbe24 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReportingAdditionalInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LocationReportingAdditionalInfo_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_ASN_NGAP_LocationReportingAdditionalInfo_value2enum_1[] = { + { 0, 13, "includePSCell" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_LocationReportingAdditionalInfo_enum2value_1[] = { + 0 /* includePSCell(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LocationReportingAdditionalInfo_specs_1 = { + asn_MAP_ASN_NGAP_LocationReportingAdditionalInfo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_LocationReportingAdditionalInfo_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_ASN_NGAP_LocationReportingAdditionalInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo = { + "LocationReportingAdditionalInfo", + "LocationReportingAdditionalInfo", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LocationReportingAdditionalInfo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_LocationReportingAdditionalInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.h b/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.h new file mode 100644 index 0000000..f91090a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingAdditionalInfo.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReportingAdditionalInfo_H_ +#define _ASN_NGAP_LocationReportingAdditionalInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LocationReportingAdditionalInfo { + ASN_NGAP_LocationReportingAdditionalInfo_includePSCell = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_LocationReportingAdditionalInfo; + +/* ASN_NGAP_LocationReportingAdditionalInfo */ +typedef long ASN_NGAP_LocationReportingAdditionalInfo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LocationReportingAdditionalInfo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LocationReportingAdditionalInfo_specs_1; +asn_struct_free_f ASN_NGAP_LocationReportingAdditionalInfo_free; +asn_struct_print_f ASN_NGAP_LocationReportingAdditionalInfo_print; +asn_constr_check_f ASN_NGAP_LocationReportingAdditionalInfo_constraint; +ber_type_decoder_f ASN_NGAP_LocationReportingAdditionalInfo_decode_ber; +der_type_encoder_f ASN_NGAP_LocationReportingAdditionalInfo_encode_der; +xer_type_decoder_f ASN_NGAP_LocationReportingAdditionalInfo_decode_xer; +xer_type_encoder_f ASN_NGAP_LocationReportingAdditionalInfo_encode_xer; +per_type_decoder_f ASN_NGAP_LocationReportingAdditionalInfo_decode_uper; +per_type_encoder_f ASN_NGAP_LocationReportingAdditionalInfo_encode_uper; +per_type_decoder_f ASN_NGAP_LocationReportingAdditionalInfo_decode_aper; +per_type_encoder_f ASN_NGAP_LocationReportingAdditionalInfo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReportingAdditionalInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingControl.c b/src/asn/ngap/ASN_NGAP_LocationReportingControl.c new file mode 100644 index 0000000..5f44bb0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingControl.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReportingControl.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingControl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControl, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingControl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingControl_specs_1 = { + sizeof(struct ASN_NGAP_LocationReportingControl), + offsetof(struct ASN_NGAP_LocationReportingControl, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingControl_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_ASN_NGAP_LocationReportingControl = { + "LocationReportingControl", + "LocationReportingControl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingControl_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReportingControl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingControl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingControl_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingControl.h b/src/asn/ngap/ASN_NGAP_LocationReportingControl.h new file mode 100644 index 0000000..0c4f513 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingControl.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReportingControl_H_ +#define _ASN_NGAP_LocationReportingControl_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LocationReportingControl */ +typedef struct ASN_NGAP_LocationReportingControl { + ASN_NGAP_ProtocolIE_Container_123P86_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportingControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingControl_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReportingControl_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.c b/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.c new file mode 100644 index 0000000..1c8a15c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReportingFailureIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingFailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingFailureIndication_specs_1 = { + sizeof(struct ASN_NGAP_LocationReportingFailureIndication), + offsetof(struct ASN_NGAP_LocationReportingFailureIndication, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingFailureIndication_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_ASN_NGAP_LocationReportingFailureIndication = { + "LocationReportingFailureIndication", + "LocationReportingFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingFailureIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.h b/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.h new file mode 100644 index 0000000..225e5e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingFailureIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReportingFailureIndication_H_ +#define _ASN_NGAP_LocationReportingFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LocationReportingFailureIndication */ +typedef struct ASN_NGAP_LocationReportingFailureIndication { + ASN_NGAP_ProtocolIE_Container_123P87_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportingFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingFailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingFailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingFailureIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReportingFailureIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.c b/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.c new file mode 100644 index 0000000..a42207e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReportingReferenceID.h" + +int +ASN_NGAP_LocationReportingReferenceID_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LocationReportingReferenceID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingReferenceID = { + "LocationReportingReferenceID", + "LocationReportingReferenceID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingReferenceID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LocationReportingReferenceID_constr_1, ASN_NGAP_LocationReportingReferenceID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.h b/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.h new file mode 100644 index 0000000..3856773 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingReferenceID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReportingReferenceID_H_ +#define _ASN_NGAP_LocationReportingReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_LocationReportingReferenceID */ +typedef long ASN_NGAP_LocationReportingReferenceID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LocationReportingReferenceID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingReferenceID; +asn_struct_free_f ASN_NGAP_LocationReportingReferenceID_free; +asn_struct_print_f ASN_NGAP_LocationReportingReferenceID_print; +asn_constr_check_f ASN_NGAP_LocationReportingReferenceID_constraint; +ber_type_decoder_f ASN_NGAP_LocationReportingReferenceID_decode_ber; +der_type_encoder_f ASN_NGAP_LocationReportingReferenceID_encode_der; +xer_type_decoder_f ASN_NGAP_LocationReportingReferenceID_decode_xer; +xer_type_encoder_f ASN_NGAP_LocationReportingReferenceID_encode_xer; +per_type_decoder_f ASN_NGAP_LocationReportingReferenceID_decode_uper; +per_type_encoder_f ASN_NGAP_LocationReportingReferenceID_encode_uper; +per_type_decoder_f ASN_NGAP_LocationReportingReferenceID_decode_aper; +per_type_encoder_f ASN_NGAP_LocationReportingReferenceID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReportingReferenceID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.c b/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.c new file mode 100644 index 0000000..e5e553e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LocationReportingRequestType.h" + +#include "ASN_NGAP_AreaOfInterestList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingRequestType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType, eventType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EventType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType, reportArea), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportArea" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_LocationReportingRequestType, areaOfInterestList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaOfInterestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaOfInterestList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_LocationReportingRequestType, locationReportingReferenceIDToBeCancelled), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LocationReportingReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationReportingReferenceIDToBeCancelled" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LocationReportingRequestType, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LocationReportingRequestType_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingRequestType_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 }, /* areaOfInterestList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* locationReportingReferenceIDToBeCancelled */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingRequestType_specs_1 = { + sizeof(struct ASN_NGAP_LocationReportingRequestType), + offsetof(struct ASN_NGAP_LocationReportingRequestType, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingRequestType_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LocationReportingRequestType_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingRequestType = { + "LocationReportingRequestType", + "LocationReportingRequestType", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1, + sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingRequestType_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingRequestType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.h b/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.h new file mode 100644 index 0000000..5db46a0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LocationReportingRequestType.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LocationReportingRequestType_H_ +#define _ASN_NGAP_LocationReportingRequestType_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EventType.h" +#include "ASN_NGAP_ReportArea.h" +#include "ASN_NGAP_LocationReportingReferenceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AreaOfInterestList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LocationReportingRequestType */ +typedef struct ASN_NGAP_LocationReportingRequestType { + ASN_NGAP_EventType_t eventType; + ASN_NGAP_ReportArea_t reportArea; + struct ASN_NGAP_AreaOfInterestList *areaOfInterestList; /* OPTIONAL */ + ASN_NGAP_LocationReportingReferenceID_t *locationReportingReferenceIDToBeCancelled; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportingRequestType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingRequestType; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingRequestType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingRequestType_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LocationReportingRequestType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LoggedMDTNr.c b/src/asn/ngap/ASN_NGAP_LoggedMDTNr.c new file mode 100644 index 0000000..4212be2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggedMDTNr.c @@ -0,0 +1,127 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LoggedMDTNr.h" + +#include "ASN_NGAP_BluetoothMeasurementConfiguration.h" +#include "ASN_NGAP_WLANMeasurementConfiguration.h" +#include "ASN_NGAP_SensorMeasurementConfiguration.h" +#include "ASN_NGAP_AreaScopeOfNeighCellsList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTNr_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr, loggingInterval), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LoggingInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "loggingInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr, loggingDuration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LoggingDuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "loggingDuration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr, loggedMDTTrigger), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LoggedMDTTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "loggedMDTTrigger" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_LoggedMDTNr, bluetoothMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetoothMeasurementConfiguration" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_LoggedMDTNr, wLANMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_WLANMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wLANMeasurementConfiguration" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_LoggedMDTNr, sensorMeasurementConfiguration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SensorMeasurementConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorMeasurementConfiguration" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_LoggedMDTNr, areaScopeOfNeighCellsList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScopeOfNeighCellsList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_LoggedMDTNr, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_LoggedMDTNr_oms_1[] = { 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LoggedMDTNr_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* loggingInterval */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* loggingDuration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* loggedMDTTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* bluetoothMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* wLANMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sensorMeasurementConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* areaScopeOfNeighCellsList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTNr_specs_1 = { + sizeof(struct ASN_NGAP_LoggedMDTNr), + offsetof(struct ASN_NGAP_LoggedMDTNr, _asn_ctx), + asn_MAP_ASN_NGAP_LoggedMDTNr_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_LoggedMDTNr_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTNr = { + "LoggedMDTNr", + "LoggedMDTNr", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1, + sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LoggedMDTNr_1, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_LoggedMDTNr_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LoggedMDTNr.h b/src/asn/ngap/ASN_NGAP_LoggedMDTNr.h new file mode 100644 index 0000000..1e181b9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggedMDTNr.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LoggedMDTNr_H_ +#define _ASN_NGAP_LoggedMDTNr_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_LoggingInterval.h" +#include "ASN_NGAP_LoggingDuration.h" +#include "ASN_NGAP_LoggedMDTTrigger.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_BluetoothMeasurementConfiguration; +struct ASN_NGAP_WLANMeasurementConfiguration; +struct ASN_NGAP_SensorMeasurementConfiguration; +struct ASN_NGAP_AreaScopeOfNeighCellsList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_LoggedMDTNr */ +typedef struct ASN_NGAP_LoggedMDTNr { + ASN_NGAP_LoggingInterval_t loggingInterval; + ASN_NGAP_LoggingDuration_t loggingDuration; + ASN_NGAP_LoggedMDTTrigger_t loggedMDTTrigger; + struct ASN_NGAP_BluetoothMeasurementConfiguration *bluetoothMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_WLANMeasurementConfiguration *wLANMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_SensorMeasurementConfiguration *sensorMeasurementConfiguration; /* OPTIONAL */ + struct ASN_NGAP_AreaScopeOfNeighCellsList *areaScopeOfNeighCellsList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LoggedMDTNr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTNr; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTNr_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTNr_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LoggedMDTNr_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.c b/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.c new file mode 100644 index 0000000..5e9b5ab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LoggedMDTTrigger.h" + +#include "ASN_NGAP_EventTrigger.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggedMDTTrigger_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTTrigger_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger, choice.periodical), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodical" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger, choice.eventTrigger), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EventTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventTrigger" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LoggedMDTTrigger_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodical */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTTrigger_specs_1 = { + sizeof(struct ASN_NGAP_LoggedMDTTrigger), + offsetof(struct ASN_NGAP_LoggedMDTTrigger, _asn_ctx), + offsetof(struct ASN_NGAP_LoggedMDTTrigger, present), + sizeof(((struct ASN_NGAP_LoggedMDTTrigger *)0)->present), + asn_MAP_ASN_NGAP_LoggedMDTTrigger_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTTrigger = { + "LoggedMDTTrigger", + "LoggedMDTTrigger", + &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_ASN_NGAP_LoggedMDTTrigger_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_LoggedMDTTrigger_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LoggedMDTTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.h b/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.h new file mode 100644 index 0000000..c88d056 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggedMDTTrigger.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LoggedMDTTrigger_H_ +#define _ASN_NGAP_LoggedMDTTrigger_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LoggedMDTTrigger_PR { + ASN_NGAP_LoggedMDTTrigger_PR_NOTHING, /* No components present */ + ASN_NGAP_LoggedMDTTrigger_PR_periodical, + ASN_NGAP_LoggedMDTTrigger_PR_eventTrigger, + ASN_NGAP_LoggedMDTTrigger_PR_choice_Extensions +} ASN_NGAP_LoggedMDTTrigger_PR; + +/* Forward declarations */ +struct ASN_NGAP_EventTrigger; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_LoggedMDTTrigger */ +typedef struct ASN_NGAP_LoggedMDTTrigger { + ASN_NGAP_LoggedMDTTrigger_PR present; + union ASN_NGAP_LoggedMDTTrigger_u { + NULL_t periodical; + struct ASN_NGAP_EventTrigger *eventTrigger; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LoggedMDTTrigger_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTTrigger; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTTrigger_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTTrigger_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggedMDTTrigger_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LoggedMDTTrigger_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LoggingDuration.c b/src/asn/ngap/ASN_NGAP_LoggingDuration.c new file mode 100644 index 0000000..54153f5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggingDuration.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LoggingDuration.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggingDuration_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_ASN_NGAP_LoggingDuration_value2enum_1[] = { + { 0, 3, "m10" }, + { 1, 3, "m20" }, + { 2, 3, "m40" }, + { 3, 3, "m60" }, + { 4, 3, "m90" }, + { 5, 4, "m120" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_LoggingDuration_enum2value_1[] = { + 0, /* m10(0) */ + 5, /* m120(5) */ + 1, /* m20(1) */ + 2, /* m40(2) */ + 3, /* m60(3) */ + 4 /* m90(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LoggingDuration_specs_1 = { + asn_MAP_ASN_NGAP_LoggingDuration_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_LoggingDuration_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 7, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LoggingDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggingDuration = { + "LoggingDuration", + "LoggingDuration", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_LoggingDuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_LoggingDuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggingDuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LoggingDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LoggingDuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggingDuration_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LoggingDuration_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_LoggingDuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LoggingDuration.h b/src/asn/ngap/ASN_NGAP_LoggingDuration.h new file mode 100644 index 0000000..40c5ed9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggingDuration.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LoggingDuration_H_ +#define _ASN_NGAP_LoggingDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LoggingDuration { + ASN_NGAP_LoggingDuration_m10 = 0, + ASN_NGAP_LoggingDuration_m20 = 1, + ASN_NGAP_LoggingDuration_m40 = 2, + ASN_NGAP_LoggingDuration_m60 = 3, + ASN_NGAP_LoggingDuration_m90 = 4, + ASN_NGAP_LoggingDuration_m120 = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_LoggingDuration; + +/* ASN_NGAP_LoggingDuration */ +typedef long ASN_NGAP_LoggingDuration_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggingDuration_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggingDuration; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LoggingDuration_specs_1; +asn_struct_free_f ASN_NGAP_LoggingDuration_free; +asn_struct_print_f ASN_NGAP_LoggingDuration_print; +asn_constr_check_f ASN_NGAP_LoggingDuration_constraint; +ber_type_decoder_f ASN_NGAP_LoggingDuration_decode_ber; +der_type_encoder_f ASN_NGAP_LoggingDuration_encode_der; +xer_type_decoder_f ASN_NGAP_LoggingDuration_decode_xer; +xer_type_encoder_f ASN_NGAP_LoggingDuration_encode_xer; +per_type_decoder_f ASN_NGAP_LoggingDuration_decode_uper; +per_type_encoder_f ASN_NGAP_LoggingDuration_encode_uper; +per_type_decoder_f ASN_NGAP_LoggingDuration_decode_aper; +per_type_encoder_f ASN_NGAP_LoggingDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LoggingDuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_LoggingInterval.c b/src/asn/ngap/ASN_NGAP_LoggingInterval.c new file mode 100644 index 0000000..dd29ae8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggingInterval.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_LoggingInterval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggingInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_LoggingInterval_value2enum_1[] = { + { 0, 5, "ms320" }, + { 1, 5, "ms640" }, + { 2, 6, "ms1280" }, + { 3, 6, "ms2560" }, + { 4, 6, "ms5120" }, + { 5, 7, "ms10240" }, + { 6, 7, "ms20480" }, + { 7, 7, "ms30720" }, + { 8, 7, "ms40960" }, + { 9, 7, "ms61440" }, + { 10, 8, "infinity" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_LoggingInterval_enum2value_1[] = { + 10, /* infinity(10) */ + 5, /* ms10240(5) */ + 2, /* ms1280(2) */ + 6, /* ms20480(6) */ + 3, /* ms2560(3) */ + 7, /* ms30720(7) */ + 0, /* ms320(0) */ + 8, /* ms40960(8) */ + 4, /* ms5120(4) */ + 9, /* ms61440(9) */ + 1 /* ms640(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LoggingInterval_specs_1 = { + asn_MAP_ASN_NGAP_LoggingInterval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_LoggingInterval_enum2value_1, /* N => "tag"; sorted by N */ + 11, /* Number of elements in the maps */ + 12, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LoggingInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggingInterval = { + "LoggingInterval", + "LoggingInterval", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_LoggingInterval_tags_1, + sizeof(asn_DEF_ASN_NGAP_LoggingInterval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggingInterval_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_LoggingInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LoggingInterval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_LoggingInterval_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_LoggingInterval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_LoggingInterval_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_LoggingInterval.h b/src/asn/ngap/ASN_NGAP_LoggingInterval.h new file mode 100644 index 0000000..fe01b50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_LoggingInterval.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_LoggingInterval_H_ +#define _ASN_NGAP_LoggingInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_LoggingInterval { + ASN_NGAP_LoggingInterval_ms320 = 0, + ASN_NGAP_LoggingInterval_ms640 = 1, + ASN_NGAP_LoggingInterval_ms1280 = 2, + ASN_NGAP_LoggingInterval_ms2560 = 3, + ASN_NGAP_LoggingInterval_ms5120 = 4, + ASN_NGAP_LoggingInterval_ms10240 = 5, + ASN_NGAP_LoggingInterval_ms20480 = 6, + ASN_NGAP_LoggingInterval_ms30720 = 7, + ASN_NGAP_LoggingInterval_ms40960 = 8, + ASN_NGAP_LoggingInterval_ms61440 = 9, + ASN_NGAP_LoggingInterval_infinity = 10 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_LoggingInterval; + +/* ASN_NGAP_LoggingInterval */ +typedef long ASN_NGAP_LoggingInterval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_LoggingInterval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggingInterval; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_LoggingInterval_specs_1; +asn_struct_free_f ASN_NGAP_LoggingInterval_free; +asn_struct_print_f ASN_NGAP_LoggingInterval_print; +asn_constr_check_f ASN_NGAP_LoggingInterval_constraint; +ber_type_decoder_f ASN_NGAP_LoggingInterval_decode_ber; +der_type_encoder_f ASN_NGAP_LoggingInterval_encode_der; +xer_type_decoder_f ASN_NGAP_LoggingInterval_decode_xer; +xer_type_encoder_f ASN_NGAP_LoggingInterval_encode_xer; +per_type_decoder_f ASN_NGAP_LoggingInterval_decode_uper; +per_type_encoder_f ASN_NGAP_LoggingInterval_encode_uper; +per_type_decoder_f ASN_NGAP_LoggingInterval_decode_aper; +per_type_encoder_f ASN_NGAP_LoggingInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_LoggingInterval_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M1Configuration.c b/src/asn/ngap/ASN_NGAP_M1Configuration.c new file mode 100644 index 0000000..fcaa34f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1Configuration.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M1Configuration.h" + +#include "ASN_NGAP_M1ThresholdEventA2.h" +#include "ASN_NGAP_M1PeriodicReporting.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration, m1reportingTrigger), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M1ReportingTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m1reportingTrigger" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_M1Configuration, m1thresholdEventA2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M1ThresholdEventA2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m1thresholdEventA2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_M1Configuration, m1periodicReporting), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M1PeriodicReporting, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m1periodicReporting" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M1Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M1Configuration_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1Configuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m1reportingTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m1thresholdEventA2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* m1periodicReporting */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1Configuration_specs_1 = { + sizeof(struct ASN_NGAP_M1Configuration), + offsetof(struct ASN_NGAP_M1Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_M1Configuration_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M1Configuration_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1Configuration = { + "M1Configuration", + "M1Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_M1Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1Configuration_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_M1Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M1Configuration.h b/src/asn/ngap/ASN_NGAP_M1Configuration.h new file mode 100644 index 0000000..6f240b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1Configuration.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M1Configuration_H_ +#define _ASN_NGAP_M1Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M1ReportingTrigger.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_M1ThresholdEventA2; +struct ASN_NGAP_M1PeriodicReporting; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M1Configuration */ +typedef struct ASN_NGAP_M1Configuration { + ASN_NGAP_M1ReportingTrigger_t m1reportingTrigger; + struct ASN_NGAP_M1ThresholdEventA2 *m1thresholdEventA2; /* OPTIONAL */ + struct ASN_NGAP_M1PeriodicReporting *m1periodicReporting; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1Configuration_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M1Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.c b/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.c new file mode 100644 index 0000000..0f63d6d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M1PeriodicReporting.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1PeriodicReporting_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportIntervalMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportAmountMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M1PeriodicReporting, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M1PeriodicReporting_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_M1PeriodicReporting_specs_1 = { + sizeof(struct ASN_NGAP_M1PeriodicReporting), + offsetof(struct ASN_NGAP_M1PeriodicReporting, _asn_ctx), + asn_MAP_ASN_NGAP_M1PeriodicReporting_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M1PeriodicReporting_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1PeriodicReporting = { + "M1PeriodicReporting", + "M1PeriodicReporting", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1, + sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1PeriodicReporting_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1PeriodicReporting_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.h b/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.h new file mode 100644 index 0000000..ce38bed --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1PeriodicReporting.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M1PeriodicReporting_H_ +#define _ASN_NGAP_M1PeriodicReporting_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ReportIntervalMDT.h" +#include "ASN_NGAP_ReportAmountMDT.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M1PeriodicReporting */ +typedef struct ASN_NGAP_M1PeriodicReporting { + ASN_NGAP_ReportIntervalMDT_t reportInterval; + ASN_NGAP_ReportAmountMDT_t reportAmount; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1PeriodicReporting_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1PeriodicReporting; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1PeriodicReporting_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1PeriodicReporting_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M1PeriodicReporting_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.c b/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.c new file mode 100644 index 0000000..110c74d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M1ReportingTrigger.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M1ReportingTrigger_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_ASN_NGAP_M1ReportingTrigger_value2enum_1[] = { + { 0, 8, "periodic" }, + { 1, 16, "a2eventtriggered" }, + { 2, 25, "a2eventtriggered-periodic" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M1ReportingTrigger_enum2value_1[] = { + 1, /* a2eventtriggered(1) */ + 2, /* a2eventtriggered-periodic(2) */ + 0 /* periodic(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M1ReportingTrigger_specs_1 = { + asn_MAP_ASN_NGAP_M1ReportingTrigger_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M1ReportingTrigger_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_ASN_NGAP_M1ReportingTrigger_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ReportingTrigger = { + "M1ReportingTrigger", + "M1ReportingTrigger", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1, + sizeof(asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1ReportingTrigger_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M1ReportingTrigger_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M1ReportingTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.h b/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.h new file mode 100644 index 0000000..cc789a4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ReportingTrigger.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M1ReportingTrigger_H_ +#define _ASN_NGAP_M1ReportingTrigger_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M1ReportingTrigger { + ASN_NGAP_M1ReportingTrigger_periodic = 0, + ASN_NGAP_M1ReportingTrigger_a2eventtriggered = 1, + ASN_NGAP_M1ReportingTrigger_a2eventtriggered_periodic = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M1ReportingTrigger; + +/* ASN_NGAP_M1ReportingTrigger */ +typedef long ASN_NGAP_M1ReportingTrigger_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M1ReportingTrigger_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ReportingTrigger; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M1ReportingTrigger_specs_1; +asn_struct_free_f ASN_NGAP_M1ReportingTrigger_free; +asn_struct_print_f ASN_NGAP_M1ReportingTrigger_print; +asn_constr_check_f ASN_NGAP_M1ReportingTrigger_constraint; +ber_type_decoder_f ASN_NGAP_M1ReportingTrigger_decode_ber; +der_type_encoder_f ASN_NGAP_M1ReportingTrigger_encode_der; +xer_type_decoder_f ASN_NGAP_M1ReportingTrigger_decode_xer; +xer_type_encoder_f ASN_NGAP_M1ReportingTrigger_encode_xer; +per_type_decoder_f ASN_NGAP_M1ReportingTrigger_decode_uper; +per_type_encoder_f ASN_NGAP_M1ReportingTrigger_encode_uper; +per_type_decoder_f ASN_NGAP_M1ReportingTrigger_decode_aper; +per_type_encoder_f ASN_NGAP_M1ReportingTrigger_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M1ReportingTrigger_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.c b/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.c new file mode 100644 index 0000000..63b5596 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M1ThresholdEventA2.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdEventA2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdEventA2, m1ThresholdType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M1ThresholdType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m1ThresholdType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M1ThresholdEventA2, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M1ThresholdEventA2_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1ThresholdEventA2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m1ThresholdType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdEventA2_specs_1 = { + sizeof(struct ASN_NGAP_M1ThresholdEventA2), + offsetof(struct ASN_NGAP_M1ThresholdEventA2, _asn_ctx), + asn_MAP_ASN_NGAP_M1ThresholdEventA2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M1ThresholdEventA2_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdEventA2 = { + "M1ThresholdEventA2", + "M1ThresholdEventA2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1, + sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1ThresholdEventA2_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_M1ThresholdEventA2_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.h b/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.h new file mode 100644 index 0000000..ec8ed6b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ThresholdEventA2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M1ThresholdEventA2_H_ +#define _ASN_NGAP_M1ThresholdEventA2_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M1ThresholdType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M1ThresholdEventA2 */ +typedef struct ASN_NGAP_M1ThresholdEventA2 { + ASN_NGAP_M1ThresholdType_t m1ThresholdType; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1ThresholdEventA2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdEventA2; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdEventA2_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdEventA2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M1ThresholdEventA2_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M1ThresholdType.c b/src/asn/ngap/ASN_NGAP_M1ThresholdType.c new file mode 100644 index 0000000..5458af1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ThresholdType.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M1ThresholdType.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_M1ThresholdType_constr_1 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_ASN_NGAP_M1ThresholdType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType, choice.threshold_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Threshold_RSRP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshold-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType, choice.threshold_RSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Threshold_RSRQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshold-RSRQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType, choice.threshold_SINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Threshold_SINR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshold-SINR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_M1ThresholdType, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1ThresholdType_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_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* threshold-SINR */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdType_specs_1 = { + sizeof(struct ASN_NGAP_M1ThresholdType), + offsetof(struct ASN_NGAP_M1ThresholdType, _asn_ctx), + offsetof(struct ASN_NGAP_M1ThresholdType, present), + sizeof(((struct ASN_NGAP_M1ThresholdType *)0)->present), + asn_MAP_ASN_NGAP_M1ThresholdType_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdType = { + "M1ThresholdType", + "M1ThresholdType", + &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_ASN_NGAP_M1ThresholdType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_M1ThresholdType_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_M1ThresholdType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M1ThresholdType.h b/src/asn/ngap/ASN_NGAP_M1ThresholdType.h new file mode 100644 index 0000000..29addcf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M1ThresholdType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M1ThresholdType_H_ +#define _ASN_NGAP_M1ThresholdType_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Threshold-RSRP.h" +#include "ASN_NGAP_Threshold-RSRQ.h" +#include "ASN_NGAP_Threshold-SINR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M1ThresholdType_PR { + ASN_NGAP_M1ThresholdType_PR_NOTHING, /* No components present */ + ASN_NGAP_M1ThresholdType_PR_threshold_RSRP, + ASN_NGAP_M1ThresholdType_PR_threshold_RSRQ, + ASN_NGAP_M1ThresholdType_PR_threshold_SINR, + ASN_NGAP_M1ThresholdType_PR_choice_Extensions +} ASN_NGAP_M1ThresholdType_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_M1ThresholdType */ +typedef struct ASN_NGAP_M1ThresholdType { + ASN_NGAP_M1ThresholdType_PR present; + union ASN_NGAP_M1ThresholdType_u { + ASN_NGAP_Threshold_RSRP_t threshold_RSRP; + ASN_NGAP_Threshold_RSRQ_t threshold_RSRQ; + ASN_NGAP_Threshold_SINR_t threshold_SINR; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1ThresholdType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdType_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M1ThresholdType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M1ThresholdType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M4Configuration.c b/src/asn/ngap/ASN_NGAP_M4Configuration.c new file mode 100644 index 0000000..b89c3d1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M4Configuration.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M4Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration, m4period), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M4period, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m4period" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration, m4_links_to_log), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Links_to_log, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m4-links-to-log" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M4Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M4Configuration_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M4Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M4Configuration_specs_1 = { + sizeof(struct ASN_NGAP_M4Configuration), + offsetof(struct ASN_NGAP_M4Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_M4Configuration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M4Configuration_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4Configuration = { + "M4Configuration", + "M4Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M4Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_M4Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M4Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M4Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M4Configuration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M4Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M4Configuration.h b/src/asn/ngap/ASN_NGAP_M4Configuration.h new file mode 100644 index 0000000..1398c39 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M4Configuration_H_ +#define _ASN_NGAP_M4Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M4period.h" +#include "ASN_NGAP_Links-to-log.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M4Configuration */ +typedef struct ASN_NGAP_M4Configuration { + ASN_NGAP_M4period_t m4period; + ASN_NGAP_Links_to_log_t m4_links_to_log; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M4Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M4Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M4Configuration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M4Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.c b/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.c new file mode 100644 index 0000000..cc08a83 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M4ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M4ReportAmountMDT_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_ASN_NGAP_M4ReportAmountMDT_value2enum_1[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M4ReportAmountMDT_enum2value_1[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M4ReportAmountMDT_specs_1 = { + asn_MAP_ASN_NGAP_M4ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M4ReportAmountMDT_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_ASN_NGAP_M4ReportAmountMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4ReportAmountMDT = { + "M4ReportAmountMDT", + "M4ReportAmountMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4ReportAmountMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M4ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M4ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.h b/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.h new file mode 100644 index 0000000..d7a1e61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4ReportAmountMDT.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M4ReportAmountMDT_H_ +#define _ASN_NGAP_M4ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M4ReportAmountMDT { + ASN_NGAP_M4ReportAmountMDT_r1 = 0, + ASN_NGAP_M4ReportAmountMDT_r2 = 1, + ASN_NGAP_M4ReportAmountMDT_r4 = 2, + ASN_NGAP_M4ReportAmountMDT_r8 = 3, + ASN_NGAP_M4ReportAmountMDT_r16 = 4, + ASN_NGAP_M4ReportAmountMDT_r32 = 5, + ASN_NGAP_M4ReportAmountMDT_r64 = 6, + ASN_NGAP_M4ReportAmountMDT_infinity = 7 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M4ReportAmountMDT; + +/* ASN_NGAP_M4ReportAmountMDT */ +typedef long ASN_NGAP_M4ReportAmountMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M4ReportAmountMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4ReportAmountMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M4ReportAmountMDT_specs_1; +asn_struct_free_f ASN_NGAP_M4ReportAmountMDT_free; +asn_struct_print_f ASN_NGAP_M4ReportAmountMDT_print; +asn_constr_check_f ASN_NGAP_M4ReportAmountMDT_constraint; +ber_type_decoder_f ASN_NGAP_M4ReportAmountMDT_decode_ber; +der_type_encoder_f ASN_NGAP_M4ReportAmountMDT_encode_der; +xer_type_decoder_f ASN_NGAP_M4ReportAmountMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_M4ReportAmountMDT_encode_xer; +per_type_decoder_f ASN_NGAP_M4ReportAmountMDT_decode_uper; +per_type_encoder_f ASN_NGAP_M4ReportAmountMDT_encode_uper; +per_type_decoder_f ASN_NGAP_M4ReportAmountMDT_decode_aper; +per_type_encoder_f ASN_NGAP_M4ReportAmountMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M4ReportAmountMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M4period.c b/src/asn/ngap/ASN_NGAP_M4period.c new file mode 100644 index 0000000..61968f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M4period.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_M4period_specs_1 = { + asn_MAP_ASN_NGAP_M4period_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_M4period_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4period = { + "M4period", + "M4period", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M4period_tags_1, + sizeof(asn_DEF_ASN_NGAP_M4period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4period_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M4period_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M4period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M4period_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M4period_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M4period_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M4period.h b/src/asn/ngap/ASN_NGAP_M4period.h new file mode 100644 index 0000000..cfcb51b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M4period.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M4period_H_ +#define _ASN_NGAP_M4period_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M4period { + ASN_NGAP_M4period_ms1024 = 0, + ASN_NGAP_M4period_ms2048 = 1, + ASN_NGAP_M4period_ms5120 = 2, + ASN_NGAP_M4period_ms10240 = 3, + ASN_NGAP_M4period_min1 = 4 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M4period; + +/* ASN_NGAP_M4period */ +typedef long ASN_NGAP_M4period_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M4period_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4period; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M4period_specs_1; +asn_struct_free_f ASN_NGAP_M4period_free; +asn_struct_print_f ASN_NGAP_M4period_print; +asn_constr_check_f ASN_NGAP_M4period_constraint; +ber_type_decoder_f ASN_NGAP_M4period_decode_ber; +der_type_encoder_f ASN_NGAP_M4period_encode_der; +xer_type_decoder_f ASN_NGAP_M4period_decode_xer; +xer_type_encoder_f ASN_NGAP_M4period_encode_xer; +per_type_decoder_f ASN_NGAP_M4period_decode_uper; +per_type_encoder_f ASN_NGAP_M4period_encode_uper; +per_type_decoder_f ASN_NGAP_M4period_decode_aper; +per_type_encoder_f ASN_NGAP_M4period_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M4period_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M5Configuration.c b/src/asn/ngap/ASN_NGAP_M5Configuration.c new file mode 100644 index 0000000..01ec921 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M5Configuration.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M5Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration, m5period), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M5period, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m5period" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration, m5_links_to_log), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Links_to_log, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m5-links-to-log" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M5Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M5Configuration_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M5Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M5Configuration_specs_1 = { + sizeof(struct ASN_NGAP_M5Configuration), + offsetof(struct ASN_NGAP_M5Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_M5Configuration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M5Configuration_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5Configuration = { + "M5Configuration", + "M5Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M5Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_M5Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M5Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M5Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M5Configuration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M5Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M5Configuration.h b/src/asn/ngap/ASN_NGAP_M5Configuration.h new file mode 100644 index 0000000..936c143 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M5Configuration_H_ +#define _ASN_NGAP_M5Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M5period.h" +#include "ASN_NGAP_Links-to-log.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M5Configuration */ +typedef struct ASN_NGAP_M5Configuration { + ASN_NGAP_M5period_t m5period; + ASN_NGAP_Links_to_log_t m5_links_to_log; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M5Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M5Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M5Configuration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M5Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.c b/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.c new file mode 100644 index 0000000..9d143dc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M5ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M5ReportAmountMDT_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_ASN_NGAP_M5ReportAmountMDT_value2enum_1[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M5ReportAmountMDT_enum2value_1[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M5ReportAmountMDT_specs_1 = { + asn_MAP_ASN_NGAP_M5ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M5ReportAmountMDT_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_ASN_NGAP_M5ReportAmountMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5ReportAmountMDT = { + "M5ReportAmountMDT", + "M5ReportAmountMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5ReportAmountMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M5ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M5ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.h b/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.h new file mode 100644 index 0000000..07ea332 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5ReportAmountMDT.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M5ReportAmountMDT_H_ +#define _ASN_NGAP_M5ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M5ReportAmountMDT { + ASN_NGAP_M5ReportAmountMDT_r1 = 0, + ASN_NGAP_M5ReportAmountMDT_r2 = 1, + ASN_NGAP_M5ReportAmountMDT_r4 = 2, + ASN_NGAP_M5ReportAmountMDT_r8 = 3, + ASN_NGAP_M5ReportAmountMDT_r16 = 4, + ASN_NGAP_M5ReportAmountMDT_r32 = 5, + ASN_NGAP_M5ReportAmountMDT_r64 = 6, + ASN_NGAP_M5ReportAmountMDT_infinity = 7 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M5ReportAmountMDT; + +/* ASN_NGAP_M5ReportAmountMDT */ +typedef long ASN_NGAP_M5ReportAmountMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M5ReportAmountMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5ReportAmountMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M5ReportAmountMDT_specs_1; +asn_struct_free_f ASN_NGAP_M5ReportAmountMDT_free; +asn_struct_print_f ASN_NGAP_M5ReportAmountMDT_print; +asn_constr_check_f ASN_NGAP_M5ReportAmountMDT_constraint; +ber_type_decoder_f ASN_NGAP_M5ReportAmountMDT_decode_ber; +der_type_encoder_f ASN_NGAP_M5ReportAmountMDT_encode_der; +xer_type_decoder_f ASN_NGAP_M5ReportAmountMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_M5ReportAmountMDT_encode_xer; +per_type_decoder_f ASN_NGAP_M5ReportAmountMDT_decode_uper; +per_type_encoder_f ASN_NGAP_M5ReportAmountMDT_encode_uper; +per_type_decoder_f ASN_NGAP_M5ReportAmountMDT_decode_aper; +per_type_encoder_f ASN_NGAP_M5ReportAmountMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M5ReportAmountMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M5period.c b/src/asn/ngap/ASN_NGAP_M5period.c new file mode 100644 index 0000000..d971f7a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M5period.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_M5period_specs_1 = { + asn_MAP_ASN_NGAP_M5period_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_M5period_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5period = { + "M5period", + "M5period", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M5period_tags_1, + sizeof(asn_DEF_ASN_NGAP_M5period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5period_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M5period_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M5period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M5period_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M5period_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M5period_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M5period.h b/src/asn/ngap/ASN_NGAP_M5period.h new file mode 100644 index 0000000..302bbf6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M5period.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M5period_H_ +#define _ASN_NGAP_M5period_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M5period { + ASN_NGAP_M5period_ms1024 = 0, + ASN_NGAP_M5period_ms2048 = 1, + ASN_NGAP_M5period_ms5120 = 2, + ASN_NGAP_M5period_ms10240 = 3, + ASN_NGAP_M5period_min1 = 4 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M5period; + +/* ASN_NGAP_M5period */ +typedef long ASN_NGAP_M5period_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M5period_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5period; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M5period_specs_1; +asn_struct_free_f ASN_NGAP_M5period_free; +asn_struct_print_f ASN_NGAP_M5period_print; +asn_constr_check_f ASN_NGAP_M5period_constraint; +ber_type_decoder_f ASN_NGAP_M5period_decode_ber; +der_type_encoder_f ASN_NGAP_M5period_encode_der; +xer_type_decoder_f ASN_NGAP_M5period_decode_xer; +xer_type_encoder_f ASN_NGAP_M5period_encode_xer; +per_type_decoder_f ASN_NGAP_M5period_decode_uper; +per_type_encoder_f ASN_NGAP_M5period_encode_uper; +per_type_decoder_f ASN_NGAP_M5period_decode_aper; +per_type_encoder_f ASN_NGAP_M5period_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M5period_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M6Configuration.c b/src/asn/ngap/ASN_NGAP_M6Configuration.c new file mode 100644 index 0000000..d63f9c5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M6Configuration.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M6Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration, m6report_Interval), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M6report_Interval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m6report-Interval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration, m6_links_to_log), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Links_to_log, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m6-links-to-log" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M6Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M6Configuration_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M6Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M6Configuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* m6report-Interval */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* m6-links-to-log */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M6Configuration_specs_1 = { + sizeof(struct ASN_NGAP_M6Configuration), + offsetof(struct ASN_NGAP_M6Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_M6Configuration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M6Configuration_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6Configuration = { + "M6Configuration", + "M6Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M6Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_M6Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M6Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M6Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M6Configuration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M6Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M6Configuration.h b/src/asn/ngap/ASN_NGAP_M6Configuration.h new file mode 100644 index 0000000..4c2064a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M6Configuration_H_ +#define _ASN_NGAP_M6Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M6report-Interval.h" +#include "ASN_NGAP_Links-to-log.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M6Configuration */ +typedef struct ASN_NGAP_M6Configuration { + ASN_NGAP_M6report_Interval_t m6report_Interval; + ASN_NGAP_Links_to_log_t m6_links_to_log; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M6Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M6Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M6Configuration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M6Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.c b/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.c new file mode 100644 index 0000000..112c2ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M6ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M6ReportAmountMDT_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_ASN_NGAP_M6ReportAmountMDT_value2enum_1[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M6ReportAmountMDT_enum2value_1[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M6ReportAmountMDT_specs_1 = { + asn_MAP_ASN_NGAP_M6ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M6ReportAmountMDT_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_ASN_NGAP_M6ReportAmountMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6ReportAmountMDT = { + "M6ReportAmountMDT", + "M6ReportAmountMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6ReportAmountMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M6ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M6ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.h b/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.h new file mode 100644 index 0000000..fb7b9a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6ReportAmountMDT.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M6ReportAmountMDT_H_ +#define _ASN_NGAP_M6ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M6ReportAmountMDT { + ASN_NGAP_M6ReportAmountMDT_r1 = 0, + ASN_NGAP_M6ReportAmountMDT_r2 = 1, + ASN_NGAP_M6ReportAmountMDT_r4 = 2, + ASN_NGAP_M6ReportAmountMDT_r8 = 3, + ASN_NGAP_M6ReportAmountMDT_r16 = 4, + ASN_NGAP_M6ReportAmountMDT_r32 = 5, + ASN_NGAP_M6ReportAmountMDT_r64 = 6, + ASN_NGAP_M6ReportAmountMDT_infinity = 7 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M6ReportAmountMDT; + +/* ASN_NGAP_M6ReportAmountMDT */ +typedef long ASN_NGAP_M6ReportAmountMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M6ReportAmountMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6ReportAmountMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M6ReportAmountMDT_specs_1; +asn_struct_free_f ASN_NGAP_M6ReportAmountMDT_free; +asn_struct_print_f ASN_NGAP_M6ReportAmountMDT_print; +asn_constr_check_f ASN_NGAP_M6ReportAmountMDT_constraint; +ber_type_decoder_f ASN_NGAP_M6ReportAmountMDT_decode_ber; +der_type_encoder_f ASN_NGAP_M6ReportAmountMDT_encode_der; +xer_type_decoder_f ASN_NGAP_M6ReportAmountMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_M6ReportAmountMDT_encode_xer; +per_type_decoder_f ASN_NGAP_M6ReportAmountMDT_decode_uper; +per_type_encoder_f ASN_NGAP_M6ReportAmountMDT_encode_uper; +per_type_decoder_f ASN_NGAP_M6ReportAmountMDT_decode_aper; +per_type_encoder_f ASN_NGAP_M6ReportAmountMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M6ReportAmountMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M6report-Interval.c b/src/asn/ngap/ASN_NGAP_M6report-Interval.c new file mode 100644 index 0000000..b723f7d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6report-Interval.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M6report-Interval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M6report_Interval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_M6report_Interval_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, 7, "ms20480" }, + { 9, 7, "ms40960" }, + { 10, 4, "min1" }, + { 11, 4, "min6" }, + { 12, 5, "min12" }, + { 13, 5, "min30" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M6report_Interval_enum2value_1[] = { + 10, /* min1(10) */ + 12, /* min12(12) */ + 13, /* min30(13) */ + 11, /* min6(11) */ + 4, /* ms1024(4) */ + 7, /* ms10240(7) */ + 0, /* ms120(0) */ + 5, /* ms2048(5) */ + 8, /* ms20480(8) */ + 1, /* ms240(1) */ + 9, /* ms40960(9) */ + 2, /* ms480(2) */ + 6, /* ms5120(6) */ + 3 /* ms640(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M6report_Interval_specs_1 = { + asn_MAP_ASN_NGAP_M6report_Interval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M6report_Interval_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M6report_Interval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6report_Interval = { + "M6report-Interval", + "M6report-Interval", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M6report_Interval_tags_1, + sizeof(asn_DEF_ASN_NGAP_M6report_Interval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6report_Interval_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M6report_Interval_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M6report_Interval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M6report_Interval_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M6report_Interval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M6report_Interval_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M6report-Interval.h b/src/asn/ngap/ASN_NGAP_M6report-Interval.h new file mode 100644 index 0000000..66e3245 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M6report-Interval.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M6report_Interval_H_ +#define _ASN_NGAP_M6report_Interval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M6report_Interval { + ASN_NGAP_M6report_Interval_ms120 = 0, + ASN_NGAP_M6report_Interval_ms240 = 1, + ASN_NGAP_M6report_Interval_ms480 = 2, + ASN_NGAP_M6report_Interval_ms640 = 3, + ASN_NGAP_M6report_Interval_ms1024 = 4, + ASN_NGAP_M6report_Interval_ms2048 = 5, + ASN_NGAP_M6report_Interval_ms5120 = 6, + ASN_NGAP_M6report_Interval_ms10240 = 7, + ASN_NGAP_M6report_Interval_ms20480 = 8, + ASN_NGAP_M6report_Interval_ms40960 = 9, + ASN_NGAP_M6report_Interval_min1 = 10, + ASN_NGAP_M6report_Interval_min6 = 11, + ASN_NGAP_M6report_Interval_min12 = 12, + ASN_NGAP_M6report_Interval_min30 = 13 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M6report_Interval; + +/* ASN_NGAP_M6report-Interval */ +typedef long ASN_NGAP_M6report_Interval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M6report_Interval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6report_Interval; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M6report_Interval_specs_1; +asn_struct_free_f ASN_NGAP_M6report_Interval_free; +asn_struct_print_f ASN_NGAP_M6report_Interval_print; +asn_constr_check_f ASN_NGAP_M6report_Interval_constraint; +ber_type_decoder_f ASN_NGAP_M6report_Interval_decode_ber; +der_type_encoder_f ASN_NGAP_M6report_Interval_encode_der; +xer_type_decoder_f ASN_NGAP_M6report_Interval_decode_xer; +xer_type_encoder_f ASN_NGAP_M6report_Interval_encode_xer; +per_type_decoder_f ASN_NGAP_M6report_Interval_decode_uper; +per_type_encoder_f ASN_NGAP_M6report_Interval_encode_uper; +per_type_decoder_f ASN_NGAP_M6report_Interval_decode_aper; +per_type_encoder_f ASN_NGAP_M6report_Interval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M6report_Interval_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M7Configuration.c b/src/asn/ngap/ASN_NGAP_M7Configuration.c new file mode 100644 index 0000000..230717e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7Configuration.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M7Configuration.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_M7Configuration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration, m7period), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_M7period, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m7period" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration, m7_links_to_log), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Links_to_log, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "m7-links-to-log" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_M7Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_M7Configuration_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M7Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M7Configuration_specs_1 = { + sizeof(struct ASN_NGAP_M7Configuration), + offsetof(struct ASN_NGAP_M7Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_M7Configuration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_M7Configuration_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7Configuration = { + "M7Configuration", + "M7Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M7Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_M7Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M7Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M7Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M7Configuration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M7Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M7Configuration.h b/src/asn/ngap/ASN_NGAP_M7Configuration.h new file mode 100644 index 0000000..76257eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M7Configuration_H_ +#define _ASN_NGAP_M7Configuration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_M7period.h" +#include "ASN_NGAP_Links-to-log.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_M7Configuration */ +typedef struct ASN_NGAP_M7Configuration { + ASN_NGAP_M7period_t m7period; + ASN_NGAP_Links_to_log_t m7_links_to_log; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M7Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M7Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M7Configuration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M7Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.c b/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.c new file mode 100644 index 0000000..f1edc2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M7ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_M7ReportAmountMDT_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_ASN_NGAP_M7ReportAmountMDT_value2enum_1[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_M7ReportAmountMDT_enum2value_1[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M7ReportAmountMDT_specs_1 = { + asn_MAP_ASN_NGAP_M7ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_M7ReportAmountMDT_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_ASN_NGAP_M7ReportAmountMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7ReportAmountMDT = { + "M7ReportAmountMDT", + "M7ReportAmountMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7ReportAmountMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M7ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_M7ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.h b/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.h new file mode 100644 index 0000000..7871210 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7ReportAmountMDT.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M7ReportAmountMDT_H_ +#define _ASN_NGAP_M7ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_M7ReportAmountMDT { + ASN_NGAP_M7ReportAmountMDT_r1 = 0, + ASN_NGAP_M7ReportAmountMDT_r2 = 1, + ASN_NGAP_M7ReportAmountMDT_r4 = 2, + ASN_NGAP_M7ReportAmountMDT_r8 = 3, + ASN_NGAP_M7ReportAmountMDT_r16 = 4, + ASN_NGAP_M7ReportAmountMDT_r32 = 5, + ASN_NGAP_M7ReportAmountMDT_r64 = 6, + ASN_NGAP_M7ReportAmountMDT_infinity = 7 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_M7ReportAmountMDT; + +/* ASN_NGAP_M7ReportAmountMDT */ +typedef long ASN_NGAP_M7ReportAmountMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M7ReportAmountMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7ReportAmountMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_M7ReportAmountMDT_specs_1; +asn_struct_free_f ASN_NGAP_M7ReportAmountMDT_free; +asn_struct_print_f ASN_NGAP_M7ReportAmountMDT_print; +asn_constr_check_f ASN_NGAP_M7ReportAmountMDT_constraint; +ber_type_decoder_f ASN_NGAP_M7ReportAmountMDT_decode_ber; +der_type_encoder_f ASN_NGAP_M7ReportAmountMDT_encode_der; +xer_type_decoder_f ASN_NGAP_M7ReportAmountMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_M7ReportAmountMDT_encode_xer; +per_type_decoder_f ASN_NGAP_M7ReportAmountMDT_decode_uper; +per_type_encoder_f ASN_NGAP_M7ReportAmountMDT_encode_uper; +per_type_decoder_f ASN_NGAP_M7ReportAmountMDT_decode_aper; +per_type_encoder_f ASN_NGAP_M7ReportAmountMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M7ReportAmountMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_M7period.c b/src/asn/ngap/ASN_NGAP_M7period.c new file mode 100644 index 0000000..1f44e8a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7period.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_M7period.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_M7period_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7period = { + "M7period", + "M7period", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_M7period_tags_1, + sizeof(asn_DEF_ASN_NGAP_M7period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7period_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_M7period_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M7period_tags_1) + /sizeof(asn_DEF_ASN_NGAP_M7period_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_M7period_constr_1, ASN_NGAP_M7period_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_M7period.h b/src/asn/ngap/ASN_NGAP_M7period.h new file mode 100644 index 0000000..98e6fb1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_M7period.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_M7period_H_ +#define _ASN_NGAP_M7period_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_M7period */ +typedef long ASN_NGAP_M7period_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_M7period_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7period; +asn_struct_free_f ASN_NGAP_M7period_free; +asn_struct_print_f ASN_NGAP_M7period_print; +asn_constr_check_f ASN_NGAP_M7period_constraint; +ber_type_decoder_f ASN_NGAP_M7period_decode_ber; +der_type_encoder_f ASN_NGAP_M7period_encode_der; +xer_type_decoder_f ASN_NGAP_M7period_decode_xer; +xer_type_encoder_f ASN_NGAP_M7period_encode_xer; +per_type_decoder_f ASN_NGAP_M7period_decode_uper; +per_type_encoder_f ASN_NGAP_M7period_encode_uper; +per_type_decoder_f ASN_NGAP_M7period_decode_aper; +per_type_encoder_f ASN_NGAP_M7period_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_M7period_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c new file mode 100644 index 0000000..ee9083c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h" + +#include "ASN_NGAP_MBS-ServiceArea.h" +#include "ASN_NGAP_MBS-MappingandDataForwardingRequestList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, mBS_ServiceArea), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-ServiceArea" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, mBS_QoSFlowsToBeSetupList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QoSFlowsToBeSetupList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, mBS_MappingandDataForwardingRequestList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-MappingandDataForwardingRequestList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_oms_1[] = { 1, 2, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mBS-ServiceArea */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mBS-QoSFlowsToBeSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mBS-MappingandDataForwardingRequestList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem = { + "MBS-ActiveSessionInformation-SourcetoTargetItem", + "MBS-ActiveSessionInformation-SourcetoTargetItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h new file mode 100644 index 0000000..ed80184 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_H_ +#define _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_ServiceArea; +struct ASN_NGAP_MBS_MappingandDataForwardingRequestList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem */ +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_MBS_ServiceArea *mBS_ServiceArea; /* OPTIONAL */ + ASN_NGAP_MBS_QoSFlowsToBeSetupList_t mBS_QoSFlowsToBeSetupList; + struct ASN_NGAP_MBS_MappingandDataForwardingRequestList *mBS_MappingandDataForwardingRequestList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c new file mode 100644 index 0000000..c505c3a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h" + +#include "ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_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_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList = { + "MBS-ActiveSessionInformation-SourcetoTargetList", + "MBS-ActiveSessionInformation-SourcetoTargetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h new file mode 100644 index 0000000..a3a2e70 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_H_ +#define _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem; + +/* ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList */ +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c new file mode 100644 index 0000000..966fee0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h" + +#include "ASN_NGAP_MBS-DataForwardingResponseMRBList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem, mBS_DataForwardingResponseMRBList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-DataForwardingResponseMRBList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-DataForwardingResponseMRBList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem = { + "MBS-ActiveSessionInformation-TargettoSourceItem", + "MBS-ActiveSessionInformation-TargettoSourceItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h new file mode 100644 index 0000000..087db8a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_H_ +#define _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_DataForwardingResponseMRBList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem */ +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + struct ASN_NGAP_MBS_DataForwardingResponseMRBList *mBS_DataForwardingResponseMRBList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c new file mode 100644 index 0000000..af6eeb1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h" + +#include "ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_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_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList = { + "MBS-ActiveSessionInformation-TargettoSourceList", + "MBS-ActiveSessionInformation-TargettoSourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h new file mode 100644 index 0000000..1e7a42b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_H_ +#define _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem; + +/* ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList */ +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.c b/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.c new file mode 100644 index 0000000..ebbf23c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-AreaSessionID.h" + +int +ASN_NGAP_MBS_AreaSessionID_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_ASN_NGAP_MBS_AreaSessionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_MBS_AreaSessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_AreaSessionID = { + "MBS-AreaSessionID", + "MBS-AreaSessionID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_AreaSessionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_AreaSessionID_constr_1, ASN_NGAP_MBS_AreaSessionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.h b/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.h new file mode 100644 index 0000000..31d141c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-AreaSessionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_AreaSessionID_H_ +#define _ASN_NGAP_MBS_AreaSessionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MBS-AreaSessionID */ +typedef long ASN_NGAP_MBS_AreaSessionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_AreaSessionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_AreaSessionID; +asn_struct_free_f ASN_NGAP_MBS_AreaSessionID_free; +asn_struct_print_f ASN_NGAP_MBS_AreaSessionID_print; +asn_constr_check_f ASN_NGAP_MBS_AreaSessionID_constraint; +ber_type_decoder_f ASN_NGAP_MBS_AreaSessionID_decode_ber; +der_type_encoder_f ASN_NGAP_MBS_AreaSessionID_encode_der; +xer_type_decoder_f ASN_NGAP_MBS_AreaSessionID_decode_xer; +xer_type_encoder_f ASN_NGAP_MBS_AreaSessionID_encode_xer; +per_type_decoder_f ASN_NGAP_MBS_AreaSessionID_decode_uper; +per_type_encoder_f ASN_NGAP_MBS_AreaSessionID_encode_uper; +per_type_decoder_f ASN_NGAP_MBS_AreaSessionID_decode_aper; +per_type_encoder_f ASN_NGAP_MBS_AreaSessionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_AreaSessionID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.c b/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.c new file mode 100644 index 0000000..8dded60 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-AreaTAIList.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_AreaTAIList_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_ASN_NGAP_MBS_AreaTAIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_AreaTAIList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_AreaTAIList), + offsetof(struct ASN_NGAP_MBS_AreaTAIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_AreaTAIList = { + "MBS-AreaTAIList", + "MBS-AreaTAIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_AreaTAIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_AreaTAIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_AreaTAIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_AreaTAIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.h b/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.h new file mode 100644 index 0000000..c1c30ad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-AreaTAIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_AreaTAIList_H_ +#define _ASN_NGAP_MBS_AreaTAIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_MBS-AreaTAIList */ +typedef struct ASN_NGAP_MBS_AreaTAIList { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_AreaTAIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_AreaTAIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_AreaTAIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_AreaTAIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_AreaTAIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_AreaTAIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.c b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.c new file mode 100644 index 0000000..e0add8c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DataForwardingResponseMRBItem.h" + +#include "ASN_NGAP_MRB-ProgressInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem, mRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem, dL_Forwarding_UPTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-Forwarding-UPTNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem, mRB_ProgressInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MRB_ProgressInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mRB-ProgressInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-Forwarding-UPTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mRB-ProgressInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem), + offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem = { + "MBS-DataForwardingResponseMRBItem", + "MBS-DataForwardingResponseMRBItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.h b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.h new file mode 100644 index 0000000..1c4ac76 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DataForwardingResponseMRBItem_H_ +#define _ASN_NGAP_MBS_DataForwardingResponseMRBItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MRB-ID.h" +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MRB_ProgressInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-DataForwardingResponseMRBItem */ +typedef struct ASN_NGAP_MBS_DataForwardingResponseMRBItem { + ASN_NGAP_MRB_ID_t mRB_ID; + ASN_NGAP_UPTransportLayerInformation_t dL_Forwarding_UPTNLInformation; + struct ASN_NGAP_MRB_ProgressInformation *mRB_ProgressInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DataForwardingResponseMRBItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DataForwardingResponseMRBItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.c b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.c new file mode 100644 index 0000000..214bf91 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DataForwardingResponseMRBList.h" + +#include "ASN_NGAP_MBS-DataForwardingResponseMRBItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_DataForwardingResponseMRBList_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_ASN_NGAP_MBS_DataForwardingResponseMRBList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DataForwardingResponseMRBList), + offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList = { + "MBS-DataForwardingResponseMRBList", + "MBS-DataForwardingResponseMRBList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_DataForwardingResponseMRBList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.h b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.h new file mode 100644 index 0000000..92a468b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DataForwardingResponseMRBList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DataForwardingResponseMRBList_H_ +#define _ASN_NGAP_MBS_DataForwardingResponseMRBList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_DataForwardingResponseMRBItem; + +/* ASN_NGAP_MBS-DataForwardingResponseMRBList */ +typedef struct ASN_NGAP_MBS_DataForwardingResponseMRBList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DataForwardingResponseMRBList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_DataForwardingResponseMRBList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DataForwardingResponseMRBList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.c new file mode 100644 index 0000000..82eea7d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, sharedNGU_UnicastTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedNGU-UnicastTNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_oms_1[] = { 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sharedNGU-UnicastTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer), + offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer = { + "MBS-DistributionReleaseRequestTransfer", + "MBS-DistributionReleaseRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionReleaseRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h new file mode 100644 index 0000000..7fee94d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionReleaseRequestTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DistributionReleaseRequestTransfer_H_ +#define _ASN_NGAP_MBS_DistributionReleaseRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-DistributionReleaseRequestTransfer */ +typedef struct ASN_NGAP_MBS_DistributionReleaseRequestTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_UPTransportLayerInformation *sharedNGU_UnicastTNLInformation; /* OPTIONAL */ + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionReleaseRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DistributionReleaseRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.c new file mode 100644 index 0000000..de36a20 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DistributionSetupRequestTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer, sharedNGU_UnicastTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedNGU-UnicastTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sharedNGU-UnicastTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer), + offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer = { + "MBS-DistributionSetupRequestTransfer", + "MBS-DistributionSetupRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupRequestTransfer_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.h new file mode 100644 index 0000000..d999981 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupRequestTransfer.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DistributionSetupRequestTransfer_H_ +#define _ASN_NGAP_MBS_DistributionSetupRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-DistributionSetupRequestTransfer */ +typedef struct ASN_NGAP_MBS_DistributionSetupRequestTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_UPTransportLayerInformation *sharedNGU_UnicastTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DistributionSetupRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.c b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.c new file mode 100644 index 0000000..c03b73c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DistributionSetupResponseTransfer.h" + +#include "ASN_NGAP_SharedNGU-MulticastTNLInformation.h" +#include "ASN_NGAP_MBS-ServiceArea.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupResponseTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, sharedNGU_MulticastTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedNGU-MulticastTNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, mBS_QoSFlowsToBeSetupList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QoSFlowsToBeSetupList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, mBSSessionStatus), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBSSessionStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBSSessionStatus" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, mBS_ServiceArea), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-ServiceArea" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_oms_1[] = { 1, 2, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sharedNGU-MulticastTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mBS-QoSFlowsToBeSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mBSSessionStatus */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mBS-ServiceArea */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer), + offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer = { + "MBS-DistributionSetupResponseTransfer", + "MBS-DistributionSetupResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupResponseTransfer_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.h b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.h new file mode 100644 index 0000000..91540c9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupResponseTransfer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DistributionSetupResponseTransfer_H_ +#define _ASN_NGAP_MBS_DistributionSetupResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupList.h" +#include "ASN_NGAP_MBSSessionStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SharedNGU_MulticastTNLInformation; +struct ASN_NGAP_MBS_ServiceArea; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-DistributionSetupResponseTransfer */ +typedef struct ASN_NGAP_MBS_DistributionSetupResponseTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_SharedNGU_MulticastTNLInformation *sharedNGU_MulticastTNLInformation; /* OPTIONAL */ + ASN_NGAP_MBS_QoSFlowsToBeSetupList_t mBS_QoSFlowsToBeSetupList; + ASN_NGAP_MBSSessionStatus_t mBSSessionStatus; + struct ASN_NGAP_MBS_ServiceArea *mBS_ServiceArea; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DistributionSetupResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c new file mode 100644 index 0000000..3a3c9b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h" + +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, criticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_oms_1[] = { 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* criticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer = { + "MBS-DistributionSetupUnsuccessfulTransfer", + "MBS-DistributionSetupUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h new file mode 100644 index 0000000..040c376 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_H_ +#define _ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-DistributionSetupUnsuccessfulTransfer */ +typedef struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_CriticalityDiagnostics *criticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.c b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.c new file mode 100644 index 0000000..4841c98 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h" + +#include "ASN_NGAP_MRB-ProgressInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem, mRB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MRB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mRB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem, mBS_QoSFlowList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_QoSFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QoSFlowList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem, mRB_ProgressInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MRB_ProgressInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mRB-ProgressInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mRB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-QoSFlowList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mRB-ProgressInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem), + offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem = { + "MBS-MappingandDataForwardingRequestItem", + "MBS-MappingandDataForwardingRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h new file mode 100644 index 0000000..c44228a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_MappingandDataForwardingRequestItem_H_ +#define _ASN_NGAP_MBS_MappingandDataForwardingRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MRB-ID.h" +#include "ASN_NGAP_MBS-QoSFlowList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MRB_ProgressInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-MappingandDataForwardingRequestItem */ +typedef struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem { + ASN_NGAP_MRB_ID_t mRB_ID; + ASN_NGAP_MBS_QoSFlowList_t mBS_QoSFlowList; + struct ASN_NGAP_MRB_ProgressInformation *mRB_ProgressInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_MappingandDataForwardingRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_MappingandDataForwardingRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.c b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.c new file mode 100644 index 0000000..9771a4d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-MappingandDataForwardingRequestList.h" + +#include "ASN_NGAP_MBS-MappingandDataForwardingRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_MappingandDataForwardingRequestList_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_ASN_NGAP_MBS_MappingandDataForwardingRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestList), + offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList = { + "MBS-MappingandDataForwardingRequestList", + "MBS-MappingandDataForwardingRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_MappingandDataForwardingRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.h b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.h new file mode 100644 index 0000000..7df3a7a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-MappingandDataForwardingRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_MappingandDataForwardingRequestList_H_ +#define _ASN_NGAP_MBS_MappingandDataForwardingRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem; + +/* ASN_NGAP_MBS-MappingandDataForwardingRequestList */ +typedef struct ASN_NGAP_MBS_MappingandDataForwardingRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_MappingandDataForwardingRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_MappingandDataForwardingRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_MappingandDataForwardingRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.c b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.c new file mode 100644 index 0000000..ef99949 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-QoSFlowList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_QoSFlowList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_QoSFlowList), + offsetof(struct ASN_NGAP_MBS_QoSFlowList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowList = { + "MBS-QoSFlowList", + "MBS-QoSFlowList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_QoSFlowList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_QoSFlowList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_QoSFlowList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.h b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.h new file mode 100644 index 0000000..57b185a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_QoSFlowList_H_ +#define _ASN_NGAP_MBS_QoSFlowList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MBS-QoSFlowList */ +typedef struct ASN_NGAP_MBS_QoSFlowList { + A_SEQUENCE_OF(ASN_NGAP_QosFlowIdentifier_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_QoSFlowList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_QoSFlowList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_QoSFlowList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c new file mode 100644 index 0000000..2893f3d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem, mBSqosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBSqosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem, mBSqosFlowLevelQosParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowLevelQosParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBSqosFlowLevelQosParameters" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBSqosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBSqosFlowLevelQosParameters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem), + offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem = { + "MBS-QoSFlowsToBeSetupItem", + "MBS-QoSFlowsToBeSetupItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h new file mode 100644 index 0000000..de2fbf7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_QoSFlowsToBeSetupItem_H_ +#define _ASN_NGAP_MBS_QoSFlowsToBeSetupItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_QosFlowLevelQosParameters.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-QoSFlowsToBeSetupItem */ +typedef struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem { + ASN_NGAP_QosFlowIdentifier_t mBSqosFlowIdentifier; + ASN_NGAP_QosFlowLevelQosParameters_t mBSqosFlowLevelQosParameters; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_QoSFlowsToBeSetupItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_QoSFlowsToBeSetupItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c new file mode 100644 index 0000000..466fb71 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupList.h" + +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_QoSFlowsToBeSetupList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupList), + offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList = { + "MBS-QoSFlowsToBeSetupList", + "MBS-QoSFlowsToBeSetupList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_QoSFlowsToBeSetupList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h new file mode 100644 index 0000000..4c960ec --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-QoSFlowsToBeSetupList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_QoSFlowsToBeSetupList_H_ +#define _ASN_NGAP_MBS_QoSFlowsToBeSetupList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem; + +/* ASN_NGAP_MBS-QoSFlowsToBeSetupList */ +typedef struct ASN_NGAP_MBS_QoSFlowsToBeSetupList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_QoSFlowsToBeSetupList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_QoSFlowsToBeSetupList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_QoSFlowsToBeSetupList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.c new file mode 100644 index 0000000..868fd71 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceArea.h" + +#include "ASN_NGAP_MBS-ServiceAreaInformation.h" +#include "ASN_NGAP_MBS-ServiceAreaInformationList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceArea_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceArea_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea, choice.locationindependent), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationindependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea, choice.locationdependent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationdependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceArea_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceArea_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceArea), + offsetof(struct ASN_NGAP_MBS_ServiceArea, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ServiceArea, present), + sizeof(((struct ASN_NGAP_MBS_ServiceArea *)0)->present), + asn_MAP_ASN_NGAP_MBS_ServiceArea_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceArea = { + "MBS-ServiceArea", + "MBS-ServiceArea", + &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_ASN_NGAP_MBS_ServiceArea_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceArea_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceArea_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.h new file mode 100644 index 0000000..5971011 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceArea.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceArea_H_ +#define _ASN_NGAP_MBS_ServiceArea_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MBS_ServiceArea_PR { + ASN_NGAP_MBS_ServiceArea_PR_NOTHING, /* No components present */ + ASN_NGAP_MBS_ServiceArea_PR_locationindependent, + ASN_NGAP_MBS_ServiceArea_PR_locationdependent, + ASN_NGAP_MBS_ServiceArea_PR_choice_Extensions +} ASN_NGAP_MBS_ServiceArea_PR; + +/* Forward declarations */ +struct ASN_NGAP_MBS_ServiceAreaInformation; +struct ASN_NGAP_MBS_ServiceAreaInformationList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MBS-ServiceArea */ +typedef struct ASN_NGAP_MBS_ServiceArea { + ASN_NGAP_MBS_ServiceArea_PR present; + union ASN_NGAP_MBS_ServiceArea_u { + struct ASN_NGAP_MBS_ServiceAreaInformation *locationindependent; + struct ASN_NGAP_MBS_ServiceAreaInformationList *locationdependent; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceArea_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceArea; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceArea_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceArea_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceArea_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceArea_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.c new file mode 100644 index 0000000..516e25f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceAreaCellList.h" + +#include "ASN_NGAP_NR-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaCellList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaCellList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaCellList), + offsetof(struct ASN_NGAP_MBS_ServiceAreaCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList = { + "MBS-ServiceAreaCellList", + "MBS-ServiceAreaCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_ServiceAreaCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.h new file mode 100644 index 0000000..909dbab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceAreaCellList_H_ +#define _ASN_NGAP_MBS_ServiceAreaCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NR_CGI; + +/* ASN_NGAP_MBS-ServiceAreaCellList */ +typedef struct ASN_NGAP_MBS_ServiceAreaCellList { + A_SEQUENCE_OF(struct ASN_NGAP_NR_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceAreaCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.c new file mode 100644 index 0000000..5038357 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceAreaInformation.h" + +#include "ASN_NGAP_MBS-ServiceAreaCellList.h" +#include "ASN_NGAP_MBS-ServiceAreaTAIList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation, mBS_ServiceAreaCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceAreaCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-ServiceAreaCellList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation, mBS_ServiceAreaTAIList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-ServiceAreaTAIList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-ServiceAreaCellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-ServiceAreaTAIList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformation), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation = { + "MBS-ServiceAreaInformation", + "MBS-ServiceAreaInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.h new file mode 100644 index 0000000..ed9e2f7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceAreaInformation_H_ +#define _ASN_NGAP_MBS_ServiceAreaInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_ServiceAreaCellList; +struct ASN_NGAP_MBS_ServiceAreaTAIList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-ServiceAreaInformation */ +typedef struct ASN_NGAP_MBS_ServiceAreaInformation { + struct ASN_NGAP_MBS_ServiceAreaCellList *mBS_ServiceAreaCellList; /* OPTIONAL */ + struct ASN_NGAP_MBS_ServiceAreaTAIList *mBS_ServiceAreaTAIList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceAreaInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.c new file mode 100644 index 0000000..764ab4f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceAreaInformationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem, mBS_ServiceAreaInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-ServiceAreaInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-ServiceAreaInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformationItem), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem = { + "MBS-ServiceAreaInformationItem", + "MBS-ServiceAreaInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.h new file mode 100644 index 0000000..478fa27 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceAreaInformationItem_H_ +#define _ASN_NGAP_MBS_ServiceAreaInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_MBS-ServiceAreaInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-ServiceAreaInformationItem */ +typedef struct ASN_NGAP_MBS_ServiceAreaInformationItem { + ASN_NGAP_MBS_AreaSessionID_t mBS_AreaSessionID; + ASN_NGAP_MBS_ServiceAreaInformation_t mBS_ServiceAreaInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceAreaInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.c new file mode 100644 index 0000000..1723820 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceAreaInformationList.h" + +#include "ASN_NGAP_MBS-ServiceAreaInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaInformationList_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_ASN_NGAP_MBS_ServiceAreaInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformationList), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList = { + "MBS-ServiceAreaInformationList", + "MBS-ServiceAreaInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_ServiceAreaInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.h new file mode 100644 index 0000000..2848a41 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceAreaInformationList_H_ +#define _ASN_NGAP_MBS_ServiceAreaInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_ServiceAreaInformationItem; + +/* ASN_NGAP_MBS-ServiceAreaInformationList */ +typedef struct ASN_NGAP_MBS_ServiceAreaInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ServiceAreaInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceAreaInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c new file mode 100644 index 0000000..7a93992 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-ServiceAreaTAIList.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaTAIList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaTAIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaTAIList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaTAIList), + offsetof(struct ASN_NGAP_MBS_ServiceAreaTAIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList = { + "MBS-ServiceAreaTAIList", + "MBS-ServiceAreaTAIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_ServiceAreaTAIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaTAIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaTAIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h new file mode 100644 index 0000000..92192ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-ServiceAreaTAIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_ServiceAreaTAIList_H_ +#define _ASN_NGAP_MBS_ServiceAreaTAIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_MBS-ServiceAreaTAIList */ +typedef struct ASN_NGAP_MBS_ServiceAreaTAIList { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaTAIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaTAIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaTAIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaTAIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_ServiceAreaTAIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_ServiceAreaTAIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.c b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.c new file mode 100644 index 0000000..795ec25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionFSAID.h" + +int +ASN_NGAP_MBS_SessionFSAID_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_ASN_NGAP_MBS_SessionFSAID_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_ASN_NGAP_MBS_SessionFSAID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionFSAID = { + "MBS-SessionFSAID", + "MBS-SessionFSAID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_SessionFSAID_constr_1, ASN_NGAP_MBS_SessionFSAID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.h b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.h new file mode 100644 index 0000000..24bef8e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionFSAID_H_ +#define _ASN_NGAP_MBS_SessionFSAID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MBS-SessionFSAID */ +typedef OCTET_STRING_t ASN_NGAP_MBS_SessionFSAID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionFSAID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionFSAID; +asn_struct_free_f ASN_NGAP_MBS_SessionFSAID_free; +asn_struct_print_f ASN_NGAP_MBS_SessionFSAID_print; +asn_constr_check_f ASN_NGAP_MBS_SessionFSAID_constraint; +ber_type_decoder_f ASN_NGAP_MBS_SessionFSAID_decode_ber; +der_type_encoder_f ASN_NGAP_MBS_SessionFSAID_encode_der; +xer_type_decoder_f ASN_NGAP_MBS_SessionFSAID_decode_xer; +xer_type_encoder_f ASN_NGAP_MBS_SessionFSAID_encode_xer; +per_type_decoder_f ASN_NGAP_MBS_SessionFSAID_decode_uper; +per_type_encoder_f ASN_NGAP_MBS_SessionFSAID_encode_uper; +per_type_decoder_f ASN_NGAP_MBS_SessionFSAID_decode_aper; +per_type_encoder_f ASN_NGAP_MBS_SessionFSAID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionFSAID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.c b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.c new file mode 100644 index 0000000..a5554ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionFSAIDList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionFSAIDList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionFSAIDList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionFSAID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionFSAIDList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionFSAIDList), + offsetof(struct ASN_NGAP_MBS_SessionFSAIDList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionFSAIDList = { + "MBS-SessionFSAIDList", + "MBS-SessionFSAIDList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionFSAIDList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_SessionFSAIDList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionFSAIDList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_SessionFSAIDList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.h b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.h new file mode 100644 index 0000000..7bfc166 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionFSAIDList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionFSAIDList_H_ +#define _ASN_NGAP_MBS_SessionFSAIDList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionFSAID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MBS-SessionFSAIDList */ +typedef struct ASN_NGAP_MBS_SessionFSAIDList { + A_SEQUENCE_OF(ASN_NGAP_MBS_SessionFSAID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionFSAIDList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionFSAIDList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionFSAIDList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionFSAIDList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionFSAIDList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionFSAIDList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionID.c b/src/asn/ngap/ASN_NGAP_MBS-SessionID.c new file mode 100644 index 0000000..81afb21 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionID, tMGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TMGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tMGI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_SessionID, nID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_SessionID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_SessionID_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tMGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionID_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionID), + offsetof(struct ASN_NGAP_MBS_SessionID, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_SessionID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionID = { + "MBS-SessionID", + "MBS-SessionID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionID_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionID.h b/src/asn/ngap/ASN_NGAP_MBS-SessionID.h new file mode 100644 index 0000000..d4c6217 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionID_H_ +#define _ASN_NGAP_MBS_SessionID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TMGI.h" +#include "ASN_NGAP_NID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-SessionID */ +typedef struct ASN_NGAP_MBS_SessionID { + ASN_NGAP_TMGI_t tMGI; + ASN_NGAP_NID_t *nID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c new file mode 100644 index 0000000..55b713e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfo5GC.h" + +#include "ASN_NGAP_SharedNGU-MulticastTNLInformation.h" +#include "ASN_NGAP_MBS-SessionTNLInfo5GCList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfo5GC_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC, choice.locationindependent), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationindependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC, choice.locationdependent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationdependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GC), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfo5GC *)0)->present), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GC_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC = { + "MBS-SessionTNLInfo5GC", + "MBS-SessionTNLInfo5GC", + &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_ASN_NGAP_MBS_SessionTNLInfo5GC_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h new file mode 100644 index 0000000..b9a4af4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GC.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfo5GC_H_ +#define _ASN_NGAP_MBS_SessionTNLInfo5GC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MBS_SessionTNLInfo5GC_PR { + ASN_NGAP_MBS_SessionTNLInfo5GC_PR_NOTHING, /* No components present */ + ASN_NGAP_MBS_SessionTNLInfo5GC_PR_locationindependent, + ASN_NGAP_MBS_SessionTNLInfo5GC_PR_locationdependent, + ASN_NGAP_MBS_SessionTNLInfo5GC_PR_choice_Extensions +} ASN_NGAP_MBS_SessionTNLInfo5GC_PR; + +/* Forward declarations */ +struct ASN_NGAP_SharedNGU_MulticastTNLInformation; +struct ASN_NGAP_MBS_SessionTNLInfo5GCList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MBS-SessionTNLInfo5GC */ +typedef struct ASN_NGAP_MBS_SessionTNLInfo5GC { + ASN_NGAP_MBS_SessionTNLInfo5GC_PR present; + union ASN_NGAP_MBS_SessionTNLInfo5GC_u { + struct ASN_NGAP_SharedNGU_MulticastTNLInformation *locationindependent; + struct ASN_NGAP_MBS_SessionTNLInfo5GCList *locationdependent; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfo5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfo5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfo5GC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c new file mode 100644 index 0000000..699339d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfo5GCItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem, sharedNGU_MulticastTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedNGU-MulticastTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedNGU-MulticastTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem = { + "MBS-SessionTNLInfo5GCItem", + "MBS-SessionTNLInfo5GCItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h new file mode 100644 index 0000000..14fff2b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfo5GCItem_H_ +#define _ASN_NGAP_MBS_SessionTNLInfo5GCItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_SharedNGU-MulticastTNLInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-SessionTNLInfo5GCItem */ +typedef struct ASN_NGAP_MBS_SessionTNLInfo5GCItem { + ASN_NGAP_MBS_AreaSessionID_t mBS_AreaSessionID; + ASN_NGAP_SharedNGU_MulticastTNLInformation_t sharedNGU_MulticastTNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfo5GCItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfo5GCItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c new file mode 100644 index 0000000..a062ec0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfo5GCList.h" + +#include "ASN_NGAP_MBS-SessionTNLInfo5GCItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfo5GCList_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_ASN_NGAP_MBS_SessionTNLInfo5GCList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GCList), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList = { + "MBS-SessionTNLInfo5GCList", + "MBS-SessionTNLInfo5GCList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_SessionTNLInfo5GCList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h new file mode 100644 index 0000000..c24c4c8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfo5GCList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfo5GCList_H_ +#define _ASN_NGAP_MBS_SessionTNLInfo5GCList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_SessionTNLInfo5GCItem; + +/* ASN_NGAP_MBS-SessionTNLInfo5GCList */ +typedef struct ASN_NGAP_MBS_SessionTNLInfo5GCList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfo5GCList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfo5GCList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfo5GCList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c new file mode 100644 index 0000000..cc26441 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRAN.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_MBS-SessionTNLInfoNGRANList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfoNGRAN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN, choice.locationindependent), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationindependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN, choice.locationdependent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationdependent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRAN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfoNGRAN *)0)->present), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRAN_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN = { + "MBS-SessionTNLInfoNGRAN", + "MBS-SessionTNLInfoNGRAN", + &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_ASN_NGAP_MBS_SessionTNLInfoNGRAN_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h new file mode 100644 index 0000000..1f7591c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRAN.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfoNGRAN_H_ +#define _ASN_NGAP_MBS_SessionTNLInfoNGRAN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR { + ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR_NOTHING, /* No components present */ + ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR_locationindependent, + ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR_locationdependent, + ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR_choice_Extensions +} ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR; + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_MBS_SessionTNLInfoNGRANList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MBS-SessionTNLInfoNGRAN */ +typedef struct ASN_NGAP_MBS_SessionTNLInfoNGRAN { + ASN_NGAP_MBS_SessionTNLInfoNGRAN_PR present; + union ASN_NGAP_MBS_SessionTNLInfoNGRAN_u { + struct ASN_NGAP_UPTransportLayerInformation *locationindependent; + struct ASN_NGAP_MBS_SessionTNLInfoNGRANList *locationdependent; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfoNGRAN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfoNGRAN_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfoNGRAN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c new file mode 100644 index 0000000..4468dd5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem, sharedNGU_UnicastTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sharedNGU-UnicastTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sharedNGU-UnicastTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem = { + "MBS-SessionTNLInfoNGRANItem", + "MBS-SessionTNLInfoNGRANItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h new file mode 100644 index 0000000..4bdec8c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfoNGRANItem_H_ +#define _ASN_NGAP_MBS_SessionTNLInfoNGRANItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBS-SessionTNLInfoNGRANItem */ +typedef struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem { + ASN_NGAP_MBS_AreaSessionID_t mBS_AreaSessionID; + struct ASN_NGAP_UPTransportLayerInformation *sharedNGU_UnicastTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfoNGRANItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfoNGRANItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.c b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.c new file mode 100644 index 0000000..303ffc0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRANList.h" + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRANItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfoNGRANList_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_ASN_NGAP_MBS_SessionTNLInfoNGRANList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANList_specs_1 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANList), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList = { + "MBS-SessionTNLInfoNGRANList", + "MBS-SessionTNLInfoNGRANList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_SessionTNLInfoNGRANList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.h b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.h new file mode 100644 index 0000000..f46e2ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SessionTNLInfoNGRANList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SessionTNLInfoNGRANList_H_ +#define _ASN_NGAP_MBS_SessionTNLInfoNGRANList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem; + +/* ASN_NGAP_MBS-SessionTNLInfoNGRANList */ +typedef struct ASN_NGAP_MBS_SessionTNLInfoNGRANList { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfoNGRANList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SessionTNLInfoNGRANList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SessionTNLInfoNGRANList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.c b/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.c new file mode 100644 index 0000000..7e4e3b4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBS-SupportIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SupportIndicator_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_ASN_NGAP_MBS_SupportIndicator_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MBS_SupportIndicator_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MBS_SupportIndicator_specs_1 = { + asn_MAP_ASN_NGAP_MBS_SupportIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MBS_SupportIndicator_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_ASN_NGAP_MBS_SupportIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SupportIndicator = { + "MBS-SupportIndicator", + "MBS-SupportIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBS_SupportIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBS_SupportIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MBS_SupportIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.h b/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.h new file mode 100644 index 0000000..8a74d05 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBS-SupportIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBS_SupportIndicator_H_ +#define _ASN_NGAP_MBS_SupportIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MBS_SupportIndicator { + ASN_NGAP_MBS_SupportIndicator_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MBS_SupportIndicator; + +/* ASN_NGAP_MBS-SupportIndicator */ +typedef long ASN_NGAP_MBS_SupportIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBS_SupportIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SupportIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MBS_SupportIndicator_specs_1; +asn_struct_free_f ASN_NGAP_MBS_SupportIndicator_free; +asn_struct_print_f ASN_NGAP_MBS_SupportIndicator_print; +asn_constr_check_f ASN_NGAP_MBS_SupportIndicator_constraint; +ber_type_decoder_f ASN_NGAP_MBS_SupportIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_MBS_SupportIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_MBS_SupportIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_MBS_SupportIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_MBS_SupportIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_MBS_SupportIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_MBS_SupportIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_MBS_SupportIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBS_SupportIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.c b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.c new file mode 100644 index 0000000..a5872cb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionFailedtoSetupItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem, cause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionFailedtoSetupItem), + offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem = { + "MBSSessionFailedtoSetupItem", + "MBSSessionFailedtoSetupItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.h b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.h new file mode 100644 index 0000000..9a7e1fb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionFailedtoSetupItem_H_ +#define _ASN_NGAP_MBSSessionFailedtoSetupItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionFailedtoSetupItem */ +typedef struct ASN_NGAP_MBSSessionFailedtoSetupItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionFailedtoSetupItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionFailedtoSetupItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.c b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.c new file mode 100644 index 0000000..1f5546c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionFailedtoSetupList.h" + +#include "ASN_NGAP_MBSSessionFailedtoSetupItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionFailedtoSetupList_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_ASN_NGAP_MBSSessionFailedtoSetupList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupList_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionFailedtoSetupList), + offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList = { + "MBSSessionFailedtoSetupList", + "MBSSessionFailedtoSetupList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionFailedtoSetupList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.h b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.h new file mode 100644 index 0000000..4f0a2ee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionFailedtoSetupList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionFailedtoSetupList_H_ +#define _ASN_NGAP_MBSSessionFailedtoSetupList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionFailedtoSetupItem; + +/* ASN_NGAP_MBSSessionFailedtoSetupList */ +typedef struct ASN_NGAP_MBSSessionFailedtoSetupList { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionFailedtoSetupItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionFailedtoSetupList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionFailedtoSetupList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionFailedtoSetupList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.c b/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.c new file mode 100644 index 0000000..7fe7f1b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionReleaseResponseTransfer.h" + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRAN.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionReleaseResponseTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer, mBS_SessionTNLInfoNGRAN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionTNLInfoNGRAN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionTNLInfoNGRAN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionReleaseResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer), + offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer = { + "MBSSessionReleaseResponseTransfer", + "MBSSessionReleaseResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionReleaseResponseTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionReleaseResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.h b/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.h new file mode 100644 index 0000000..14e202f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionReleaseResponseTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionReleaseResponseTransfer_H_ +#define _ASN_NGAP_MBSSessionReleaseResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_SessionTNLInfoNGRAN; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionReleaseResponseTransfer */ +typedef struct ASN_NGAP_MBSSessionReleaseResponseTransfer { + struct ASN_NGAP_MBS_SessionTNLInfoNGRAN *mBS_SessionTNLInfoNGRAN; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionReleaseResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionReleaseResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.c new file mode 100644 index 0000000..ba50d13 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h" + +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer, criticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer = { + "MBSSessionSetupOrModFailureTransfer", + "MBSSessionSetupOrModFailureTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h new file mode 100644 index 0000000..0700e25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModFailureTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupOrModFailureTransfer_H_ +#define _ASN_NGAP_MBSSessionSetupOrModFailureTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionSetupOrModFailureTransfer */ +typedef struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_CriticalityDiagnostics *criticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModFailureTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupOrModFailureTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.c new file mode 100644 index 0000000..b99b1e5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h" + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransfer), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_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_ASN_NGAP_MBSSessionSetupOrModRequestTransfer = { + "MBSSessionSetupOrModRequestTransfer", + "MBSSessionSetupOrModRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h new file mode 100644 index 0000000..70f2564 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModRequestTransfer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupOrModRequestTransfer_H_ +#define _ASN_NGAP_MBSSessionSetupOrModRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MBSSessionSetupOrModRequestTransfer */ +typedef struct ASN_NGAP_MBSSessionSetupOrModRequestTransfer { + ASN_NGAP_ProtocolIE_Container_123P0_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupOrModRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.c new file mode 100644 index 0000000..8eb94d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h" + +#include "ASN_NGAP_MBS-SessionTNLInfoNGRAN.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer, mBS_SessionTNLInfoNGRAN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionTNLInfoNGRAN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionTNLInfoNGRAN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer = { + "MBSSessionSetupOrModResponseTransfer", + "MBSSessionSetupOrModResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h new file mode 100644 index 0000000..7fdc146 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupOrModResponseTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupOrModResponseTransfer_H_ +#define _ASN_NGAP_MBSSessionSetupOrModResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBS_SessionTNLInfoNGRAN; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionSetupOrModResponseTransfer */ +typedef struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer { + struct ASN_NGAP_MBS_SessionTNLInfoNGRAN *mBS_SessionTNLInfoNGRAN; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupOrModResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.c new file mode 100644 index 0000000..65e3aa4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupRequestItem.h" + +#include "ASN_NGAP_AssociatedMBSQosFlowSetupRequestList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem, associatedMBSQosFlowSetupRequestList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedMBSQosFlowSetupRequestList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedMBSQosFlowSetupRequestList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupRequestItem), + offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem = { + "MBSSessionSetupRequestItem", + "MBSSessionSetupRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.h new file mode 100644 index 0000000..e904a8b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupRequestItem_H_ +#define _ASN_NGAP_MBSSessionSetupRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionSetupRequestItem */ +typedef struct ASN_NGAP_MBSSessionSetupRequestItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestList *associatedMBSQosFlowSetupRequestList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.c new file mode 100644 index 0000000..d672f9a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupRequestList.h" + +#include "ASN_NGAP_MBSSessionSetupRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetupRequestList_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_ASN_NGAP_MBSSessionSetupRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestList_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupRequestList), + offsetof(struct ASN_NGAP_MBSSessionSetupRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestList = { + "MBSSessionSetupRequestList", + "MBSSessionSetupRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionSetupRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBSSessionSetupRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.h new file mode 100644 index 0000000..837ba16 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupRequestList_H_ +#define _ASN_NGAP_MBSSessionSetupRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionSetupRequestItem; + +/* ASN_NGAP_MBSSessionSetupRequestList */ +typedef struct ASN_NGAP_MBSSessionSetupRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetupRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.c new file mode 100644 index 0000000..b9e00fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupResponseItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupResponseItem), + offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem = { + "MBSSessionSetupResponseItem", + "MBSSessionSetupResponseItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.h new file mode 100644 index 0000000..7849ce9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupResponseItem_H_ +#define _ASN_NGAP_MBSSessionSetupResponseItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionSetupResponseItem */ +typedef struct ASN_NGAP_MBSSessionSetupResponseItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupResponseItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupResponseItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.c new file mode 100644 index 0000000..f09e392 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetupResponseList.h" + +#include "ASN_NGAP_MBSSessionSetupResponseItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetupResponseList_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_ASN_NGAP_MBSSessionSetupResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseList_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetupResponseList), + offsetof(struct ASN_NGAP_MBSSessionSetupResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseList = { + "MBSSessionSetupResponseList", + "MBSSessionSetupResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionSetupResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupResponseList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBSSessionSetupResponseList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.h new file mode 100644 index 0000000..5c4ef69 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetupResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetupResponseList_H_ +#define _ASN_NGAP_MBSSessionSetupResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionSetupResponseItem; + +/* ASN_NGAP_MBSSessionSetupResponseList */ +typedef struct ASN_NGAP_MBSSessionSetupResponseList { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupResponseItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetupResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetupResponseList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.c new file mode 100644 index 0000000..1b87c9a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetuporModifyRequestItem.h" + +#include "ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, mBS_AreaSessionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaSessionID" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, associatedMBSQosFlowSetuporModifyRequestList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedMBSQosFlowSetuporModifyRequestList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, mBS_QosFlowToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-QosFlowToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mBS-AreaSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedMBSQosFlowSetuporModifyRequestList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mBS-QosFlowToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem), + offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem = { + "MBSSessionSetuporModifyRequestItem", + "MBSSessionSetuporModifyRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.h new file mode 100644 index 0000000..5a1160d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestItem.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetuporModifyRequestItem_H_ +#define _ASN_NGAP_MBSSessionSetuporModifyRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionSetuporModifyRequestItem */ +typedef struct ASN_NGAP_MBSSessionSetuporModifyRequestItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t *mBS_AreaSessionID; /* OPTIONAL */ + struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestList *associatedMBSQosFlowSetuporModifyRequestList; /* OPTIONAL */ + struct ASN_NGAP_QosFlowListWithCause *mBS_QosFlowToReleaseList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetuporModifyRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetuporModifyRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.c b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.c new file mode 100644 index 0000000..a741a61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionSetuporModifyRequestList.h" + +#include "ASN_NGAP_MBSSessionSetuporModifyRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetuporModifyRequestList_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_ASN_NGAP_MBSSessionSetuporModifyRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestList_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionSetuporModifyRequestList), + offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList = { + "MBSSessionSetuporModifyRequestList", + "MBSSessionSetuporModifyRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionSetuporModifyRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.h b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.h new file mode 100644 index 0000000..56c7b4a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionSetuporModifyRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionSetuporModifyRequestList_H_ +#define _ASN_NGAP_MBSSessionSetuporModifyRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionSetuporModifyRequestItem; + +/* ASN_NGAP_MBSSessionSetuporModifyRequestList */ +typedef struct ASN_NGAP_MBSSessionSetuporModifyRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetuporModifyRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionSetuporModifyRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionSetuporModifyRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionStatus.c b/src/asn/ngap/ASN_NGAP_MBSSessionStatus.c new file mode 100644 index 0000000..16ec2c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionStatus.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionStatus.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionStatus_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_ASN_NGAP_MBSSessionStatus_value2enum_1[] = { + { 0, 9, "activated" }, + { 1, 11, "deactivated" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MBSSessionStatus_enum2value_1[] = { + 0, /* activated(0) */ + 1 /* deactivated(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MBSSessionStatus_specs_1 = { + asn_MAP_ASN_NGAP_MBSSessionStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MBSSessionStatus_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_ASN_NGAP_MBSSessionStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionStatus = { + "MBSSessionStatus", + "MBSSessionStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionStatus_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionStatus_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MBSSessionStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionStatus.h b/src/asn/ngap/ASN_NGAP_MBSSessionStatus.h new file mode 100644 index 0000000..a241b46 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionStatus.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionStatus_H_ +#define _ASN_NGAP_MBSSessionStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MBSSessionStatus { + ASN_NGAP_MBSSessionStatus_activated = 0, + ASN_NGAP_MBSSessionStatus_deactivated = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MBSSessionStatus; + +/* ASN_NGAP_MBSSessionStatus */ +typedef long ASN_NGAP_MBSSessionStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionStatus; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MBSSessionStatus_specs_1; +asn_struct_free_f ASN_NGAP_MBSSessionStatus_free; +asn_struct_print_f ASN_NGAP_MBSSessionStatus_print; +asn_constr_check_f ASN_NGAP_MBSSessionStatus_constraint; +ber_type_decoder_f ASN_NGAP_MBSSessionStatus_decode_ber; +der_type_encoder_f ASN_NGAP_MBSSessionStatus_encode_der; +xer_type_decoder_f ASN_NGAP_MBSSessionStatus_decode_xer; +xer_type_encoder_f ASN_NGAP_MBSSessionStatus_encode_xer; +per_type_decoder_f ASN_NGAP_MBSSessionStatus_decode_uper; +per_type_encoder_f ASN_NGAP_MBSSessionStatus_encode_uper; +per_type_decoder_f ASN_NGAP_MBSSessionStatus_decode_aper; +per_type_encoder_f ASN_NGAP_MBSSessionStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionStatus_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.c b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.c new file mode 100644 index 0000000..2e6c757 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionToReleaseItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionToReleaseItem), + offsetof(struct ASN_NGAP_MBSSessionToReleaseItem, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem = { + "MBSSessionToReleaseItem", + "MBSSessionToReleaseItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.h b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.h new file mode 100644 index 0000000..40b91f2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionToReleaseItem_H_ +#define _ASN_NGAP_MBSSessionToReleaseItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MBSSessionToReleaseItem */ +typedef struct ASN_NGAP_MBSSessionToReleaseItem { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionToReleaseItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionToReleaseItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.c b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.c new file mode 100644 index 0000000..f04e44f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MBSSessionToReleaseList.h" + +#include "ASN_NGAP_MBSSessionToReleaseItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionToReleaseList_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_ASN_NGAP_MBSSessionToReleaseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionToReleaseItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseList_specs_1 = { + sizeof(struct ASN_NGAP_MBSSessionToReleaseList), + offsetof(struct ASN_NGAP_MBSSessionToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseList = { + "MBSSessionToReleaseList", + "MBSSessionToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MBSSessionToReleaseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MBSSessionToReleaseList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MBSSessionToReleaseList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.h b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.h new file mode 100644 index 0000000..576bbd0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MBSSessionToReleaseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MBSSessionToReleaseList_H_ +#define _ASN_NGAP_MBSSessionToReleaseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionToReleaseItem; + +/* ASN_NGAP_MBSSessionToReleaseList */ +typedef struct ASN_NGAP_MBSSessionToReleaseList { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionToReleaseItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionToReleaseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionToReleaseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MBSSessionToReleaseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MBSSessionToReleaseList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Activation.c b/src/asn/ngap/ASN_NGAP_MDT-Activation.c new file mode 100644 index 0000000..b8ad1eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Activation.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Activation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MDT_Activation_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_ASN_NGAP_MDT_Activation_value2enum_1[] = { + { 0, 18, "immediate-MDT-only" }, + { 1, 15, "logged-MDT-only" }, + { 2, 23, "immediate-MDT-and-Trace" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MDT_Activation_enum2value_1[] = { + 2, /* immediate-MDT-and-Trace(2) */ + 0, /* immediate-MDT-only(0) */ + 1 /* logged-MDT-only(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MDT_Activation_specs_1 = { + asn_MAP_ASN_NGAP_MDT_Activation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MDT_Activation_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Activation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Activation = { + "MDT-Activation", + "MDT-Activation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MDT_Activation_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Activation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Activation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Activation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Activation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Activation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MDT_Activation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MDT_Activation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Activation.h b/src/asn/ngap/ASN_NGAP_MDT-Activation.h new file mode 100644 index 0000000..19ab4d2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Activation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Activation_H_ +#define _ASN_NGAP_MDT_Activation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MDT_Activation { + ASN_NGAP_MDT_Activation_immediate_MDT_only = 0, + ASN_NGAP_MDT_Activation_logged_MDT_only = 1, + ASN_NGAP_MDT_Activation_immediate_MDT_and_Trace = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MDT_Activation; + +/* ASN_NGAP_MDT-Activation */ +typedef long ASN_NGAP_MDT_Activation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDT_Activation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Activation; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MDT_Activation_specs_1; +asn_struct_free_f ASN_NGAP_MDT_Activation_free; +asn_struct_print_f ASN_NGAP_MDT_Activation_print; +asn_constr_check_f ASN_NGAP_MDT_Activation_constraint; +ber_type_decoder_f ASN_NGAP_MDT_Activation_decode_ber; +der_type_encoder_f ASN_NGAP_MDT_Activation_encode_der; +xer_type_decoder_f ASN_NGAP_MDT_Activation_decode_xer; +xer_type_encoder_f ASN_NGAP_MDT_Activation_encode_xer; +per_type_decoder_f ASN_NGAP_MDT_Activation_decode_uper; +per_type_encoder_f ASN_NGAP_MDT_Activation_encode_uper; +per_type_decoder_f ASN_NGAP_MDT_Activation_decode_aper; +per_type_encoder_f ASN_NGAP_MDT_Activation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Activation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.c b/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.c new file mode 100644 index 0000000..1f57f6e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-AlignmentInfo.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MDT_AlignmentInfo_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_ASN_NGAP_MDT_AlignmentInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_AlignmentInfo, choice.s_basedMDT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRANTraceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-basedMDT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MDT_AlignmentInfo, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_AlignmentInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-basedMDT */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MDT_AlignmentInfo_specs_1 = { + sizeof(struct ASN_NGAP_MDT_AlignmentInfo), + offsetof(struct ASN_NGAP_MDT_AlignmentInfo, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_AlignmentInfo, present), + sizeof(((struct ASN_NGAP_MDT_AlignmentInfo *)0)->present), + asn_MAP_ASN_NGAP_MDT_AlignmentInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_AlignmentInfo = { + "MDT-AlignmentInfo", + "MDT-AlignmentInfo", + &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_ASN_NGAP_MDT_AlignmentInfo_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MDT_AlignmentInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_AlignmentInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.h b/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.h new file mode 100644 index 0000000..852c3be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-AlignmentInfo.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_AlignmentInfo_H_ +#define _ASN_NGAP_MDT_AlignmentInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRANTraceID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MDT_AlignmentInfo_PR { + ASN_NGAP_MDT_AlignmentInfo_PR_NOTHING, /* No components present */ + ASN_NGAP_MDT_AlignmentInfo_PR_s_basedMDT, + ASN_NGAP_MDT_AlignmentInfo_PR_choice_Extensions +} ASN_NGAP_MDT_AlignmentInfo_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MDT-AlignmentInfo */ +typedef struct ASN_NGAP_MDT_AlignmentInfo { + ASN_NGAP_MDT_AlignmentInfo_PR present; + union ASN_NGAP_MDT_AlignmentInfo_u { + ASN_NGAP_NGRANTraceID_t s_basedMDT; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_AlignmentInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_AlignmentInfo; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MDT_AlignmentInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_AlignmentInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDT_AlignmentInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_AlignmentInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.c b/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.c new file mode 100644 index 0000000..690984d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Configuration-EUTRA.h" + +#include "ASN_NGAP_MDTPLMNList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, mdt_Activation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Activation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mdt-Activation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, areaScopeOfMDT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScopeOfMDT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, mDTMode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDTModeEutra, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mDTMode" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, signallingBasedMDTPLMNList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDTPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signallingBasedMDTPLMNList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_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 }, /* mDTMode */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* signallingBasedMDTPLMNList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_specs_1 = { + sizeof(struct ASN_NGAP_MDT_Configuration_EUTRA), + offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA = { + "MDT-Configuration-EUTRA", + "MDT-Configuration-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.h b/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.h new file mode 100644 index 0000000..656c701 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration-EUTRA.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Configuration_EUTRA_H_ +#define _ASN_NGAP_MDT_Configuration_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MDT-Activation.h" +#include "ASN_NGAP_AreaScopeOfMDT-EUTRA.h" +#include "ASN_NGAP_MDTModeEutra.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MDTPLMNList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MDT-Configuration-EUTRA */ +typedef struct ASN_NGAP_MDT_Configuration_EUTRA { + ASN_NGAP_MDT_Activation_t mdt_Activation; + ASN_NGAP_AreaScopeOfMDT_EUTRA_t areaScopeOfMDT; + ASN_NGAP_MDTModeEutra_t mDTMode; + struct ASN_NGAP_MDTPLMNList *signallingBasedMDTPLMNList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Configuration_EUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.c b/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.c new file mode 100644 index 0000000..15d33ae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Configuration-NR.h" + +#include "ASN_NGAP_MDTPLMNList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_NR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR, mdt_Activation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Activation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mdt-Activation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR, areaScopeOfMDT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScopeOfMDT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR, mDTModeNr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDTModeNr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mDTModeNr" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MDT_Configuration_NR, signallingBasedMDTPLMNList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDTPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "signallingBasedMDTPLMNList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MDT_Configuration_NR, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MDT_Configuration_NR_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_NR_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 }, /* mDTModeNr */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* signallingBasedMDTPLMNList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_NR_specs_1 = { + sizeof(struct ASN_NGAP_MDT_Configuration_NR), + offsetof(struct ASN_NGAP_MDT_Configuration_NR, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_NR_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MDT_Configuration_NR_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_NR = { + "MDT-Configuration-NR", + "MDT-Configuration-NR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_NR_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.h b/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.h new file mode 100644 index 0000000..71db800 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration-NR.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Configuration_NR_H_ +#define _ASN_NGAP_MDT_Configuration_NR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MDT-Activation.h" +#include "ASN_NGAP_AreaScopeOfMDT-NR.h" +#include "ASN_NGAP_MDTModeNr.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MDTPLMNList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MDT-Configuration-NR */ +typedef struct ASN_NGAP_MDT_Configuration_NR { + ASN_NGAP_MDT_Activation_t mdt_Activation; + ASN_NGAP_AreaScopeOfMDT_NR_t areaScopeOfMDT; + ASN_NGAP_MDTModeNr_t mDTModeNr; + struct ASN_NGAP_MDTPLMNList *signallingBasedMDTPLMNList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_NR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_NR_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Configuration_NR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration.c b/src/asn/ngap/ASN_NGAP_MDT-Configuration.c new file mode 100644 index 0000000..b1a757f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Configuration.h" + +#include "ASN_NGAP_MDT-Configuration-NR.h" +#include "ASN_NGAP_MDT-Configuration-EUTRA.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MDT_Configuration, mdt_Config_NR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Configuration_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mdt-Config-NR" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MDT_Configuration, mdt_Config_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mdt-Config-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MDT_Configuration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MDT_Configuration_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mdt-Config-NR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mdt-Config-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_specs_1 = { + sizeof(struct ASN_NGAP_MDT_Configuration), + offsetof(struct ASN_NGAP_MDT_Configuration, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MDT_Configuration_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration = { + "MDT-Configuration", + "MDT-Configuration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Configuration.h b/src/asn/ngap/ASN_NGAP_MDT-Configuration.h new file mode 100644 index 0000000..8150cf9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Configuration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Configuration_H_ +#define _ASN_NGAP_MDT_Configuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MDT_Configuration_NR; +struct ASN_NGAP_MDT_Configuration_EUTRA; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MDT-Configuration */ +typedef struct ASN_NGAP_MDT_Configuration { + struct ASN_NGAP_MDT_Configuration_NR *mdt_Config_NR; /* OPTIONAL */ + struct ASN_NGAP_MDT_Configuration_EUTRA *mdt_Config_EUTRA; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Configuration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Location-Info.c b/src/asn/ngap/ASN_NGAP_MDT-Location-Info.c new file mode 100644 index 0000000..16ef1a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Location-Info.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Location-Info.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Location_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Location_Info, mDT_Location_Information), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_Location_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mDT-Location-Information" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MDT_Location_Info, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MDT_Location_Info_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Location_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mDT-Location-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Location_Info_specs_1 = { + sizeof(struct ASN_NGAP_MDT_Location_Info), + offsetof(struct ASN_NGAP_MDT_Location_Info, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Location_Info_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MDT_Location_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Info = { + "MDT-Location-Info", + "MDT-Location-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Location_Info_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Location_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Location-Info.h b/src/asn/ngap/ASN_NGAP_MDT-Location-Info.h new file mode 100644 index 0000000..1d229e6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Location-Info.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Location_Info_H_ +#define _ASN_NGAP_MDT_Location_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MDT-Location-Information.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MDT-Location-Info */ +typedef struct ASN_NGAP_MDT_Location_Info { + ASN_NGAP_MDT_Location_Information_t mDT_Location_Information; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Location_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Location_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Location_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Location_Info_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDT-Location-Information.c b/src/asn/ngap/ASN_NGAP_MDT-Location-Information.c new file mode 100644 index 0000000..0deead2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Location-Information.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDT-Location-Information.h" + +int +ASN_NGAP_MDT_Location_Information_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_ASN_NGAP_MDT_Location_Information_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_ASN_NGAP_MDT_Location_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Information = { + "MDT-Location-Information", + "MDT-Location-Information", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Information_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MDT_Location_Information_constr_1, ASN_NGAP_MDT_Location_Information_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDT-Location-Information.h b/src/asn/ngap/ASN_NGAP_MDT-Location-Information.h new file mode 100644 index 0000000..4706139 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDT-Location-Information.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDT_Location_Information_H_ +#define _ASN_NGAP_MDT_Location_Information_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MDT-Location-Information */ +typedef BIT_STRING_t ASN_NGAP_MDT_Location_Information_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDT_Location_Information_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Information; +asn_struct_free_f ASN_NGAP_MDT_Location_Information_free; +asn_struct_print_f ASN_NGAP_MDT_Location_Information_print; +asn_constr_check_f ASN_NGAP_MDT_Location_Information_constraint; +ber_type_decoder_f ASN_NGAP_MDT_Location_Information_decode_ber; +der_type_encoder_f ASN_NGAP_MDT_Location_Information_encode_der; +xer_type_decoder_f ASN_NGAP_MDT_Location_Information_decode_xer; +xer_type_encoder_f ASN_NGAP_MDT_Location_Information_encode_xer; +per_type_decoder_f ASN_NGAP_MDT_Location_Information_decode_uper; +per_type_encoder_f ASN_NGAP_MDT_Location_Information_encode_uper; +per_type_decoder_f ASN_NGAP_MDT_Location_Information_decode_aper; +per_type_encoder_f ASN_NGAP_MDT_Location_Information_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDT_Location_Information_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDTModeEutra.c b/src/asn/ngap/ASN_NGAP_MDTModeEutra.c new file mode 100644 index 0000000..b64478c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTModeEutra.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDTModeEutra.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDTModeEutra_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeEutra = { + "MDTModeEutra", + "MDTModeEutra", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_MDTModeEutra_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDTModeEutra_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTModeEutra_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDTModeEutra_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDTModeEutra_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTModeEutra_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDTModeEutra.h b/src/asn/ngap/ASN_NGAP_MDTModeEutra.h new file mode 100644 index 0000000..f7bcacd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTModeEutra.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDTModeEutra_H_ +#define _ASN_NGAP_MDTModeEutra_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MDTModeEutra */ +typedef OCTET_STRING_t ASN_NGAP_MDTModeEutra_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeEutra; +asn_struct_free_f ASN_NGAP_MDTModeEutra_free; +asn_struct_print_f ASN_NGAP_MDTModeEutra_print; +asn_constr_check_f ASN_NGAP_MDTModeEutra_constraint; +ber_type_decoder_f ASN_NGAP_MDTModeEutra_decode_ber; +der_type_encoder_f ASN_NGAP_MDTModeEutra_encode_der; +xer_type_decoder_f ASN_NGAP_MDTModeEutra_decode_xer; +xer_type_encoder_f ASN_NGAP_MDTModeEutra_encode_xer; +per_type_decoder_f ASN_NGAP_MDTModeEutra_decode_uper; +per_type_encoder_f ASN_NGAP_MDTModeEutra_encode_uper; +per_type_decoder_f ASN_NGAP_MDTModeEutra_decode_aper; +per_type_encoder_f ASN_NGAP_MDTModeEutra_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDTModeEutra_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDTModeNr.c b/src/asn/ngap/ASN_NGAP_MDTModeNr.c new file mode 100644 index 0000000..2f9951d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTModeNr.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDTModeNr.h" + +#include "ASN_NGAP_ImmediateMDTNr.h" +#include "ASN_NGAP_LoggedMDTNr.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MDTModeNr_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTModeNr_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MDTModeNr, choice.immediateMDTNr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ImmediateMDTNr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "immediateMDTNr" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MDTModeNr, choice.loggedMDTNr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LoggedMDTNr, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "loggedMDTNr" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MDTModeNr, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDTModeNr_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* immediateMDTNr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* loggedMDTNr */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MDTModeNr_specs_1 = { + sizeof(struct ASN_NGAP_MDTModeNr), + offsetof(struct ASN_NGAP_MDTModeNr, _asn_ctx), + offsetof(struct ASN_NGAP_MDTModeNr, present), + sizeof(((struct ASN_NGAP_MDTModeNr *)0)->present), + asn_MAP_ASN_NGAP_MDTModeNr_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeNr = { + "MDTModeNr", + "MDTModeNr", + &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_ASN_NGAP_MDTModeNr_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MDTModeNr_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDTModeNr_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDTModeNr.h b/src/asn/ngap/ASN_NGAP_MDTModeNr.h new file mode 100644 index 0000000..3758a69 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTModeNr.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDTModeNr_H_ +#define _ASN_NGAP_MDTModeNr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MDTModeNr_PR { + ASN_NGAP_MDTModeNr_PR_NOTHING, /* No components present */ + ASN_NGAP_MDTModeNr_PR_immediateMDTNr, + ASN_NGAP_MDTModeNr_PR_loggedMDTNr, + ASN_NGAP_MDTModeNr_PR_choice_Extensions +} ASN_NGAP_MDTModeNr_PR; + +/* Forward declarations */ +struct ASN_NGAP_ImmediateMDTNr; +struct ASN_NGAP_LoggedMDTNr; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MDTModeNr */ +typedef struct ASN_NGAP_MDTModeNr { + ASN_NGAP_MDTModeNr_PR present; + union ASN_NGAP_MDTModeNr_u { + struct ASN_NGAP_ImmediateMDTNr *immediateMDTNr; + struct ASN_NGAP_LoggedMDTNr *loggedMDTNr; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDTModeNr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeNr; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MDTModeNr_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTModeNr_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDTModeNr_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDTModeNr_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDTPLMNList.c b/src/asn/ngap/ASN_NGAP_MDTPLMNList.c new file mode 100644 index 0000000..5fbca8b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTPLMNList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDTPLMNList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_MDTPLMNList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDTPLMNList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MDTPLMNList_specs_1 = { + sizeof(struct ASN_NGAP_MDTPLMNList), + offsetof(struct ASN_NGAP_MDTPLMNList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTPLMNList = { + "MDTPLMNList", + "MDTPLMNList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MDTPLMNList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDTPLMNList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTPLMNList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDTPLMNList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDTPLMNList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTPLMNList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MDTPLMNList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MDTPLMNList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MDTPLMNList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDTPLMNList.h b/src/asn/ngap/ASN_NGAP_MDTPLMNList.h new file mode 100644 index 0000000..3cbcda4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTPLMNList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDTPLMNList_H_ +#define _ASN_NGAP_MDTPLMNList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MDTPLMNList */ +typedef struct ASN_NGAP_MDTPLMNList { + A_SEQUENCE_OF(ASN_NGAP_PLMNIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDTPLMNList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTPLMNList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MDTPLMNList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTPLMNList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDTPLMNList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDTPLMNList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.c b/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.c new file mode 100644 index 0000000..32ad073 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MDTPLMNModificationList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_MDTPLMNModificationList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTPLMNModificationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MDTPLMNModificationList_specs_1 = { + sizeof(struct ASN_NGAP_MDTPLMNModificationList), + offsetof(struct ASN_NGAP_MDTPLMNModificationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTPLMNModificationList = { + "MDTPLMNModificationList", + "MDTPLMNModificationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MDTPLMNModificationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MDTPLMNModificationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MDTPLMNModificationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MDTPLMNModificationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.h b/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.h new file mode 100644 index 0000000..7981639 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MDTPLMNModificationList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MDTPLMNModificationList_H_ +#define _ASN_NGAP_MDTPLMNModificationList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MDTPLMNModificationList */ +typedef struct ASN_NGAP_MDTPLMNModificationList { + A_SEQUENCE_OF(ASN_NGAP_PLMNIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDTPLMNModificationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTPLMNModificationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MDTPLMNModificationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTPLMNModificationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MDTPLMNModificationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MDTPLMNModificationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MICOModeIndication.c b/src/asn/ngap/ASN_NGAP_MICOModeIndication.c new file mode 100644 index 0000000..a47f94d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MICOModeIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MICOModeIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MICOModeIndication_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_ASN_NGAP_MICOModeIndication_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MICOModeIndication_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MICOModeIndication_specs_1 = { + asn_MAP_ASN_NGAP_MICOModeIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MICOModeIndication_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_ASN_NGAP_MICOModeIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MICOModeIndication = { + "MICOModeIndication", + "MICOModeIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MICOModeIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_MICOModeIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MICOModeIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MICOModeIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MICOModeIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MICOModeIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MICOModeIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MICOModeIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MICOModeIndication.h b/src/asn/ngap/ASN_NGAP_MICOModeIndication.h new file mode 100644 index 0000000..b345424 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MICOModeIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MICOModeIndication_H_ +#define _ASN_NGAP_MICOModeIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MICOModeIndication { + ASN_NGAP_MICOModeIndication_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MICOModeIndication; + +/* ASN_NGAP_MICOModeIndication */ +typedef long ASN_NGAP_MICOModeIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MICOModeIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MICOModeIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MICOModeIndication_specs_1; +asn_struct_free_f ASN_NGAP_MICOModeIndication_free; +asn_struct_print_f ASN_NGAP_MICOModeIndication_print; +asn_constr_check_f ASN_NGAP_MICOModeIndication_constraint; +ber_type_decoder_f ASN_NGAP_MICOModeIndication_decode_ber; +der_type_encoder_f ASN_NGAP_MICOModeIndication_encode_der; +xer_type_decoder_f ASN_NGAP_MICOModeIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_MICOModeIndication_encode_xer; +per_type_decoder_f ASN_NGAP_MICOModeIndication_decode_uper; +per_type_encoder_f ASN_NGAP_MICOModeIndication_encode_uper; +per_type_decoder_f ASN_NGAP_MICOModeIndication_decode_aper; +per_type_encoder_f ASN_NGAP_MICOModeIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MICOModeIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MRB-ID.c b/src/asn/ngap/ASN_NGAP_MRB-ID.c new file mode 100644 index 0000000..63c819d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MRB-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MRB-ID.h" + +int +ASN_NGAP_MRB_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 <= 512)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_MRB_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 9, 9, 1, 512 } /* (1..512,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MRB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ID = { + "MRB-ID", + "MRB-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_MRB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_MRB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MRB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MRB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MRB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MRB_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MRB_ID_constr_1, ASN_NGAP_MRB_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MRB-ID.h b/src/asn/ngap/ASN_NGAP_MRB-ID.h new file mode 100644 index 0000000..76ba1f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MRB-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MRB_ID_H_ +#define _ASN_NGAP_MRB_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MRB-ID */ +typedef long ASN_NGAP_MRB_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MRB_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ID; +asn_struct_free_f ASN_NGAP_MRB_ID_free; +asn_struct_print_f ASN_NGAP_MRB_ID_print; +asn_constr_check_f ASN_NGAP_MRB_ID_constraint; +ber_type_decoder_f ASN_NGAP_MRB_ID_decode_ber; +der_type_encoder_f ASN_NGAP_MRB_ID_encode_der; +xer_type_decoder_f ASN_NGAP_MRB_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_MRB_ID_encode_xer; +per_type_decoder_f ASN_NGAP_MRB_ID_decode_uper; +per_type_encoder_f ASN_NGAP_MRB_ID_encode_uper; +per_type_decoder_f ASN_NGAP_MRB_ID_decode_aper; +per_type_encoder_f ASN_NGAP_MRB_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MRB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.c b/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.c new file mode 100644 index 0000000..e8a1a87 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MRB-ProgressInformation.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_pDCP_SN_Length12_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 int +memb_ASN_NGAP_pDCP_SN_Length18_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 <= 262143)) { + /* Constraint 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_ASN_NGAP_pDCP_SN_Length12_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDCP_SN_Length18_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 18, -1, 0, 262143 } /* (0..262143) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_MRB_ProgressInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MRB_ProgressInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation, choice.pDCP_SN_Length12), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDCP_SN_Length12_constr_2, memb_ASN_NGAP_pDCP_SN_Length12_constraint_1 }, + 0, 0, /* No default value */ + "pDCP-SN-Length12" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation, choice.pDCP_SN_Length18), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDCP_SN_Length18_constr_3, memb_ASN_NGAP_pDCP_SN_Length18_constraint_1 }, + 0, 0, /* No default value */ + "pDCP-SN-Length18" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MRB_ProgressInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDCP-SN-Length12 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDCP-SN-Length18 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MRB_ProgressInformation_specs_1 = { + sizeof(struct ASN_NGAP_MRB_ProgressInformation), + offsetof(struct ASN_NGAP_MRB_ProgressInformation, _asn_ctx), + offsetof(struct ASN_NGAP_MRB_ProgressInformation, present), + sizeof(((struct ASN_NGAP_MRB_ProgressInformation *)0)->present), + asn_MAP_ASN_NGAP_MRB_ProgressInformation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ProgressInformation = { + "MRB-ProgressInformation", + "MRB-ProgressInformation", + &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_ASN_NGAP_MRB_ProgressInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MRB_ProgressInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MRB_ProgressInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.h b/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.h new file mode 100644 index 0000000..f623c8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MRB-ProgressInformation.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MRB_ProgressInformation_H_ +#define _ASN_NGAP_MRB_ProgressInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MRB_ProgressInformation_PR { + ASN_NGAP_MRB_ProgressInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_MRB_ProgressInformation_PR_pDCP_SN_Length12, + ASN_NGAP_MRB_ProgressInformation_PR_pDCP_SN_Length18, + ASN_NGAP_MRB_ProgressInformation_PR_choice_Extensions +} ASN_NGAP_MRB_ProgressInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MRB-ProgressInformation */ +typedef struct ASN_NGAP_MRB_ProgressInformation { + ASN_NGAP_MRB_ProgressInformation_PR present; + union ASN_NGAP_MRB_ProgressInformation_u { + long pDCP_SN_Length12; + long pDCP_SN_Length18; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MRB_ProgressInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ProgressInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MRB_ProgressInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MRB_ProgressInformation_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MRB_ProgressInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MRB_ProgressInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MaskedIMEISV.c b/src/asn/ngap/ASN_NGAP_MaskedIMEISV.c new file mode 100644 index 0000000..bdc74a0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaskedIMEISV.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MaskedIMEISV.h" + +int +ASN_NGAP_MaskedIMEISV_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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MaskedIMEISV_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_ASN_NGAP_MaskedIMEISV_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaskedIMEISV = { + "MaskedIMEISV", + "MaskedIMEISV", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1, + sizeof(asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaskedIMEISV_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MaskedIMEISV_constr_1, ASN_NGAP_MaskedIMEISV_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MaskedIMEISV.h b/src/asn/ngap/ASN_NGAP_MaskedIMEISV.h new file mode 100644 index 0000000..5f3585f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaskedIMEISV.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MaskedIMEISV_H_ +#define _ASN_NGAP_MaskedIMEISV_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MaskedIMEISV */ +typedef BIT_STRING_t ASN_NGAP_MaskedIMEISV_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MaskedIMEISV_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaskedIMEISV; +asn_struct_free_f ASN_NGAP_MaskedIMEISV_free; +asn_struct_print_f ASN_NGAP_MaskedIMEISV_print; +asn_constr_check_f ASN_NGAP_MaskedIMEISV_constraint; +ber_type_decoder_f ASN_NGAP_MaskedIMEISV_decode_ber; +der_type_encoder_f ASN_NGAP_MaskedIMEISV_encode_der; +xer_type_decoder_f ASN_NGAP_MaskedIMEISV_decode_xer; +xer_type_encoder_f ASN_NGAP_MaskedIMEISV_encode_xer; +per_type_decoder_f ASN_NGAP_MaskedIMEISV_decode_uper; +per_type_encoder_f ASN_NGAP_MaskedIMEISV_encode_uper; +per_type_decoder_f ASN_NGAP_MaskedIMEISV_decode_aper; +per_type_encoder_f ASN_NGAP_MaskedIMEISV_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MaskedIMEISV_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c b/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c new file mode 100644 index 0000000..6126230 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MaxNrofRS-IndexesToReport.h" + +int +ASN_NGAP_MaxNrofRS_IndexesToReport_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MaxNrofRS_IndexesToReport_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 1, 64 } /* (1..64,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport = { + "MaxNrofRS-IndexesToReport", + "MaxNrofRS-IndexesToReport", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MaxNrofRS_IndexesToReport_constr_1, ASN_NGAP_MaxNrofRS_IndexesToReport_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h b/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h new file mode 100644 index 0000000..195c837 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaxNrofRS-IndexesToReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MaxNrofRS_IndexesToReport_H_ +#define _ASN_NGAP_MaxNrofRS_IndexesToReport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MaxNrofRS-IndexesToReport */ +typedef long ASN_NGAP_MaxNrofRS_IndexesToReport_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MaxNrofRS_IndexesToReport_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaxNrofRS_IndexesToReport; +asn_struct_free_f ASN_NGAP_MaxNrofRS_IndexesToReport_free; +asn_struct_print_f ASN_NGAP_MaxNrofRS_IndexesToReport_print; +asn_constr_check_f ASN_NGAP_MaxNrofRS_IndexesToReport_constraint; +ber_type_decoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_decode_ber; +der_type_encoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_encode_der; +xer_type_decoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_decode_xer; +xer_type_encoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_encode_xer; +per_type_decoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_decode_uper; +per_type_encoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_encode_uper; +per_type_decoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_decode_aper; +per_type_encoder_f ASN_NGAP_MaxNrofRS_IndexesToReport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MaxNrofRS_IndexesToReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.c b/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.c new file mode 100644 index 0000000..53b7610 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MaximumDataBurstVolume.h" + +int +ASN_NGAP_MaximumDataBurstVolume_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 <= 2000000)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_MaximumDataBurstVolume_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 21, -1, 0, 2000000 } /* (0..2000000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaximumDataBurstVolume = { + "MaximumDataBurstVolume", + "MaximumDataBurstVolume", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1, + sizeof(asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaximumDataBurstVolume_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MaximumDataBurstVolume_constr_1, ASN_NGAP_MaximumDataBurstVolume_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.h b/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.h new file mode 100644 index 0000000..6603197 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaximumDataBurstVolume.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MaximumDataBurstVolume_H_ +#define _ASN_NGAP_MaximumDataBurstVolume_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MaximumDataBurstVolume */ +typedef long ASN_NGAP_MaximumDataBurstVolume_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MaximumDataBurstVolume_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaximumDataBurstVolume; +asn_struct_free_f ASN_NGAP_MaximumDataBurstVolume_free; +asn_struct_print_f ASN_NGAP_MaximumDataBurstVolume_print; +asn_constr_check_f ASN_NGAP_MaximumDataBurstVolume_constraint; +ber_type_decoder_f ASN_NGAP_MaximumDataBurstVolume_decode_ber; +der_type_encoder_f ASN_NGAP_MaximumDataBurstVolume_encode_der; +xer_type_decoder_f ASN_NGAP_MaximumDataBurstVolume_decode_xer; +xer_type_encoder_f ASN_NGAP_MaximumDataBurstVolume_encode_xer; +per_type_decoder_f ASN_NGAP_MaximumDataBurstVolume_decode_uper; +per_type_encoder_f ASN_NGAP_MaximumDataBurstVolume_encode_uper; +per_type_decoder_f ASN_NGAP_MaximumDataBurstVolume_decode_aper; +per_type_encoder_f ASN_NGAP_MaximumDataBurstVolume_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MaximumDataBurstVolume_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.c b/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.c new file mode 100644 index 0000000..1dc8641 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MaximumIntegrityProtectedDataRate.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MaximumIntegrityProtectedDataRate_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_ASN_NGAP_MaximumIntegrityProtectedDataRate_value2enum_1[] = { + { 0, 12, "bitrate64kbs" }, + { 1, 15, "maximum-UE-rate" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MaximumIntegrityProtectedDataRate_enum2value_1[] = { + 0, /* bitrate64kbs(0) */ + 1 /* maximum-UE-rate(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MaximumIntegrityProtectedDataRate_specs_1 = { + asn_MAP_ASN_NGAP_MaximumIntegrityProtectedDataRate_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MaximumIntegrityProtectedDataRate_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_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate = { + "MaximumIntegrityProtectedDataRate", + "MaximumIntegrityProtectedDataRate", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MaximumIntegrityProtectedDataRate_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MaximumIntegrityProtectedDataRate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.h b/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.h new file mode 100644 index 0000000..f3a482e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MaximumIntegrityProtectedDataRate.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MaximumIntegrityProtectedDataRate_H_ +#define _ASN_NGAP_MaximumIntegrityProtectedDataRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MaximumIntegrityProtectedDataRate { + ASN_NGAP_MaximumIntegrityProtectedDataRate_bitrate64kbs = 0, + ASN_NGAP_MaximumIntegrityProtectedDataRate_maximum_UE_rate = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MaximumIntegrityProtectedDataRate; + +/* ASN_NGAP_MaximumIntegrityProtectedDataRate */ +typedef long ASN_NGAP_MaximumIntegrityProtectedDataRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MaximumIntegrityProtectedDataRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MaximumIntegrityProtectedDataRate_specs_1; +asn_struct_free_f ASN_NGAP_MaximumIntegrityProtectedDataRate_free; +asn_struct_print_f ASN_NGAP_MaximumIntegrityProtectedDataRate_print; +asn_constr_check_f ASN_NGAP_MaximumIntegrityProtectedDataRate_constraint; +ber_type_decoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_decode_ber; +der_type_encoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_encode_der; +xer_type_decoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_decode_xer; +xer_type_encoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_encode_xer; +per_type_decoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_decode_uper; +per_type_encoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_encode_uper; +per_type_decoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_decode_aper; +per_type_encoder_f ASN_NGAP_MaximumIntegrityProtectedDataRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MaximumIntegrityProtectedDataRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.c b/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.c new file mode 100644 index 0000000..e54c122 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MeasurementThresholdL1LoggedMDT.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MeasurementThresholdL1LoggedMDT_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT, choice.threshold_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Threshold_RSRP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshold-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT, choice.threshold_RSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Threshold_RSRQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshold-RSRQ" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MeasurementThresholdL1LoggedMDT_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_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_specs_1 = { + sizeof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT), + offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT, _asn_ctx), + offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT, present), + sizeof(((struct ASN_NGAP_MeasurementThresholdL1LoggedMDT *)0)->present), + asn_MAP_ASN_NGAP_MeasurementThresholdL1LoggedMDT_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT = { + "MeasurementThresholdL1LoggedMDT", + "MeasurementThresholdL1LoggedMDT", + &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_ASN_NGAP_MeasurementThresholdL1LoggedMDT_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.h b/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.h new file mode 100644 index 0000000..ea3b70f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MeasurementThresholdL1LoggedMDT.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MeasurementThresholdL1LoggedMDT_H_ +#define _ASN_NGAP_MeasurementThresholdL1LoggedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Threshold-RSRP.h" +#include "ASN_NGAP_Threshold-RSRQ.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR { + ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR_NOTHING, /* No components present */ + ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR_threshold_RSRP, + ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR_threshold_RSRQ, + ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR_choice_Extensions +} ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_MeasurementThresholdL1LoggedMDT */ +typedef struct ASN_NGAP_MeasurementThresholdL1LoggedMDT { + ASN_NGAP_MeasurementThresholdL1LoggedMDT_PR present; + union ASN_NGAP_MeasurementThresholdL1LoggedMDT_u { + ASN_NGAP_Threshold_RSRP_t threshold_RSRP; + ASN_NGAP_Threshold_RSRQ_t threshold_RSRQ; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MeasurementThresholdL1LoggedMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MeasurementThresholdL1LoggedMDT_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MeasurementThresholdL1LoggedMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.c b/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.c new file mode 100644 index 0000000..dd19065 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MeasurementsToActivate.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_MeasurementsToActivate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementsToActivate = { + "MeasurementsToActivate", + "MeasurementsToActivate", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1, + sizeof(asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MeasurementsToActivate_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MeasurementsToActivate_constr_1, ASN_NGAP_MeasurementsToActivate_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.h b/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.h new file mode 100644 index 0000000..b47b8f1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MeasurementsToActivate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MeasurementsToActivate_H_ +#define _ASN_NGAP_MeasurementsToActivate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MeasurementsToActivate */ +typedef BIT_STRING_t ASN_NGAP_MeasurementsToActivate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MeasurementsToActivate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementsToActivate; +asn_struct_free_f ASN_NGAP_MeasurementsToActivate_free; +asn_struct_print_f ASN_NGAP_MeasurementsToActivate_print; +asn_constr_check_f ASN_NGAP_MeasurementsToActivate_constraint; +ber_type_decoder_f ASN_NGAP_MeasurementsToActivate_decode_ber; +der_type_encoder_f ASN_NGAP_MeasurementsToActivate_encode_der; +xer_type_decoder_f ASN_NGAP_MeasurementsToActivate_decode_xer; +xer_type_encoder_f ASN_NGAP_MeasurementsToActivate_encode_xer; +per_type_decoder_f ASN_NGAP_MeasurementsToActivate_decode_uper; +per_type_encoder_f ASN_NGAP_MeasurementsToActivate_encode_uper; +per_type_decoder_f ASN_NGAP_MeasurementsToActivate_decode_aper; +per_type_encoder_f ASN_NGAP_MeasurementsToActivate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MeasurementsToActivate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MessageIdentifier.c b/src/asn/ngap/ASN_NGAP_MessageIdentifier.c new file mode 100644 index 0000000..448417b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MessageIdentifier.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MessageIdentifier.h" + +int +ASN_NGAP_MessageIdentifier_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_ASN_NGAP_MessageIdentifier_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_ASN_NGAP_MessageIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MessageIdentifier = { + "MessageIdentifier", + "MessageIdentifier", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_MessageIdentifier_tags_1, + sizeof(asn_DEF_ASN_NGAP_MessageIdentifier_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MessageIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MessageIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MessageIdentifier_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MessageIdentifier_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MessageIdentifier_constr_1, ASN_NGAP_MessageIdentifier_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MessageIdentifier.h b/src/asn/ngap/ASN_NGAP_MessageIdentifier.h new file mode 100644 index 0000000..9fc878f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MessageIdentifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MessageIdentifier_H_ +#define _ASN_NGAP_MessageIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MessageIdentifier */ +typedef BIT_STRING_t ASN_NGAP_MessageIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MessageIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MessageIdentifier; +asn_struct_free_f ASN_NGAP_MessageIdentifier_free; +asn_struct_print_f ASN_NGAP_MessageIdentifier_print; +asn_constr_check_f ASN_NGAP_MessageIdentifier_constraint; +ber_type_decoder_f ASN_NGAP_MessageIdentifier_decode_ber; +der_type_encoder_f ASN_NGAP_MessageIdentifier_encode_der; +xer_type_decoder_f ASN_NGAP_MessageIdentifier_decode_xer; +xer_type_encoder_f ASN_NGAP_MessageIdentifier_encode_xer; +per_type_decoder_f ASN_NGAP_MessageIdentifier_decode_uper; +per_type_encoder_f ASN_NGAP_MessageIdentifier_encode_uper; +per_type_decoder_f ASN_NGAP_MessageIdentifier_decode_aper; +per_type_encoder_f ASN_NGAP_MessageIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MessageIdentifier_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MicoAllPLMN.c b/src/asn/ngap/ASN_NGAP_MicoAllPLMN.c new file mode 100644 index 0000000..69137dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MicoAllPLMN.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MicoAllPLMN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_MicoAllPLMN_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_ASN_NGAP_MicoAllPLMN_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_MicoAllPLMN_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MicoAllPLMN_specs_1 = { + asn_MAP_ASN_NGAP_MicoAllPLMN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_MicoAllPLMN_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_ASN_NGAP_MicoAllPLMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MicoAllPLMN = { + "MicoAllPLMN", + "MicoAllPLMN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1, + sizeof(asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MicoAllPLMN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MicoAllPLMN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_MicoAllPLMN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MicoAllPLMN.h b/src/asn/ngap/ASN_NGAP_MicoAllPLMN.h new file mode 100644 index 0000000..7bc800d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MicoAllPLMN.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MicoAllPLMN_H_ +#define _ASN_NGAP_MicoAllPLMN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_MicoAllPLMN { + ASN_NGAP_MicoAllPLMN_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_MicoAllPLMN; + +/* ASN_NGAP_MicoAllPLMN */ +typedef long ASN_NGAP_MicoAllPLMN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MicoAllPLMN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MicoAllPLMN; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_MicoAllPLMN_specs_1; +asn_struct_free_f ASN_NGAP_MicoAllPLMN_free; +asn_struct_print_f ASN_NGAP_MicoAllPLMN_print; +asn_constr_check_f ASN_NGAP_MicoAllPLMN_constraint; +ber_type_decoder_f ASN_NGAP_MicoAllPLMN_decode_ber; +der_type_encoder_f ASN_NGAP_MicoAllPLMN_encode_der; +xer_type_decoder_f ASN_NGAP_MicoAllPLMN_decode_xer; +xer_type_encoder_f ASN_NGAP_MicoAllPLMN_encode_xer; +per_type_decoder_f ASN_NGAP_MicoAllPLMN_decode_uper; +per_type_encoder_f ASN_NGAP_MicoAllPLMN_encode_uper; +per_type_decoder_f ASN_NGAP_MicoAllPLMN_decode_aper; +per_type_encoder_f ASN_NGAP_MicoAllPLMN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MicoAllPLMN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MobilityInformation.c b/src/asn/ngap/ASN_NGAP_MobilityInformation.c new file mode 100644 index 0000000..f2cead0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MobilityInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MobilityInformation.h" + +int +ASN_NGAP_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 == 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_ASN_NGAP_MobilityInformation_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_ASN_NGAP_MobilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityInformation = { + "MobilityInformation", + "MobilityInformation", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_MobilityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MobilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MobilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MobilityInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MobilityInformation_constr_1, ASN_NGAP_MobilityInformation_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MobilityInformation.h b/src/asn/ngap/ASN_NGAP_MobilityInformation.h new file mode 100644 index 0000000..d1460b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MobilityInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MobilityInformation_H_ +#define _ASN_NGAP_MobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MobilityInformation */ +typedef BIT_STRING_t ASN_NGAP_MobilityInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MobilityInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityInformation; +asn_struct_free_f ASN_NGAP_MobilityInformation_free; +asn_struct_print_f ASN_NGAP_MobilityInformation_print; +asn_constr_check_f ASN_NGAP_MobilityInformation_constraint; +ber_type_decoder_f ASN_NGAP_MobilityInformation_decode_ber; +der_type_encoder_f ASN_NGAP_MobilityInformation_encode_der; +xer_type_decoder_f ASN_NGAP_MobilityInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_MobilityInformation_encode_xer; +per_type_decoder_f ASN_NGAP_MobilityInformation_decode_uper; +per_type_encoder_f ASN_NGAP_MobilityInformation_encode_uper; +per_type_decoder_f ASN_NGAP_MobilityInformation_decode_aper; +per_type_encoder_f ASN_NGAP_MobilityInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MobilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.c b/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.c new file mode 100644 index 0000000..8b92580 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.c @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MobilityRestrictionList.h" + +#include "ASN_NGAP_EquivalentPLMNs.h" +#include "ASN_NGAP_RATRestrictions.h" +#include "ASN_NGAP_ForbiddenAreaInformation.h" +#include "ASN_NGAP_ServiceAreaInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MobilityRestrictionList_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList, servingPLMN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingPLMN" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_MobilityRestrictionList, equivalentPLMNs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EquivalentPLMNs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "equivalentPLMNs" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_MobilityRestrictionList, rATRestrictions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RATRestrictions, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rATRestrictions" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_MobilityRestrictionList, forbiddenAreaInformation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ForbiddenAreaInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "forbiddenAreaInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MobilityRestrictionList, serviceAreaInformation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ServiceAreaInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceAreaInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MobilityRestrictionList, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MobilityRestrictionList_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MobilityRestrictionList_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 }, /* rATRestrictions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* forbiddenAreaInformation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* serviceAreaInformation */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MobilityRestrictionList_specs_1 = { + sizeof(struct ASN_NGAP_MobilityRestrictionList), + offsetof(struct ASN_NGAP_MobilityRestrictionList, _asn_ctx), + asn_MAP_ASN_NGAP_MobilityRestrictionList_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MobilityRestrictionList_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityRestrictionList = { + "MobilityRestrictionList", + "MobilityRestrictionList", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MobilityRestrictionList_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_MobilityRestrictionList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.h b/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.h new file mode 100644 index 0000000..4599f61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MobilityRestrictionList.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MobilityRestrictionList_H_ +#define _ASN_NGAP_MobilityRestrictionList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_EquivalentPLMNs; +struct ASN_NGAP_RATRestrictions; +struct ASN_NGAP_ForbiddenAreaInformation; +struct ASN_NGAP_ServiceAreaInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MobilityRestrictionList */ +typedef struct ASN_NGAP_MobilityRestrictionList { + ASN_NGAP_PLMNIdentity_t servingPLMN; + struct ASN_NGAP_EquivalentPLMNs *equivalentPLMNs; /* OPTIONAL */ + struct ASN_NGAP_RATRestrictions *rATRestrictions; /* OPTIONAL */ + struct ASN_NGAP_ForbiddenAreaInformation *forbiddenAreaInformation; /* OPTIONAL */ + struct ASN_NGAP_ServiceAreaInformation *serviceAreaInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MobilityRestrictionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityRestrictionList; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MobilityRestrictionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MobilityRestrictionList_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MobilityRestrictionList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.c b/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.c new file mode 100644 index 0000000..f9fda2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastGroupPaging.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPaging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPaging, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPaging_specs_1 = { + sizeof(struct ASN_NGAP_MulticastGroupPaging), + offsetof(struct ASN_NGAP_MulticastGroupPaging, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPaging_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_ASN_NGAP_MulticastGroupPaging = { + "MulticastGroupPaging", + "MulticastGroupPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPaging_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.h b/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.h new file mode 100644 index 0000000..9f39ae7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPaging.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastGroupPaging_H_ +#define _ASN_NGAP_MulticastGroupPaging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastGroupPaging */ +typedef struct ASN_NGAP_MulticastGroupPaging { + ASN_NGAP_ProtocolIE_Container_123P122_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPaging_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastGroupPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.c b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.c new file mode 100644 index 0000000..4ae8534 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastGroupPagingArea.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingArea_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingArea, mBS_AreaTAIList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_AreaTAIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-AreaTAIList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MulticastGroupPagingArea, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MulticastGroupPagingArea_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPagingArea_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-AreaTAIList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingArea_specs_1 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingArea), + offsetof(struct ASN_NGAP_MulticastGroupPagingArea, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPagingArea_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MulticastGroupPagingArea_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea = { + "MulticastGroupPagingArea", + "MulticastGroupPagingArea", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingArea_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingArea_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.h b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.h new file mode 100644 index 0000000..50f80a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingArea.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastGroupPagingArea_H_ +#define _ASN_NGAP_MulticastGroupPagingArea_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-AreaTAIList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MulticastGroupPagingArea */ +typedef struct ASN_NGAP_MulticastGroupPagingArea { + ASN_NGAP_MBS_AreaTAIList_t mBS_AreaTAIList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingArea_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingArea_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingArea_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastGroupPagingArea_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.c b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.c new file mode 100644 index 0000000..3aedc55 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastGroupPagingAreaItem.h" + +#include "ASN_NGAP_UE-PagingList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem, multicastGroupPagingArea), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MulticastGroupPagingArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multicastGroupPagingArea" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem, uE_PagingList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UE_PagingList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uE-PagingList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* multicastGroupPagingArea */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uE-PagingList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_specs_1 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingAreaItem), + offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem = { + "MulticastGroupPagingAreaItem", + "MulticastGroupPagingAreaItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.h b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.h new file mode 100644 index 0000000..f1ccc5f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastGroupPagingAreaItem_H_ +#define _ASN_NGAP_MulticastGroupPagingAreaItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MulticastGroupPagingArea.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UE_PagingList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MulticastGroupPagingAreaItem */ +typedef struct ASN_NGAP_MulticastGroupPagingAreaItem { + ASN_NGAP_MulticastGroupPagingArea_t multicastGroupPagingArea; + struct ASN_NGAP_UE_PagingList *uE_PagingList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingAreaItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastGroupPagingAreaItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.c b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.c new file mode 100644 index 0000000..da77a25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastGroupPagingAreaList.h" + +#include "ASN_NGAP_MulticastGroupPagingAreaItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_MulticastGroupPagingAreaList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaList_specs_1 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingAreaList), + offsetof(struct ASN_NGAP_MulticastGroupPagingAreaList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList = { + "MulticastGroupPagingAreaList", + "MulticastGroupPagingAreaList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_MulticastGroupPagingAreaList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingAreaList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingAreaList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.h b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.h new file mode 100644 index 0000000..4700465 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastGroupPagingAreaList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastGroupPagingAreaList_H_ +#define _ASN_NGAP_MulticastGroupPagingAreaList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MulticastGroupPagingAreaItem; + +/* ASN_NGAP_MulticastGroupPagingAreaList */ +typedef struct ASN_NGAP_MulticastGroupPagingAreaList { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastGroupPagingAreaItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingAreaList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_MulticastGroupPagingAreaList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastGroupPagingAreaList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.c b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.c new file mode 100644 index 0000000..3b60ce7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionActivationFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationFailure_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationFailure), + offsetof(struct ASN_NGAP_MulticastSessionActivationFailure, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationFailure_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_ASN_NGAP_MulticastSessionActivationFailure = { + "MulticastSessionActivationFailure", + "MulticastSessionActivationFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.h b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.h new file mode 100644 index 0000000..64bcf87 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionActivationFailure_H_ +#define _ASN_NGAP_MulticastSessionActivationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionActivationFailure */ +typedef struct ASN_NGAP_MulticastSessionActivationFailure { + ASN_NGAP_ProtocolIE_Container_123P116_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionActivationFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.c b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.c new file mode 100644 index 0000000..f1acd79 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionActivationRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequest_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequest), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequest, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationRequest_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_ASN_NGAP_MulticastSessionActivationRequest = { + "MulticastSessionActivationRequest", + "MulticastSessionActivationRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.h b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.h new file mode 100644 index 0000000..aa96326 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionActivationRequest_H_ +#define _ASN_NGAP_MulticastSessionActivationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionActivationRequest */ +typedef struct ASN_NGAP_MulticastSessionActivationRequest { + ASN_NGAP_ProtocolIE_Container_123P114_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionActivationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.c new file mode 100644 index 0000000..77a7069 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionActivationRequestTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer = { + "MulticastSessionActivationRequestTransfer", + "MulticastSessionActivationRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationRequestTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.h new file mode 100644 index 0000000..199eb29 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationRequestTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionActivationRequestTransfer_H_ +#define _ASN_NGAP_MulticastSessionActivationRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MulticastSessionActivationRequestTransfer */ +typedef struct ASN_NGAP_MulticastSessionActivationRequestTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionActivationRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.c b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.c new file mode 100644 index 0000000..87a6fef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionActivationResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationResponse_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationResponse), + offsetof(struct ASN_NGAP_MulticastSessionActivationResponse, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationResponse_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_ASN_NGAP_MulticastSessionActivationResponse = { + "MulticastSessionActivationResponse", + "MulticastSessionActivationResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.h b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.h new file mode 100644 index 0000000..87c0bd0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionActivationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionActivationResponse_H_ +#define _ASN_NGAP_MulticastSessionActivationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionActivationResponse */ +typedef struct ASN_NGAP_MulticastSessionActivationResponse { + ASN_NGAP_ProtocolIE_Container_123P115_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionActivationResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.c b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.c new file mode 100644 index 0000000..f5cd8b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionDeactivationRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequest_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequest), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequest, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequest_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_ASN_NGAP_MulticastSessionDeactivationRequest = { + "MulticastSessionDeactivationRequest", + "MulticastSessionDeactivationRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.h b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.h new file mode 100644 index 0000000..0750e64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionDeactivationRequest_H_ +#define _ASN_NGAP_MulticastSessionDeactivationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionDeactivationRequest */ +typedef struct ASN_NGAP_MulticastSessionDeactivationRequest { + ASN_NGAP_ProtocolIE_Container_123P117_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionDeactivationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionDeactivationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.c new file mode 100644 index 0000000..45ce9f2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer, mBS_SessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mBS-SessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer = { + "MulticastSessionDeactivationRequestTransfer", + "MulticastSessionDeactivationRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h new file mode 100644 index 0000000..2afe0f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationRequestTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionDeactivationRequestTransfer_H_ +#define _ASN_NGAP_MulticastSessionDeactivationRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_MBS-SessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_MulticastSessionDeactivationRequestTransfer */ +typedef struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer { + ASN_NGAP_MBS_SessionID_t mBS_SessionID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionDeactivationRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionDeactivationRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.c b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.c new file mode 100644 index 0000000..12e7652 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionDeactivationResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponse_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationResponse), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponse, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationResponse_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_ASN_NGAP_MulticastSessionDeactivationResponse = { + "MulticastSessionDeactivationResponse", + "MulticastSessionDeactivationResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.h b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.h new file mode 100644 index 0000000..54c9227 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionDeactivationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionDeactivationResponse_H_ +#define _ASN_NGAP_MulticastSessionDeactivationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionDeactivationResponse */ +typedef struct ASN_NGAP_MulticastSessionDeactivationResponse { + ASN_NGAP_ProtocolIE_Container_123P118_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionDeactivationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionDeactivationResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.c b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.c new file mode 100644 index 0000000..fdb7074 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateFailure_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateFailure), + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailure, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateFailure_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_ASN_NGAP_MulticastSessionUpdateFailure = { + "MulticastSessionUpdateFailure", + "MulticastSessionUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.h b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.h new file mode 100644 index 0000000..fe1f30a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionUpdateFailure_H_ +#define _ASN_NGAP_MulticastSessionUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionUpdateFailure */ +typedef struct ASN_NGAP_MulticastSessionUpdateFailure { + ASN_NGAP_ProtocolIE_Container_123P121_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionUpdateFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.c b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.c new file mode 100644 index 0000000..1f30313 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionUpdateRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequest_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequest), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequest, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateRequest_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_ASN_NGAP_MulticastSessionUpdateRequest = { + "MulticastSessionUpdateRequest", + "MulticastSessionUpdateRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.h b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.h new file mode 100644 index 0000000..6ed04c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionUpdateRequest_H_ +#define _ASN_NGAP_MulticastSessionUpdateRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionUpdateRequest */ +typedef struct ASN_NGAP_MulticastSessionUpdateRequest { + ASN_NGAP_ProtocolIE_Container_123P119_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionUpdateRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.c b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.c new file mode 100644 index 0000000..7f09713 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionUpdateRequestTransfer.h" + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequestTransfer), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestTransfer_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_ASN_NGAP_MulticastSessionUpdateRequestTransfer = { + "MulticastSessionUpdateRequestTransfer", + "MulticastSessionUpdateRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.h b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.h new file mode 100644 index 0000000..dac2f78 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateRequestTransfer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionUpdateRequestTransfer_H_ +#define _ASN_NGAP_MulticastSessionUpdateRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionUpdateRequestTransfer */ +typedef struct ASN_NGAP_MulticastSessionUpdateRequestTransfer { + ASN_NGAP_ProtocolIE_Container_123P1_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionUpdateRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.c b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.c new file mode 100644 index 0000000..c622e38 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_MulticastSessionUpdateResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateResponse_specs_1 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateResponse), + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponse, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateResponse_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_ASN_NGAP_MulticastSessionUpdateResponse = { + "MulticastSessionUpdateResponse", + "MulticastSessionUpdateResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.h b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.h new file mode 100644 index 0000000..379847a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_MulticastSessionUpdateResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_MulticastSessionUpdateResponse_H_ +#define _ASN_NGAP_MulticastSessionUpdateResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_MulticastSessionUpdateResponse */ +typedef struct ASN_NGAP_MulticastSessionUpdateResponse { + ASN_NGAP_ProtocolIE_Container_123P120_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_MulticastSessionUpdateResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_N3IWF-ID.c b/src/asn/ngap/ASN_NGAP_N3IWF-ID.c new file mode 100644 index 0000000..e17d09b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_N3IWF-ID.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_N3IWF-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_n3IWF_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 == 16)) { + /* Constraint 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_ASN_NGAP_n3IWF_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_N3IWF_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_ASN_NGAP_N3IWF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_N3IWF_ID, choice.n3IWF_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_n3IWF_ID_constr_2, memb_ASN_NGAP_n3IWF_ID_constraint_1 }, + 0, 0, /* No default value */ + "n3IWF-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_N3IWF_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_N3IWF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_N3IWF_ID_specs_1 = { + sizeof(struct ASN_NGAP_N3IWF_ID), + offsetof(struct ASN_NGAP_N3IWF_ID, _asn_ctx), + offsetof(struct ASN_NGAP_N3IWF_ID, present), + sizeof(((struct ASN_NGAP_N3IWF_ID *)0)->present), + asn_MAP_ASN_NGAP_N3IWF_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_N3IWF_ID = { + "N3IWF-ID", + "N3IWF-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_ASN_NGAP_N3IWF_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_N3IWF_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_N3IWF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_N3IWF-ID.h b/src/asn/ngap/ASN_NGAP_N3IWF-ID.h new file mode 100644 index 0000000..3def2f7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_N3IWF-ID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_N3IWF_ID_H_ +#define _ASN_NGAP_N3IWF_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_N3IWF_ID_PR { + ASN_NGAP_N3IWF_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_N3IWF_ID_PR_n3IWF_ID, + ASN_NGAP_N3IWF_ID_PR_choice_Extensions +} ASN_NGAP_N3IWF_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_N3IWF-ID */ +typedef struct ASN_NGAP_N3IWF_ID { + ASN_NGAP_N3IWF_ID_PR present; + union ASN_NGAP_N3IWF_ID_u { + BIT_STRING_t n3IWF_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_N3IWF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_N3IWF_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_N3IWF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_N3IWF_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_N3IWF_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_N3IWF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NAS-PDU.c b/src/asn/ngap/ASN_NGAP_NAS-PDU.c new file mode 100644 index 0000000..2a404fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NAS-PDU.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NAS-PDU.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NAS_PDU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NAS_PDU = { + "NAS-PDU", + "NAS-PDU", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NAS_PDU_tags_1, + sizeof(asn_DEF_ASN_NGAP_NAS_PDU_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NAS_PDU_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NAS_PDU_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NAS_PDU_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NAS_PDU_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NAS-PDU.h b/src/asn/ngap/ASN_NGAP_NAS-PDU.h new file mode 100644 index 0000000..aa11128 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NAS-PDU.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NAS_PDU_H_ +#define _ASN_NGAP_NAS_PDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NAS-PDU */ +typedef OCTET_STRING_t ASN_NGAP_NAS_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NAS_PDU; +asn_struct_free_f ASN_NGAP_NAS_PDU_free; +asn_struct_print_f ASN_NGAP_NAS_PDU_print; +asn_constr_check_f ASN_NGAP_NAS_PDU_constraint; +ber_type_decoder_f ASN_NGAP_NAS_PDU_decode_ber; +der_type_encoder_f ASN_NGAP_NAS_PDU_encode_der; +xer_type_decoder_f ASN_NGAP_NAS_PDU_decode_xer; +xer_type_encoder_f ASN_NGAP_NAS_PDU_encode_xer; +per_type_decoder_f ASN_NGAP_NAS_PDU_decode_uper; +per_type_encoder_f ASN_NGAP_NAS_PDU_encode_uper; +per_type_decoder_f ASN_NGAP_NAS_PDU_decode_aper; +per_type_encoder_f ASN_NGAP_NAS_PDU_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NAS_PDU_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.c b/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.c new file mode 100644 index 0000000..4e01656 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NASNonDeliveryIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NASNonDeliveryIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NASNonDeliveryIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NASNonDeliveryIndication_specs_1 = { + sizeof(struct ASN_NGAP_NASNonDeliveryIndication), + offsetof(struct ASN_NGAP_NASNonDeliveryIndication, _asn_ctx), + asn_MAP_ASN_NGAP_NASNonDeliveryIndication_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_ASN_NGAP_NASNonDeliveryIndication = { + "NASNonDeliveryIndication", + "NASNonDeliveryIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NASNonDeliveryIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NASNonDeliveryIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.h b/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.h new file mode 100644 index 0000000..cb0655e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NASNonDeliveryIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NASNonDeliveryIndication_H_ +#define _ASN_NGAP_NASNonDeliveryIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NASNonDeliveryIndication */ +typedef struct ASN_NGAP_NASNonDeliveryIndication { + ASN_NGAP_ProtocolIE_Container_123P53_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NASNonDeliveryIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NASNonDeliveryIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NASNonDeliveryIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NASNonDeliveryIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NASNonDeliveryIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.c b/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.c new file mode 100644 index 0000000..75c1e60 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NASSecurityParametersFromNGRAN.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN = { + "NASSecurityParametersFromNGRAN", + "NASSecurityParametersFromNGRAN", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1, + sizeof(asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.h b/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.h new file mode 100644 index 0000000..a942a9b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NASSecurityParametersFromNGRAN.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NASSecurityParametersFromNGRAN_H_ +#define _ASN_NGAP_NASSecurityParametersFromNGRAN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NASSecurityParametersFromNGRAN */ +typedef OCTET_STRING_t ASN_NGAP_NASSecurityParametersFromNGRAN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN; +asn_struct_free_f ASN_NGAP_NASSecurityParametersFromNGRAN_free; +asn_struct_print_f ASN_NGAP_NASSecurityParametersFromNGRAN_print; +asn_constr_check_f ASN_NGAP_NASSecurityParametersFromNGRAN_constraint; +ber_type_decoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_decode_ber; +der_type_encoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_encode_der; +xer_type_decoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_decode_xer; +xer_type_encoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_encode_xer; +per_type_decoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_decode_uper; +per_type_encoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_encode_uper; +per_type_decoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_decode_aper; +per_type_encoder_f ASN_NGAP_NASSecurityParametersFromNGRAN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NASSecurityParametersFromNGRAN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c b/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c new file mode 100644 index 0000000..ec82b21 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-DefaultPagingDRX.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_DefaultPagingDRX_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_ASN_NGAP_NB_IoT_DefaultPagingDRX_value2enum_1[] = { + { 0, 5, "rf128" }, + { 1, 5, "rf256" }, + { 2, 5, "rf512" }, + { 3, 6, "rf1024" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NB_IoT_DefaultPagingDRX_enum2value_1[] = { + 3, /* rf1024(3) */ + 0, /* rf128(0) */ + 1, /* rf256(1) */ + 2 /* rf512(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_DefaultPagingDRX_specs_1 = { + asn_MAP_ASN_NGAP_NB_IoT_DefaultPagingDRX_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NB_IoT_DefaultPagingDRX_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_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX = { + "NB-IoT-DefaultPagingDRX", + "NB-IoT-DefaultPagingDRX", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NB_IoT_DefaultPagingDRX_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NB_IoT_DefaultPagingDRX_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h b/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h new file mode 100644 index 0000000..647737d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-DefaultPagingDRX.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_DefaultPagingDRX_H_ +#define _ASN_NGAP_NB_IoT_DefaultPagingDRX_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NB_IoT_DefaultPagingDRX { + ASN_NGAP_NB_IoT_DefaultPagingDRX_rf128 = 0, + ASN_NGAP_NB_IoT_DefaultPagingDRX_rf256 = 1, + ASN_NGAP_NB_IoT_DefaultPagingDRX_rf512 = 2, + ASN_NGAP_NB_IoT_DefaultPagingDRX_rf1024 = 3 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NB_IoT_DefaultPagingDRX; + +/* ASN_NGAP_NB-IoT-DefaultPagingDRX */ +typedef long ASN_NGAP_NB_IoT_DefaultPagingDRX_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_DefaultPagingDRX_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_DefaultPagingDRX_specs_1; +asn_struct_free_f ASN_NGAP_NB_IoT_DefaultPagingDRX_free; +asn_struct_print_f ASN_NGAP_NB_IoT_DefaultPagingDRX_print; +asn_constr_check_f ASN_NGAP_NB_IoT_DefaultPagingDRX_constraint; +ber_type_decoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_decode_ber; +der_type_encoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_encode_der; +xer_type_decoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_decode_xer; +xer_type_encoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_encode_xer; +per_type_decoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_decode_uper; +per_type_encoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_encode_uper; +per_type_decoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_decode_aper; +per_type_encoder_f ASN_NGAP_NB_IoT_DefaultPagingDRX_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_DefaultPagingDRX_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c new file mode 100644 index 0000000..2d51733 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-Paging-TimeWindow.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_Paging_TimeWindow_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_ASN_NGAP_NB_IoT_Paging_TimeWindow_value2enum_1[] = { + { 0, 2, "s1" }, + { 1, 2, "s2" }, + { 2, 2, "s3" }, + { 3, 2, "s4" }, + { 4, 2, "s5" }, + { 5, 2, "s6" }, + { 6, 2, "s7" }, + { 7, 2, "s8" }, + { 8, 2, "s9" }, + { 9, 3, "s10" }, + { 10, 3, "s11" }, + { 11, 3, "s12" }, + { 12, 3, "s13" }, + { 13, 3, "s14" }, + { 14, 3, "s15" }, + { 15, 3, "s16" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NB_IoT_Paging_TimeWindow_enum2value_1[] = { + 0, /* s1(0) */ + 9, /* s10(9) */ + 10, /* s11(10) */ + 11, /* s12(11) */ + 12, /* s13(12) */ + 13, /* s14(13) */ + 14, /* s15(14) */ + 15, /* s16(15) */ + 1, /* s2(1) */ + 2, /* s3(2) */ + 3, /* s4(3) */ + 4, /* s5(4) */ + 5, /* s6(5) */ + 6, /* s7(6) */ + 7, /* s8(7) */ + 8 /* s9(8) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_TimeWindow_specs_1 = { + asn_MAP_ASN_NGAP_NB_IoT_Paging_TimeWindow_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NB_IoT_Paging_TimeWindow_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_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow = { + "NB-IoT-Paging-TimeWindow", + "NB-IoT-Paging-TimeWindow", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NB_IoT_Paging_TimeWindow_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NB_IoT_Paging_TimeWindow_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h new file mode 100644 index 0000000..61742ef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-TimeWindow.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_Paging_TimeWindow_H_ +#define _ASN_NGAP_NB_IoT_Paging_TimeWindow_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NB_IoT_Paging_TimeWindow { + ASN_NGAP_NB_IoT_Paging_TimeWindow_s1 = 0, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s2 = 1, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s3 = 2, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s4 = 3, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s5 = 4, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s6 = 5, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s7 = 6, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s8 = 7, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s9 = 8, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s10 = 9, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s11 = 10, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s12 = 11, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s13 = 12, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s14 = 13, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s15 = 14, + ASN_NGAP_NB_IoT_Paging_TimeWindow_s16 = 15 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NB_IoT_Paging_TimeWindow; + +/* ASN_NGAP_NB-IoT-Paging-TimeWindow */ +typedef long ASN_NGAP_NB_IoT_Paging_TimeWindow_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_Paging_TimeWindow_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_TimeWindow_specs_1; +asn_struct_free_f ASN_NGAP_NB_IoT_Paging_TimeWindow_free; +asn_struct_print_f ASN_NGAP_NB_IoT_Paging_TimeWindow_print; +asn_constr_check_f ASN_NGAP_NB_IoT_Paging_TimeWindow_constraint; +ber_type_decoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_decode_ber; +der_type_encoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_encode_der; +xer_type_decoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_decode_xer; +xer_type_encoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_encode_xer; +per_type_decoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_decode_uper; +per_type_encoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_encode_uper; +per_type_decoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_decode_aper; +per_type_encoder_f ASN_NGAP_NB_IoT_Paging_TimeWindow_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_Paging_TimeWindow_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c new file mode 100644 index 0000000..8bcbf64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-Paging-eDRXCycle.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_Paging_eDRXCycle_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXCycle_value2enum_1[] = { + { 0, 3, "hf2" }, + { 1, 3, "hf4" }, + { 2, 3, "hf6" }, + { 3, 3, "hf8" }, + { 4, 4, "hf10" }, + { 5, 4, "hf12" }, + { 6, 4, "hf14" }, + { 7, 4, "hf16" }, + { 8, 4, "hf32" }, + { 9, 4, "hf64" }, + { 10, 5, "hf128" }, + { 11, 5, "hf256" }, + { 12, 5, "hf512" }, + { 13, 6, "hf1024" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXCycle_enum2value_1[] = { + 4, /* hf10(4) */ + 13, /* hf1024(13) */ + 5, /* hf12(5) */ + 10, /* hf128(10) */ + 6, /* hf14(6) */ + 7, /* hf16(7) */ + 0, /* hf2(0) */ + 11, /* hf256(11) */ + 8, /* hf32(8) */ + 1, /* hf4(1) */ + 12, /* hf512(12) */ + 2, /* hf6(2) */ + 9, /* hf64(9) */ + 3 /* hf8(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXCycle_specs_1 = { + asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXCycle_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXCycle_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle = { + "NB-IoT-Paging-eDRXCycle", + "NB-IoT-Paging-eDRXCycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NB_IoT_Paging_eDRXCycle_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXCycle_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h new file mode 100644 index 0000000..15e7bbe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXCycle.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_Paging_eDRXCycle_H_ +#define _ASN_NGAP_NB_IoT_Paging_eDRXCycle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NB_IoT_Paging_eDRXCycle { + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf2 = 0, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf4 = 1, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf6 = 2, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf8 = 3, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf10 = 4, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf12 = 5, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf14 = 6, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf16 = 7, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf32 = 8, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf64 = 9, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf128 = 10, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf256 = 11, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf512 = 12, + ASN_NGAP_NB_IoT_Paging_eDRXCycle_hf1024 = 13 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NB_IoT_Paging_eDRXCycle; + +/* ASN_NGAP_NB-IoT-Paging-eDRXCycle */ +typedef long ASN_NGAP_NB_IoT_Paging_eDRXCycle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_Paging_eDRXCycle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXCycle_specs_1; +asn_struct_free_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_free; +asn_struct_print_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_print; +asn_constr_check_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_constraint; +ber_type_decoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_decode_ber; +der_type_encoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_encode_der; +xer_type_decoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_decode_xer; +xer_type_encoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_encode_xer; +per_type_decoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_decode_uper; +per_type_encoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_encode_uper; +per_type_decoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_decode_aper; +per_type_encoder_f ASN_NGAP_NB_IoT_Paging_eDRXCycle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_Paging_eDRXCycle_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c new file mode 100644 index 0000000..c00bf4b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-Paging-eDRXInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo, nB_IoT_Paging_eDRXCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nB-IoT-Paging-eDRXCycle" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo, nB_IoT_Paging_TimeWindow), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NB_IoT_Paging_TimeWindow, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nB-IoT-Paging-TimeWindow" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nB-IoT-Paging-eDRXCycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nB-IoT-Paging-TimeWindow */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_specs_1 = { + sizeof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo), + offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo, _asn_ctx), + asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo = { + "NB-IoT-Paging-eDRXInfo", + "NB-IoT-Paging-eDRXInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h new file mode 100644 index 0000000..67ee4e7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-Paging-eDRXInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_Paging_eDRXInfo_H_ +#define _ASN_NGAP_NB_IoT_Paging_eDRXInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NB-IoT-Paging-eDRXCycle.h" +#include "ASN_NGAP_NB-IoT-Paging-TimeWindow.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NB-IoT-Paging-eDRXInfo */ +typedef struct ASN_NGAP_NB_IoT_Paging_eDRXInfo { + ASN_NGAP_NB_IoT_Paging_eDRXCycle_t nB_IoT_Paging_eDRXCycle; + ASN_NGAP_NB_IoT_Paging_TimeWindow_t *nB_IoT_Paging_TimeWindow; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NB_IoT_Paging_eDRXInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_Paging_eDRXInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.c b/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.c new file mode 100644 index 0000000..256348f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-PagingDRX.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_PagingDRX_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_ASN_NGAP_NB_IoT_PagingDRX_value2enum_1[] = { + { 0, 4, "rf32" }, + { 1, 4, "rf64" }, + { 2, 5, "rf128" }, + { 3, 5, "rf256" }, + { 4, 5, "rf512" }, + { 5, 6, "rf1024" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NB_IoT_PagingDRX_enum2value_1[] = { + 5, /* rf1024(5) */ + 2, /* rf128(2) */ + 3, /* rf256(3) */ + 0, /* rf32(0) */ + 4, /* rf512(4) */ + 1 /* rf64(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_PagingDRX_specs_1 = { + asn_MAP_ASN_NGAP_NB_IoT_PagingDRX_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NB_IoT_PagingDRX_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_ASN_NGAP_NB_IoT_PagingDRX_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_PagingDRX = { + "NB-IoT-PagingDRX", + "NB-IoT-PagingDRX", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_PagingDRX_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NB_IoT_PagingDRX_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NB_IoT_PagingDRX_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.h b/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.h new file mode 100644 index 0000000..a03b320 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-PagingDRX.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_PagingDRX_H_ +#define _ASN_NGAP_NB_IoT_PagingDRX_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NB_IoT_PagingDRX { + ASN_NGAP_NB_IoT_PagingDRX_rf32 = 0, + ASN_NGAP_NB_IoT_PagingDRX_rf64 = 1, + ASN_NGAP_NB_IoT_PagingDRX_rf128 = 2, + ASN_NGAP_NB_IoT_PagingDRX_rf256 = 3, + ASN_NGAP_NB_IoT_PagingDRX_rf512 = 4, + ASN_NGAP_NB_IoT_PagingDRX_rf1024 = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NB_IoT_PagingDRX; + +/* ASN_NGAP_NB-IoT-PagingDRX */ +typedef long ASN_NGAP_NB_IoT_PagingDRX_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_PagingDRX_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_PagingDRX; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NB_IoT_PagingDRX_specs_1; +asn_struct_free_f ASN_NGAP_NB_IoT_PagingDRX_free; +asn_struct_print_f ASN_NGAP_NB_IoT_PagingDRX_print; +asn_constr_check_f ASN_NGAP_NB_IoT_PagingDRX_constraint; +ber_type_decoder_f ASN_NGAP_NB_IoT_PagingDRX_decode_ber; +der_type_encoder_f ASN_NGAP_NB_IoT_PagingDRX_encode_der; +xer_type_decoder_f ASN_NGAP_NB_IoT_PagingDRX_decode_xer; +xer_type_encoder_f ASN_NGAP_NB_IoT_PagingDRX_encode_xer; +per_type_decoder_f ASN_NGAP_NB_IoT_PagingDRX_decode_uper; +per_type_encoder_f ASN_NGAP_NB_IoT_PagingDRX_encode_uper; +per_type_decoder_f ASN_NGAP_NB_IoT_PagingDRX_decode_aper; +per_type_encoder_f ASN_NGAP_NB_IoT_PagingDRX_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_PagingDRX_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.c b/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.c new file mode 100644 index 0000000..8c80f4e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NB-IoT-UEPriority.h" + +int +ASN_NGAP_NB_IoT_UEPriority_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_ASN_NGAP_NB_IoT_UEPriority_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_NB_IoT_UEPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_UEPriority = { + "NB-IoT-UEPriority", + "NB-IoT-UEPriority", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_UEPriority_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NB_IoT_UEPriority_constr_1, ASN_NGAP_NB_IoT_UEPriority_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.h b/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.h new file mode 100644 index 0000000..3a92475 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NB-IoT-UEPriority.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NB_IoT_UEPriority_H_ +#define _ASN_NGAP_NB_IoT_UEPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NB-IoT-UEPriority */ +typedef long ASN_NGAP_NB_IoT_UEPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NB_IoT_UEPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_UEPriority; +asn_struct_free_f ASN_NGAP_NB_IoT_UEPriority_free; +asn_struct_print_f ASN_NGAP_NB_IoT_UEPriority_print; +asn_constr_check_f ASN_NGAP_NB_IoT_UEPriority_constraint; +ber_type_decoder_f ASN_NGAP_NB_IoT_UEPriority_decode_ber; +der_type_encoder_f ASN_NGAP_NB_IoT_UEPriority_encode_der; +xer_type_decoder_f ASN_NGAP_NB_IoT_UEPriority_decode_xer; +xer_type_encoder_f ASN_NGAP_NB_IoT_UEPriority_encode_xer; +per_type_decoder_f ASN_NGAP_NB_IoT_UEPriority_decode_uper; +per_type_encoder_f ASN_NGAP_NB_IoT_UEPriority_encode_uper; +per_type_decoder_f ASN_NGAP_NB_IoT_UEPriority_decode_aper; +per_type_encoder_f ASN_NGAP_NB_IoT_UEPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NB_IoT_UEPriority_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGAP-PDU.c b/src/asn/ngap/ASN_NGAP_NGAP-PDU.c new file mode 100644 index 0000000..ada179a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAP-PDU.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGAP-PDU.h" + +#include "ASN_NGAP_InitiatingMessage.h" +#include "ASN_NGAP_SuccessfulOutcome.h" +#include "ASN_NGAP_UnsuccessfulOutcome.h" +static asn_per_constraints_t asn_PER_type_ASN_NGAP_NGAP_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_ASN_NGAP_NGAP_PDU_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGAP_PDU, choice.initiatingMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_InitiatingMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initiatingMessage" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGAP_PDU, choice.successfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SuccessfulOutcome, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "successfulOutcome" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGAP_PDU, choice.unsuccessfulOutcome), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UnsuccessfulOutcome, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "unsuccessfulOutcome" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGAP_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_ASN_NGAP_NGAP_PDU_specs_1 = { + sizeof(struct ASN_NGAP_NGAP_PDU), + offsetof(struct ASN_NGAP_NGAP_PDU, _asn_ctx), + offsetof(struct ASN_NGAP_NGAP_PDU, present), + sizeof(((struct ASN_NGAP_NGAP_PDU *)0)->present), + asn_MAP_ASN_NGAP_NGAP_PDU_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAP_PDU = { + "NGAP-PDU", + "NGAP-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_ASN_NGAP_NGAP_PDU_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NGAP_PDU_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGAP_PDU_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGAP-PDU.h b/src/asn/ngap/ASN_NGAP_NGAP-PDU.h new file mode 100644 index 0000000..433e495 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAP-PDU.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGAP_PDU_H_ +#define _ASN_NGAP_NGAP_PDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NGAP_PDU_PR { + ASN_NGAP_NGAP_PDU_PR_NOTHING, /* No components present */ + ASN_NGAP_NGAP_PDU_PR_initiatingMessage, + ASN_NGAP_NGAP_PDU_PR_successfulOutcome, + ASN_NGAP_NGAP_PDU_PR_unsuccessfulOutcome + /* Extensions may appear below */ + +} ASN_NGAP_NGAP_PDU_PR; + +/* Forward declarations */ +struct ASN_NGAP_InitiatingMessage; +struct ASN_NGAP_SuccessfulOutcome; +struct ASN_NGAP_UnsuccessfulOutcome; + +/* ASN_NGAP_NGAP-PDU */ +typedef struct ASN_NGAP_NGAP_PDU { + ASN_NGAP_NGAP_PDU_PR present; + union ASN_NGAP_NGAP_PDU_u { + struct ASN_NGAP_InitiatingMessage *initiatingMessage; + struct ASN_NGAP_SuccessfulOutcome *successfulOutcome; + struct ASN_NGAP_UnsuccessfulOutcome *unsuccessfulOutcome; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAP_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAP_PDU; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGAP_PDU_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.c b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.c new file mode 100644 index 0000000..7d147e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGAPIESupportInformationRequestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem, ngap_ProtocolIE_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngap-ProtocolIE-Id" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngap-ProtocolIE-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationRequestItem), + offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem = { + "NGAPIESupportInformationRequestItem", + "NGAPIESupportInformationRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.h b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.h new file mode 100644 index 0000000..ef1ac07 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGAPIESupportInformationRequestItem_H_ +#define _ASN_NGAP_NGAPIESupportInformationRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGAPIESupportInformationRequestItem */ +typedef struct ASN_NGAP_NGAPIESupportInformationRequestItem { + ASN_NGAP_ProtocolIE_ID_t ngap_ProtocolIE_Id; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGAPIESupportInformationRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.c b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.c new file mode 100644 index 0000000..1511a47 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGAPIESupportInformationRequestList.h" + +#include "ASN_NGAP_NGAPIESupportInformationRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGAPIESupportInformationRequestList_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_ASN_NGAP_NGAPIESupportInformationRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestList_specs_1 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationRequestList), + offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList = { + "NGAPIESupportInformationRequestList", + "NGAPIESupportInformationRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGAPIESupportInformationRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.h b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.h new file mode 100644 index 0000000..d452551 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGAPIESupportInformationRequestList_H_ +#define _ASN_NGAP_NGAPIESupportInformationRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGAPIESupportInformationRequestItem; + +/* ASN_NGAP_NGAPIESupportInformationRequestList */ +typedef struct ASN_NGAP_NGAPIESupportInformationRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_NGAPIESupportInformationRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGAPIESupportInformationRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGAPIESupportInformationRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.c b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.c new file mode 100644 index 0000000..7bd3768 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGAPIESupportInformationResponseItem.h" + +#include "ASN_NGAP_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_ASN_NGAP_ngap_ProtocolIESupportInfo_constr_3 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_ASN_NGAP_ngap_ProtocolIEPresenceInfo_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_ngap_ProtocolIESupportInfo_value2enum_3[] = { + { 0, 9, "supported" }, + { 1, 13, "not-supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ngap_ProtocolIESupportInfo_enum2value_3[] = { + 1, /* not-supported(1) */ + 0 /* supported(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ngap_ProtocolIESupportInfo_specs_3 = { + asn_MAP_ASN_NGAP_ngap_ProtocolIESupportInfo_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ngap_ProtocolIESupportInfo_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_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_ASN_NGAP_ngap_ProtocolIESupportInfo_3 = { + "ngap-ProtocolIESupportInfo", + "ngap-ProtocolIESupportInfo", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3, + sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_ngap_ProtocolIESupportInfo_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ngap_ProtocolIESupportInfo_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_ngap_ProtocolIEPresenceInfo_value2enum_7[] = { + { 0, 7, "present" }, + { 1, 11, "not-present" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ngap_ProtocolIEPresenceInfo_enum2value_7[] = { + 1, /* not-present(1) */ + 0 /* present(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ngap_ProtocolIEPresenceInfo_specs_7 = { + asn_MAP_ASN_NGAP_ngap_ProtocolIEPresenceInfo_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ngap_ProtocolIEPresenceInfo_enum2value_7, /* 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_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7[] = { + (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_ASN_NGAP_ngap_ProtocolIEPresenceInfo_7 = { + "ngap-ProtocolIEPresenceInfo", + "ngap-ProtocolIEPresenceInfo", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7, + sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_ngap_ProtocolIEPresenceInfo_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ngap_ProtocolIEPresenceInfo_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem, ngap_ProtocolIE_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngap-ProtocolIE-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem, ngap_ProtocolIESupportInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngap-ProtocolIESupportInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem, ngap_ProtocolIEPresenceInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngap-ProtocolIEPresenceInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ngap-ProtocolIE-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ngap-ProtocolIESupportInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ngap-ProtocolIEPresenceInfo */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_specs_1 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationResponseItem), + offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem, _asn_ctx), + asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem = { + "NGAPIESupportInformationResponseItem", + "NGAPIESupportInformationResponseItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.h b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.h new file mode 100644 index 0000000..1c3f2b1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseItem.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGAPIESupportInformationResponseItem_H_ +#define _ASN_NGAP_NGAPIESupportInformationResponseItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-ID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIESupportInfo { + ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIESupportInfo_supported = 0, + ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIESupportInfo_not_supported = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIESupportInfo; +typedef enum ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIEPresenceInfo { + ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIEPresenceInfo_present = 0, + ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIEPresenceInfo_not_present = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NGAPIESupportInformationResponseItem__ngap_ProtocolIEPresenceInfo; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGAPIESupportInformationResponseItem */ +typedef struct ASN_NGAP_NGAPIESupportInformationResponseItem { + ASN_NGAP_ProtocolIE_ID_t ngap_ProtocolIE_Id; + long ngap_ProtocolIESupportInfo; + long ngap_ProtocolIEPresenceInfo; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationResponseItem_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ngap_ProtocolIESupportInfo_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ngap_ProtocolIEPresenceInfo_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGAPIESupportInformationResponseItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.c b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.c new file mode 100644 index 0000000..4eb9435 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGAPIESupportInformationResponseList.h" + +#include "ASN_NGAP_NGAPIESupportInformationResponseItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGAPIESupportInformationResponseList_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_ASN_NGAP_NGAPIESupportInformationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseList_specs_1 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationResponseList), + offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList = { + "NGAPIESupportInformationResponseList", + "NGAPIESupportInformationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGAPIESupportInformationResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.h b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.h new file mode 100644 index 0000000..ee776a5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGAPIESupportInformationResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGAPIESupportInformationResponseList_H_ +#define _ASN_NGAP_NGAPIESupportInformationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGAPIESupportInformationResponseItem; + +/* ASN_NGAP_NGAPIESupportInformationResponseList */ +typedef struct ASN_NGAP_NGAPIESupportInformationResponseList { + A_SEQUENCE_OF(struct ASN_NGAP_NGAPIESupportInformationResponseItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGAPIESupportInformationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGAPIESupportInformationResponseList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CGI.c b/src/asn/ngap/ASN_NGAP_NGRAN-CGI.c new file mode 100644 index 0000000..65badff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CGI.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-CGI.h" + +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CGI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CGI_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGRAN_CGI, choice.nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGRAN_CGI, choice.eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NGRAN_CGI, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CGI_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_CGI), + offsetof(struct ASN_NGAP_NGRAN_CGI, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_CGI, present), + sizeof(((struct ASN_NGAP_NGRAN_CGI *)0)->present), + asn_MAP_ASN_NGAP_NGRAN_CGI_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CGI = { + "NGRAN-CGI", + "NGRAN-CGI", + &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_ASN_NGAP_NGRAN_CGI_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CGI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CGI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CGI.h b/src/asn/ngap/ASN_NGAP_NGRAN-CGI.h new file mode 100644 index 0000000..a99469d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CGI.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_CGI_H_ +#define _ASN_NGAP_NGRAN_CGI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NGRAN_CGI_PR { + ASN_NGAP_NGRAN_CGI_PR_NOTHING, /* No components present */ + ASN_NGAP_NGRAN_CGI_PR_nR_CGI, + ASN_NGAP_NGRAN_CGI_PR_eUTRA_CGI, + ASN_NGAP_NGRAN_CGI_PR_choice_Extensions +} ASN_NGAP_NGRAN_CGI_PR; + +/* Forward declarations */ +struct ASN_NGAP_NR_CGI; +struct ASN_NGAP_EUTRA_CGI; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NGRAN-CGI */ +typedef struct ASN_NGAP_NGRAN_CGI { + ASN_NGAP_NGRAN_CGI_PR present; + union ASN_NGAP_NGRAN_CGI_u { + struct ASN_NGAP_NR_CGI *nR_CGI; + struct ASN_NGAP_EUTRA_CGI *eUTRA_CGI; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CGI; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CGI_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CGI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_CGI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.c b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.c new file mode 100644 index 0000000..b4701a0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-CellReportItem.h" + +#include "ASN_NGAP_NGRAN-RadioResourceStatus.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellReportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, nGRAN_CompositeAvailableCapacityGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CompositeAvailableCapacityGroup" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, nGRAN_NumberOfActiveUEs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-NumberOfActiveUEs" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, nGRAN_NoofRRCConnections), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-NoofRRCConnections" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, nGRAN_RadioResourceStatus), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-RadioResourceStatus" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_CellReportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_CellReportItem_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CellReportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nGRAN-CompositeAvailableCapacityGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nGRAN-NumberOfActiveUEs */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nGRAN-NoofRRCConnections */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nGRAN-RadioResourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportItem_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_CellReportItem), + offsetof(struct ASN_NGAP_NGRAN_CellReportItem, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_CellReportItem_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_CellReportItem_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem = { + "NGRAN-CellReportItem", + "NGRAN-CellReportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellReportItem_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CellReportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.h b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.h new file mode 100644 index 0000000..9704a98 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportItem.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_CellReportItem_H_ +#define _ASN_NGAP_NGRAN_CellReportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_EUTRAN-CompositeAvailableCapacityGroup.h" +#include "ASN_NGAP_NGRAN-NumberOfActiveUEs.h" +#include "ASN_NGAP_NGRAN-NoofRRCConnections.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_RadioResourceStatus; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-CellReportItem */ +typedef struct ASN_NGAP_NGRAN_CellReportItem { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_t nGRAN_CompositeAvailableCapacityGroup; + ASN_NGAP_NGRAN_NumberOfActiveUEs_t *nGRAN_NumberOfActiveUEs; /* OPTIONAL */ + ASN_NGAP_NGRAN_NoofRRCConnections_t *nGRAN_NoofRRCConnections; /* OPTIONAL */ + struct ASN_NGAP_NGRAN_RadioResourceStatus *nGRAN_RadioResourceStatus; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellReportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellReportItem_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_CellReportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.c b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.c new file mode 100644 index 0000000..9389976 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-CellReportList.h" + +#include "ASN_NGAP_NGRAN-CellReportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CellReportList_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_ASN_NGAP_NGRAN_CellReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_CellReportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportList_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_CellReportList), + offsetof(struct ASN_NGAP_NGRAN_CellReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportList = { + "NGRAN-CellReportList", + "NGRAN-CellReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRAN_CellReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NGRAN_CellReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.h b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.h new file mode 100644 index 0000000..7bf46a3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_CellReportList_H_ +#define _ASN_NGAP_NGRAN_CellReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CellReportItem; + +/* ASN_NGAP_NGRAN-CellReportList */ +typedef struct ASN_NGAP_NGRAN_CellReportList { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CellReportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CellReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_CellReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.c b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.c new file mode 100644 index 0000000..8e46722 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-CellToReportItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellToReportItem, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_CellToReportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_CellToReportItem), + offsetof(struct ASN_NGAP_NGRAN_CellToReportItem, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem = { + "NGRAN-CellToReportItem", + "NGRAN-CellToReportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.h b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.h new file mode 100644 index 0000000..462b7de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_CellToReportItem_H_ +#define _ASN_NGAP_NGRAN_CellToReportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-CellToReportItem */ +typedef struct ASN_NGAP_NGRAN_CellToReportItem { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellToReportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_CellToReportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.c b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.c new file mode 100644 index 0000000..f069025 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-CellToReportList.h" + +#include "ASN_NGAP_NGRAN-CellToReportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CellToReportList_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_ASN_NGAP_NGRAN_CellToReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_CellToReportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportList_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_CellToReportList), + offsetof(struct ASN_NGAP_NGRAN_CellToReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportList = { + "NGRAN-CellToReportList", + "NGRAN-CellToReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRAN_CellToReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellToReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NGRAN_CellToReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.h b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.h new file mode 100644 index 0000000..d9b8bb9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-CellToReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_CellToReportList_H_ +#define _ASN_NGAP_NGRAN_CellToReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_CellToReportItem; + +/* ASN_NGAP_NGRAN-CellToReportList */ +typedef struct ASN_NGAP_NGRAN_CellToReportList { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CellToReportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellToReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellToReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_CellToReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_CellToReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c b/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c new file mode 100644 index 0000000..7de8dd7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-NoofRRCConnections.h" + +int +ASN_NGAP_NGRAN_NoofRRCConnections_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 <= 65536)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_NGRAN_NoofRRCConnections_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 16, -1, 1, 65536 } /* (1..65536,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections = { + "NGRAN-NoofRRCConnections", + "NGRAN-NoofRRCConnections", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRAN_NoofRRCConnections_constr_1, ASN_NGAP_NGRAN_NoofRRCConnections_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h b/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h new file mode 100644 index 0000000..16b4b07 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-NoofRRCConnections.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_NoofRRCConnections_H_ +#define _ASN_NGAP_NGRAN_NoofRRCConnections_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGRAN-NoofRRCConnections */ +typedef long ASN_NGAP_NGRAN_NoofRRCConnections_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_NoofRRCConnections_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_NoofRRCConnections; +asn_struct_free_f ASN_NGAP_NGRAN_NoofRRCConnections_free; +asn_struct_print_f ASN_NGAP_NGRAN_NoofRRCConnections_print; +asn_constr_check_f ASN_NGAP_NGRAN_NoofRRCConnections_constraint; +ber_type_decoder_f ASN_NGAP_NGRAN_NoofRRCConnections_decode_ber; +der_type_encoder_f ASN_NGAP_NGRAN_NoofRRCConnections_encode_der; +xer_type_decoder_f ASN_NGAP_NGRAN_NoofRRCConnections_decode_xer; +xer_type_encoder_f ASN_NGAP_NGRAN_NoofRRCConnections_encode_xer; +per_type_decoder_f ASN_NGAP_NGRAN_NoofRRCConnections_decode_uper; +per_type_encoder_f ASN_NGAP_NGRAN_NoofRRCConnections_encode_uper; +per_type_decoder_f ASN_NGAP_NGRAN_NoofRRCConnections_decode_aper; +per_type_encoder_f ASN_NGAP_NGRAN_NoofRRCConnections_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_NoofRRCConnections_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c b/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c new file mode 100644 index 0000000..88eec6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-NumberOfActiveUEs.h" + +int +ASN_NGAP_NGRAN_NumberOfActiveUEs_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 <= 16777215)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_NGRAN_NumberOfActiveUEs_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 24, -1, 0, 16777215 } /* (0..16777215,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs = { + "NGRAN-NumberOfActiveUEs", + "NGRAN-NumberOfActiveUEs", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRAN_NumberOfActiveUEs_constr_1, ASN_NGAP_NGRAN_NumberOfActiveUEs_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h b/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h new file mode 100644 index 0000000..dc6452e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-NumberOfActiveUEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_NumberOfActiveUEs_H_ +#define _ASN_NGAP_NGRAN_NumberOfActiveUEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGRAN-NumberOfActiveUEs */ +typedef long ASN_NGAP_NGRAN_NumberOfActiveUEs_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_NumberOfActiveUEs_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_NumberOfActiveUEs; +asn_struct_free_f ASN_NGAP_NGRAN_NumberOfActiveUEs_free; +asn_struct_print_f ASN_NGAP_NGRAN_NumberOfActiveUEs_print; +asn_constr_check_f ASN_NGAP_NGRAN_NumberOfActiveUEs_constraint; +ber_type_decoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_decode_ber; +der_type_encoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_encode_der; +xer_type_decoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_decode_xer; +xer_type_encoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_encode_xer; +per_type_decoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_decode_uper; +per_type_encoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_encode_uper; +per_type_decoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_decode_aper; +per_type_encoder_f ASN_NGAP_NGRAN_NumberOfActiveUEs_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_NumberOfActiveUEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c b/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c new file mode 100644 index 0000000..8a6dc50 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.c @@ -0,0 +1,293 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-RadioResourceStatus.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_dL_GBR_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_GBR_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_dL_non_GBR_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_non_GBR_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_dL_Total_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_uL_Total_PRB_usage_for_MIMO_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 <= 100)) { + /* Constraint 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_ASN_NGAP_dL_GBR_PRB_usage_for_MIMO_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_GBR_PRB_usage_for_MIMO_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_dL_non_GBR_PRB_usage_for_MIMO_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_non_GBR_PRB_usage_for_MIMO_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_dL_Total_PRB_usage_for_MIMO_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uL_Total_PRB_usage_for_MIMO_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 100 } /* (0..100) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, dL_GBR_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_GBR_PRB_usage_for_MIMO_constr_2, memb_ASN_NGAP_dL_GBR_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "dL-GBR-PRB-usage-for-MIMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, uL_GBR_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_GBR_PRB_usage_for_MIMO_constr_3, memb_ASN_NGAP_uL_GBR_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "uL-GBR-PRB-usage-for-MIMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, dL_non_GBR_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_non_GBR_PRB_usage_for_MIMO_constr_4, memb_ASN_NGAP_dL_non_GBR_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "dL-non-GBR-PRB-usage-for-MIMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, uL_non_GBR_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_non_GBR_PRB_usage_for_MIMO_constr_5, memb_ASN_NGAP_uL_non_GBR_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "uL-non-GBR-PRB-usage-for-MIMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, dL_Total_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dL_Total_PRB_usage_for_MIMO_constr_6, memb_ASN_NGAP_dL_Total_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "dL-Total-PRB-usage-for-MIMO" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, uL_Total_PRB_usage_for_MIMO), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uL_Total_PRB_usage_for_MIMO_constr_7, memb_ASN_NGAP_uL_Total_PRB_usage_for_MIMO_constraint_1 }, + 0, 0, /* No default value */ + "uL-Total-PRB-usage-for-MIMO" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_oms_1[] = { 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-GBR-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-GBR-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dL-non-GBR-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* uL-non-GBR-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dL-Total-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* uL-Total-PRB-usage-for-MIMO */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_RadioResourceStatus), + offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus = { + "NGRAN-RadioResourceStatus", + "NGRAN-RadioResourceStatus", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h b/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h new file mode 100644 index 0000000..4ca460b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-RadioResourceStatus.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_RadioResourceStatus_H_ +#define _ASN_NGAP_NGRAN_RadioResourceStatus_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-RadioResourceStatus */ +typedef struct ASN_NGAP_NGRAN_RadioResourceStatus { + long dL_GBR_PRB_usage_for_MIMO; + long uL_GBR_PRB_usage_for_MIMO; + long dL_non_GBR_PRB_usage_for_MIMO; + long uL_non_GBR_PRB_usage_for_MIMO; + long dL_Total_PRB_usage_for_MIMO; + long uL_Total_PRB_usage_for_MIMO; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_RadioResourceStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_RadioResourceStatus_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c new file mode 100644 index 0000000..7c8b2eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-ReportingStatusIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs, nGRAN_CellReportList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CellReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CellReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CellReportList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingStatusIEs), + offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs = { + "NGRAN-ReportingStatusIEs", + "NGRAN-ReportingStatusIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h new file mode 100644 index 0000000..51b08af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingStatusIEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_ReportingStatusIEs_H_ +#define _ASN_NGAP_NGRAN_ReportingStatusIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CellReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-ReportingStatusIEs */ +typedef struct ASN_NGAP_NGRAN_ReportingStatusIEs { + ASN_NGAP_NGRAN_CellReportList_t nGRAN_CellReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_ReportingStatusIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_ReportingStatusIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c new file mode 100644 index 0000000..a542ba1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-ReportingSystemIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs, nGRAN_CellToReportList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CellToReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CellToReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CellToReportList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingSystemIEs), + offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs = { + "NGRAN-ReportingSystemIEs", + "NGRAN-ReportingSystemIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h new file mode 100644 index 0000000..b987772 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-ReportingSystemIEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_ReportingSystemIEs_H_ +#define _ASN_NGAP_NGRAN_ReportingSystemIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CellToReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-ReportingSystemIEs */ +typedef struct ASN_NGAP_NGRAN_ReportingSystemIEs { + ASN_NGAP_NGRAN_CellToReportList_t nGRAN_CellToReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_ReportingSystemIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_ReportingSystemIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.c b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.c new file mode 100644 index 0000000..11b1755 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h" + +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem, tNLAssociationTransportLayerAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddress" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem, tNLAssociationTransportLayerAddressAMF), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationTransportLayerAddressAMF" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationTransportLayerAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tNLAssociationTransportLayerAddressAMF */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem), + offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem = { + "NGRAN-TNLAssociationToRemoveItem", + "NGRAN-TNLAssociationToRemoveItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h new file mode 100644 index 0000000..f175594 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_H_ +#define _ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CPTransportLayerInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NGRAN-TNLAssociationToRemoveItem */ +typedef struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem { + ASN_NGAP_CPTransportLayerInformation_t tNLAssociationTransportLayerAddress; + struct ASN_NGAP_CPTransportLayerInformation *tNLAssociationTransportLayerAddressAMF; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.c b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.c new file mode 100644 index 0000000..1919ba6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h" + +#include "ASN_NGAP_NGRAN-TNLAssociationToRemoveItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_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_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_specs_1 = { + sizeof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveList), + offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList = { + "NGRAN-TNLAssociationToRemoveList", + "NGRAN-TNLAssociationToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h new file mode 100644 index 0000000..89e9506 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRAN_TNLAssociationToRemoveList_H_ +#define _ASN_NGAP_NGRAN_TNLAssociationToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem; + +/* ASN_NGAP_NGRAN-TNLAssociationToRemoveList */ +typedef struct ASN_NGAP_NGRAN_TNLAssociationToRemoveList { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_TNLAssociationToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRAN_TNLAssociationToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRAN_TNLAssociationToRemoveList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGRANTraceID.c b/src/asn/ngap/ASN_NGAP_NGRANTraceID.c new file mode 100644 index 0000000..2f26ab2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRANTraceID.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGRANTraceID.h" + +int +ASN_NGAP_NGRANTraceID_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_ASN_NGAP_NGRANTraceID_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_ASN_NGAP_NGRANTraceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRANTraceID = { + "NGRANTraceID", + "NGRANTraceID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NGRANTraceID_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGRANTraceID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRANTraceID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRANTraceID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRANTraceID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGRANTraceID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NGRANTraceID_constr_1, ASN_NGAP_NGRANTraceID_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGRANTraceID.h b/src/asn/ngap/ASN_NGAP_NGRANTraceID.h new file mode 100644 index 0000000..a80677f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGRANTraceID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGRANTraceID_H_ +#define _ASN_NGAP_NGRANTraceID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGRANTraceID */ +typedef OCTET_STRING_t ASN_NGAP_NGRANTraceID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NGRANTraceID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRANTraceID; +asn_struct_free_f ASN_NGAP_NGRANTraceID_free; +asn_struct_print_f ASN_NGAP_NGRANTraceID_print; +asn_constr_check_f ASN_NGAP_NGRANTraceID_constraint; +ber_type_decoder_f ASN_NGAP_NGRANTraceID_decode_ber; +der_type_encoder_f ASN_NGAP_NGRANTraceID_encode_der; +xer_type_decoder_f ASN_NGAP_NGRANTraceID_decode_xer; +xer_type_encoder_f ASN_NGAP_NGRANTraceID_encode_xer; +per_type_decoder_f ASN_NGAP_NGRANTraceID_decode_uper; +per_type_encoder_f ASN_NGAP_NGRANTraceID_encode_uper; +per_type_decoder_f ASN_NGAP_NGRANTraceID_decode_aper; +per_type_encoder_f ASN_NGAP_NGRANTraceID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGRANTraceID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGReset.c b/src/asn/ngap/ASN_NGAP_NGReset.c new file mode 100644 index 0000000..cd4f66d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGReset.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGReset.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGReset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGReset, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGReset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGReset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGReset_specs_1 = { + sizeof(struct ASN_NGAP_NGReset), + offsetof(struct ASN_NGAP_NGReset, _asn_ctx), + asn_MAP_ASN_NGAP_NGReset_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_ASN_NGAP_NGReset = { + "NGReset", + "NGReset", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGReset_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGReset_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGReset_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGReset_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGReset_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGReset_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGReset_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NGReset_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGReset.h b/src/asn/ngap/ASN_NGAP_NGReset.h new file mode 100644 index 0000000..528d0db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGReset.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGReset_H_ +#define _ASN_NGAP_NGReset_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGReset */ +typedef struct ASN_NGAP_NGReset { + ASN_NGAP_ProtocolIE_Container_123P65_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGReset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGReset; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGReset_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGReset_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGReset_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.c b/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.c new file mode 100644 index 0000000..9b1c3bf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGResetAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGResetAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_NGResetAcknowledge), + offsetof(struct ASN_NGAP_NGResetAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_NGResetAcknowledge_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_ASN_NGAP_NGResetAcknowledge = { + "NGResetAcknowledge", + "NGResetAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGResetAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NGResetAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.h b/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.h new file mode 100644 index 0000000..ba7de72 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGResetAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGResetAcknowledge_H_ +#define _ASN_NGAP_NGResetAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGResetAcknowledge */ +typedef struct ASN_NGAP_NGResetAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P66_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGResetAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGResetAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGResetAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGSetupFailure.c b/src/asn/ngap/ASN_NGAP_NGSetupFailure.c new file mode 100644 index 0000000..553ab9e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGSetupFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupFailure_specs_1 = { + sizeof(struct ASN_NGAP_NGSetupFailure), + offsetof(struct ASN_NGAP_NGSetupFailure, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupFailure_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_ASN_NGAP_NGSetupFailure = { + "NGSetupFailure", + "NGSetupFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGSetupFailure.h b/src/asn/ngap/ASN_NGAP_NGSetupFailure.h new file mode 100644 index 0000000..840c22e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGSetupFailure_H_ +#define _ASN_NGAP_NGSetupFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGSetupFailure */ +typedef struct ASN_NGAP_NGSetupFailure { + ASN_NGAP_ProtocolIE_Container_123P57_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGSetupFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGSetupFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGSetupRequest.c b/src/asn/ngap/ASN_NGAP_NGSetupRequest.c new file mode 100644 index 0000000..3520ed0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupRequest_specs_1 = { + sizeof(struct ASN_NGAP_NGSetupRequest), + offsetof(struct ASN_NGAP_NGSetupRequest, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupRequest_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_ASN_NGAP_NGSetupRequest = { + "NGSetupRequest", + "NGSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGSetupRequest.h b/src/asn/ngap/ASN_NGAP_NGSetupRequest.h new file mode 100644 index 0000000..59d33c0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGSetupRequest_H_ +#define _ASN_NGAP_NGSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGSetupRequest */ +typedef struct ASN_NGAP_NGSetupRequest { + ASN_NGAP_ProtocolIE_Container_123P55_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGSetupRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NGSetupResponse.c b/src/asn/ngap/ASN_NGAP_NGSetupResponse.c new file mode 100644 index 0000000..1f17536 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NGSetupResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupResponse_specs_1 = { + sizeof(struct ASN_NGAP_NGSetupResponse), + offsetof(struct ASN_NGAP_NGSetupResponse, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupResponse_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_ASN_NGAP_NGSetupResponse = { + "NGSetupResponse", + "NGSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_NGSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NGSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NGSetupResponse.h b/src/asn/ngap/ASN_NGAP_NGSetupResponse.h new file mode 100644 index 0000000..a254696 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NGSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NGSetupResponse_H_ +#define _ASN_NGAP_NGSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NGSetupResponse */ +typedef struct ASN_NGAP_NGSetupResponse { + ASN_NGAP_ProtocolIE_Container_123P56_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NGSetupResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NID.c b/src/asn/ngap/ASN_NGAP_NID.c new file mode 100644 index 0000000..e70634d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NID.h" + +int +ASN_NGAP_NID_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 == 44)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_NID_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 44, 44 } /* (SIZE(44..44)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NID = { + "NID", + "NID", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_NID_tags_1, + sizeof(asn_DEF_ASN_NGAP_NID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NID_constr_1, ASN_NGAP_NID_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NID.h b/src/asn/ngap/ASN_NGAP_NID.h new file mode 100644 index 0000000..b5fb0e6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NID_H_ +#define _ASN_NGAP_NID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NID */ +typedef BIT_STRING_t ASN_NGAP_NID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NID; +asn_struct_free_f ASN_NGAP_NID_free; +asn_struct_print_f ASN_NGAP_NID_print; +asn_constr_check_f ASN_NGAP_NID_constraint; +ber_type_decoder_f ASN_NGAP_NID_decode_ber; +der_type_encoder_f ASN_NGAP_NID_encode_der; +xer_type_decoder_f ASN_NGAP_NID_decode_xer; +xer_type_encoder_f ASN_NGAP_NID_encode_xer; +per_type_decoder_f ASN_NGAP_NID_decode_uper; +per_type_encoder_f ASN_NGAP_NID_encode_uper; +per_type_decoder_f ASN_NGAP_NID_decode_aper; +per_type_encoder_f ASN_NGAP_NID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.c b/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.c new file mode 100644 index 0000000..607b30c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NPN-AccessInformation.h" + +#include "ASN_NGAP_CellCAGList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_AccessInformation_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_ASN_NGAP_NPN_AccessInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_AccessInformation, choice.pNI_NPN_Access_Information), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CellCAGList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pNI-NPN-Access-Information" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_AccessInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_AccessInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pNI-NPN-Access-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_AccessInformation_specs_1 = { + sizeof(struct ASN_NGAP_NPN_AccessInformation), + offsetof(struct ASN_NGAP_NPN_AccessInformation, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_AccessInformation, present), + sizeof(((struct ASN_NGAP_NPN_AccessInformation *)0)->present), + asn_MAP_ASN_NGAP_NPN_AccessInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_AccessInformation = { + "NPN-AccessInformation", + "NPN-AccessInformation", + &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_ASN_NGAP_NPN_AccessInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NPN_AccessInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_AccessInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.h b/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.h new file mode 100644 index 0000000..c82915b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-AccessInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NPN_AccessInformation_H_ +#define _ASN_NGAP_NPN_AccessInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NPN_AccessInformation_PR { + ASN_NGAP_NPN_AccessInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_NPN_AccessInformation_PR_pNI_NPN_Access_Information, + ASN_NGAP_NPN_AccessInformation_PR_choice_Extensions +} ASN_NGAP_NPN_AccessInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_CellCAGList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NPN-AccessInformation */ +typedef struct ASN_NGAP_NPN_AccessInformation { + ASN_NGAP_NPN_AccessInformation_PR present; + union ASN_NGAP_NPN_AccessInformation_u { + struct ASN_NGAP_CellCAGList *pNI_NPN_Access_Information; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NPN_AccessInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_AccessInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_AccessInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_AccessInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_AccessInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NPN_AccessInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.c b/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.c new file mode 100644 index 0000000..7f78b29 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NPN-MobilityInformation.h" + +#include "ASN_NGAP_SNPN-MobilityInformation.h" +#include "ASN_NGAP_PNI-NPN-MobilityInformation.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_MobilityInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_MobilityInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation, choice.sNPN_MobilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SNPN_MobilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sNPN-MobilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation, choice.pNI_NPN_MobilityInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pNI-NPN-MobilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_MobilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sNPN-MobilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pNI-NPN-MobilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_MobilityInformation_specs_1 = { + sizeof(struct ASN_NGAP_NPN_MobilityInformation), + offsetof(struct ASN_NGAP_NPN_MobilityInformation, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_MobilityInformation, present), + sizeof(((struct ASN_NGAP_NPN_MobilityInformation *)0)->present), + asn_MAP_ASN_NGAP_NPN_MobilityInformation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_MobilityInformation = { + "NPN-MobilityInformation", + "NPN-MobilityInformation", + &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_ASN_NGAP_NPN_MobilityInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NPN_MobilityInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_MobilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.h b/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.h new file mode 100644 index 0000000..3baacde --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-MobilityInformation.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NPN_MobilityInformation_H_ +#define _ASN_NGAP_NPN_MobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NPN_MobilityInformation_PR { + ASN_NGAP_NPN_MobilityInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_NPN_MobilityInformation_PR_sNPN_MobilityInformation, + ASN_NGAP_NPN_MobilityInformation_PR_pNI_NPN_MobilityInformation, + ASN_NGAP_NPN_MobilityInformation_PR_choice_Extensions +} ASN_NGAP_NPN_MobilityInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_SNPN_MobilityInformation; +struct ASN_NGAP_PNI_NPN_MobilityInformation; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NPN-MobilityInformation */ +typedef struct ASN_NGAP_NPN_MobilityInformation { + ASN_NGAP_NPN_MobilityInformation_PR present; + union ASN_NGAP_NPN_MobilityInformation_u { + struct ASN_NGAP_SNPN_MobilityInformation *sNPN_MobilityInformation; + struct ASN_NGAP_PNI_NPN_MobilityInformation *pNI_NPN_MobilityInformation; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NPN_MobilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_MobilityInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_MobilityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_MobilityInformation_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_MobilityInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NPN_MobilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.c b/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.c new file mode 100644 index 0000000..324daa5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NPN-PagingAssistanceInformation.h" + +#include "ASN_NGAP_Allowed-PNI-NPN-List.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_PagingAssistanceInformation_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_ASN_NGAP_NPN_PagingAssistanceInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation, choice.pNI_NPN_PagingAssistance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pNI-NPN-PagingAssistance" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_PagingAssistanceInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pNI-NPN-PagingAssistance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_specs_1 = { + sizeof(struct ASN_NGAP_NPN_PagingAssistanceInformation), + offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation, present), + sizeof(((struct ASN_NGAP_NPN_PagingAssistanceInformation *)0)->present), + asn_MAP_ASN_NGAP_NPN_PagingAssistanceInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation = { + "NPN-PagingAssistanceInformation", + "NPN-PagingAssistanceInformation", + &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_ASN_NGAP_NPN_PagingAssistanceInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.h b/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.h new file mode 100644 index 0000000..c24e45c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-PagingAssistanceInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NPN_PagingAssistanceInformation_H_ +#define _ASN_NGAP_NPN_PagingAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NPN_PagingAssistanceInformation_PR { + ASN_NGAP_NPN_PagingAssistanceInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_NPN_PagingAssistanceInformation_PR_pNI_NPN_PagingAssistance, + ASN_NGAP_NPN_PagingAssistanceInformation_PR_choice_Extensions +} ASN_NGAP_NPN_PagingAssistanceInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_Allowed_PNI_NPN_List; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NPN-PagingAssistanceInformation */ +typedef struct ASN_NGAP_NPN_PagingAssistanceInformation { + ASN_NGAP_NPN_PagingAssistanceInformation_PR present; + union ASN_NGAP_NPN_PagingAssistanceInformation_u { + struct ASN_NGAP_Allowed_PNI_NPN_List *pNI_NPN_PagingAssistance; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NPN_PagingAssistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_PagingAssistanceInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NPN_PagingAssistanceInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NPN-Support.c b/src/asn/ngap/ASN_NGAP_NPN-Support.c new file mode 100644 index 0000000..012e41a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-Support.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NPN-Support.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_Support_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_ASN_NGAP_NPN_Support_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_Support, choice.sNPN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sNPN" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NPN_Support, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_Support_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sNPN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_Support_specs_1 = { + sizeof(struct ASN_NGAP_NPN_Support), + offsetof(struct ASN_NGAP_NPN_Support, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_Support, present), + sizeof(((struct ASN_NGAP_NPN_Support *)0)->present), + asn_MAP_ASN_NGAP_NPN_Support_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_Support = { + "NPN-Support", + "NPN-Support", + &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_ASN_NGAP_NPN_Support_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NPN_Support_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_Support_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NPN-Support.h b/src/asn/ngap/ASN_NGAP_NPN-Support.h new file mode 100644 index 0000000..4803a98 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NPN-Support.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NPN_Support_H_ +#define _ASN_NGAP_NPN_Support_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NPN_Support_PR { + ASN_NGAP_NPN_Support_PR_NOTHING, /* No components present */ + ASN_NGAP_NPN_Support_PR_sNPN, + ASN_NGAP_NPN_Support_PR_choice_Extensions +} ASN_NGAP_NPN_Support_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NPN-Support */ +typedef struct ASN_NGAP_NPN_Support { + ASN_NGAP_NPN_Support_PR present; + union ASN_NGAP_NPN_Support_u { + ASN_NGAP_NID_t sNPN; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NPN_Support_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_Support; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NPN_Support_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_Support_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NPN_Support_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NPN_Support_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-CGI.c b/src/asn/ngap/ASN_NGAP_NR-CGI.c new file mode 100644 index 0000000..d87e7ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-CGI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_CGI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_CGI, nRCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRCellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRCellIdentity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NR_CGI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NR_CGI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_CGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NR_CGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nRCellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_CGI_specs_1 = { + sizeof(struct ASN_NGAP_NR_CGI), + offsetof(struct ASN_NGAP_NR_CGI, _asn_ctx), + asn_MAP_ASN_NGAP_NR_CGI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NR_CGI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGI = { + "NR-CGI", + "NR-CGI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NR_CGI_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_CGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_CGI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_CGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NR_CGI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NR_CGI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-CGI.h b/src/asn/ngap/ASN_NGAP_NR-CGI.h new file mode 100644 index 0000000..7d68dc1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_CGI_H_ +#define _ASN_NGAP_NR_CGI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_NRCellIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NR-CGI */ +typedef struct ASN_NGAP_NR_CGI { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_NRCellIdentity_t nRCellIdentity; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_CGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_CGI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_CGI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-CGIList.c b/src/asn/ngap/ASN_NGAP_NR-CGIList.c new file mode 100644 index 0000000..9532a33 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-CGIList.h" + +#include "ASN_NGAP_NR-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_CGIList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_CGIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NR_CGIList_specs_1 = { + sizeof(struct ASN_NGAP_NR_CGIList), + offsetof(struct ASN_NGAP_NR_CGIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGIList = { + "NR-CGIList", + "NR-CGIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NR_CGIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_CGIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_CGIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_CGIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NR_CGIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NR_CGIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NR_CGIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-CGIList.h b/src/asn/ngap/ASN_NGAP_NR-CGIList.h new file mode 100644 index 0000000..fb11b60 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_CGIList_H_ +#define _ASN_NGAP_NR_CGIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NR_CGI; + +/* ASN_NGAP_NR-CGIList */ +typedef struct ASN_NGAP_NR_CGIList { + A_SEQUENCE_OF(struct ASN_NGAP_NR_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_CGIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NR_CGIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_CGIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_CGIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.c b/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.c new file mode 100644 index 0000000..3c7e57c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-CGIListForWarning.h" + +#include "ASN_NGAP_NR-CGI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_CGIListForWarning_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_ASN_NGAP_NR_CGIListForWarning_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NR_CGIListForWarning_specs_1 = { + sizeof(struct ASN_NGAP_NR_CGIListForWarning), + offsetof(struct ASN_NGAP_NR_CGIListForWarning, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGIListForWarning = { + "NR-CGIListForWarning", + "NR-CGIListForWarning", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_CGIListForWarning_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NR_CGIListForWarning_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NR_CGIListForWarning_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NR_CGIListForWarning_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.h b/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.h new file mode 100644 index 0000000..d544e9c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-CGIListForWarning.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_CGIListForWarning_H_ +#define _ASN_NGAP_NR_CGIListForWarning_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NR_CGI; + +/* ASN_NGAP_NR-CGIListForWarning */ +typedef struct ASN_NGAP_NR_CGIListForWarning { + A_SEQUENCE_OF(struct ASN_NGAP_NR_CGI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_CGIListForWarning_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGIListForWarning; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NR_CGIListForWarning_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGIListForWarning_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_CGIListForWarning_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_CGIListForWarning_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-PCI.c b/src/asn/ngap/ASN_NGAP_NR-PCI.c new file mode 100644 index 0000000..9e8f292 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-PCI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-PCI.h" + +int +ASN_NGAP_NR_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 <= 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_ASN_NGAP_NR_PCI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_NR_PCI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PCI = { + "NR-PCI", + "NR-PCI", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NR_PCI_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_PCI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_PCI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_PCI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_PCI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_PCI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NR_PCI_constr_1, ASN_NGAP_NR_PCI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-PCI.h b/src/asn/ngap/ASN_NGAP_NR-PCI.h new file mode 100644 index 0000000..04ff081 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-PCI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_PCI_H_ +#define _ASN_NGAP_NR_PCI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NR-PCI */ +typedef long ASN_NGAP_NR_PCI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_PCI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PCI; +asn_struct_free_f ASN_NGAP_NR_PCI_free; +asn_struct_print_f ASN_NGAP_NR_PCI_print; +asn_constr_check_f ASN_NGAP_NR_PCI_constraint; +ber_type_decoder_f ASN_NGAP_NR_PCI_decode_ber; +der_type_encoder_f ASN_NGAP_NR_PCI_encode_der; +xer_type_decoder_f ASN_NGAP_NR_PCI_decode_xer; +xer_type_encoder_f ASN_NGAP_NR_PCI_encode_xer; +per_type_decoder_f ASN_NGAP_NR_PCI_decode_uper; +per_type_encoder_f ASN_NGAP_NR_PCI_encode_uper; +per_type_decoder_f ASN_NGAP_NR_PCI_decode_aper; +per_type_encoder_f ASN_NGAP_NR_PCI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_PCI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.c b/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.c new file mode 100644 index 0000000..fa95ea9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-Paging-Time-Window.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_Paging_Time_Window_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_ASN_NGAP_NR_Paging_Time_Window_value2enum_1[] = { + { 0, 2, "s1" }, + { 1, 2, "s2" }, + { 2, 2, "s3" }, + { 3, 2, "s4" }, + { 4, 2, "s5" }, + { 5, 2, "s6" }, + { 6, 2, "s7" }, + { 7, 2, "s8" }, + { 8, 2, "s9" }, + { 9, 3, "s10" }, + { 10, 3, "s11" }, + { 11, 3, "s12" }, + { 12, 3, "s13" }, + { 13, 3, "s14" }, + { 14, 3, "s15" }, + { 15, 3, "s16" }, + { 16, 3, "s17" }, + { 17, 3, "s18" }, + { 18, 3, "s19" }, + { 19, 3, "s20" }, + { 20, 3, "s21" }, + { 21, 3, "s22" }, + { 22, 3, "s23" }, + { 23, 3, "s24" }, + { 24, 3, "s25" }, + { 25, 3, "s26" }, + { 26, 3, "s27" }, + { 27, 3, "s28" }, + { 28, 3, "s29" }, + { 29, 3, "s30" }, + { 30, 3, "s31" }, + { 31, 3, "s32" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NR_Paging_Time_Window_enum2value_1[] = { + 0, /* s1(0) */ + 9, /* s10(9) */ + 10, /* s11(10) */ + 11, /* s12(11) */ + 12, /* s13(12) */ + 13, /* s14(13) */ + 14, /* s15(14) */ + 15, /* s16(15) */ + 16, /* s17(16) */ + 17, /* s18(17) */ + 18, /* s19(18) */ + 1, /* s2(1) */ + 19, /* s20(19) */ + 20, /* s21(20) */ + 21, /* s22(21) */ + 22, /* s23(22) */ + 23, /* s24(23) */ + 24, /* s25(24) */ + 25, /* s26(25) */ + 26, /* s27(26) */ + 27, /* s28(27) */ + 28, /* s29(28) */ + 2, /* s3(2) */ + 29, /* s30(29) */ + 30, /* s31(30) */ + 31, /* s32(31) */ + 3, /* s4(3) */ + 4, /* s5(4) */ + 5, /* s6(5) */ + 6, /* s7(6) */ + 7, /* s8(7) */ + 8 /* s9(8) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NR_Paging_Time_Window_specs_1 = { + asn_MAP_ASN_NGAP_NR_Paging_Time_Window_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NR_Paging_Time_Window_enum2value_1, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_NGAP_NR_Paging_Time_Window_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_Paging_Time_Window = { + "NR-Paging-Time-Window", + "NR-Paging-Time-Window", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_Paging_Time_Window_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NR_Paging_Time_Window_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NR_Paging_Time_Window_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.h b/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.h new file mode 100644 index 0000000..8a86fa9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-Paging-Time-Window.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_Paging_Time_Window_H_ +#define _ASN_NGAP_NR_Paging_Time_Window_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NR_Paging_Time_Window { + ASN_NGAP_NR_Paging_Time_Window_s1 = 0, + ASN_NGAP_NR_Paging_Time_Window_s2 = 1, + ASN_NGAP_NR_Paging_Time_Window_s3 = 2, + ASN_NGAP_NR_Paging_Time_Window_s4 = 3, + ASN_NGAP_NR_Paging_Time_Window_s5 = 4, + ASN_NGAP_NR_Paging_Time_Window_s6 = 5, + ASN_NGAP_NR_Paging_Time_Window_s7 = 6, + ASN_NGAP_NR_Paging_Time_Window_s8 = 7, + ASN_NGAP_NR_Paging_Time_Window_s9 = 8, + ASN_NGAP_NR_Paging_Time_Window_s10 = 9, + ASN_NGAP_NR_Paging_Time_Window_s11 = 10, + ASN_NGAP_NR_Paging_Time_Window_s12 = 11, + ASN_NGAP_NR_Paging_Time_Window_s13 = 12, + ASN_NGAP_NR_Paging_Time_Window_s14 = 13, + ASN_NGAP_NR_Paging_Time_Window_s15 = 14, + ASN_NGAP_NR_Paging_Time_Window_s16 = 15, + /* + * Enumeration is extensible + */ + ASN_NGAP_NR_Paging_Time_Window_s17 = 16, + ASN_NGAP_NR_Paging_Time_Window_s18 = 17, + ASN_NGAP_NR_Paging_Time_Window_s19 = 18, + ASN_NGAP_NR_Paging_Time_Window_s20 = 19, + ASN_NGAP_NR_Paging_Time_Window_s21 = 20, + ASN_NGAP_NR_Paging_Time_Window_s22 = 21, + ASN_NGAP_NR_Paging_Time_Window_s23 = 22, + ASN_NGAP_NR_Paging_Time_Window_s24 = 23, + ASN_NGAP_NR_Paging_Time_Window_s25 = 24, + ASN_NGAP_NR_Paging_Time_Window_s26 = 25, + ASN_NGAP_NR_Paging_Time_Window_s27 = 26, + ASN_NGAP_NR_Paging_Time_Window_s28 = 27, + ASN_NGAP_NR_Paging_Time_Window_s29 = 28, + ASN_NGAP_NR_Paging_Time_Window_s30 = 29, + ASN_NGAP_NR_Paging_Time_Window_s31 = 30, + ASN_NGAP_NR_Paging_Time_Window_s32 = 31 +} e_ASN_NGAP_NR_Paging_Time_Window; + +/* ASN_NGAP_NR-Paging-Time-Window */ +typedef long ASN_NGAP_NR_Paging_Time_Window_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_Paging_Time_Window_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_Paging_Time_Window; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NR_Paging_Time_Window_specs_1; +asn_struct_free_f ASN_NGAP_NR_Paging_Time_Window_free; +asn_struct_print_f ASN_NGAP_NR_Paging_Time_Window_print; +asn_constr_check_f ASN_NGAP_NR_Paging_Time_Window_constraint; +ber_type_decoder_f ASN_NGAP_NR_Paging_Time_Window_decode_ber; +der_type_encoder_f ASN_NGAP_NR_Paging_Time_Window_encode_der; +xer_type_decoder_f ASN_NGAP_NR_Paging_Time_Window_decode_xer; +xer_type_encoder_f ASN_NGAP_NR_Paging_Time_Window_encode_xer; +per_type_decoder_f ASN_NGAP_NR_Paging_Time_Window_decode_uper; +per_type_encoder_f ASN_NGAP_NR_Paging_Time_Window_encode_uper; +per_type_decoder_f ASN_NGAP_NR_Paging_Time_Window_decode_aper; +per_type_encoder_f ASN_NGAP_NR_Paging_Time_Window_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_Paging_Time_Window_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c b/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c new file mode 100644 index 0000000..305a31a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-Paging-eDRX-Cycle.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_Paging_eDRX_Cycle_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_ASN_NGAP_NR_Paging_eDRX_Cycle_value2enum_1[] = { + { 0, 9, "hfquarter" }, + { 1, 6, "hfhalf" }, + { 2, 3, "hf1" }, + { 3, 3, "hf2" }, + { 4, 3, "hf4" }, + { 5, 3, "hf8" }, + { 6, 4, "hf16" }, + { 7, 4, "hf32" }, + { 8, 4, "hf64" }, + { 9, 5, "hf128" }, + { 10, 5, "hf256" }, + { 11, 5, "hf512" }, + { 12, 6, "hf1024" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NR_Paging_eDRX_Cycle_enum2value_1[] = { + 2, /* hf1(2) */ + 12, /* hf1024(12) */ + 9, /* hf128(9) */ + 6, /* hf16(6) */ + 3, /* hf2(3) */ + 10, /* hf256(10) */ + 7, /* hf32(7) */ + 4, /* hf4(4) */ + 11, /* hf512(11) */ + 8, /* hf64(8) */ + 5, /* hf8(5) */ + 1, /* hfhalf(1) */ + 0 /* hfquarter(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NR_Paging_eDRX_Cycle_specs_1 = { + asn_MAP_ASN_NGAP_NR_Paging_eDRX_Cycle_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NR_Paging_eDRX_Cycle_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_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle = { + "NR-Paging-eDRX-Cycle", + "NR-Paging-eDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NR_Paging_eDRX_Cycle_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NR_Paging_eDRX_Cycle_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h b/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h new file mode 100644 index 0000000..1af3844 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-Paging-eDRX-Cycle.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_Paging_eDRX_Cycle_H_ +#define _ASN_NGAP_NR_Paging_eDRX_Cycle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NR_Paging_eDRX_Cycle { + ASN_NGAP_NR_Paging_eDRX_Cycle_hfquarter = 0, + ASN_NGAP_NR_Paging_eDRX_Cycle_hfhalf = 1, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf1 = 2, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf2 = 3, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf4 = 4, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf8 = 5, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf16 = 6, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf32 = 7, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf64 = 8, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf128 = 9, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf256 = 10, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf512 = 11, + ASN_NGAP_NR_Paging_eDRX_Cycle_hf1024 = 12 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NR_Paging_eDRX_Cycle; + +/* ASN_NGAP_NR-Paging-eDRX-Cycle */ +typedef long ASN_NGAP_NR_Paging_eDRX_Cycle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NR_Paging_eDRX_Cycle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NR_Paging_eDRX_Cycle_specs_1; +asn_struct_free_f ASN_NGAP_NR_Paging_eDRX_Cycle_free; +asn_struct_print_f ASN_NGAP_NR_Paging_eDRX_Cycle_print; +asn_constr_check_f ASN_NGAP_NR_Paging_eDRX_Cycle_constraint; +ber_type_decoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_decode_ber; +der_type_encoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_encode_der; +xer_type_decoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_decode_xer; +xer_type_encoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_encode_xer; +per_type_decoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_decode_uper; +per_type_encoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_encode_uper; +per_type_decoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_decode_aper; +per_type_encoder_f ASN_NGAP_NR_Paging_eDRX_Cycle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_Paging_eDRX_Cycle_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.c b/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.c new file mode 100644 index 0000000..c3dca34 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NR-PagingeDRXInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation, nR_paging_eDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_Paging_eDRX_Cycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-paging-eDRX-Cycle" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation, nR_paging_Time_Window), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_Paging_Time_Window, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-paging-Time-Window" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-paging-eDRX-Cycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-paging-Time-Window */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_specs_1 = { + sizeof(struct ASN_NGAP_NR_PagingeDRXInformation), + offsetof(struct ASN_NGAP_NR_PagingeDRXInformation, _asn_ctx), + asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation = { + "NR-PagingeDRXInformation", + "NR-PagingeDRXInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.h b/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.h new file mode 100644 index 0000000..d42272f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NR-PagingeDRXInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NR_PagingeDRXInformation_H_ +#define _ASN_NGAP_NR_PagingeDRXInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-Paging-eDRX-Cycle.h" +#include "ASN_NGAP_NR-Paging-Time-Window.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NR-PagingeDRXInformation */ +typedef struct ASN_NGAP_NR_PagingeDRXInformation { + ASN_NGAP_NR_Paging_eDRX_Cycle_t nR_paging_eDRX_Cycle; + ASN_NGAP_NR_Paging_Time_Window_t *nR_paging_Time_Window; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_PagingeDRXInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NR_PagingeDRXInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRARFCN.c b/src/asn/ngap/ASN_NGAP_NRARFCN.c new file mode 100644 index 0000000..3a9c3cf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRARFCN.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRARFCN.h" + +int +ASN_NGAP_NRARFCN_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 <= 3279165)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_NRARFCN_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRARFCN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRARFCN = { + "NRARFCN", + "NRARFCN", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NRARFCN_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRARFCN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRARFCN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRARFCN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRARFCN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRARFCN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRARFCN_constr_1, ASN_NGAP_NRARFCN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRARFCN.h b/src/asn/ngap/ASN_NGAP_NRARFCN.h new file mode 100644 index 0000000..e648d6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRARFCN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRARFCN_H_ +#define _ASN_NGAP_NRARFCN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRARFCN */ +typedef long ASN_NGAP_NRARFCN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRARFCN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRARFCN; +asn_struct_free_f ASN_NGAP_NRARFCN_free; +asn_struct_print_f ASN_NGAP_NRARFCN_print; +asn_constr_check_f ASN_NGAP_NRARFCN_constraint; +ber_type_decoder_f ASN_NGAP_NRARFCN_decode_ber; +der_type_encoder_f ASN_NGAP_NRARFCN_encode_der; +xer_type_decoder_f ASN_NGAP_NRARFCN_decode_xer; +xer_type_encoder_f ASN_NGAP_NRARFCN_encode_xer; +per_type_decoder_f ASN_NGAP_NRARFCN_decode_uper; +per_type_encoder_f ASN_NGAP_NRARFCN_encode_uper; +per_type_decoder_f ASN_NGAP_NRARFCN_decode_aper; +per_type_encoder_f ASN_NGAP_NRARFCN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRARFCN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRCellIdentity.c b/src/asn/ngap/ASN_NGAP_NRCellIdentity.c new file mode 100644 index 0000000..8a3fd66 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRCellIdentity.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRCellIdentity.h" + +int +ASN_NGAP_NRCellIdentity_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_ASN_NGAP_NRCellIdentity_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_ASN_NGAP_NRCellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRCellIdentity = { + "NRCellIdentity", + "NRCellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_NRCellIdentity_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRCellIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRCellIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRCellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRCellIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRCellIdentity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRCellIdentity_constr_1, ASN_NGAP_NRCellIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRCellIdentity.h b/src/asn/ngap/ASN_NGAP_NRCellIdentity.h new file mode 100644 index 0000000..68b794f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRCellIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRCellIdentity_H_ +#define _ASN_NGAP_NRCellIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRCellIdentity */ +typedef BIT_STRING_t ASN_NGAP_NRCellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRCellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRCellIdentity; +asn_struct_free_f ASN_NGAP_NRCellIdentity_free; +asn_struct_print_f ASN_NGAP_NRCellIdentity_print; +asn_constr_check_f ASN_NGAP_NRCellIdentity_constraint; +ber_type_decoder_f ASN_NGAP_NRCellIdentity_decode_ber; +der_type_encoder_f ASN_NGAP_NRCellIdentity_encode_der; +xer_type_decoder_f ASN_NGAP_NRCellIdentity_decode_xer; +xer_type_encoder_f ASN_NGAP_NRCellIdentity_encode_xer; +per_type_decoder_f ASN_NGAP_NRCellIdentity_decode_uper; +per_type_encoder_f ASN_NGAP_NRCellIdentity_encode_uper; +per_type_decoder_f ASN_NGAP_NRCellIdentity_decode_aper; +per_type_encoder_f ASN_NGAP_NRCellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRCellIdentity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.c b/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.c new file mode 100644 index 0000000..b12216a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRFrequencyBand-List.h" + +#include "ASN_NGAP_NRFrequencyBandItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NRFrequencyBand_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_ASN_NGAP_NRFrequencyBand_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRFrequencyBandItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBand_List_specs_1 = { + sizeof(struct ASN_NGAP_NRFrequencyBand_List), + offsetof(struct ASN_NGAP_NRFrequencyBand_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBand_List = { + "NRFrequencyBand-List", + "NRFrequencyBand-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRFrequencyBand_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NRFrequencyBand_List_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NRFrequencyBand_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.h b/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.h new file mode 100644 index 0000000..fd0171c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBand-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRFrequencyBand_List_H_ +#define _ASN_NGAP_NRFrequencyBand_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NRFrequencyBandItem; + +/* ASN_NGAP_NRFrequencyBand-List */ +typedef struct ASN_NGAP_NRFrequencyBand_List { + A_SEQUENCE_OF(struct ASN_NGAP_NRFrequencyBandItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRFrequencyBand_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBand_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBand_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyBand_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRFrequencyBand_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRFrequencyBand_List_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBand.c b/src/asn/ngap/ASN_NGAP_NRFrequencyBand.c new file mode 100644 index 0000000..2e20121 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBand.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRFrequencyBand.h" + +int +ASN_NGAP_NRFrequencyBand_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_NRFrequencyBand_constr_1 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 const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBand = { + "NRFrequencyBand", + "NRFrequencyBand", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBand_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRFrequencyBand_constr_1, ASN_NGAP_NRFrequencyBand_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBand.h b/src/asn/ngap/ASN_NGAP_NRFrequencyBand.h new file mode 100644 index 0000000..938c4e2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRFrequencyBand_H_ +#define _ASN_NGAP_NRFrequencyBand_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRFrequencyBand */ +typedef long ASN_NGAP_NRFrequencyBand_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRFrequencyBand_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBand; +asn_struct_free_f ASN_NGAP_NRFrequencyBand_free; +asn_struct_print_f ASN_NGAP_NRFrequencyBand_print; +asn_constr_check_f ASN_NGAP_NRFrequencyBand_constraint; +ber_type_decoder_f ASN_NGAP_NRFrequencyBand_decode_ber; +der_type_encoder_f ASN_NGAP_NRFrequencyBand_encode_der; +xer_type_decoder_f ASN_NGAP_NRFrequencyBand_decode_xer; +xer_type_encoder_f ASN_NGAP_NRFrequencyBand_encode_xer; +per_type_decoder_f ASN_NGAP_NRFrequencyBand_decode_uper; +per_type_encoder_f ASN_NGAP_NRFrequencyBand_encode_uper; +per_type_decoder_f ASN_NGAP_NRFrequencyBand_decode_aper; +per_type_encoder_f ASN_NGAP_NRFrequencyBand_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRFrequencyBand_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.c b/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.c new file mode 100644 index 0000000..5bc59de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRFrequencyBandItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyBandItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyBandItem, nr_frequency_band), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRFrequencyBand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-frequency-band" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NRFrequencyBandItem, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_NRFrequencyBandItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRFrequencyBandItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr-frequency-band */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBandItem_specs_1 = { + sizeof(struct ASN_NGAP_NRFrequencyBandItem), + offsetof(struct ASN_NGAP_NRFrequencyBandItem, _asn_ctx), + asn_MAP_ASN_NGAP_NRFrequencyBandItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NRFrequencyBandItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBandItem = { + "NRFrequencyBandItem", + "NRFrequencyBandItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRFrequencyBandItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NRFrequencyBandItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.h b/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.h new file mode 100644 index 0000000..6d2e6db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyBandItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRFrequencyBandItem_H_ +#define _ASN_NGAP_NRFrequencyBandItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRFrequencyBand.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NRFrequencyBandItem */ +typedef struct ASN_NGAP_NRFrequencyBandItem { + ASN_NGAP_NRFrequencyBand_t nr_frequency_band; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRFrequencyBandItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBandItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBandItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyBandItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRFrequencyBandItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.c b/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.c new file mode 100644 index 0000000..266ae6d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRFrequencyInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyInfo, nrARFCN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRARFCN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrARFCN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyInfo, frequencyBand_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRFrequencyBand_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBand-List" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NRFrequencyInfo, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_NRFrequencyInfo_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRFrequencyInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrARFCN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBand-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyInfo_specs_1 = { + sizeof(struct ASN_NGAP_NRFrequencyInfo), + offsetof(struct ASN_NGAP_NRFrequencyInfo, _asn_ctx), + asn_MAP_ASN_NGAP_NRFrequencyInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NRFrequencyInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyInfo = { + "NRFrequencyInfo", + "NRFrequencyInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRFrequencyInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRFrequencyInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.h b/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.h new file mode 100644 index 0000000..65822ef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRFrequencyInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRFrequencyInfo_H_ +#define _ASN_NGAP_NRFrequencyInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRARFCN.h" +#include "ASN_NGAP_NRFrequencyBand-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NRFrequencyInfo */ +typedef struct ASN_NGAP_NRFrequencyInfo { + ASN_NGAP_NRARFCN_t nrARFCN; + ASN_NGAP_NRFrequencyBand_List_t frequencyBand_List; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRFrequencyInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRFrequencyInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.c b/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.c new file mode 100644 index 0000000..0e23af2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRMobilityHistoryReport.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRMobilityHistoryReport = { + "NRMobilityHistoryReport", + "NRMobilityHistoryReport", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRMobilityHistoryReport_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.h b/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.h new file mode 100644 index 0000000..afd3c63 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRMobilityHistoryReport.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRMobilityHistoryReport_H_ +#define _ASN_NGAP_NRMobilityHistoryReport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRMobilityHistoryReport */ +typedef OCTET_STRING_t ASN_NGAP_NRMobilityHistoryReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRMobilityHistoryReport; +asn_struct_free_f ASN_NGAP_NRMobilityHistoryReport_free; +asn_struct_print_f ASN_NGAP_NRMobilityHistoryReport_print; +asn_constr_check_f ASN_NGAP_NRMobilityHistoryReport_constraint; +ber_type_decoder_f ASN_NGAP_NRMobilityHistoryReport_decode_ber; +der_type_encoder_f ASN_NGAP_NRMobilityHistoryReport_encode_der; +xer_type_decoder_f ASN_NGAP_NRMobilityHistoryReport_decode_xer; +xer_type_encoder_f ASN_NGAP_NRMobilityHistoryReport_encode_xer; +per_type_decoder_f ASN_NGAP_NRMobilityHistoryReport_decode_uper; +per_type_encoder_f ASN_NGAP_NRMobilityHistoryReport_encode_uper; +per_type_decoder_f ASN_NGAP_NRMobilityHistoryReport_decode_aper; +per_type_encoder_f ASN_NGAP_NRMobilityHistoryReport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRMobilityHistoryReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.c b/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.c new file mode 100644 index 0000000..52f7721 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRNTNTAIInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRNTNTAIInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRNTNTAIInformation, servingPLMN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingPLMN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRNTNTAIInformation, tACListInNRNTN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TACListInNRNTN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tACListInNRNTN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NRNTNTAIInformation, uELocationDerivedTACInNRNTN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uELocationDerivedTACInNRNTN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NRNTNTAIInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NRNTNTAIInformation_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRNTNTAIInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingPLMN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tACListInNRNTN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uELocationDerivedTACInNRNTN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRNTNTAIInformation_specs_1 = { + sizeof(struct ASN_NGAP_NRNTNTAIInformation), + offsetof(struct ASN_NGAP_NRNTNTAIInformation, _asn_ctx), + asn_MAP_ASN_NGAP_NRNTNTAIInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NRNTNTAIInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRNTNTAIInformation = { + "NRNTNTAIInformation", + "NRNTNTAIInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRNTNTAIInformation_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_NRNTNTAIInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.h b/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.h new file mode 100644 index 0000000..62ba503 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRNTNTAIInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRNTNTAIInformation_H_ +#define _ASN_NGAP_NRNTNTAIInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_TACListInNRNTN.h" +#include "ASN_NGAP_TAC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NRNTNTAIInformation */ +typedef struct ASN_NGAP_NRNTNTAIInformation { + ASN_NGAP_PLMNIdentity_t servingPLMN; + ASN_NGAP_TACListInNRNTN_t tACListInNRNTN; + ASN_NGAP_TAC_t *uELocationDerivedTACInNRNTN; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRNTNTAIInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRNTNTAIInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRNTNTAIInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRNTNTAIInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRNTNTAIInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRPPa-PDU.c b/src/asn/ngap/ASN_NGAP_NRPPa-PDU.c new file mode 100644 index 0000000..5f985dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRPPa-PDU.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRPPa-PDU.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRPPa_PDU = { + "NRPPa-PDU", + "NRPPa-PDU", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRPPa_PDU_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRPPa-PDU.h b/src/asn/ngap/ASN_NGAP_NRPPa-PDU.h new file mode 100644 index 0000000..49bdf58 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRPPa-PDU.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRPPa_PDU_H_ +#define _ASN_NGAP_NRPPa_PDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRPPa-PDU */ +typedef OCTET_STRING_t ASN_NGAP_NRPPa_PDU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRPPa_PDU; +asn_struct_free_f ASN_NGAP_NRPPa_PDU_free; +asn_struct_print_f ASN_NGAP_NRPPa_PDU_print; +asn_constr_check_f ASN_NGAP_NRPPa_PDU_constraint; +ber_type_decoder_f ASN_NGAP_NRPPa_PDU_decode_ber; +der_type_encoder_f ASN_NGAP_NRPPa_PDU_encode_der; +xer_type_decoder_f ASN_NGAP_NRPPa_PDU_decode_xer; +xer_type_encoder_f ASN_NGAP_NRPPa_PDU_encode_xer; +per_type_decoder_f ASN_NGAP_NRPPa_PDU_decode_uper; +per_type_encoder_f ASN_NGAP_NRPPa_PDU_encode_uper; +per_type_decoder_f ASN_NGAP_NRPPa_PDU_decode_aper; +per_type_encoder_f ASN_NGAP_NRPPa_PDU_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRPPa_PDU_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.c b/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.c new file mode 100644 index 0000000..8b119eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRUERLFReportContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUERLFReportContainer = { + "NRUERLFReportContainer", + "NRUERLFReportContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRUERLFReportContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.h b/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.h new file mode 100644 index 0000000..a41cf0c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRUERLFReportContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRUERLFReportContainer_H_ +#define _ASN_NGAP_NRUERLFReportContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRUERLFReportContainer */ +typedef OCTET_STRING_t ASN_NGAP_NRUERLFReportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUERLFReportContainer; +asn_struct_free_f ASN_NGAP_NRUERLFReportContainer_free; +asn_struct_print_f ASN_NGAP_NRUERLFReportContainer_print; +asn_constr_check_f ASN_NGAP_NRUERLFReportContainer_constraint; +ber_type_decoder_f ASN_NGAP_NRUERLFReportContainer_decode_ber; +der_type_encoder_f ASN_NGAP_NRUERLFReportContainer_encode_der; +xer_type_decoder_f ASN_NGAP_NRUERLFReportContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_NRUERLFReportContainer_encode_xer; +per_type_decoder_f ASN_NGAP_NRUERLFReportContainer_decode_uper; +per_type_encoder_f ASN_NGAP_NRUERLFReportContainer_encode_uper; +per_type_decoder_f ASN_NGAP_NRUERLFReportContainer_decode_aper; +per_type_encoder_f ASN_NGAP_NRUERLFReportContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRUERLFReportContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.c b/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.c new file mode 100644 index 0000000..bb5d70a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, uESidelinkAggregateMaximumBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uESidelinkAggregateMaximumBitRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uESidelinkAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_specs_1 = { + sizeof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate), + offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, _asn_ctx), + asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate = { + "NRUESidelinkAggregateMaximumBitrate", + "NRUESidelinkAggregateMaximumBitrate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h b/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h new file mode 100644 index 0000000..0ab85a3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_H_ +#define _ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NRUESidelinkAggregateMaximumBitrate */ +typedef struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate { + ASN_NGAP_BitRate_t uESidelinkAggregateMaximumBitRate; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.c b/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.c new file mode 100644 index 0000000..6f96b3b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRV2XServicesAuthorized.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized, vehicleUE), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_VehicleUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vehicleUE" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized, pedestrianUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PedestrianUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pedestrianUE" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_specs_1 = { + sizeof(struct ASN_NGAP_NRV2XServicesAuthorized), + offsetof(struct ASN_NGAP_NRV2XServicesAuthorized, _asn_ctx), + asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized = { + "NRV2XServicesAuthorized", + "NRV2XServicesAuthorized", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.h b/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.h new file mode 100644 index 0000000..fe585d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRV2XServicesAuthorized.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRV2XServicesAuthorized_H_ +#define _ASN_NGAP_NRV2XServicesAuthorized_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_VehicleUE.h" +#include "ASN_NGAP_PedestrianUE.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NRV2XServicesAuthorized */ +typedef struct ASN_NGAP_NRV2XServicesAuthorized { + ASN_NGAP_VehicleUE_t *vehicleUE; /* OPTIONAL */ + ASN_NGAP_PedestrianUE_t *pedestrianUE; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRV2XServicesAuthorized_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRV2XServicesAuthorized_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.c b/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.c new file mode 100644 index 0000000..b396767 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRencryptionAlgorithms.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_NRencryptionAlgorithms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRencryptionAlgorithms = { + "NRencryptionAlgorithms", + "NRencryptionAlgorithms", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRencryptionAlgorithms_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRencryptionAlgorithms_constr_1, ASN_NGAP_NRencryptionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.h b/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.h new file mode 100644 index 0000000..a1e3c49 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRencryptionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRencryptionAlgorithms_H_ +#define _ASN_NGAP_NRencryptionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRencryptionAlgorithms */ +typedef BIT_STRING_t ASN_NGAP_NRencryptionAlgorithms_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRencryptionAlgorithms_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRencryptionAlgorithms; +asn_struct_free_f ASN_NGAP_NRencryptionAlgorithms_free; +asn_struct_print_f ASN_NGAP_NRencryptionAlgorithms_print; +asn_constr_check_f ASN_NGAP_NRencryptionAlgorithms_constraint; +ber_type_decoder_f ASN_NGAP_NRencryptionAlgorithms_decode_ber; +der_type_encoder_f ASN_NGAP_NRencryptionAlgorithms_encode_der; +xer_type_decoder_f ASN_NGAP_NRencryptionAlgorithms_decode_xer; +xer_type_encoder_f ASN_NGAP_NRencryptionAlgorithms_encode_xer; +per_type_decoder_f ASN_NGAP_NRencryptionAlgorithms_decode_uper; +per_type_encoder_f ASN_NGAP_NRencryptionAlgorithms_encode_uper; +per_type_decoder_f ASN_NGAP_NRencryptionAlgorithms_decode_aper; +per_type_encoder_f ASN_NGAP_NRencryptionAlgorithms_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRencryptionAlgorithms_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.c b/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.c new file mode 100644 index 0000000..562ab00 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NRintegrityProtectionAlgorithms.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms = { + "NRintegrityProtectionAlgorithms", + "NRintegrityProtectionAlgorithms", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1, + sizeof(asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NRintegrityProtectionAlgorithms_constr_1, ASN_NGAP_NRintegrityProtectionAlgorithms_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.h b/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.h new file mode 100644 index 0000000..d15869e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NRintegrityProtectionAlgorithms.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NRintegrityProtectionAlgorithms_H_ +#define _ASN_NGAP_NRintegrityProtectionAlgorithms_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NRintegrityProtectionAlgorithms */ +typedef BIT_STRING_t ASN_NGAP_NRintegrityProtectionAlgorithms_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NRintegrityProtectionAlgorithms_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms; +asn_struct_free_f ASN_NGAP_NRintegrityProtectionAlgorithms_free; +asn_struct_print_f ASN_NGAP_NRintegrityProtectionAlgorithms_print; +asn_constr_check_f ASN_NGAP_NRintegrityProtectionAlgorithms_constraint; +ber_type_decoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_decode_ber; +der_type_encoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_encode_der; +xer_type_decoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_decode_xer; +xer_type_encoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_encode_xer; +per_type_decoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_decode_uper; +per_type_encoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_encode_uper; +per_type_decoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_decode_aper; +per_type_encoder_f ASN_NGAP_NRintegrityProtectionAlgorithms_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NRintegrityProtectionAlgorithms_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NSAG-ID.c b/src/asn/ngap/ASN_NGAP_NSAG-ID.c new file mode 100644 index 0000000..354393c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NSAG-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NSAG-ID.h" + +int +ASN_NGAP_NSAG_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_ASN_NGAP_NSAG_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_NSAG_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NSAG_ID = { + "NSAG-ID", + "NSAG-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NSAG_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_NSAG_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NSAG_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NSAG_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NSAG_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NSAG_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NSAG_ID_constr_1, ASN_NGAP_NSAG_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NSAG-ID.h b/src/asn/ngap/ASN_NGAP_NSAG-ID.h new file mode 100644 index 0000000..207496d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NSAG-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NSAG_ID_H_ +#define _ASN_NGAP_NSAG_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NSAG-ID */ +typedef long ASN_NGAP_NSAG_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NSAG_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NSAG_ID; +asn_struct_free_f ASN_NGAP_NSAG_ID_free; +asn_struct_print_f ASN_NGAP_NSAG_ID_print; +asn_constr_check_f ASN_NGAP_NSAG_ID_constraint; +ber_type_decoder_f ASN_NGAP_NSAG_ID_decode_ber; +der_type_encoder_f ASN_NGAP_NSAG_ID_encode_der; +xer_type_decoder_f ASN_NGAP_NSAG_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_NSAG_ID_encode_xer; +per_type_decoder_f ASN_NGAP_NSAG_ID_decode_uper; +per_type_encoder_f ASN_NGAP_NSAG_ID_encode_uper; +per_type_decoder_f ASN_NGAP_NSAG_ID_decode_aper; +per_type_encoder_f ASN_NGAP_NSAG_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NSAG_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NetworkInstance.c b/src/asn/ngap/ASN_NGAP_NetworkInstance.c new file mode 100644 index 0000000..6d4b84e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NetworkInstance.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NetworkInstance.h" + +int +ASN_NGAP_NetworkInstance_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_ASN_NGAP_NetworkInstance_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 256 } /* (1..256,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NetworkInstance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NetworkInstance = { + "NetworkInstance", + "NetworkInstance", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NetworkInstance_tags_1, + sizeof(asn_DEF_ASN_NGAP_NetworkInstance_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NetworkInstance_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NetworkInstance_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NetworkInstance_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NetworkInstance_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NetworkInstance_constr_1, ASN_NGAP_NetworkInstance_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NetworkInstance.h b/src/asn/ngap/ASN_NGAP_NetworkInstance.h new file mode 100644 index 0000000..0906da9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NetworkInstance.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NetworkInstance_H_ +#define _ASN_NGAP_NetworkInstance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NetworkInstance */ +typedef long ASN_NGAP_NetworkInstance_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NetworkInstance_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NetworkInstance; +asn_struct_free_f ASN_NGAP_NetworkInstance_free; +asn_struct_print_f ASN_NGAP_NetworkInstance_print; +asn_constr_check_f ASN_NGAP_NetworkInstance_constraint; +ber_type_decoder_f ASN_NGAP_NetworkInstance_decode_ber; +der_type_encoder_f ASN_NGAP_NetworkInstance_encode_der; +xer_type_decoder_f ASN_NGAP_NetworkInstance_decode_xer; +xer_type_encoder_f ASN_NGAP_NetworkInstance_encode_xer; +per_type_decoder_f ASN_NGAP_NetworkInstance_decode_uper; +per_type_encoder_f ASN_NGAP_NetworkInstance_encode_uper; +per_type_decoder_f ASN_NGAP_NetworkInstance_decode_aper; +per_type_encoder_f ASN_NGAP_NetworkInstance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NetworkInstance_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.c b/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.c new file mode 100644 index 0000000..23d7f27 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NewSecurityContextInd.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NewSecurityContextInd_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_ASN_NGAP_NewSecurityContextInd_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NewSecurityContextInd_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NewSecurityContextInd_specs_1 = { + asn_MAP_ASN_NGAP_NewSecurityContextInd_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NewSecurityContextInd_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_ASN_NGAP_NewSecurityContextInd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NewSecurityContextInd = { + "NewSecurityContextInd", + "NewSecurityContextInd", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1, + sizeof(asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NewSecurityContextInd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NewSecurityContextInd_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NewSecurityContextInd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.h b/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.h new file mode 100644 index 0000000..60e7677 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NewSecurityContextInd.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NewSecurityContextInd_H_ +#define _ASN_NGAP_NewSecurityContextInd_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NewSecurityContextInd { + ASN_NGAP_NewSecurityContextInd_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NewSecurityContextInd; + +/* ASN_NGAP_NewSecurityContextInd */ +typedef long ASN_NGAP_NewSecurityContextInd_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NewSecurityContextInd_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NewSecurityContextInd; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NewSecurityContextInd_specs_1; +asn_struct_free_f ASN_NGAP_NewSecurityContextInd_free; +asn_struct_print_f ASN_NGAP_NewSecurityContextInd_print; +asn_constr_check_f ASN_NGAP_NewSecurityContextInd_constraint; +ber_type_decoder_f ASN_NGAP_NewSecurityContextInd_decode_ber; +der_type_encoder_f ASN_NGAP_NewSecurityContextInd_encode_der; +xer_type_decoder_f ASN_NGAP_NewSecurityContextInd_decode_xer; +xer_type_encoder_f ASN_NGAP_NewSecurityContextInd_encode_xer; +per_type_decoder_f ASN_NGAP_NewSecurityContextInd_decode_uper; +per_type_encoder_f ASN_NGAP_NewSecurityContextInd_encode_uper; +per_type_decoder_f ASN_NGAP_NewSecurityContextInd_decode_aper; +per_type_encoder_f ASN_NGAP_NewSecurityContextInd_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NewSecurityContextInd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NextHopChainingCount.c b/src/asn/ngap/ASN_NGAP_NextHopChainingCount.c new file mode 100644 index 0000000..c4b402c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NextHopChainingCount.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NextHopChainingCount.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_NextHopChainingCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NextHopChainingCount = { + "NextHopChainingCount", + "NextHopChainingCount", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1, + sizeof(asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NextHopChainingCount_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NextHopChainingCount_constr_1, ASN_NGAP_NextHopChainingCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NextHopChainingCount.h b/src/asn/ngap/ASN_NGAP_NextHopChainingCount.h new file mode 100644 index 0000000..f35be58 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NextHopChainingCount.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NextHopChainingCount_H_ +#define _ASN_NGAP_NextHopChainingCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NextHopChainingCount */ +typedef long ASN_NGAP_NextHopChainingCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NextHopChainingCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NextHopChainingCount; +asn_struct_free_f ASN_NGAP_NextHopChainingCount_free; +asn_struct_print_f ASN_NGAP_NextHopChainingCount_print; +asn_constr_check_f ASN_NGAP_NextHopChainingCount_constraint; +ber_type_decoder_f ASN_NGAP_NextHopChainingCount_decode_ber; +der_type_encoder_f ASN_NGAP_NextHopChainingCount_encode_der; +xer_type_decoder_f ASN_NGAP_NextHopChainingCount_decode_xer; +xer_type_encoder_f ASN_NGAP_NextHopChainingCount_encode_xer; +per_type_decoder_f ASN_NGAP_NextHopChainingCount_decode_uper; +per_type_encoder_f ASN_NGAP_NextHopChainingCount_encode_uper; +per_type_decoder_f ASN_NGAP_NextHopChainingCount_decode_aper; +per_type_encoder_f ASN_NGAP_NextHopChainingCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NextHopChainingCount_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.c b/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.c new file mode 100644 index 0000000..267672c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NextPagingAreaScope.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NextPagingAreaScope_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_ASN_NGAP_NextPagingAreaScope_value2enum_1[] = { + { 0, 4, "same" }, + { 1, 7, "changed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NextPagingAreaScope_enum2value_1[] = { + 1, /* changed(1) */ + 0 /* same(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NextPagingAreaScope_specs_1 = { + asn_MAP_ASN_NGAP_NextPagingAreaScope_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NextPagingAreaScope_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_ASN_NGAP_NextPagingAreaScope_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NextPagingAreaScope = { + "NextPagingAreaScope", + "NextPagingAreaScope", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1, + sizeof(asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NextPagingAreaScope_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NextPagingAreaScope_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NextPagingAreaScope_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.h b/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.h new file mode 100644 index 0000000..fc3bf9f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NextPagingAreaScope.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NextPagingAreaScope_H_ +#define _ASN_NGAP_NextPagingAreaScope_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NextPagingAreaScope { + ASN_NGAP_NextPagingAreaScope_same = 0, + ASN_NGAP_NextPagingAreaScope_changed = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NextPagingAreaScope; + +/* ASN_NGAP_NextPagingAreaScope */ +typedef long ASN_NGAP_NextPagingAreaScope_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NextPagingAreaScope_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NextPagingAreaScope; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NextPagingAreaScope_specs_1; +asn_struct_free_f ASN_NGAP_NextPagingAreaScope_free; +asn_struct_print_f ASN_NGAP_NextPagingAreaScope_print; +asn_constr_check_f ASN_NGAP_NextPagingAreaScope_constraint; +ber_type_decoder_f ASN_NGAP_NextPagingAreaScope_decode_ber; +der_type_encoder_f ASN_NGAP_NextPagingAreaScope_encode_der; +xer_type_decoder_f ASN_NGAP_NextPagingAreaScope_decode_xer; +xer_type_encoder_f ASN_NGAP_NextPagingAreaScope_encode_xer; +per_type_decoder_f ASN_NGAP_NextPagingAreaScope_decode_uper; +per_type_encoder_f ASN_NGAP_NextPagingAreaScope_encode_uper; +per_type_decoder_f ASN_NGAP_NextPagingAreaScope_decode_aper; +per_type_encoder_f ASN_NGAP_NextPagingAreaScope_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NextPagingAreaScope_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NgENB-ID.c b/src/asn/ngap/ASN_NGAP_NgENB-ID.c new file mode 100644 index 0000000..49a11e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NgENB-ID.c @@ -0,0 +1,191 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NgENB-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_macroNgENB_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_ASN_NGAP_shortMacroNgENB_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_ASN_NGAP_longMacroNgENB_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_ASN_NGAP_macroNgENB_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_ASN_NGAP_shortMacroNgENB_ID_constr_3 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_ASN_NGAP_longMacroNgENB_ID_constr_4 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_ASN_NGAP_NgENB_ID_constr_1 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_ASN_NGAP_NgENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID, choice.macroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_macroNgENB_ID_constr_2, memb_ASN_NGAP_macroNgENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "macroNgENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID, choice.shortMacroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_shortMacroNgENB_ID_constr_3, memb_ASN_NGAP_shortMacroNgENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "shortMacroNgENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID, choice.longMacroNgENB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_longMacroNgENB_ID_constr_4, memb_ASN_NGAP_longMacroNgENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "longMacroNgENB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_NgENB_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NgENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortMacroNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* longMacroNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NgENB_ID_specs_1 = { + sizeof(struct ASN_NGAP_NgENB_ID), + offsetof(struct ASN_NGAP_NgENB_ID, _asn_ctx), + offsetof(struct ASN_NGAP_NgENB_ID, present), + sizeof(((struct ASN_NGAP_NgENB_ID *)0)->present), + asn_MAP_ASN_NGAP_NgENB_ID_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NgENB_ID = { + "NgENB-ID", + "NgENB-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_ASN_NGAP_NgENB_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_NgENB_ID_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_NgENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NgENB-ID.h b/src/asn/ngap/ASN_NGAP_NgENB-ID.h new file mode 100644 index 0000000..aa83f68 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NgENB-ID.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NgENB_ID_H_ +#define _ASN_NGAP_NgENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NgENB_ID_PR { + ASN_NGAP_NgENB_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_NgENB_ID_PR_macroNgENB_ID, + ASN_NGAP_NgENB_ID_PR_shortMacroNgENB_ID, + ASN_NGAP_NgENB_ID_PR_longMacroNgENB_ID, + ASN_NGAP_NgENB_ID_PR_choice_Extensions +} ASN_NGAP_NgENB_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_NgENB-ID */ +typedef struct ASN_NGAP_NgENB_ID { + ASN_NGAP_NgENB_ID_PR present; + union ASN_NGAP_NgENB_ID_u { + BIT_STRING_t macroNgENB_ID; + BIT_STRING_t shortMacroNgENB_ID; + BIT_STRING_t longMacroNgENB_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NgENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NgENB_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_NgENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NgENB_ID_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NgENB_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NgENB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.c b/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.c new file mode 100644 index 0000000..cabe096 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NonDynamic5QIDescriptor.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, fiveQI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveQI" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, priorityLevelQos), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PriorityLevelQos, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "priorityLevelQos" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, averagingWindow), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AveragingWindow, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "averagingWindow" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, maximumDataBurstVolume), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MaximumDataBurstVolume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumDataBurstVolume" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveQI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* priorityLevelQos */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* averagingWindow */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maximumDataBurstVolume */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_specs_1 = { + sizeof(struct ASN_NGAP_NonDynamic5QIDescriptor), + offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor, _asn_ctx), + asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor = { + "NonDynamic5QIDescriptor", + "NonDynamic5QIDescriptor", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1, + sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.h b/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.h new file mode 100644 index 0000000..f110783 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NonDynamic5QIDescriptor.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NonDynamic5QIDescriptor_H_ +#define _ASN_NGAP_NonDynamic5QIDescriptor_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveQI.h" +#include "ASN_NGAP_PriorityLevelQos.h" +#include "ASN_NGAP_AveragingWindow.h" +#include "ASN_NGAP_MaximumDataBurstVolume.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NonDynamic5QIDescriptor */ +typedef struct ASN_NGAP_NonDynamic5QIDescriptor { + ASN_NGAP_FiveQI_t fiveQI; + ASN_NGAP_PriorityLevelQos_t *priorityLevelQos; /* OPTIONAL */ + ASN_NGAP_AveragingWindow_t *averagingWindow; /* OPTIONAL */ + ASN_NGAP_MaximumDataBurstVolume_t *maximumDataBurstVolume; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NonDynamic5QIDescriptor_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NonDynamic5QIDescriptor_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotAllowedTACs.c b/src/asn/ngap/ASN_NGAP_NotAllowedTACs.c new file mode 100644 index 0000000..ce25326 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotAllowedTACs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotAllowedTACs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_NotAllowedTACs_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_ASN_NGAP_NotAllowedTACs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NotAllowedTACs_specs_1 = { + sizeof(struct ASN_NGAP_NotAllowedTACs), + offsetof(struct ASN_NGAP_NotAllowedTACs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotAllowedTACs = { + "NotAllowedTACs", + "NotAllowedTACs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotAllowedTACs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NotAllowedTACs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NotAllowedTACs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NotAllowedTACs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotAllowedTACs.h b/src/asn/ngap/ASN_NGAP_NotAllowedTACs.h new file mode 100644 index 0000000..87e592c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotAllowedTACs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotAllowedTACs_H_ +#define _ASN_NGAP_NotAllowedTACs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NotAllowedTACs */ +typedef struct ASN_NGAP_NotAllowedTACs { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NotAllowedTACs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotAllowedTACs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NotAllowedTACs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NotAllowedTACs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NotAllowedTACs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotAllowedTACs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotificationCause.c b/src/asn/ngap/ASN_NGAP_NotificationCause.c new file mode 100644 index 0000000..188ded8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCause.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotificationCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationCause_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_ASN_NGAP_NotificationCause_value2enum_1[] = { + { 0, 9, "fulfilled" }, + { 1, 13, "not-fulfilled" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NotificationCause_enum2value_1[] = { + 0, /* fulfilled(0) */ + 1 /* not-fulfilled(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotificationCause_specs_1 = { + asn_MAP_ASN_NGAP_NotificationCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NotificationCause_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_ASN_NGAP_NotificationCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCause = { + "NotificationCause", + "NotificationCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NotificationCause_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotificationCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotificationCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotificationCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NotificationCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NotificationCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotificationCause.h b/src/asn/ngap/ASN_NGAP_NotificationCause.h new file mode 100644 index 0000000..f9644f7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCause.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotificationCause_H_ +#define _ASN_NGAP_NotificationCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NotificationCause { + ASN_NGAP_NotificationCause_fulfilled = 0, + ASN_NGAP_NotificationCause_not_fulfilled = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NotificationCause; + +/* ASN_NGAP_NotificationCause */ +typedef long ASN_NGAP_NotificationCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotificationCause_specs_1; +asn_struct_free_f ASN_NGAP_NotificationCause_free; +asn_struct_print_f ASN_NGAP_NotificationCause_print; +asn_constr_check_f ASN_NGAP_NotificationCause_constraint; +ber_type_decoder_f ASN_NGAP_NotificationCause_decode_ber; +der_type_encoder_f ASN_NGAP_NotificationCause_encode_der; +xer_type_decoder_f ASN_NGAP_NotificationCause_decode_xer; +xer_type_encoder_f ASN_NGAP_NotificationCause_encode_xer; +per_type_decoder_f ASN_NGAP_NotificationCause_decode_uper; +per_type_encoder_f ASN_NGAP_NotificationCause_encode_uper; +per_type_decoder_f ASN_NGAP_NotificationCause_decode_aper; +per_type_encoder_f ASN_NGAP_NotificationCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotificationCause_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotificationCell-Item.c b/src/asn/ngap/ASN_NGAP_NotificationCell-Item.c new file mode 100644 index 0000000..662aaa9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCell-Item.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotificationCell-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_notifyFlag_constr_3 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_ASN_NGAP_notifyFlag_value2enum_3[] = { + { 0, 9, "activated" }, + { 1, 11, "deactivated" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_notifyFlag_enum2value_3[] = { + 0, /* activated(0) */ + 1 /* deactivated(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_notifyFlag_specs_3 = { + asn_MAP_ASN_NGAP_notifyFlag_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_notifyFlag_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_notifyFlag_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_ASN_NGAP_notifyFlag_3 = { + "notifyFlag", + "notifyFlag", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_notifyFlag_tags_3, + sizeof(asn_DEF_ASN_NGAP_notifyFlag_tags_3) + /sizeof(asn_DEF_ASN_NGAP_notifyFlag_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_notifyFlag_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_notifyFlag_tags_3) + /sizeof(asn_DEF_ASN_NGAP_notifyFlag_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_notifyFlag_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_notifyFlag_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCell_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NotificationCell_Item, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NotificationCell_Item, notifyFlag), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_notifyFlag_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notifyFlag" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_NotificationCell_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_NotificationCell_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NotificationCell_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notifyFlag */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NotificationCell_Item_specs_1 = { + sizeof(struct ASN_NGAP_NotificationCell_Item), + offsetof(struct ASN_NGAP_NotificationCell_Item, _asn_ctx), + asn_MAP_ASN_NGAP_NotificationCell_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_NotificationCell_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCell_Item = { + "NotificationCell-Item", + "NotificationCell-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NotificationCell_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NotificationCell_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotificationCell-Item.h b/src/asn/ngap/ASN_NGAP_NotificationCell-Item.h new file mode 100644 index 0000000..cc0f240 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCell-Item.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotificationCell_Item_H_ +#define _ASN_NGAP_NotificationCell_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NotificationCell_Item__notifyFlag { + ASN_NGAP_NotificationCell_Item__notifyFlag_activated = 0, + ASN_NGAP_NotificationCell_Item__notifyFlag_deactivated = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NotificationCell_Item__notifyFlag; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_NotificationCell-Item */ +typedef struct ASN_NGAP_NotificationCell_Item { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + long notifyFlag; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NotificationCell_Item_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_notifyFlag_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCell_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NotificationCell_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCell_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotificationCell_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotificationCellList.c b/src/asn/ngap/ASN_NGAP_NotificationCellList.c new file mode 100644 index 0000000..e8ec3f5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotificationCellList.h" + +#include "ASN_NGAP_NotificationCell-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationCellList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NotificationCell_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NotificationCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NotificationCellList_specs_1 = { + sizeof(struct ASN_NGAP_NotificationCellList), + offsetof(struct ASN_NGAP_NotificationCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCellList = { + "NotificationCellList", + "NotificationCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_NotificationCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotificationCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotificationCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotificationCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NotificationCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_NotificationCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_NotificationCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotificationCellList.h b/src/asn/ngap/ASN_NGAP_NotificationCellList.h new file mode 100644 index 0000000..5edebcc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotificationCellList_H_ +#define _ASN_NGAP_NotificationCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_NotificationCell_Item; + +/* ASN_NGAP_NotificationCellList */ +typedef struct ASN_NGAP_NotificationCellList { + A_SEQUENCE_OF(struct ASN_NGAP_NotificationCell_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NotificationCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_NotificationCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotificationCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotificationControl.c b/src/asn/ngap/ASN_NGAP_NotificationControl.c new file mode 100644 index 0000000..11811af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationControl.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotificationControl.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationControl_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_ASN_NGAP_NotificationControl_value2enum_1[] = { + { 0, 22, "notification-requested" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NotificationControl_enum2value_1[] = { + 0 /* notification-requested(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotificationControl_specs_1 = { + asn_MAP_ASN_NGAP_NotificationControl_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NotificationControl_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_ASN_NGAP_NotificationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationControl = { + "NotificationControl", + "NotificationControl", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NotificationControl_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotificationControl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotificationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotificationControl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotificationControl_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NotificationControl_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NotificationControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotificationControl.h b/src/asn/ngap/ASN_NGAP_NotificationControl.h new file mode 100644 index 0000000..1d03fae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotificationControl.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotificationControl_H_ +#define _ASN_NGAP_NotificationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NotificationControl { + ASN_NGAP_NotificationControl_notification_requested = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NotificationControl; + +/* ASN_NGAP_NotificationControl */ +typedef long ASN_NGAP_NotificationControl_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NotificationControl_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationControl; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotificationControl_specs_1; +asn_struct_free_f ASN_NGAP_NotificationControl_free; +asn_struct_print_f ASN_NGAP_NotificationControl_print; +asn_constr_check_f ASN_NGAP_NotificationControl_constraint; +ber_type_decoder_f ASN_NGAP_NotificationControl_decode_ber; +der_type_encoder_f ASN_NGAP_NotificationControl_encode_der; +xer_type_decoder_f ASN_NGAP_NotificationControl_decode_xer; +xer_type_encoder_f ASN_NGAP_NotificationControl_encode_xer; +per_type_decoder_f ASN_NGAP_NotificationControl_decode_uper; +per_type_encoder_f ASN_NGAP_NotificationControl_encode_uper; +per_type_decoder_f ASN_NGAP_NotificationControl_decode_aper; +per_type_encoder_f ASN_NGAP_NotificationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotificationControl_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.c b/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.c new file mode 100644 index 0000000..8809543 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NotifySourceNGRANNode.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NotifySourceNGRANNode_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_ASN_NGAP_NotifySourceNGRANNode_value2enum_1[] = { + { 0, 12, "notifySource" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NotifySourceNGRANNode_enum2value_1[] = { + 0 /* notifySource(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotifySourceNGRANNode_specs_1 = { + asn_MAP_ASN_NGAP_NotifySourceNGRANNode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NotifySourceNGRANNode_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_ASN_NGAP_NotifySourceNGRANNode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotifySourceNGRANNode = { + "NotifySourceNGRANNode", + "NotifySourceNGRANNode", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1, + sizeof(asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NotifySourceNGRANNode_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NotifySourceNGRANNode_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NotifySourceNGRANNode_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.h b/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.h new file mode 100644 index 0000000..9f4ee28 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NotifySourceNGRANNode.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NotifySourceNGRANNode_H_ +#define _ASN_NGAP_NotifySourceNGRANNode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NotifySourceNGRANNode { + ASN_NGAP_NotifySourceNGRANNode_notifySource = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_NotifySourceNGRANNode; + +/* ASN_NGAP_NotifySourceNGRANNode */ +typedef long ASN_NGAP_NotifySourceNGRANNode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NotifySourceNGRANNode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotifySourceNGRANNode; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NotifySourceNGRANNode_specs_1; +asn_struct_free_f ASN_NGAP_NotifySourceNGRANNode_free; +asn_struct_print_f ASN_NGAP_NotifySourceNGRANNode_print; +asn_constr_check_f ASN_NGAP_NotifySourceNGRANNode_constraint; +ber_type_decoder_f ASN_NGAP_NotifySourceNGRANNode_decode_ber; +der_type_encoder_f ASN_NGAP_NotifySourceNGRANNode_encode_der; +xer_type_decoder_f ASN_NGAP_NotifySourceNGRANNode_decode_xer; +xer_type_encoder_f ASN_NGAP_NotifySourceNGRANNode_encode_xer; +per_type_decoder_f ASN_NGAP_NotifySourceNGRANNode_decode_uper; +per_type_encoder_f ASN_NGAP_NotifySourceNGRANNode_encode_uper; +per_type_decoder_f ASN_NGAP_NotifySourceNGRANNode_decode_aper; +per_type_encoder_f ASN_NGAP_NotifySourceNGRANNode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NotifySourceNGRANNode_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.c b/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.c new file mode 100644 index 0000000..ad34542 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NumberOfBroadcasts.h" + +int +ASN_NGAP_NumberOfBroadcasts_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_ASN_NGAP_NumberOfBroadcasts_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_ASN_NGAP_NumberOfBroadcasts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfBroadcasts = { + "NumberOfBroadcasts", + "NumberOfBroadcasts", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1, + sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcasts_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NumberOfBroadcasts_constr_1, ASN_NGAP_NumberOfBroadcasts_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.h b/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.h new file mode 100644 index 0000000..294201f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfBroadcasts.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NumberOfBroadcasts_H_ +#define _ASN_NGAP_NumberOfBroadcasts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NumberOfBroadcasts */ +typedef long ASN_NGAP_NumberOfBroadcasts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NumberOfBroadcasts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfBroadcasts; +asn_struct_free_f ASN_NGAP_NumberOfBroadcasts_free; +asn_struct_print_f ASN_NGAP_NumberOfBroadcasts_print; +asn_constr_check_f ASN_NGAP_NumberOfBroadcasts_constraint; +ber_type_decoder_f ASN_NGAP_NumberOfBroadcasts_decode_ber; +der_type_encoder_f ASN_NGAP_NumberOfBroadcasts_encode_der; +xer_type_decoder_f ASN_NGAP_NumberOfBroadcasts_decode_xer; +xer_type_encoder_f ASN_NGAP_NumberOfBroadcasts_encode_xer; +per_type_decoder_f ASN_NGAP_NumberOfBroadcasts_decode_uper; +per_type_encoder_f ASN_NGAP_NumberOfBroadcasts_encode_uper; +per_type_decoder_f ASN_NGAP_NumberOfBroadcasts_decode_aper; +per_type_encoder_f ASN_NGAP_NumberOfBroadcasts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NumberOfBroadcasts_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.c b/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.c new file mode 100644 index 0000000..0b307da --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NumberOfBroadcastsRequested.h" + +int +ASN_NGAP_NumberOfBroadcastsRequested_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_ASN_NGAP_NumberOfBroadcastsRequested_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_ASN_NGAP_NumberOfBroadcastsRequested_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested = { + "NumberOfBroadcastsRequested", + "NumberOfBroadcastsRequested", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1, + sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NumberOfBroadcastsRequested_constr_1, ASN_NGAP_NumberOfBroadcastsRequested_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.h b/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.h new file mode 100644 index 0000000..b155881 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfBroadcastsRequested.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NumberOfBroadcastsRequested_H_ +#define _ASN_NGAP_NumberOfBroadcastsRequested_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_NumberOfBroadcastsRequested */ +typedef long ASN_NGAP_NumberOfBroadcastsRequested_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NumberOfBroadcastsRequested_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested; +asn_struct_free_f ASN_NGAP_NumberOfBroadcastsRequested_free; +asn_struct_print_f ASN_NGAP_NumberOfBroadcastsRequested_print; +asn_constr_check_f ASN_NGAP_NumberOfBroadcastsRequested_constraint; +ber_type_decoder_f ASN_NGAP_NumberOfBroadcastsRequested_decode_ber; +der_type_encoder_f ASN_NGAP_NumberOfBroadcastsRequested_encode_der; +xer_type_decoder_f ASN_NGAP_NumberOfBroadcastsRequested_decode_xer; +xer_type_encoder_f ASN_NGAP_NumberOfBroadcastsRequested_encode_xer; +per_type_decoder_f ASN_NGAP_NumberOfBroadcastsRequested_decode_uper; +per_type_encoder_f ASN_NGAP_NumberOfBroadcastsRequested_encode_uper; +per_type_decoder_f ASN_NGAP_NumberOfBroadcastsRequested_decode_aper; +per_type_encoder_f ASN_NGAP_NumberOfBroadcastsRequested_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NumberOfBroadcastsRequested_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.c b/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.c new file mode 100644 index 0000000..348fd9b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_NumberOfMeasurementReportingLevels.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_NumberOfMeasurementReportingLevels_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_ASN_NGAP_NumberOfMeasurementReportingLevels_value2enum_1[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n4" }, + { 3, 2, "n5" }, + { 4, 3, "n10" }, + { 5, 2, "n0" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_NumberOfMeasurementReportingLevels_enum2value_1[] = { + 5, /* n0(5) */ + 4, /* n10(4) */ + 0, /* n2(0) */ + 1, /* n3(1) */ + 2, /* n4(2) */ + 3 /* n5(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NumberOfMeasurementReportingLevels_specs_1 = { + asn_MAP_ASN_NGAP_NumberOfMeasurementReportingLevels_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_NumberOfMeasurementReportingLevels_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 6, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels = { + "NumberOfMeasurementReportingLevels", + "NumberOfMeasurementReportingLevels", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1, + sizeof(asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1) + /sizeof(asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_NumberOfMeasurementReportingLevels_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_NumberOfMeasurementReportingLevels_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.h b/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.h new file mode 100644 index 0000000..ffda52e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_NumberOfMeasurementReportingLevels.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_NumberOfMeasurementReportingLevels_H_ +#define _ASN_NGAP_NumberOfMeasurementReportingLevels_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_NumberOfMeasurementReportingLevels { + ASN_NGAP_NumberOfMeasurementReportingLevels_n2 = 0, + ASN_NGAP_NumberOfMeasurementReportingLevels_n3 = 1, + ASN_NGAP_NumberOfMeasurementReportingLevels_n4 = 2, + ASN_NGAP_NumberOfMeasurementReportingLevels_n5 = 3, + ASN_NGAP_NumberOfMeasurementReportingLevels_n10 = 4, + /* + * Enumeration is extensible + */ + ASN_NGAP_NumberOfMeasurementReportingLevels_n0 = 5 +} e_ASN_NGAP_NumberOfMeasurementReportingLevels; + +/* ASN_NGAP_NumberOfMeasurementReportingLevels */ +typedef long ASN_NGAP_NumberOfMeasurementReportingLevels_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_NumberOfMeasurementReportingLevels_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NumberOfMeasurementReportingLevels; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_NumberOfMeasurementReportingLevels_specs_1; +asn_struct_free_f ASN_NGAP_NumberOfMeasurementReportingLevels_free; +asn_struct_print_f ASN_NGAP_NumberOfMeasurementReportingLevels_print; +asn_constr_check_f ASN_NGAP_NumberOfMeasurementReportingLevels_constraint; +ber_type_decoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_decode_ber; +der_type_encoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_encode_der; +xer_type_decoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_decode_xer; +xer_type_encoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_encode_xer; +per_type_decoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_decode_uper; +per_type_encoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_encode_uper; +per_type_decoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_decode_aper; +per_type_encoder_f ASN_NGAP_NumberOfMeasurementReportingLevels_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_NumberOfMeasurementReportingLevels_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OnboardingSupport.c b/src/asn/ngap/ASN_NGAP_OnboardingSupport.c new file mode 100644 index 0000000..e6b84d2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OnboardingSupport.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OnboardingSupport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_OnboardingSupport_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_ASN_NGAP_OnboardingSupport_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_OnboardingSupport_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_OnboardingSupport_specs_1 = { + asn_MAP_ASN_NGAP_OnboardingSupport_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_OnboardingSupport_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_ASN_NGAP_OnboardingSupport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OnboardingSupport = { + "OnboardingSupport", + "OnboardingSupport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_OnboardingSupport_tags_1, + sizeof(asn_DEF_ASN_NGAP_OnboardingSupport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OnboardingSupport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OnboardingSupport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OnboardingSupport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OnboardingSupport_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_OnboardingSupport_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_OnboardingSupport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OnboardingSupport.h b/src/asn/ngap/ASN_NGAP_OnboardingSupport.h new file mode 100644 index 0000000..b252b1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OnboardingSupport.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OnboardingSupport_H_ +#define _ASN_NGAP_OnboardingSupport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_OnboardingSupport { + ASN_NGAP_OnboardingSupport_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_OnboardingSupport; + +/* ASN_NGAP_OnboardingSupport */ +typedef long ASN_NGAP_OnboardingSupport_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_OnboardingSupport_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OnboardingSupport; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_OnboardingSupport_specs_1; +asn_struct_free_f ASN_NGAP_OnboardingSupport_free; +asn_struct_print_f ASN_NGAP_OnboardingSupport_print; +asn_constr_check_f ASN_NGAP_OnboardingSupport_constraint; +ber_type_decoder_f ASN_NGAP_OnboardingSupport_decode_ber; +der_type_encoder_f ASN_NGAP_OnboardingSupport_encode_der; +xer_type_decoder_f ASN_NGAP_OnboardingSupport_decode_xer; +xer_type_encoder_f ASN_NGAP_OnboardingSupport_encode_xer; +per_type_decoder_f ASN_NGAP_OnboardingSupport_decode_uper; +per_type_encoder_f ASN_NGAP_OnboardingSupport_encode_uper; +per_type_decoder_f ASN_NGAP_OnboardingSupport_decode_aper; +per_type_encoder_f ASN_NGAP_OnboardingSupport_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OnboardingSupport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadAction.c b/src/asn/ngap/ASN_NGAP_OverloadAction.c new file mode 100644 index 0000000..7b01884 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadAction.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadAction.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadAction_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_ASN_NGAP_OverloadAction_value2enum_1[] = { + { 0, 26, "reject-non-emergency-mo-dt" }, + { 1, 24, "reject-rrc-cr-signalling" }, + { 2, 61, "permit-emergency-sessions-and-mobile-terminated-services-only" }, + { 3, 65, "permit-high-priority-sessions-and-mobile-terminated-services-only" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_OverloadAction_enum2value_1[] = { + 2, /* permit-emergency-sessions-and-mobile-terminated-services-only(2) */ + 3, /* permit-high-priority-sessions-and-mobile-terminated-services-only(3) */ + 0, /* reject-non-emergency-mo-dt(0) */ + 1 /* reject-rrc-cr-signalling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_OverloadAction_specs_1 = { + asn_MAP_ASN_NGAP_OverloadAction_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_OverloadAction_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_ASN_NGAP_OverloadAction_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadAction = { + "OverloadAction", + "OverloadAction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_OverloadAction_tags_1, + sizeof(asn_DEF_ASN_NGAP_OverloadAction_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadAction_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadAction_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadAction_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadAction_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_OverloadAction_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_OverloadAction_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadAction.h b/src/asn/ngap/ASN_NGAP_OverloadAction.h new file mode 100644 index 0000000..a50310d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadAction.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadAction_H_ +#define _ASN_NGAP_OverloadAction_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_OverloadAction { + ASN_NGAP_OverloadAction_reject_non_emergency_mo_dt = 0, + ASN_NGAP_OverloadAction_reject_rrc_cr_signalling = 1, + ASN_NGAP_OverloadAction_permit_emergency_sessions_and_mobile_terminated_services_only = 2, + ASN_NGAP_OverloadAction_permit_high_priority_sessions_and_mobile_terminated_services_only = 3 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_OverloadAction; + +/* ASN_NGAP_OverloadAction */ +typedef long ASN_NGAP_OverloadAction_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadAction_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadAction; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_OverloadAction_specs_1; +asn_struct_free_f ASN_NGAP_OverloadAction_free; +asn_struct_print_f ASN_NGAP_OverloadAction_print; +asn_constr_check_f ASN_NGAP_OverloadAction_constraint; +ber_type_decoder_f ASN_NGAP_OverloadAction_decode_ber; +der_type_encoder_f ASN_NGAP_OverloadAction_encode_der; +xer_type_decoder_f ASN_NGAP_OverloadAction_decode_xer; +xer_type_encoder_f ASN_NGAP_OverloadAction_encode_xer; +per_type_decoder_f ASN_NGAP_OverloadAction_decode_uper; +per_type_encoder_f ASN_NGAP_OverloadAction_encode_uper; +per_type_decoder_f ASN_NGAP_OverloadAction_decode_aper; +per_type_encoder_f ASN_NGAP_OverloadAction_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadAction_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadResponse.c b/src/asn/ngap/ASN_NGAP_OverloadResponse.c new file mode 100644 index 0000000..3a32a76 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadResponse.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadResponse.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadResponse_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_ASN_NGAP_OverloadResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadResponse, choice.overloadAction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_OverloadAction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overloadAction" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_OverloadResponse, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* overloadAction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_OverloadResponse_specs_1 = { + sizeof(struct ASN_NGAP_OverloadResponse), + offsetof(struct ASN_NGAP_OverloadResponse, _asn_ctx), + offsetof(struct ASN_NGAP_OverloadResponse, present), + sizeof(((struct ASN_NGAP_OverloadResponse *)0)->present), + asn_MAP_ASN_NGAP_OverloadResponse_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadResponse = { + "OverloadResponse", + "OverloadResponse", + &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_ASN_NGAP_OverloadResponse_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_OverloadResponse_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadResponse.h b/src/asn/ngap/ASN_NGAP_OverloadResponse.h new file mode 100644 index 0000000..4560706 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadResponse.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadResponse_H_ +#define _ASN_NGAP_OverloadResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_OverloadAction.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_OverloadResponse_PR { + ASN_NGAP_OverloadResponse_PR_NOTHING, /* No components present */ + ASN_NGAP_OverloadResponse_PR_overloadAction, + ASN_NGAP_OverloadResponse_PR_choice_Extensions +} ASN_NGAP_OverloadResponse_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_OverloadResponse */ +typedef struct ASN_NGAP_OverloadResponse { + ASN_NGAP_OverloadResponse_PR present; + union ASN_NGAP_OverloadResponse_u { + ASN_NGAP_OverloadAction_t overloadAction; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadResponse; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_OverloadResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadResponse_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadResponse_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadStart.c b/src/asn/ngap/ASN_NGAP_OverloadStart.c new file mode 100644 index 0000000..f16f291 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStart.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadStart.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStart, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStart_specs_1 = { + sizeof(struct ASN_NGAP_OverloadStart), + offsetof(struct ASN_NGAP_OverloadStart, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStart_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_ASN_NGAP_OverloadStart = { + "OverloadStart", + "OverloadStart", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStart_tags_1, + sizeof(asn_DEF_ASN_NGAP_OverloadStart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStart_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStart_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStart_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStart_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadStart.h b/src/asn/ngap/ASN_NGAP_OverloadStart.h new file mode 100644 index 0000000..d7c9ee7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadStart_H_ +#define _ASN_NGAP_OverloadStart_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_OverloadStart */ +typedef struct ASN_NGAP_OverloadStart { + ASN_NGAP_ProtocolIE_Container_123P68_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStart; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStart_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStart_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadStart_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.c b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.c new file mode 100644 index 0000000..df38213 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadStartNSSAIItem.h" + +#include "ASN_NGAP_OverloadResponse.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem, sliceOverloadList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SliceOverloadList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceOverloadList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem, sliceOverloadResponse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_OverloadResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceOverloadResponse" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem, sliceTrafficLoadReductionIndication), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TrafficLoadReductionIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceTrafficLoadReductionIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sliceOverloadList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sliceOverloadResponse */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sliceTrafficLoadReductionIndication */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_specs_1 = { + sizeof(struct ASN_NGAP_OverloadStartNSSAIItem), + offsetof(struct ASN_NGAP_OverloadStartNSSAIItem, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem = { + "OverloadStartNSSAIItem", + "OverloadStartNSSAIItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.h b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.h new file mode 100644 index 0000000..832fdc5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadStartNSSAIItem_H_ +#define _ASN_NGAP_OverloadStartNSSAIItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SliceOverloadList.h" +#include "ASN_NGAP_TrafficLoadReductionIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_OverloadResponse; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_OverloadStartNSSAIItem */ +typedef struct ASN_NGAP_OverloadStartNSSAIItem { + ASN_NGAP_SliceOverloadList_t sliceOverloadList; + struct ASN_NGAP_OverloadResponse *sliceOverloadResponse; /* OPTIONAL */ + ASN_NGAP_TrafficLoadReductionIndication_t *sliceTrafficLoadReductionIndication; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStartNSSAIItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadStartNSSAIItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.c b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.c new file mode 100644 index 0000000..ec9f97d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadStartNSSAIList.h" + +#include "ASN_NGAP_OverloadStartNSSAIItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadStartNSSAIList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStartNSSAIItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIList_specs_1 = { + sizeof(struct ASN_NGAP_OverloadStartNSSAIList), + offsetof(struct ASN_NGAP_OverloadStartNSSAIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIList = { + "OverloadStartNSSAIList", + "OverloadStartNSSAIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_OverloadStartNSSAIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_OverloadStartNSSAIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_OverloadStartNSSAIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.h b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.h new file mode 100644 index 0000000..88d5ee6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStartNSSAIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadStartNSSAIList_H_ +#define _ASN_NGAP_OverloadStartNSSAIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_OverloadStartNSSAIItem; + +/* ASN_NGAP_OverloadStartNSSAIList */ +typedef struct ASN_NGAP_OverloadStartNSSAIList { + A_SEQUENCE_OF(struct ASN_NGAP_OverloadStartNSSAIItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStartNSSAIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_OverloadStartNSSAIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadStartNSSAIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_OverloadStop.c b/src/asn/ngap/ASN_NGAP_OverloadStop.c new file mode 100644 index 0000000..2521b52 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStop.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_OverloadStop.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStop_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStop, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStop_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStop_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStop_specs_1 = { + sizeof(struct ASN_NGAP_OverloadStop), + offsetof(struct ASN_NGAP_OverloadStop, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStop_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_ASN_NGAP_OverloadStop = { + "OverloadStop", + "OverloadStop", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStop_tags_1, + sizeof(asn_DEF_ASN_NGAP_OverloadStop_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStop_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStop_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStop_tags_1) + /sizeof(asn_DEF_ASN_NGAP_OverloadStop_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStop_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStop_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_OverloadStop.h b/src/asn/ngap/ASN_NGAP_OverloadStop.h new file mode 100644 index 0000000..4a1e6f7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_OverloadStop.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_OverloadStop_H_ +#define _ASN_NGAP_OverloadStop_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_OverloadStop */ +typedef struct ASN_NGAP_OverloadStop { + ASN_NGAP_ProtocolIE_Container_123P69_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStop_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStop; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStop_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStop_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_OverloadStop_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.c b/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.c new file mode 100644 index 0000000..9b4c453 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PC5FlowBitRates.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5FlowBitRates_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5FlowBitRates, guaranteedFlowBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guaranteedFlowBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5FlowBitRates, maximumFlowBitRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumFlowBitRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PC5FlowBitRates, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PC5FlowBitRates_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5FlowBitRates_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* guaranteedFlowBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maximumFlowBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5FlowBitRates_specs_1 = { + sizeof(struct ASN_NGAP_PC5FlowBitRates), + offsetof(struct ASN_NGAP_PC5FlowBitRates, _asn_ctx), + asn_MAP_ASN_NGAP_PC5FlowBitRates_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PC5FlowBitRates_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5FlowBitRates = { + "PC5FlowBitRates", + "PC5FlowBitRates", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1, + sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5FlowBitRates_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5FlowBitRates_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.h b/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.h new file mode 100644 index 0000000..a6cb47d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5FlowBitRates.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PC5FlowBitRates_H_ +#define _ASN_NGAP_PC5FlowBitRates_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PC5FlowBitRates */ +typedef struct ASN_NGAP_PC5FlowBitRates { + ASN_NGAP_BitRate_t guaranteedFlowBitRate; + ASN_NGAP_BitRate_t maximumFlowBitRate; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5FlowBitRates_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5FlowBitRates; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5FlowBitRates_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5FlowBitRates_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PC5FlowBitRates_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.c b/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.c new file mode 100644 index 0000000..b910c36 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PC5QoSFlowItem.h" + +#include "ASN_NGAP_PC5FlowBitRates.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSFlowItem, pQI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveQI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pQI" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PC5QoSFlowItem, pc5FlowBitRates), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PC5FlowBitRates, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pc5FlowBitRates" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PC5QoSFlowItem, range), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PC5QoSFlowItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PC5QoSFlowItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5QoSFlowItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pQI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pc5FlowBitRates */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* range */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowItem_specs_1 = { + sizeof(struct ASN_NGAP_PC5QoSFlowItem), + offsetof(struct ASN_NGAP_PC5QoSFlowItem, _asn_ctx), + asn_MAP_ASN_NGAP_PC5QoSFlowItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PC5QoSFlowItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowItem = { + "PC5QoSFlowItem", + "PC5QoSFlowItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5QoSFlowItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5QoSFlowItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.h b/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.h new file mode 100644 index 0000000..521c6ae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSFlowItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PC5QoSFlowItem_H_ +#define _ASN_NGAP_PC5QoSFlowItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_FiveQI.h" +#include "ASN_NGAP_Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PC5FlowBitRates; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PC5QoSFlowItem */ +typedef struct ASN_NGAP_PC5QoSFlowItem { + ASN_NGAP_FiveQI_t pQI; + struct ASN_NGAP_PC5FlowBitRates *pc5FlowBitRates; /* OPTIONAL */ + ASN_NGAP_Range_t *range; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5QoSFlowItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PC5QoSFlowItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.c b/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.c new file mode 100644 index 0000000..6645564 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PC5QoSFlowList.h" + +#include "ASN_NGAP_PC5QoSFlowItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PC5QoSFlowList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 2048 } /* (SIZE(1..2048)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSFlowItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowList_specs_1 = { + sizeof(struct ASN_NGAP_PC5QoSFlowList), + offsetof(struct ASN_NGAP_PC5QoSFlowList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowList = { + "PC5QoSFlowList", + "PC5QoSFlowList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PC5QoSFlowList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PC5QoSFlowList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PC5QoSFlowList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.h b/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.h new file mode 100644 index 0000000..d614de3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSFlowList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PC5QoSFlowList_H_ +#define _ASN_NGAP_PC5QoSFlowList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PC5QoSFlowItem; + +/* ASN_NGAP_PC5QoSFlowList */ +typedef struct ASN_NGAP_PC5QoSFlowList { + A_SEQUENCE_OF(struct ASN_NGAP_PC5QoSFlowItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5QoSFlowList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PC5QoSFlowList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PC5QoSFlowList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSParameters.c b/src/asn/ngap/ASN_NGAP_PC5QoSParameters.c new file mode 100644 index 0000000..47d5cc1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSParameters.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PC5QoSParameters.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSParameters, pc5QoSFlowList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PC5QoSFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pc5QoSFlowList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PC5QoSParameters, pc5LinkAggregateBitRates), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pc5LinkAggregateBitRates" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PC5QoSParameters, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PC5QoSParameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5QoSParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pc5QoSFlowList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pc5LinkAggregateBitRates */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSParameters_specs_1 = { + sizeof(struct ASN_NGAP_PC5QoSParameters), + offsetof(struct ASN_NGAP_PC5QoSParameters, _asn_ctx), + asn_MAP_ASN_NGAP_PC5QoSParameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PC5QoSParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSParameters = { + "PC5QoSParameters", + "PC5QoSParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1, + sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5QoSParameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5QoSParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PC5QoSParameters.h b/src/asn/ngap/ASN_NGAP_PC5QoSParameters.h new file mode 100644 index 0000000..409ee19 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PC5QoSParameters.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PC5QoSParameters_H_ +#define _ASN_NGAP_PC5QoSParameters_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PC5QoSFlowList.h" +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PC5QoSParameters */ +typedef struct ASN_NGAP_PC5QoSParameters { + ASN_NGAP_PC5QoSFlowList_t pc5QoSFlowList; + ASN_NGAP_BitRate_t *pc5LinkAggregateBitRates; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5QoSParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSParameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PC5QoSParameters_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PCIListForMDT.c b/src/asn/ngap/ASN_NGAP_PCIListForMDT.c new file mode 100644 index 0000000..49adae8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PCIListForMDT.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PCIListForMDT.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_PCIListForMDT_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_ASN_NGAP_PCIListForMDT_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_PCI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PCIListForMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PCIListForMDT_specs_1 = { + sizeof(struct ASN_NGAP_PCIListForMDT), + offsetof(struct ASN_NGAP_PCIListForMDT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PCIListForMDT = { + "PCIListForMDT", + "PCIListForMDT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PCIListForMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_PCIListForMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PCIListForMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PCIListForMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PCIListForMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PCIListForMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PCIListForMDT_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PCIListForMDT_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PCIListForMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PCIListForMDT.h b/src/asn/ngap/ASN_NGAP_PCIListForMDT.h new file mode 100644 index 0000000..31c52ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PCIListForMDT.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PCIListForMDT_H_ +#define _ASN_NGAP_PCIListForMDT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-PCI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PCIListForMDT */ +typedef struct ASN_NGAP_PCIListForMDT { + A_SEQUENCE_OF(ASN_NGAP_NR_PCI_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PCIListForMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PCIListForMDT; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PCIListForMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PCIListForMDT_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PCIListForMDT_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PCIListForMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.c b/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.c new file mode 100644 index 0000000..00876bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionAggregateMaximumBitRate.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate, pDUSessionAggregateMaximumBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionAggregateMaximumBitRateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate, pDUSessionAggregateMaximumBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionAggregateMaximumBitRateUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionAggregateMaximumBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionAggregateMaximumBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate), + offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate = { + "PDUSessionAggregateMaximumBitRate", + "PDUSessionAggregateMaximumBitRate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.h b/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.h new file mode 100644 index 0000000..0c8f91a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionAggregateMaximumBitRate.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionAggregateMaximumBitRate_H_ +#define _ASN_NGAP_PDUSessionAggregateMaximumBitRate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionAggregateMaximumBitRate */ +typedef struct ASN_NGAP_PDUSessionAggregateMaximumBitRate { + ASN_NGAP_BitRate_t pDUSessionAggregateMaximumBitRateDL; + ASN_NGAP_BitRate_t pDUSessionAggregateMaximumBitRateUL; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionAggregateMaximumBitRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionAggregateMaximumBitRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionID.c b/src/asn/ngap/ASN_NGAP_PDUSessionID.c new file mode 100644 index 0000000..173e8d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionID.h" + +int +ASN_NGAP_PDUSessionID_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_ASN_NGAP_PDUSessionID_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_ASN_NGAP_PDUSessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionID = { + "PDUSessionID", + "PDUSessionID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PDUSessionID_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionID_constr_1, ASN_NGAP_PDUSessionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionID.h b/src/asn/ngap/ASN_NGAP_PDUSessionID.h new file mode 100644 index 0000000..0d36aa2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionID_H_ +#define _ASN_NGAP_PDUSessionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionID */ +typedef long ASN_NGAP_PDUSessionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionID; +asn_struct_free_f ASN_NGAP_PDUSessionID_free; +asn_struct_print_f ASN_NGAP_PDUSessionID_print; +asn_constr_check_f ASN_NGAP_PDUSessionID_constraint; +ber_type_decoder_f ASN_NGAP_PDUSessionID_decode_ber; +der_type_encoder_f ASN_NGAP_PDUSessionID_encode_der; +xer_type_decoder_f ASN_NGAP_PDUSessionID_decode_xer; +xer_type_encoder_f ASN_NGAP_PDUSessionID_encode_xer; +per_type_decoder_f ASN_NGAP_PDUSessionID_decode_uper; +per_type_encoder_f ASN_NGAP_PDUSessionID_encode_uper; +per_type_decoder_f ASN_NGAP_PDUSessionID_decode_aper; +per_type_encoder_f ASN_NGAP_PDUSessionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionPairID.c b/src/asn/ngap/ASN_NGAP_PDUSessionPairID.c new file mode 100644 index 0000000..8fe4201 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionPairID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionPairID.h" + +int +ASN_NGAP_PDUSessionPairID_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_ASN_NGAP_PDUSessionPairID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_PDUSessionPairID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionPairID = { + "PDUSessionPairID", + "PDUSessionPairID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionPairID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionPairID_constr_1, ASN_NGAP_PDUSessionPairID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionPairID.h b/src/asn/ngap/ASN_NGAP_PDUSessionPairID.h new file mode 100644 index 0000000..a0e715c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionPairID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionPairID_H_ +#define _ASN_NGAP_PDUSessionPairID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionPairID */ +typedef long ASN_NGAP_PDUSessionPairID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionPairID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionPairID; +asn_struct_free_f ASN_NGAP_PDUSessionPairID_free; +asn_struct_print_f ASN_NGAP_PDUSessionPairID_print; +asn_constr_check_f ASN_NGAP_PDUSessionPairID_constraint; +ber_type_decoder_f ASN_NGAP_PDUSessionPairID_decode_ber; +der_type_encoder_f ASN_NGAP_PDUSessionPairID_encode_der; +xer_type_decoder_f ASN_NGAP_PDUSessionPairID_decode_xer; +xer_type_encoder_f ASN_NGAP_PDUSessionPairID_encode_xer; +per_type_decoder_f ASN_NGAP_PDUSessionPairID_decode_uper; +per_type_encoder_f ASN_NGAP_PDUSessionPairID_encode_uper; +per_type_decoder_f ASN_NGAP_PDUSessionPairID_decode_aper; +per_type_encoder_f ASN_NGAP_PDUSessionPairID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionPairID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.c new file mode 100644 index 0000000..05fe105 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceAdmittedItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverRequestAcknowledgeTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverRequestAcknowledgeTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem, handoverRequestAcknowledgeTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverRequestAcknowledgeTransfer_constr_3, memb_ASN_NGAP_handoverRequestAcknowledgeTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverRequestAcknowledgeTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverRequestAcknowledgeTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceAdmittedItem), + offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem = { + "PDUSessionResourceAdmittedItem", + "PDUSessionResourceAdmittedItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.h new file mode 100644 index 0000000..468e96f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceAdmittedItem_H_ +#define _ASN_NGAP_PDUSessionResourceAdmittedItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceAdmittedItem */ +typedef struct ASN_NGAP_PDUSessionResourceAdmittedItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t handoverRequestAcknowledgeTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceAdmittedItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceAdmittedItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.c new file mode 100644 index 0000000..34c4b11 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceAdmittedList.h" + +#include "ASN_NGAP_PDUSessionResourceAdmittedItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceAdmittedList_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_ASN_NGAP_PDUSessionResourceAdmittedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceAdmittedList), + offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList = { + "PDUSessionResourceAdmittedList", + "PDUSessionResourceAdmittedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceAdmittedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.h new file mode 100644 index 0000000..b4952d1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceAdmittedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceAdmittedList_H_ +#define _ASN_NGAP_PDUSessionResourceAdmittedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceAdmittedItem; + +/* ASN_NGAP_PDUSessionResourceAdmittedList */ +typedef struct ASN_NGAP_PDUSessionResourceAdmittedList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceAdmittedItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceAdmittedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceAdmittedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceAdmittedList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.c new file mode 100644 index 0000000..5f6d569 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyIndicationUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyIndicationUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm, pDUSessionResourceModifyIndicationUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyIndicationUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceModifyIndicationUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyIndicationUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceModifyIndicationUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm = { + "PDUSessionResourceFailedToModifyItemModCfm", + "PDUSessionResourceFailedToModifyItemModCfm", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h new file mode 100644 index 0000000..9283f7e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceModifyIndicationUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.c new file mode 100644 index 0000000..fbb443d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes, pDUSessionResourceModifyUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceModifyUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceModifyUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes = { + "PDUSessionResourceFailedToModifyItemModRes", + "PDUSessionResourceFailedToModifyItemModRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h new file mode 100644 index 0000000..81b3a31 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceModifyUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.c new file mode 100644 index 0000000..8a12907 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_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_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm = { + "PDUSessionResourceFailedToModifyListModCfm", + "PDUSessionResourceFailedToModifyListModCfm", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h new file mode 100644 index 0000000..67ff71b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm; + +/* ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.c new file mode 100644 index 0000000..e9083f8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_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_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyListModRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyListModRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes = { + "PDUSessionResourceFailedToModifyListModRes", + "PDUSessionResourceFailedToModifyListModRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h new file mode 100644 index 0000000..e9fd193 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes; + +/* ASN_NGAP_PDUSessionResourceFailedToModifyListModRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyListModRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.c new file mode 100644 index 0000000..6e35fa2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq = { + "PDUSessionResourceFailedToResumeItemRESReq", + "PDUSessionResourceFailedToResumeItemRESReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h new file mode 100644 index 0000000..560b86d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.c new file mode 100644 index 0000000..bf623db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes = { + "PDUSessionResourceFailedToResumeItemRESRes", + "PDUSessionResourceFailedToResumeItemRESRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h new file mode 100644 index 0000000..91faeb9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.c new file mode 100644 index 0000000..714339b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_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_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq = { + "PDUSessionResourceFailedToResumeListRESReq", + "PDUSessionResourceFailedToResumeListRESReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h new file mode 100644 index 0000000..08e0522 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq; + +/* ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.c new file mode 100644 index 0000000..8d7ad10 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_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_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes = { + "PDUSessionResourceFailedToResumeListRESRes", + "PDUSessionResourceFailedToResumeListRESRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h new file mode 100644 index 0000000..8a8f678 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes; + +/* ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c new file mode 100644 index 0000000..95935fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail, pDUSessionResourceSetupUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceSetupUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail = { + "PDUSessionResourceFailedToSetupItemCxtFail", + "PDUSessionResourceFailedToSetupItemCxtFail", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h new file mode 100644 index 0000000..0246539 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceSetupUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c new file mode 100644 index 0000000..dbe958a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes, pDUSessionResourceSetupUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceSetupUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes = { + "PDUSessionResourceFailedToSetupItemCxtRes", + "PDUSessionResourceFailedToSetupItemCxtRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h new file mode 100644 index 0000000..166ff0e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceSetupUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.c new file mode 100644 index 0000000..43323a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverResourceAllocationUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverResourceAllocationUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck, handoverResourceAllocationUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverResourceAllocationUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_handoverResourceAllocationUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverResourceAllocationUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverResourceAllocationUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck = { + "PDUSessionResourceFailedToSetupItemHOAck", + "PDUSessionResourceFailedToSetupItemHOAck", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h new file mode 100644 index 0000000..b57657a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t handoverResourceAllocationUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.c new file mode 100644 index 0000000..2b8b39b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pathSwitchRequestSetupFailedTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pathSwitchRequestSetupFailedTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq, pathSwitchRequestSetupFailedTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pathSwitchRequestSetupFailedTransfer_constr_3, memb_ASN_NGAP_pathSwitchRequestSetupFailedTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pathSwitchRequestSetupFailedTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathSwitchRequestSetupFailedTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq = { + "PDUSessionResourceFailedToSetupItemPSReq", + "PDUSessionResourceFailedToSetupItemPSReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h new file mode 100644 index 0000000..d5ea857 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pathSwitchRequestSetupFailedTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.c new file mode 100644 index 0000000..a600f5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes, pDUSessionResourceSetupUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceSetupUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceSetupUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes = { + "PDUSessionResourceFailedToSetupItemSURes", + "PDUSessionResourceFailedToSetupItemSURes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h new file mode 100644 index 0000000..c7812b5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceSetupUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.c new file mode 100644 index 0000000..c2f3cfb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_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_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail = { + "PDUSessionResourceFailedToSetupListCxtFail", + "PDUSessionResourceFailedToSetupListCxtFail", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h new file mode 100644 index 0000000..1e31f8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.c new file mode 100644 index 0000000..4159987 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_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_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes = { + "PDUSessionResourceFailedToSetupListCxtRes", + "PDUSessionResourceFailedToSetupListCxtRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h new file mode 100644 index 0000000..7a249b4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.c new file mode 100644 index 0000000..f2cab6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_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_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck = { + "PDUSessionResourceFailedToSetupListHOAck", + "PDUSessionResourceFailedToSetupListHOAck", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h new file mode 100644 index 0000000..48c37d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.c new file mode 100644 index 0000000..f7be256 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_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_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq = { + "PDUSessionResourceFailedToSetupListPSReq", + "PDUSessionResourceFailedToSetupListPSReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h new file mode 100644 index 0000000..eace787 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.c new file mode 100644 index 0000000..2012776 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h" + +#include "ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_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_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListSURes), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupListSURes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes = { + "PDUSessionResourceFailedToSetupListSURes", + "PDUSessionResourceFailedToSetupListSURes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h new file mode 100644 index 0000000..4fda39c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_H_ +#define _ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes; + +/* ASN_NGAP_PDUSessionResourceFailedToSetupListSURes */ +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupListSURes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.c new file mode 100644 index 0000000..ceae4a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceHandoverItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverCommandTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverCommandTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem, handoverCommandTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverCommandTransfer_constr_3, memb_ASN_NGAP_handoverCommandTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverCommandTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverCommandTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceHandoverItem), + offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem = { + "PDUSessionResourceHandoverItem", + "PDUSessionResourceHandoverItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.h new file mode 100644 index 0000000..ba6d9e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceHandoverItem_H_ +#define _ASN_NGAP_PDUSessionResourceHandoverItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceHandoverItem */ +typedef struct ASN_NGAP_PDUSessionResourceHandoverItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t handoverCommandTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceHandoverItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceHandoverItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.c new file mode 100644 index 0000000..841de86 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceHandoverList.h" + +#include "ASN_NGAP_PDUSessionResourceHandoverItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceHandoverList_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_ASN_NGAP_PDUSessionResourceHandoverList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceHandoverList), + offsetof(struct ASN_NGAP_PDUSessionResourceHandoverList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList = { + "PDUSessionResourceHandoverList", + "PDUSessionResourceHandoverList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceHandoverList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceHandoverList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceHandoverList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.h new file mode 100644 index 0000000..d884c3c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceHandoverList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceHandoverList_H_ +#define _ASN_NGAP_PDUSessionResourceHandoverList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceHandoverItem; + +/* ASN_NGAP_PDUSessionResourceHandoverList */ +typedef struct ASN_NGAP_PDUSessionResourceHandoverList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceHandoverItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceHandoverList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceHandoverList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceHandoverList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceHandoverList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.c new file mode 100644 index 0000000..96cf080 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceInformationItem.h" + +#include "ASN_NGAP_DRBsToQosFlowsMappingList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem, qosFlowInformationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowInformationList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem, dRBsToQosFlowsMappingList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBsToQosFlowsMappingList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowInformationList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dRBsToQosFlowsMappingList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceInformationItem), + offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem = { + "PDUSessionResourceInformationItem", + "PDUSessionResourceInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.h new file mode 100644 index 0000000..ce57813 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceInformationItem_H_ +#define _ASN_NGAP_PDUSessionResourceInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_QosFlowInformationList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_DRBsToQosFlowsMappingList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceInformationItem */ +typedef struct ASN_NGAP_PDUSessionResourceInformationItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_QosFlowInformationList_t qosFlowInformationList; + struct ASN_NGAP_DRBsToQosFlowsMappingList *dRBsToQosFlowsMappingList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.c new file mode 100644 index 0000000..918845d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceInformationList.h" + +#include "ASN_NGAP_PDUSessionResourceInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceInformationList_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_ASN_NGAP_PDUSessionResourceInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceInformationList), + offsetof(struct ASN_NGAP_PDUSessionResourceInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationList = { + "PDUSessionResourceInformationList", + "PDUSessionResourceInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.h new file mode 100644 index 0000000..3de2c24 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceInformationList_H_ +#define _ASN_NGAP_PDUSessionResourceInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceInformationItem; + +/* ASN_NGAP_PDUSessionResourceInformationList */ +typedef struct ASN_NGAP_PDUSessionResourceInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c new file mode 100644 index 0000000..c2489a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl = { + "PDUSessionResourceItemCxtRelCpl", + "PDUSessionResourceItemCxtRelCpl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h new file mode 100644 index 0000000..c353685 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceItemCxtRelCpl_H_ +#define _ASN_NGAP_PDUSessionResourceItemCxtRelCpl_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceItemCxtRelCpl */ +typedef struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl { + ASN_NGAP_PDUSessionID_t pDUSessionID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemCxtRelCpl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceItemCxtRelCpl_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.c new file mode 100644 index 0000000..2817cbf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceItemCxtRelReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq = { + "PDUSessionResourceItemCxtRelReq", + "PDUSessionResourceItemCxtRelReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.h new file mode 100644 index 0000000..3ca2454 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemCxtRelReq.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceItemCxtRelReq_H_ +#define _ASN_NGAP_PDUSessionResourceItemCxtRelReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceItemCxtRelReq */ +typedef struct ASN_NGAP_PDUSessionResourceItemCxtRelReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemCxtRelReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceItemCxtRelReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.c new file mode 100644 index 0000000..c18b81a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceItemHORqd.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverRequiredTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverRequiredTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd, handoverRequiredTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverRequiredTransfer_constr_3, memb_ASN_NGAP_handoverRequiredTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverRequiredTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverRequiredTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemHORqd), + offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd = { + "PDUSessionResourceItemHORqd", + "PDUSessionResourceItemHORqd", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.h new file mode 100644 index 0000000..9ff24be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceItemHORqd.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceItemHORqd_H_ +#define _ASN_NGAP_PDUSessionResourceItemHORqd_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceItemHORqd */ +typedef struct ASN_NGAP_PDUSessionResourceItemHORqd { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t handoverRequiredTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemHORqd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceItemHORqd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.c new file mode 100644 index 0000000..3f19b26 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceListCxtRelCpl.h" + +#include "ASN_NGAP_PDUSessionResourceItemCxtRelCpl.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelCpl_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_ASN_NGAP_PDUSessionResourceListCxtRelCpl_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelCpl_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceListCxtRelCpl), + offsetof(struct ASN_NGAP_PDUSessionResourceListCxtRelCpl, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl = { + "PDUSessionResourceListCxtRelCpl", + "PDUSessionResourceListCxtRelCpl", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelCpl_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceListCxtRelCpl_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelCpl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.h new file mode 100644 index 0000000..a8e43c9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelCpl.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceListCxtRelCpl_H_ +#define _ASN_NGAP_PDUSessionResourceListCxtRelCpl_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl; + +/* ASN_NGAP_PDUSessionResourceListCxtRelCpl */ +typedef struct ASN_NGAP_PDUSessionResourceListCxtRelCpl { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceListCxtRelCpl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelCpl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceListCxtRelCpl_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelCpl_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceListCxtRelCpl_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.c new file mode 100644 index 0000000..d2843e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceListCxtRelReq.h" + +#include "ASN_NGAP_PDUSessionResourceItemCxtRelReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelReq_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_ASN_NGAP_PDUSessionResourceListCxtRelReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceListCxtRelReq), + offsetof(struct ASN_NGAP_PDUSessionResourceListCxtRelReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq = { + "PDUSessionResourceListCxtRelReq", + "PDUSessionResourceListCxtRelReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceListCxtRelReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.h new file mode 100644 index 0000000..d19722e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListCxtRelReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceListCxtRelReq_H_ +#define _ASN_NGAP_PDUSessionResourceListCxtRelReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceItemCxtRelReq; + +/* ASN_NGAP_PDUSessionResourceListCxtRelReq */ +typedef struct ASN_NGAP_PDUSessionResourceListCxtRelReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceListCxtRelReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListCxtRelReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceListCxtRelReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListCxtRelReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceListCxtRelReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.c new file mode 100644 index 0000000..ed02417 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceListHORqd.h" + +#include "ASN_NGAP_PDUSessionResourceItemHORqd.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListHORqd_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_ASN_NGAP_PDUSessionResourceListHORqd_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListHORqd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceListHORqd), + offsetof(struct ASN_NGAP_PDUSessionResourceListHORqd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd = { + "PDUSessionResourceListHORqd", + "PDUSessionResourceListHORqd", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceListHORqd_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceListHORqd_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceListHORqd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.h new file mode 100644 index 0000000..10c710d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceListHORqd.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceListHORqd_H_ +#define _ASN_NGAP_PDUSessionResourceListHORqd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceItemHORqd; + +/* ASN_NGAP_PDUSessionResourceListHORqd */ +typedef struct ASN_NGAP_PDUSessionResourceListHORqd { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemHORqd) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceListHORqd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceListHORqd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceListHORqd_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceListHORqd_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceListHORqd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.c new file mode 100644 index 0000000..e7b0170 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyConfirm.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirm_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirm, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirm_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirm_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirm), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirm, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirm_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_ASN_NGAP_PDUSessionResourceModifyConfirm = { + "PDUSessionResourceModifyConfirm", + "PDUSessionResourceModifyConfirm", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirm_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.h new file mode 100644 index 0000000..3cdd6eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyConfirm_H_ +#define _ASN_NGAP_PDUSessionResourceModifyConfirm_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceModifyConfirm */ +typedef struct ASN_NGAP_PDUSessionResourceModifyConfirm { + ASN_NGAP_ProtocolIE_Container_123P12_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyConfirm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirm_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirm_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyConfirm_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.c new file mode 100644 index 0000000..4936443 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.c @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformationPairList.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, qosFlowModifyConfirmList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowModifyConfirmList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowModifyConfirmList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, uLNGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uLNGU-UP-TNLInformation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, additionalNG_UUPTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalNG-UUPTNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, qosFlowFailedToModifyList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToModifyList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowModifyConfirmList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uLNGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* additionalNG-UUPTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* qosFlowFailedToModifyList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer = { + "PDUSessionResourceModifyConfirmTransfer", + "PDUSessionResourceModifyConfirmTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h new file mode 100644 index 0000000..2c36b4b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyConfirmTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowModifyConfirmList.h" +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformationPairList; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyConfirmTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer { + ASN_NGAP_QosFlowModifyConfirmList_t qosFlowModifyConfirmList; + ASN_NGAP_UPTransportLayerInformation_t uLNGU_UP_TNLInformation; + struct ASN_NGAP_UPTransportLayerInformationPairList *additionalNG_UUPTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToModifyList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.c new file mode 100644 index 0000000..8256b24 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndication_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndication), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndication, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndication_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_ASN_NGAP_PDUSessionResourceModifyIndication = { + "PDUSessionResourceModifyIndication", + "PDUSessionResourceModifyIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.h new file mode 100644 index 0000000..610081b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyIndication_H_ +#define _ASN_NGAP_PDUSessionResourceModifyIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceModifyIndication */ +typedef struct ASN_NGAP_PDUSessionResourceModifyIndication { + ASN_NGAP_ProtocolIE_Container_123P11_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.c new file mode 100644 index 0000000..af2cd4c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h" + +#include "ASN_NGAP_QosFlowPerTNLInformationList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer, dLQosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLQosFlowPerTNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer, additionalDLQosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDLQosFlowPerTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLQosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalDLQosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer = { + "PDUSessionResourceModifyIndicationTransfer", + "PDUSessionResourceModifyIndicationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h new file mode 100644 index 0000000..0ca87b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowPerTNLInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowPerTNLInformationList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyIndicationTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer { + ASN_NGAP_QosFlowPerTNLInformation_t dLQosFlowPerTNLInformation; + struct ASN_NGAP_QosFlowPerTNLInformationList *additionalDLQosFlowPerTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c new file mode 100644 index 0000000..1db8028 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer = { + "PDUSessionResourceModifyIndicationUnsuccessfulTransfer", + "PDUSessionResourceModifyIndicationUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h new file mode 100644 index 0000000..8f60f31 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.c new file mode 100644 index 0000000..f8d7980 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyItemModCfm.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyConfirmTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyConfirmTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm, pDUSessionResourceModifyConfirmTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyConfirmTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceModifyConfirmTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyConfirmTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceModifyConfirmTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm = { + "PDUSessionResourceModifyItemModCfm", + "PDUSessionResourceModifyItemModCfm", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.h new file mode 100644 index 0000000..064d525 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModCfm.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyItemModCfm_H_ +#define _ASN_NGAP_PDUSessionResourceModifyItemModCfm_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyItemModCfm */ +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModCfm { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceModifyConfirmTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModCfm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyItemModCfm_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.c new file mode 100644 index 0000000..e73e38b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyItemModInd.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyIndicationTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyIndicationTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd, pDUSessionResourceModifyIndicationTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyIndicationTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceModifyIndicationTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyIndicationTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceModifyIndicationTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd = { + "PDUSessionResourceModifyItemModInd", + "PDUSessionResourceModifyItemModInd", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.h new file mode 100644 index 0000000..b4ab11b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModInd.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyItemModInd_H_ +#define _ASN_NGAP_PDUSessionResourceModifyItemModInd_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyItemModInd */ +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModInd { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceModifyIndicationTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModInd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyItemModInd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.c new file mode 100644 index 0000000..daa279c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyItemModReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyRequestTransfer_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq, nAS_PDU), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq, pDUSessionResourceModifyRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyRequestTransfer_constr_4, memb_ASN_NGAP_pDUSessionResourceModifyRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_oms_1[] = { 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nAS-PDU */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pDUSessionResourceModifyRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq = { + "PDUSessionResourceModifyItemModReq", + "PDUSessionResourceModifyItemModReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.h new file mode 100644 index 0000000..1753ef0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModReq.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyItemModReq_H_ +#define _ASN_NGAP_PDUSessionResourceModifyItemModReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_NAS-PDU.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyItemModReq */ +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_NAS_PDU_t *nAS_PDU; /* OPTIONAL */ + OCTET_STRING_t pDUSessionResourceModifyRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyItemModReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.c new file mode 100644 index 0000000..94342c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyItemModRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceModifyResponseTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyResponseTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes, pDUSessionResourceModifyResponseTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceModifyResponseTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceModifyResponseTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceModifyResponseTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceModifyResponseTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes = { + "PDUSessionResourceModifyItemModRes", + "PDUSessionResourceModifyItemModRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.h new file mode 100644 index 0000000..cc2b13a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyItemModRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyItemModRes_H_ +#define _ASN_NGAP_PDUSessionResourceModifyItemModRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyItemModRes */ +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceModifyResponseTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyItemModRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.c new file mode 100644 index 0000000..14f32df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyListModCfm.h" + +#include "ASN_NGAP_PDUSessionResourceModifyItemModCfm.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModCfm_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_ASN_NGAP_PDUSessionResourceModifyListModCfm_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModCfm_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyListModCfm), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyListModCfm, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm = { + "PDUSessionResourceModifyListModCfm", + "PDUSessionResourceModifyListModCfm", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModCfm_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModCfm_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModCfm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.h new file mode 100644 index 0000000..299d8ba --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModCfm.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyListModCfm_H_ +#define _ASN_NGAP_PDUSessionResourceModifyListModCfm_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceModifyItemModCfm; + +/* ASN_NGAP_PDUSessionResourceModifyListModCfm */ +typedef struct ASN_NGAP_PDUSessionResourceModifyListModCfm { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyListModCfm_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModCfm_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModCfm_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModCfm_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyListModCfm_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.c new file mode 100644 index 0000000..371a68e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyListModInd.h" + +#include "ASN_NGAP_PDUSessionResourceModifyItemModInd.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModInd_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_ASN_NGAP_PDUSessionResourceModifyListModInd_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModInd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyListModInd), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyListModInd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd = { + "PDUSessionResourceModifyListModInd", + "PDUSessionResourceModifyListModInd", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModInd_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModInd_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModInd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.h new file mode 100644 index 0000000..4edd81e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModInd.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyListModInd_H_ +#define _ASN_NGAP_PDUSessionResourceModifyListModInd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceModifyItemModInd; + +/* ASN_NGAP_PDUSessionResourceModifyListModInd */ +typedef struct ASN_NGAP_PDUSessionResourceModifyListModInd { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModInd) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyListModInd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModInd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModInd_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModInd_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyListModInd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.c new file mode 100644 index 0000000..aa5cb07 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyListModReq.h" + +#include "ASN_NGAP_PDUSessionResourceModifyItemModReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModReq_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_ASN_NGAP_PDUSessionResourceModifyListModReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyListModReq), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyListModReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq = { + "PDUSessionResourceModifyListModReq", + "PDUSessionResourceModifyListModReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.h new file mode 100644 index 0000000..4b8057b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyListModReq_H_ +#define _ASN_NGAP_PDUSessionResourceModifyListModReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceModifyItemModReq; + +/* ASN_NGAP_PDUSessionResourceModifyListModReq */ +typedef struct ASN_NGAP_PDUSessionResourceModifyListModReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyListModReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyListModReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.c new file mode 100644 index 0000000..21d3bbd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyListModRes.h" + +#include "ASN_NGAP_PDUSessionResourceModifyItemModRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModRes_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_ASN_NGAP_PDUSessionResourceModifyListModRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyListModRes), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyListModRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes = { + "PDUSessionResourceModifyListModRes", + "PDUSessionResourceModifyListModRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.h new file mode 100644 index 0000000..b2d3309 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyListModRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyListModRes_H_ +#define _ASN_NGAP_PDUSessionResourceModifyListModRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceModifyItemModRes; + +/* ASN_NGAP_PDUSessionResourceModifyListModRes */ +typedef struct ASN_NGAP_PDUSessionResourceModifyListModRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyListModRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyListModRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyListModRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceModifyListModRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyListModRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.c new file mode 100644 index 0000000..d9e40f6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequest_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequest), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequest, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequest_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_ASN_NGAP_PDUSessionResourceModifyRequest = { + "PDUSessionResourceModifyRequest", + "PDUSessionResourceModifyRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.h new file mode 100644 index 0000000..926b61b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyRequest_H_ +#define _ASN_NGAP_PDUSessionResourceModifyRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceModifyRequest */ +typedef struct ASN_NGAP_PDUSessionResourceModifyRequest { + ASN_NGAP_ProtocolIE_Container_123P8_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.c new file mode 100644 index 0000000..3a1cefe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h" + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_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_ASN_NGAP_PDUSessionResourceModifyRequestTransfer = { + "PDUSessionResourceModifyRequestTransfer", + "PDUSessionResourceModifyRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h new file mode 100644 index 0000000..d02a1e4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyRequestTransfer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyRequestTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceModifyRequestTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyRequestTransfer { + ASN_NGAP_ProtocolIE_Container_123P2_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.c new file mode 100644 index 0000000..2d8a8c5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponse_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponse), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponse, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponse_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_ASN_NGAP_PDUSessionResourceModifyResponse = { + "PDUSessionResourceModifyResponse", + "PDUSessionResourceModifyResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.h new file mode 100644 index 0000000..e6305bf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyResponse_H_ +#define _ASN_NGAP_PDUSessionResourceModifyResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceModifyResponse */ +typedef struct ASN_NGAP_PDUSessionResourceModifyResponse { + ASN_NGAP_ProtocolIE_Container_123P9_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c new file mode 100644 index 0000000..db81cf1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.c @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_QosFlowAddOrModifyResponseList.h" +#include "ASN_NGAP_QosFlowPerTNLInformationList.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, dL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, uL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, qosFlowAddOrModifyResponseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowAddOrModifyResponseList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, additionalDLQosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDLQosFlowPerTNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, qosFlowFailedToAddOrModifyList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToAddOrModifyList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* qosFlowAddOrModifyResponseList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* additionalDLQosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qosFlowFailedToAddOrModifyList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer = { + "PDUSessionResourceModifyResponseTransfer", + "PDUSessionResourceModifyResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h new file mode 100644 index 0000000..3bdaea0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyResponseTransfer.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyResponseTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_QosFlowAddOrModifyResponseList; +struct ASN_NGAP_QosFlowPerTNLInformationList; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyResponseTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer { + struct ASN_NGAP_UPTransportLayerInformation *dL_NGU_UP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_UPTransportLayerInformation *uL_NGU_UP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_QosFlowAddOrModifyResponseList *qosFlowAddOrModifyResponseList; /* OPTIONAL */ + struct ASN_NGAP_QosFlowPerTNLInformationList *additionalDLQosFlowPerTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToAddOrModifyList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c new file mode 100644 index 0000000..2fc5d3f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h" + +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer, criticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer = { + "PDUSessionResourceModifyUnsuccessfulTransfer", + "PDUSessionResourceModifyUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h new file mode 100644 index 0000000..2b2018b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_CriticalityDiagnostics *criticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.c new file mode 100644 index 0000000..1d91608 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceNotify.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotify_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotify, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotify_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotify_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotify), + offsetof(struct ASN_NGAP_PDUSessionResourceNotify, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotify_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_ASN_NGAP_PDUSessionResourceNotify = { + "PDUSessionResourceNotify", + "PDUSessionResourceNotify", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotify_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotify_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotify_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.h new file mode 100644 index 0000000..3f8c450 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotify.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceNotify_H_ +#define _ASN_NGAP_PDUSessionResourceNotify_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceNotify */ +typedef struct ASN_NGAP_PDUSessionResourceNotify { + ASN_NGAP_ProtocolIE_Container_123P10_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotify_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotify; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotify_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotify_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceNotify_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.c new file mode 100644 index 0000000..088907f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceNotifyItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceNotifyTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceNotifyTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem, pDUSessionResourceNotifyTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceNotifyTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceNotifyTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceNotifyTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceNotifyTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyItem), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem = { + "PDUSessionResourceNotifyItem", + "PDUSessionResourceNotifyItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.h new file mode 100644 index 0000000..ebea217 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceNotifyItem_H_ +#define _ASN_NGAP_PDUSessionResourceNotifyItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceNotifyItem */ +typedef struct ASN_NGAP_PDUSessionResourceNotifyItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceNotifyTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceNotifyItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.c new file mode 100644 index 0000000..429614c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceNotifyList.h" + +#include "ASN_NGAP_PDUSessionResourceNotifyItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceNotifyList_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_ASN_NGAP_PDUSessionResourceNotifyList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyList), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList = { + "PDUSessionResourceNotifyList", + "PDUSessionResourceNotifyList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceNotifyList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.h new file mode 100644 index 0000000..1ed09c5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceNotifyList_H_ +#define _ASN_NGAP_PDUSessionResourceNotifyList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceNotifyItem; + +/* ASN_NGAP_PDUSessionResourceNotifyList */ +typedef struct ASN_NGAP_PDUSessionResourceNotifyList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceNotifyItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceNotifyList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceNotifyList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.c new file mode 100644 index 0000000..7c694d9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer = { + "PDUSessionResourceNotifyReleasedTransfer", + "PDUSessionResourceNotifyReleasedTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h new file mode 100644 index 0000000..b5b990c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.c new file mode 100644 index 0000000..9b4d72b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceNotifyTransfer.h" + +#include "ASN_NGAP_QosFlowNotifyList.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyTransfer_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer, qosFlowNotifyList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowNotifyList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowNotifyList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer, qosFlowReleasedList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowReleasedList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowNotifyList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowReleasedList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer = { + "PDUSessionResourceNotifyTransfer", + "PDUSessionResourceNotifyTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.h new file mode 100644 index 0000000..672ac8a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceNotifyTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceNotifyTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceNotifyTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowNotifyList; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceNotifyTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceNotifyTransfer { + struct ASN_NGAP_QosFlowNotifyList *qosFlowNotifyList; /* OPTIONAL */ + struct ASN_NGAP_QosFlowListWithCause *qosFlowReleasedList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceNotifyTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.c new file mode 100644 index 0000000..ce89b97 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleaseCommand.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommand, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommand_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommand), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommand, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommand_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_ASN_NGAP_PDUSessionResourceReleaseCommand = { + "PDUSessionResourceReleaseCommand", + "PDUSessionResourceReleaseCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommand_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.h new file mode 100644 index 0000000..ca34cad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleaseCommand_H_ +#define _ASN_NGAP_PDUSessionResourceReleaseCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceReleaseCommand */ +typedef struct ASN_NGAP_PDUSessionResourceReleaseCommand { + ASN_NGAP_ProtocolIE_Container_123P6_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommand_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleaseCommand_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.c new file mode 100644 index 0000000..062e109 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer = { + "PDUSessionResourceReleaseCommandTransfer", + "PDUSessionResourceReleaseCommandTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h new file mode 100644 index 0000000..7b34797 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseCommandTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleaseCommandTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.c new file mode 100644 index 0000000..b279ebd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleaseResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponse_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponse), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponse, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponse_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_ASN_NGAP_PDUSessionResourceReleaseResponse = { + "PDUSessionResourceReleaseResponse", + "PDUSessionResourceReleaseResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.h new file mode 100644 index 0000000..6ffa106 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleaseResponse_H_ +#define _ASN_NGAP_PDUSessionResourceReleaseResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceReleaseResponse */ +typedef struct ASN_NGAP_PDUSessionResourceReleaseResponse { + ASN_NGAP_ProtocolIE_Container_123P7_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleaseResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.c new file mode 100644 index 0000000..18e7bdd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer = { + "PDUSessionResourceReleaseResponseTransfer", + "PDUSessionResourceReleaseResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h new file mode 100644 index 0000000..efc423e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleaseResponseTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleaseResponseTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer { + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.c new file mode 100644 index 0000000..df8d7dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedItemNot.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceNotifyReleasedTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceNotifyReleasedTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot, pDUSessionResourceNotifyReleasedTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceNotifyReleasedTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceNotifyReleasedTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceNotifyReleasedTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceNotifyReleasedTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot = { + "PDUSessionResourceReleasedItemNot", + "PDUSessionResourceReleasedItemNot", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.h new file mode 100644 index 0000000..8861bbc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemNot.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedItemNot_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedItemNot_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleasedItemNot */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemNot { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceNotifyReleasedTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemNot_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedItemNot_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.c new file mode 100644 index 0000000..dd01ae0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck, pathSwitchRequestUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pathSwitchRequestUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathSwitchRequestUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck = { + "PDUSessionResourceReleasedItemPSAck", + "PDUSessionResourceReleasedItemPSAck", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h new file mode 100644 index 0000000..c9803ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedItemPSAck_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedItemPSAck_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleasedItemPSAck */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pathSwitchRequestUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemPSAck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedItemPSAck_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.c new file mode 100644 index 0000000..8128438 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail, pathSwitchRequestUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_pathSwitchRequestUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pathSwitchRequestUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathSwitchRequestUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail = { + "PDUSessionResourceReleasedItemPSFail", + "PDUSessionResourceReleasedItemPSFail", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h new file mode 100644 index 0000000..2c987df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedItemPSFail_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedItemPSFail_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleasedItemPSFail */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pathSwitchRequestUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemPSFail_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedItemPSFail_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.c new file mode 100644 index 0000000..de38c2b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceReleaseResponseTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceReleaseResponseTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes, pDUSessionResourceReleaseResponseTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceReleaseResponseTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceReleaseResponseTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceReleaseResponseTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceReleaseResponseTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes = { + "PDUSessionResourceReleasedItemRelRes", + "PDUSessionResourceReleasedItemRelRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h new file mode 100644 index 0000000..eaa3320 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedItemRelRes_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedItemRelRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceReleasedItemRelRes */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceReleaseResponseTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemRelRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedItemRelRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.c new file mode 100644 index 0000000..8afa8df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedListNot.h" + +#include "ASN_NGAP_PDUSessionResourceReleasedItemNot.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListNot_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_ASN_NGAP_PDUSessionResourceReleasedListNot_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListNot_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedListNot), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedListNot, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot = { + "PDUSessionResourceReleasedListNot", + "PDUSessionResourceReleasedListNot", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListNot_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListNot_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListNot_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.h new file mode 100644 index 0000000..b6d7f93 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListNot.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedListNot_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedListNot_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceReleasedItemNot; + +/* ASN_NGAP_PDUSessionResourceReleasedListNot */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedListNot { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemNot) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedListNot_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListNot_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListNot_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListNot_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedListNot_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.c new file mode 100644 index 0000000..23adfb2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedListPSAck.h" + +#include "ASN_NGAP_PDUSessionResourceReleasedItemPSAck.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSAck_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_ASN_NGAP_PDUSessionResourceReleasedListPSAck_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSAck_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedListPSAck), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedListPSAck, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck = { + "PDUSessionResourceReleasedListPSAck", + "PDUSessionResourceReleasedListPSAck", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSAck_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListPSAck_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSAck_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.h new file mode 100644 index 0000000..0f4207d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSAck.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedListPSAck_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedListPSAck_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck; + +/* ASN_NGAP_PDUSessionResourceReleasedListPSAck */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedListPSAck { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedListPSAck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSAck_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListPSAck_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSAck_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedListPSAck_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.c new file mode 100644 index 0000000..cb81e90 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedListPSFail.h" + +#include "ASN_NGAP_PDUSessionResourceReleasedItemPSFail.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSFail_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_ASN_NGAP_PDUSessionResourceReleasedListPSFail_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSFail_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedListPSFail), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedListPSFail, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail = { + "PDUSessionResourceReleasedListPSFail", + "PDUSessionResourceReleasedListPSFail", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSFail_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListPSFail_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSFail_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.h new file mode 100644 index 0000000..40bac9d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListPSFail.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedListPSFail_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedListPSFail_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail; + +/* ASN_NGAP_PDUSessionResourceReleasedListPSFail */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedListPSFail { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedListPSFail_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListPSFail_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListPSFail_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListPSFail_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedListPSFail_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.c new file mode 100644 index 0000000..ef14e66 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceReleasedListRelRes.h" + +#include "ASN_NGAP_PDUSessionResourceReleasedItemRelRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListRelRes_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_ASN_NGAP_PDUSessionResourceReleasedListRelRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListRelRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedListRelRes), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedListRelRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes = { + "PDUSessionResourceReleasedListRelRes", + "PDUSessionResourceReleasedListRelRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListRelRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListRelRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListRelRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.h new file mode 100644 index 0000000..ef8e54d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceReleasedListRelRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceReleasedListRelRes_H_ +#define _ASN_NGAP_PDUSessionResourceReleasedListRelRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes; + +/* ASN_NGAP_PDUSessionResourceReleasedListRelRes */ +typedef struct ASN_NGAP_PDUSessionResourceReleasedListRelRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedListRelRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedListRelRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedListRelRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceReleasedListRelRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceReleasedListRelRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.c new file mode 100644 index 0000000..a61534f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceResumeItemRESReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_uEContextResumeRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uEContextResumeRequestTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq, uEContextResumeRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uEContextResumeRequestTransfer_constr_3, memb_ASN_NGAP_uEContextResumeRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "uEContextResumeRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEContextResumeRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq = { + "PDUSessionResourceResumeItemRESReq", + "PDUSessionResourceResumeItemRESReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.h new file mode 100644 index 0000000..9303405 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESReq.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceResumeItemRESReq_H_ +#define _ASN_NGAP_PDUSessionResourceResumeItemRESReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceResumeItemRESReq */ +typedef struct ASN_NGAP_PDUSessionResourceResumeItemRESReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t uEContextResumeRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeItemRESReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceResumeItemRESReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.c new file mode 100644 index 0000000..65b9b1d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceResumeItemRESRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_uEContextResumeResponseTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uEContextResumeResponseTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes, uEContextResumeResponseTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uEContextResumeResponseTransfer_constr_3, memb_ASN_NGAP_uEContextResumeResponseTransfer_constraint_1 }, + 0, 0, /* No default value */ + "uEContextResumeResponseTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEContextResumeResponseTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes = { + "PDUSessionResourceResumeItemRESRes", + "PDUSessionResourceResumeItemRESRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.h new file mode 100644 index 0000000..4544dce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeItemRESRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceResumeItemRESRes_H_ +#define _ASN_NGAP_PDUSessionResourceResumeItemRESRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceResumeItemRESRes */ +typedef struct ASN_NGAP_PDUSessionResourceResumeItemRESRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t uEContextResumeResponseTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeItemRESRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceResumeItemRESRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.c new file mode 100644 index 0000000..57a8180 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceResumeListRESReq.h" + +#include "ASN_NGAP_PDUSessionResourceResumeItemRESReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESReq_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_ASN_NGAP_PDUSessionResourceResumeListRESReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeListRESReq), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeListRESReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq = { + "PDUSessionResourceResumeListRESReq", + "PDUSessionResourceResumeListRESReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeListRESReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.h new file mode 100644 index 0000000..58940c8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceResumeListRESReq_H_ +#define _ASN_NGAP_PDUSessionResourceResumeListRESReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceResumeItemRESReq; + +/* ASN_NGAP_PDUSessionResourceResumeListRESReq */ +typedef struct ASN_NGAP_PDUSessionResourceResumeListRESReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeListRESReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeListRESReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceResumeListRESReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.c new file mode 100644 index 0000000..8d98cae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceResumeListRESRes.h" + +#include "ASN_NGAP_PDUSessionResourceResumeItemRESRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESRes_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_ASN_NGAP_PDUSessionResourceResumeListRESRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeListRESRes), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeListRESRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes = { + "PDUSessionResourceResumeListRESRes", + "PDUSessionResourceResumeListRESRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeListRESRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.h new file mode 100644 index 0000000..198cf82 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceResumeListRESRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceResumeListRESRes_H_ +#define _ASN_NGAP_PDUSessionResourceResumeListRESRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceResumeItemRESRes; + +/* ASN_NGAP_PDUSessionResourceResumeListRESRes */ +typedef struct ASN_NGAP_PDUSessionResourceResumeListRESRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeListRESRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeListRESRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeListRESRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceResumeListRESRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceResumeListRESRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.c new file mode 100644 index 0000000..1b9791c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_secondaryRATDataUsageReportTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_secondaryRATDataUsageReportTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem, secondaryRATDataUsageReportTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_secondaryRATDataUsageReportTransfer_constr_3, memb_ASN_NGAP_secondaryRATDataUsageReportTransfer_constraint_1 }, + 0, 0, /* No default value */ + "secondaryRATDataUsageReportTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondaryRATDataUsageReportTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem), + offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem = { + "PDUSessionResourceSecondaryRATUsageItem", + "PDUSessionResourceSecondaryRATUsageItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h new file mode 100644 index 0000000..9e4abc0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_H_ +#define _ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem */ +typedef struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t secondaryRATDataUsageReportTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.c new file mode 100644 index 0000000..2807813 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h" + +#include "ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_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_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageList), + offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList = { + "PDUSessionResourceSecondaryRATUsageList", + "PDUSessionResourceSecondaryRATUsageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h new file mode 100644 index 0000000..0b596d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_H_ +#define _ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem; + +/* ASN_NGAP_PDUSessionResourceSecondaryRATUsageList */ +typedef struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.c new file mode 100644 index 0000000..e694140 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, nAS_PDU), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, pDUSessionResourceSetupRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constr_5, memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_oms_1[] = { 1, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nAS-PDU */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pDUSessionResourceSetupRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq = { + "PDUSessionResourceSetupItemCxtReq", + "PDUSessionResourceSetupItemCxtReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h new file mode 100644 index 0000000..31639f7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupItemCxtReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupItemCxtReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_NAS-PDU.h" +#include "ASN_NGAP_S-NSSAI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupItemCxtReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_NAS_PDU_t *nAS_PDU; /* OPTIONAL */ + ASN_NGAP_S_NSSAI_t s_NSSAI; + OCTET_STRING_t pDUSessionResourceSetupRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemCxtReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupItemCxtReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.c new file mode 100644 index 0000000..3346a3e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes, pDUSessionResourceSetupResponseTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupResponseTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceSetupResponseTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes = { + "PDUSessionResourceSetupItemCxtRes", + "PDUSessionResourceSetupItemCxtRes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h new file mode 100644 index 0000000..351542a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupItemCxtRes_H_ +#define _ASN_NGAP_PDUSessionResourceSetupItemCxtRes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupItemCxtRes */ +typedef struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceSetupResponseTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemCxtRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupItemCxtRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.c new file mode 100644 index 0000000..401eda2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupItemHOReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverRequestTransfer_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq, handoverRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverRequestTransfer_constr_4, memb_ASN_NGAP_handoverRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* handoverRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq = { + "PDUSessionResourceSetupItemHOReq", + "PDUSessionResourceSetupItemHOReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.h new file mode 100644 index 0000000..ba5b6c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemHOReq.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupItemHOReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupItemHOReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_S-NSSAI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupItemHOReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupItemHOReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_S_NSSAI_t s_NSSAI; + OCTET_STRING_t handoverRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemHOReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupItemHOReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.c new file mode 100644 index 0000000..d8ea75a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupItemSUReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, pDUSessionNAS_PDU), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionNAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, pDUSessionResourceSetupRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constr_5, memb_ASN_NGAP_pDUSessionResourceSetupRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_oms_1[] = { 1, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionNAS-PDU */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pDUSessionResourceSetupRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq = { + "PDUSessionResourceSetupItemSUReq", + "PDUSessionResourceSetupItemSUReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.h new file mode 100644 index 0000000..88ce386 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSUReq.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupItemSUReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupItemSUReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include "ASN_NGAP_NAS-PDU.h" +#include "ASN_NGAP_S-NSSAI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupItemSUReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupItemSUReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + ASN_NGAP_NAS_PDU_t *pDUSessionNAS_PDU; /* OPTIONAL */ + ASN_NGAP_S_NSSAI_t s_NSSAI; + OCTET_STRING_t pDUSessionResourceSetupRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemSUReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupItemSUReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.c new file mode 100644 index 0000000..ca9f7d6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupItemSURes.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes, pDUSessionResourceSetupResponseTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceSetupResponseTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceSetupResponseTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceSetupResponseTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes = { + "PDUSessionResourceSetupItemSURes", + "PDUSessionResourceSetupItemSURes", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.h new file mode 100644 index 0000000..db13293 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupItemSURes.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupItemSURes_H_ +#define _ASN_NGAP_PDUSessionResourceSetupItemSURes_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupItemSURes */ +typedef struct ASN_NGAP_PDUSessionResourceSetupItemSURes { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceSetupResponseTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemSURes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupItemSURes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.c new file mode 100644 index 0000000..2b30fb1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupListCxtReq.h" + +#include "ASN_NGAP_PDUSessionResourceSetupItemCxtReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtReq_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_ASN_NGAP_PDUSessionResourceSetupListCxtReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupListCxtReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupListCxtReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq = { + "PDUSessionResourceSetupListCxtReq", + "PDUSessionResourceSetupListCxtReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupListCxtReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.h new file mode 100644 index 0000000..71a66ae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupListCxtReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupListCxtReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq; + +/* ASN_NGAP_PDUSessionResourceSetupListCxtReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupListCxtReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupListCxtReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupListCxtReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupListCxtReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.c new file mode 100644 index 0000000..1f2a99c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupListCxtRes.h" + +#include "ASN_NGAP_PDUSessionResourceSetupItemCxtRes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtRes_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_ASN_NGAP_PDUSessionResourceSetupListCxtRes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtRes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupListCxtRes), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupListCxtRes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes = { + "PDUSessionResourceSetupListCxtRes", + "PDUSessionResourceSetupListCxtRes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtRes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupListCxtRes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtRes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.h new file mode 100644 index 0000000..21fca5d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListCxtRes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupListCxtRes_H_ +#define _ASN_NGAP_PDUSessionResourceSetupListCxtRes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes; + +/* ASN_NGAP_PDUSessionResourceSetupListCxtRes */ +typedef struct ASN_NGAP_PDUSessionResourceSetupListCxtRes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupListCxtRes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListCxtRes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupListCxtRes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListCxtRes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupListCxtRes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.c new file mode 100644 index 0000000..e5b7325 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupListHOReq.h" + +#include "ASN_NGAP_PDUSessionResourceSetupItemHOReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListHOReq_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_ASN_NGAP_PDUSessionResourceSetupListHOReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListHOReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupListHOReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupListHOReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq = { + "PDUSessionResourceSetupListHOReq", + "PDUSessionResourceSetupListHOReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListHOReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupListHOReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupListHOReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.h new file mode 100644 index 0000000..2a2e3a5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListHOReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupListHOReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupListHOReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSetupItemHOReq; + +/* ASN_NGAP_PDUSessionResourceSetupListHOReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupListHOReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupListHOReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListHOReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupListHOReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListHOReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupListHOReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.c new file mode 100644 index 0000000..52af02a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupListSUReq.h" + +#include "ASN_NGAP_PDUSessionResourceSetupItemSUReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSUReq_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_ASN_NGAP_PDUSessionResourceSetupListSUReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSUReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupListSUReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupListSUReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq = { + "PDUSessionResourceSetupListSUReq", + "PDUSessionResourceSetupListSUReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSUReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupListSUReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSUReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.h new file mode 100644 index 0000000..c6eb88c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSUReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupListSUReq_H_ +#define _ASN_NGAP_PDUSessionResourceSetupListSUReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSetupItemSUReq; + +/* ASN_NGAP_PDUSessionResourceSetupListSUReq */ +typedef struct ASN_NGAP_PDUSessionResourceSetupListSUReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupListSUReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSUReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupListSUReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSUReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupListSUReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.c new file mode 100644 index 0000000..38b5ade --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupListSURes.h" + +#include "ASN_NGAP_PDUSessionResourceSetupItemSURes.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSURes_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_ASN_NGAP_PDUSessionResourceSetupListSURes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSURes_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupListSURes), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupListSURes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes = { + "PDUSessionResourceSetupListSURes", + "PDUSessionResourceSetupListSURes", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSURes_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupListSURes_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSURes_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.h new file mode 100644 index 0000000..8e76f25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupListSURes.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupListSURes_H_ +#define _ASN_NGAP_PDUSessionResourceSetupListSURes_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSetupItemSURes; + +/* ASN_NGAP_PDUSessionResourceSetupListSURes */ +typedef struct ASN_NGAP_PDUSessionResourceSetupListSURes { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemSURes) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupListSURes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupListSURes_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupListSURes_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSetupListSURes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupListSURes_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.c new file mode 100644 index 0000000..648c08f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequest_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequest), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequest, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequest_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_ASN_NGAP_PDUSessionResourceSetupRequest = { + "PDUSessionResourceSetupRequest", + "PDUSessionResourceSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.h new file mode 100644 index 0000000..88a4c01 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupRequest_H_ +#define _ASN_NGAP_PDUSessionResourceSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceSetupRequest */ +typedef struct ASN_NGAP_PDUSessionResourceSetupRequest { + ASN_NGAP_ProtocolIE_Container_123P4_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.c new file mode 100644 index 0000000..1fc8de4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h" + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_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_ASN_NGAP_PDUSessionResourceSetupRequestTransfer = { + "PDUSessionResourceSetupRequestTransfer", + "PDUSessionResourceSetupRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h new file mode 100644 index 0000000..07cfa80 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupRequestTransfer.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupRequestTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceSetupRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceSetupRequestTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceSetupRequestTransfer { + ASN_NGAP_ProtocolIE_Container_123P3_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.c new file mode 100644 index 0000000..286e289 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponse_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponse), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponse, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponse_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_ASN_NGAP_PDUSessionResourceSetupResponse = { + "PDUSessionResourceSetupResponse", + "PDUSessionResourceSetupResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.h new file mode 100644 index 0000000..beaeaaa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupResponse_H_ +#define _ASN_NGAP_PDUSessionResourceSetupResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PDUSessionResourceSetupResponse */ +typedef struct ASN_NGAP_PDUSessionResourceSetupResponse { + ASN_NGAP_ProtocolIE_Container_123P5_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.c new file mode 100644 index 0000000..4557843 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h" + +#include "ASN_NGAP_QosFlowPerTNLInformationList.h" +#include "ASN_NGAP_SecurityResult.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, dLQosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLQosFlowPerTNLInformation" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, additionalDLQosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDLQosFlowPerTNLInformation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, securityResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityResult" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, qosFlowFailedToSetupList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToSetupList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dLQosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalDLQosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* securityResult */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* qosFlowFailedToSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer = { + "PDUSessionResourceSetupResponseTransfer", + "PDUSessionResourceSetupResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h new file mode 100644 index 0000000..6589544 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupResponseTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupResponseTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceSetupResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowPerTNLInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowPerTNLInformationList; +struct ASN_NGAP_SecurityResult; +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupResponseTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer { + ASN_NGAP_QosFlowPerTNLInformation_t dLQosFlowPerTNLInformation; + struct ASN_NGAP_QosFlowPerTNLInformationList *additionalDLQosFlowPerTNLInformation; /* OPTIONAL */ + struct ASN_NGAP_SecurityResult *securityResult; /* OPTIONAL */ + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToSetupList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c new file mode 100644 index 0000000..a24c9b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h" + +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, criticalityDiagnostics), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalityDiagnostics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer = { + "PDUSessionResourceSetupUnsuccessfulTransfer", + "PDUSessionResourceSetupUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h new file mode 100644 index 0000000..e2b1b5a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_H_ +#define _ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_CriticalityDiagnostics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer */ +typedef struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_CriticalityDiagnostics *criticalityDiagnostics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.c new file mode 100644 index 0000000..0ccecb1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_uEContextSuspendRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_uEContextSuspendRequestTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq, uEContextSuspendRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uEContextSuspendRequestTransfer_constr_3, memb_ASN_NGAP_uEContextSuspendRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "uEContextSuspendRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEContextSuspendRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq = { + "PDUSessionResourceSuspendItemSUSReq", + "PDUSessionResourceSuspendItemSUSReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h new file mode 100644 index 0000000..7fd0877 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_H_ +#define _ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSuspendItemSUSReq */ +typedef struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t uEContextSuspendRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.c new file mode 100644 index 0000000..61ff952 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h" + +#include "ASN_NGAP_PDUSessionResourceSuspendItemSUSReq.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_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_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSuspendListSUSReq), + offsetof(struct ASN_NGAP_PDUSessionResourceSuspendListSUSReq, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq = { + "PDUSessionResourceSuspendListSUSReq", + "PDUSessionResourceSuspendListSUSReq", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h new file mode 100644 index 0000000..70e2e85 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSuspendListSUSReq_H_ +#define _ASN_NGAP_PDUSessionResourceSuspendListSUSReq_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq; + +/* ASN_NGAP_PDUSessionResourceSuspendListSUSReq */ +typedef struct ASN_NGAP_PDUSessionResourceSuspendListSUSReq { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSuspendListSUSReq_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSuspendListSUSReq_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSuspendListSUSReq_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.c new file mode 100644 index 0000000..20d504e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSwitchedItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pathSwitchRequestAcknowledgeTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pathSwitchRequestAcknowledgeTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem, pathSwitchRequestAcknowledgeTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pathSwitchRequestAcknowledgeTransfer_constr_3, memb_ASN_NGAP_pathSwitchRequestAcknowledgeTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pathSwitchRequestAcknowledgeTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathSwitchRequestAcknowledgeTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSwitchedItem), + offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem = { + "PDUSessionResourceSwitchedItem", + "PDUSessionResourceSwitchedItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.h new file mode 100644 index 0000000..4c5127f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSwitchedItem_H_ +#define _ASN_NGAP_PDUSessionResourceSwitchedItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceSwitchedItem */ +typedef struct ASN_NGAP_PDUSessionResourceSwitchedItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pathSwitchRequestAcknowledgeTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSwitchedItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSwitchedItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.c new file mode 100644 index 0000000..be37758 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceSwitchedList.h" + +#include "ASN_NGAP_PDUSessionResourceSwitchedItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSwitchedList_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_ASN_NGAP_PDUSessionResourceSwitchedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSwitchedList), + offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList = { + "PDUSessionResourceSwitchedList", + "PDUSessionResourceSwitchedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceSwitchedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.h new file mode 100644 index 0000000..5704868 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceSwitchedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceSwitchedList_H_ +#define _ASN_NGAP_PDUSessionResourceSwitchedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceSwitchedItem; + +/* ASN_NGAP_PDUSessionResourceSwitchedList */ +typedef struct ASN_NGAP_PDUSessionResourceSwitchedList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSwitchedItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSwitchedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceSwitchedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceSwitchedList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.c new file mode 100644 index 0000000..0c349fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pathSwitchRequestTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pathSwitchRequestTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem, pathSwitchRequestTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pathSwitchRequestTransfer_constr_3, memb_ASN_NGAP_pathSwitchRequestTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pathSwitchRequestTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pathSwitchRequestTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem), + offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem = { + "PDUSessionResourceToBeSwitchedDLItem", + "PDUSessionResourceToBeSwitchedDLItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h new file mode 100644 index 0000000..3e857e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_H_ +#define _ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem */ +typedef struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pathSwitchRequestTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.c new file mode 100644 index 0000000..dee9d6b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h" + +#include "ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_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_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLList), + offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList = { + "PDUSessionResourceToBeSwitchedDLList", + "PDUSessionResourceToBeSwitchedDLList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h new file mode 100644 index 0000000..4061ec0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_H_ +#define _ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem; + +/* ASN_NGAP_PDUSessionResourceToBeSwitchedDLList */ +typedef struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLList { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.c new file mode 100644 index 0000000..560885a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_handoverPreparationUnsuccessfulTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_handoverPreparationUnsuccessfulTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd, handoverPreparationUnsuccessfulTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_handoverPreparationUnsuccessfulTransfer_constr_3, memb_ASN_NGAP_handoverPreparationUnsuccessfulTransfer_constraint_1 }, + 0, 0, /* No default value */ + "handoverPreparationUnsuccessfulTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverPreparationUnsuccessfulTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd = { + "PDUSessionResourceToReleaseItemHOCmd", + "PDUSessionResourceToReleaseItemHOCmd", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h new file mode 100644 index 0000000..1a9a1e2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_H_ +#define _ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd */ +typedef struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t handoverPreparationUnsuccessfulTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.c new file mode 100644 index 0000000..5d30a32 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pDUSessionResourceReleaseCommandTransfer_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pDUSessionResourceReleaseCommandTransfer_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd, pDUSessionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd, pDUSessionResourceReleaseCommandTransfer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pDUSessionResourceReleaseCommandTransfer_constr_3, memb_ASN_NGAP_pDUSessionResourceReleaseCommandTransfer_constraint_1 }, + 0, 0, /* No default value */ + "pDUSessionResourceReleaseCommandTransfer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceReleaseCommandTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd = { + "PDUSessionResourceToReleaseItemRelCmd", + "PDUSessionResourceToReleaseItemRelCmd", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h new file mode 100644 index 0000000..e73e751 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_H_ +#define _ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PDUSessionID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd */ +typedef struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd { + ASN_NGAP_PDUSessionID_t pDUSessionID; + OCTET_STRING_t pDUSessionResourceReleaseCommandTransfer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.c new file mode 100644 index 0000000..e7fef35 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h" + +#include "ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_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_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseListHOCmd), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseListHOCmd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd = { + "PDUSessionResourceToReleaseListHOCmd", + "PDUSessionResourceToReleaseListHOCmd", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h new file mode 100644 index 0000000..abf0017 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_H_ +#define _ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd; + +/* ASN_NGAP_PDUSessionResourceToReleaseListHOCmd */ +typedef struct ASN_NGAP_PDUSessionResourceToReleaseListHOCmd { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.c b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.c new file mode 100644 index 0000000..2b29244 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h" + +#include "ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_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_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseListRelCmd), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseListRelCmd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd = { + "PDUSessionResourceToReleaseListRelCmd", + "PDUSessionResourceToReleaseListRelCmd", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h new file mode 100644 index 0000000..1fab25d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_H_ +#define _ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd; + +/* ASN_NGAP_PDUSessionResourceToReleaseListRelCmd */ +typedef struct ASN_NGAP_PDUSessionResourceToReleaseListRelCmd { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionType.c b/src/asn/ngap/ASN_NGAP_PDUSessionType.c new file mode 100644 index 0000000..5fea6e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionType.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionType_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_ASN_NGAP_PDUSessionType_value2enum_1[] = { + { 0, 4, "ipv4" }, + { 1, 4, "ipv6" }, + { 2, 6, "ipv4v6" }, + { 3, 8, "ethernet" }, + { 4, 12, "unstructured" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PDUSessionType_enum2value_1[] = { + 3, /* ethernet(3) */ + 0, /* ipv4(0) */ + 2, /* ipv4v6(2) */ + 1, /* ipv6(1) */ + 4 /* unstructured(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PDUSessionType_specs_1 = { + asn_MAP_ASN_NGAP_PDUSessionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PDUSessionType_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_ASN_NGAP_PDUSessionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionType = { + "PDUSessionType", + "PDUSessionType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PDUSessionType_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PDUSessionType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PDUSessionType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionType.h b/src/asn/ngap/ASN_NGAP_PDUSessionType.h new file mode 100644 index 0000000..2199dba --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionType.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionType_H_ +#define _ASN_NGAP_PDUSessionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PDUSessionType { + ASN_NGAP_PDUSessionType_ipv4 = 0, + ASN_NGAP_PDUSessionType_ipv6 = 1, + ASN_NGAP_PDUSessionType_ipv4v6 = 2, + ASN_NGAP_PDUSessionType_ethernet = 3, + ASN_NGAP_PDUSessionType_unstructured = 4 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PDUSessionType; + +/* ASN_NGAP_PDUSessionType */ +typedef long ASN_NGAP_PDUSessionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PDUSessionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PDUSessionType_specs_1; +asn_struct_free_f ASN_NGAP_PDUSessionType_free; +asn_struct_print_f ASN_NGAP_PDUSessionType_print; +asn_constr_check_f ASN_NGAP_PDUSessionType_constraint; +ber_type_decoder_f ASN_NGAP_PDUSessionType_decode_ber; +der_type_encoder_f ASN_NGAP_PDUSessionType_encode_der; +xer_type_decoder_f ASN_NGAP_PDUSessionType_decode_xer; +xer_type_encoder_f ASN_NGAP_PDUSessionType_encode_xer; +per_type_decoder_f ASN_NGAP_PDUSessionType_decode_uper; +per_type_encoder_f ASN_NGAP_PDUSessionType_encode_uper; +per_type_decoder_f ASN_NGAP_PDUSessionType_decode_aper; +per_type_encoder_f ASN_NGAP_PDUSessionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.c b/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.c new file mode 100644 index 0000000..c1fa1c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.c @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PDUSessionUsageReport.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_rATType_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_rATType_value2enum_2[] = { + { 0, 2, "nr" }, + { 1, 5, "eutra" }, + { 2, 13, "nr-unlicensed" }, + { 3, 17, "e-utra-unlicensed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_rATType_enum2value_2[] = { + 3, /* e-utra-unlicensed(3) */ + 1, /* eutra(1) */ + 0, /* nr(0) */ + 2 /* nr-unlicensed(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_rATType_specs_2 = { + asn_MAP_ASN_NGAP_rATType_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_rATType_enum2value_2, /* 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_ASN_NGAP_rATType_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_ASN_NGAP_rATType_2 = { + "rATType", + "rATType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_rATType_tags_2, + sizeof(asn_DEF_ASN_NGAP_rATType_tags_2) + /sizeof(asn_DEF_ASN_NGAP_rATType_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_rATType_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_rATType_tags_2) + /sizeof(asn_DEF_ASN_NGAP_rATType_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_rATType_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_rATType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionUsageReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionUsageReport, rATType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_rATType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rATType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionUsageReport, pDUSessionTimedReportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_VolumeTimedReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionTimedReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PDUSessionUsageReport, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PDUSessionUsageReport_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionUsageReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rATType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionTimedReportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionUsageReport_specs_1 = { + sizeof(struct ASN_NGAP_PDUSessionUsageReport), + offsetof(struct ASN_NGAP_PDUSessionUsageReport, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionUsageReport_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PDUSessionUsageReport_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionUsageReport = { + "PDUSessionUsageReport", + "PDUSessionUsageReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionUsageReport_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionUsageReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.h b/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.h new file mode 100644 index 0000000..91b803c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PDUSessionUsageReport.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PDUSessionUsageReport_H_ +#define _ASN_NGAP_PDUSessionUsageReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_NGAP_VolumeTimedReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PDUSessionUsageReport__rATType { + ASN_NGAP_PDUSessionUsageReport__rATType_nr = 0, + ASN_NGAP_PDUSessionUsageReport__rATType_eutra = 1, + /* + * Enumeration is extensible + */ + ASN_NGAP_PDUSessionUsageReport__rATType_nr_unlicensed = 2, + ASN_NGAP_PDUSessionUsageReport__rATType_e_utra_unlicensed = 3 +} e_ASN_NGAP_PDUSessionUsageReport__rATType; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PDUSessionUsageReport */ +typedef struct ASN_NGAP_PDUSessionUsageReport { + long rATType; + ASN_NGAP_VolumeTimedReportList_t pDUSessionTimedReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionUsageReport_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_rATType_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionUsageReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionUsageReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionUsageReport_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PDUSessionUsageReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.c b/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.c new file mode 100644 index 0000000..26d6b3c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PEIPSassistanceInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PEIPSassistanceInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PEIPSassistanceInformation, cNsubgroupID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CNsubgroupID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cNsubgroupID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PEIPSassistanceInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PEIPSassistanceInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PEIPSassistanceInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cNsubgroupID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PEIPSassistanceInformation_specs_1 = { + sizeof(struct ASN_NGAP_PEIPSassistanceInformation), + offsetof(struct ASN_NGAP_PEIPSassistanceInformation, _asn_ctx), + asn_MAP_ASN_NGAP_PEIPSassistanceInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PEIPSassistanceInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation = { + "PEIPSassistanceInformation", + "PEIPSassistanceInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PEIPSassistanceInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PEIPSassistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.h b/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.h new file mode 100644 index 0000000..71e1f41 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PEIPSassistanceInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PEIPSassistanceInformation_H_ +#define _ASN_NGAP_PEIPSassistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CNsubgroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PEIPSassistanceInformation */ +typedef struct ASN_NGAP_PEIPSassistanceInformation { + ASN_NGAP_CNsubgroupID_t cNsubgroupID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PEIPSassistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PEIPSassistanceInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PEIPSassistanceInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PEIPSassistanceInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.c b/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.c new file mode 100644 index 0000000..be51dee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PLMNAreaBasedQMC.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNAreaBasedQMC, plmnListforQMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNListforQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmnListforQMC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PLMNAreaBasedQMC, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PLMNAreaBasedQMC_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_PLMNAreaBasedQMC_specs_1 = { + sizeof(struct ASN_NGAP_PLMNAreaBasedQMC), + offsetof(struct ASN_NGAP_PLMNAreaBasedQMC, _asn_ctx), + asn_MAP_ASN_NGAP_PLMNAreaBasedQMC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PLMNAreaBasedQMC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC = { + "PLMNAreaBasedQMC", + "PLMNAreaBasedQMC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PLMNAreaBasedQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.h b/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.h new file mode 100644 index 0000000..5a80191 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNAreaBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PLMNAreaBasedQMC_H_ +#define _ASN_NGAP_PLMNAreaBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNListforQMC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PLMNAreaBasedQMC */ +typedef struct ASN_NGAP_PLMNAreaBasedQMC { + ASN_NGAP_PLMNListforQMC_t plmnListforQMC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNAreaBasedQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNAreaBasedQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PLMNAreaBasedQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PLMNIdentity.c b/src/asn/ngap/ASN_NGAP_PLMNIdentity.c new file mode 100644 index 0000000..20bdfd8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNIdentity.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PLMNIdentity.h" + +int +ASN_NGAP_PLMNIdentity_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_ASN_NGAP_PLMNIdentity_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_ASN_NGAP_PLMNIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNIdentity = { + "PLMNIdentity", + "PLMNIdentity", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_PLMNIdentity_tags_1, + sizeof(asn_DEF_ASN_NGAP_PLMNIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNIdentity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNIdentity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PLMNIdentity_constr_1, ASN_NGAP_PLMNIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PLMNIdentity.h b/src/asn/ngap/ASN_NGAP_PLMNIdentity.h new file mode 100644 index 0000000..ad83fee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PLMNIdentity_H_ +#define _ASN_NGAP_PLMNIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PLMNIdentity */ +typedef OCTET_STRING_t ASN_NGAP_PLMNIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PLMNIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNIdentity; +asn_struct_free_f ASN_NGAP_PLMNIdentity_free; +asn_struct_print_f ASN_NGAP_PLMNIdentity_print; +asn_constr_check_f ASN_NGAP_PLMNIdentity_constraint; +ber_type_decoder_f ASN_NGAP_PLMNIdentity_decode_ber; +der_type_encoder_f ASN_NGAP_PLMNIdentity_encode_der; +xer_type_decoder_f ASN_NGAP_PLMNIdentity_decode_xer; +xer_type_encoder_f ASN_NGAP_PLMNIdentity_encode_xer; +per_type_decoder_f ASN_NGAP_PLMNIdentity_decode_uper; +per_type_encoder_f ASN_NGAP_PLMNIdentity_encode_uper; +per_type_decoder_f ASN_NGAP_PLMNIdentity_decode_aper; +per_type_encoder_f ASN_NGAP_PLMNIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PLMNIdentity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PLMNListforQMC.c b/src/asn/ngap/ASN_NGAP_PLMNListforQMC.c new file mode 100644 index 0000000..638414c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNListforQMC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PLMNListforQMC.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_PLMNListforQMC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PLMNListforQMC_specs_1 = { + sizeof(struct ASN_NGAP_PLMNListforQMC), + offsetof(struct ASN_NGAP_PLMNListforQMC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNListforQMC = { + "PLMNListforQMC", + "PLMNListforQMC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNListforQMC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PLMNListforQMC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PLMNListforQMC_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PLMNListforQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PLMNListforQMC.h b/src/asn/ngap/ASN_NGAP_PLMNListforQMC.h new file mode 100644 index 0000000..8d58b37 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNListforQMC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PLMNListforQMC_H_ +#define _ASN_NGAP_PLMNListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PLMNListforQMC */ +typedef struct ASN_NGAP_PLMNListforQMC { + A_SEQUENCE_OF(ASN_NGAP_PLMNIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNListforQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNListforQMC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PLMNListforQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNListforQMC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PLMNListforQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PLMNListforQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PLMNSupportItem.c b/src/asn/ngap/ASN_NGAP_PLMNSupportItem.c new file mode 100644 index 0000000..5b2226a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNSupportItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PLMNSupportItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem, sliceSupportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceSupportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PLMNSupportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PLMNSupportItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PLMNSupportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sliceSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNSupportItem_specs_1 = { + sizeof(struct ASN_NGAP_PLMNSupportItem), + offsetof(struct ASN_NGAP_PLMNSupportItem, _asn_ctx), + asn_MAP_ASN_NGAP_PLMNSupportItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PLMNSupportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportItem = { + "PLMNSupportItem", + "PLMNSupportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PLMNSupportItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PLMNSupportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PLMNSupportItem.h b/src/asn/ngap/ASN_NGAP_PLMNSupportItem.h new file mode 100644 index 0000000..7c99504 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNSupportItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PLMNSupportItem_H_ +#define _ASN_NGAP_PLMNSupportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_SliceSupportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PLMNSupportItem */ +typedef struct ASN_NGAP_PLMNSupportItem { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_SliceSupportList_t sliceSupportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNSupportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNSupportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PLMNSupportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PLMNSupportList.c b/src/asn/ngap/ASN_NGAP_PLMNSupportList.c new file mode 100644 index 0000000..1244966 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNSupportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PLMNSupportList.h" + +#include "ASN_NGAP_PLMNSupportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PLMNSupportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNSupportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNSupportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PLMNSupportList_specs_1 = { + sizeof(struct ASN_NGAP_PLMNSupportList), + offsetof(struct ASN_NGAP_PLMNSupportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportList = { + "PLMNSupportList", + "PLMNSupportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PLMNSupportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_PLMNSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNSupportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PLMNSupportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PLMNSupportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PLMNSupportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PLMNSupportList.h b/src/asn/ngap/ASN_NGAP_PLMNSupportList.h new file mode 100644 index 0000000..8d4aa7a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PLMNSupportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PLMNSupportList_H_ +#define _ASN_NGAP_PLMNSupportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PLMNSupportItem; + +/* ASN_NGAP_PLMNSupportList */ +typedef struct ASN_NGAP_PLMNSupportList { + A_SEQUENCE_OF(struct ASN_NGAP_PLMNSupportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNSupportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PLMNSupportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PLMNSupportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PLMNSupportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.c b/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.c new file mode 100644 index 0000000..965065e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PNI-NPN-MobilityInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation, allowed_PNI_NPI_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Allowed_PNI_NPN_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowed-PNI-NPI-List" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* allowed-PNI-NPI-List */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_specs_1 = { + sizeof(struct ASN_NGAP_PNI_NPN_MobilityInformation), + offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation, _asn_ctx), + asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation = { + "PNI-NPN-MobilityInformation", + "PNI-NPN-MobilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.h b/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.h new file mode 100644 index 0000000..d36c9ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PNI-NPN-MobilityInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PNI_NPN_MobilityInformation_H_ +#define _ASN_NGAP_PNI_NPN_MobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Allowed-PNI-NPN-List.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PNI-NPN-MobilityInformation */ +typedef struct ASN_NGAP_PNI_NPN_MobilityInformation { + ASN_NGAP_Allowed_PNI_NPN_List_t allowed_PNI_NPI_List; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PNI_NPN_MobilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PNI_NPN_MobilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PWSCancelRequest.c b/src/asn/ngap/ASN_NGAP_PWSCancelRequest.c new file mode 100644 index 0000000..07bf6e3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSCancelRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PWSCancelRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSCancelRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelRequest_specs_1 = { + sizeof(struct ASN_NGAP_PWSCancelRequest), + offsetof(struct ASN_NGAP_PWSCancelRequest, _asn_ctx), + asn_MAP_ASN_NGAP_PWSCancelRequest_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_ASN_NGAP_PWSCancelRequest = { + "PWSCancelRequest", + "PWSCancelRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSCancelRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSCancelRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PWSCancelRequest.h b/src/asn/ngap/ASN_NGAP_PWSCancelRequest.h new file mode 100644 index 0000000..e07111f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSCancelRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PWSCancelRequest_H_ +#define _ASN_NGAP_PWSCancelRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PWSCancelRequest */ +typedef struct ASN_NGAP_PWSCancelRequest { + ASN_NGAP_ProtocolIE_Container_123P74_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSCancelRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PWSCancelRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PWSCancelResponse.c b/src/asn/ngap/ASN_NGAP_PWSCancelResponse.c new file mode 100644 index 0000000..8e01781 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSCancelResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PWSCancelResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSCancelResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelResponse_specs_1 = { + sizeof(struct ASN_NGAP_PWSCancelResponse), + offsetof(struct ASN_NGAP_PWSCancelResponse, _asn_ctx), + asn_MAP_ASN_NGAP_PWSCancelResponse_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_ASN_NGAP_PWSCancelResponse = { + "PWSCancelResponse", + "PWSCancelResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSCancelResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSCancelResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PWSCancelResponse.h b/src/asn/ngap/ASN_NGAP_PWSCancelResponse.h new file mode 100644 index 0000000..a4e0c3b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSCancelResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PWSCancelResponse_H_ +#define _ASN_NGAP_PWSCancelResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PWSCancelResponse */ +typedef struct ASN_NGAP_PWSCancelResponse { + ASN_NGAP_ProtocolIE_Container_123P75_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSCancelResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PWSCancelResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.c b/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.c new file mode 100644 index 0000000..214e23c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PWSFailedCellIDList.h" + +#include "ASN_NGAP_EUTRA-CGIList.h" +#include "ASN_NGAP_NR-CGIList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PWSFailedCellIDList_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailedCellIDList_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList, choice.eUTRA_CGI_PWSFailedList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI-PWSFailedList" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList, choice.nR_CGI_PWSFailedList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI-PWSFailedList" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSFailedCellIDList_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI-PWSFailedList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-CGI-PWSFailedList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_PWSFailedCellIDList_specs_1 = { + sizeof(struct ASN_NGAP_PWSFailedCellIDList), + offsetof(struct ASN_NGAP_PWSFailedCellIDList, _asn_ctx), + offsetof(struct ASN_NGAP_PWSFailedCellIDList, present), + sizeof(((struct ASN_NGAP_PWSFailedCellIDList *)0)->present), + asn_MAP_ASN_NGAP_PWSFailedCellIDList_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailedCellIDList = { + "PWSFailedCellIDList", + "PWSFailedCellIDList", + &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_ASN_NGAP_PWSFailedCellIDList_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_PWSFailedCellIDList_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSFailedCellIDList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.h b/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.h new file mode 100644 index 0000000..1393ecb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSFailedCellIDList.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PWSFailedCellIDList_H_ +#define _ASN_NGAP_PWSFailedCellIDList_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PWSFailedCellIDList_PR { + ASN_NGAP_PWSFailedCellIDList_PR_NOTHING, /* No components present */ + ASN_NGAP_PWSFailedCellIDList_PR_eUTRA_CGI_PWSFailedList, + ASN_NGAP_PWSFailedCellIDList_PR_nR_CGI_PWSFailedList, + ASN_NGAP_PWSFailedCellIDList_PR_choice_Extensions +} ASN_NGAP_PWSFailedCellIDList_PR; + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGIList; +struct ASN_NGAP_NR_CGIList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_PWSFailedCellIDList */ +typedef struct ASN_NGAP_PWSFailedCellIDList { + ASN_NGAP_PWSFailedCellIDList_PR present; + union ASN_NGAP_PWSFailedCellIDList_u { + struct ASN_NGAP_EUTRA_CGIList *eUTRA_CGI_PWSFailedList; + struct ASN_NGAP_NR_CGIList *nR_CGI_PWSFailedList; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSFailedCellIDList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailedCellIDList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_PWSFailedCellIDList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailedCellIDList_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PWSFailedCellIDList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PWSFailedCellIDList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PWSFailureIndication.c b/src/asn/ngap/ASN_NGAP_PWSFailureIndication.c new file mode 100644 index 0000000..59dd35b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSFailureIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PWSFailureIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailureIndication_specs_1 = { + sizeof(struct ASN_NGAP_PWSFailureIndication), + offsetof(struct ASN_NGAP_PWSFailureIndication, _asn_ctx), + asn_MAP_ASN_NGAP_PWSFailureIndication_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_ASN_NGAP_PWSFailureIndication = { + "PWSFailureIndication", + "PWSFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSFailureIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PWSFailureIndication.h b/src/asn/ngap/ASN_NGAP_PWSFailureIndication.h new file mode 100644 index 0000000..d58d608 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSFailureIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PWSFailureIndication_H_ +#define _ASN_NGAP_PWSFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PWSFailureIndication */ +typedef struct ASN_NGAP_PWSFailureIndication { + ASN_NGAP_ProtocolIE_Container_123P77_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailureIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PWSFailureIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PWSRestartIndication.c b/src/asn/ngap/ASN_NGAP_PWSRestartIndication.c new file mode 100644 index 0000000..ef7dea7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSRestartIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PWSRestartIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSRestartIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSRestartIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSRestartIndication_specs_1 = { + sizeof(struct ASN_NGAP_PWSRestartIndication), + offsetof(struct ASN_NGAP_PWSRestartIndication, _asn_ctx), + asn_MAP_ASN_NGAP_PWSRestartIndication_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_ASN_NGAP_PWSRestartIndication = { + "PWSRestartIndication", + "PWSRestartIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PWSRestartIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSRestartIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSRestartIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PWSRestartIndication.h b/src/asn/ngap/ASN_NGAP_PWSRestartIndication.h new file mode 100644 index 0000000..bbd307d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PWSRestartIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PWSRestartIndication_H_ +#define _ASN_NGAP_PWSRestartIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PWSRestartIndication */ +typedef struct ASN_NGAP_PWSRestartIndication { + ASN_NGAP_ProtocolIE_Container_123P76_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSRestartIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSRestartIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSRestartIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSRestartIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PWSRestartIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PacketDelayBudget.c b/src/asn/ngap/ASN_NGAP_PacketDelayBudget.c new file mode 100644 index 0000000..416cc17 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketDelayBudget.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PacketDelayBudget.h" + +int +ASN_NGAP_PacketDelayBudget_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 <= 1023)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_PacketDelayBudget_constr_1 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 const ber_tlv_tag_t asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketDelayBudget = { + "PacketDelayBudget", + "PacketDelayBudget", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1, + sizeof(asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketDelayBudget_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PacketDelayBudget_constr_1, ASN_NGAP_PacketDelayBudget_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PacketDelayBudget.h b/src/asn/ngap/ASN_NGAP_PacketDelayBudget.h new file mode 100644 index 0000000..1f63d64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketDelayBudget.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PacketDelayBudget_H_ +#define _ASN_NGAP_PacketDelayBudget_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PacketDelayBudget */ +typedef long ASN_NGAP_PacketDelayBudget_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PacketDelayBudget_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketDelayBudget; +asn_struct_free_f ASN_NGAP_PacketDelayBudget_free; +asn_struct_print_f ASN_NGAP_PacketDelayBudget_print; +asn_constr_check_f ASN_NGAP_PacketDelayBudget_constraint; +ber_type_decoder_f ASN_NGAP_PacketDelayBudget_decode_ber; +der_type_encoder_f ASN_NGAP_PacketDelayBudget_encode_der; +xer_type_decoder_f ASN_NGAP_PacketDelayBudget_decode_xer; +xer_type_encoder_f ASN_NGAP_PacketDelayBudget_encode_xer; +per_type_decoder_f ASN_NGAP_PacketDelayBudget_decode_uper; +per_type_encoder_f ASN_NGAP_PacketDelayBudget_encode_uper; +per_type_decoder_f ASN_NGAP_PacketDelayBudget_decode_aper; +per_type_encoder_f ASN_NGAP_PacketDelayBudget_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PacketDelayBudget_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PacketErrorRate.c b/src/asn/ngap/ASN_NGAP_PacketErrorRate.c new file mode 100644 index 0000000..b53dec9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketErrorRate.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PacketErrorRate.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_pERScalar_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 int +memb_ASN_NGAP_pERExponent_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_ASN_NGAP_pERScalar_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 9 } /* (0..9,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_pERExponent_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_ASN_NGAP_PacketErrorRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PacketErrorRate, pERScalar), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pERScalar_constr_2, memb_ASN_NGAP_pERScalar_constraint_1 }, + 0, 0, /* No default value */ + "pERScalar" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PacketErrorRate, pERExponent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_pERExponent_constr_3, memb_ASN_NGAP_pERExponent_constraint_1 }, + 0, 0, /* No default value */ + "pERExponent" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PacketErrorRate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PacketErrorRate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PacketErrorRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PacketErrorRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pERScalar */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pERExponent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PacketErrorRate_specs_1 = { + sizeof(struct ASN_NGAP_PacketErrorRate), + offsetof(struct ASN_NGAP_PacketErrorRate, _asn_ctx), + asn_MAP_ASN_NGAP_PacketErrorRate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PacketErrorRate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketErrorRate = { + "PacketErrorRate", + "PacketErrorRate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PacketErrorRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PacketErrorRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PacketErrorRate_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PacketErrorRate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PacketErrorRate.h b/src/asn/ngap/ASN_NGAP_PacketErrorRate.h new file mode 100644 index 0000000..0247152 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketErrorRate.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PacketErrorRate_H_ +#define _ASN_NGAP_PacketErrorRate_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PacketErrorRate */ +typedef struct ASN_NGAP_PacketErrorRate { + long pERScalar; + long pERExponent; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PacketErrorRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketErrorRate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PacketErrorRate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PacketErrorRate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PacketErrorRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PacketLossRate.c b/src/asn/ngap/ASN_NGAP_PacketLossRate.c new file mode 100644 index 0000000..a6cc5f6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketLossRate.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PacketLossRate.h" + +int +ASN_NGAP_PacketLossRate_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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PacketLossRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 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_ASN_NGAP_PacketLossRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketLossRate = { + "PacketLossRate", + "PacketLossRate", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PacketLossRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_PacketLossRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketLossRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PacketLossRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PacketLossRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PacketLossRate_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PacketLossRate_constr_1, ASN_NGAP_PacketLossRate_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PacketLossRate.h b/src/asn/ngap/ASN_NGAP_PacketLossRate.h new file mode 100644 index 0000000..64c53d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PacketLossRate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PacketLossRate_H_ +#define _ASN_NGAP_PacketLossRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PacketLossRate */ +typedef long ASN_NGAP_PacketLossRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PacketLossRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketLossRate; +asn_struct_free_f ASN_NGAP_PacketLossRate_free; +asn_struct_print_f ASN_NGAP_PacketLossRate_print; +asn_constr_check_f ASN_NGAP_PacketLossRate_constraint; +ber_type_decoder_f ASN_NGAP_PacketLossRate_decode_ber; +der_type_encoder_f ASN_NGAP_PacketLossRate_encode_der; +xer_type_decoder_f ASN_NGAP_PacketLossRate_decode_xer; +xer_type_encoder_f ASN_NGAP_PacketLossRate_encode_xer; +per_type_decoder_f ASN_NGAP_PacketLossRate_decode_uper; +per_type_encoder_f ASN_NGAP_PacketLossRate_encode_uper; +per_type_decoder_f ASN_NGAP_PacketLossRate_decode_aper; +per_type_encoder_f ASN_NGAP_PacketLossRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PacketLossRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Paging.c b/src/asn/ngap/ASN_NGAP_Paging.c new file mode 100644 index 0000000..1402ca2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Paging.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Paging.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Paging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Paging, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Paging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Paging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Paging_specs_1 = { + sizeof(struct ASN_NGAP_Paging), + offsetof(struct ASN_NGAP_Paging, _asn_ctx), + asn_MAP_ASN_NGAP_Paging_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_ASN_NGAP_Paging = { + "Paging", + "Paging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Paging_tags_1, + sizeof(asn_DEF_ASN_NGAP_Paging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Paging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Paging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Paging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Paging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Paging_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_Paging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Paging.h b/src/asn/ngap/ASN_NGAP_Paging.h new file mode 100644 index 0000000..91e36f2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Paging.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Paging_H_ +#define _ASN_NGAP_Paging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Paging */ +typedef struct ASN_NGAP_Paging { + ASN_NGAP_ProtocolIE_Container_123P49_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Paging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Paging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Paging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Paging_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Paging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.c b/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.c new file mode 100644 index 0000000..ff2519e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingAssisDataforCEcapabUE.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE, coverageEnhancementLevel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CoverageEnhancementLevel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "coverageEnhancementLevel" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* coverageEnhancementLevel */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_specs_1 = { + sizeof(struct ASN_NGAP_PagingAssisDataforCEcapabUE), + offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE, _asn_ctx), + asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE = { + "PagingAssisDataforCEcapabUE", + "PagingAssisDataforCEcapabUE", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.h b/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.h new file mode 100644 index 0000000..7273af6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAssisDataforCEcapabUE.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingAssisDataforCEcapabUE_H_ +#define _ASN_NGAP_PagingAssisDataforCEcapabUE_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_CoverageEnhancementLevel.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PagingAssisDataforCEcapabUE */ +typedef struct ASN_NGAP_PagingAssisDataforCEcapabUE { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + ASN_NGAP_CoverageEnhancementLevel_t coverageEnhancementLevel; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PagingAssisDataforCEcapabUE_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingAssisDataforCEcapabUE_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingAttemptCount.c b/src/asn/ngap/ASN_NGAP_PagingAttemptCount.c new file mode 100644 index 0000000..d9cea26 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAttemptCount.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingAttemptCount.h" + +int +ASN_NGAP_PagingAttemptCount_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingAttemptCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 1, 16 } /* (1..16,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptCount = { + "PagingAttemptCount", + "PagingAttemptCount", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptCount_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingAttemptCount_constr_1, ASN_NGAP_PagingAttemptCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingAttemptCount.h b/src/asn/ngap/ASN_NGAP_PagingAttemptCount.h new file mode 100644 index 0000000..b12e69c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAttemptCount.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingAttemptCount_H_ +#define _ASN_NGAP_PagingAttemptCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PagingAttemptCount */ +typedef long ASN_NGAP_PagingAttemptCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingAttemptCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptCount; +asn_struct_free_f ASN_NGAP_PagingAttemptCount_free; +asn_struct_print_f ASN_NGAP_PagingAttemptCount_print; +asn_constr_check_f ASN_NGAP_PagingAttemptCount_constraint; +ber_type_decoder_f ASN_NGAP_PagingAttemptCount_decode_ber; +der_type_encoder_f ASN_NGAP_PagingAttemptCount_encode_der; +xer_type_decoder_f ASN_NGAP_PagingAttemptCount_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingAttemptCount_encode_xer; +per_type_decoder_f ASN_NGAP_PagingAttemptCount_decode_uper; +per_type_encoder_f ASN_NGAP_PagingAttemptCount_encode_uper; +per_type_decoder_f ASN_NGAP_PagingAttemptCount_decode_aper; +per_type_encoder_f ASN_NGAP_PagingAttemptCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingAttemptCount_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.c b/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.c new file mode 100644 index 0000000..7744fbd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingAttemptInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAttemptInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAttemptInformation, pagingAttemptCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PagingAttemptCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingAttemptCount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAttemptInformation, intendedNumberOfPagingAttempts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntendedNumberOfPagingAttempts, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intendedNumberOfPagingAttempts" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PagingAttemptInformation, nextPagingAreaScope), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NextPagingAreaScope, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextPagingAreaScope" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PagingAttemptInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PagingAttemptInformation_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PagingAttemptInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pagingAttemptCount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intendedNumberOfPagingAttempts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nextPagingAreaScope */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAttemptInformation_specs_1 = { + sizeof(struct ASN_NGAP_PagingAttemptInformation), + offsetof(struct ASN_NGAP_PagingAttemptInformation, _asn_ctx), + asn_MAP_ASN_NGAP_PagingAttemptInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PagingAttemptInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptInformation = { + "PagingAttemptInformation", + "PagingAttemptInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PagingAttemptInformation_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_PagingAttemptInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.h b/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.h new file mode 100644 index 0000000..1a5173a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingAttemptInformation.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingAttemptInformation_H_ +#define _ASN_NGAP_PagingAttemptInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PagingAttemptCount.h" +#include "ASN_NGAP_IntendedNumberOfPagingAttempts.h" +#include "ASN_NGAP_NextPagingAreaScope.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PagingAttemptInformation */ +typedef struct ASN_NGAP_PagingAttemptInformation { + ASN_NGAP_PagingAttemptCount_t pagingAttemptCount; + ASN_NGAP_IntendedNumberOfPagingAttempts_t intendedNumberOfPagingAttempts; + ASN_NGAP_NextPagingAreaScope_t *nextPagingAreaScope; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PagingAttemptInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAttemptInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAttemptInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingAttemptInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingCause.c b/src/asn/ngap/ASN_NGAP_PagingCause.c new file mode 100644 index 0000000..ad1231e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingCause.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingCause_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_ASN_NGAP_PagingCause_value2enum_1[] = { + { 0, 5, "voice" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingCause_enum2value_1[] = { + 0 /* voice(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingCause_specs_1 = { + asn_MAP_ASN_NGAP_PagingCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingCause_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_ASN_NGAP_PagingCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingCause = { + "PagingCause", + "PagingCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingCause_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingCause.h b/src/asn/ngap/ASN_NGAP_PagingCause.h new file mode 100644 index 0000000..8398165 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingCause.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingCause_H_ +#define _ASN_NGAP_PagingCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingCause { + ASN_NGAP_PagingCause_voice = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingCause; + +/* ASN_NGAP_PagingCause */ +typedef long ASN_NGAP_PagingCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingCause_specs_1; +asn_struct_free_f ASN_NGAP_PagingCause_free; +asn_struct_print_f ASN_NGAP_PagingCause_print; +asn_constr_check_f ASN_NGAP_PagingCause_constraint; +ber_type_decoder_f ASN_NGAP_PagingCause_decode_ber; +der_type_encoder_f ASN_NGAP_PagingCause_encode_der; +xer_type_decoder_f ASN_NGAP_PagingCause_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingCause_encode_xer; +per_type_decoder_f ASN_NGAP_PagingCause_decode_uper; +per_type_encoder_f ASN_NGAP_PagingCause_encode_uper; +per_type_decoder_f ASN_NGAP_PagingCause_decode_aper; +per_type_encoder_f ASN_NGAP_PagingCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingCause_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.c b/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.c new file mode 100644 index 0000000..d99e46f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingCauseIndicationForVoiceService.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingCauseIndicationForVoiceService_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_ASN_NGAP_PagingCauseIndicationForVoiceService_value2enum_1[] = { + { 0, 9, "supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingCauseIndicationForVoiceService_enum2value_1[] = { + 0 /* supported(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingCauseIndicationForVoiceService_specs_1 = { + asn_MAP_ASN_NGAP_PagingCauseIndicationForVoiceService_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingCauseIndicationForVoiceService_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_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService = { + "PagingCauseIndicationForVoiceService", + "PagingCauseIndicationForVoiceService", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingCauseIndicationForVoiceService_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingCauseIndicationForVoiceService_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.h b/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.h new file mode 100644 index 0000000..201d398 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingCauseIndicationForVoiceService.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingCauseIndicationForVoiceService_H_ +#define _ASN_NGAP_PagingCauseIndicationForVoiceService_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingCauseIndicationForVoiceService { + ASN_NGAP_PagingCauseIndicationForVoiceService_supported = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingCauseIndicationForVoiceService; + +/* ASN_NGAP_PagingCauseIndicationForVoiceService */ +typedef long ASN_NGAP_PagingCauseIndicationForVoiceService_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingCauseIndicationForVoiceService_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingCauseIndicationForVoiceService_specs_1; +asn_struct_free_f ASN_NGAP_PagingCauseIndicationForVoiceService_free; +asn_struct_print_f ASN_NGAP_PagingCauseIndicationForVoiceService_print; +asn_constr_check_f ASN_NGAP_PagingCauseIndicationForVoiceService_constraint; +ber_type_decoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_decode_ber; +der_type_encoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_encode_der; +xer_type_decoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_encode_xer; +per_type_decoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_decode_uper; +per_type_encoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_encode_uper; +per_type_decoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_decode_aper; +per_type_encoder_f ASN_NGAP_PagingCauseIndicationForVoiceService_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingCauseIndicationForVoiceService_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingDRX.c b/src/asn/ngap/ASN_NGAP_PagingDRX.c new file mode 100644 index 0000000..6dcc057 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingDRX.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingDRX.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingDRX_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_ASN_NGAP_PagingDRX_value2enum_1[] = { + { 0, 3, "v32" }, + { 1, 3, "v64" }, + { 2, 4, "v128" }, + { 3, 4, "v256" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingDRX_enum2value_1[] = { + 2, /* v128(2) */ + 3, /* v256(3) */ + 0, /* v32(0) */ + 1 /* v64(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingDRX_specs_1 = { + asn_MAP_ASN_NGAP_PagingDRX_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingDRX_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_ASN_NGAP_PagingDRX_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingDRX = { + "PagingDRX", + "PagingDRX", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingDRX_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingDRX_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingDRX_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingDRX_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingDRX_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingDRX_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingDRX_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingDRX.h b/src/asn/ngap/ASN_NGAP_PagingDRX.h new file mode 100644 index 0000000..51348f9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingDRX.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingDRX_H_ +#define _ASN_NGAP_PagingDRX_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingDRX { + ASN_NGAP_PagingDRX_v32 = 0, + ASN_NGAP_PagingDRX_v64 = 1, + ASN_NGAP_PagingDRX_v128 = 2, + ASN_NGAP_PagingDRX_v256 = 3 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingDRX; + +/* ASN_NGAP_PagingDRX */ +typedef long ASN_NGAP_PagingDRX_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingDRX_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingDRX; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingDRX_specs_1; +asn_struct_free_f ASN_NGAP_PagingDRX_free; +asn_struct_print_f ASN_NGAP_PagingDRX_print; +asn_constr_check_f ASN_NGAP_PagingDRX_constraint; +ber_type_decoder_f ASN_NGAP_PagingDRX_decode_ber; +der_type_encoder_f ASN_NGAP_PagingDRX_encode_der; +xer_type_decoder_f ASN_NGAP_PagingDRX_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingDRX_encode_xer; +per_type_decoder_f ASN_NGAP_PagingDRX_decode_uper; +per_type_encoder_f ASN_NGAP_PagingDRX_encode_uper; +per_type_decoder_f ASN_NGAP_PagingDRX_decode_aper; +per_type_encoder_f ASN_NGAP_PagingDRX_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingDRX_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingOrigin.c b/src/asn/ngap/ASN_NGAP_PagingOrigin.c new file mode 100644 index 0000000..a3b01bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingOrigin.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingOrigin.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingOrigin_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_ASN_NGAP_PagingOrigin_value2enum_1[] = { + { 0, 8, "non-3gpp" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingOrigin_enum2value_1[] = { + 0 /* non-3gpp(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingOrigin_specs_1 = { + asn_MAP_ASN_NGAP_PagingOrigin_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingOrigin_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_ASN_NGAP_PagingOrigin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingOrigin = { + "PagingOrigin", + "PagingOrigin", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingOrigin_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingOrigin_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingOrigin_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingOrigin_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingOrigin_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingOrigin_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingOrigin_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingOrigin_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingOrigin.h b/src/asn/ngap/ASN_NGAP_PagingOrigin.h new file mode 100644 index 0000000..15f0cff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingOrigin.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingOrigin_H_ +#define _ASN_NGAP_PagingOrigin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingOrigin { + ASN_NGAP_PagingOrigin_non_3gpp = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingOrigin; + +/* ASN_NGAP_PagingOrigin */ +typedef long ASN_NGAP_PagingOrigin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingOrigin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingOrigin; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingOrigin_specs_1; +asn_struct_free_f ASN_NGAP_PagingOrigin_free; +asn_struct_print_f ASN_NGAP_PagingOrigin_print; +asn_constr_check_f ASN_NGAP_PagingOrigin_constraint; +ber_type_decoder_f ASN_NGAP_PagingOrigin_decode_ber; +der_type_encoder_f ASN_NGAP_PagingOrigin_encode_der; +xer_type_decoder_f ASN_NGAP_PagingOrigin_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingOrigin_encode_xer; +per_type_decoder_f ASN_NGAP_PagingOrigin_decode_uper; +per_type_encoder_f ASN_NGAP_PagingOrigin_encode_uper; +per_type_decoder_f ASN_NGAP_PagingOrigin_decode_aper; +per_type_encoder_f ASN_NGAP_PagingOrigin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingOrigin_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingPriority.c b/src/asn/ngap/ASN_NGAP_PagingPriority.c new file mode 100644 index 0000000..4783fd2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingPriority.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingPriority.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingPriority_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_ASN_NGAP_PagingPriority_value2enum_1[] = { + { 0, 10, "priolevel1" }, + { 1, 10, "priolevel2" }, + { 2, 10, "priolevel3" }, + { 3, 10, "priolevel4" }, + { 4, 10, "priolevel5" }, + { 5, 10, "priolevel6" }, + { 6, 10, "priolevel7" }, + { 7, 10, "priolevel8" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingPriority_enum2value_1[] = { + 0, /* priolevel1(0) */ + 1, /* priolevel2(1) */ + 2, /* priolevel3(2) */ + 3, /* priolevel4(3) */ + 4, /* priolevel5(4) */ + 5, /* priolevel6(5) */ + 6, /* priolevel7(6) */ + 7 /* priolevel8(7) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingPriority_specs_1 = { + asn_MAP_ASN_NGAP_PagingPriority_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingPriority_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_ASN_NGAP_PagingPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingPriority = { + "PagingPriority", + "PagingPriority", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingPriority_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingPriority_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingPriority_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingPriority.h b/src/asn/ngap/ASN_NGAP_PagingPriority.h new file mode 100644 index 0000000..3df3e92 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingPriority.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingPriority_H_ +#define _ASN_NGAP_PagingPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingPriority { + ASN_NGAP_PagingPriority_priolevel1 = 0, + ASN_NGAP_PagingPriority_priolevel2 = 1, + ASN_NGAP_PagingPriority_priolevel3 = 2, + ASN_NGAP_PagingPriority_priolevel4 = 3, + ASN_NGAP_PagingPriority_priolevel5 = 4, + ASN_NGAP_PagingPriority_priolevel6 = 5, + ASN_NGAP_PagingPriority_priolevel7 = 6, + ASN_NGAP_PagingPriority_priolevel8 = 7 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingPriority; + +/* ASN_NGAP_PagingPriority */ +typedef long ASN_NGAP_PagingPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingPriority; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingPriority_specs_1; +asn_struct_free_f ASN_NGAP_PagingPriority_free; +asn_struct_print_f ASN_NGAP_PagingPriority_print; +asn_constr_check_f ASN_NGAP_PagingPriority_constraint; +ber_type_decoder_f ASN_NGAP_PagingPriority_decode_ber; +der_type_encoder_f ASN_NGAP_PagingPriority_encode_der; +xer_type_decoder_f ASN_NGAP_PagingPriority_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingPriority_encode_xer; +per_type_decoder_f ASN_NGAP_PagingPriority_decode_uper; +per_type_encoder_f ASN_NGAP_PagingPriority_encode_uper; +per_type_decoder_f ASN_NGAP_PagingPriority_decode_aper; +per_type_encoder_f ASN_NGAP_PagingPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingPriority_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.c b/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.c new file mode 100644 index 0000000..29e9fff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PagingProbabilityInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingProbabilityInformation_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_ASN_NGAP_PagingProbabilityInformation_value2enum_1[] = { + { 0, 3, "p00" }, + { 1, 3, "p05" }, + { 2, 3, "p10" }, + { 3, 3, "p15" }, + { 4, 3, "p20" }, + { 5, 3, "p25" }, + { 6, 3, "p30" }, + { 7, 3, "p35" }, + { 8, 3, "p40" }, + { 9, 3, "p45" }, + { 10, 3, "p50" }, + { 11, 3, "p55" }, + { 12, 3, "p60" }, + { 13, 3, "p65" }, + { 14, 3, "p70" }, + { 15, 3, "p75" }, + { 16, 3, "p80" }, + { 17, 3, "p85" }, + { 18, 3, "p90" }, + { 19, 3, "p95" }, + { 20, 4, "p100" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PagingProbabilityInformation_enum2value_1[] = { + 0, /* p00(0) */ + 1, /* p05(1) */ + 2, /* p10(2) */ + 20, /* p100(20) */ + 3, /* p15(3) */ + 4, /* p20(4) */ + 5, /* p25(5) */ + 6, /* p30(6) */ + 7, /* p35(7) */ + 8, /* p40(8) */ + 9, /* p45(9) */ + 10, /* p50(10) */ + 11, /* p55(11) */ + 12, /* p60(12) */ + 13, /* p65(13) */ + 14, /* p70(14) */ + 15, /* p75(15) */ + 16, /* p80(16) */ + 17, /* p85(17) */ + 18, /* p90(18) */ + 19 /* p95(19) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingProbabilityInformation_specs_1 = { + asn_MAP_ASN_NGAP_PagingProbabilityInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PagingProbabilityInformation_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_ASN_NGAP_PagingProbabilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingProbabilityInformation = { + "PagingProbabilityInformation", + "PagingProbabilityInformation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PagingProbabilityInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PagingProbabilityInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PagingProbabilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.h b/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.h new file mode 100644 index 0000000..d82129c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PagingProbabilityInformation.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PagingProbabilityInformation_H_ +#define _ASN_NGAP_PagingProbabilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PagingProbabilityInformation { + ASN_NGAP_PagingProbabilityInformation_p00 = 0, + ASN_NGAP_PagingProbabilityInformation_p05 = 1, + ASN_NGAP_PagingProbabilityInformation_p10 = 2, + ASN_NGAP_PagingProbabilityInformation_p15 = 3, + ASN_NGAP_PagingProbabilityInformation_p20 = 4, + ASN_NGAP_PagingProbabilityInformation_p25 = 5, + ASN_NGAP_PagingProbabilityInformation_p30 = 6, + ASN_NGAP_PagingProbabilityInformation_p35 = 7, + ASN_NGAP_PagingProbabilityInformation_p40 = 8, + ASN_NGAP_PagingProbabilityInformation_p45 = 9, + ASN_NGAP_PagingProbabilityInformation_p50 = 10, + ASN_NGAP_PagingProbabilityInformation_p55 = 11, + ASN_NGAP_PagingProbabilityInformation_p60 = 12, + ASN_NGAP_PagingProbabilityInformation_p65 = 13, + ASN_NGAP_PagingProbabilityInformation_p70 = 14, + ASN_NGAP_PagingProbabilityInformation_p75 = 15, + ASN_NGAP_PagingProbabilityInformation_p80 = 16, + ASN_NGAP_PagingProbabilityInformation_p85 = 17, + ASN_NGAP_PagingProbabilityInformation_p90 = 18, + ASN_NGAP_PagingProbabilityInformation_p95 = 19, + ASN_NGAP_PagingProbabilityInformation_p100 = 20 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PagingProbabilityInformation; + +/* ASN_NGAP_PagingProbabilityInformation */ +typedef long ASN_NGAP_PagingProbabilityInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PagingProbabilityInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingProbabilityInformation; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PagingProbabilityInformation_specs_1; +asn_struct_free_f ASN_NGAP_PagingProbabilityInformation_free; +asn_struct_print_f ASN_NGAP_PagingProbabilityInformation_print; +asn_constr_check_f ASN_NGAP_PagingProbabilityInformation_constraint; +ber_type_decoder_f ASN_NGAP_PagingProbabilityInformation_decode_ber; +der_type_encoder_f ASN_NGAP_PagingProbabilityInformation_encode_der; +xer_type_decoder_f ASN_NGAP_PagingProbabilityInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_PagingProbabilityInformation_encode_xer; +per_type_decoder_f ASN_NGAP_PagingProbabilityInformation_decode_uper; +per_type_encoder_f ASN_NGAP_PagingProbabilityInformation_encode_uper; +per_type_decoder_f ASN_NGAP_PagingProbabilityInformation_decode_aper; +per_type_encoder_f ASN_NGAP_PagingProbabilityInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PagingProbabilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequest.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequest.c new file mode 100644 index 0000000..34b5895 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequest_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequest), + offsetof(struct ASN_NGAP_PathSwitchRequest, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequest_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_ASN_NGAP_PathSwitchRequest = { + "PathSwitchRequest", + "PathSwitchRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequest.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequest.h new file mode 100644 index 0000000..6c19142 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequest_H_ +#define _ASN_NGAP_PathSwitchRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PathSwitchRequest */ +typedef struct ASN_NGAP_PathSwitchRequest { + ASN_NGAP_ProtocolIE_Container_123P39_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.c new file mode 100644 index 0000000..84f1af5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledge), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledge_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_ASN_NGAP_PathSwitchRequestAcknowledge = { + "PathSwitchRequestAcknowledge", + "PathSwitchRequestAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.h new file mode 100644 index 0000000..efee240 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestAcknowledge_H_ +#define _ASN_NGAP_PathSwitchRequestAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PathSwitchRequestAcknowledge */ +typedef struct ASN_NGAP_PathSwitchRequestAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P40_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.c new file mode 100644 index 0000000..dc7fb99 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h" + +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_SecurityIndication.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer, uL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer, securityIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* securityIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer = { + "PathSwitchRequestAcknowledgeTransfer", + "PathSwitchRequestAcknowledgeTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h new file mode 100644 index 0000000..f63019a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestAcknowledgeTransfer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_H_ +#define _ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformation; +struct ASN_NGAP_SecurityIndication; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PathSwitchRequestAcknowledgeTransfer */ +typedef struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer { + struct ASN_NGAP_UPTransportLayerInformation *uL_NGU_UP_TNLInformation; /* OPTIONAL */ + struct ASN_NGAP_SecurityIndication *securityIndication; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.c new file mode 100644 index 0000000..cd613b6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestFailure_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestFailure), + offsetof(struct ASN_NGAP_PathSwitchRequestFailure, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestFailure_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_ASN_NGAP_PathSwitchRequestFailure = { + "PathSwitchRequestFailure", + "PathSwitchRequestFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.h new file mode 100644 index 0000000..8e3c7d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestFailure_H_ +#define _ASN_NGAP_PathSwitchRequestFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PathSwitchRequestFailure */ +typedef struct ASN_NGAP_PathSwitchRequestFailure { + ASN_NGAP_ProtocolIE_Container_123P41_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.c new file mode 100644 index 0000000..d07cb1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer), + offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer = { + "PathSwitchRequestSetupFailedTransfer", + "PathSwitchRequestSetupFailedTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h new file mode 100644 index 0000000..a82fbc4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestSetupFailedTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestSetupFailedTransfer_H_ +#define _ASN_NGAP_PathSwitchRequestSetupFailedTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PathSwitchRequestSetupFailedTransfer */ +typedef struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestSetupFailedTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestSetupFailedTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.c new file mode 100644 index 0000000..2567483 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestTransfer.h" + +#include "ASN_NGAP_UserPlaneSecurityInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, dL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, dL_NGU_TNLInformationReused), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-TNLInformationReused" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, userPlaneSecurityInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UserPlaneSecurityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userPlaneSecurityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, qosFlowAcceptedList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowAcceptedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowAcceptedList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_oms_1[] = { 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-NGU-TNLInformationReused */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userPlaneSecurityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* qosFlowAcceptedList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestTransfer), + offsetof(struct ASN_NGAP_PathSwitchRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer = { + "PathSwitchRequestTransfer", + "PathSwitchRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.h new file mode 100644 index 0000000..20644fb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestTransfer_H_ +#define _ASN_NGAP_PathSwitchRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_DL-NGU-TNLInformationReused.h" +#include "ASN_NGAP_QosFlowAcceptedList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UserPlaneSecurityInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PathSwitchRequestTransfer */ +typedef struct ASN_NGAP_PathSwitchRequestTransfer { + ASN_NGAP_UPTransportLayerInformation_t dL_NGU_UP_TNLInformation; + ASN_NGAP_DL_NGU_TNLInformationReused_t *dL_NGU_TNLInformationReused; /* OPTIONAL */ + struct ASN_NGAP_UserPlaneSecurityInformation *userPlaneSecurityInformation; /* OPTIONAL */ + ASN_NGAP_QosFlowAcceptedList_t qosFlowAcceptedList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.c b/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.c new file mode 100644 index 0000000..85ae31e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer, cause), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_specs_1 = { + sizeof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer), + offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer = { + "PathSwitchRequestUnsuccessfulTransfer", + "PathSwitchRequestUnsuccessfulTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h b/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h new file mode 100644 index 0000000..9529896 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_H_ +#define _ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer */ +typedef struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer { + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PedestrianUE.c b/src/asn/ngap/ASN_NGAP_PedestrianUE.c new file mode 100644 index 0000000..ecf8c9c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PedestrianUE.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PedestrianUE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_PedestrianUE_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PedestrianUE_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PedestrianUE_specs_1 = { + asn_MAP_ASN_NGAP_PedestrianUE_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_PedestrianUE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PedestrianUE = { + "PedestrianUE", + "PedestrianUE", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PedestrianUE_tags_1, + sizeof(asn_DEF_ASN_NGAP_PedestrianUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PedestrianUE_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PedestrianUE_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PedestrianUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PedestrianUE_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PedestrianUE_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PedestrianUE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PedestrianUE.h b/src/asn/ngap/ASN_NGAP_PedestrianUE.h new file mode 100644 index 0000000..0f867b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PedestrianUE.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PedestrianUE_H_ +#define _ASN_NGAP_PedestrianUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PedestrianUE { + ASN_NGAP_PedestrianUE_authorized = 0, + ASN_NGAP_PedestrianUE_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PedestrianUE; + +/* ASN_NGAP_PedestrianUE */ +typedef long ASN_NGAP_PedestrianUE_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PedestrianUE_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PedestrianUE; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PedestrianUE_specs_1; +asn_struct_free_f ASN_NGAP_PedestrianUE_free; +asn_struct_print_f ASN_NGAP_PedestrianUE_print; +asn_constr_check_f ASN_NGAP_PedestrianUE_constraint; +ber_type_decoder_f ASN_NGAP_PedestrianUE_decode_ber; +der_type_encoder_f ASN_NGAP_PedestrianUE_encode_der; +xer_type_decoder_f ASN_NGAP_PedestrianUE_decode_xer; +xer_type_encoder_f ASN_NGAP_PedestrianUE_encode_xer; +per_type_decoder_f ASN_NGAP_PedestrianUE_decode_uper; +per_type_encoder_f ASN_NGAP_PedestrianUE_encode_uper; +per_type_decoder_f ASN_NGAP_PedestrianUE_decode_aper; +per_type_encoder_f ASN_NGAP_PedestrianUE_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PedestrianUE_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.c b/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.c new file mode 100644 index 0000000..bbed747 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PeriodicRegistrationUpdateTimer.h" + +int +ASN_NGAP_PeriodicRegistrationUpdateTimer_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_ASN_NGAP_PeriodicRegistrationUpdateTimer_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_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer = { + "PeriodicRegistrationUpdateTimer", + "PeriodicRegistrationUpdateTimer", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1, + sizeof(asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PeriodicRegistrationUpdateTimer_constr_1, ASN_NGAP_PeriodicRegistrationUpdateTimer_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.h b/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.h new file mode 100644 index 0000000..eed4890 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PeriodicRegistrationUpdateTimer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PeriodicRegistrationUpdateTimer_H_ +#define _ASN_NGAP_PeriodicRegistrationUpdateTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PeriodicRegistrationUpdateTimer */ +typedef BIT_STRING_t ASN_NGAP_PeriodicRegistrationUpdateTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PeriodicRegistrationUpdateTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicRegistrationUpdateTimer; +asn_struct_free_f ASN_NGAP_PeriodicRegistrationUpdateTimer_free; +asn_struct_print_f ASN_NGAP_PeriodicRegistrationUpdateTimer_print; +asn_constr_check_f ASN_NGAP_PeriodicRegistrationUpdateTimer_constraint; +ber_type_decoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_decode_ber; +der_type_encoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_encode_der; +xer_type_decoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_decode_xer; +xer_type_encoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_encode_xer; +per_type_decoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_decode_uper; +per_type_encoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_encode_uper; +per_type_decoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_decode_aper; +per_type_encoder_f ASN_NGAP_PeriodicRegistrationUpdateTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PeriodicRegistrationUpdateTimer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.c b/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.c new file mode 100644 index 0000000..57ad14b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PeriodicReportingIEs.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_PeriodicReportingIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PeriodicReportingIEs, reportingPeriodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReportingPeriodicity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportingPeriodicity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_PeriodicReportingIEs, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_PeriodicReportingIEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PeriodicReportingIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportingPeriodicity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PeriodicReportingIEs_specs_1 = { + sizeof(struct ASN_NGAP_PeriodicReportingIEs), + offsetof(struct ASN_NGAP_PeriodicReportingIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PeriodicReportingIEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_PeriodicReportingIEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicReportingIEs = { + "PeriodicReportingIEs", + "PeriodicReportingIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PeriodicReportingIEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PeriodicReportingIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.h b/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.h new file mode 100644 index 0000000..a3f3726 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PeriodicReportingIEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PeriodicReportingIEs_H_ +#define _ASN_NGAP_PeriodicReportingIEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ReportingPeriodicity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_PeriodicReportingIEs */ +typedef struct ASN_NGAP_PeriodicReportingIEs { + ASN_NGAP_ReportingPeriodicity_t reportingPeriodicity; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PeriodicReportingIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicReportingIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PeriodicReportingIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PeriodicReportingIEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PeriodicReportingIEs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Periodicity.c b/src/asn/ngap/ASN_NGAP_Periodicity.c new file mode 100644 index 0000000..2320655 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Periodicity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Periodicity.h" + +int +ASN_NGAP_Periodicity_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 <= 640000)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_Periodicity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 20, -1, 0, 640000 } /* (0..640000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Periodicity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Periodicity = { + "Periodicity", + "Periodicity", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Periodicity_tags_1, + sizeof(asn_DEF_ASN_NGAP_Periodicity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Periodicity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Periodicity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Periodicity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Periodicity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Periodicity_constr_1, ASN_NGAP_Periodicity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Periodicity.h b/src/asn/ngap/ASN_NGAP_Periodicity.h new file mode 100644 index 0000000..9aa587a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Periodicity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Periodicity_H_ +#define _ASN_NGAP_Periodicity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Periodicity */ +typedef long ASN_NGAP_Periodicity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Periodicity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Periodicity; +asn_struct_free_f ASN_NGAP_Periodicity_free; +asn_struct_print_f ASN_NGAP_Periodicity_print; +asn_constr_check_f ASN_NGAP_Periodicity_constraint; +ber_type_decoder_f ASN_NGAP_Periodicity_decode_ber; +der_type_encoder_f ASN_NGAP_Periodicity_encode_der; +xer_type_decoder_f ASN_NGAP_Periodicity_decode_xer; +xer_type_encoder_f ASN_NGAP_Periodicity_encode_xer; +per_type_decoder_f ASN_NGAP_Periodicity_decode_uper; +per_type_encoder_f ASN_NGAP_Periodicity_encode_uper; +per_type_decoder_f ASN_NGAP_Periodicity_decode_aper; +per_type_encoder_f ASN_NGAP_Periodicity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Periodicity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PortNumber.c b/src/asn/ngap/ASN_NGAP_PortNumber.c new file mode 100644 index 0000000..c046bcd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PortNumber.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PortNumber.h" + +int +ASN_NGAP_PortNumber_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_ASN_NGAP_PortNumber_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_ASN_NGAP_PortNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PortNumber = { + "PortNumber", + "PortNumber", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_PortNumber_tags_1, + sizeof(asn_DEF_ASN_NGAP_PortNumber_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PortNumber_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PortNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PortNumber_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PortNumber_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PortNumber_constr_1, ASN_NGAP_PortNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PortNumber.h b/src/asn/ngap/ASN_NGAP_PortNumber.h new file mode 100644 index 0000000..fc1d7a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PortNumber.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PortNumber_H_ +#define _ASN_NGAP_PortNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PortNumber */ +typedef OCTET_STRING_t ASN_NGAP_PortNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PortNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PortNumber; +asn_struct_free_f ASN_NGAP_PortNumber_free; +asn_struct_print_f ASN_NGAP_PortNumber_print; +asn_constr_check_f ASN_NGAP_PortNumber_constraint; +ber_type_decoder_f ASN_NGAP_PortNumber_decode_ber; +der_type_encoder_f ASN_NGAP_PortNumber_encode_der; +xer_type_decoder_f ASN_NGAP_PortNumber_decode_xer; +xer_type_encoder_f ASN_NGAP_PortNumber_encode_xer; +per_type_decoder_f ASN_NGAP_PortNumber_decode_uper; +per_type_encoder_f ASN_NGAP_PortNumber_encode_uper; +per_type_decoder_f ASN_NGAP_PortNumber_decode_aper; +per_type_encoder_f ASN_NGAP_PortNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PortNumber_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.c b/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.c new file mode 100644 index 0000000..813ff79 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Pre-emptionCapability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Pre_emptionCapability_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_ASN_NGAP_Pre_emptionCapability_value2enum_1[] = { + { 0, 29, "shall-not-trigger-pre-emption" }, + { 1, 23, "may-trigger-pre-emption" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Pre_emptionCapability_enum2value_1[] = { + 1, /* may-trigger-pre-emption(1) */ + 0 /* shall-not-trigger-pre-emption(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Pre_emptionCapability_specs_1 = { + asn_MAP_ASN_NGAP_Pre_emptionCapability_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Pre_emptionCapability_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_ASN_NGAP_Pre_emptionCapability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Pre_emptionCapability = { + "Pre-emptionCapability", + "Pre-emptionCapability", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1, + sizeof(asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Pre_emptionCapability_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Pre_emptionCapability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Pre_emptionCapability_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.h b/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.h new file mode 100644 index 0000000..60261b8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Pre-emptionCapability.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Pre_emptionCapability_H_ +#define _ASN_NGAP_Pre_emptionCapability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Pre_emptionCapability { + ASN_NGAP_Pre_emptionCapability_shall_not_trigger_pre_emption = 0, + ASN_NGAP_Pre_emptionCapability_may_trigger_pre_emption = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Pre_emptionCapability; + +/* ASN_NGAP_Pre-emptionCapability */ +typedef long ASN_NGAP_Pre_emptionCapability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Pre_emptionCapability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Pre_emptionCapability; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Pre_emptionCapability_specs_1; +asn_struct_free_f ASN_NGAP_Pre_emptionCapability_free; +asn_struct_print_f ASN_NGAP_Pre_emptionCapability_print; +asn_constr_check_f ASN_NGAP_Pre_emptionCapability_constraint; +ber_type_decoder_f ASN_NGAP_Pre_emptionCapability_decode_ber; +der_type_encoder_f ASN_NGAP_Pre_emptionCapability_encode_der; +xer_type_decoder_f ASN_NGAP_Pre_emptionCapability_decode_xer; +xer_type_encoder_f ASN_NGAP_Pre_emptionCapability_encode_xer; +per_type_decoder_f ASN_NGAP_Pre_emptionCapability_decode_uper; +per_type_encoder_f ASN_NGAP_Pre_emptionCapability_encode_uper; +per_type_decoder_f ASN_NGAP_Pre_emptionCapability_decode_aper; +per_type_encoder_f ASN_NGAP_Pre_emptionCapability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Pre_emptionCapability_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.c b/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.c new file mode 100644 index 0000000..500b61f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Pre-emptionVulnerability.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Pre_emptionVulnerability_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_ASN_NGAP_Pre_emptionVulnerability_value2enum_1[] = { + { 0, 16, "not-pre-emptable" }, + { 1, 12, "pre-emptable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Pre_emptionVulnerability_enum2value_1[] = { + 0, /* not-pre-emptable(0) */ + 1 /* pre-emptable(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Pre_emptionVulnerability_specs_1 = { + asn_MAP_ASN_NGAP_Pre_emptionVulnerability_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Pre_emptionVulnerability_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_ASN_NGAP_Pre_emptionVulnerability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Pre_emptionVulnerability = { + "Pre-emptionVulnerability", + "Pre-emptionVulnerability", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1, + sizeof(asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Pre_emptionVulnerability_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Pre_emptionVulnerability_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Pre_emptionVulnerability_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.h b/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.h new file mode 100644 index 0000000..be29776 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Pre-emptionVulnerability.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Pre_emptionVulnerability_H_ +#define _ASN_NGAP_Pre_emptionVulnerability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Pre_emptionVulnerability { + ASN_NGAP_Pre_emptionVulnerability_not_pre_emptable = 0, + ASN_NGAP_Pre_emptionVulnerability_pre_emptable = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Pre_emptionVulnerability; + +/* ASN_NGAP_Pre-emptionVulnerability */ +typedef long ASN_NGAP_Pre_emptionVulnerability_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Pre_emptionVulnerability_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Pre_emptionVulnerability; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Pre_emptionVulnerability_specs_1; +asn_struct_free_f ASN_NGAP_Pre_emptionVulnerability_free; +asn_struct_print_f ASN_NGAP_Pre_emptionVulnerability_print; +asn_constr_check_f ASN_NGAP_Pre_emptionVulnerability_constraint; +ber_type_decoder_f ASN_NGAP_Pre_emptionVulnerability_decode_ber; +der_type_encoder_f ASN_NGAP_Pre_emptionVulnerability_encode_der; +xer_type_decoder_f ASN_NGAP_Pre_emptionVulnerability_decode_xer; +xer_type_encoder_f ASN_NGAP_Pre_emptionVulnerability_encode_xer; +per_type_decoder_f ASN_NGAP_Pre_emptionVulnerability_decode_uper; +per_type_encoder_f ASN_NGAP_Pre_emptionVulnerability_encode_uper; +per_type_decoder_f ASN_NGAP_Pre_emptionVulnerability_decode_aper; +per_type_encoder_f ASN_NGAP_Pre_emptionVulnerability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Pre_emptionVulnerability_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Presence.c b/src/asn/ngap/ASN_NGAP_Presence.c new file mode 100644 index 0000000..70c0692 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Presence.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Presence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_Presence_value2enum_1[] = { + { 0, 8, "optional" }, + { 1, 11, "conditional" }, + { 2, 9, "mandatory" } +}; +static const unsigned int asn_MAP_ASN_NGAP_Presence_enum2value_1[] = { + 1, /* conditional(1) */ + 2, /* mandatory(2) */ + 0 /* optional(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Presence_specs_1 = { + asn_MAP_ASN_NGAP_Presence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_Presence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Presence = { + "Presence", + "Presence", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Presence_tags_1, + sizeof(asn_DEF_ASN_NGAP_Presence_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Presence_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Presence_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Presence_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Presence_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Presence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Presence_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Presence.h b/src/asn/ngap/ASN_NGAP_Presence.h new file mode 100644 index 0000000..05f4249 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Presence.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Presence_H_ +#define _ASN_NGAP_Presence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Presence { + ASN_NGAP_Presence_optional = 0, + ASN_NGAP_Presence_conditional = 1, + ASN_NGAP_Presence_mandatory = 2 +} e_ASN_NGAP_Presence; + +/* ASN_NGAP_Presence */ +typedef long ASN_NGAP_Presence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Presence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Presence; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Presence_specs_1; +asn_struct_free_f ASN_NGAP_Presence_free; +asn_struct_print_f ASN_NGAP_Presence_print; +asn_constr_check_f ASN_NGAP_Presence_constraint; +ber_type_decoder_f ASN_NGAP_Presence_decode_ber; +der_type_encoder_f ASN_NGAP_Presence_encode_der; +xer_type_decoder_f ASN_NGAP_Presence_decode_xer; +xer_type_encoder_f ASN_NGAP_Presence_encode_xer; +per_type_decoder_f ASN_NGAP_Presence_decode_uper; +per_type_encoder_f ASN_NGAP_Presence_encode_uper; +per_type_decoder_f ASN_NGAP_Presence_decode_aper; +per_type_encoder_f ASN_NGAP_Presence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Presence_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PriorityLevelARP.c b/src/asn/ngap/ASN_NGAP_PriorityLevelARP.c new file mode 100644 index 0000000..cdd9dd2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PriorityLevelARP.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PriorityLevelARP.h" + +int +ASN_NGAP_PriorityLevelARP_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 <= 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_ASN_NGAP_PriorityLevelARP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PriorityLevelARP = { + "PriorityLevelARP", + "PriorityLevelARP", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1, + sizeof(asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PriorityLevelARP_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PriorityLevelARP_constr_1, ASN_NGAP_PriorityLevelARP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PriorityLevelARP.h b/src/asn/ngap/ASN_NGAP_PriorityLevelARP.h new file mode 100644 index 0000000..66bd182 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PriorityLevelARP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PriorityLevelARP_H_ +#define _ASN_NGAP_PriorityLevelARP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PriorityLevelARP */ +typedef long ASN_NGAP_PriorityLevelARP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PriorityLevelARP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PriorityLevelARP; +asn_struct_free_f ASN_NGAP_PriorityLevelARP_free; +asn_struct_print_f ASN_NGAP_PriorityLevelARP_print; +asn_constr_check_f ASN_NGAP_PriorityLevelARP_constraint; +ber_type_decoder_f ASN_NGAP_PriorityLevelARP_decode_ber; +der_type_encoder_f ASN_NGAP_PriorityLevelARP_encode_der; +xer_type_decoder_f ASN_NGAP_PriorityLevelARP_decode_xer; +xer_type_encoder_f ASN_NGAP_PriorityLevelARP_encode_xer; +per_type_decoder_f ASN_NGAP_PriorityLevelARP_decode_uper; +per_type_encoder_f ASN_NGAP_PriorityLevelARP_encode_uper; +per_type_decoder_f ASN_NGAP_PriorityLevelARP_decode_aper; +per_type_encoder_f ASN_NGAP_PriorityLevelARP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PriorityLevelARP_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PriorityLevelQos.c b/src/asn/ngap/ASN_NGAP_PriorityLevelQos.c new file mode 100644 index 0000000..dbcc1a4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PriorityLevelQos.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PriorityLevelQos.h" + +int +ASN_NGAP_PriorityLevelQos_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_PriorityLevelQos_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 7, 7, 1, 127 } /* (1..127,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PriorityLevelQos = { + "PriorityLevelQos", + "PriorityLevelQos", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1, + sizeof(asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PriorityLevelQos_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PriorityLevelQos_constr_1, ASN_NGAP_PriorityLevelQos_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PriorityLevelQos.h b/src/asn/ngap/ASN_NGAP_PriorityLevelQos.h new file mode 100644 index 0000000..a24b1de --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PriorityLevelQos.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PriorityLevelQos_H_ +#define _ASN_NGAP_PriorityLevelQos_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PriorityLevelQos */ +typedef long ASN_NGAP_PriorityLevelQos_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PriorityLevelQos_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PriorityLevelQos; +asn_struct_free_f ASN_NGAP_PriorityLevelQos_free; +asn_struct_print_f ASN_NGAP_PriorityLevelQos_print; +asn_constr_check_f ASN_NGAP_PriorityLevelQos_constraint; +ber_type_decoder_f ASN_NGAP_PriorityLevelQos_decode_ber; +der_type_encoder_f ASN_NGAP_PriorityLevelQos_encode_der; +xer_type_decoder_f ASN_NGAP_PriorityLevelQos_decode_xer; +xer_type_encoder_f ASN_NGAP_PriorityLevelQos_encode_xer; +per_type_decoder_f ASN_NGAP_PriorityLevelQos_decode_uper; +per_type_encoder_f ASN_NGAP_PriorityLevelQos_encode_uper; +per_type_decoder_f ASN_NGAP_PriorityLevelQos_decode_aper; +per_type_encoder_f ASN_NGAP_PriorityLevelQos_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PriorityLevelQos_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PrivacyIndicator.c b/src/asn/ngap/ASN_NGAP_PrivacyIndicator.c new file mode 100644 index 0000000..08ce55d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivacyIndicator.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PrivacyIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_PrivacyIndicator_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_ASN_NGAP_PrivacyIndicator_value2enum_1[] = { + { 0, 13, "immediate-MDT" }, + { 1, 10, "logged-MDT" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_PrivacyIndicator_enum2value_1[] = { + 0, /* immediate-MDT(0) */ + 1 /* logged-MDT(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PrivacyIndicator_specs_1 = { + asn_MAP_ASN_NGAP_PrivacyIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_PrivacyIndicator_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_ASN_NGAP_PrivacyIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivacyIndicator = { + "PrivacyIndicator", + "PrivacyIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivacyIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PrivacyIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_PrivacyIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PrivacyIndicator.h b/src/asn/ngap/ASN_NGAP_PrivacyIndicator.h new file mode 100644 index 0000000..60c6394 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivacyIndicator.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PrivacyIndicator_H_ +#define _ASN_NGAP_PrivacyIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PrivacyIndicator { + ASN_NGAP_PrivacyIndicator_immediate_MDT = 0, + ASN_NGAP_PrivacyIndicator_logged_MDT = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_PrivacyIndicator; + +/* ASN_NGAP_PrivacyIndicator */ +typedef long ASN_NGAP_PrivacyIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PrivacyIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivacyIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_PrivacyIndicator_specs_1; +asn_struct_free_f ASN_NGAP_PrivacyIndicator_free; +asn_struct_print_f ASN_NGAP_PrivacyIndicator_print; +asn_constr_check_f ASN_NGAP_PrivacyIndicator_constraint; +ber_type_decoder_f ASN_NGAP_PrivacyIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_PrivacyIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_PrivacyIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_PrivacyIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_PrivacyIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_PrivacyIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_PrivacyIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_PrivacyIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PrivacyIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-Container.c b/src/asn/ngap/ASN_NGAP_PrivateIE-Container.c new file mode 100644 index 0000000..abfe821 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-Container.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PrivateIE-Container.h" + +#include "ASN_NGAP_PrivateIE-Field.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_PrivateIE_Container_190P0_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_ASN_NGAP_PrivateIE_Container_190P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PrivateMessageIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PrivateIE_Container_190P0_specs_1 = { + sizeof(struct ASN_NGAP_PrivateIE_Container_190P0), + offsetof(struct ASN_NGAP_PrivateIE_Container_190P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivateIE_Container_190P0 = { + "PrivateIE-Container", + "PrivateIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1, + sizeof(asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateIE_Container_190P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_PrivateIE_Container_190P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_PrivateIE_Container_190P0_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_PrivateIE_Container_190P0_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-Container.h b/src/asn/ngap/ASN_NGAP_PrivateIE-Container.h new file mode 100644 index 0000000..b17c449 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-Container.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PrivateIE_Container_H_ +#define _ASN_NGAP_PrivateIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PrivateMessageIEs; + +/* ASN_NGAP_PrivateIE-Container */ +typedef struct ASN_NGAP_PrivateIE_Container_190P0 { + A_SEQUENCE_OF(struct ASN_NGAP_PrivateMessageIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PrivateIE_Container_190P0_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivateIE_Container_190P0; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_PrivateIE_Container_190P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateIE_Container_190P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PrivateIE_Container_190P0_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PrivateIE_Container_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-Field.c b/src/asn/ngap/ASN_NGAP_PrivateIE-Field.c new file mode 100644 index 0000000..f74519f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-Field.c @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PrivateIE-Field.h" + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_specs_4 = { + sizeof(struct ASN_NGAP_PrivateMessageIEs__value), + offsetof(struct ASN_NGAP_PrivateMessageIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PrivateMessageIEs__value, present), + sizeof(((struct ASN_NGAP_PrivateMessageIEs__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_ASN_NGAP_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_ASN_NGAP_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateMessageIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PrivateMessageIEs, id), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_PrivateIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_2, memb_ASN_NGAP_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PrivateMessageIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PrivateMessageIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_4, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_4, memb_ASN_NGAP_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PrivateMessageIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* local */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* global */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PrivateMessageIEs_specs_1 = { + sizeof(struct ASN_NGAP_PrivateMessageIEs), + offsetof(struct ASN_NGAP_PrivateMessageIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PrivateMessageIEs_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_ASN_NGAP_PrivateMessageIEs = { + "PrivateMessageIEs", + "PrivateMessageIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateMessageIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PrivateMessageIEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PrivateMessageIEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-Field.h b/src/asn/ngap/ASN_NGAP_PrivateIE-Field.h new file mode 100644 index 0000000..0d5c6f1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-Field.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PrivateIE_Field_H_ +#define _ASN_NGAP_PrivateIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PrivateIE-ID.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PrivateMessageIEs__value_PR { + ASN_NGAP_PrivateMessageIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_PrivateMessageIEs__value_PR; + +/* ASN_NGAP_PrivateIE-Field */ +typedef struct ASN_NGAP_PrivateMessageIEs { + ASN_NGAP_PrivateIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PrivateMessageIEs__value { + ASN_NGAP_PrivateMessageIEs__value_PR present; + union ASN_NGAP_PrivateMessageIEs__ASN_NGAP_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; +} ASN_NGAP_PrivateMessageIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivateMessageIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PrivateMessageIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateMessageIEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PrivateIE_Field_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-ID.c b/src/asn/ngap/ASN_NGAP_PrivateIE-ID.c new file mode 100644 index 0000000..6893ded --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-ID.c @@ -0,0 +1,92 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PrivateIE-ID.h" + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_PrivateIE_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PrivateIE_ID, choice.local), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_local_constr_2, memb_ASN_NGAP_local_constraint_1 }, + 0, 0, /* No default value */ + "local" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_PrivateIE_ID_specs_1 = { + sizeof(struct ASN_NGAP_PrivateIE_ID), + offsetof(struct ASN_NGAP_PrivateIE_ID, _asn_ctx), + offsetof(struct ASN_NGAP_PrivateIE_ID, present), + sizeof(((struct ASN_NGAP_PrivateIE_ID *)0)->present), + asn_MAP_ASN_NGAP_PrivateIE_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_PrivateIE_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_PrivateIE_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_PrivateIE_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PrivateIE-ID.h b/src/asn/ngap/ASN_NGAP_PrivateIE-ID.h new file mode 100644 index 0000000..6eac71c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateIE-ID.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PrivateIE_ID_H_ +#define _ASN_NGAP_PrivateIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_PrivateIE_ID_PR { + ASN_NGAP_PrivateIE_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_PrivateIE_ID_PR_local, + ASN_NGAP_PrivateIE_ID_PR_global +} ASN_NGAP_PrivateIE_ID_PR; + +/* ASN_NGAP_PrivateIE-ID */ +typedef struct ASN_NGAP_PrivateIE_ID { + ASN_NGAP_PrivateIE_ID_PR present; + union ASN_NGAP_PrivateIE_ID_u { + long local; + OBJECT_IDENTIFIER_t global; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PrivateIE_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivateIE_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_PrivateIE_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateIE_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_PrivateIE_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PrivateIE_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_PrivateMessage.c b/src/asn/ngap/ASN_NGAP_PrivateMessage.c new file mode 100644 index 0000000..3f9880c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateMessage.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_PrivateMessage.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateMessage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PrivateMessage, privateIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PrivateIE_Container_190P0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "privateIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PrivateMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PrivateMessage_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* privateIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PrivateMessage_specs_1 = { + sizeof(struct ASN_NGAP_PrivateMessage), + offsetof(struct ASN_NGAP_PrivateMessage, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_PrivateMessage = { + "PrivateMessage", + "PrivateMessage", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PrivateMessage_tags_1, + sizeof(asn_DEF_ASN_NGAP_PrivateMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateMessage_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_PrivateMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PrivateMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_PrivateMessage_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PrivateMessage_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_PrivateMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_PrivateMessage.h b/src/asn/ngap/ASN_NGAP_PrivateMessage.h new file mode 100644 index 0000000..cf230d7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_PrivateMessage.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_PrivateMessage_H_ +#define _ASN_NGAP_PrivateMessage_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PrivateIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_PrivateMessage */ +typedef struct ASN_NGAP_PrivateMessage { + ASN_NGAP_PrivateIE_Container_190P0_t privateIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PrivateMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PrivateMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PrivateMessage_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PrivateMessage_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_PrivateMessage_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProcedureCode.c b/src/asn/ngap/ASN_NGAP_ProcedureCode.c new file mode 100644 index 0000000..feeebc3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProcedureCode.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProcedureCode.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ProcedureCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureCode = { + "ProcedureCode", + "ProcedureCode", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ProcedureCode_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProcedureCode_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProcedureCode_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProcedureCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProcedureCode_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProcedureCode_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProcedureCode_constr_1, ASN_NGAP_ProcedureCode_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProcedureCode.h b/src/asn/ngap/ASN_NGAP_ProcedureCode.h new file mode 100644 index 0000000..1814189 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProcedureCode.h @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProcedureCode_H_ +#define _ASN_NGAP_ProcedureCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ProcedureCode */ +typedef long ASN_NGAP_ProcedureCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProcedureCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureCode; +asn_struct_free_f ASN_NGAP_ProcedureCode_free; +asn_struct_print_f ASN_NGAP_ProcedureCode_print; +asn_constr_check_f ASN_NGAP_ProcedureCode_constraint; +ber_type_decoder_f ASN_NGAP_ProcedureCode_decode_ber; +der_type_encoder_f ASN_NGAP_ProcedureCode_encode_der; +xer_type_decoder_f ASN_NGAP_ProcedureCode_decode_xer; +xer_type_encoder_f ASN_NGAP_ProcedureCode_encode_xer; +per_type_decoder_f ASN_NGAP_ProcedureCode_decode_uper; +per_type_encoder_f ASN_NGAP_ProcedureCode_encode_uper; +per_type_decoder_f ASN_NGAP_ProcedureCode_decode_aper; +per_type_encoder_f ASN_NGAP_ProcedureCode_encode_aper; +#define ASN_NGAP_ProcedureCode_id_AMFConfigurationUpdate ((ASN_NGAP_ProcedureCode_t)0) +#define ASN_NGAP_ProcedureCode_id_AMFStatusIndication ((ASN_NGAP_ProcedureCode_t)1) +#define ASN_NGAP_ProcedureCode_id_CellTrafficTrace ((ASN_NGAP_ProcedureCode_t)2) +#define ASN_NGAP_ProcedureCode_id_DeactivateTrace ((ASN_NGAP_ProcedureCode_t)3) +#define ASN_NGAP_ProcedureCode_id_DownlinkNASTransport ((ASN_NGAP_ProcedureCode_t)4) +#define ASN_NGAP_ProcedureCode_id_DownlinkNonUEAssociatedNRPPaTransport ((ASN_NGAP_ProcedureCode_t)5) +#define ASN_NGAP_ProcedureCode_id_DownlinkRANConfigurationTransfer ((ASN_NGAP_ProcedureCode_t)6) +#define ASN_NGAP_ProcedureCode_id_DownlinkRANStatusTransfer ((ASN_NGAP_ProcedureCode_t)7) +#define ASN_NGAP_ProcedureCode_id_DownlinkUEAssociatedNRPPaTransport ((ASN_NGAP_ProcedureCode_t)8) +#define ASN_NGAP_ProcedureCode_id_ErrorIndication ((ASN_NGAP_ProcedureCode_t)9) +#define ASN_NGAP_ProcedureCode_id_HandoverCancel ((ASN_NGAP_ProcedureCode_t)10) +#define ASN_NGAP_ProcedureCode_id_HandoverNotification ((ASN_NGAP_ProcedureCode_t)11) +#define ASN_NGAP_ProcedureCode_id_HandoverPreparation ((ASN_NGAP_ProcedureCode_t)12) +#define ASN_NGAP_ProcedureCode_id_HandoverResourceAllocation ((ASN_NGAP_ProcedureCode_t)13) +#define ASN_NGAP_ProcedureCode_id_InitialContextSetup ((ASN_NGAP_ProcedureCode_t)14) +#define ASN_NGAP_ProcedureCode_id_InitialUEMessage ((ASN_NGAP_ProcedureCode_t)15) +#define ASN_NGAP_ProcedureCode_id_LocationReportingControl ((ASN_NGAP_ProcedureCode_t)16) +#define ASN_NGAP_ProcedureCode_id_LocationReportingFailureIndication ((ASN_NGAP_ProcedureCode_t)17) +#define ASN_NGAP_ProcedureCode_id_LocationReport ((ASN_NGAP_ProcedureCode_t)18) +#define ASN_NGAP_ProcedureCode_id_NASNonDeliveryIndication ((ASN_NGAP_ProcedureCode_t)19) +#define ASN_NGAP_ProcedureCode_id_NGReset ((ASN_NGAP_ProcedureCode_t)20) +#define ASN_NGAP_ProcedureCode_id_NGSetup ((ASN_NGAP_ProcedureCode_t)21) +#define ASN_NGAP_ProcedureCode_id_OverloadStart ((ASN_NGAP_ProcedureCode_t)22) +#define ASN_NGAP_ProcedureCode_id_OverloadStop ((ASN_NGAP_ProcedureCode_t)23) +#define ASN_NGAP_ProcedureCode_id_Paging ((ASN_NGAP_ProcedureCode_t)24) +#define ASN_NGAP_ProcedureCode_id_PathSwitchRequest ((ASN_NGAP_ProcedureCode_t)25) +#define ASN_NGAP_ProcedureCode_id_PDUSessionResourceModify ((ASN_NGAP_ProcedureCode_t)26) +#define ASN_NGAP_ProcedureCode_id_PDUSessionResourceModifyIndication ((ASN_NGAP_ProcedureCode_t)27) +#define ASN_NGAP_ProcedureCode_id_PDUSessionResourceRelease ((ASN_NGAP_ProcedureCode_t)28) +#define ASN_NGAP_ProcedureCode_id_PDUSessionResourceSetup ((ASN_NGAP_ProcedureCode_t)29) +#define ASN_NGAP_ProcedureCode_id_PDUSessionResourceNotify ((ASN_NGAP_ProcedureCode_t)30) +#define ASN_NGAP_ProcedureCode_id_PrivateMessage ((ASN_NGAP_ProcedureCode_t)31) +#define ASN_NGAP_ProcedureCode_id_PWSCancel ((ASN_NGAP_ProcedureCode_t)32) +#define ASN_NGAP_ProcedureCode_id_PWSFailureIndication ((ASN_NGAP_ProcedureCode_t)33) +#define ASN_NGAP_ProcedureCode_id_PWSRestartIndication ((ASN_NGAP_ProcedureCode_t)34) +#define ASN_NGAP_ProcedureCode_id_RANConfigurationUpdate ((ASN_NGAP_ProcedureCode_t)35) +#define ASN_NGAP_ProcedureCode_id_RerouteNASRequest ((ASN_NGAP_ProcedureCode_t)36) +#define ASN_NGAP_ProcedureCode_id_RRCInactiveTransitionReport ((ASN_NGAP_ProcedureCode_t)37) +#define ASN_NGAP_ProcedureCode_id_TraceFailureIndication ((ASN_NGAP_ProcedureCode_t)38) +#define ASN_NGAP_ProcedureCode_id_TraceStart ((ASN_NGAP_ProcedureCode_t)39) +#define ASN_NGAP_ProcedureCode_id_UEContextModification ((ASN_NGAP_ProcedureCode_t)40) +#define ASN_NGAP_ProcedureCode_id_UEContextRelease ((ASN_NGAP_ProcedureCode_t)41) +#define ASN_NGAP_ProcedureCode_id_UEContextReleaseRequest ((ASN_NGAP_ProcedureCode_t)42) +#define ASN_NGAP_ProcedureCode_id_UERadioCapabilityCheck ((ASN_NGAP_ProcedureCode_t)43) +#define ASN_NGAP_ProcedureCode_id_UERadioCapabilityInfoIndication ((ASN_NGAP_ProcedureCode_t)44) +#define ASN_NGAP_ProcedureCode_id_UETNLABindingRelease ((ASN_NGAP_ProcedureCode_t)45) +#define ASN_NGAP_ProcedureCode_id_UplinkNASTransport ((ASN_NGAP_ProcedureCode_t)46) +#define ASN_NGAP_ProcedureCode_id_UplinkNonUEAssociatedNRPPaTransport ((ASN_NGAP_ProcedureCode_t)47) +#define ASN_NGAP_ProcedureCode_id_UplinkRANConfigurationTransfer ((ASN_NGAP_ProcedureCode_t)48) +#define ASN_NGAP_ProcedureCode_id_UplinkRANStatusTransfer ((ASN_NGAP_ProcedureCode_t)49) +#define ASN_NGAP_ProcedureCode_id_UplinkUEAssociatedNRPPaTransport ((ASN_NGAP_ProcedureCode_t)50) +#define ASN_NGAP_ProcedureCode_id_WriteReplaceWarning ((ASN_NGAP_ProcedureCode_t)51) +#define ASN_NGAP_ProcedureCode_id_SecondaryRATDataUsageReport ((ASN_NGAP_ProcedureCode_t)52) +#define ASN_NGAP_ProcedureCode_id_UplinkRIMInformationTransfer ((ASN_NGAP_ProcedureCode_t)53) +#define ASN_NGAP_ProcedureCode_id_DownlinkRIMInformationTransfer ((ASN_NGAP_ProcedureCode_t)54) +#define ASN_NGAP_ProcedureCode_id_RetrieveUEInformation ((ASN_NGAP_ProcedureCode_t)55) +#define ASN_NGAP_ProcedureCode_id_UEInformationTransfer ((ASN_NGAP_ProcedureCode_t)56) +#define ASN_NGAP_ProcedureCode_id_RANCPRelocationIndication ((ASN_NGAP_ProcedureCode_t)57) +#define ASN_NGAP_ProcedureCode_id_UEContextResume ((ASN_NGAP_ProcedureCode_t)58) +#define ASN_NGAP_ProcedureCode_id_UEContextSuspend ((ASN_NGAP_ProcedureCode_t)59) +#define ASN_NGAP_ProcedureCode_id_UERadioCapabilityIDMapping ((ASN_NGAP_ProcedureCode_t)60) +#define ASN_NGAP_ProcedureCode_id_HandoverSuccess ((ASN_NGAP_ProcedureCode_t)61) +#define ASN_NGAP_ProcedureCode_id_UplinkRANEarlyStatusTransfer ((ASN_NGAP_ProcedureCode_t)62) +#define ASN_NGAP_ProcedureCode_id_DownlinkRANEarlyStatusTransfer ((ASN_NGAP_ProcedureCode_t)63) +#define ASN_NGAP_ProcedureCode_id_AMFCPRelocationIndication ((ASN_NGAP_ProcedureCode_t)64) +#define ASN_NGAP_ProcedureCode_id_ConnectionEstablishmentIndication ((ASN_NGAP_ProcedureCode_t)65) +#define ASN_NGAP_ProcedureCode_id_BroadcastSessionModification ((ASN_NGAP_ProcedureCode_t)66) +#define ASN_NGAP_ProcedureCode_id_BroadcastSessionRelease ((ASN_NGAP_ProcedureCode_t)67) +#define ASN_NGAP_ProcedureCode_id_BroadcastSessionSetup ((ASN_NGAP_ProcedureCode_t)68) +#define ASN_NGAP_ProcedureCode_id_DistributionSetup ((ASN_NGAP_ProcedureCode_t)69) +#define ASN_NGAP_ProcedureCode_id_DistributionRelease ((ASN_NGAP_ProcedureCode_t)70) +#define ASN_NGAP_ProcedureCode_id_MulticastSessionActivation ((ASN_NGAP_ProcedureCode_t)71) +#define ASN_NGAP_ProcedureCode_id_MulticastSessionDeactivation ((ASN_NGAP_ProcedureCode_t)72) +#define ASN_NGAP_ProcedureCode_id_MulticastSessionUpdate ((ASN_NGAP_ProcedureCode_t)73) +#define ASN_NGAP_ProcedureCode_id_MulticastGroupPaging ((ASN_NGAP_ProcedureCode_t)74) +#define ASN_NGAP_ProcedureCode_id_BroadcastSessionReleaseRequired ((ASN_NGAP_ProcedureCode_t)75) + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProcedureCode_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.c b/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.c new file mode 100644 index 0000000..bbfb6eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProcedureStageChoice.h" + +#include "ASN_NGAP_FirstDLCount.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ProcedureStageChoice_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_ASN_NGAP_ProcedureStageChoice_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ProcedureStageChoice, choice.first_dl_count), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FirstDLCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "first-dl-count" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ProcedureStageChoice, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ProcedureStageChoice_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* first-dl-count */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ProcedureStageChoice_specs_1 = { + sizeof(struct ASN_NGAP_ProcedureStageChoice), + offsetof(struct ASN_NGAP_ProcedureStageChoice, _asn_ctx), + offsetof(struct ASN_NGAP_ProcedureStageChoice, present), + sizeof(((struct ASN_NGAP_ProcedureStageChoice *)0)->present), + asn_MAP_ASN_NGAP_ProcedureStageChoice_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureStageChoice = { + "ProcedureStageChoice", + "ProcedureStageChoice", + &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_ASN_NGAP_ProcedureStageChoice_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ProcedureStageChoice_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_ProcedureStageChoice_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.h b/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.h new file mode 100644 index 0000000..f3335fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProcedureStageChoice.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProcedureStageChoice_H_ +#define _ASN_NGAP_ProcedureStageChoice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ProcedureStageChoice_PR { + ASN_NGAP_ProcedureStageChoice_PR_NOTHING, /* No components present */ + ASN_NGAP_ProcedureStageChoice_PR_first_dl_count, + ASN_NGAP_ProcedureStageChoice_PR_choice_Extensions +} ASN_NGAP_ProcedureStageChoice_PR; + +/* Forward declarations */ +struct ASN_NGAP_FirstDLCount; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ProcedureStageChoice */ +typedef struct ASN_NGAP_ProcedureStageChoice { + ASN_NGAP_ProcedureStageChoice_PR present; + union ASN_NGAP_ProcedureStageChoice_u { + struct ASN_NGAP_FirstDLCount *first_dl_count; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProcedureStageChoice_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureStageChoice; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ProcedureStageChoice_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProcedureStageChoice_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProcedureStageChoice_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProcedureStageChoice_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.c b/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.c new file mode 100644 index 0000000..3c1ef41 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.c @@ -0,0 +1,15050 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolExtensionContainer.h" + +#include "ASN_NGAP_ProtocolExtensionField.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P0_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_ASN_NGAP_ProtocolExtensionContainer_174P1_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_ASN_NGAP_ProtocolExtensionContainer_174P2_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_ASN_NGAP_ProtocolExtensionContainer_174P3_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_ASN_NGAP_ProtocolExtensionContainer_174P4_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_ASN_NGAP_ProtocolExtensionContainer_174P5_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_ASN_NGAP_ProtocolExtensionContainer_174P6_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_ASN_NGAP_ProtocolExtensionContainer_174P7_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_ASN_NGAP_ProtocolExtensionContainer_174P8_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_ASN_NGAP_ProtocolExtensionContainer_174P9_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_ASN_NGAP_ProtocolExtensionContainer_174P10_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_ASN_NGAP_ProtocolExtensionContainer_174P11_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_ASN_NGAP_ProtocolExtensionContainer_174P12_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_ASN_NGAP_ProtocolExtensionContainer_174P13_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_ASN_NGAP_ProtocolExtensionContainer_174P14_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_ASN_NGAP_ProtocolExtensionContainer_174P15_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_ASN_NGAP_ProtocolExtensionContainer_174P16_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_ASN_NGAP_ProtocolExtensionContainer_174P17_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_ASN_NGAP_ProtocolExtensionContainer_174P18_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_ASN_NGAP_ProtocolExtensionContainer_174P19_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_ASN_NGAP_ProtocolExtensionContainer_174P20_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_ASN_NGAP_ProtocolExtensionContainer_174P21_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_ASN_NGAP_ProtocolExtensionContainer_174P22_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_ASN_NGAP_ProtocolExtensionContainer_174P23_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_ASN_NGAP_ProtocolExtensionContainer_174P24_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_ASN_NGAP_ProtocolExtensionContainer_174P25_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_ASN_NGAP_ProtocolExtensionContainer_174P26_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_ASN_NGAP_ProtocolExtensionContainer_174P27_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_ASN_NGAP_ProtocolExtensionContainer_174P28_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_ASN_NGAP_ProtocolExtensionContainer_174P29_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_ASN_NGAP_ProtocolExtensionContainer_174P30_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_ASN_NGAP_ProtocolExtensionContainer_174P31_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_ASN_NGAP_ProtocolExtensionContainer_174P32_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_ASN_NGAP_ProtocolExtensionContainer_174P33_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_ASN_NGAP_ProtocolExtensionContainer_174P34_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_ASN_NGAP_ProtocolExtensionContainer_174P35_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_ASN_NGAP_ProtocolExtensionContainer_174P36_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_ASN_NGAP_ProtocolExtensionContainer_174P37_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_ASN_NGAP_ProtocolExtensionContainer_174P38_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_ASN_NGAP_ProtocolExtensionContainer_174P39_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_ASN_NGAP_ProtocolExtensionContainer_174P40_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_ASN_NGAP_ProtocolExtensionContainer_174P41_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_ASN_NGAP_ProtocolExtensionContainer_174P42_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_ASN_NGAP_ProtocolExtensionContainer_174P43_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_ASN_NGAP_ProtocolExtensionContainer_174P44_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_ASN_NGAP_ProtocolExtensionContainer_174P45_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_ASN_NGAP_ProtocolExtensionContainer_174P46_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_ASN_NGAP_ProtocolExtensionContainer_174P47_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_ASN_NGAP_ProtocolExtensionContainer_174P48_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_ASN_NGAP_ProtocolExtensionContainer_174P49_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_ASN_NGAP_ProtocolExtensionContainer_174P50_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_ASN_NGAP_ProtocolExtensionContainer_174P51_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_ASN_NGAP_ProtocolExtensionContainer_174P52_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_ASN_NGAP_ProtocolExtensionContainer_174P53_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_ASN_NGAP_ProtocolExtensionContainer_174P54_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_ASN_NGAP_ProtocolExtensionContainer_174P55_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_ASN_NGAP_ProtocolExtensionContainer_174P56_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_ASN_NGAP_ProtocolExtensionContainer_174P57_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_ASN_NGAP_ProtocolExtensionContainer_174P58_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_ASN_NGAP_ProtocolExtensionContainer_174P59_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_ASN_NGAP_ProtocolExtensionContainer_174P60_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_ASN_NGAP_ProtocolExtensionContainer_174P61_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_ASN_NGAP_ProtocolExtensionContainer_174P62_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_ASN_NGAP_ProtocolExtensionContainer_174P63_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_ASN_NGAP_ProtocolExtensionContainer_174P64_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_ASN_NGAP_ProtocolExtensionContainer_174P65_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_ASN_NGAP_ProtocolExtensionContainer_174P66_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_ASN_NGAP_ProtocolExtensionContainer_174P67_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_ASN_NGAP_ProtocolExtensionContainer_174P68_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_ASN_NGAP_ProtocolExtensionContainer_174P69_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_ASN_NGAP_ProtocolExtensionContainer_174P70_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_ASN_NGAP_ProtocolExtensionContainer_174P71_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_ASN_NGAP_ProtocolExtensionContainer_174P72_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_ASN_NGAP_ProtocolExtensionContainer_174P73_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_ASN_NGAP_ProtocolExtensionContainer_174P74_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_ASN_NGAP_ProtocolExtensionContainer_174P75_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_ASN_NGAP_ProtocolExtensionContainer_174P76_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_ASN_NGAP_ProtocolExtensionContainer_174P77_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_ASN_NGAP_ProtocolExtensionContainer_174P78_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_ASN_NGAP_ProtocolExtensionContainer_174P79_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_ASN_NGAP_ProtocolExtensionContainer_174P80_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_ASN_NGAP_ProtocolExtensionContainer_174P81_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_ASN_NGAP_ProtocolExtensionContainer_174P82_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_ASN_NGAP_ProtocolExtensionContainer_174P83_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_ASN_NGAP_ProtocolExtensionContainer_174P84_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_ASN_NGAP_ProtocolExtensionContainer_174P85_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_ASN_NGAP_ProtocolExtensionContainer_174P86_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_ASN_NGAP_ProtocolExtensionContainer_174P87_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_ASN_NGAP_ProtocolExtensionContainer_174P88_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_ASN_NGAP_ProtocolExtensionContainer_174P89_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_ASN_NGAP_ProtocolExtensionContainer_174P90_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_ASN_NGAP_ProtocolExtensionContainer_174P91_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_ASN_NGAP_ProtocolExtensionContainer_174P92_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_ASN_NGAP_ProtocolExtensionContainer_174P93_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_ASN_NGAP_ProtocolExtensionContainer_174P94_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_ASN_NGAP_ProtocolExtensionContainer_174P95_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_ASN_NGAP_ProtocolExtensionContainer_174P96_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_ASN_NGAP_ProtocolExtensionContainer_174P97_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_ASN_NGAP_ProtocolExtensionContainer_174P98_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_ASN_NGAP_ProtocolExtensionContainer_174P99_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_ASN_NGAP_ProtocolExtensionContainer_174P100_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_ASN_NGAP_ProtocolExtensionContainer_174P101_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_ASN_NGAP_ProtocolExtensionContainer_174P102_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_ASN_NGAP_ProtocolExtensionContainer_174P103_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_ASN_NGAP_ProtocolExtensionContainer_174P104_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_ASN_NGAP_ProtocolExtensionContainer_174P105_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_ASN_NGAP_ProtocolExtensionContainer_174P106_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_ASN_NGAP_ProtocolExtensionContainer_174P107_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_ASN_NGAP_ProtocolExtensionContainer_174P108_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_ASN_NGAP_ProtocolExtensionContainer_174P109_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_ASN_NGAP_ProtocolExtensionContainer_174P110_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_ASN_NGAP_ProtocolExtensionContainer_174P111_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_ASN_NGAP_ProtocolExtensionContainer_174P112_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_ASN_NGAP_ProtocolExtensionContainer_174P113_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_ASN_NGAP_ProtocolExtensionContainer_174P114_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_ASN_NGAP_ProtocolExtensionContainer_174P115_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_ASN_NGAP_ProtocolExtensionContainer_174P116_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_ASN_NGAP_ProtocolExtensionContainer_174P117_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_ASN_NGAP_ProtocolExtensionContainer_174P118_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_ASN_NGAP_ProtocolExtensionContainer_174P119_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_ASN_NGAP_ProtocolExtensionContainer_174P120_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_ASN_NGAP_ProtocolExtensionContainer_174P121_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_ASN_NGAP_ProtocolExtensionContainer_174P122_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_ASN_NGAP_ProtocolExtensionContainer_174P123_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_ASN_NGAP_ProtocolExtensionContainer_174P124_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_ASN_NGAP_ProtocolExtensionContainer_174P125_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_ASN_NGAP_ProtocolExtensionContainer_174P126_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_ASN_NGAP_ProtocolExtensionContainer_174P127_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_ASN_NGAP_ProtocolExtensionContainer_174P128_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_ASN_NGAP_ProtocolExtensionContainer_174P129_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_ASN_NGAP_ProtocolExtensionContainer_174P130_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_ASN_NGAP_ProtocolExtensionContainer_174P131_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_ASN_NGAP_ProtocolExtensionContainer_174P132_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_ASN_NGAP_ProtocolExtensionContainer_174P133_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_ASN_NGAP_ProtocolExtensionContainer_174P134_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_ASN_NGAP_ProtocolExtensionContainer_174P135_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_ASN_NGAP_ProtocolExtensionContainer_174P136_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_ASN_NGAP_ProtocolExtensionContainer_174P137_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_ASN_NGAP_ProtocolExtensionContainer_174P138_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_ASN_NGAP_ProtocolExtensionContainer_174P139_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_ASN_NGAP_ProtocolExtensionContainer_174P140_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_ASN_NGAP_ProtocolExtensionContainer_174P141_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_ASN_NGAP_ProtocolExtensionContainer_174P142_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_ASN_NGAP_ProtocolExtensionContainer_174P143_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_ASN_NGAP_ProtocolExtensionContainer_174P144_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_ASN_NGAP_ProtocolExtensionContainer_174P145_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_ASN_NGAP_ProtocolExtensionContainer_174P146_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_ASN_NGAP_ProtocolExtensionContainer_174P147_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_ASN_NGAP_ProtocolExtensionContainer_174P148_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_ASN_NGAP_ProtocolExtensionContainer_174P149_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_ASN_NGAP_ProtocolExtensionContainer_174P150_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_ASN_NGAP_ProtocolExtensionContainer_174P151_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_ASN_NGAP_ProtocolExtensionContainer_174P152_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_ASN_NGAP_ProtocolExtensionContainer_174P153_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_ASN_NGAP_ProtocolExtensionContainer_174P154_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_ASN_NGAP_ProtocolExtensionContainer_174P155_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_ASN_NGAP_ProtocolExtensionContainer_174P156_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_ASN_NGAP_ProtocolExtensionContainer_174P157_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_ASN_NGAP_ProtocolExtensionContainer_174P158_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_ASN_NGAP_ProtocolExtensionContainer_174P159_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_ASN_NGAP_ProtocolExtensionContainer_174P160_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_ASN_NGAP_ProtocolExtensionContainer_174P161_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_ASN_NGAP_ProtocolExtensionContainer_174P162_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_ASN_NGAP_ProtocolExtensionContainer_174P163_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_ASN_NGAP_ProtocolExtensionContainer_174P164_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_ASN_NGAP_ProtocolExtensionContainer_174P165_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_ASN_NGAP_ProtocolExtensionContainer_174P166_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_ASN_NGAP_ProtocolExtensionContainer_174P167_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_ASN_NGAP_ProtocolExtensionContainer_174P168_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_ASN_NGAP_ProtocolExtensionContainer_174P169_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_ASN_NGAP_ProtocolExtensionContainer_174P170_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_ASN_NGAP_ProtocolExtensionContainer_174P171_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_ASN_NGAP_ProtocolExtensionContainer_174P172_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_ASN_NGAP_ProtocolExtensionContainer_174P173_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_ASN_NGAP_ProtocolExtensionContainer_174P174_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_ASN_NGAP_ProtocolExtensionContainer_174P175_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_ASN_NGAP_ProtocolExtensionContainer_174P176_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_ASN_NGAP_ProtocolExtensionContainer_174P177_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_ASN_NGAP_ProtocolExtensionContainer_174P178_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_ASN_NGAP_ProtocolExtensionContainer_174P179_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_ASN_NGAP_ProtocolExtensionContainer_174P180_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_ASN_NGAP_ProtocolExtensionContainer_174P181_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_ASN_NGAP_ProtocolExtensionContainer_174P182_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_ASN_NGAP_ProtocolExtensionContainer_174P183_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_ASN_NGAP_ProtocolExtensionContainer_174P184_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_ASN_NGAP_ProtocolExtensionContainer_174P185_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_ASN_NGAP_ProtocolExtensionContainer_174P186_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_ASN_NGAP_ProtocolExtensionContainer_174P187_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_ASN_NGAP_ProtocolExtensionContainer_174P188_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_ASN_NGAP_ProtocolExtensionContainer_174P189_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_ASN_NGAP_ProtocolExtensionContainer_174P190_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_ASN_NGAP_ProtocolExtensionContainer_174P191_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_ASN_NGAP_ProtocolExtensionContainer_174P192_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_ASN_NGAP_ProtocolExtensionContainer_174P193_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_ASN_NGAP_ProtocolExtensionContainer_174P194_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_ASN_NGAP_ProtocolExtensionContainer_174P195_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_ASN_NGAP_ProtocolExtensionContainer_174P196_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_ASN_NGAP_ProtocolExtensionContainer_174P197_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_ASN_NGAP_ProtocolExtensionContainer_174P198_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_ASN_NGAP_ProtocolExtensionContainer_174P199_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_ASN_NGAP_ProtocolExtensionContainer_174P200_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_ASN_NGAP_ProtocolExtensionContainer_174P201_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_ASN_NGAP_ProtocolExtensionContainer_174P202_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_ASN_NGAP_ProtocolExtensionContainer_174P203_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_ASN_NGAP_ProtocolExtensionContainer_174P204_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_ASN_NGAP_ProtocolExtensionContainer_174P205_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_ASN_NGAP_ProtocolExtensionContainer_174P206_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_ASN_NGAP_ProtocolExtensionContainer_174P207_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_ASN_NGAP_ProtocolExtensionContainer_174P208_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_ASN_NGAP_ProtocolExtensionContainer_174P209_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_ASN_NGAP_ProtocolExtensionContainer_174P210_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_ASN_NGAP_ProtocolExtensionContainer_174P211_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_ASN_NGAP_ProtocolExtensionContainer_174P212_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_ASN_NGAP_ProtocolExtensionContainer_174P213_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_ASN_NGAP_ProtocolExtensionContainer_174P214_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_ASN_NGAP_ProtocolExtensionContainer_174P215_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_ASN_NGAP_ProtocolExtensionContainer_174P216_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_ASN_NGAP_ProtocolExtensionContainer_174P217_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_ASN_NGAP_ProtocolExtensionContainer_174P218_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_ASN_NGAP_ProtocolExtensionContainer_174P219_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_ASN_NGAP_ProtocolExtensionContainer_174P220_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_ASN_NGAP_ProtocolExtensionContainer_174P221_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_ASN_NGAP_ProtocolExtensionContainer_174P222_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_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P223_constr_447 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_ASN_NGAP_ProtocolExtensionContainer_174P224_constr_449 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_ASN_NGAP_ProtocolExtensionContainer_174P225_constr_451 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_ASN_NGAP_ProtocolExtensionContainer_174P226_constr_453 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_ASN_NGAP_ProtocolExtensionContainer_174P227_constr_455 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_ASN_NGAP_ProtocolExtensionContainer_174P228_constr_457 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_ASN_NGAP_ProtocolExtensionContainer_174P229_constr_459 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_ASN_NGAP_ProtocolExtensionContainer_174P230_constr_461 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_ASN_NGAP_ProtocolExtensionContainer_174P231_constr_463 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_ASN_NGAP_ProtocolExtensionContainer_174P232_constr_465 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_ASN_NGAP_ProtocolExtensionContainer_174P233_constr_467 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_ASN_NGAP_ProtocolExtensionContainer_174P234_constr_469 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_ASN_NGAP_ProtocolExtensionContainer_174P235_constr_471 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_ASN_NGAP_ProtocolExtensionContainer_174P236_constr_473 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_ASN_NGAP_ProtocolExtensionContainer_174P237_constr_475 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_ASN_NGAP_ProtocolExtensionContainer_174P238_constr_477 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_ASN_NGAP_ProtocolExtensionContainer_174P239_constr_479 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_ASN_NGAP_ProtocolExtensionContainer_174P240_constr_481 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_ASN_NGAP_ProtocolExtensionContainer_174P241_constr_483 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_ASN_NGAP_ProtocolExtensionContainer_174P242_constr_485 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_ASN_NGAP_ProtocolExtensionContainer_174P243_constr_487 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_ASN_NGAP_ProtocolExtensionContainer_174P244_constr_489 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_ASN_NGAP_ProtocolExtensionContainer_174P245_constr_491 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_ASN_NGAP_ProtocolExtensionContainer_174P246_constr_493 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_ASN_NGAP_ProtocolExtensionContainer_174P247_constr_495 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_ASN_NGAP_ProtocolExtensionContainer_174P248_constr_497 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_ASN_NGAP_ProtocolExtensionContainer_174P249_constr_499 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_ASN_NGAP_ProtocolExtensionContainer_174P250_constr_501 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_ASN_NGAP_ProtocolExtensionContainer_174P251_constr_503 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_ASN_NGAP_ProtocolExtensionContainer_174P252_constr_505 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_ASN_NGAP_ProtocolExtensionContainer_174P253_constr_507 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_ASN_NGAP_ProtocolExtensionContainer_174P254_constr_509 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_ASN_NGAP_ProtocolExtensionContainer_174P255_constr_511 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_ASN_NGAP_ProtocolExtensionContainer_174P256_constr_513 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_ASN_NGAP_ProtocolExtensionContainer_174P257_constr_515 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_ASN_NGAP_ProtocolExtensionContainer_174P258_constr_517 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_ASN_NGAP_ProtocolExtensionContainer_174P259_constr_519 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_ASN_NGAP_ProtocolExtensionContainer_174P260_constr_521 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_ASN_NGAP_ProtocolExtensionContainer_174P261_constr_523 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_ASN_NGAP_ProtocolExtensionContainer_174P262_constr_525 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_ASN_NGAP_ProtocolExtensionContainer_174P263_constr_527 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_ASN_NGAP_ProtocolExtensionContainer_174P264_constr_529 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_ASN_NGAP_ProtocolExtensionContainer_174P265_constr_531 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_ASN_NGAP_ProtocolExtensionContainer_174P266_constr_533 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_ASN_NGAP_ProtocolExtensionContainer_174P267_constr_535 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_ASN_NGAP_ProtocolExtensionContainer_174P268_constr_537 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_ASN_NGAP_ProtocolExtensionContainer_174P269_constr_539 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_ASN_NGAP_ProtocolExtensionContainer_174P270_constr_541 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_ASN_NGAP_ProtocolExtensionContainer_174P271_constr_543 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_ASN_NGAP_ProtocolExtensionContainer_174P272_constr_545 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_ASN_NGAP_ProtocolExtensionContainer_174P273_constr_547 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_ASN_NGAP_ProtocolExtensionContainer_174P274_constr_549 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_ASN_NGAP_ProtocolExtensionContainer_174P275_constr_551 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_ASN_NGAP_ProtocolExtensionContainer_174P276_constr_553 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_ASN_NGAP_ProtocolExtensionContainer_174P277_constr_555 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_ASN_NGAP_ProtocolExtensionContainer_174P278_constr_557 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_ASN_NGAP_ProtocolExtensionContainer_174P279_constr_559 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_ASN_NGAP_ProtocolExtensionContainer_174P280_constr_561 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_ASN_NGAP_ProtocolExtensionContainer_174P281_constr_563 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_ASN_NGAP_ProtocolExtensionContainer_174P282_constr_565 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_ASN_NGAP_ProtocolExtensionContainer_174P283_constr_567 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_ASN_NGAP_ProtocolExtensionContainer_174P284_constr_569 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_ASN_NGAP_ProtocolExtensionContainer_174P285_constr_571 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_ASN_NGAP_ProtocolExtensionContainer_174P286_constr_573 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_ASN_NGAP_ProtocolExtensionContainer_174P287_constr_575 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_ASN_NGAP_ProtocolExtensionContainer_174P288_constr_577 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_ASN_NGAP_ProtocolExtensionContainer_174P289_constr_579 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_ASN_NGAP_ProtocolExtensionContainer_174P290_constr_581 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_ASN_NGAP_ProtocolExtensionContainer_174P291_constr_583 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_ASN_NGAP_ProtocolExtensionContainer_174P292_constr_585 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_ASN_NGAP_ProtocolExtensionContainer_174P293_constr_587 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_ASN_NGAP_ProtocolExtensionContainer_174P294_constr_589 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_ASN_NGAP_ProtocolExtensionContainer_174P295_constr_591 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_ASN_NGAP_ProtocolExtensionContainer_174P296_constr_593 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_ASN_NGAP_ProtocolExtensionContainer_174P297_constr_595 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_ASN_NGAP_ProtocolExtensionContainer_174P298_constr_597 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_ASN_NGAP_ProtocolExtensionContainer_174P299_constr_599 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_ASN_NGAP_ProtocolExtensionContainer_174P300_constr_601 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_ASN_NGAP_ProtocolExtensionContainer_174P301_constr_603 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_ASN_NGAP_ProtocolExtensionContainer_174P302_constr_605 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_ASN_NGAP_ProtocolExtensionContainer_174P303_constr_607 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_ASN_NGAP_ProtocolExtensionContainer_174P304_constr_609 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_ASN_NGAP_ProtocolExtensionContainer_174P305_constr_611 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_ASN_NGAP_ProtocolExtensionContainer_174P306_constr_613 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_ASN_NGAP_ProtocolExtensionContainer_174P307_constr_615 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_ASN_NGAP_ProtocolExtensionContainer_174P308_constr_617 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_ASN_NGAP_ProtocolExtensionContainer_174P309_constr_619 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_ASN_NGAP_ProtocolExtensionContainer_174P310_constr_621 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_ASN_NGAP_ProtocolExtensionContainer_174P311_constr_623 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_ASN_NGAP_ProtocolExtensionContainer_174P312_constr_625 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_ASN_NGAP_ProtocolExtensionContainer_174P313_constr_627 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_ASN_NGAP_ProtocolExtensionContainer_174P314_constr_629 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_ASN_NGAP_ProtocolExtensionContainer_174P315_constr_631 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_ASN_NGAP_ProtocolExtensionContainer_174P316_constr_633 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_ASN_NGAP_ProtocolExtensionContainer_174P317_constr_635 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_ASN_NGAP_ProtocolExtensionContainer_174P318_constr_637 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_ASN_NGAP_ProtocolExtensionContainer_174P319_constr_639 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_ASN_NGAP_ProtocolExtensionContainer_174P320_constr_641 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_ASN_NGAP_ProtocolExtensionContainer_174P321_constr_643 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_ASN_NGAP_ProtocolExtensionContainer_174P322_constr_645 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_ASN_NGAP_ProtocolExtensionContainer_174P323_constr_647 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_ASN_NGAP_ProtocolExtensionContainer_174P324_constr_649 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_ASN_NGAP_ProtocolExtensionContainer_174P325_constr_651 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_ASN_NGAP_ProtocolExtensionContainer_174P326_constr_653 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_ASN_NGAP_ProtocolExtensionContainer_174P327_constr_655 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_ASN_NGAP_ProtocolExtensionContainer_174P328_constr_657 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_ASN_NGAP_ProtocolExtensionContainer_174P329_constr_659 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_ASN_NGAP_ProtocolExtensionContainer_174P330_constr_661 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_ASN_NGAP_ProtocolExtensionContainer_174P331_constr_663 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_ASN_NGAP_ProtocolExtensionContainer_174P332_constr_665 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_ASN_NGAP_ProtocolExtensionContainer_174P333_constr_667 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_ASN_NGAP_ProtocolExtensionContainer_174P334_constr_669 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_ASN_NGAP_ProtocolExtensionContainer_174P335_constr_671 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_ASN_NGAP_ProtocolExtensionContainer_174P336_constr_673 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_ASN_NGAP_ProtocolExtensionContainer_174P337_constr_675 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_ASN_NGAP_ProtocolExtensionContainer_174P338_constr_677 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_ASN_NGAP_ProtocolExtensionContainer_174P339_constr_679 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_ASN_NGAP_ProtocolExtensionContainer_174P340_constr_681 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_ASN_NGAP_ProtocolExtensionContainer_174P341_constr_683 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_ASN_NGAP_ProtocolExtensionContainer_174P342_constr_685 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_ASN_NGAP_ProtocolExtensionContainer_174P343_constr_687 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_ASN_NGAP_ProtocolExtensionContainer_174P344_constr_689 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_ASN_NGAP_ProtocolExtensionContainer_174P345_constr_691 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_ASN_NGAP_ProtocolExtensionContainer_174P346_constr_693 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_ASN_NGAP_ProtocolExtensionContainer_174P347_constr_695 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_ASN_NGAP_ProtocolExtensionContainer_174P348_constr_697 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_ASN_NGAP_ProtocolExtensionContainer_174P349_constr_699 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_ASN_NGAP_ProtocolExtensionContainer_174P350_constr_701 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_ASN_NGAP_ProtocolExtensionContainer_174P351_constr_703 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_ASN_NGAP_ProtocolExtensionContainer_174P352_constr_705 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_ASN_NGAP_ProtocolExtensionContainer_174P353_constr_707 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_ASN_NGAP_ProtocolExtensionContainer_174P354_constr_709 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_ASN_NGAP_ProtocolExtensionContainer_174P355_constr_711 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_ASN_NGAP_ProtocolExtensionContainer_174P356_constr_713 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_ASN_NGAP_ProtocolExtensionContainer_174P357_constr_715 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_ASN_NGAP_ProtocolExtensionContainer_174P358_constr_717 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_ASN_NGAP_ProtocolExtensionContainer_174P359_constr_719 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_ASN_NGAP_ProtocolExtensionContainer_174P360_constr_721 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_ASN_NGAP_ProtocolExtensionContainer_174P361_constr_723 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_ASN_NGAP_ProtocolExtensionContainer_174P362_constr_725 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_ASN_NGAP_ProtocolExtensionContainer_174P363_constr_727 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_ASN_NGAP_ProtocolExtensionContainer_174P364_constr_729 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_ASN_NGAP_ProtocolExtensionContainer_174P365_constr_731 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_ASN_NGAP_ProtocolExtensionContainer_174P366_constr_733 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_ASN_NGAP_ProtocolExtensionContainer_174P367_constr_735 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_ASN_NGAP_ProtocolExtensionContainer_174P368_constr_737 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_ASN_NGAP_ProtocolExtensionContainer_174P369_constr_739 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_ASN_NGAP_ProtocolExtensionContainer_174P370_constr_741 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_ASN_NGAP_ProtocolExtensionContainer_174P371_constr_743 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_ASN_NGAP_ProtocolExtensionContainer_174P372_constr_745 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_ASN_NGAP_ProtocolExtensionContainer_174P373_constr_747 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_ASN_NGAP_ProtocolExtensionContainer_174P374_constr_749 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_ASN_NGAP_ProtocolExtensionContainer_174P375_constr_751 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_ASN_NGAP_ProtocolExtensionContainer_174P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P0_specs_1 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P0), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P0_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P1_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P1_specs_3 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P1), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1_tags_3[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P1_3, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P2_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P2_specs_5 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P2), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2_tags_5[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P2_5, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P3_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P3_specs_7 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P3), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3_tags_7[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P3_7, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P4_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P4_specs_9 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P4), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4_tags_9[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P4_9, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P5_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P5_specs_11 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P5), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5_tags_11[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P5_11, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P6_specs_13 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P6), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6_tags_13[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P6_13, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P7_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P7_specs_15 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P7), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7_tags_15[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P7_15, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P8_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P8_specs_17 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P8), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8_tags_17[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P8_17, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P9_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P9_specs_19 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P9), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9_tags_19[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P9_19, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P10_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P10_specs_21 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P10), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10_tags_21[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P10_21, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P11_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P11_specs_23 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P11), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11_tags_23[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P11_23, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P12_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P12_specs_25 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P12), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12_tags_25[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P12_25, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P13_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P13_specs_27 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P13), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13_tags_27[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P13_27, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P14_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P14_specs_29 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P14), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14_tags_29[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P14_29, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P15_specs_31 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P15), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15_tags_31[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P15_31, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P16_specs_33 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P16), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16_tags_33[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P16_33, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P17_specs_35 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P17), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17_tags_35[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P17_35, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P18_specs_37 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P18), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18_tags_37[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P18_37, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P19_specs_39 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P19), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19_tags_39[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P19_39, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P20_specs_41 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P20), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20_tags_41[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P20_41, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P21_43[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P21_specs_43 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P21), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21_tags_43[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P21_43, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P22_45[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P22_specs_45 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P22), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22_tags_45[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P22_45, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P23_47[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P23_specs_47 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P23), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23_tags_47[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P23_47, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P24_49[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P24_specs_49 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P24), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24_tags_49[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P24_49, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P25_51[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P25_specs_51 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P25), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25_tags_51[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P25_51, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P26_53[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P26_specs_53 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P26), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26_tags_53[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P26_53, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P27_55[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P27_specs_55 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P27), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27_tags_55[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P27_55, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P28_57[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P28_specs_57 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P28), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28_tags_57[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P28_57, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P29_59[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P29_specs_59 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P29), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29_tags_59[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P29_59, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P30_61[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P30_specs_61 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P30), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30_tags_61[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P30_61, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P31_63[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P31_specs_63 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P31), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31_tags_63[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P31_63, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P32_65[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P32_specs_65 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P32), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32_tags_65[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P32_65, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P33_67[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P33_specs_67 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P33), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33_tags_67[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P33_67, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P34_69[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P34_specs_69 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P34), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34_tags_69[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P34_69, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P35_71[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P35_specs_71 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P35), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35_tags_71[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P35_71, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P36_73[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P36_specs_73 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P36), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36_tags_73[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P36_73, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P37_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P37_specs_75 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P37), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37_tags_75[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P37_75, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P38_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellType_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P38_specs_77 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P38), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38_tags_77[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P38_77, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P39_79[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P39_specs_79 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P39), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39_tags_79[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P39_79, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P40_81[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P40_specs_81 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P40), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40_tags_81[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P40_81, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P40_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P41_83[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P41_specs_83 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P41), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P41, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41_tags_83[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P41_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P41_83, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P41_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P42_85[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P42_specs_85 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P42), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P42, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42_tags_85[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P42_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P42_85, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P42_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P43_87[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P43_specs_87 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P43), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P43, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43_tags_87[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P43_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P43_87, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P43_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P44_89[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P44_specs_89 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P44), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P44, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44_tags_89[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P44_constr_89, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P44_89, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P44_specs_89 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P45_91[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P45_specs_91 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P45), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P45, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45_tags_91[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P45_constr_91, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P45_91, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P45_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P46_93[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P46_specs_93 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P46), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P46, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46_tags_93[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P46_constr_93, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P46_93, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P46_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P47_95[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P47_specs_95 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P47), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P47, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47_tags_95[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P47_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P47_95, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P47_specs_95 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P48_97[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P48_specs_97 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P48), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P48, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48_tags_97[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P48_constr_97, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P48_97, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P48_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P49_99[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P49_specs_99 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P49), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P49, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49_tags_99[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P49_constr_99, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P49_99, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P49_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P50_101[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P50_specs_101 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P50), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P50, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50_tags_101[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P50_constr_101, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P50_101, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P50_specs_101 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P51_103[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P51_specs_103 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P51), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P51, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51_tags_103[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P51_constr_103, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P51_103, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P51_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P52_105[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P52_specs_105 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P52), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P52, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52_tags_105[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P52_constr_105, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P52_105, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P52_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P53_107[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P53_specs_107 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P53), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P53, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53_tags_107[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P53_constr_107, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P53_107, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P53_specs_107 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P54_109[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P54_specs_109 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P54), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P54, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54_tags_109[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P54_constr_109, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P54_109, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P54_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P55_111[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P55_specs_111 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P55), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P55, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55_tags_111[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P55_constr_111, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P55_111, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P55_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P56_113[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P56_specs_113 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P56), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P56, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56_tags_113[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P56_constr_113, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P56_113, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P56_specs_113 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P57_115[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P57_specs_115 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P57), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P57, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57_tags_115[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P57_constr_115, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P57_115, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P57_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P58_117[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P58_specs_117 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P58), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P58, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58_tags_117[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P58_constr_117, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P58_117, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P58_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P59_119[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P59_specs_119 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P59), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P59, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59_tags_119[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P59_constr_119, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P59_119, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P59_specs_119 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P60_121[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P60_specs_121 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P60), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P60, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60_tags_121[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P60_constr_121, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P60_121, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P60_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P61_123[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P61_specs_123 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P61), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P61, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61_tags_123[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P61_constr_123, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P61_123, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P61_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P62_125[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P62_specs_125 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P62), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P62, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62_tags_125[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P62_constr_125, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P62_125, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P62_specs_125 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P63_127[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P63_specs_127 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P63), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P63, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63_tags_127[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P63_constr_127, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P63_127, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P63_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P64_129[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P64_specs_129 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P64), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P64, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64_tags_129[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P64_constr_129, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P64_129, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P64_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P65_131[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P65_specs_131 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P65), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P65, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65_tags_131[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P65_constr_131, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P65_131, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P65_specs_131 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P66_133[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P66_specs_133 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P66), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P66, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66_tags_133[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P66_constr_133, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P66_133, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P66_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P67_135[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P67_specs_135 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P67), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P67, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67_tags_135[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P67_constr_135, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P67_135, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P67_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P68_137[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P68_specs_137 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P68), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P68, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68_tags_137[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P68_constr_137, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P68_137, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P68_specs_137 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P69_139[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P69_specs_139 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P69), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P69, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69_tags_139[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P69_constr_139, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P69_139, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P69_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P70_141[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P70_specs_141 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P70), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P70, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70_tags_141[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P70_constr_141, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P70_141, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P70_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P71_143[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P71_specs_143 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P71), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P71, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71_tags_143[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P71_constr_143, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P71_143, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P71_specs_143 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P72_145[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P72_specs_145 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P72), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P72, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72_tags_145[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P72_constr_145, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P72_145, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P72_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P73_147[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P73_specs_147 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P73), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P73, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73_tags_147[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P73_constr_147, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P73_147, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P73_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P74_149[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P74_specs_149 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P74), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P74, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74_tags_149[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P74_constr_149, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P74_149, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P74_specs_149 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P75_151[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P75_specs_151 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P75), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P75, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75_tags_151[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P75_constr_151, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P75_151, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P75_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P76_153[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P76_specs_153 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P76), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P76, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76_tags_153[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P76_constr_153, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P76_153, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P76_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P77_155[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P77_specs_155 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P77), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P77, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77_tags_155[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P77_constr_155, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P77_155, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P77_specs_155 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P78_157[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P78_specs_157 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P78), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P78, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78_tags_157[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P78_constr_157, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P78_157, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P78_specs_157 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P79_159[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P79_specs_159 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P79), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P79, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79_tags_159[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P79_constr_159, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P79_159, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P79_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P80_161[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P80_specs_161 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P80), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P80, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80_tags_161[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P80_constr_161, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P80_161, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P80_specs_161 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P81_163[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P81_specs_163 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P81), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P81, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81_tags_163[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P81_constr_163, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P81_163, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P81_specs_163 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P82_165[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P82_specs_165 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P82), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P82, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82_tags_165[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P82_constr_165, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P82_165, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P82_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P83_167[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P83_specs_167 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P83), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P83, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83_tags_167[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P83_constr_167, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P83_167, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P83_specs_167 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P84_169[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P84_specs_169 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P84), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P84, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84_tags_169[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P84_constr_169, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P84_169, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P84_specs_169 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P85_171[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P85_specs_171 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P85), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P85, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85_tags_171[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P85_constr_171, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P85_171, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P85_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P86_173[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P86_specs_173 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P86), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P86, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86_tags_173[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P86_constr_173, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P86_173, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P86_specs_173 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P87_175[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FailureIndication_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P87_specs_175 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P87), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P87, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87_tags_175[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P87_constr_175, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P87_175, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P87_specs_175 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P88_177[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P88_specs_177 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P88), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P88, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88_tags_177[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P88_constr_177, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P88_177, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P88_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P89_179[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P89_specs_179 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P89), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P89, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89_tags_179[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P89_constr_179, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P89_179, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P89_specs_179 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P90_181[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P90_specs_181 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P90), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P90, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90_tags_181[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P90_constr_181, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P90_181, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P90_specs_181 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P91_183[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P91_specs_183 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P91), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P91, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91_tags_183[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P91_constr_183, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P91_183, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P91_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P92_185[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P92_specs_185 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P92), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P92, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92_tags_185[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P92_constr_185, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P92_185, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P92_specs_185 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P93_187[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P93_specs_187 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P93), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P93, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93_tags_187[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P93_constr_187, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P93_187, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P93_specs_187 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P94_189[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P94_specs_189 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P94), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P94, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94_tags_189[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P94_constr_189, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P94_189, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P94_specs_189 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P95_191[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P95_specs_191 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P95), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P95, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95_tags_191[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P95_constr_191, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P95_191, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P95_specs_191 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P96_193[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P96_specs_193 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P96), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P96, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96_tags_193[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P96_constr_193, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P96_193, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P96_specs_193 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P97_195[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P97_specs_195 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P97), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P97, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97_tags_195[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P97_constr_195, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P97_195, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P97_specs_195 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P98_197[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P98_specs_197 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P98), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P98, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98_tags_197[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P98_constr_197, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P98_197, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P98_specs_197 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P99_199[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P99_specs_199 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P99), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P99, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99_tags_199[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P99_constr_199, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P99_199, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P99_specs_199 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P100_201[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P100_specs_201 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P100), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P100, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100_tags_201[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P100_constr_201, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P100_201, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P100_specs_201 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P101_203[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P101_specs_203 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P101), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P101, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101_tags_203[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P101_constr_203, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P101_203, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P101_specs_203 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P102_205[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P102_specs_205 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P102), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P102, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102_tags_205[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P102_constr_205, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P102_205, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P102_specs_205 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P103_207[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P103_specs_207 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P103), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P103, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103_tags_207[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P103_constr_207, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P103_207, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P103_specs_207 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P104_209[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P104_specs_209 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P104), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P104, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104_tags_209[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P104_constr_209, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P104_209, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P104_specs_209 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P105_211[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P105_specs_211 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P105), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P105, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105_tags_211[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P105_constr_211, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P105_211, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P105_specs_211 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P106_213[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P106_specs_213 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P106), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P106, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106_tags_213[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P106_constr_213, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P106_213, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P106_specs_213 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P107_215[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GUAMI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P107_specs_215 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P107), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P107, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107_tags_215[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P107_constr_215, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P107_215, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P107_specs_215 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P108_217[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P108_specs_217 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P108), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P108, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108_tags_217[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P108_constr_217, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P108_217, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P108_specs_217 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P109_219[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P109_specs_219 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P109), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P109, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109_tags_219[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P109_constr_219, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P109_219, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P109_specs_219 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P110_221[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P110_specs_221 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P110), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P110, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110_tags_221[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P110_constr_221, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P110_221, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P110_specs_221 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P111_223[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P111_specs_223 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P111), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P111, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111_tags_223[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P111_constr_223, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P111_223, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P111_specs_223 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P112_225[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P112_specs_225 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P112), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P112, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112_tags_225[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P112_constr_225, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P112_225, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P112_specs_225 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P113_227[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P113_specs_227 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P113), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P113, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113_tags_227[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P113_constr_227, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P113_227, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P113_specs_227 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P114_229[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HOReport_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P114_specs_229 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P114), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P114, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114_tags_229[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P114_constr_229, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P114_229, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P114_specs_229 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P115_231[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P115_specs_231 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P115), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P115, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115_tags_231[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P115_constr_231, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P115_231, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P115_specs_231 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P116_233[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P116_specs_233 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P116), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P116, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116_tags_233[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P116_constr_233, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P116_233, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P116_specs_233 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P117_235[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P117_specs_235 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P117), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P117, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117_tags_235[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P117_constr_235, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P117_235, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P117_specs_235 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P118_237[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P118_specs_237 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P118), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P118, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118_tags_237[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P118_constr_237, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P118_237, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P118_specs_237 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P119_239[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P119_specs_239 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P119), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P119, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119_tags_239[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P119_constr_239, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P119_239, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P119_specs_239 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P120_241[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P120_specs_241 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P120), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P120, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120_tags_241[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P120_constr_241, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P120_241, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P120_specs_241 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P121_243[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P121_specs_243 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P121), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P121, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121_tags_243[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P121_constr_243, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P121_243, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P121_specs_243 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P122_245[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P122_specs_245 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P122), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P122, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122_tags_245[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P122_constr_245, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P122_245, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P122_specs_245 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P123_247[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P123_specs_247 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P123), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P123, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123_tags_247[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P123_constr_247, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P123_247, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P123_specs_247 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P124_249[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P124_specs_249 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P124), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P124, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124_tags_249[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P124_constr_249, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P124_249, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P124_specs_249 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P125_251[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P125_specs_251 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P125), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P125, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125_tags_251[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P125_constr_251, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P125_251, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P125_specs_251 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P126_253[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P126_specs_253 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P126), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P126, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126_tags_253[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P126_constr_253, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P126_253, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P126_specs_253 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P127_255[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P127_specs_255 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P127), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P127, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127_tags_255[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P127_constr_255, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P127_255, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P127_specs_255 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P128_257[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P128_specs_257 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P128), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P128, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128_tags_257[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P128_constr_257, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P128_257, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P128_specs_257 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P129_259[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P129_specs_259 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P129), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P129, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129_tags_259[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P129_constr_259, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P129_259, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P129_specs_259 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P130_261[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P130_specs_261 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P130), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P130, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130_tags_261[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P130_constr_261, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P130_261, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P130_specs_261 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P131_263[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P131_specs_263 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P131), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P131, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131_tags_263[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P131_constr_263, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P131_263, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P131_specs_263 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P132_265[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P132_specs_265 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P132), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P132, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132_tags_265[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P132_constr_265, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P132_265, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P132_specs_265 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P133_267[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P133_specs_267 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P133), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P133, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133_tags_267[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P133_constr_267, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P133_267, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P133_specs_267 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P134_269[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P134_specs_269 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P134), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P134, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134_tags_269[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P134_constr_269, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P134_269, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P134_specs_269 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P135_271[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P135_specs_271 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P135), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P135, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135_tags_271[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P135_constr_271, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P135_271, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P135_specs_271 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P136_273[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P136_specs_273 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P136), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P136, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136_tags_273[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P136_constr_273, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P136_273, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P136_specs_273 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P137_275[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P137_specs_275 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P137), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P137, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137_tags_275[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P137_constr_275, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P137_275, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P137_specs_275 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P138_277[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P138_specs_277 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P138), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P138, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138_tags_277[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P138_constr_277, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P138_277, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P138_specs_277 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P139_279[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P139_specs_279 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P139), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P139, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139_tags_279[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P139_constr_279, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P139_279, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P139_specs_279 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P140_281[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P140_specs_281 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P140), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P140, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140_tags_281[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P140_constr_281, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P140_281, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P140_specs_281 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P141_283[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P141_specs_283 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P141), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P141, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141_tags_283[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P141_constr_283, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P141_283, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P141_specs_283 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P142_285[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P142_specs_285 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P142), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P142, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142_tags_285[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P142_constr_285, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P142_285, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P142_specs_285 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P143_287[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P143_specs_287 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P143), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P143, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143_tags_287[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P143_constr_287, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P143_287, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P143_specs_287 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P144_289[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LAI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P144_specs_289 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P144), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P144, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144_tags_289[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P144_constr_289, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P144_289, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P144_specs_289 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P145_291[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P145_specs_291 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P145), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P145, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145_tags_291[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P145_constr_291, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P145_291, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P145_specs_291 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P146_293[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P146_specs_293 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P146), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P146, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146_tags_293[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P146_constr_293, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P146_293, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P146_specs_293 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P147_295[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P147_specs_295 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P147), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P147, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147_tags_295[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P147_constr_295, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P147_295, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P147_specs_295 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P148_297[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P148_specs_297 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P148), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P148, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148_tags_297[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P148_constr_297, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P148_297, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P148_specs_297 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P149_299[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P149_specs_299 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P149), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P149, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149_tags_299[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P149_constr_299, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P149_299, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P149_specs_299 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P150_301[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P150_specs_301 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P150), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P150, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150_tags_301[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P150_constr_301, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P150_301, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P150_specs_301 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P151_303[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P151_specs_303 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P151), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P151, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151_tags_303[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P151_constr_303, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P151_303, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P151_specs_303 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P152_305[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P152_specs_305 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P152), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P152, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152_tags_305[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P152_constr_305, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P152_305, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P152_specs_305 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P153_307[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P153_specs_307 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P153), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P153, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153_tags_307[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P153_constr_307, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P153_307, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P153_specs_307 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P154_309[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P154_specs_309 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P154), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P154, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154_tags_309[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P154_constr_309, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P154_309, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P154_specs_309 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P155_311[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P155_specs_311 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P155), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P155, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155_tags_311[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P155_constr_311, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P155_311, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P155_specs_311 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P156_313[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P156_specs_313 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P156), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P156, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156_tags_313[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P156_constr_313, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P156_313, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P156_specs_313 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P157_315[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P157_specs_315 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P157), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P157, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157_tags_315[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P157_constr_315, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P157_315, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P157_specs_315 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P158_317[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P158_specs_317 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P158), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P158, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158_tags_317[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P158_constr_317, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P158_317, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P158_specs_317 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P159_319[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P159_specs_319 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P159), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P159, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159_tags_319[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P159_constr_319, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P159_319, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P159_specs_319 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P160_321[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P160_specs_321 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P160), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P160, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160_tags_321[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P160_constr_321, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P160_321, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P160_specs_321 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P161_323[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P161_specs_323 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P161), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P161, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161_tags_323[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P161_constr_323, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P161_323, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P161_specs_323 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P162_325[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P162_specs_325 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P162), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P162, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162_tags_325[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P162_constr_325, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P162_325, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P162_specs_325 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P163_327[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P163_specs_327 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P163), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P163, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163_tags_327[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P163_constr_327, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P163_327, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P163_specs_327 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P164_329[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P164_specs_329 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P164), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P164, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164_tags_329[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P164_constr_329, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P164_329, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P164_specs_329 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P165_331[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P165_specs_331 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P165), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P165, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165_tags_331[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P165_constr_331, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P165_331, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P165_specs_331 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P166_333[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P166_specs_333 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P166), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P166, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166_tags_333[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P166_constr_333, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P166_333, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P166_specs_333 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P167_335[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P167_specs_335 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P167), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P167, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167_tags_335[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P167_constr_335, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P167_335, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P167_specs_335 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P168_337[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P168_specs_337 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P168), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P168, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168_tags_337[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P168_constr_337, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P168_337, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P168_specs_337 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P169_339[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P169_specs_339 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P169), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P169, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169_tags_339[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P169_constr_339, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P169_339, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P169_specs_339 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P170_341[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P170_specs_341 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P170), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P170, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170_tags_341[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P170_constr_341, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P170_341, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P170_specs_341 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P171_343[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P171_specs_343 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P171), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P171, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171_tags_343[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P171_constr_343, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P171_343, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P171_specs_343 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P172_345[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P172_specs_345 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P172), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P172, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172_tags_345[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P172_constr_345, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P172_345, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P172_specs_345 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P173_347[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P173_specs_347 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P173), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P173, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173_tags_347[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P173_constr_347, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P173_347, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P173_specs_347 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P174_349[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P174_specs_349 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P174), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P174, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174_tags_349[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P174_constr_349, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P174_349, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P174_specs_349 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P175_351[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P175_specs_351 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P175), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P175, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175_tags_351[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P175_constr_351, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P175_351, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P175_specs_351 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P176_353[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P176_specs_353 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P176), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P176, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176_tags_353[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P176_constr_353, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P176_353, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P176_specs_353 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P177_355[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P177_specs_355 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P177), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P177, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177_tags_355[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P177_constr_355, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P177_355, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P177_specs_355 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P178_357[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P178_specs_357 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P178), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P178, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178_tags_357[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P178_constr_357, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P178_357, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P178_specs_357 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P179_359[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P179_specs_359 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P179), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P179, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179_tags_359[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P179_constr_359, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P179_359, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P179_specs_359 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P180_361[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P180_specs_361 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P180), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P180, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180_tags_361[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P180_constr_361, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P180_361, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P180_specs_361 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P181_363[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P181_specs_363 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P181), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P181, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181_tags_363[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P181_constr_363, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P181_363, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P181_specs_363 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P182_365[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P182_specs_365 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P182), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P182, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182_tags_365[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P182_constr_365, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P182_365, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P182_specs_365 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P183_367[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M1Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P183_specs_367 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P183), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P183, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183_tags_367[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P183_constr_367, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P183_367, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P183_specs_367 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P184_369[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P184_specs_369 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P184), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P184, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184_tags_369[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P184_constr_369, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P184_369, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P184_specs_369 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P185_371[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P185_specs_371 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P185), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P185, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185_tags_371[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P185_constr_371, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P185_371, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P185_specs_371 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P186_373[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M4Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P186_specs_373 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P186), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P186, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186_tags_373[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P186_constr_373, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P186_373, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P186_specs_373 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P187_375[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M5Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P187_specs_375 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P187), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P187, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187_tags_375[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P187_constr_375, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P187_375, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P187_specs_375 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P188_377[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M6Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P188_specs_377 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P188), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P188, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188_tags_377[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P188_constr_377, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P188_377, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P188_specs_377 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P189_379[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_M7Configuration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P189_specs_379 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P189), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P189, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189_tags_379[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P189_constr_379, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P189_379, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P189_specs_379 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P190_381[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P190_specs_381 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P190), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P190, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190_tags_381[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P190_constr_381, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P190_381, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P190_specs_381 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P191_383[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P191_specs_383 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P191), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P191, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191_tags_383[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P191_constr_383, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P191_383, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P191_specs_383 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P192_385[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P192_specs_385 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P192), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P192, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192_tags_385[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P192_constr_385, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P192_385, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P192_specs_385 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P193_387[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P193_specs_387 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P193), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P193, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193_tags_387[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P193_constr_387, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P193_387, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P193_specs_387 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P194_389[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P194_specs_389 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P194), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P194, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194_tags_389[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P194_constr_389, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P194_389, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P194_specs_389 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P195_391[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P195_specs_391 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P195), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P195, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195_tags_391[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P195_constr_391, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P195_391, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P195_specs_391 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P196_393[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P196_specs_393 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P196), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P196, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196_tags_393[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P196_constr_393, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P196_393, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P196_specs_393 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P197_395[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P197_specs_395 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P197), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P197, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197_tags_395[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P197_constr_395, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P197_395, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P197_specs_395 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P198_397[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P198_specs_397 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P198), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P198, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198_tags_397[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P198_constr_397, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P198_397, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P198_specs_397 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P199_399[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P199_specs_399 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P199), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P199, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199_tags_399[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P199_constr_399, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P199_399, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P199_specs_399 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P200_401[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P200_specs_401 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P200), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P200, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200_tags_401[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P200_constr_401, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P200_401, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P200_specs_401 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P201_403[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P201_specs_403 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P201), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P201, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201_tags_403[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P201_constr_403, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P201_403, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P201_specs_403 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P202_405[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P202_specs_405 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P202), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P202, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202_tags_405[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P202_constr_405, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P202_405, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P202_specs_405 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P203_407[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P203_specs_407 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P203), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P203, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203_tags_407[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P203_constr_407, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P203_407, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P203_specs_407 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P204_409[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P204_specs_409 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P204), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P204, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204_tags_409[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P204_constr_409, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P204_409, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P204_specs_409 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P205_411[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P205_specs_411 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P205), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P205, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205_tags_411[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P205_constr_411, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P205_411, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P205_specs_411 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P206_413[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P206_specs_413 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P206), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P206, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206_tags_413[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P206_constr_413, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P206_413, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P206_specs_413 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P207_415[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P207_specs_415 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P207), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P207, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207_tags_415[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P207_constr_415, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P207_415, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P207_specs_415 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P208_417[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P208_specs_417 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P208), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P208, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208_tags_417[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P208_constr_417, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P208_417, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P208_specs_417 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P209_419[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P209_specs_419 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P209), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P209, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209_tags_419[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P209_constr_419, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P209_419, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P209_specs_419 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P210_421[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P210_specs_421 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P210), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P210, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210_tags_421[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P210_constr_421, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P210_421, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P210_specs_421 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P211_423[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P211_specs_423 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P211), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P211, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211_tags_423[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P211_constr_423, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P211_423, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P211_specs_423 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P212_425[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P212_specs_425 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P212), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P212, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212_tags_425[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P212_constr_425, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P212_425, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P212_specs_425 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P213_427[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P213_specs_427 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P213), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P213, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213_tags_427[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P213_constr_427, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P213_427, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P213_specs_427 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P214_429[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P214_specs_429 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P214), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P214, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214_tags_429[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P214_constr_429, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P214_429, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P214_specs_429 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P215_431[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P215_specs_431 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P215), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P215, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215_tags_431[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P215_constr_431, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P215_431, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P215_specs_431 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P216_433[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P216_specs_433 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P216), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P216, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216_tags_433[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P216_constr_433, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P216_433, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P216_specs_433 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P217_435[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P217_specs_435 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P217), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P217, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217_tags_435[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P217_constr_435, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P217_435, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P217_specs_435 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P218_437[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P218_specs_437 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P218), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P218, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218_tags_437[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P218_constr_437, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P218_437, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P218_specs_437 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P219_439[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P219_specs_439 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P219), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P219, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219_tags_439[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P219_constr_439, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P219_439, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P219_specs_439 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P220_441[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P220_specs_441 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P220), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P220, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220_tags_441[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P220_constr_441, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P220_441, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P220_specs_441 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P221_443[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P221_specs_443 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P221), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P221, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221_tags_443[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P221_constr_443, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P221_443, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P221_specs_443 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P222_445[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P222_specs_445 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P222), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P222, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222_tags_445[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P222_constr_445, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P222_445, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P222_specs_445 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P223_447[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P223_specs_447 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P223), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P223, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223_tags_447[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P223_constr_447, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P223_447, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P223_specs_447 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P224_449[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P224_specs_449 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P224), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P224, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224_tags_449[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P224_constr_449, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P224_449, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P224_specs_449 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P225_451[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P225_specs_451 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P225), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P225, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225_tags_451[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P225_constr_451, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P225_451, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P225_specs_451 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P226_453[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P226_specs_453 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P226), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P226, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226_tags_453[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P226_constr_453, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P226_453, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P226_specs_453 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P227_455[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P227_specs_455 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P227), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P227, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227_tags_455[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P227_constr_455, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P227_455, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P227_specs_455 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P228_457[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P228_specs_457 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P228), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P228, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228_tags_457[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P228_constr_457, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P228_457, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P228_specs_457 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P229_459[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P229_specs_459 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P229), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P229, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229_tags_459[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P229_constr_459, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P229_459, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P229_specs_459 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P230_461[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P230_specs_461 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P230), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P230, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230_tags_461[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P230_constr_461, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P230_461, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P230_specs_461 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P231_463[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P231_specs_463 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P231), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P231, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231_tags_463[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P231_constr_463, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P231_463, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P231_specs_463 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P232_465[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P232_specs_465 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P232), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P232, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232_tags_465[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P232_constr_465, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P232_465, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P232_specs_465 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P233_467[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P233_specs_467 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P233), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P233, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233_tags_467[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P233_constr_467, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P233_467, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P233_specs_467 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P234_469[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P234_specs_469 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P234), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P234, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234_tags_469[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P234_constr_469, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P234_469, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P234_specs_469 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P235_471[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P235_specs_471 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P235), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P235, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235_tags_471[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P235_constr_471, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P235_471, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P235_specs_471 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P236_473[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P236_specs_473 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P236), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P236, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236_tags_473[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P236_constr_473, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P236_473, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P236_specs_473 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P237_475[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P237_specs_475 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P237), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P237, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237_tags_475[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P237_constr_475, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P237_475, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P237_specs_475 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P238_477[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P238_specs_477 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P238), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P238, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238_tags_477[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P238_constr_477, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P238_477, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P238_specs_477 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P239_479[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P239_specs_479 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P239), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P239, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239_tags_479[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P239_constr_479, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P239_479, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P239_specs_479 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P240_481[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P240_specs_481 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P240), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P240, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240_tags_481[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P240_constr_481, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P240_481, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P240_specs_481 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P241_483[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P241_specs_483 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P241), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P241, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241_tags_483[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P241_constr_483, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P241_483, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P241_specs_483 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P242_485[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P242_specs_485 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P242), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P242, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242_tags_485[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P242_constr_485, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P242_485, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P242_specs_485 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P243_487[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P243_specs_487 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P243), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P243, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243_tags_487[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P243_constr_487, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P243_487, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P243_specs_487 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P244_489[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P244_specs_489 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P244), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P244, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244_tags_489[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P244_constr_489, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P244_489, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P244_specs_489 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P245_491[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P245_specs_491 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P245), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P245, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245_tags_491[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P245_constr_491, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P245_491, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P245_specs_491 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P246_493[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P246_specs_493 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P246), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P246, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246_tags_493[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P246_constr_493, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P246_493, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P246_specs_493 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P247_495[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P247_specs_495 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P247), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P247, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247_tags_495[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P247_constr_495, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P247_495, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P247_specs_495 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P248_497[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P248_specs_497 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P248), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P248, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248_tags_497[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P248_constr_497, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P248_497, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P248_specs_497 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P249_499[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P249_specs_499 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P249), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P249, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249_tags_499[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P249_constr_499, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P249_499, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P249_specs_499 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P250_501[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P250_specs_501 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P250), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P250, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250_tags_501[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P250_constr_501, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P250_501, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P250_specs_501 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P251_503[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P251_specs_503 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P251), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P251, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251_tags_503[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P251_constr_503, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P251_503, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P251_specs_503 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P252_505[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P252_specs_505 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P252), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P252, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252_tags_505[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P252_constr_505, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P252_505, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P252_specs_505 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P253_507[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P253_specs_507 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P253), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P253, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253_tags_507[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P253_constr_507, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P253_507, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P253_specs_507 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P254_509[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P254_specs_509 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P254), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P254, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254_tags_509[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P254_constr_509, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P254_509, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P254_specs_509 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P255_511[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P255_specs_511 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P255), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P255, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255_tags_511[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P255_constr_511, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P255_511, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P255_specs_511 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P256_513[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P256_specs_513 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P256), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P256, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256_tags_513[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P256_constr_513, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P256_513, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P256_specs_513 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P257_515[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P257_specs_515 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P257), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P257, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257_tags_515[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P257_constr_515, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P257_515, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P257_specs_515 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P258_517[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P258_specs_517 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P258), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P258, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258_tags_517[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P258_constr_517, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P258_517, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P258_specs_517 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P259_519[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P259_specs_519 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P259), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P259, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259_tags_519[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P259_constr_519, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P259_519, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P259_specs_519 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P260_521[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P260_specs_521 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P260), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P260, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260_tags_521[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P260_constr_521, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P260_521, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P260_specs_521 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P261_523[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P261_specs_523 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P261), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P261, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261_tags_523[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P261_constr_523, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P261_523, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P261_specs_523 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P262_525[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P262_specs_525 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P262), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P262, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262_tags_525[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P262_constr_525, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P262_525, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P262_specs_525 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P263_527[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P263_specs_527 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P263), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P263, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263_tags_527[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P263_constr_527, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P263_527, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P263_specs_527 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P264_529[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P264_specs_529 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P264), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P264, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264_tags_529[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P264_constr_529, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P264_529, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P264_specs_529 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P265_531[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P265_specs_531 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P265), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P265, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265_tags_531[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P265_constr_531, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P265_531, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P265_specs_531 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P266_533[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P266_specs_533 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P266), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P266, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266_tags_533[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P266_constr_533, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P266_533, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P266_specs_533 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P267_535[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P267_specs_535 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P267), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P267, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267_tags_535[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P267_constr_535, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P267_535, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P267_specs_535 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P268_537[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P268_specs_537 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P268), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P268, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268_tags_537[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P268_constr_537, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P268_537, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P268_specs_537 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P269_539[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P269_specs_539 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P269), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P269, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269_tags_539[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P269_constr_539, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P269_539, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P269_specs_539 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P270_541[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P270_specs_541 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P270), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P270, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270_tags_541[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P270_constr_541, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P270_541, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P270_specs_541 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P271_543[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P271_specs_543 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P271), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P271, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271_tags_543[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P271_constr_543, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P271_543, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P271_specs_543 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P272_545[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P272_specs_545 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P272), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P272, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272_tags_545[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P272_constr_545, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P272_545, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P272_specs_545 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P273_547[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P273_specs_547 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P273), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P273, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273_tags_547[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P273_constr_547, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P273_547, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P273_specs_547 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P274_549[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P274_specs_549 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P274), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P274, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274_tags_549[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P274_constr_549, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P274_549, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P274_specs_549 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P275_551[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P275_specs_551 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P275), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P275, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275_tags_551[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P275_constr_551, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P275_551, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P275_specs_551 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P276_553[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P276_specs_553 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P276), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P276, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276_tags_553[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P276_constr_553, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P276_553, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P276_specs_553 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P277_555[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P277_specs_555 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P277), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P277, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277_tags_555[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P277_constr_555, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P277_555, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P277_specs_555 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P278_557[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P278_specs_557 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P278), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P278, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278_tags_557[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P278_constr_557, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P278_557, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P278_specs_557 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P279_559[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P279_specs_559 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P279), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P279, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279_tags_559[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P279_constr_559, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P279_559, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P279_specs_559 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P280_561[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P280_specs_561 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P280), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P280, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280_tags_561[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P280_constr_561, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P280_561, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P280_specs_561 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P281_563[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P281_specs_563 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P281), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P281, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281_tags_563[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P281_constr_563, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P281_563, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P281_specs_563 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P282_565[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P282_specs_565 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P282), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P282, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282_tags_565[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P282_constr_565, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P282_565, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P282_specs_565 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P283_567[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P283_specs_567 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P283), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P283, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283_tags_567[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P283_constr_567, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P283_567, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P283_specs_567 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P284_569[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P284_specs_569 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P284), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P284, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284_tags_569[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P284_constr_569, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P284_569, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P284_specs_569 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P285_571[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P285_specs_571 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P285), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P285, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285_tags_571[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P285_constr_571, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P285_571, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P285_specs_571 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P286_573[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P286_specs_573 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P286), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P286, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286_tags_573[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P286_constr_573, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P286_573, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P286_specs_573 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P287_575[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P287_specs_575 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P287), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P287, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287_tags_575[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P287_constr_575, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P287_575, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P287_specs_575 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P288_577[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P288_specs_577 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P288), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P288, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288_tags_577[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P288_constr_577, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P288_577, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P288_specs_577 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P289_579[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P289_specs_579 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P289), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P289, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289_tags_579[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P289_constr_579, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P289_579, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P289_specs_579 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P290_581[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P290_specs_581 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P290), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P290, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290_tags_581[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P290_constr_581, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P290_581, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P290_specs_581 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P291_583[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P291_specs_583 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P291), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P291, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291_tags_583[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P291_constr_583, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P291_583, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P291_specs_583 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P292_585[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P292_specs_585 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P292), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P292, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292_tags_585[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P292_constr_585, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P292_585, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P292_specs_585 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P293_587[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P293_specs_587 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P293), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P293, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293_tags_587[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P293_constr_587, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P293_587, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P293_specs_587 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P294_589[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RIMInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P294_specs_589 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P294), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P294, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294_tags_589[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P294_constr_589, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P294_589, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P294_specs_589 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P295_591[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P295_specs_591 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P295), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P295, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295_tags_591[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P295_constr_591, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P295_591, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P295_specs_591 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P296_593[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P296_specs_593 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P296), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P296, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296_tags_593[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P296_constr_593, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P296_593, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P296_specs_593 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P297_595[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P297_specs_595 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P297), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P297, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297_tags_595[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P297_constr_595, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P297_595, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P297_specs_595 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P298_597[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityContext_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P298_specs_597 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P298), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P298, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298_tags_597[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P298_constr_597, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P298_597, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P298_specs_597 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P299_599[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P299_specs_599 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P299), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P299, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299_tags_599[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P299_constr_599, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P299_599, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P299_specs_599 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P300_601[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityResult_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P300_specs_601 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P300), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P300, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300_tags_601[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P300_constr_601, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P300_601, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P300_specs_601 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P301_603[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P301_specs_603 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P301), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P301, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301_tags_603[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P301_constr_603, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P301_603, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P301_specs_603 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P302_605[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P302_specs_605 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P302), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P302, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302_tags_605[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P302_constr_605, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P302_605, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P302_specs_605 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P303_607[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P303_specs_607 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P303), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P303, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303_tags_607[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P303_constr_607, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P303_607, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P303_specs_607 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P304_609[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P304_specs_609 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P304), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P304, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304_tags_609[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P304_constr_609, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P304_609, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P304_specs_609 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P305_611[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P305_specs_611 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P305), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P305, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305_tags_611[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P305_constr_611, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P305_611, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P305_specs_611 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P306_613[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P306_specs_613 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P306), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P306, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306_tags_613[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P306_constr_613, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P306_613, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P306_specs_613 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P307_615[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P307_specs_615 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P307), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P307, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307_tags_615[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P307_constr_615, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P307_615, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P307_specs_615 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P308_617[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P308_specs_617 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P308), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P308, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308_tags_617[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P308_constr_617, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P308_617, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P308_specs_617 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P309_619[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P309_specs_619 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P309), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P309, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309_tags_619[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P309_constr_619, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P309_619, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P309_specs_619 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P310_621[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P310_specs_621 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P310), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P310, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310_tags_621[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P310_constr_621, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P310_621, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P310_specs_621 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P311_623[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P311_specs_623 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P311), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P311, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311_tags_623[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P311_constr_623, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P311_623, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P311_specs_623 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P312_625[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P312_specs_625 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P312), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P312, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312_tags_625[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P312_constr_625, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P312_625, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P312_specs_625 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P313_627[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P313_specs_627 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P313), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P313, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313_tags_627[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P313_constr_627, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P313_627, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P313_specs_627 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P314_629[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P314_specs_629 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P314), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P314, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314_tags_629[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P314_constr_629, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P314_629, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P314_specs_629 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P315_631[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P315_specs_631 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P315), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P315, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315_tags_631[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P315_constr_631, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P315_631, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P315_specs_631 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P316_633[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P316_specs_633 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P316), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P316, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316_tags_633[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P316_constr_633, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P316_633, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P316_specs_633 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P317_635[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P317_specs_635 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P317), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P317, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317_tags_635[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P317_constr_635, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P317_635, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P317_specs_635 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P318_637[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P318_specs_637 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P318), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P318, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318_tags_637[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P318_constr_637, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P318_637, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P318_specs_637 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P319_639[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P319_specs_639 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P319), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P319, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319_tags_639[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P319_constr_639, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P319_639, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P319_specs_639 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P320_641[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P320_specs_641 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P320), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P320, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320_tags_641[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P320_constr_641, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P320_641, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P320_specs_641 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P321_643[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P321_specs_643 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P321), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P321, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321_tags_643[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P321_constr_643, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P321_643, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P321_specs_643 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P322_645[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P322_specs_645 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P322), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P322, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322_tags_645[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P322_constr_645, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P322_645, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P322_specs_645 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P323_647[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P323_specs_647 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P323), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P323, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323_tags_647[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P323_constr_647, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P323_647, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P323_specs_647 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P324_649[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P324_specs_649 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P324), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P324, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324_tags_649[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P324_constr_649, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P324_649, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P324_specs_649 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P325_651[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P325_specs_651 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P325), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P325, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325_tags_651[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P325_constr_651, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P325_651, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P325_specs_651 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P326_653[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P326_specs_653 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P326), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P326, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326_tags_653[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P326_constr_653, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P326_653, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P326_specs_653 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P327_655[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P327_specs_655 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P327), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P327, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327_tags_655[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P327_constr_655, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P327_655, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P327_specs_655 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P328_657[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P328_specs_657 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P328), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P328, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328_tags_657[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P328_constr_657, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P328_657, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P328_specs_657 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P329_659[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P329_specs_659 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P329), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P329, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329_tags_659[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P329_constr_659, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P329_659, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P329_specs_659 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P330_661[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P330_specs_661 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P330), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P330, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330_tags_661[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P330_constr_661, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P330_661, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P330_specs_661 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P331_663[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P331_specs_663 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P331), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P331, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331_tags_663[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P331_constr_663, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P331_663, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P331_specs_663 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P332_665[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P332_specs_665 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P332), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P332, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332_tags_665[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P332_constr_665, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P332_665, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P332_specs_665 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P333_667[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P333_specs_667 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P333), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P333, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333_tags_667[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P333_constr_667, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P333_667, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P333_specs_667 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P334_669[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P334_specs_669 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P334), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P334, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334_tags_669[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P334_constr_669, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P334_669, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P334_specs_669 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P335_671[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P335_specs_671 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P335), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P335, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335_tags_671[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P335_constr_671, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P335_671, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P335_specs_671 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P336_673[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P336_specs_673 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P336), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P336, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336_tags_673[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P336_constr_673, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P336_673, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P336_specs_673 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P337_675[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P337_specs_675 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P337), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P337, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337_tags_675[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P337_constr_675, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P337_675, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P337_specs_675 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P338_677[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P338_specs_677 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P338), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P338, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338_tags_677[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P338_constr_677, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P338_677, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P338_specs_677 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P339_679[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceActivation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P339_specs_679 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P339), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P339, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339_tags_679[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P339_constr_679, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P339_679, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P339_specs_679 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P340_681[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P340_specs_681 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P340), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P340, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340_tags_681[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P340_constr_681, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P340_681, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P340_specs_681 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P341_683[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P341_specs_683 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P341), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P341, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341_tags_683[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P341_constr_683, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P341_683, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P341_specs_683 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P342_685[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P342_specs_685 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P342), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P342, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342_tags_685[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P342_constr_685, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P342_685, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P342_specs_685 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P343_687[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P343_specs_687 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P343), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P343, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343_tags_687[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P343_constr_687, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P343_687, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P343_specs_687 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P344_689[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P344_specs_689 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P344), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P344, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344_tags_689[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P344_constr_689, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P344_689, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P344_specs_689 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P345_691[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P345_specs_691 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P345), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P345, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345_tags_691[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P345_constr_691, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P345_691, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P345_specs_691 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P346_693[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P346_specs_693 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P346), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P346, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346_tags_693[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P346_constr_693, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P346_693, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P346_specs_693 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P347_695[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P347_specs_695 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P347), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P347, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347_tags_695[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P347_constr_695, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P347_695, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P347_specs_695 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P348_697[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P348_specs_697 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P348), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P348, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348_tags_697[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P348_constr_697, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P348_697, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P348_specs_697 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P349_699[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P349_specs_699 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P349), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P349, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349_tags_699[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P349_constr_699, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P349_699, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P349_specs_699 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P350_701[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P350_specs_701 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P350), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P350, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350_tags_701[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P350_constr_701, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P350_701, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P350_specs_701 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P351_703[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P351_specs_703 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P351), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P351, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351_tags_703[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P351_constr_703, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P351_703, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P351_specs_703 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P352_705[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P352_specs_705 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P352), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P352, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352_tags_705[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P352_constr_705, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P352_705, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P352_specs_705 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P353_707[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P353_specs_707 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P353), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P353, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353_tags_707[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P353_constr_707, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P353_707, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P353_specs_707 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P354_709[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P354_specs_709 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P354), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P354, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354_tags_709[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P354_constr_709, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P354_709, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P354_specs_709 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P355_711[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P355_specs_711 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P355), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P355, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355_tags_711[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P355_constr_711, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P355_711, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P355_specs_711 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P356_713[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P356_specs_713 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P356), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P356, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356_tags_713[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P356_constr_713, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P356_713, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P356_specs_713 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P357_715[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P357_specs_715 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P357), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P357, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357_tags_715[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P357_constr_715, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P357_715, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P357_specs_715 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P358_717[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P358_specs_717 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P358), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P358, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358_tags_717[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P358_constr_717, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P358_717, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P358_specs_717 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P359_719[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P359_specs_719 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P359), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P359, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359_tags_719[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P359_constr_719, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P359_719, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P359_specs_719 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P360_721[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P360_specs_721 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P360), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P360, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360_tags_721[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P360_constr_721, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P360_721, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P360_specs_721 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P361_723[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P361_specs_723 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P361), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P361, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361_tags_723[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P361_constr_723, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P361_723, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P361_specs_723 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P362_725[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P362_specs_725 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P362), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P362, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362_tags_725[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P362_constr_725, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P362_725, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P362_specs_725 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P363_727[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P363_specs_727 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P363), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P363, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363_tags_727[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P363_constr_727, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P363_727, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P363_specs_727 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P364_729[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P364_specs_729 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P364), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P364, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364_tags_729[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P364_constr_729, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P364_729, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P364_specs_729 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P365_731[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P365_specs_731 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P365), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P365, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365_tags_731[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P365_constr_731, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P365_731, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P365_specs_731 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P366_733[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P366_specs_733 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P366), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P366, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366_tags_733[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P366_constr_733, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P366_733, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P366_specs_733 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P367_735[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P367_specs_735 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P367), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P367, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367_tags_735[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P367_constr_735, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P367_735, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P367_specs_735 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P368_737[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P368_specs_737 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P368), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P368, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368_tags_737[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P368_constr_737, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P368_737, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P368_specs_737 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P369_739[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P369_specs_739 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P369), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P369, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369_tags_739[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P369_constr_739, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P369_739, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P369_specs_739 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P370_741[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P370_specs_741 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P370), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P370, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370_tags_741[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P370_constr_741, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P370_741, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P370_specs_741 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P371_743[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P371_specs_743 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P371), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P371, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371_tags_743[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P371_constr_743, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P371_743, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P371_specs_743 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P372_745[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P372_specs_745 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P372), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P372, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372_tags_745[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P372_constr_745, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P372_745, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P372_specs_745 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P373_747[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P373_specs_747 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P373), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P373, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373_tags_747[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P373_constr_747, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P373_747, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P373_specs_747 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P374_749[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P374_specs_749 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P374), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P374, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374_tags_749[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P374_constr_749, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P374_749, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P374_specs_749 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P375_751[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P375_specs_751 = { + sizeof(struct ASN_NGAP_ProtocolExtensionContainer_174P375), + offsetof(struct ASN_NGAP_ProtocolExtensionContainer_174P375, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375 = { + "ProtocolExtensionContainer", + "ProtocolExtensionContainer", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375_tags_751[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P375_constr_751, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P375_751, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P375_specs_751 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.h b/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.h new file mode 100644 index 0000000..3dd8229 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionContainer.h @@ -0,0 +1,4169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolExtensionContainer_H_ +#define _ASN_NGAP_ProtocolExtensionContainer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs; +struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs; +struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs; +struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs; +struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs; +struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs; +struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs; +struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs; +struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs; +struct ASN_NGAP_AreaOfInterest_ExtIEs; +struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs; +struct ASN_NGAP_AreaOfInterestItem_ExtIEs; +struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs; +struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs; +struct ASN_NGAP_AssistanceDataForPaging_ExtIEs; +struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs; +struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs; +struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs; +struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs; +struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs; +struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs; +struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs; +struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs; +struct ASN_NGAP_BroadcastPLMNItem_ExtIEs; +struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs; +struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs; +struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs; +struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs; +struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs; +struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs; +struct ASN_NGAP_CandidateCellItem_ExtIEs; +struct ASN_NGAP_CandidateCellID_ExtIEs; +struct ASN_NGAP_CandidatePCI_ExtIEs; +struct ASN_NGAP_Cell_CAGInformation_ExtIEs; +struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs; +struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs; +struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs; +struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs; +struct ASN_NGAP_CellType_ExtIEs; +struct ASN_NGAP_CNAssistedRANTuning_ExtIEs; +struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs; +struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs; +struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs; +struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs; +struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs; +struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs; +struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs; +struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs; +struct ASN_NGAP_CriticalityDiagnostics_ExtIEs; +struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs; +struct ASN_NGAP_CellBasedMDT_NR_ExtIEs; +struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs; +struct ASN_NGAP_CellBasedQMC_ExtIEs; +struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs; +struct ASN_NGAP_DAPSRequestInfo_ExtIEs; +struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs; +struct ASN_NGAP_DAPSResponseInfo_ExtIEs; +struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs; +struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs; +struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs; +struct ASN_NGAP_DRBStatusDL12_ExtIEs; +struct ASN_NGAP_DRBStatusDL18_ExtIEs; +struct ASN_NGAP_DRBStatusUL12_ExtIEs; +struct ASN_NGAP_DRBStatusUL18_ExtIEs; +struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs; +struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs; +struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs; +struct ASN_NGAP_FirstDLCount_ExtIEs; +struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs; +struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs; +struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs; +struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs; +struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs; +struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs; +struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs; +struct ASN_NGAP_EPS_TAI_ExtIEs; +struct ASN_NGAP_E_RABInformationItem_ExtIEs; +struct ASN_NGAP_EUTRA_CGI_ExtIEs; +struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs; +struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs; +struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs; +struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs; +struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs; +struct ASN_NGAP_Extended_AMFName_ExtIEs; +struct ASN_NGAP_Extended_RANNodeName_ExtIEs; +struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs; +struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs; +struct ASN_NGAP_FailureIndication_ExtIEs; +struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs; +struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs; +struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs; +struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs; +struct ASN_NGAP_FiveG_S_TMSI_ExtIEs; +struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs; +struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs; +struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs; +struct ASN_NGAP_GBR_QosInformation_ExtIEs; +struct ASN_NGAP_GlobalCable_ID_new_ExtIEs; +struct ASN_NGAP_GlobalENB_ID_ExtIEs; +struct ASN_NGAP_GlobalGNB_ID_ExtIEs; +struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs; +struct ASN_NGAP_GlobalLine_ID_ExtIEs; +struct ASN_NGAP_GlobalNgENB_ID_ExtIEs; +struct ASN_NGAP_GlobalTNGF_ID_ExtIEs; +struct ASN_NGAP_GlobalTWIF_ID_ExtIEs; +struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs; +struct ASN_NGAP_GTPTunnel_ExtIEs; +struct ASN_NGAP_GUAMI_ExtIEs; +struct ASN_NGAP_HandoverCommandTransfer_ExtIEs; +struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs; +struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs; +struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_HFCNode_ID_new_ExtIEs; +struct ASN_NGAP_HOReport_ExtIEs; +struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs; +struct ASN_NGAP_ImmediateMDTNr_ExtIEs; +struct ASN_NGAP_InterSystemFailureIndication_ExtIEs; +struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs; +struct ASN_NGAP_IntersystemSONeNBID_ExtIEs; +struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs; +struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs; +struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs; +struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs; +struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs; +struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs; +struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs; +struct ASN_NGAP_EventBasedReportingIEs_ExtIEs; +struct ASN_NGAP_PeriodicReportingIEs_ExtIEs; +struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs; +struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs; +struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs; +struct ASN_NGAP_NotificationCell_Item_ExtIEs; +struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs; +struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs; +struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs; +struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs; +struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs; +struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs; +struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs; +struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs; +struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs; +struct ASN_NGAP_InterSystemHOReport_ExtIEs; +struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs; +struct ASN_NGAP_LAI_ExtIEs; +struct ASN_NGAP_LastVisitedCellItem_ExtIEs; +struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs; +struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs; +struct ASN_NGAP_LocationReportingRequestType_ExtIEs; +struct ASN_NGAP_LoggedMDTNr_ExtIEs; +struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs; +struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs; +struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs; +struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs; +struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs; +struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs; +struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs; +struct ASN_NGAP_MBS_SessionID_ExtIEs; +struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs; +struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs; +struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs; +struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs; +struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs; +struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs; +struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs; +struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs; +struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs; +struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs; +struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs; +struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs; +struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs; +struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs; +struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs; +struct ASN_NGAP_MobilityRestrictionList_ExtIEs; +struct ASN_NGAP_MDT_Configuration_ExtIEs; +struct ASN_NGAP_MDT_Configuration_NR_ExtIEs; +struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs; +struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs; +struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs; +struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs; +struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs; +struct ASN_NGAP_UE_PagingItem_ExtIEs; +struct ASN_NGAP_M1Configuration_ExtIEs; +struct ASN_NGAP_M1ThresholdEventA2_ExtIEs; +struct ASN_NGAP_M1PeriodicReporting_ExtIEs; +struct ASN_NGAP_M4Configuration_ExtIEs; +struct ASN_NGAP_M5Configuration_ExtIEs; +struct ASN_NGAP_M6Configuration_ExtIEs; +struct ASN_NGAP_M7Configuration_ExtIEs; +struct ASN_NGAP_MDT_Location_Info_ExtIEs; +struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs; +struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs; +struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs; +struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs; +struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs; +struct ASN_NGAP_NR_CGI_ExtIEs; +struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs; +struct ASN_NGAP_NRNTNTAIInformation_ExtIEs; +struct ASN_NGAP_NRFrequencyBandItem_ExtIEs; +struct ASN_NGAP_NRFrequencyInfo_ExtIEs; +struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs; +struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs; +struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs; +struct ASN_NGAP_PacketErrorRate_ExtIEs; +struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs; +struct ASN_NGAP_PagingAttemptInformation_ExtIEs; +struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs; +struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs; +struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs; +struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_PC5QoSParameters_ExtIEs; +struct ASN_NGAP_PC5QoSFlowItem_ExtIEs; +struct ASN_NGAP_PC5FlowBitRates_ExtIEs; +struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs; +struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs; +struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs; +struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs; +struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs; +struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs; +struct ASN_NGAP_PDUSessionUsageReport_ExtIEs; +struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs; +struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs; +struct ASN_NGAP_PLMNSupportItem_ExtIEs; +struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs; +struct ASN_NGAP_QMCConfigInfo_ExtIEs; +struct ASN_NGAP_QMCDeactivation_ExtIEs; +struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs; +struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs; +struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs; +struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs; +struct ASN_NGAP_QosFlowInformationItem_ExtIEs; +struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs; +struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs; +struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs; +struct ASN_NGAP_QosFlowNotifyItem_ExtIEs; +struct ASN_NGAP_QosFlowParametersItem_ExtIEs; +struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs; +struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs; +struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs; +struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs; +struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs; +struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs; +struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs; +struct ASN_NGAP_RATRestrictions_Item_ExtIEs; +struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs; +struct ASN_NGAP_RecommendedCellItem_ExtIEs; +struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs; +struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs; +struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs; +struct ASN_NGAP_RIMInformationTransfer_ExtIEs; +struct ASN_NGAP_RIMInformation_ExtIEs; +struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs; +struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs; +struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs; +struct ASN_NGAP_SecurityContext_ExtIEs; +struct ASN_NGAP_SecurityIndication_ExtIEs; +struct ASN_NGAP_SecurityResult_ExtIEs; +struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs; +struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs; +struct ASN_NGAP_ServedGUAMIItem_ExtIEs; +struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs; +struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs; +struct ASN_NGAP_SliceOverloadItem_ExtIEs; +struct ASN_NGAP_SliceSupportItem_ExtIEs; +struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs; +struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs; +struct ASN_NGAP_S_NSSAI_ExtIEs; +struct ASN_NGAP_SONConfigurationTransfer_ExtIEs; +struct ASN_NGAP_SONInformationReply_ExtIEs; +struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs; +struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs; +struct ASN_NGAP_SourceRANNodeID_ExtIEs; +struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs; +struct ASN_NGAP_SupportedTAItem_ExtIEs; +struct ASN_NGAP_TAI_ExtIEs; +struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs; +struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs; +struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs; +struct ASN_NGAP_TAICancelledNR_Item_ExtIEs; +struct ASN_NGAP_TAIListForInactiveItem_ExtIEs; +struct ASN_NGAP_TAIListForPagingItem_ExtIEs; +struct ASN_NGAP_TAINSAGSupportItem_ExtIEs; +struct ASN_NGAP_TargeteNB_ID_ExtIEs; +struct ASN_NGAP_TargetHomeENB_ID_ExtIEs; +struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs; +struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs; +struct ASN_NGAP_TargetNSSAI_Item_ExtIEs; +struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs; +struct ASN_NGAP_TargetRANNodeID_ExtIEs; +struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs; +struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs; +struct ASN_NGAP_TargetRNC_ID_ExtIEs; +struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs; +struct ASN_NGAP_TNLAssociationItem_ExtIEs; +struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs; +struct ASN_NGAP_TraceActivation_ExtIEs; +struct ASN_NGAP_TAIBasedMDT_ExtIEs; +struct ASN_NGAP_TAIBasedQMC_ExtIEs; +struct ASN_NGAP_TABasedQMC_ExtIEs; +struct ASN_NGAP_TABasedMDT_ExtIEs; +struct ASN_NGAP_TSCAssistanceInformation_ExtIEs; +struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs; +struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs; +struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs; +struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs; +struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs; +struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs; +struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs; +struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs; +struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs; +struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs; +struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs; +struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs; +struct ASN_NGAP_UESecurityCapabilities_ExtIEs; +struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs; +struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs; +struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs; +struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs; +struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs; +struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs; +struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs; +struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs; +struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs; +struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs; +struct ASN_NGAP_UserLocationInformationNR_ExtIEs; +struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs; +struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs; +struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs; +struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs; +struct ASN_NGAP_WUS_Assistance_Information_ExtIEs; +struct ASN_NGAP_XnExtTLA_Item_ExtIEs; +struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs; + +/* ASN_NGAP_ProtocolExtensionContainer */ +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P0 { + A_SEQUENCE_OF(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P0_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P1 { + A_SEQUENCE_OF(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P1_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P2 { + A_SEQUENCE_OF(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P2_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P3 { + A_SEQUENCE_OF(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P3_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P4 { + A_SEQUENCE_OF(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P4_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P5 { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P5_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P6 { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P6_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P7 { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P7_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P8 { + A_SEQUENCE_OF(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P8_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P9 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterest_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P9_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P10 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P10_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P11 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P11_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P12 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P12_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P13 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P13_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P14 { + A_SEQUENCE_OF(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P14_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P15 { + A_SEQUENCE_OF(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P15_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P16 { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P16_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P17 { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P17_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P18 { + A_SEQUENCE_OF(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P18_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P19 { + A_SEQUENCE_OF(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P19_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P20 { + A_SEQUENCE_OF(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P20_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P21 { + A_SEQUENCE_OF(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P21_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P22 { + A_SEQUENCE_OF(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P22_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P23 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P23_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P24 { + A_SEQUENCE_OF(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P24_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P25 { + A_SEQUENCE_OF(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P25_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P26 { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P26_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P27 { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P27_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P28 { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P28_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P29 { + A_SEQUENCE_OF(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P29_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P30 { + A_SEQUENCE_OF(struct ASN_NGAP_CandidateCellItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P30_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P31 { + A_SEQUENCE_OF(struct ASN_NGAP_CandidateCellID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P31_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P32 { + A_SEQUENCE_OF(struct ASN_NGAP_CandidatePCI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P32_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P33 { + A_SEQUENCE_OF(struct ASN_NGAP_Cell_CAGInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P33_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P34 { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P34_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P35 { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P35_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P36 { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P36_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P37 { + A_SEQUENCE_OF(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P37_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P38 { + A_SEQUENCE_OF(struct ASN_NGAP_CellType_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P38_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P39 { + A_SEQUENCE_OF(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P39_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P40 { + A_SEQUENCE_OF(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P40_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P41 { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P41_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P42 { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P42_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P43 { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P43_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P44 { + A_SEQUENCE_OF(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P44_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P45 { + A_SEQUENCE_OF(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P45_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P46 { + A_SEQUENCE_OF(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P46_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P47 { + A_SEQUENCE_OF(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P47_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P48 { + A_SEQUENCE_OF(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P48_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P49 { + A_SEQUENCE_OF(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P49_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P50 { + A_SEQUENCE_OF(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P50_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P51 { + A_SEQUENCE_OF(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P51_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P52 { + A_SEQUENCE_OF(struct ASN_NGAP_CellBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P52_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P53 { + A_SEQUENCE_OF(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P53_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P54 { + A_SEQUENCE_OF(struct ASN_NGAP_DAPSRequestInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P54_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P55 { + A_SEQUENCE_OF(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P55_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P56 { + A_SEQUENCE_OF(struct ASN_NGAP_DAPSResponseInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P56_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P57 { + A_SEQUENCE_OF(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P57_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P58 { + A_SEQUENCE_OF(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P58_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P59 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P59_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P60 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBStatusDL12_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P60_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P61 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBStatusDL18_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P61_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P62 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBStatusUL12_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P62_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P63 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBStatusUL18_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P63_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P64 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P64_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P65 { + A_SEQUENCE_OF(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P65_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P66 { + A_SEQUENCE_OF(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P66_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P67 { + A_SEQUENCE_OF(struct ASN_NGAP_FirstDLCount_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P67_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P68 { + A_SEQUENCE_OF(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P68_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P69 { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P69_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P70 { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P70_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P71 { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P71_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P72 { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P72_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P73 { + A_SEQUENCE_OF(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P73_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P74 { + A_SEQUENCE_OF(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P74_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P75 { + A_SEQUENCE_OF(struct ASN_NGAP_EPS_TAI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P75_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P76 { + A_SEQUENCE_OF(struct ASN_NGAP_E_RABInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P76_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P77 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRA_CGI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P77_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P78 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P78_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P79 { + A_SEQUENCE_OF(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P79_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P80 { + A_SEQUENCE_OF(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P80_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P81 { + A_SEQUENCE_OF(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P81_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P82 { + A_SEQUENCE_OF(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P82_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P83 { + A_SEQUENCE_OF(struct ASN_NGAP_Extended_AMFName_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P83_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P84 { + A_SEQUENCE_OF(struct ASN_NGAP_Extended_RANNodeName_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P84_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P85 { + A_SEQUENCE_OF(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P85_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P86 { + A_SEQUENCE_OF(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P86_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P87 { + A_SEQUENCE_OF(struct ASN_NGAP_FailureIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P87_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P88 { + A_SEQUENCE_OF(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P88_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P89 { + A_SEQUENCE_OF(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P89_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P90 { + A_SEQUENCE_OF(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P90_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P91 { + A_SEQUENCE_OF(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P91_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P92 { + A_SEQUENCE_OF(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P92_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P93 { + A_SEQUENCE_OF(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P93_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P94 { + A_SEQUENCE_OF(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P94_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P95 { + A_SEQUENCE_OF(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P95_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P96 { + A_SEQUENCE_OF(struct ASN_NGAP_GBR_QosInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P96_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P97 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P97_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P98 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalENB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P98_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P99 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalGNB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P99_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P100 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P100_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P101 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalLine_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P101_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P102 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P102_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P103 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P103_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P104 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P104_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P105 { + A_SEQUENCE_OF(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P105_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P106 { + A_SEQUENCE_OF(struct ASN_NGAP_GTPTunnel_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P106_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P107 { + A_SEQUENCE_OF(struct ASN_NGAP_GUAMI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P107_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P108 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P108_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P109 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P109_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P110 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P110_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P111 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P111_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P112 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P112_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P113 { + A_SEQUENCE_OF(struct ASN_NGAP_HFCNode_ID_new_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P113_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P114 { + A_SEQUENCE_OF(struct ASN_NGAP_HOReport_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P114_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P115 { + A_SEQUENCE_OF(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P115_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P116 { + A_SEQUENCE_OF(struct ASN_NGAP_ImmediateMDTNr_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P116_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P117 { + A_SEQUENCE_OF(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P117_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P118 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P118_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P119 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P119_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P120 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P120_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P121 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P121_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P122 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P122_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P123 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P123_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P124 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P124_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P125 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P125_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P126 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P126_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P127 { + A_SEQUENCE_OF(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P127_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P128 { + A_SEQUENCE_OF(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P128_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P129 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P129_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P130 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P130_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P131 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P131_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P132 { + A_SEQUENCE_OF(struct ASN_NGAP_NotificationCell_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P132_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P133 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P133_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P134 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P134_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P135 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P135_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P136 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P136_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P137 { + A_SEQUENCE_OF(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P137_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P138 { + A_SEQUENCE_OF(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P138_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P139 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P139_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P140 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P140_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P141 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P141_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P142 { + A_SEQUENCE_OF(struct ASN_NGAP_InterSystemHOReport_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P142_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P143 { + A_SEQUENCE_OF(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P143_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P144 { + A_SEQUENCE_OF(struct ASN_NGAP_LAI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P144_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P145 { + A_SEQUENCE_OF(struct ASN_NGAP_LastVisitedCellItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P145_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P146 { + A_SEQUENCE_OF(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P146_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P147 { + A_SEQUENCE_OF(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P147_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P148 { + A_SEQUENCE_OF(struct ASN_NGAP_LocationReportingRequestType_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P148_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P149 { + A_SEQUENCE_OF(struct ASN_NGAP_LoggedMDTNr_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P149_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P150 { + A_SEQUENCE_OF(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P150_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P151 { + A_SEQUENCE_OF(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P151_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P152 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P152_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P153 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P153_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P154 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P154_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P155 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P155_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P156 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P156_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P157 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_SessionID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P157_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P158 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P158_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P159 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P159_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P160 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P160_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P161 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P161_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P162 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P162_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P163 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P163_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P164 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P164_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P165 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P165_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P166 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P166_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P167 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P167_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P168 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P168_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P169 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P169_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P170 { + A_SEQUENCE_OF(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P170_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P171 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P171_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P172 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P172_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P173 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P173_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P174 { + A_SEQUENCE_OF(struct ASN_NGAP_MobilityRestrictionList_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P174_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P175 { + A_SEQUENCE_OF(struct ASN_NGAP_MDT_Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P175_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P176 { + A_SEQUENCE_OF(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P176_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P177 { + A_SEQUENCE_OF(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P177_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P178 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P178_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P179 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P179_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P180 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P180_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P181 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P181_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P182 { + A_SEQUENCE_OF(struct ASN_NGAP_UE_PagingItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P182_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P183 { + A_SEQUENCE_OF(struct ASN_NGAP_M1Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P183_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P184 { + A_SEQUENCE_OF(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P184_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P185 { + A_SEQUENCE_OF(struct ASN_NGAP_M1PeriodicReporting_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P185_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P186 { + A_SEQUENCE_OF(struct ASN_NGAP_M4Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P186_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P187 { + A_SEQUENCE_OF(struct ASN_NGAP_M5Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P187_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P188 { + A_SEQUENCE_OF(struct ASN_NGAP_M6Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P188_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P189 { + A_SEQUENCE_OF(struct ASN_NGAP_M7Configuration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P189_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P190 { + A_SEQUENCE_OF(struct ASN_NGAP_MDT_Location_Info_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P190_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P191 { + A_SEQUENCE_OF(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P191_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P192 { + A_SEQUENCE_OF(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P192_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P193 { + A_SEQUENCE_OF(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P193_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P194 { + A_SEQUENCE_OF(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P194_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P195 { + A_SEQUENCE_OF(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P195_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P196 { + A_SEQUENCE_OF(struct ASN_NGAP_NR_CGI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P196_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P197 { + A_SEQUENCE_OF(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P197_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P198 { + A_SEQUENCE_OF(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P198_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P199 { + A_SEQUENCE_OF(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P199_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P200 { + A_SEQUENCE_OF(struct ASN_NGAP_NRFrequencyInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P200_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P201 { + A_SEQUENCE_OF(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P201_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P202 { + A_SEQUENCE_OF(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P202_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P203 { + A_SEQUENCE_OF(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P203_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P204 { + A_SEQUENCE_OF(struct ASN_NGAP_PacketErrorRate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P204_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P205 { + A_SEQUENCE_OF(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P205_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P206 { + A_SEQUENCE_OF(struct ASN_NGAP_PagingAttemptInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P206_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P207 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P207_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P208 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P208_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P209 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P209_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P210 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P210_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P211 { + A_SEQUENCE_OF(struct ASN_NGAP_PC5QoSParameters_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P211_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P212 { + A_SEQUENCE_OF(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P212_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P213 { + A_SEQUENCE_OF(struct ASN_NGAP_PC5FlowBitRates_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P213_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P214 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P214_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P215 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P215_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P216 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P216_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P217 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P217_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P218 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P218_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P219 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P219_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P220 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P220_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P221 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P221_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P222 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P222_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P223 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P223_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P224 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P224_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P225 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P225_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P226 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P226_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P227 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P227_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P228 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P228_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P229 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P229_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P230 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P230_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P231 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P231_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P232 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P232_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P233 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P233_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P234 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P234_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P235 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P235_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P236 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P236_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P237 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P237_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P238 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P238_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P239 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P239_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P240 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P240_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P241 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P241_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P242 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P242_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P243 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P243_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P244 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P244_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P245 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P245_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P246 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P246_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P247 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P247_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P248 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P248_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P249 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P249_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P250 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P250_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P251 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P251_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P252 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P252_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P253 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P253_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P254 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P254_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P255 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P255_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P256 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P256_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P257 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P257_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P258 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P258_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P259 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P259_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P260 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P260_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P261 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P261_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P262 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P262_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P263 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P263_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P264 { + A_SEQUENCE_OF(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P264_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P265 { + A_SEQUENCE_OF(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P265_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P266 { + A_SEQUENCE_OF(struct ASN_NGAP_PLMNSupportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P266_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P267 { + A_SEQUENCE_OF(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P267_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P268 { + A_SEQUENCE_OF(struct ASN_NGAP_QMCConfigInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P268_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P269 { + A_SEQUENCE_OF(struct ASN_NGAP_QMCDeactivation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P269_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P270 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P270_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P271 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P271_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P272 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P272_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P273 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P273_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P274 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P274_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P275 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P275_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P276 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P276_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P277 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P277_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P278 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P278_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P279 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowParametersItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P279_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P280 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P280_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P281 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P281_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P282 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P282_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P283 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P283_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P284 { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P284_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P285 { + A_SEQUENCE_OF(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P285_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P286 { + A_SEQUENCE_OF(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P286_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P287 { + A_SEQUENCE_OF(struct ASN_NGAP_RATRestrictions_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P287_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P288 { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P288_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P289 { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedCellItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P289_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P290 { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P290_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P291 { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P291_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P292 { + A_SEQUENCE_OF(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P292_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P293 { + A_SEQUENCE_OF(struct ASN_NGAP_RIMInformationTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P293_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P294 { + A_SEQUENCE_OF(struct ASN_NGAP_RIMInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P294_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P295 { + A_SEQUENCE_OF(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P295_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P296 { + A_SEQUENCE_OF(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P296_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P297 { + A_SEQUENCE_OF(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P297_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P298 { + A_SEQUENCE_OF(struct ASN_NGAP_SecurityContext_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P298_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P299 { + A_SEQUENCE_OF(struct ASN_NGAP_SecurityIndication_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P299_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P300 { + A_SEQUENCE_OF(struct ASN_NGAP_SecurityResult_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P300_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P301 { + A_SEQUENCE_OF(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P301_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P302 { + A_SEQUENCE_OF(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P302_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P303 { + A_SEQUENCE_OF(struct ASN_NGAP_ServedGUAMIItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P303_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P304 { + A_SEQUENCE_OF(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P304_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P305 { + A_SEQUENCE_OF(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P305_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P306 { + A_SEQUENCE_OF(struct ASN_NGAP_SliceOverloadItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P306_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P307 { + A_SEQUENCE_OF(struct ASN_NGAP_SliceSupportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P307_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P308 { + A_SEQUENCE_OF(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P308_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P309 { + A_SEQUENCE_OF(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P309_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P310 { + A_SEQUENCE_OF(struct ASN_NGAP_S_NSSAI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P310_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P311 { + A_SEQUENCE_OF(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P311_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P312 { + A_SEQUENCE_OF(struct ASN_NGAP_SONInformationReply_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P312_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P313 { + A_SEQUENCE_OF(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P313_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P314 { + A_SEQUENCE_OF(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P314_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P315 { + A_SEQUENCE_OF(struct ASN_NGAP_SourceRANNodeID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P315_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P316 { + A_SEQUENCE_OF(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P316_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P317 { + A_SEQUENCE_OF(struct ASN_NGAP_SupportedTAItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P317_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P318 { + A_SEQUENCE_OF(struct ASN_NGAP_TAI_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P318_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P319 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P319_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P320 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P320_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P321 { + A_SEQUENCE_OF(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P321_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P322 { + A_SEQUENCE_OF(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P322_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P323 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P323_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P324 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIListForPagingItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P324_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P325 { + A_SEQUENCE_OF(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P325_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P326 { + A_SEQUENCE_OF(struct ASN_NGAP_TargeteNB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P326_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P327 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P327_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P328 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P328_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P329 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P329_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P330 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P330_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P331 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P331_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P332 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetRANNodeID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P332_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P333 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P333_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P334 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P334_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P335 { + A_SEQUENCE_OF(struct ASN_NGAP_TargetRNC_ID_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P335_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P336 { + A_SEQUENCE_OF(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P336_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P337 { + A_SEQUENCE_OF(struct ASN_NGAP_TNLAssociationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P337_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P338 { + A_SEQUENCE_OF(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P338_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P339 { + A_SEQUENCE_OF(struct ASN_NGAP_TraceActivation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P339_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P340 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBasedMDT_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P340_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P341 { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P341_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P342 { + A_SEQUENCE_OF(struct ASN_NGAP_TABasedQMC_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P342_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P343 { + A_SEQUENCE_OF(struct ASN_NGAP_TABasedMDT_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P343_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P344 { + A_SEQUENCE_OF(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P344_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P345 { + A_SEQUENCE_OF(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P345_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P346 { + A_SEQUENCE_OF(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P346_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P347 { + A_SEQUENCE_OF(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P347_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P348 { + A_SEQUENCE_OF(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P348_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P349 { + A_SEQUENCE_OF(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P349_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P350 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P350_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P351 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P351_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P352 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P352_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P353 { + A_SEQUENCE_OF(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P353_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P354 { + A_SEQUENCE_OF(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P354_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P355 { + A_SEQUENCE_OF(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P355_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P356 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P356_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P357 { + A_SEQUENCE_OF(struct ASN_NGAP_UESecurityCapabilities_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P357_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P358 { + A_SEQUENCE_OF(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P358_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P359 { + A_SEQUENCE_OF(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P359_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P360 { + A_SEQUENCE_OF(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P360_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P361 { + A_SEQUENCE_OF(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P361_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P362 { + A_SEQUENCE_OF(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P362_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P363 { + A_SEQUENCE_OF(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P363_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P364 { + A_SEQUENCE_OF(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P364_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P365 { + A_SEQUENCE_OF(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P365_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P366 { + A_SEQUENCE_OF(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P366_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P367 { + A_SEQUENCE_OF(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P367_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P368 { + A_SEQUENCE_OF(struct ASN_NGAP_UserLocationInformationNR_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P368_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P369 { + A_SEQUENCE_OF(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P369_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P370 { + A_SEQUENCE_OF(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P370_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P371 { + A_SEQUENCE_OF(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P371_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P372 { + A_SEQUENCE_OF(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P372_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P373 { + A_SEQUENCE_OF(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P373_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P374 { + A_SEQUENCE_OF(struct ASN_NGAP_XnExtTLA_Item_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P374_t; +typedef struct ASN_NGAP_ProtocolExtensionContainer_174P375 { + A_SEQUENCE_OF(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolExtensionContainer_174P375_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P0; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P1; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P2; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P3; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P4; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P5; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P6; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P7; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P8; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P9; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P10; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P11; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P12; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P13; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P14; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P15; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P16; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P17; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P18; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P19; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P20; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P21; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P22; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P23; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P24; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P25; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P26; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P27; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P28; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P29; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P30; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P31; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P32; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P33; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P34; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P35; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P36; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P37; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P38; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P39; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P40; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P40_constr_81; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P41; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P41_specs_83; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P41_83[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P41_constr_83; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P42; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P42_specs_85; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P42_85[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P42_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P43; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P43_specs_87; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P43_87[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P43_constr_87; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P44; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P44_specs_89; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P44_89[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P44_constr_89; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P45; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P45_specs_91; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P45_91[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P45_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P46; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P46_specs_93; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P46_93[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P46_constr_93; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P47; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P47_specs_95; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P47_95[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P47_constr_95; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P48; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P48_specs_97; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P48_97[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P48_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P49; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P49_specs_99; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P49_99[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P49_constr_99; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P50; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P50_specs_101; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P50_101[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P50_constr_101; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P51; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P51_specs_103; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P51_103[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P51_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P52; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P52_specs_105; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P52_105[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P52_constr_105; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P53; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P53_specs_107; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P53_107[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P53_constr_107; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P54; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P54_specs_109; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P54_109[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P54_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P55; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P55_specs_111; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P55_111[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P55_constr_111; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P56; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P56_specs_113; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P56_113[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P56_constr_113; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P57; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P57_specs_115; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P57_115[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P57_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P58; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P58_specs_117; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P58_117[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P58_constr_117; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P59; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P59_specs_119; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P59_119[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P59_constr_119; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P60; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P60_specs_121; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P60_121[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P60_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P61; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P61_specs_123; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P61_123[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P61_constr_123; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P62; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P62_specs_125; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P62_125[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P62_constr_125; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P63; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P63_specs_127; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P63_127[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P63_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P64; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P64_specs_129; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P64_129[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P64_constr_129; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P65; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P65_specs_131; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P65_131[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P65_constr_131; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P66; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P66_specs_133; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P66_133[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P66_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P67; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P67_specs_135; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P67_135[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P67_constr_135; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P68; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P68_specs_137; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P68_137[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P68_constr_137; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P69; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P69_specs_139; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P69_139[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P69_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P70; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P70_specs_141; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P70_141[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P70_constr_141; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P71; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P71_specs_143; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P71_143[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P71_constr_143; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P72; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P72_specs_145; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P72_145[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P72_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P73; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P73_specs_147; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P73_147[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P73_constr_147; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P74; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P74_specs_149; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P74_149[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P74_constr_149; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P75; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P75_specs_151; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P75_151[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P75_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P76; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P76_specs_153; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P76_153[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P76_constr_153; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P77; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P77_specs_155; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P77_155[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P77_constr_155; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P78; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P78_specs_157; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P78_157[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P78_constr_157; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P79; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P79_specs_159; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P79_159[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P79_constr_159; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P80; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P80_specs_161; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P80_161[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P80_constr_161; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P81; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P81_specs_163; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P81_163[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P81_constr_163; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P82; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P82_specs_165; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P82_165[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P82_constr_165; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P83; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P83_specs_167; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P83_167[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P83_constr_167; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P84; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P84_specs_169; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P84_169[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P84_constr_169; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P85; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P85_specs_171; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P85_171[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P85_constr_171; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P86; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P86_specs_173; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P86_173[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P86_constr_173; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P87; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P87_specs_175; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P87_175[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P87_constr_175; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P88; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P88_specs_177; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P88_177[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P88_constr_177; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P89; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P89_specs_179; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P89_179[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P89_constr_179; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P90; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P90_specs_181; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P90_181[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P90_constr_181; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P91; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P91_specs_183; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P91_183[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P91_constr_183; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P92; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P92_specs_185; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P92_185[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P92_constr_185; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P93; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P93_specs_187; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P93_187[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P93_constr_187; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P94; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P94_specs_189; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P94_189[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P94_constr_189; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P95; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P95_specs_191; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P95_191[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P95_constr_191; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P96; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P96_specs_193; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P96_193[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P96_constr_193; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P97; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P97_specs_195; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P97_195[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P97_constr_195; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P98; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P98_specs_197; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P98_197[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P98_constr_197; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P99; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P99_specs_199; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P99_199[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P99_constr_199; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P100; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P100_specs_201; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P100_201[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P100_constr_201; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P101; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P101_specs_203; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P101_203[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P101_constr_203; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P102; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P102_specs_205; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P102_205[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P102_constr_205; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P103; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P103_specs_207; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P103_207[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P103_constr_207; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P104; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P104_specs_209; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P104_209[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P104_constr_209; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P105; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P105_specs_211; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P105_211[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P105_constr_211; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P106; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P106_specs_213; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P106_213[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P106_constr_213; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P107; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P107_specs_215; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P107_215[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P107_constr_215; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P108; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P108_specs_217; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P108_217[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P108_constr_217; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P109; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P109_specs_219; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P109_219[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P109_constr_219; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P110; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P110_specs_221; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P110_221[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P110_constr_221; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P111; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P111_specs_223; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P111_223[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P111_constr_223; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P112; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P112_specs_225; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P112_225[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P112_constr_225; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P113; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P113_specs_227; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P113_227[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P113_constr_227; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P114; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P114_specs_229; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P114_229[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P114_constr_229; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P115; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P115_specs_231; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P115_231[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P115_constr_231; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P116; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P116_specs_233; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P116_233[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P116_constr_233; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P117; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P117_specs_235; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P117_235[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P117_constr_235; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P118; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P118_specs_237; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P118_237[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P118_constr_237; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P119; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P119_specs_239; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P119_239[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P119_constr_239; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P120; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P120_specs_241; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P120_241[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P120_constr_241; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P121; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P121_specs_243; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P121_243[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P121_constr_243; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P122; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P122_specs_245; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P122_245[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P122_constr_245; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P123; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P123_specs_247; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P123_247[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P123_constr_247; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P124; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P124_specs_249; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P124_249[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P124_constr_249; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P125; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P125_specs_251; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P125_251[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P125_constr_251; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P126; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P126_specs_253; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P126_253[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P126_constr_253; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P127; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P127_specs_255; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P127_255[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P127_constr_255; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P128; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P128_specs_257; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P128_257[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P128_constr_257; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P129; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P129_specs_259; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P129_259[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P129_constr_259; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P130; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P130_specs_261; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P130_261[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P130_constr_261; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P131; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P131_specs_263; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P131_263[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P131_constr_263; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P132; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P132_specs_265; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P132_265[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P132_constr_265; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P133; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P133_specs_267; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P133_267[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P133_constr_267; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P134; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P134_specs_269; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P134_269[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P134_constr_269; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P135; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P135_specs_271; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P135_271[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P135_constr_271; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P136; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P136_specs_273; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P136_273[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P136_constr_273; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P137; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P137_specs_275; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P137_275[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P137_constr_275; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P138; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P138_specs_277; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P138_277[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P138_constr_277; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P139; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P139_specs_279; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P139_279[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P139_constr_279; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P140; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P140_specs_281; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P140_281[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P140_constr_281; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P141; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P141_specs_283; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P141_283[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P141_constr_283; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P142; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P142_specs_285; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P142_285[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P142_constr_285; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P143; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P143_specs_287; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P143_287[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P143_constr_287; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P144; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P144_specs_289; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P144_289[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P144_constr_289; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P145; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P145_specs_291; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P145_291[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P145_constr_291; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P146; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P146_specs_293; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P146_293[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P146_constr_293; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P147; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P147_specs_295; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P147_295[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P147_constr_295; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P148; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P148_specs_297; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P148_297[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P148_constr_297; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P149; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P149_specs_299; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P149_299[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P149_constr_299; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P150; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P150_specs_301; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P150_301[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P150_constr_301; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P151; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P151_specs_303; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P151_303[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P151_constr_303; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P152; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P152_specs_305; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P152_305[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P152_constr_305; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P153; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P153_specs_307; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P153_307[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P153_constr_307; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P154; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P154_specs_309; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P154_309[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P154_constr_309; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P155; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P155_specs_311; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P155_311[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P155_constr_311; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P156; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P156_specs_313; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P156_313[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P156_constr_313; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P157; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P157_specs_315; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P157_315[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P157_constr_315; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P158; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P158_specs_317; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P158_317[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P158_constr_317; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P159; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P159_specs_319; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P159_319[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P159_constr_319; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P160; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P160_specs_321; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P160_321[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P160_constr_321; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P161; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P161_specs_323; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P161_323[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P161_constr_323; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P162; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P162_specs_325; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P162_325[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P162_constr_325; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P163; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P163_specs_327; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P163_327[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P163_constr_327; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P164; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P164_specs_329; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P164_329[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P164_constr_329; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P165; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P165_specs_331; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P165_331[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P165_constr_331; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P166; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P166_specs_333; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P166_333[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P166_constr_333; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P167; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P167_specs_335; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P167_335[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P167_constr_335; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P168; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P168_specs_337; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P168_337[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P168_constr_337; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P169; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P169_specs_339; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P169_339[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P169_constr_339; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P170; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P170_specs_341; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P170_341[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P170_constr_341; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P171; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P171_specs_343; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P171_343[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P171_constr_343; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P172; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P172_specs_345; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P172_345[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P172_constr_345; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P173; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P173_specs_347; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P173_347[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P173_constr_347; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P174; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P174_specs_349; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P174_349[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P174_constr_349; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P175; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P175_specs_351; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P175_351[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P175_constr_351; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P176; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P176_specs_353; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P176_353[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P176_constr_353; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P177; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P177_specs_355; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P177_355[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P177_constr_355; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P178; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P178_specs_357; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P178_357[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P178_constr_357; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P179; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P179_specs_359; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P179_359[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P179_constr_359; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P180; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P180_specs_361; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P180_361[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P180_constr_361; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P181; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P181_specs_363; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P181_363[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P181_constr_363; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P182_specs_365; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P182_365[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P182_constr_365; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P183; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P183_specs_367; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P183_367[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P183_constr_367; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P184; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P184_specs_369; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P184_369[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P184_constr_369; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P185; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P185_specs_371; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P185_371[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P185_constr_371; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P186; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P186_specs_373; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P186_373[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P186_constr_373; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P187; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P187_specs_375; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P187_375[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P187_constr_375; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P188; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P188_specs_377; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P188_377[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P188_constr_377; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P189; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P189_specs_379; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P189_379[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P189_constr_379; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P190; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P190_specs_381; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P190_381[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P190_constr_381; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P191; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P191_specs_383; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P191_383[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P191_constr_383; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P192; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P192_specs_385; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P192_385[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P192_constr_385; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P193; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P193_specs_387; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P193_387[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P193_constr_387; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P194; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P194_specs_389; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P194_389[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P194_constr_389; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P195; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P195_specs_391; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P195_391[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P195_constr_391; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P196; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P196_specs_393; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P196_393[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P196_constr_393; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P197; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P197_specs_395; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P197_395[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P197_constr_395; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P198; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P198_specs_397; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P198_397[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P198_constr_397; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P199; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P199_specs_399; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P199_399[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P199_constr_399; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P200; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P200_specs_401; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P200_401[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P200_constr_401; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P201; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P201_specs_403; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P201_403[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P201_constr_403; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P202; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P202_specs_405; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P202_405[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P202_constr_405; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P203; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P203_specs_407; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P203_407[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P203_constr_407; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P204; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P204_specs_409; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P204_409[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P204_constr_409; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P205; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P205_specs_411; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P205_411[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P205_constr_411; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P206; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P206_specs_413; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P206_413[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P206_constr_413; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P207; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P207_specs_415; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P207_415[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P207_constr_415; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P208; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P208_specs_417; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P208_417[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P208_constr_417; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P209; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P209_specs_419; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P209_419[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P209_constr_419; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P210; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P210_specs_421; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P210_421[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P210_constr_421; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P211; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P211_specs_423; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P211_423[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P211_constr_423; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P212; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P212_specs_425; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P212_425[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P212_constr_425; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P213; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P213_specs_427; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P213_427[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P213_constr_427; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P214; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P214_specs_429; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P214_429[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P214_constr_429; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P215; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P215_specs_431; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P215_431[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P215_constr_431; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P216; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P216_specs_433; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P216_433[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P216_constr_433; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P217; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P217_specs_435; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P217_435[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P217_constr_435; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P218; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P218_specs_437; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P218_437[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P218_constr_437; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P219; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P219_specs_439; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P219_439[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P219_constr_439; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P220; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P220_specs_441; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P220_441[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P220_constr_441; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P221; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P221_specs_443; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P221_443[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P221_constr_443; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P222; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P222_specs_445; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P222_445[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P222_constr_445; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P223; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P223_specs_447; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P223_447[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P223_constr_447; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P224; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P224_specs_449; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P224_449[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P224_constr_449; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P225; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P225_specs_451; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P225_451[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P225_constr_451; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P226; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P226_specs_453; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P226_453[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P226_constr_453; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P227; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P227_specs_455; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P227_455[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P227_constr_455; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P228; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P228_specs_457; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P228_457[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P228_constr_457; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P229; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P229_specs_459; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P229_459[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P229_constr_459; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P230; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P230_specs_461; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P230_461[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P230_constr_461; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P231; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P231_specs_463; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P231_463[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P231_constr_463; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P232; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P232_specs_465; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P232_465[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P232_constr_465; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P233; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P233_specs_467; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P233_467[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P233_constr_467; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P234; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P234_specs_469; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P234_469[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P234_constr_469; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P235; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P235_specs_471; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P235_471[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P235_constr_471; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P236; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P236_specs_473; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P236_473[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P236_constr_473; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P237; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P237_specs_475; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P237_475[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P237_constr_475; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P238; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P238_specs_477; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P238_477[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P238_constr_477; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P239; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P239_specs_479; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P239_479[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P239_constr_479; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P240; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P240_specs_481; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P240_481[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P240_constr_481; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P241; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P241_specs_483; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P241_483[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P241_constr_483; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P242; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P242_specs_485; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P242_485[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P242_constr_485; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P243; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P243_specs_487; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P243_487[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P243_constr_487; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P244; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P244_specs_489; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P244_489[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P244_constr_489; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P245; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P245_specs_491; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P245_491[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P245_constr_491; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P246; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P246_specs_493; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P246_493[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P246_constr_493; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P247; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P247_specs_495; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P247_495[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P247_constr_495; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P248; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P248_specs_497; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P248_497[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P248_constr_497; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P249; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P249_specs_499; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P249_499[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P249_constr_499; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P250; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P250_specs_501; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P250_501[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P250_constr_501; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P251; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P251_specs_503; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P251_503[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P251_constr_503; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P252; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P252_specs_505; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P252_505[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P252_constr_505; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P253; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P253_specs_507; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P253_507[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P253_constr_507; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P254; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P254_specs_509; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P254_509[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P254_constr_509; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P255; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P255_specs_511; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P255_511[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P255_constr_511; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P256; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P256_specs_513; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P256_513[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P256_constr_513; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P257; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P257_specs_515; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P257_515[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P257_constr_515; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P258; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P258_specs_517; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P258_517[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P258_constr_517; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P259; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P259_specs_519; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P259_519[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P259_constr_519; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P260; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P260_specs_521; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P260_521[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P260_constr_521; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P261; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P261_specs_523; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P261_523[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P261_constr_523; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P262; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P262_specs_525; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P262_525[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P262_constr_525; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P263; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P263_specs_527; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P263_527[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P263_constr_527; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P264; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P264_specs_529; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P264_529[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P264_constr_529; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P265; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P265_specs_531; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P265_531[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P265_constr_531; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P266; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P266_specs_533; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P266_533[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P266_constr_533; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P267; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P267_specs_535; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P267_535[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P267_constr_535; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P268_specs_537; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P268_537[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P268_constr_537; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P269_specs_539; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P269_539[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P269_constr_539; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P270_specs_541; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P270_541[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P270_constr_541; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P271_specs_543; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P271_543[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P271_constr_543; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P272_specs_545; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P272_545[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P272_constr_545; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P273_specs_547; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P273_547[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P273_constr_547; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P274_specs_549; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P274_549[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P274_constr_549; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P275_specs_551; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P275_551[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P275_constr_551; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P276_specs_553; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P276_553[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P276_constr_553; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P277_specs_555; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P277_555[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P277_constr_555; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P278_specs_557; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P278_557[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P278_constr_557; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P279_specs_559; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P279_559[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P279_constr_559; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P280_specs_561; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P280_561[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P280_constr_561; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P281_specs_563; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P281_563[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P281_constr_563; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P282_specs_565; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P282_565[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P282_constr_565; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P283_specs_567; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P283_567[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P283_constr_567; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P284_specs_569; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P284_569[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P284_constr_569; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P285_specs_571; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P285_571[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P285_constr_571; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P286_specs_573; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P286_573[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P286_constr_573; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P287_specs_575; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P287_575[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P287_constr_575; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P288_specs_577; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P288_577[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P288_constr_577; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P289_specs_579; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P289_579[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P289_constr_579; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P290_specs_581; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P290_581[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P290_constr_581; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P291_specs_583; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P291_583[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P291_constr_583; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P292_specs_585; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P292_585[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P292_constr_585; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P293_specs_587; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P293_587[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P293_constr_587; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P294_specs_589; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P294_589[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P294_constr_589; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P295_specs_591; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P295_591[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P295_constr_591; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P296_specs_593; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P296_593[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P296_constr_593; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P297_specs_595; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P297_595[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P297_constr_595; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P298_specs_597; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P298_597[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P298_constr_597; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P299_specs_599; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P299_599[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P299_constr_599; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P300_specs_601; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P300_601[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P300_constr_601; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P301_specs_603; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P301_603[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P301_constr_603; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P302_specs_605; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P302_605[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P302_constr_605; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P303_specs_607; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P303_607[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P303_constr_607; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P304_specs_609; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P304_609[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P304_constr_609; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P305_specs_611; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P305_611[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P305_constr_611; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P306_specs_613; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P306_613[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P306_constr_613; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P307_specs_615; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P307_615[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P307_constr_615; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P308_specs_617; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P308_617[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P308_constr_617; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P309_specs_619; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P309_619[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P309_constr_619; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P310_specs_621; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P310_621[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P310_constr_621; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P311_specs_623; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P311_623[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P311_constr_623; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P312_specs_625; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P312_625[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P312_constr_625; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P313_specs_627; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P313_627[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P313_constr_627; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P314_specs_629; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P314_629[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P314_constr_629; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P315_specs_631; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P315_631[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P315_constr_631; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P316_specs_633; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P316_633[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P316_constr_633; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P317_specs_635; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P317_635[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P317_constr_635; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P318_specs_637; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P318_637[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P318_constr_637; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P319_specs_639; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P319_639[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P319_constr_639; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P320_specs_641; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P320_641[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P320_constr_641; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P321_specs_643; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P321_643[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P321_constr_643; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P322_specs_645; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P322_645[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P322_constr_645; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P323_specs_647; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P323_647[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P323_constr_647; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P324_specs_649; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P324_649[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P324_constr_649; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P325_specs_651; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P325_651[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P325_constr_651; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P326_specs_653; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P326_653[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P326_constr_653; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P327_specs_655; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P327_655[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P327_constr_655; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P328_specs_657; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P328_657[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P328_constr_657; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P329_specs_659; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P329_659[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P329_constr_659; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P330_specs_661; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P330_661[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P330_constr_661; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P331_specs_663; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P331_663[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P331_constr_663; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P332_specs_665; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P332_665[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P332_constr_665; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P333_specs_667; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P333_667[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P333_constr_667; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P334_specs_669; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P334_669[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P334_constr_669; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P335_specs_671; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P335_671[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P335_constr_671; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P336_specs_673; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P336_673[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P336_constr_673; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P337_specs_675; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P337_675[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P337_constr_675; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P338_specs_677; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P338_677[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P338_constr_677; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P339_specs_679; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P339_679[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P339_constr_679; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P340_specs_681; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P340_681[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P340_constr_681; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P341_specs_683; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P341_683[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P341_constr_683; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P342_specs_685; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P342_685[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P342_constr_685; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P343_specs_687; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P343_687[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P343_constr_687; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P344_specs_689; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P344_689[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P344_constr_689; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P345_specs_691; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P345_691[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P345_constr_691; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P346_specs_693; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P346_693[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P346_constr_693; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P347_specs_695; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P347_695[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P347_constr_695; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P348_specs_697; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P348_697[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P348_constr_697; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P349_specs_699; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P349_699[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P349_constr_699; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P350_specs_701; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P350_701[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P350_constr_701; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P351_specs_703; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P351_703[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P351_constr_703; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P352_specs_705; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P352_705[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P352_constr_705; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P353_specs_707; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P353_707[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P353_constr_707; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P354_specs_709; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P354_709[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P354_constr_709; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P355_specs_711; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P355_711[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P355_constr_711; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P356_specs_713; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P356_713[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P356_constr_713; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P357_specs_715; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P357_715[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P357_constr_715; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P358_specs_717; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P358_717[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P358_constr_717; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P359_specs_719; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P359_719[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P359_constr_719; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P360_specs_721; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P360_721[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P360_constr_721; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P361_specs_723; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P361_723[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P361_constr_723; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P362_specs_725; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P362_725[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P362_constr_725; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P363_specs_727; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P363_727[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P363_constr_727; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P364_specs_729; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P364_729[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P364_constr_729; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P365_specs_731; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P365_731[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P365_constr_731; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P366_specs_733; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P366_733[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P366_constr_733; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P367_specs_735; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P367_735[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P367_constr_735; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P368_specs_737; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P368_737[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P368_constr_737; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P369_specs_739; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P369_739[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P369_constr_739; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P370_specs_741; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P370_741[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P370_constr_741; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P371_specs_743; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P371_743[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P371_constr_743; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P372_specs_745; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P372_745[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P372_constr_745; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P373_specs_747; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P373_747[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P373_constr_747; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P374_specs_749; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P374_749[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P374_constr_749; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolExtensionContainer_174P375_specs_751; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolExtensionContainer_174P375_751[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionContainer_174P375_constr_751; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolExtensionContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.c b/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.c new file mode 100644 index 0000000..658c9d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.c @@ -0,0 +1,68198 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolExtensionField.h" + +static const long asn_VAL_1_ASN_NGAP_id_AdditionalRedundantDL_NGU_UP_TNLInformation = 183; +static const long asn_VAL_1_ASN_NGAP_ignore = 1; +static const long asn_VAL_1_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_1_ASN_NGAP_id_AdditionalRedundantDL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_1_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_1_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1_rows } +}; +static const long asn_VAL_2_ASN_NGAP_id_TNLAssociationTransportLayerAddressNGRAN = 168; +static const long asn_VAL_2_ASN_NGAP_reject = 0; +static const long asn_VAL_2_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_2_ASN_NGAP_id_TNLAssociationTransportLayerAddressNGRAN }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_2_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_CPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_2_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_1_rows } +}; +static const long asn_VAL_3_ASN_NGAP_id_NPN_PagingAssistanceInformation = 260; +static const long asn_VAL_3_ASN_NGAP_ignore = 1; +static const long asn_VAL_3_ASN_NGAP_optional = 0; +static const long asn_VAL_4_ASN_NGAP_id_PagingAssisDataforCEcapabUE = 207; +static const long asn_VAL_4_ASN_NGAP_ignore = 1; +static const long asn_VAL_4_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AssistanceDataForPaging_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_3_ASN_NGAP_id_NPN_PagingAssistanceInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_3_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_3_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_4_ASN_NGAP_id_PagingAssisDataforCEcapabUE }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_4_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_4_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AssistanceDataForPaging_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_AssistanceDataForPaging_ExtIEs_1_rows } +}; +static const long asn_VAL_5_ASN_NGAP_id_CurrentQoSParaSetIndex = 221; +static const long asn_VAL_5_ASN_NGAP_ignore = 1; +static const long asn_VAL_5_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_5_ASN_NGAP_id_CurrentQoSParaSetIndex }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_5_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_5_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_1_rows } +}; +static const long asn_VAL_6_ASN_NGAP_id_NPN_Support = 258; +static const long asn_VAL_6_ASN_NGAP_reject = 0; +static const long asn_VAL_6_ASN_NGAP_optional = 0; +static const long asn_VAL_7_ASN_NGAP_id_ExtendedTAISliceSupportList = 271; +static const long asn_VAL_7_ASN_NGAP_reject = 0; +static const long asn_VAL_7_ASN_NGAP_optional = 0; +static const long asn_VAL_8_ASN_NGAP_id_TAINSAGSupportList = 353; +static const long asn_VAL_8_ASN_NGAP_ignore = 1; +static const long asn_VAL_8_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastPLMNItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_6_ASN_NGAP_id_NPN_Support }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_6_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NPN_Support }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_6_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_7_ASN_NGAP_id_ExtendedTAISliceSupportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_7_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedSliceSupportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_7_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_8_ASN_NGAP_id_TAINSAGSupportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_8_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TAINSAGSupportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_8_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastPLMNItem_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_BroadcastPLMNItem_ExtIEs_1_rows } +}; +static const long asn_VAL_9_ASN_NGAP_id_EUTRA_PagingeDRXInformation = 223; +static const long asn_VAL_9_ASN_NGAP_ignore = 1; +static const long asn_VAL_9_ASN_NGAP_optional = 0; +static const long asn_VAL_10_ASN_NGAP_id_ExtendedUEIdentityIndexValue = 280; +static const long asn_VAL_10_ASN_NGAP_ignore = 1; +static const long asn_VAL_10_ASN_NGAP_optional = 0; +static const long asn_VAL_11_ASN_NGAP_id_UERadioCapabilityForPaging = 118; +static const long asn_VAL_11_ASN_NGAP_ignore = 1; +static const long asn_VAL_11_ASN_NGAP_optional = 0; +static const long asn_VAL_12_ASN_NGAP_id_MicoAllPLMN = 282; +static const long asn_VAL_12_ASN_NGAP_ignore = 1; +static const long asn_VAL_12_ASN_NGAP_optional = 0; +static const long asn_VAL_13_ASN_NGAP_id_NR_PagingeDRXInformation = 332; +static const long asn_VAL_13_ASN_NGAP_ignore = 1; +static const long asn_VAL_13_ASN_NGAP_optional = 0; +static const long asn_VAL_14_ASN_NGAP_id_PagingCauseIndicationForVoiceService = 343; +static const long asn_VAL_14_ASN_NGAP_ignore = 1; +static const long asn_VAL_14_ASN_NGAP_optional = 0; +static const long asn_VAL_15_ASN_NGAP_id_PEIPSassistanceInformation = 344; +static const long asn_VAL_15_ASN_NGAP_ignore = 1; +static const long asn_VAL_15_ASN_NGAP_optional = 0; +static const long asn_VAL_16_ASN_NGAP_id_HashedUEIdentityIndexValue = 365; +static const long asn_VAL_16_ASN_NGAP_ignore = 1; +static const long asn_VAL_16_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_9_ASN_NGAP_id_EUTRA_PagingeDRXInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_9_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_9_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_10_ASN_NGAP_id_ExtendedUEIdentityIndexValue }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_10_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_10_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_11_ASN_NGAP_id_UERadioCapabilityForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_11_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_11_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_12_ASN_NGAP_id_MicoAllPLMN }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_12_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MicoAllPLMN }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_12_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_13_ASN_NGAP_id_NR_PagingeDRXInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_13_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NR_PagingeDRXInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_13_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_14_ASN_NGAP_id_PagingCauseIndicationForVoiceService }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_14_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_14_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_15_ASN_NGAP_id_PEIPSassistanceInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_15_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_PEIPSassistanceInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_15_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_16_ASN_NGAP_id_HashedUEIdentityIndexValue }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_16_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_16_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_1_rows } +}; +static const long asn_VAL_17_ASN_NGAP_id_OldAssociatedQosFlowList_ULendmarkerexpected = 159; +static const long asn_VAL_17_ASN_NGAP_ignore = 1; +static const long asn_VAL_17_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_17_ASN_NGAP_id_OldAssociatedQosFlowList_ULendmarkerexpected }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_17_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AssociatedQosFlowList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_17_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_1_rows } +}; +static const long asn_VAL_18_ASN_NGAP_id_DAPSRequestInfo = 266; +static const long asn_VAL_18_ASN_NGAP_ignore = 1; +static const long asn_VAL_18_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_18_ASN_NGAP_id_DAPSRequestInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_18_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DAPSRequestInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_18_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_1_rows } +}; +static const long asn_VAL_19_ASN_NGAP_id_ExtendedPacketDelayBudget = 189; +static const long asn_VAL_19_ASN_NGAP_ignore = 1; +static const long asn_VAL_19_ASN_NGAP_optional = 0; +static const long asn_VAL_20_ASN_NGAP_id_CNPacketDelayBudgetDL = 187; +static const long asn_VAL_20_ASN_NGAP_ignore = 1; +static const long asn_VAL_20_ASN_NGAP_optional = 0; +static const long asn_VAL_21_ASN_NGAP_id_CNPacketDelayBudgetUL = 188; +static const long asn_VAL_21_ASN_NGAP_ignore = 1; +static const long asn_VAL_21_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_19_ASN_NGAP_id_ExtendedPacketDelayBudget }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_19_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_19_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_20_ASN_NGAP_id_CNPacketDelayBudgetDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_20_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_20_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_21_ASN_NGAP_id_CNPacketDelayBudgetUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_21_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_21_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_1_rows } +}; +static const long asn_VAL_22_ASN_NGAP_id_SourceTNLAddrInfo = 284; +static const long asn_VAL_22_ASN_NGAP_ignore = 1; +static const long asn_VAL_22_ASN_NGAP_optional = 0; +static const long asn_VAL_23_ASN_NGAP_id_SourceNodeTNLAddrInfo = 354; +static const long asn_VAL_23_ASN_NGAP_ignore = 1; +static const long asn_VAL_23_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_E_RABInformationItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_22_ASN_NGAP_id_SourceTNLAddrInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_22_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TransportLayerAddress }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_22_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_23_ASN_NGAP_id_SourceNodeTNLAddrInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_23_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TransportLayerAddress }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_23_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_E_RABInformationItem_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_E_RABInformationItem_ExtIEs_1_rows } +}; +static const long asn_VAL_24_ASN_NGAP_id_AlternativeQoSParaSetList = 220; +static const long asn_VAL_24_ASN_NGAP_ignore = 1; +static const long asn_VAL_24_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_GBR_QosInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_24_ASN_NGAP_id_AlternativeQoSParaSetList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_24_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_24_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_GBR_QosInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_GBR_QosInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_25_ASN_NGAP_id_TAI = 213; +static const long asn_VAL_25_ASN_NGAP_ignore = 1; +static const long asn_VAL_25_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_GlobalLine_ID_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_25_ASN_NGAP_id_TAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_25_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_25_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_GlobalLine_ID_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_GlobalLine_ID_ExtIEs_1_rows } +}; +static const long asn_VAL_26_ASN_NGAP_id_AdditionalDLForwardingUPTNLInformation = 152; +static const long asn_VAL_26_ASN_NGAP_ignore = 1; +static const long asn_VAL_26_ASN_NGAP_optional = 0; +static const long asn_VAL_27_ASN_NGAP_id_ULForwardingUP_TNLInformation = 164; +static const long asn_VAL_27_ASN_NGAP_reject = 0; +static const long asn_VAL_27_ASN_NGAP_optional = 0; +static const long asn_VAL_28_ASN_NGAP_id_AdditionalULForwardingUPTNLInformation = 172; +static const long asn_VAL_28_ASN_NGAP_reject = 0; +static const long asn_VAL_28_ASN_NGAP_optional = 0; +static const long asn_VAL_29_ASN_NGAP_id_DataForwardingResponseERABList = 249; +static const long asn_VAL_29_ASN_NGAP_ignore = 1; +static const long asn_VAL_29_ASN_NGAP_optional = 0; +static const long asn_VAL_30_ASN_NGAP_id_QosFlowFailedToSetupList = 283; +static const long asn_VAL_30_ASN_NGAP_ignore = 1; +static const long asn_VAL_30_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverCommandTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_26_ASN_NGAP_id_AdditionalDLForwardingUPTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_26_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_26_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_27_ASN_NGAP_id_ULForwardingUP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_27_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_27_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_28_ASN_NGAP_id_AdditionalULForwardingUPTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_28_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_28_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_29_ASN_NGAP_id_DataForwardingResponseERABList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_29_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DataForwardingResponseERABList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_29_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_30_ASN_NGAP_id_QosFlowFailedToSetupList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_30_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowListWithCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_30_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverCommandTransfer_ExtIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_HandoverCommandTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_31_ASN_NGAP_id_AdditionalDLUPTNLInformationForHOList = 153; +static const long asn_VAL_31_ASN_NGAP_ignore = 1; +static const long asn_VAL_31_ASN_NGAP_optional = 0; +static const long asn_VAL_32_ASN_NGAP_id_ULForwardingUP_TNLInformation = 164; +static const long asn_VAL_32_ASN_NGAP_reject = 0; +static const long asn_VAL_32_ASN_NGAP_optional = 0; +static const long asn_VAL_33_ASN_NGAP_id_AdditionalULForwardingUPTNLInformation = 172; +static const long asn_VAL_33_ASN_NGAP_reject = 0; +static const long asn_VAL_33_ASN_NGAP_optional = 0; +static const long asn_VAL_34_ASN_NGAP_id_DataForwardingResponseERABList = 249; +static const long asn_VAL_34_ASN_NGAP_ignore = 1; +static const long asn_VAL_34_ASN_NGAP_optional = 0; +static const long asn_VAL_35_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation = 192; +static const long asn_VAL_35_ASN_NGAP_ignore = 1; +static const long asn_VAL_35_ASN_NGAP_optional = 0; +static const long asn_VAL_36_ASN_NGAP_id_UsedRSNInformation = 198; +static const long asn_VAL_36_ASN_NGAP_ignore = 1; +static const long asn_VAL_36_ASN_NGAP_optional = 0; +static const long asn_VAL_37_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_37_ASN_NGAP_ignore = 1; +static const long asn_VAL_37_ASN_NGAP_optional = 0; +static const long asn_VAL_38_ASN_NGAP_id_MBS_SupportIndicator = 309; +static const long asn_VAL_38_ASN_NGAP_ignore = 1; +static const long asn_VAL_38_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_31_ASN_NGAP_id_AdditionalDLUPTNLInformationForHOList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_31_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_31_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_32_ASN_NGAP_id_ULForwardingUP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_32_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_32_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_33_ASN_NGAP_id_AdditionalULForwardingUPTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_33_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_33_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_34_ASN_NGAP_id_DataForwardingResponseERABList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_34_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DataForwardingResponseERABList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_34_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_35_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_35_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_35_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_36_ASN_NGAP_id_UsedRSNInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_36_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_36_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_37_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_37_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_37_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_38_ASN_NGAP_id_MBS_SupportIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_38_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_SupportIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_38_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_39_ASN_NGAP_id_ExtendedMobilityInformation = 366; +static const long asn_VAL_39_ASN_NGAP_ignore = 1; +static const long asn_VAL_39_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HOReport_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_39_ASN_NGAP_id_ExtendedMobilityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_39_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedMobilityInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_39_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HOReport_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_HOReport_ExtIEs_1_rows } +}; +static const long asn_VAL_40_ASN_NGAP_id_LastVisitedPSCellList = 289; +static const long asn_VAL_40_ASN_NGAP_ignore = 1; +static const long asn_VAL_40_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_40_ASN_NGAP_id_LastVisitedPSCellList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_40_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_LastVisitedPSCellList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_40_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_41_ASN_NGAP_id_LocationReportingAdditionalInfo = 170; +static const long asn_VAL_41_ASN_NGAP_ignore = 1; +static const long asn_VAL_41_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LocationReportingRequestType_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_41_ASN_NGAP_id_LocationReportingAdditionalInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_41_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_41_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LocationReportingRequestType_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_LocationReportingRequestType_ExtIEs_1_rows } +}; +static const long asn_VAL_42_ASN_NGAP_id_EarlyMeasurement = 360; +static const long asn_VAL_42_ASN_NGAP_ignore = 1; +static const long asn_VAL_42_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LoggedMDTNr_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_42_ASN_NGAP_id_EarlyMeasurement }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_42_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_EarlyMeasurement }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_42_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LoggedMDTNr_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_LoggedMDTNr_ExtIEs_1_rows } +}; +static const long asn_VAL_43_ASN_NGAP_id_LastEUTRAN_PLMNIdentity = 150; +static const long asn_VAL_43_ASN_NGAP_ignore = 1; +static const long asn_VAL_43_ASN_NGAP_optional = 0; +static const long asn_VAL_44_ASN_NGAP_id_CNTypeRestrictionsForServing = 161; +static const long asn_VAL_44_ASN_NGAP_ignore = 1; +static const long asn_VAL_44_ASN_NGAP_optional = 0; +static const long asn_VAL_45_ASN_NGAP_id_CNTypeRestrictionsForEquivalent = 160; +static const long asn_VAL_45_ASN_NGAP_ignore = 1; +static const long asn_VAL_45_ASN_NGAP_optional = 0; +static const long asn_VAL_46_ASN_NGAP_id_NPN_MobilityInformation = 261; +static const long asn_VAL_46_ASN_NGAP_reject = 0; +static const long asn_VAL_46_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MobilityRestrictionList_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_43_ASN_NGAP_id_LastEUTRAN_PLMNIdentity }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_43_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_PLMNIdentity }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_43_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_44_ASN_NGAP_id_CNTypeRestrictionsForServing }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_44_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_44_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_45_ASN_NGAP_id_CNTypeRestrictionsForEquivalent }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_45_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_45_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_46_ASN_NGAP_id_NPN_MobilityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_46_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NPN_MobilityInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_46_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MobilityRestrictionList_ExtIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_MobilityRestrictionList_ExtIEs_1_rows } +}; +static const long asn_VAL_47_ASN_NGAP_id_IncludeBeamMeasurementsIndication = 340; +static const long asn_VAL_47_ASN_NGAP_ignore = 1; +static const long asn_VAL_47_ASN_NGAP_optional = 0; +static const long asn_VAL_48_ASN_NGAP_id_BeamMeasurementsReportConfiguration = 361; +static const long asn_VAL_48_ASN_NGAP_ignore = 1; +static const long asn_VAL_48_ASN_NGAP_conditional = 1; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M1Configuration_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_47_ASN_NGAP_id_IncludeBeamMeasurementsIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_47_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_47_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_48_ASN_NGAP_id_BeamMeasurementsReportConfiguration }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_48_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_48_ASN_NGAP_conditional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M1Configuration_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_M1Configuration_ExtIEs_1_rows } +}; +static const long asn_VAL_49_ASN_NGAP_id_ExtendedReportIntervalMDT = 285; +static const long asn_VAL_49_ASN_NGAP_ignore = 1; +static const long asn_VAL_49_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M1PeriodicReporting_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_49_ASN_NGAP_id_ExtendedReportIntervalMDT }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_49_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_49_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M1PeriodicReporting_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_M1PeriodicReporting_ExtIEs_1_rows } +}; +static const long asn_VAL_50_ASN_NGAP_id_M4ReportAmount = 336; +static const long asn_VAL_50_ASN_NGAP_ignore = 1; +static const long asn_VAL_50_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M4Configuration_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_50_ASN_NGAP_id_M4ReportAmount }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_50_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_M4ReportAmountMDT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_50_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M4Configuration_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_M4Configuration_ExtIEs_1_rows } +}; +static const long asn_VAL_51_ASN_NGAP_id_M5ReportAmount = 337; +static const long asn_VAL_51_ASN_NGAP_ignore = 1; +static const long asn_VAL_51_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M5Configuration_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_51_ASN_NGAP_id_M5ReportAmount }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_51_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_M5ReportAmountMDT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_51_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M5Configuration_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_M5Configuration_ExtIEs_1_rows } +}; +static const long asn_VAL_52_ASN_NGAP_id_M6ReportAmount = 338; +static const long asn_VAL_52_ASN_NGAP_ignore = 1; +static const long asn_VAL_52_ASN_NGAP_optional = 0; +static const long asn_VAL_53_ASN_NGAP_id_ExcessPacketDelayThresholdConfiguration = 341; +static const long asn_VAL_53_ASN_NGAP_ignore = 1; +static const long asn_VAL_53_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M6Configuration_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_52_ASN_NGAP_id_M6ReportAmount }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_52_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_M6ReportAmountMDT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_52_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_53_ASN_NGAP_id_ExcessPacketDelayThresholdConfiguration }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_53_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_53_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M6Configuration_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_M6Configuration_ExtIEs_1_rows } +}; +static const long asn_VAL_54_ASN_NGAP_id_M7ReportAmount = 339; +static const long asn_VAL_54_ASN_NGAP_ignore = 1; +static const long asn_VAL_54_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_M7Configuration_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_54_ASN_NGAP_id_M7ReportAmount }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_54_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_M7ReportAmountMDT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_54_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_M7Configuration_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_M7Configuration_ExtIEs_1_rows } +}; +static const long asn_VAL_55_ASN_NGAP_id_CNPacketDelayBudgetDL = 187; +static const long asn_VAL_55_ASN_NGAP_ignore = 1; +static const long asn_VAL_55_ASN_NGAP_optional = 0; +static const long asn_VAL_56_ASN_NGAP_id_CNPacketDelayBudgetUL = 188; +static const long asn_VAL_56_ASN_NGAP_ignore = 1; +static const long asn_VAL_56_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_55_ASN_NGAP_id_CNPacketDelayBudgetDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_55_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_55_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_56_ASN_NGAP_id_CNPacketDelayBudgetUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_56_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_56_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_1_rows } +}; +static const long asn_VAL_57_ASN_NGAP_id_AdditionalNGU_UP_TNLInformation = 154; +static const long asn_VAL_57_ASN_NGAP_ignore = 1; +static const long asn_VAL_57_ASN_NGAP_optional = 0; +static const long asn_VAL_58_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_58_ASN_NGAP_ignore = 1; +static const long asn_VAL_58_ASN_NGAP_optional = 0; +static const long asn_VAL_59_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation = 185; +static const long asn_VAL_59_ASN_NGAP_ignore = 1; +static const long asn_VAL_59_ASN_NGAP_optional = 0; +static const long asn_VAL_60_ASN_NGAP_id_QosFlowParametersList = 277; +static const long asn_VAL_60_ASN_NGAP_ignore = 1; +static const long asn_VAL_60_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_57_ASN_NGAP_id_AdditionalNGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_57_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_57_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_58_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_58_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_58_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_59_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_59_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_59_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_60_ASN_NGAP_id_QosFlowParametersList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_60_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowParametersList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_60_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_61_ASN_NGAP_id_AdditionalDLQosFlowPerTNLInformation = 155; +static const long asn_VAL_61_ASN_NGAP_ignore = 1; +static const long asn_VAL_61_ASN_NGAP_optional = 0; +static const long asn_VAL_62_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation = 192; +static const long asn_VAL_62_ASN_NGAP_ignore = 1; +static const long asn_VAL_62_ASN_NGAP_optional = 0; +static const long asn_VAL_63_ASN_NGAP_id_RedundantDL_NGU_TNLInformationReused = 191; +static const long asn_VAL_63_ASN_NGAP_ignore = 1; +static const long asn_VAL_63_ASN_NGAP_optional = 0; +static const long asn_VAL_64_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation = 184; +static const long asn_VAL_64_ASN_NGAP_ignore = 1; +static const long asn_VAL_64_ASN_NGAP_optional = 0; +static const long asn_VAL_65_ASN_NGAP_id_UsedRSNInformation = 198; +static const long asn_VAL_65_ASN_NGAP_ignore = 1; +static const long asn_VAL_65_ASN_NGAP_optional = 0; +static const long asn_VAL_66_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_66_ASN_NGAP_ignore = 1; +static const long asn_VAL_66_ASN_NGAP_optional = 0; +static const long asn_VAL_67_ASN_NGAP_id_MBS_SupportIndicator = 309; +static const long asn_VAL_67_ASN_NGAP_ignore = 1; +static const long asn_VAL_67_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_61_ASN_NGAP_id_AdditionalDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_61_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_61_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_62_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_62_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_62_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_63_ASN_NGAP_id_RedundantDL_NGU_TNLInformationReused }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_63_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_63_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_64_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_64_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_64_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_65_ASN_NGAP_id_UsedRSNInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_65_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_65_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_66_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_66_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_66_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_67_ASN_NGAP_id_MBS_SupportIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_67_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_SupportIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_67_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_68_ASN_NGAP_id_PDUSessionResourceReleaseResponseTransfer = 145; +static const long asn_VAL_68_ASN_NGAP_ignore = 1; +static const long asn_VAL_68_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_68_ASN_NGAP_id_PDUSessionResourceReleaseResponseTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_68_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_68_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_1_rows } +}; +static const long asn_VAL_69_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_69_ASN_NGAP_ignore = 1; +static const long asn_VAL_69_ASN_NGAP_optional = 0; +static const long asn_VAL_70_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation = 185; +static const long asn_VAL_70_ASN_NGAP_ignore = 1; +static const long asn_VAL_70_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_69_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_69_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_69_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_70_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_70_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_70_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_71_ASN_NGAP_id_AdditionalNGU_UP_TNLInformation = 154; +static const long asn_VAL_71_ASN_NGAP_ignore = 1; +static const long asn_VAL_71_ASN_NGAP_optional = 0; +static const long asn_VAL_72_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation = 192; +static const long asn_VAL_72_ASN_NGAP_ignore = 1; +static const long asn_VAL_72_ASN_NGAP_optional = 0; +static const long asn_VAL_73_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_73_ASN_NGAP_ignore = 1; +static const long asn_VAL_73_ASN_NGAP_optional = 0; +static const long asn_VAL_74_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation = 184; +static const long asn_VAL_74_ASN_NGAP_ignore = 1; +static const long asn_VAL_74_ASN_NGAP_optional = 0; +static const long asn_VAL_75_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation = 185; +static const long asn_VAL_75_ASN_NGAP_ignore = 1; +static const long asn_VAL_75_ASN_NGAP_optional = 0; +static const long asn_VAL_76_ASN_NGAP_id_SecondaryRATUsageInformation = 144; +static const long asn_VAL_76_ASN_NGAP_ignore = 1; +static const long asn_VAL_76_ASN_NGAP_optional = 0; +static const long asn_VAL_77_ASN_NGAP_id_MBS_SupportIndicator = 309; +static const long asn_VAL_77_ASN_NGAP_ignore = 1; +static const long asn_VAL_77_ASN_NGAP_optional = 0; +static const long asn_VAL_78_ASN_NGAP_id_MBSSessionSetuporModifyResponseList = 313; +static const long asn_VAL_78_ASN_NGAP_ignore = 1; +static const long asn_VAL_78_ASN_NGAP_optional = 0; +static const long asn_VAL_79_ASN_NGAP_id_MBSSessionFailedtoSetuporModifyList = 311; +static const long asn_VAL_79_ASN_NGAP_ignore = 1; +static const long asn_VAL_79_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_71_ASN_NGAP_id_AdditionalNGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_71_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_71_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_72_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_72_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_72_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_73_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_73_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_73_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_74_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_74_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_74_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_75_ASN_NGAP_id_AdditionalRedundantNGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_75_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_75_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_76_ASN_NGAP_id_SecondaryRATUsageInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_76_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_76_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_77_ASN_NGAP_id_MBS_SupportIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_77_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_SupportIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_77_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_78_ASN_NGAP_id_MBSSessionSetuporModifyResponseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_78_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionSetupResponseList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_78_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_79_ASN_NGAP_id_MBSSessionFailedtoSetuporModifyList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_79_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_79_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_1[] = { + { 9, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_80_ASN_NGAP_id_SecondaryRATUsageInformation = 144; +static const long asn_VAL_80_ASN_NGAP_ignore = 1; +static const long asn_VAL_80_ASN_NGAP_optional = 0; +static const long asn_VAL_81_ASN_NGAP_id_SecurityResult = 156; +static const long asn_VAL_81_ASN_NGAP_ignore = 1; +static const long asn_VAL_81_ASN_NGAP_optional = 0; +static const long asn_VAL_82_ASN_NGAP_id_RedundantDLQosFlowPerTNLInformation = 193; +static const long asn_VAL_82_ASN_NGAP_ignore = 1; +static const long asn_VAL_82_ASN_NGAP_optional = 0; +static const long asn_VAL_83_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation = 184; +static const long asn_VAL_83_ASN_NGAP_ignore = 1; +static const long asn_VAL_83_ASN_NGAP_optional = 0; +static const long asn_VAL_84_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_84_ASN_NGAP_ignore = 1; +static const long asn_VAL_84_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_80_ASN_NGAP_id_SecondaryRATUsageInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_80_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_80_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_81_ASN_NGAP_id_SecurityResult }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_81_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecurityResult }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_81_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_82_ASN_NGAP_id_RedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_82_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_82_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_83_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_83_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_83_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_84_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_84_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_84_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_85_ASN_NGAP_id_S_NSSAI = 148; +static const long asn_VAL_85_ASN_NGAP_reject = 0; +static const long asn_VAL_85_ASN_NGAP_optional = 0; +static const long asn_VAL_86_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour = 281; +static const long asn_VAL_86_ASN_NGAP_ignore = 1; +static const long asn_VAL_86_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_85_ASN_NGAP_id_S_NSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_85_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_S_NSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_85_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_86_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_86_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_86_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_1_rows } +}; +static const long asn_VAL_87_ASN_NGAP_id_SecondaryRATUsageInformation = 144; +static const long asn_VAL_87_ASN_NGAP_ignore = 1; +static const long asn_VAL_87_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_87_ASN_NGAP_id_SecondaryRATUsageInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_87_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_87_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_88_ASN_NGAP_id_SecondaryRATUsageInformation = 144; +static const long asn_VAL_88_ASN_NGAP_ignore = 1; +static const long asn_VAL_88_ASN_NGAP_optional = 0; +static const long asn_VAL_89_ASN_NGAP_id_QosFlowFeedbackList = 278; +static const long asn_VAL_89_ASN_NGAP_ignore = 1; +static const long asn_VAL_89_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_88_ASN_NGAP_id_SecondaryRATUsageInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_88_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_88_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_89_ASN_NGAP_id_QosFlowFeedbackList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_89_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowFeedbackList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_89_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_90_ASN_NGAP_id_SecondaryRATUsageInformation = 144; +static const long asn_VAL_90_ASN_NGAP_ignore = 1; +static const long asn_VAL_90_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_90_ASN_NGAP_id_SecondaryRATUsageInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_90_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_90_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_91_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour = 281; +static const long asn_VAL_91_ASN_NGAP_ignore = 1; +static const long asn_VAL_91_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_91_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_91_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_91_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1_rows } +}; +static const long asn_VAL_92_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour = 281; +static const long asn_VAL_92_ASN_NGAP_ignore = 1; +static const long asn_VAL_92_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_92_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_92_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_92_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1_rows } +}; +static const long asn_VAL_93_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour = 281; +static const long asn_VAL_93_ASN_NGAP_ignore = 1; +static const long asn_VAL_93_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_93_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_93_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_93_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1_rows } +}; +static const long asn_VAL_94_ASN_NGAP_id_RedundantDLQosFlowPerTNLInformation = 193; +static const long asn_VAL_94_ASN_NGAP_ignore = 1; +static const long asn_VAL_94_ASN_NGAP_optional = 0; +static const long asn_VAL_95_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation = 184; +static const long asn_VAL_95_ASN_NGAP_ignore = 1; +static const long asn_VAL_95_ASN_NGAP_optional = 0; +static const long asn_VAL_96_ASN_NGAP_id_UsedRSNInformation = 198; +static const long asn_VAL_96_ASN_NGAP_ignore = 1; +static const long asn_VAL_96_ASN_NGAP_optional = 0; +static const long asn_VAL_97_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_97_ASN_NGAP_ignore = 1; +static const long asn_VAL_97_ASN_NGAP_optional = 0; +static const long asn_VAL_98_ASN_NGAP_id_MBS_SupportIndicator = 309; +static const long asn_VAL_98_ASN_NGAP_ignore = 1; +static const long asn_VAL_98_ASN_NGAP_optional = 0; +static const long asn_VAL_99_ASN_NGAP_id_MBSSessionSetupResponseList = 312; +static const long asn_VAL_99_ASN_NGAP_ignore = 1; +static const long asn_VAL_99_ASN_NGAP_optional = 0; +static const long asn_VAL_100_ASN_NGAP_id_MBSSessionFailedtoSetupList = 310; +static const long asn_VAL_100_ASN_NGAP_ignore = 1; +static const long asn_VAL_100_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_94_ASN_NGAP_id_RedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_94_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_94_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_95_ASN_NGAP_id_AdditionalRedundantDLQosFlowPerTNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_95_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_95_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_96_ASN_NGAP_id_UsedRSNInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_96_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_96_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_97_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_97_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_97_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_98_ASN_NGAP_id_MBS_SupportIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_98_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_SupportIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_98_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_99_ASN_NGAP_id_MBSSessionSetupResponseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_99_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionSetupResponseList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_99_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_100_ASN_NGAP_id_MBSSessionFailedtoSetupList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_100_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_100_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1_rows } +}; +static const long asn_VAL_101_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour = 281; +static const long asn_VAL_101_ASN_NGAP_ignore = 1; +static const long asn_VAL_101_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_101_ASN_NGAP_id_PduSessionExpectedUEActivityBehaviour }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_101_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_101_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1_rows } +}; +static const long asn_VAL_102_ASN_NGAP_id_NPN_Support = 258; +static const long asn_VAL_102_ASN_NGAP_reject = 0; +static const long asn_VAL_102_ASN_NGAP_optional = 0; +static const long asn_VAL_103_ASN_NGAP_id_ExtendedSliceSupportList = 270; +static const long asn_VAL_103_ASN_NGAP_reject = 0; +static const long asn_VAL_103_ASN_NGAP_optional = 0; +static const long asn_VAL_104_ASN_NGAP_id_OnboardingSupport = 325; +static const long asn_VAL_104_ASN_NGAP_ignore = 1; +static const long asn_VAL_104_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PLMNSupportItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_102_ASN_NGAP_id_NPN_Support }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_102_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NPN_Support }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_102_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_103_ASN_NGAP_id_ExtendedSliceSupportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_103_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedSliceSupportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_103_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_104_ASN_NGAP_id_OnboardingSupport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_104_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_OnboardingSupport }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_104_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PLMNSupportItem_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_PLMNSupportItem_ExtIEs_1_rows } +}; +static const long asn_VAL_105_ASN_NGAP_id_CurrentQoSParaSetIndex = 221; +static const long asn_VAL_105_ASN_NGAP_ignore = 1; +static const long asn_VAL_105_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_105_ASN_NGAP_id_CurrentQoSParaSetIndex }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_105_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_105_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1_rows } +}; +static const long asn_VAL_106_ASN_NGAP_id_TSCTrafficCharacteristics = 196; +static const long asn_VAL_106_ASN_NGAP_ignore = 1; +static const long asn_VAL_106_ASN_NGAP_optional = 0; +static const long asn_VAL_107_ASN_NGAP_id_RedundantQosFlowIndicator = 194; +static const long asn_VAL_107_ASN_NGAP_ignore = 1; +static const long asn_VAL_107_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_106_ASN_NGAP_id_TSCTrafficCharacteristics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_106_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TSCTrafficCharacteristics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_106_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_107_ASN_NGAP_id_RedundantQosFlowIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_107_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RedundantQosFlowIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_107_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1_rows } +}; +static const long asn_VAL_108_ASN_NGAP_id_CurrentQoSParaSetIndex = 221; +static const long asn_VAL_108_ASN_NGAP_ignore = 1; +static const long asn_VAL_108_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_108_ASN_NGAP_id_CurrentQoSParaSetIndex }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_108_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_108_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1_rows } +}; +static const long asn_VAL_109_ASN_NGAP_id_ULForwarding = 163; +static const long asn_VAL_109_ASN_NGAP_ignore = 1; +static const long asn_VAL_109_ASN_NGAP_optional = 0; +static const long asn_VAL_110_ASN_NGAP_id_SourceTNLAddrInfo = 284; +static const long asn_VAL_110_ASN_NGAP_ignore = 1; +static const long asn_VAL_110_ASN_NGAP_optional = 0; +static const long asn_VAL_111_ASN_NGAP_id_SourceNodeTNLAddrInfo = 354; +static const long asn_VAL_111_ASN_NGAP_ignore = 1; +static const long asn_VAL_111_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowInformationItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_109_ASN_NGAP_id_ULForwarding }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_109_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ULForwarding }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_109_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_110_ASN_NGAP_id_SourceTNLAddrInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_110_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TransportLayerAddress }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_110_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_111_ASN_NGAP_id_SourceNodeTNLAddrInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_111_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TransportLayerAddress }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_111_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowInformationItem_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_QosFlowInformationItem_ExtIEs_1_rows } +}; +static const long asn_VAL_112_ASN_NGAP_id_QosMonitoringRequest = 181; +static const long asn_VAL_112_ASN_NGAP_ignore = 1; +static const long asn_VAL_112_ASN_NGAP_optional = 0; +static const long asn_VAL_113_ASN_NGAP_id_QosMonitoringReportingFrequency = 276; +static const long asn_VAL_113_ASN_NGAP_ignore = 1; +static const long asn_VAL_113_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_112_ASN_NGAP_id_QosMonitoringRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_112_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosMonitoringRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_112_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_113_ASN_NGAP_id_QosMonitoringReportingFrequency }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_113_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_113_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1_rows } +}; +static const long asn_VAL_114_ASN_NGAP_id_CurrentQoSParaSetIndex = 221; +static const long asn_VAL_114_ASN_NGAP_ignore = 1; +static const long asn_VAL_114_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_114_ASN_NGAP_id_CurrentQoSParaSetIndex }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_114_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_114_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1_rows } +}; +static const long asn_VAL_115_ASN_NGAP_id_CNPacketDelayBudgetDL = 187; +static const long asn_VAL_115_ASN_NGAP_ignore = 1; +static const long asn_VAL_115_ASN_NGAP_optional = 0; +static const long asn_VAL_116_ASN_NGAP_id_CNPacketDelayBudgetUL = 188; +static const long asn_VAL_116_ASN_NGAP_ignore = 1; +static const long asn_VAL_116_ASN_NGAP_optional = 0; +static const long asn_VAL_117_ASN_NGAP_id_BurstArrivalTimeDownlink = 279; +static const long asn_VAL_117_ASN_NGAP_ignore = 1; +static const long asn_VAL_117_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowParametersItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_115_ASN_NGAP_id_CNPacketDelayBudgetDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_115_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_115_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_116_ASN_NGAP_id_CNPacketDelayBudgetUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_116_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_116_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_117_ASN_NGAP_id_BurstArrivalTimeDownlink }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_117_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_BurstArrivalTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_117_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowParametersItem_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_QosFlowParametersItem_ExtIEs_1_rows } +}; +static const long asn_VAL_118_ASN_NGAP_id_TSCTrafficCharacteristics = 196; +static const long asn_VAL_118_ASN_NGAP_ignore = 1; +static const long asn_VAL_118_ASN_NGAP_optional = 0; +static const long asn_VAL_119_ASN_NGAP_id_RedundantQosFlowIndicator = 194; +static const long asn_VAL_119_ASN_NGAP_ignore = 1; +static const long asn_VAL_119_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_118_ASN_NGAP_id_TSCTrafficCharacteristics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_118_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TSCTrafficCharacteristics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_118_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_119_ASN_NGAP_id_RedundantQosFlowIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_119_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RedundantQosFlowIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_119_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1_rows } +}; +static const long asn_VAL_120_ASN_NGAP_id_CurrentQoSParaSetIndex = 221; +static const long asn_VAL_120_ASN_NGAP_ignore = 1; +static const long asn_VAL_120_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_120_ASN_NGAP_id_CurrentQoSParaSetIndex }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_120_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_120_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1_rows } +}; +static const long asn_VAL_121_ASN_NGAP_id_ExtendedRATRestrictionInformation = 180; +static const long asn_VAL_121_ASN_NGAP_ignore = 1; +static const long asn_VAL_121_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RATRestrictions_Item_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_121_ASN_NGAP_id_ExtendedRATRestrictionInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_121_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_121_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RATRestrictions_Item_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_RATRestrictions_Item_ExtIEs_1_rows } +}; +static const long asn_VAL_122_ASN_NGAP_id_PDUSessionPairID = 331; +static const long asn_VAL_122_ASN_NGAP_ignore = 1; +static const long asn_VAL_122_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_122_ASN_NGAP_id_PDUSessionPairID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_122_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionPairID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_122_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_123_ASN_NGAP_id_MaximumIntegrityProtectedDataRate_DL = 151; +static const long asn_VAL_123_ASN_NGAP_ignore = 1; +static const long asn_VAL_123_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SecurityIndication_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_123_ASN_NGAP_id_MaximumIntegrityProtectedDataRate_DL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_123_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_123_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SecurityIndication_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_SecurityIndication_ExtIEs_1_rows } +}; +static const long asn_VAL_124_ASN_NGAP_id_GUAMIType = 176; +static const long asn_VAL_124_ASN_NGAP_ignore = 1; +static const long asn_VAL_124_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_ServedGUAMIItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_124_ASN_NGAP_id_GUAMIType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_124_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_GUAMIType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_124_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_ServedGUAMIItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_ServedGUAMIItem_ExtIEs_1_rows } +}; +static const long asn_VAL_125_ASN_NGAP_id_SgNB_UE_X2AP_ID = 182; +static const long asn_VAL_125_ASN_NGAP_ignore = 1; +static const long asn_VAL_125_ASN_NGAP_optional = 0; +static const long asn_VAL_126_ASN_NGAP_id_UEHistoryInformationFromTheUE = 253; +static const long asn_VAL_126_ASN_NGAP_ignore = 1; +static const long asn_VAL_126_ASN_NGAP_optional = 0; +static const long asn_VAL_127_ASN_NGAP_id_SourceNodeID = 286; +static const long asn_VAL_127_ASN_NGAP_ignore = 1; +static const long asn_VAL_127_ASN_NGAP_optional = 0; +static const long asn_VAL_128_ASN_NGAP_id_UEContextReferenceAtSource = 288; +static const long asn_VAL_128_ASN_NGAP_ignore = 1; +static const long asn_VAL_128_ASN_NGAP_optional = 0; +static const long asn_VAL_129_ASN_NGAP_id_MBS_ActiveSessionInformation_SourcetoTargetList = 323; +static const long asn_VAL_129_ASN_NGAP_ignore = 1; +static const long asn_VAL_129_ASN_NGAP_optional = 0; +static const long asn_VAL_130_ASN_NGAP_id_QMCConfigInfo = 328; +static const long asn_VAL_130_ASN_NGAP_ignore = 1; +static const long asn_VAL_130_ASN_NGAP_optional = 0; +static const long asn_VAL_131_ASN_NGAP_id_NGAPIESupportInformationRequestList = 355; +static const long asn_VAL_131_ASN_NGAP_ignore = 1; +static const long asn_VAL_131_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_125_ASN_NGAP_id_SgNB_UE_X2AP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_125_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_125_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_126_ASN_NGAP_id_UEHistoryInformationFromTheUE }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_126_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_126_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_127_ASN_NGAP_id_SourceNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_127_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SourceNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_127_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_128_ASN_NGAP_id_UEContextReferenceAtSource }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_128_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_128_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_129_ASN_NGAP_id_MBS_ActiveSessionInformation_SourcetoTargetList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_129_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_129_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_130_ASN_NGAP_id_QMCConfigInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_130_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_QMCConfigInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_130_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_131_ASN_NGAP_id_NGAPIESupportInformationRequestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_131_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_131_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1_rows } +}; +static const long asn_VAL_132_ASN_NGAP_id_ConfiguredTACIndication = 272; +static const long asn_VAL_132_ASN_NGAP_ignore = 1; +static const long asn_VAL_132_ASN_NGAP_optional = 0; +static const long asn_VAL_133_ASN_NGAP_id_RAT_Information = 179; +static const long asn_VAL_133_ASN_NGAP_reject = 0; +static const long asn_VAL_133_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SupportedTAItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_132_ASN_NGAP_id_ConfiguredTACIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_132_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_ConfiguredTACIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_132_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_133_ASN_NGAP_id_RAT_Information }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_133_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_RAT_Information }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_133_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SupportedTAItem_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_SupportedTAItem_ExtIEs_1_rows } +}; +static const long asn_VAL_134_ASN_NGAP_id_DAPSResponseInfoList = 267; +static const long asn_VAL_134_ASN_NGAP_ignore = 1; +static const long asn_VAL_134_ASN_NGAP_optional = 0; +static const long asn_VAL_135_ASN_NGAP_id_DirectForwardingPathAvailability = 22; +static const long asn_VAL_135_ASN_NGAP_ignore = 1; +static const long asn_VAL_135_ASN_NGAP_optional = 0; +static const long asn_VAL_136_ASN_NGAP_id_MBS_ActiveSessionInformation_TargettoSourceList = 324; +static const long asn_VAL_136_ASN_NGAP_ignore = 1; +static const long asn_VAL_136_ASN_NGAP_optional = 0; +static const long asn_VAL_137_ASN_NGAP_id_NGAPIESupportInformationResponseList = 356; +static const long asn_VAL_137_ASN_NGAP_ignore = 1; +static const long asn_VAL_137_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_134_ASN_NGAP_id_DAPSResponseInfoList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_134_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DAPSResponseInfoList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_134_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_135_ASN_NGAP_id_DirectForwardingPathAvailability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_135_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_135_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_136_ASN_NGAP_id_MBS_ActiveSessionInformation_TargettoSourceList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_136_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_136_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_137_ASN_NGAP_id_NGAPIESupportInformationResponseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_137_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_137_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1_rows } +}; +static const long asn_VAL_138_ASN_NGAP_id_NGAPIESupportInformationResponseList = 356; +static const long asn_VAL_138_ASN_NGAP_ignore = 1; +static const long asn_VAL_138_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_138_ASN_NGAP_id_NGAPIESupportInformationResponseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_138_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_138_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1_rows } +}; +static const long asn_VAL_139_ASN_NGAP_id_NR_CGI = 45; +static const long asn_VAL_139_ASN_NGAP_ignore = 1; +static const long asn_VAL_139_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_139_ASN_NGAP_id_NR_CGI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_139_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NR_CGI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_139_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1_rows } +}; +static const long asn_VAL_140_ASN_NGAP_id_MDTConfiguration = 255; +static const long asn_VAL_140_ASN_NGAP_ignore = 1; +static const long asn_VAL_140_ASN_NGAP_optional = 0; +static const long asn_VAL_141_ASN_NGAP_id_TraceCollectionEntityURI = 257; +static const long asn_VAL_141_ASN_NGAP_ignore = 1; +static const long asn_VAL_141_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TraceActivation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_140_ASN_NGAP_id_MDTConfiguration }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_140_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_MDT_Configuration }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_140_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_141_ASN_NGAP_id_TraceCollectionEntityURI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_141_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_URI_address }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_141_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TraceActivation_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_TraceActivation_ExtIEs_1_rows } +}; +static const long asn_VAL_142_ASN_NGAP_id_SurvivalTime = 327; +static const long asn_VAL_142_ASN_NGAP_ignore = 1; +static const long asn_VAL_142_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_142_ASN_NGAP_id_SurvivalTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_142_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SurvivalTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_142_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_143_ASN_NGAP_id_UERadioCapabilityForPagingOfNB_IoT = 214; +static const long asn_VAL_143_ASN_NGAP_ignore = 1; +static const long asn_VAL_143_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_143_ASN_NGAP_id_UERadioCapabilityForPagingOfNB_IoT }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_143_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_143_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1_rows } +}; +static const long asn_VAL_144_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_144_ASN_NGAP_ignore = 1; +static const long asn_VAL_144_ASN_NGAP_optional = 0; +static const long asn_VAL_145_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation = 192; +static const long asn_VAL_145_ASN_NGAP_ignore = 1; +static const long asn_VAL_145_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_144_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_144_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_144_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_145_ASN_NGAP_id_RedundantDL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_145_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_145_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1_rows } +}; +static const long asn_VAL_146_ASN_NGAP_id_CommonNetworkInstance = 166; +static const long asn_VAL_146_ASN_NGAP_ignore = 1; +static const long asn_VAL_146_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_146_ASN_NGAP_id_CommonNetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_146_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_CommonNetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_146_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1_rows } +}; +static const long asn_VAL_147_ASN_NGAP_id_PSCellInformation = 149; +static const long asn_VAL_147_ASN_NGAP_ignore = 1; +static const long asn_VAL_147_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_147_ASN_NGAP_id_PSCellInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_147_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NGRAN_CGI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_147_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1_rows } +}; +static const long asn_VAL_148_ASN_NGAP_id_TAI = 213; +static const long asn_VAL_148_ASN_NGAP_ignore = 1; +static const long asn_VAL_148_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_148_ASN_NGAP_id_TAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_148_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_148_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1_rows } +}; +static const long asn_VAL_149_ASN_NGAP_id_TAI = 213; +static const long asn_VAL_149_ASN_NGAP_ignore = 1; +static const long asn_VAL_149_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_149_ASN_NGAP_id_TAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_149_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_149_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1_rows } +}; +static const long asn_VAL_150_ASN_NGAP_id_TAI = 213; +static const long asn_VAL_150_ASN_NGAP_ignore = 1; +static const long asn_VAL_150_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_150_ASN_NGAP_id_TAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_150_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_TAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_150_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1_rows } +}; +static const long asn_VAL_151_ASN_NGAP_id_PSCellInformation = 149; +static const long asn_VAL_151_ASN_NGAP_ignore = 1; +static const long asn_VAL_151_ASN_NGAP_optional = 0; +static const long asn_VAL_152_ASN_NGAP_id_NID = 263; +static const long asn_VAL_152_ASN_NGAP_reject = 0; +static const long asn_VAL_152_ASN_NGAP_optional = 0; +static const long asn_VAL_153_ASN_NGAP_id_NRNTNTAIInformation = 287; +static const long asn_VAL_153_ASN_NGAP_ignore = 1; +static const long asn_VAL_153_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationNR_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_151_ASN_NGAP_id_PSCellInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_151_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NGRAN_CGI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_151_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_152_ASN_NGAP_id_NID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_152_ASN_NGAP_reject }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_152_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_153_ASN_NGAP_id_NRNTNTAIInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_153_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_NRNTNTAIInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_153_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationNR_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UserLocationInformationNR_ExtIEs_1_rows } +}; +static const long asn_VAL_154_ASN_NGAP_id_SCTP_TLAs = 173; +static const long asn_VAL_154_ASN_NGAP_ignore = 1; +static const long asn_VAL_154_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_XnExtTLA_Item_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolExtensionID, &asn_VAL_154_ASN_NGAP_id_SCTP_TLAs }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_154_ASN_NGAP_ignore }, + { "&Extension", aioc__type, &asn_DEF_ASN_NGAP_SCTP_TLAs }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_154_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_XnExtTLA_Item_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_XnExtTLA_Item_ExtIEs_1_rows } +}; +static int +memb_ASN_NGAP_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_AdditionalDLUPTNLInformationForHOItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_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 ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_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_ASN_NGAP_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_AdditionalDLUPTNLInformationForHOItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_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 ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_AMF_TNLAssociationToRemoveItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMF_TNLAssociationToRemoveItem_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 ASN_NGAP_AMF_TNLAssociationToRemoveItem_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_ASN_NGAP_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_AMF_TNLAssociationToRemoveItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_AMF_TNLAssociationToRemoveItem_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 ASN_NGAP_AMF_TNLAssociationToRemoveItem_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_AssistanceDataForPaging_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AssistanceDataForPaging_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 ASN_NGAP_AssistanceDataForPaging_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_ASN_NGAP_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_AssistanceDataForPaging_ExtIEs_ASN_NGAP_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_ASN_NGAP_AssistanceDataForPaging_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 ASN_NGAP_AssistanceDataForPaging_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_AssociatedQosFlowItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AssociatedQosFlowItem_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 ASN_NGAP_AssociatedQosFlowItem_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_ASN_NGAP_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_AssociatedQosFlowItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_AssociatedQosFlowItem_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 ASN_NGAP_AssociatedQosFlowItem_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_BroadcastPLMNItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastPLMNItem_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 ASN_NGAP_BroadcastPLMNItem_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_ASN_NGAP_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_BroadcastPLMNItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_BroadcastPLMNItem_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 ASN_NGAP_BroadcastPLMNItem_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_CoreNetworkAssistanceInformationForInactive_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_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 ASN_NGAP_CoreNetworkAssistanceInformationForInactive_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_ASN_NGAP_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_CoreNetworkAssistanceInformationForInactive_ExtIEs_ASN_NGAP_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_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_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 ASN_NGAP_CoreNetworkAssistanceInformationForInactive_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_DRBsSubjectToStatusTransferItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DRBsSubjectToStatusTransferItem_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 ASN_NGAP_DRBsSubjectToStatusTransferItem_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_ASN_NGAP_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_DRBsSubjectToStatusTransferItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_DRBsSubjectToStatusTransferItem_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 ASN_NGAP_DRBsSubjectToStatusTransferItem_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_DRBsToQosFlowsMappingItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DRBsToQosFlowsMappingItem_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 ASN_NGAP_DRBsToQosFlowsMappingItem_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_ASN_NGAP_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_DRBsToQosFlowsMappingItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_DRBsToQosFlowsMappingItem_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 ASN_NGAP_DRBsToQosFlowsMappingItem_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_ASN_NGAP_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_ASN_NGAP_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_Dynamic5QIDescriptor_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_Dynamic5QIDescriptor_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 ASN_NGAP_Dynamic5QIDescriptor_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_ASN_NGAP_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_Dynamic5QIDescriptor_ExtIEs_ASN_NGAP_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_ASN_NGAP_Dynamic5QIDescriptor_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 ASN_NGAP_Dynamic5QIDescriptor_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_E_RABInformationItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_E_RABInformationItem_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 ASN_NGAP_E_RABInformationItem_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_ASN_NGAP_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_E_RABInformationItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_E_RABInformationItem_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 ASN_NGAP_E_RABInformationItem_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_GBR_QosInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_GBR_QosInformation_ExtIEs_ASN_NGAP_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_ASN_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_GlobalLine_ID_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_GlobalLine_ID_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 ASN_NGAP_GlobalLine_ID_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_ASN_NGAP_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_GlobalLine_ID_ExtIEs_ASN_NGAP_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_ASN_NGAP_GlobalLine_ID_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 ASN_NGAP_GlobalLine_ID_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_HandoverCommandTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCommandTransfer_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 ASN_NGAP_HandoverCommandTransfer_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_ASN_NGAP_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_HandoverCommandTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_HandoverCommandTransfer_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 ASN_NGAP_HandoverCommandTransfer_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_HandoverRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeTransfer_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 ASN_NGAP_HandoverRequestAcknowledgeTransfer_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_ASN_NGAP_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_HandoverRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_HandoverRequestAcknowledgeTransfer_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 ASN_NGAP_HandoverRequestAcknowledgeTransfer_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_HOReport_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HOReport_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 ASN_NGAP_HOReport_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_ASN_NGAP_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_HOReport_ExtIEs_ASN_NGAP_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_ASN_NGAP_HOReport_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 ASN_NGAP_HOReport_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_LastVisitedNGRANCellInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LastVisitedNGRANCellInformation_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 ASN_NGAP_LastVisitedNGRANCellInformation_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_ASN_NGAP_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_LastVisitedNGRANCellInformation_ExtIEs_ASN_NGAP_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_ASN_NGAP_LastVisitedNGRANCellInformation_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 ASN_NGAP_LastVisitedNGRANCellInformation_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_LocationReportingRequestType_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportingRequestType_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 ASN_NGAP_LocationReportingRequestType_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_ASN_NGAP_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_LocationReportingRequestType_ExtIEs_ASN_NGAP_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_ASN_NGAP_LocationReportingRequestType_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 ASN_NGAP_LocationReportingRequestType_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_ASN_NGAP_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_ASN_NGAP_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_LoggedMDTNr_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LoggedMDTNr_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 ASN_NGAP_LoggedMDTNr_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_ASN_NGAP_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_LoggedMDTNr_ExtIEs_ASN_NGAP_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_ASN_NGAP_LoggedMDTNr_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 ASN_NGAP_LoggedMDTNr_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_MobilityRestrictionList_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MobilityRestrictionList_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 ASN_NGAP_MobilityRestrictionList_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_ASN_NGAP_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 asn_type_selector_result_t +select_MobilityRestrictionList_ExtIEs_ASN_NGAP_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_ASN_NGAP_MobilityRestrictionList_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 ASN_NGAP_MobilityRestrictionList_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_M1Configuration_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M1Configuration_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 ASN_NGAP_M1Configuration_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_ASN_NGAP_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_M1Configuration_ExtIEs_ASN_NGAP_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_ASN_NGAP_M1Configuration_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 ASN_NGAP_M1Configuration_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_M1PeriodicReporting_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M1PeriodicReporting_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 ASN_NGAP_M1PeriodicReporting_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_ASN_NGAP_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 asn_type_selector_result_t +select_M1PeriodicReporting_ExtIEs_ASN_NGAP_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_ASN_NGAP_M1PeriodicReporting_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 ASN_NGAP_M1PeriodicReporting_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_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_M4Configuration_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M4Configuration_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 ASN_NGAP_M4Configuration_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_ASN_NGAP_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 asn_type_selector_result_t +select_M4Configuration_ExtIEs_ASN_NGAP_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_ASN_NGAP_M4Configuration_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 ASN_NGAP_M4Configuration_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_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_M5Configuration_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M5Configuration_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 ASN_NGAP_M5Configuration_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_ASN_NGAP_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 asn_type_selector_result_t +select_M5Configuration_ExtIEs_ASN_NGAP_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_ASN_NGAP_M5Configuration_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 ASN_NGAP_M5Configuration_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_ASN_NGAP_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_ASN_NGAP_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_M6Configuration_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M6Configuration_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 ASN_NGAP_M6Configuration_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_ASN_NGAP_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_M6Configuration_ExtIEs_ASN_NGAP_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_ASN_NGAP_M6Configuration_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 ASN_NGAP_M6Configuration_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_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_M7Configuration_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_M7Configuration_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 ASN_NGAP_M7Configuration_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_ASN_NGAP_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 asn_type_selector_result_t +select_M7Configuration_ExtIEs_ASN_NGAP_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_ASN_NGAP_M7Configuration_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 ASN_NGAP_M7Configuration_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_NonDynamic5QIDescriptor_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NonDynamic5QIDescriptor_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 ASN_NGAP_NonDynamic5QIDescriptor_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_ASN_NGAP_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 asn_type_selector_result_t +select_NonDynamic5QIDescriptor_ExtIEs_ASN_NGAP_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_ASN_NGAP_NonDynamic5QIDescriptor_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 ASN_NGAP_NonDynamic5QIDescriptor_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_PathSwitchRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_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 ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_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_ASN_NGAP_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_PathSwitchRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_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 ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_PathSwitchRequestTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestTransfer_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 ASN_NGAP_PathSwitchRequestTransfer_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_ASN_NGAP_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_PathSwitchRequestTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PathSwitchRequestTransfer_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 ASN_NGAP_PathSwitchRequestTransfer_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_id_constraint_893(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_893(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_893(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_897(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_897(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_897(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_901(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_901(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_901(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_905(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_905(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_905(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer__constraint_912(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_909(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceItemCxtRelCpl_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_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 ASN_NGAP_PDUSessionResourceItemCxtRelCpl_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_ASN_NGAP_criticality_constraint_909(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceItemCxtRelCpl_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_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 ASN_NGAP_PDUSessionResourceItemCxtRelCpl_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_ASN_NGAP_extensionValue_constraint_909(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_913(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_913(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_913(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_917(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_917(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_917(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_921(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyConfirmTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_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 ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_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_ASN_NGAP_criticality_constraint_921(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyConfirmTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_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 ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_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_ASN_NGAP_extensionValue_constraint_921(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_925(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_925(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_925(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_929(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyResponseTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_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 ASN_NGAP_PDUSessionResourceModifyResponseTransfer_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_ASN_NGAP_criticality_constraint_929(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyResponseTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_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 ASN_NGAP_PDUSessionResourceModifyResponseTransfer_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_ASN_NGAP_extensionValue_constraint_929(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_933(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyIndicationTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_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 ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_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_ASN_NGAP_criticality_constraint_933(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyIndicationTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_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 ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_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_ASN_NGAP_extensionValue_constraint_933(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_937(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_937(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_937(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_941(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_941(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_941(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_945(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyItemModReq_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyItemModReq_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 ASN_NGAP_PDUSessionResourceModifyItemModReq_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_ASN_NGAP_criticality_constraint_945(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceModifyItemModReq_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceModifyItemModReq_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 ASN_NGAP_PDUSessionResourceModifyItemModReq_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_ASN_NGAP_extensionValue_constraint_945(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_949(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_949(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_949(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_953(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_953(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_953(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_957(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_957(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_957(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_961(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_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 ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_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_ASN_NGAP_criticality_constraint_961(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_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 ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_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_ASN_NGAP_extensionValue_constraint_961(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_965(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceNotifyTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceNotifyTransfer_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 ASN_NGAP_PDUSessionResourceNotifyTransfer_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_ASN_NGAP_criticality_constraint_965(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceNotifyTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceNotifyTransfer_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 ASN_NGAP_PDUSessionResourceNotifyTransfer_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_ASN_NGAP_extensionValue_constraint_965(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_969(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_969(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_969(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_973(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_973(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_973(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_977(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_977(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_977(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_981(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_981(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_981(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_985(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_985(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_985(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_989(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceReleaseResponseTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_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 ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_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_ASN_NGAP_criticality_constraint_989(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceReleaseResponseTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_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 ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_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_ASN_NGAP_extensionValue_constraint_989(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_993(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_993(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_993(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_997(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_997(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_997(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1001(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1001(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1001(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1005(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemCxtReq_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_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 ASN_NGAP_PDUSessionResourceSetupItemCxtReq_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_ASN_NGAP_criticality_constraint_1005(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemCxtReq_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_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 ASN_NGAP_PDUSessionResourceSetupItemCxtReq_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_ASN_NGAP_extensionValue_constraint_1005(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1009(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1009(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1009(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1013(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemHOReq_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemHOReq_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 ASN_NGAP_PDUSessionResourceSetupItemHOReq_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_ASN_NGAP_criticality_constraint_1013(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemHOReq_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceSetupItemHOReq_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 ASN_NGAP_PDUSessionResourceSetupItemHOReq_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_ASN_NGAP_extensionValue_constraint_1013(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1017(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemSUReq_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupItemSUReq_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 ASN_NGAP_PDUSessionResourceSetupItemSUReq_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_ASN_NGAP_criticality_constraint_1017(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupItemSUReq_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceSetupItemSUReq_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 ASN_NGAP_PDUSessionResourceSetupItemSUReq_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_ASN_NGAP_extensionValue_constraint_1017(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1021(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1021(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1021(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1025(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupResponseTransfer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_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 ASN_NGAP_PDUSessionResourceSetupResponseTransfer_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_ASN_NGAP_criticality_constraint_1025(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceSetupResponseTransfer_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_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 ASN_NGAP_PDUSessionResourceSetupResponseTransfer_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_ASN_NGAP_extensionValue_constraint_1025(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1029(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1029(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1029(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1033(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1033(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1033(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1037(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PDUSessionResourceSwitchedItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSwitchedItem_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 ASN_NGAP_PDUSessionResourceSwitchedItem_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_ASN_NGAP_criticality_constraint_1037(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PDUSessionResourceSwitchedItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_PDUSessionResourceSwitchedItem_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 ASN_NGAP_PDUSessionResourceSwitchedItem_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_ASN_NGAP_extensionValue_constraint_1037(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1041(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1041(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1041(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1045(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1045(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1045(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1049(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1049(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1049(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1053(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1053(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1053(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1057(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1057(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1057(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1061(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1061(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1061(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1065(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_PLMNSupportItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PLMNSupportItem_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 ASN_NGAP_PLMNSupportItem_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_ASN_NGAP_criticality_constraint_1065(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_PLMNSupportItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_PLMNSupportItem_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 ASN_NGAP_PLMNSupportItem_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_ASN_NGAP_extensionValue_constraint_1065(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1069(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1069(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1069(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1073(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1073(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1073(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1077(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1077(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1077(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1081(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowAcceptedItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowAcceptedItem_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 ASN_NGAP_QosFlowAcceptedItem_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_ASN_NGAP_criticality_constraint_1081(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowAcceptedItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowAcceptedItem_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 ASN_NGAP_QosFlowAcceptedItem_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_ASN_NGAP_extensionValue_constraint_1081(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1085(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowAddOrModifyRequestItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowAddOrModifyRequestItem_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 ASN_NGAP_QosFlowAddOrModifyRequestItem_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_ASN_NGAP_criticality_constraint_1085(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowAddOrModifyRequestItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowAddOrModifyRequestItem_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 ASN_NGAP_QosFlowAddOrModifyRequestItem_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_ASN_NGAP_extensionValue_constraint_1085(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1089(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowAddOrModifyResponseItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowAddOrModifyResponseItem_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 ASN_NGAP_QosFlowAddOrModifyResponseItem_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_ASN_NGAP_criticality_constraint_1089(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowAddOrModifyResponseItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowAddOrModifyResponseItem_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 ASN_NGAP_QosFlowAddOrModifyResponseItem_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_ASN_NGAP_extensionValue_constraint_1089(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1093(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1093(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1093(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1097(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowInformationItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowInformationItem_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 ASN_NGAP_QosFlowInformationItem_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_ASN_NGAP_criticality_constraint_1097(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowInformationItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowInformationItem_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 ASN_NGAP_QosFlowInformationItem_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_ASN_NGAP_extensionValue_constraint_1097(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowLevelQosParameters_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowLevelQosParameters_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 ASN_NGAP_QosFlowLevelQosParameters_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_ASN_NGAP_criticality_constraint_1101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowLevelQosParameters_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowLevelQosParameters_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 ASN_NGAP_QosFlowLevelQosParameters_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_ASN_NGAP_extensionValue_constraint_1101(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowNotifyItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowNotifyItem_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 ASN_NGAP_QosFlowNotifyItem_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_ASN_NGAP_criticality_constraint_1113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowNotifyItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowNotifyItem_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 ASN_NGAP_QosFlowNotifyItem_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_ASN_NGAP_extensionValue_constraint_1113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowParametersItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowParametersItem_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 ASN_NGAP_QosFlowParametersItem_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_ASN_NGAP_criticality_constraint_1117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowParametersItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowParametersItem_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 ASN_NGAP_QosFlowParametersItem_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_ASN_NGAP_extensionValue_constraint_1117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowSetupRequestItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowSetupRequestItem_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 ASN_NGAP_QosFlowSetupRequestItem_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_ASN_NGAP_criticality_constraint_1129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowSetupRequestItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowSetupRequestItem_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 ASN_NGAP_QosFlowSetupRequestItem_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_ASN_NGAP_extensionValue_constraint_1129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_QosFlowItemWithDataForwarding_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_QosFlowItemWithDataForwarding_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 ASN_NGAP_QosFlowItemWithDataForwarding_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_ASN_NGAP_criticality_constraint_1133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_QosFlowItemWithDataForwarding_ExtIEs_ASN_NGAP_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_ASN_NGAP_QosFlowItemWithDataForwarding_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 ASN_NGAP_QosFlowItemWithDataForwarding_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_ASN_NGAP_extensionValue_constraint_1133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RATRestrictions_Item_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RATRestrictions_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 ASN_NGAP_RATRestrictions_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_ASN_NGAP_criticality_constraint_1149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RATRestrictions_Item_ExtIEs_ASN_NGAP_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_ASN_NGAP_RATRestrictions_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 ASN_NGAP_RATRestrictions_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_ASN_NGAP_extensionValue_constraint_1149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RedundantPDUSessionInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RedundantPDUSessionInformation_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 ASN_NGAP_RedundantPDUSessionInformation_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_ASN_NGAP_criticality_constraint_1169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RedundantPDUSessionInformation_ExtIEs_ASN_NGAP_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_ASN_NGAP_RedundantPDUSessionInformation_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 ASN_NGAP_RedundantPDUSessionInformation_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_ASN_NGAP_extensionValue_constraint_1169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1177(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1181(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1185(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1189(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1193(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SecurityIndication_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SecurityIndication_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 ASN_NGAP_SecurityIndication_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_ASN_NGAP_criticality_constraint_1197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SecurityIndication_ExtIEs_ASN_NGAP_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_ASN_NGAP_SecurityIndication_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 ASN_NGAP_SecurityIndication_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_ASN_NGAP_extensionValue_constraint_1197(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1201(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1205(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1209(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ServedGUAMIItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_ServedGUAMIItem_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 ASN_NGAP_ServedGUAMIItem_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_ASN_NGAP_criticality_constraint_1213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ServedGUAMIItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_ServedGUAMIItem_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 ASN_NGAP_ServedGUAMIItem_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_ASN_NGAP_extensionValue_constraint_1213(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1217(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1221(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1225(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1229(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1233(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1237(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1241(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1245(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1249(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1253(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_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 ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_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_ASN_NGAP_criticality_constraint_1257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_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_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_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 ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_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_ASN_NGAP_extensionValue_constraint_1257(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1261(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1265(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_SupportedTAItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SupportedTAItem_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 ASN_NGAP_SupportedTAItem_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_ASN_NGAP_criticality_constraint_1269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_SupportedTAItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_SupportedTAItem_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 ASN_NGAP_SupportedTAItem_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_ASN_NGAP_extensionValue_constraint_1269(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1273(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1277(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1281(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1285(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1289(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1293(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1297(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1301(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1305(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1309(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_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 ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_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_ASN_NGAP_criticality_constraint_1313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_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_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_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 ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_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_ASN_NGAP_extensionValue_constraint_1313(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_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 ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_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_ASN_NGAP_criticality_constraint_1317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_ASN_NGAP_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_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_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 ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_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_ASN_NGAP_extensionValue_constraint_1317(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1321(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1325(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1329(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1333(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_TargetRANNodeID_SON_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TargetRANNodeID_SON_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 ASN_NGAP_TargetRANNodeID_SON_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_ASN_NGAP_criticality_constraint_1337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_TargetRANNodeID_SON_ExtIEs_ASN_NGAP_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_ASN_NGAP_TargetRANNodeID_SON_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 ASN_NGAP_TargetRANNodeID_SON_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_ASN_NGAP_extensionValue_constraint_1337(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1341(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1345(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1349(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1353(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + 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_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_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 ASN_NGAP_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_ASN_NGAP_criticality_constraint_1357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints 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_ASN_NGAP_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_ASN_NGAP_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 ASN_NGAP_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_ASN_NGAP_extensionValue_constraint_1357(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1361(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1365(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1369(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1373(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_TSCAssistanceInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TSCAssistanceInformation_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 ASN_NGAP_TSCAssistanceInformation_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_ASN_NGAP_criticality_constraint_1377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_TSCAssistanceInformation_ExtIEs_ASN_NGAP_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_ASN_NGAP_TSCAssistanceInformation_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 ASN_NGAP_TSCAssistanceInformation_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_ASN_NGAP_extensionValue_constraint_1377(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1381(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1385(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1389(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1393(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1397(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1401(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1405(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1409(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1413(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1417(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1421(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UERadioCapabilityForPaging_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityForPaging_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 ASN_NGAP_UERadioCapabilityForPaging_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_ASN_NGAP_criticality_constraint_1425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UERadioCapabilityForPaging_ExtIEs_ASN_NGAP_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_ASN_NGAP_UERadioCapabilityForPaging_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 ASN_NGAP_UERadioCapabilityForPaging_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_ASN_NGAP_extensionValue_constraint_1425(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1429(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1433(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1437(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UL_NGU_UP_TNLModifyItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UL_NGU_UP_TNLModifyItem_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 ASN_NGAP_UL_NGU_UP_TNLModifyItem_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_ASN_NGAP_criticality_constraint_1441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UL_NGU_UP_TNLModifyItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_UL_NGU_UP_TNLModifyItem_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 ASN_NGAP_UL_NGU_UP_TNLModifyItem_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_ASN_NGAP_extensionValue_constraint_1441(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1445(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UPTransportLayerInformationItem_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UPTransportLayerInformationItem_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 ASN_NGAP_UPTransportLayerInformationItem_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_ASN_NGAP_criticality_constraint_1449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UPTransportLayerInformationItem_ExtIEs_ASN_NGAP_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_ASN_NGAP_UPTransportLayerInformationItem_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 ASN_NGAP_UPTransportLayerInformationItem_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_ASN_NGAP_extensionValue_constraint_1449(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1453(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1453(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1453(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1457(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UserLocationInformationEUTRA_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationEUTRA_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 ASN_NGAP_UserLocationInformationEUTRA_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_ASN_NGAP_criticality_constraint_1457(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UserLocationInformationEUTRA_ExtIEs_ASN_NGAP_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_ASN_NGAP_UserLocationInformationEUTRA_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 ASN_NGAP_UserLocationInformationEUTRA_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_ASN_NGAP_extensionValue_constraint_1457(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1461(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UserLocationInformationN3IWF_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationN3IWF_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 ASN_NGAP_UserLocationInformationN3IWF_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_ASN_NGAP_criticality_constraint_1461(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UserLocationInformationN3IWF_ExtIEs_ASN_NGAP_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_ASN_NGAP_UserLocationInformationN3IWF_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 ASN_NGAP_UserLocationInformationN3IWF_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_ASN_NGAP_extensionValue_constraint_1461(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1465(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UserLocationInformationTNGF_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationTNGF_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 ASN_NGAP_UserLocationInformationTNGF_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_ASN_NGAP_criticality_constraint_1465(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UserLocationInformationTNGF_ExtIEs_ASN_NGAP_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_ASN_NGAP_UserLocationInformationTNGF_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 ASN_NGAP_UserLocationInformationTNGF_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_ASN_NGAP_extensionValue_constraint_1465(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1469(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UserLocationInformationTWIF_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationTWIF_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 ASN_NGAP_UserLocationInformationTWIF_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_ASN_NGAP_criticality_constraint_1469(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UserLocationInformationTWIF_ExtIEs_ASN_NGAP_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_ASN_NGAP_UserLocationInformationTWIF_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 ASN_NGAP_UserLocationInformationTWIF_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_ASN_NGAP_extensionValue_constraint_1469(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1473(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_UserLocationInformationNR_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationNR_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 ASN_NGAP_UserLocationInformationNR_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_ASN_NGAP_criticality_constraint_1473(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_UserLocationInformationNR_ExtIEs_ASN_NGAP_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_ASN_NGAP_UserLocationInformationNR_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 ASN_NGAP_UserLocationInformationNR_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_ASN_NGAP_extensionValue_constraint_1473(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1477(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1477(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1477(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1481(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1481(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1481(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1485(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1485(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1485(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1489(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1489(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1489(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1493(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1493(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1493(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1497(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_XnExtTLA_Item_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_XnExtTLA_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 ASN_NGAP_XnExtTLA_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_ASN_NGAP_criticality_constraint_1497(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_XnExtTLA_Item_ExtIEs_ASN_NGAP_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_ASN_NGAP_XnExtTLA_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 ASN_NGAP_XnExtTLA_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_ASN_NGAP_extensionValue_constraint_1497(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_id_constraint_1501(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_criticality_constraint_1501(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_extensionValue_constraint_1501(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + 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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_894 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_895 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_896 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_898 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_899 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_900 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_902 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_903 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_904 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_906 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_907 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_908 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer__constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_910 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_911 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_912 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_914 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_915 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_916 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_918 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_919 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_920 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_922 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_923 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_924 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_926 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_927 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_928 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_930 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_931 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_932 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_934 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_935 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_936 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_938 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_939 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_940 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_942 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_943 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_944 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_946 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_947 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_948 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_950 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_951 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_952 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_954 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_955 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_956 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_958 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_959 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_960 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_962 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_963 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_964 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_966 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_967 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_968 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_970 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_971 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_972 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_974 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_975 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_976 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_978 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_979 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_980 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_982 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_983 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_984 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_986 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_987 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_988 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_990 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_991 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_992 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_994 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_995 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_996 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_998 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_999 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1000 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1002 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1003 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1004 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1006 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1007 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1008 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1010 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1011 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1012 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1014 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1015 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1016 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1018 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1019 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1020 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1022 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1023 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1024 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1026 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1027 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1028 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1030 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1031 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1032 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1034 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1035 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1036 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1038 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1039 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1040 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1042 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1043 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1044 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1046 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1047 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1048 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1050 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1051 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1052 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1054 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1055 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1056 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1058 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1059 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1060 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1062 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1063 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1064 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1066 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1067 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1068 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1070 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1071 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1072 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1074 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1075 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1076 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1078 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1079 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1080 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1082 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1083 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1084 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1086 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1087 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1088 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1090 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1091 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1092 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1094 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1095 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1096 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1098 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1099 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1100 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1102 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1103 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1110 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1111 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1112 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1114 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1115 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1116 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1118 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1119 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1120 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1122 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1123 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1124 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1126 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1127 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1128 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1130 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1131 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1132 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1134 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1135 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1136 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1138 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1139 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1140 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1142 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1143 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1144 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1146 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1147 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1148 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1150 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1151 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1152 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1154 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1155 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1156 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1158 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1159 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1160 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1162 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1163 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1164 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1166 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1167 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1170 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1171 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1175 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1176 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1178 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1179 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1180 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1182 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1183 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1184 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1186 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1187 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1188 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1190 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1191 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1192 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1194 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1195 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1196 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1198 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1199 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1200 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1202 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1203 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1204 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1206 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1207 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1208 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1210 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1211 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1212 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1214 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1215 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1216 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1218 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1219 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1220 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1222 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1223 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1224 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1226 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1227 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1228 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1230 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1231 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1232 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1234 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1235 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1236 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1238 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1239 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1240 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1242 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1243 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1244 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1246 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1247 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1248 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1250 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1251 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1252 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1254 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1255 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1256 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1258 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1259 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1260 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1262 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1263 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1264 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1266 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1267 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1268 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1270 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1271 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1272 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1274 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1275 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1276 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1278 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1279 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1280 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1282 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1283 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1284 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1286 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1287 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1288 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1290 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1291 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1292 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1294 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1295 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1296 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1298 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1299 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1300 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1302 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1303 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1304 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1306 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1307 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1308 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1310 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1311 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1312 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1314 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1315 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1316 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1318 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1319 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1320 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1322 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1323 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1324 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1326 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1327 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1328 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1330 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1331 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1332 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1334 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1335 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1336 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1338 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1339 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1340 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1342 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1343 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1344 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1346 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1347 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1348 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1350 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1351 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1352 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1354 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1355 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1356 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1358 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1359 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1360 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1362 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1363 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1364 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1366 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1367 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1368 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1370 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1371 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1372 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1374 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1375 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1376 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1378 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1379 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1380 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1382 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1383 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1384 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1386 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1387 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1388 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1390 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1391 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1392 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1394 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1395 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1396 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1398 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1399 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1400 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1402 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1403 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1404 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1406 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1407 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1408 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1410 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1411 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1412 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1414 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1415 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1416 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1418 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1419 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1420 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1422 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1423 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1424 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1426 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1427 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1428 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1430 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1431 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1432 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1434 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1435 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1436 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1438 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1439 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1440 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1442 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1443 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1444 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1446 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1447 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1448 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1450 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1451 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1452 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1454 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1455 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1456 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1458 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1459 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1460 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1462 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1463 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1464 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1466 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1467 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1468 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1470 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1471 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1472 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1474 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1475 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1476 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1478 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1479 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1480 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1482 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1483 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1484 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1486 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1487 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1488 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1490 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1491 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1492 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1494 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1495 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1496 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1498 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1499 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1500 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_id_constr_1502 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_criticality_constr_1503 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_extensionValue_constr_1504 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_ASN_NGAP_extensionValue_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_4 = { + sizeof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_4, + 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_ASN_NGAP_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_ASN_NGAP_extensionValue_4, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_2, memb_ASN_NGAP_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AdditionalDLUPTNLInformationForHOItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_4, + select_AdditionalDLUPTNLInformationForHOItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_4, memb_ASN_NGAP_extensionValue_constraint_1 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_specs_1 = { + sizeof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs), + offsetof(struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs = { + "AdditionalDLUPTNLInformationForHOItem-ExtIEs", + "AdditionalDLUPTNLInformationForHOItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_8 = { + sizeof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_6, memb_ASN_NGAP_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_7, memb_ASN_NGAP_criticality_constraint_5 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_8, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_8, memb_ASN_NGAP_extensionValue_constraint_5 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_specs_5 = { + sizeof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs), + offsetof(struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs = { + "AllocationAndRetentionPriority-ExtIEs", + "AllocationAndRetentionPriority-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5, + sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5) + /sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5) + /sizeof(asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_5, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_specs_5 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_12 = { + sizeof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AllowedNSSAI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_10, memb_ASN_NGAP_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_11, memb_ASN_NGAP_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_12, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_12, memb_ASN_NGAP_extensionValue_constraint_9 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tag2el_9[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_specs_9 = { + sizeof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs), + offsetof(struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs = { + "AllowedNSSAI-Item-ExtIEs", + "AllowedNSSAI-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9, + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9[0]), /* 1 */ + asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9) + /sizeof(asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_9, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_specs_9 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_16 = { + sizeof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_Allowed_PNI_NPN_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_14, memb_ASN_NGAP_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_15, memb_ASN_NGAP_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_16, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_16, memb_ASN_NGAP_extensionValue_constraint_13 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tag2el_13[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_specs_13 = { + sizeof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs), + offsetof(struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs = { + "Allowed-PNI-NPN-Item-ExtIEs", + "Allowed-PNI-NPN-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13, + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13[0]), /* 1 */ + asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13) + /sizeof(asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_13, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_20 = { + sizeof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AlternativeQoSParaSetItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_18, memb_ASN_NGAP_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_19, memb_ASN_NGAP_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_20, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_20, memb_ASN_NGAP_extensionValue_constraint_17 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_specs_17 = { + sizeof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs), + offsetof(struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tag2el_17, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs = { + "AlternativeQoSParaSetItem-ExtIEs", + "AlternativeQoSParaSetItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17, + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17[0]), /* 1 */ + asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17) + /sizeof(asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_17, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_specs_17 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_24 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AMF_TNLAssociationSetupItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_22, memb_ASN_NGAP_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_23, memb_ASN_NGAP_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_24, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_24, memb_ASN_NGAP_extensionValue_constraint_21 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_specs_21 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs), + offsetof(struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tag2el_21, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs = { + "AMF-TNLAssociationSetupItem-ExtIEs", + "AMF-TNLAssociationSetupItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_21, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_specs_21 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_28 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AMF_TNLAssociationToAddItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_26, memb_ASN_NGAP_id_constraint_25 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_27, memb_ASN_NGAP_criticality_constraint_25 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_28, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_28, memb_ASN_NGAP_extensionValue_constraint_25 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_specs_25 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs = { + "AMF-TNLAssociationToAddItem-ExtIEs", + "AMF-TNLAssociationToAddItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_25, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue, choice.CPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CPTransportLayerInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_32[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* endpointIPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_32 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_32, + 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_ASN_NGAP_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_ASN_NGAP_extensionValue_32, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_30, memb_ASN_NGAP_id_constraint_29 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMF_TNLAssociationToRemoveItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_31, memb_ASN_NGAP_criticality_constraint_29 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_32, + select_AMF_TNLAssociationToRemoveItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_32, memb_ASN_NGAP_extensionValue_constraint_29 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_specs_29 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tag2el_29, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs = { + "AMF-TNLAssociationToRemoveItem-ExtIEs", + "AMF-TNLAssociationToRemoveItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_29, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_specs_29 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_36 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_34, memb_ASN_NGAP_id_constraint_33 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_35, memb_ASN_NGAP_criticality_constraint_33 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_36, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_36, memb_ASN_NGAP_extensionValue_constraint_33 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_specs_33 = { + sizeof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs), + offsetof(struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tag2el_33, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs = { + "AMF-TNLAssociationToUpdateItem-ExtIEs", + "AMF-TNLAssociationToUpdateItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33, + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33) + /sizeof(asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_33, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_specs_33 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_40 = { + sizeof(struct ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaOfInterest_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterest_ExtIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_38, memb_ASN_NGAP_id_constraint_37 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_39, memb_ASN_NGAP_criticality_constraint_37 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_40, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_40, memb_ASN_NGAP_extensionValue_constraint_37 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterest_ExtIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterest_ExtIEs_specs_37 = { + sizeof(struct ASN_NGAP_AreaOfInterest_ExtIEs), + offsetof(struct ASN_NGAP_AreaOfInterest_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterest_ExtIEs_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs = { + "AreaOfInterest-ExtIEs", + "AreaOfInterest-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterest_ExtIEs_37, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterest_ExtIEs_specs_37 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_44 = { + sizeof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaOfInterestCellItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_42, memb_ASN_NGAP_id_constraint_41 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_43, memb_ASN_NGAP_criticality_constraint_41 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_44, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_44, memb_ASN_NGAP_extensionValue_constraint_41 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_specs_41 = { + sizeof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs), + offsetof(struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tag2el_41, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs = { + "AreaOfInterestCellItem-ExtIEs", + "AreaOfInterestCellItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_41, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_specs_41 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_48 = { + sizeof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaOfInterestItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestItem_ExtIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_46, memb_ASN_NGAP_id_constraint_45 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_47, memb_ASN_NGAP_criticality_constraint_45 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_48, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_48, memb_ASN_NGAP_extensionValue_constraint_45 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestItem_ExtIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestItem_ExtIEs_specs_45 = { + sizeof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs), + offsetof(struct ASN_NGAP_AreaOfInterestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestItem_ExtIEs_tag2el_45, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs = { + "AreaOfInterestItem-ExtIEs", + "AreaOfInterestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestItem_ExtIEs_45, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestItem_ExtIEs_specs_45 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_52 = { + sizeof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaOfInterestRANNodeItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_50, memb_ASN_NGAP_id_constraint_49 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_51, memb_ASN_NGAP_criticality_constraint_49 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_52, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_52, memb_ASN_NGAP_extensionValue_constraint_49 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_specs_49 = { + sizeof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs), + offsetof(struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs = { + "AreaOfInterestRANNodeItem-ExtIEs", + "AreaOfInterestRANNodeItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_49, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_specs_49 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_56 = { + sizeof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaOfInterestTAIItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_56 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_54, memb_ASN_NGAP_id_constraint_53 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_55, memb_ASN_NGAP_criticality_constraint_53 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_56, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_56, memb_ASN_NGAP_extensionValue_constraint_53 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_specs_53 = { + sizeof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs), + offsetof(struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tag2el_53, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs = { + "AreaOfInterestTAIItem-ExtIEs", + "AreaOfInterestTAIItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53, + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53) + /sizeof(asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_53, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue, choice.NPN_PagingAssistanceInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-PagingAssistanceInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue, choice.PagingAssisDataforCEcapabUE), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingAssisDataforCEcapabUE" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_60[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_60[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_60[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* PagingAssisDataforCEcapabUE */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pNI-NPN-PagingAssistance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_60 = { + sizeof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_60, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_60, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_60, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_60, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForPaging_ExtIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_58, memb_ASN_NGAP_id_constraint_57 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AssistanceDataForPaging_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_59, memb_ASN_NGAP_criticality_constraint_57 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_60, + select_AssistanceDataForPaging_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_60, memb_ASN_NGAP_extensionValue_constraint_57 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForPaging_ExtIEs_specs_57 = { + sizeof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs), + offsetof(struct ASN_NGAP_AssistanceDataForPaging_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tag2el_57, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs = { + "AssistanceDataForPaging-ExtIEs", + "AssistanceDataForPaging-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57, + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssistanceDataForPaging_ExtIEs_57, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssistanceDataForPaging_ExtIEs_specs_57 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_64 = { + sizeof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AssistanceDataForRecommendedCells_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_62, memb_ASN_NGAP_id_constraint_61 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_63, memb_ASN_NGAP_criticality_constraint_61 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_64, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_64, memb_ASN_NGAP_extensionValue_constraint_61 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_specs_61 = { + sizeof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs), + offsetof(struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs = { + "AssistanceDataForRecommendedCells-ExtIEs", + "AssistanceDataForRecommendedCells-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61, + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61) + /sizeof(asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_61, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_68 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_66, memb_ASN_NGAP_id_constraint_65 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_67, memb_ASN_NGAP_criticality_constraint_65 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_68, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_68, memb_ASN_NGAP_extensionValue_constraint_65 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_specs_65 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tag2el_65, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs = { + "AssociatedMBSQosFlowSetupRequestItem-ExtIEs", + "AssociatedMBSQosFlowSetupRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_65, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_specs_65 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_72 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_70, memb_ASN_NGAP_id_constraint_69 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_71, memb_ASN_NGAP_criticality_constraint_69 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_72, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_72, memb_ASN_NGAP_extensionValue_constraint_69 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tag2el_69[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_specs_69 = { + sizeof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tag2el_69, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs = { + "AssociatedMBSQosFlowSetuporModifyRequestItem-ExtIEs", + "AssociatedMBSQosFlowSetuporModifyRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69, + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69) + /sizeof(asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_69, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_specs_69 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue, choice.AlternativeQoSParaSetIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetIndex" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_76[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetIndex */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_76 = { + sizeof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_76, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_76, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_74, memb_ASN_NGAP_id_constraint_73 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AssociatedQosFlowItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_75, memb_ASN_NGAP_criticality_constraint_73 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_76, + select_AssociatedQosFlowItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_76, memb_ASN_NGAP_extensionValue_constraint_73 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tag2el_73[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_specs_73 = { + sizeof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs), + offsetof(struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs = { + "AssociatedQosFlowItem-ExtIEs", + "AssociatedQosFlowItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73, + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73[0]), /* 1 */ + asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73) + /sizeof(asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_73, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_80 = { + sizeof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AreaScopeOfNeighCellsItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_78, memb_ASN_NGAP_id_constraint_77 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_79, memb_ASN_NGAP_criticality_constraint_77 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_80, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_80, memb_ASN_NGAP_extensionValue_constraint_77 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tag2el_77[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_specs_77 = { + sizeof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs), + offsetof(struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tag2el_77, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs = { + "AreaScopeOfNeighCellsItem-ExtIEs", + "AreaScopeOfNeighCellsItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_tags_77[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_77, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_specs_77 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_84 = { + sizeof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_AvailableRANVisibleQoEMetrics_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_82, memb_ASN_NGAP_id_constraint_81 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_83, memb_ASN_NGAP_criticality_constraint_81 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_84, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_84, memb_ASN_NGAP_extensionValue_constraint_81 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_specs_81 = { + sizeof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs), + offsetof(struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tag2el_81, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs = { + "AvailableRANVisibleQoEMetrics-ExtIEs", + "AvailableRANVisibleQoEMetrics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81, + sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81) + /sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81[0]), /* 1 */ + asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81) + /sizeof(asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_tags_81[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_81, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_specs_81 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_88 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_BeamMeasurementsReportConfiguration_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_86, memb_ASN_NGAP_id_constraint_85 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_87, memb_ASN_NGAP_criticality_constraint_85 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_88, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_88, memb_ASN_NGAP_extensionValue_constraint_85 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tag2el_85[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_specs_85 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs), + offsetof(struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tag2el_85, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs = { + "BeamMeasurementsReportConfiguration-ExtIEs", + "BeamMeasurementsReportConfiguration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85, + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85[0]), /* 1 */ + asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_tags_85[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_85, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_specs_85 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_92 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_BeamMeasurementsReportQuantity_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_92 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_90, memb_ASN_NGAP_id_constraint_89 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_91, memb_ASN_NGAP_criticality_constraint_89 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_92, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_92, memb_ASN_NGAP_extensionValue_constraint_89 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tag2el_89[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_specs_89 = { + sizeof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs), + offsetof(struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tag2el_89, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs = { + "BeamMeasurementsReportQuantity-ExtIEs", + "BeamMeasurementsReportQuantity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89, + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89[0]), /* 1 */ + asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89) + /sizeof(asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_tags_89[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_89, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_specs_89 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue, choice.NPN_Support), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_Support, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-Support" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue, choice.ExtendedSliceSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedSliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedSliceSupportList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue, choice.TAINSAGSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAINSAGSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAINSAGSupportList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_96[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_96[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* ExtendedSliceSupportList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* TAINSAGSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sNPN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_96 = { + sizeof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_96, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_96, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_96, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_96, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNItem_ExtIEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_94, memb_ASN_NGAP_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastPLMNItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_95, memb_ASN_NGAP_criticality_constraint_93 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_96, + select_BroadcastPLMNItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_96, memb_ASN_NGAP_extensionValue_constraint_93 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tag2el_93[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNItem_ExtIEs_specs_93 = { + sizeof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs), + offsetof(struct ASN_NGAP_BroadcastPLMNItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tag2el_93, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs = { + "BroadcastPLMNItem-ExtIEs", + "BroadcastPLMNItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93, + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93) + /sizeof(asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs_tags_93[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastPLMNItem_ExtIEs_93, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastPLMNItem_ExtIEs_specs_93 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_100 = { + sizeof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_98, memb_ASN_NGAP_id_constraint_97 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_99, memb_ASN_NGAP_criticality_constraint_97 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_100, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_100, memb_ASN_NGAP_extensionValue_constraint_97 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_97[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_specs_97 = { + sizeof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs), + offsetof(struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tag2el_97, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs = { + "BluetoothMeasurementConfiguration-ExtIEs", + "BluetoothMeasurementConfiguration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_tags_97[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_97, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_specs_97 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_104 = { + sizeof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_BluetoothMeasConfigNameItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_102, memb_ASN_NGAP_id_constraint_101 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_103, memb_ASN_NGAP_criticality_constraint_101 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_104, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_104, memb_ASN_NGAP_extensionValue_constraint_101 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tag2el_101[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_specs_101 = { + sizeof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs), + offsetof(struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tag2el_101, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs = { + "BluetoothMeasConfigNameItem-ExtIEs", + "BluetoothMeasConfigNameItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101, + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101[0]), /* 1 */ + asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101) + /sizeof(asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_tags_101[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_101, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_specs_101 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_108 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CancelledCellsInEAI_EUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_106, memb_ASN_NGAP_id_constraint_105 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_107, memb_ASN_NGAP_criticality_constraint_105 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_108, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_108, memb_ASN_NGAP_extensionValue_constraint_105 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tag2el_105[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_specs_105 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tag2el_105, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs = { + "CancelledCellsInEAI-EUTRA-Item-ExtIEs", + "CancelledCellsInEAI-EUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_tags_105[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_105, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_specs_105 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_112 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CancelledCellsInEAI_NR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_110, memb_ASN_NGAP_id_constraint_109 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_111, memb_ASN_NGAP_criticality_constraint_109 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_112, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_112, memb_ASN_NGAP_extensionValue_constraint_109 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tag2el_109[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_specs_109 = { + sizeof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tag2el_109, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs = { + "CancelledCellsInEAI-NR-Item-ExtIEs", + "CancelledCellsInEAI-NR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_tags_109[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_109, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_specs_109 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_116 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CancelledCellsInTAI_EUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_114, memb_ASN_NGAP_id_constraint_113 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_115, memb_ASN_NGAP_criticality_constraint_113 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_116, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_116, memb_ASN_NGAP_extensionValue_constraint_113 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tag2el_113[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_specs_113 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tag2el_113, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs = { + "CancelledCellsInTAI-EUTRA-Item-ExtIEs", + "CancelledCellsInTAI-EUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_tags_113[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_113, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_specs_113 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_120 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CancelledCellsInTAI_NR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_118, memb_ASN_NGAP_id_constraint_117 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_119, memb_ASN_NGAP_criticality_constraint_117 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_120, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_120, memb_ASN_NGAP_extensionValue_constraint_117 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_specs_117 = { + sizeof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tag2el_117, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs = { + "CancelledCellsInTAI-NR-Item-ExtIEs", + "CancelledCellsInTAI-NR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117, + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117[0]), /* 1 */ + asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117) + /sizeof(asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_tags_117[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_117, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_specs_117 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_124 = { + sizeof(struct ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CandidateCellItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellItem_ExtIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_122, memb_ASN_NGAP_id_constraint_121 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_123, memb_ASN_NGAP_criticality_constraint_121 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_124, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_124, memb_ASN_NGAP_extensionValue_constraint_121 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCellItem_ExtIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellItem_ExtIEs_specs_121 = { + sizeof(struct ASN_NGAP_CandidateCellItem_ExtIEs), + offsetof(struct ASN_NGAP_CandidateCellItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CandidateCellItem_ExtIEs_tag2el_121, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs = { + "CandidateCellItem-ExtIEs", + "CandidateCellItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121, + sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs_tags_121[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCellItem_ExtIEs_121, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCellItem_ExtIEs_specs_121 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_128 = { + sizeof(struct ASN_NGAP_CandidateCellID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CandidateCellID_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellID_ExtIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_126, memb_ASN_NGAP_id_constraint_125 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_127, memb_ASN_NGAP_criticality_constraint_125 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_128, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_128, memb_ASN_NGAP_extensionValue_constraint_125 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCellID_ExtIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellID_ExtIEs_specs_125 = { + sizeof(struct ASN_NGAP_CandidateCellID_ExtIEs), + offsetof(struct ASN_NGAP_CandidateCellID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CandidateCellID_ExtIEs_tag2el_125, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs = { + "CandidateCellID-ExtIEs", + "CandidateCellID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125, + sizeof(asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125) + /sizeof(asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs_tags_125[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCellID_ExtIEs_125, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCellID_ExtIEs_specs_125 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_132 = { + sizeof(struct ASN_NGAP_CandidatePCI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CandidatePCI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidatePCI_ExtIEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_130, memb_ASN_NGAP_id_constraint_129 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_131, memb_ASN_NGAP_criticality_constraint_129 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_132, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_132, memb_ASN_NGAP_extensionValue_constraint_129 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidatePCI_ExtIEs_tag2el_129[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidatePCI_ExtIEs_specs_129 = { + sizeof(struct ASN_NGAP_CandidatePCI_ExtIEs), + offsetof(struct ASN_NGAP_CandidatePCI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CandidatePCI_ExtIEs_tag2el_129, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs = { + "CandidatePCI-ExtIEs", + "CandidatePCI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129, + sizeof(asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129) + /sizeof(asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129) + /sizeof(asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs_tags_129[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidatePCI_ExtIEs_129, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidatePCI_ExtIEs_specs_129 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_136 = { + sizeof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_Cell_CAGInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Cell_CAGInformation_ExtIEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_134, memb_ASN_NGAP_id_constraint_133 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_135, memb_ASN_NGAP_criticality_constraint_133 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_136, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_136, memb_ASN_NGAP_extensionValue_constraint_133 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Cell_CAGInformation_ExtIEs_tag2el_133[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cell_CAGInformation_ExtIEs_specs_133 = { + sizeof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs), + offsetof(struct ASN_NGAP_Cell_CAGInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Cell_CAGInformation_ExtIEs_tag2el_133, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs = { + "Cell-CAGInformation-ExtIEs", + "Cell-CAGInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133, + sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133) + /sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133[0]), /* 1 */ + asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133) + /sizeof(asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs_tags_133[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Cell_CAGInformation_ExtIEs_133, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Cell_CAGInformation_ExtIEs_specs_133 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_140 = { + sizeof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellIDBroadcastEUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_138, memb_ASN_NGAP_id_constraint_137 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_139, memb_ASN_NGAP_criticality_constraint_137 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_140, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_140, memb_ASN_NGAP_extensionValue_constraint_137 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tag2el_137[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_specs_137 = { + sizeof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tag2el_137, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs = { + "CellIDBroadcastEUTRA-Item-ExtIEs", + "CellIDBroadcastEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_tags_137[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_137, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_specs_137 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_144 = { + sizeof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellIDBroadcastNR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_142, memb_ASN_NGAP_id_constraint_141 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_143, memb_ASN_NGAP_criticality_constraint_141 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_144, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_144, memb_ASN_NGAP_extensionValue_constraint_141 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tag2el_141[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_specs_141 = { + sizeof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tag2el_141, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs = { + "CellIDBroadcastNR-Item-ExtIEs", + "CellIDBroadcastNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141, + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141) + /sizeof(asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_tags_141[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_141, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_specs_141 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_148 = { + sizeof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellIDCancelledEUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_146, memb_ASN_NGAP_id_constraint_145 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_147, memb_ASN_NGAP_criticality_constraint_145 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_148, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_148, memb_ASN_NGAP_extensionValue_constraint_145 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tag2el_145[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_specs_145 = { + sizeof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tag2el_145, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs = { + "CellIDCancelledEUTRA-Item-ExtIEs", + "CellIDCancelledEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_tags_145[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_145, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_specs_145 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_152 = { + sizeof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellIDCancelledNR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_150, memb_ASN_NGAP_id_constraint_149 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_151, memb_ASN_NGAP_criticality_constraint_149 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_152, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_152, memb_ASN_NGAP_extensionValue_constraint_149 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tag2el_149[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_specs_149 = { + sizeof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tag2el_149, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs = { + "CellIDCancelledNR-Item-ExtIEs", + "CellIDCancelledNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149, + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149) + /sizeof(asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_tags_149[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_149, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_specs_149 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_156 = { + sizeof(struct ASN_NGAP_CellType_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellType_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellType_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellType_ExtIEs_153[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_154, memb_ASN_NGAP_id_constraint_153 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_155, memb_ASN_NGAP_criticality_constraint_153 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellType_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_156, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_156, memb_ASN_NGAP_extensionValue_constraint_153 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellType_ExtIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellType_ExtIEs_specs_153 = { + sizeof(struct ASN_NGAP_CellType_ExtIEs), + offsetof(struct ASN_NGAP_CellType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellType_ExtIEs_tag2el_153, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellType_ExtIEs = { + "CellType-ExtIEs", + "CellType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153, + sizeof(asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153) + /sizeof(asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153) + /sizeof(asn_DEF_ASN_NGAP_CellType_ExtIEs_tags_153[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellType_ExtIEs_153, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellType_ExtIEs_specs_153 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_160 = { + sizeof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CNAssistedRANTuning_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CNAssistedRANTuning_ExtIEs_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_158, memb_ASN_NGAP_id_constraint_157 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_159, memb_ASN_NGAP_criticality_constraint_157 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_160, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_160, memb_ASN_NGAP_extensionValue_constraint_157 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNAssistedRANTuning_ExtIEs_specs_157 = { + sizeof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs), + offsetof(struct ASN_NGAP_CNAssistedRANTuning_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tag2el_157, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs = { + "CNAssistedRANTuning-ExtIEs", + "CNAssistedRANTuning-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157, + sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157) + /sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157) + /sizeof(asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs_tags_157[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CNAssistedRANTuning_ExtIEs_157, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CNAssistedRANTuning_ExtIEs_specs_157 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_164 = { + sizeof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_161[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_162, memb_ASN_NGAP_id_constraint_161 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_163, memb_ASN_NGAP_criticality_constraint_161 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_164, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_164, memb_ASN_NGAP_extensionValue_constraint_161 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tag2el_161[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_specs_161 = { + sizeof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs), + offsetof(struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tag2el_161, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs = { + "CNTypeRestrictionsForEquivalentItem-ExtIEs", + "CNTypeRestrictionsForEquivalentItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161, + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161[0]), /* 1 */ + asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161) + /sizeof(asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_tags_161[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_161, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_specs_161 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_168 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CompletedCellsInEAI_EUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_165[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_166, memb_ASN_NGAP_id_constraint_165 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_167, memb_ASN_NGAP_criticality_constraint_165 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_168, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_168, memb_ASN_NGAP_extensionValue_constraint_165 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tag2el_165[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_specs_165 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tag2el_165, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs = { + "CompletedCellsInEAI-EUTRA-Item-ExtIEs", + "CompletedCellsInEAI-EUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_tags_165[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_165, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_specs_165 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_172 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CompletedCellsInEAI_NR_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_170, memb_ASN_NGAP_id_constraint_169 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_171, memb_ASN_NGAP_criticality_constraint_169 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_172, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_172, memb_ASN_NGAP_extensionValue_constraint_169 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tag2el_169[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_specs_169 = { + sizeof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tag2el_169, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs = { + "CompletedCellsInEAI-NR-Item-ExtIEs", + "CompletedCellsInEAI-NR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_tags_169[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_169, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_specs_169 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_176 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CompletedCellsInTAI_EUTRA_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_173[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_174, memb_ASN_NGAP_id_constraint_173 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_175, memb_ASN_NGAP_criticality_constraint_173 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_176, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_176, memb_ASN_NGAP_extensionValue_constraint_173 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tag2el_173[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_specs_173 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tag2el_173, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs = { + "CompletedCellsInTAI-EUTRA-Item-ExtIEs", + "CompletedCellsInTAI-EUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_tags_173[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_173, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_specs_173 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_180 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CompletedCellsInTAI_NR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_177[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_178, memb_ASN_NGAP_id_constraint_177 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_179, memb_ASN_NGAP_criticality_constraint_177 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_180, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_180, memb_ASN_NGAP_extensionValue_constraint_177 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tag2el_177[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_specs_177 = { + sizeof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs), + offsetof(struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tag2el_177, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs = { + "CompletedCellsInTAI-NR-Item-ExtIEs", + "CompletedCellsInTAI-NR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177, + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177) + /sizeof(asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_tags_177[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_177, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_specs_177 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_184[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.EUTRA_PagingeDRXInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EUTRA-PagingeDRXInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.ExtendedUEIdentityIndexValue), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedUEIdentityIndexValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedUEIdentityIndexValue" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.UERadioCapabilityForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.MicoAllPLMN), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MicoAllPLMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MicoAllPLMN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.NR_PagingeDRXInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_PagingeDRXInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NR-PagingeDRXInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.PagingCauseIndicationForVoiceService), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingCauseIndicationForVoiceService, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingCauseIndicationForVoiceService" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.PEIPSassistanceInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PEIPSassistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PEIPSassistanceInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, choice.HashedUEIdentityIndexValue), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_HashedUEIdentityIndexValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HashedUEIdentityIndexValue" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_184[] = { 1, 7, 3, 5, 0, 2, 4, 6 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_184[] = { 4, 0, 5, 2, 6, 3, 7, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_184[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, 0, 1 }, /* ExtendedUEIdentityIndexValue */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 7, -1, 0 }, /* HashedUEIdentityIndexValue */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 1 }, /* MicoAllPLMN */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* PagingCauseIndicationForVoiceService */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* EUTRA-PagingeDRXInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* UERadioCapabilityForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* NR-PagingeDRXInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 0 } /* PEIPSassistanceInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_184 = { + sizeof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_184, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_184, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_184, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_extensionValue_184, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_182, memb_ASN_NGAP_id_constraint_181 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_CoreNetworkAssistanceInformationForInactive_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_183, memb_ASN_NGAP_criticality_constraint_181 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_184, + select_CoreNetworkAssistanceInformationForInactive_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_184, memb_ASN_NGAP_extensionValue_constraint_181 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tag2el_181[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_specs_181 = { + sizeof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs), + offsetof(struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tag2el_181, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs = { + "CoreNetworkAssistanceInformationForInactive-ExtIEs", + "CoreNetworkAssistanceInformationForInactive-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181, + sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181) + /sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181[0]), /* 1 */ + asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181) + /sizeof(asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_tags_181[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_181, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_specs_181 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_188 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_COUNTValueForPDCP_SN12_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_185[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_186, memb_ASN_NGAP_id_constraint_185 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_187, memb_ASN_NGAP_criticality_constraint_185 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_188, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_188, memb_ASN_NGAP_extensionValue_constraint_185 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tag2el_185[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_specs_185 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tag2el_185, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs = { + "COUNTValueForPDCP-SN12-ExtIEs", + "COUNTValueForPDCP-SN12-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185, + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185[0]), /* 1 */ + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_tags_185[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_185, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_specs_185 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_192 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_COUNTValueForPDCP_SN18_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_189[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_190, memb_ASN_NGAP_id_constraint_189 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_191, memb_ASN_NGAP_criticality_constraint_189 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_192, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_192, memb_ASN_NGAP_extensionValue_constraint_189 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tag2el_189[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_specs_189 = { + sizeof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs), + offsetof(struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tag2el_189, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs = { + "COUNTValueForPDCP-SN18-ExtIEs", + "COUNTValueForPDCP-SN18-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189, + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189[0]), /* 1 */ + asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189) + /sizeof(asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_tags_189[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_189, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_specs_189 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_196 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_ExtIEs_193[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_194, memb_ASN_NGAP_id_constraint_193 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_195, memb_ASN_NGAP_criticality_constraint_193 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_196, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_196, memb_ASN_NGAP_extensionValue_constraint_193 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tag2el_193[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_ExtIEs_specs_193 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tag2el_193, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs = { + "CriticalityDiagnostics-ExtIEs", + "CriticalityDiagnostics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193, + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193[0]), /* 1 */ + asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs_tags_193[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CriticalityDiagnostics_ExtIEs_193, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CriticalityDiagnostics_ExtIEs_specs_193 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_200 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CriticalityDiagnostics_IE_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_197[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_198, memb_ASN_NGAP_id_constraint_197 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_199, memb_ASN_NGAP_criticality_constraint_197 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_200, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_200, memb_ASN_NGAP_extensionValue_constraint_197 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tag2el_197[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_specs_197 = { + sizeof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs), + offsetof(struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tag2el_197, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs = { + "CriticalityDiagnostics-IE-Item-ExtIEs", + "CriticalityDiagnostics-IE-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197, + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197[0]), /* 1 */ + asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197) + /sizeof(asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_tags_197[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_197, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_specs_197 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_204 = { + sizeof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellBasedMDT_NR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_NR_ExtIEs_201[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_202, memb_ASN_NGAP_id_constraint_201 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_203, memb_ASN_NGAP_criticality_constraint_201 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_204, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_204, memb_ASN_NGAP_extensionValue_constraint_201 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tag2el_201[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_NR_ExtIEs_specs_201 = { + sizeof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs), + offsetof(struct ASN_NGAP_CellBasedMDT_NR_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tag2el_201, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs = { + "CellBasedMDT-NR-ExtIEs", + "CellBasedMDT-NR-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201, + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs_tags_201[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedMDT_NR_ExtIEs_201, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedMDT_NR_ExtIEs_specs_201 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_208 = { + sizeof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_CellBasedMDT_EUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_205[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_206, memb_ASN_NGAP_id_constraint_205 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_207, memb_ASN_NGAP_criticality_constraint_205 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_208, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_208, memb_ASN_NGAP_extensionValue_constraint_205 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tag2el_205[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_specs_205 = { + sizeof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs), + offsetof(struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tag2el_205, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs = { + "CellBasedMDT-EUTRA-ExtIEs", + "CellBasedMDT-EUTRA-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205, + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205) + /sizeof(asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_tags_205[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_205, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_specs_205 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_212 = { + sizeof(struct ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedQMC_ExtIEs_209[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_210, memb_ASN_NGAP_id_constraint_209 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_211, memb_ASN_NGAP_criticality_constraint_209 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_212, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_212, memb_ASN_NGAP_extensionValue_constraint_209 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellBasedQMC_ExtIEs_tag2el_209[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedQMC_ExtIEs_specs_209 = { + sizeof(struct ASN_NGAP_CellBasedQMC_ExtIEs), + offsetof(struct ASN_NGAP_CellBasedQMC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellBasedQMC_ExtIEs_tag2el_209, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs = { + "CellBasedQMC-ExtIEs", + "CellBasedQMC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209, + sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209) + /sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209) + /sizeof(asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs_tags_209[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellBasedQMC_ExtIEs_209, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellBasedQMC_ExtIEs_specs_209 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_216 = { + sizeof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DataForwardingResponseDRBItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_213[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_214, memb_ASN_NGAP_id_constraint_213 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_215, memb_ASN_NGAP_criticality_constraint_213 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_216, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_216, memb_ASN_NGAP_extensionValue_constraint_213 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tag2el_213[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_specs_213 = { + sizeof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs), + offsetof(struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tag2el_213, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs = { + "DataForwardingResponseDRBItem-ExtIEs", + "DataForwardingResponseDRBItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_tags_213[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_213, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_specs_213 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_220 = { + sizeof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DAPSRequestInfo_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSRequestInfo_ExtIEs_217[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_218, memb_ASN_NGAP_id_constraint_217 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_219, memb_ASN_NGAP_criticality_constraint_217 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_220, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_220, memb_ASN_NGAP_extensionValue_constraint_217 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSRequestInfo_ExtIEs_tag2el_217[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSRequestInfo_ExtIEs_specs_217 = { + sizeof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs), + offsetof(struct ASN_NGAP_DAPSRequestInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSRequestInfo_ExtIEs_tag2el_217, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs = { + "DAPSRequestInfo-ExtIEs", + "DAPSRequestInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217, + sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217) + /sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217) + /sizeof(asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs_tags_217[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSRequestInfo_ExtIEs_217, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSRequestInfo_ExtIEs_specs_217 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_224 = { + sizeof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DAPSResponseInfoItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_221[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_222, memb_ASN_NGAP_id_constraint_221 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_223, memb_ASN_NGAP_criticality_constraint_221 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_224, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_224, memb_ASN_NGAP_extensionValue_constraint_221 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tag2el_221[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_specs_221 = { + sizeof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs), + offsetof(struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tag2el_221, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs = { + "DAPSResponseInfoItem-ExtIEs", + "DAPSResponseInfoItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221, + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_tags_221[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_221, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_specs_221 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_228 = { + sizeof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DAPSResponseInfo_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfo_ExtIEs_225[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_226, memb_ASN_NGAP_id_constraint_225 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_227, memb_ASN_NGAP_criticality_constraint_225 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_228, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_228, memb_ASN_NGAP_extensionValue_constraint_225 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DAPSResponseInfo_ExtIEs_tag2el_225[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfo_ExtIEs_specs_225 = { + sizeof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs), + offsetof(struct ASN_NGAP_DAPSResponseInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DAPSResponseInfo_ExtIEs_tag2el_225, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs = { + "DAPSResponseInfo-ExtIEs", + "DAPSResponseInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225, + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225[0]), /* 1 */ + asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225) + /sizeof(asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs_tags_225[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DAPSResponseInfo_ExtIEs_225, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DAPSResponseInfo_ExtIEs_specs_225 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_232 = { + sizeof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DataForwardingResponseERABListItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_229[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_230, memb_ASN_NGAP_id_constraint_229 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_231, memb_ASN_NGAP_criticality_constraint_229 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_232, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_232, memb_ASN_NGAP_extensionValue_constraint_229 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tag2el_229[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_specs_229 = { + sizeof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs), + offsetof(struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tag2el_229, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs = { + "DataForwardingResponseERABListItem-ExtIEs", + "DataForwardingResponseERABListItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229, + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229[0]), /* 1 */ + asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229) + /sizeof(asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_tags_229[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_229, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_specs_229 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_236 = { + sizeof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DL_CP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_233[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_234, memb_ASN_NGAP_id_constraint_233 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_235, memb_ASN_NGAP_criticality_constraint_233 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_236, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_236, memb_ASN_NGAP_extensionValue_constraint_233 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tag2el_233[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_specs_233 = { + sizeof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs), + offsetof(struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tag2el_233, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs = { + "DL-CP-SecurityInformation-ExtIEs", + "DL-CP-SecurityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233, + sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233) + /sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233[0]), /* 1 */ + asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233) + /sizeof(asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_tags_233[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_233, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_specs_233 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_240[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue, choice.AssociatedQosFlowList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssociatedQosFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AssociatedQosFlowList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_240[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* AssociatedQosFlowList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_240 = { + sizeof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_240, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_240, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_237[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_238, memb_ASN_NGAP_id_constraint_237 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DRBsSubjectToStatusTransferItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_239, memb_ASN_NGAP_criticality_constraint_237 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_240, + select_DRBsSubjectToStatusTransferItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_240, memb_ASN_NGAP_extensionValue_constraint_237 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tag2el_237[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_specs_237 = { + sizeof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs), + offsetof(struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tag2el_237, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs = { + "DRBsSubjectToStatusTransferItem-ExtIEs", + "DRBsSubjectToStatusTransferItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_tags_237[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_specs_237 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_244 = { + sizeof(struct ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBStatusDL12_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL12_ExtIEs_241[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_242, memb_ASN_NGAP_id_constraint_241 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_243, memb_ASN_NGAP_criticality_constraint_241 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_244, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_244, memb_ASN_NGAP_extensionValue_constraint_241 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL12_ExtIEs_tag2el_241[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL12_ExtIEs_specs_241 = { + sizeof(struct ASN_NGAP_DRBStatusDL12_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusDL12_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusDL12_ExtIEs_tag2el_241, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs = { + "DRBStatusDL12-ExtIEs", + "DRBStatusDL12-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241, + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs_tags_241[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL12_ExtIEs_241, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL12_ExtIEs_specs_241 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_248 = { + sizeof(struct ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBStatusDL18_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL18_ExtIEs_245[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_246, memb_ASN_NGAP_id_constraint_245 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_247, memb_ASN_NGAP_criticality_constraint_245 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_248, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_248, memb_ASN_NGAP_extensionValue_constraint_245 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL18_ExtIEs_tag2el_245[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL18_ExtIEs_specs_245 = { + sizeof(struct ASN_NGAP_DRBStatusDL18_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusDL18_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusDL18_ExtIEs_tag2el_245, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs = { + "DRBStatusDL18-ExtIEs", + "DRBStatusDL18-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245, + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs_tags_245[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL18_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL18_ExtIEs_specs_245 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_252 = { + sizeof(struct ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBStatusUL12_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL12_ExtIEs_249[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_250, memb_ASN_NGAP_id_constraint_249 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_251, memb_ASN_NGAP_criticality_constraint_249 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_252, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_252, memb_ASN_NGAP_extensionValue_constraint_249 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL12_ExtIEs_tag2el_249[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL12_ExtIEs_specs_249 = { + sizeof(struct ASN_NGAP_DRBStatusUL12_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusUL12_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusUL12_ExtIEs_tag2el_249, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs = { + "DRBStatusUL12-ExtIEs", + "DRBStatusUL12-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249, + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs_tags_249[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL12_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL12_ExtIEs_specs_249 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_256 = { + sizeof(struct ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBStatusUL18_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL18_ExtIEs_253[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_254, memb_ASN_NGAP_id_constraint_253 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_255, memb_ASN_NGAP_criticality_constraint_253 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_256, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_256, memb_ASN_NGAP_extensionValue_constraint_253 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL18_ExtIEs_tag2el_253[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL18_ExtIEs_specs_253 = { + sizeof(struct ASN_NGAP_DRBStatusUL18_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusUL18_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusUL18_ExtIEs_tag2el_253, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs = { + "DRBStatusUL18-ExtIEs", + "DRBStatusUL18-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253, + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs_tags_253[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL18_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL18_ExtIEs_specs_253 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_260[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue, choice.DAPSRequestInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSRequestInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DAPSRequestInfo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_260[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* DAPSRequestInfo */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_260 = { + sizeof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_260, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_257[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_258, memb_ASN_NGAP_id_constraint_257 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DRBsToQosFlowsMappingItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_259, memb_ASN_NGAP_criticality_constraint_257 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_260, + select_DRBsToQosFlowsMappingItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_260, memb_ASN_NGAP_extensionValue_constraint_257 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tag2el_257[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_specs_257 = { + sizeof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs), + offsetof(struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tag2el_257, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs = { + "DRBsToQosFlowsMappingItem-ExtIEs", + "DRBsToQosFlowsMappingItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257, + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257) + /sizeof(asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_tags_257[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_257, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_specs_257 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_264[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget_1), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget_2), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_264[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* ExtendedPacketDelayBudget */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* ExtendedPacketDelayBudget */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 } /* ExtendedPacketDelayBudget */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_264 = { + sizeof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_264, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_264, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_261[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_262, memb_ASN_NGAP_id_constraint_261 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_Dynamic5QIDescriptor_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_263, memb_ASN_NGAP_criticality_constraint_261 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_264, + select_Dynamic5QIDescriptor_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_264, memb_ASN_NGAP_extensionValue_constraint_261 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tag2el_261[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_specs_261 = { + sizeof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs), + offsetof(struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tag2el_261, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs = { + "Dynamic5QIDescriptor-ExtIEs", + "Dynamic5QIDescriptor-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261, + sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261) + /sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261[0]), /* 1 */ + asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261) + /sizeof(asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_tags_261[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_261, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_specs_261 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_268 = { + sizeof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_265[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_266, memb_ASN_NGAP_id_constraint_265 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_267, memb_ASN_NGAP_criticality_constraint_265 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_268, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_268, memb_ASN_NGAP_extensionValue_constraint_265 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tag2el_265[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_specs_265 = { + sizeof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs), + offsetof(struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tag2el_265, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs = { + "EarlyStatusTransfer-TransparentContainer-ExtIEs", + "EarlyStatusTransfer-TransparentContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265, + sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265) + /sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265[0]), /* 1 */ + asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265) + /sizeof(asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_tags_265[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_265, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_specs_265 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_272 = { + sizeof(struct ASN_NGAP_FirstDLCount_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FirstDLCount_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FirstDLCount_ExtIEs_269[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_270, memb_ASN_NGAP_id_constraint_269 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_271, memb_ASN_NGAP_criticality_constraint_269 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_272, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_272, memb_ASN_NGAP_extensionValue_constraint_269 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FirstDLCount_ExtIEs_tag2el_269[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FirstDLCount_ExtIEs_specs_269 = { + sizeof(struct ASN_NGAP_FirstDLCount_ExtIEs), + offsetof(struct ASN_NGAP_FirstDLCount_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FirstDLCount_ExtIEs_tag2el_269, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs = { + "FirstDLCount-ExtIEs", + "FirstDLCount-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269, + sizeof(asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269) + /sizeof(asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269[0]), /* 1 */ + asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269) + /sizeof(asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs_tags_269[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FirstDLCount_ExtIEs_269, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FirstDLCount_ExtIEs_specs_269 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_276 = { + sizeof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_273[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_274, memb_ASN_NGAP_id_constraint_273 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_275, memb_ASN_NGAP_criticality_constraint_273 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_276, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_276, memb_ASN_NGAP_extensionValue_constraint_273 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tag2el_273[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_specs_273 = { + sizeof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs), + offsetof(struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tag2el_273, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs = { + "DRBsSubjectToEarlyStatusTransfer-Item-ExtIEs", + "DRBsSubjectToEarlyStatusTransfer-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273, + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273) + /sizeof(asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_tags_273[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_273, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_specs_273 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_280 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_277[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_278, memb_ASN_NGAP_id_constraint_277 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_279, memb_ASN_NGAP_criticality_constraint_277 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_280, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_280, memb_ASN_NGAP_extensionValue_constraint_277 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tag2el_277[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_specs_277 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tag2el_277, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs = { + "EmergencyAreaIDBroadcastEUTRA-Item-ExtIEs", + "EmergencyAreaIDBroadcastEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_tags_277[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_277, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_specs_277 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_284 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EmergencyAreaIDBroadcastNR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_281[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_282, memb_ASN_NGAP_id_constraint_281 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_283, memb_ASN_NGAP_criticality_constraint_281 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_284, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_284, memb_ASN_NGAP_extensionValue_constraint_281 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tag2el_281[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_specs_281 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tag2el_281, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs = { + "EmergencyAreaIDBroadcastNR-Item-ExtIEs", + "EmergencyAreaIDBroadcastNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_tags_281[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_281, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_specs_281 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_288 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_288 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_285[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_286, memb_ASN_NGAP_id_constraint_285 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_287, memb_ASN_NGAP_criticality_constraint_285 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_288, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_288, memb_ASN_NGAP_extensionValue_constraint_285 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tag2el_285[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_specs_285 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tag2el_285, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs = { + "EmergencyAreaIDCancelledEUTRA-Item-ExtIEs", + "EmergencyAreaIDCancelledEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_tags_285[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_285, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_specs_285 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_292 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EmergencyAreaIDCancelledNR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_292 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_289[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_290, memb_ASN_NGAP_id_constraint_289 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_291, memb_ASN_NGAP_criticality_constraint_289 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_292, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_292, memb_ASN_NGAP_extensionValue_constraint_289 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tag2el_289[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_specs_289 = { + sizeof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tag2el_289, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs = { + "EmergencyAreaIDCancelledNR-Item-ExtIEs", + "EmergencyAreaIDCancelledNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289, + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289) + /sizeof(asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_tags_289[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_289, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_specs_289 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_296 = { + sizeof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EmergencyFallbackIndicator_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_296 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_293[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_294, memb_ASN_NGAP_id_constraint_293 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_295, memb_ASN_NGAP_criticality_constraint_293 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_296, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_296, memb_ASN_NGAP_extensionValue_constraint_293 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tag2el_293[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_specs_293 = { + sizeof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs), + offsetof(struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tag2el_293, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs = { + "EmergencyFallbackIndicator-ExtIEs", + "EmergencyFallbackIndicator-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293, + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293[0]), /* 1 */ + asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293) + /sizeof(asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_tags_293[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_293, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_specs_293 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_300 = { + sizeof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EndpointIPAddressAndPort_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_300 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_297[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_298, memb_ASN_NGAP_id_constraint_297 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_299, memb_ASN_NGAP_criticality_constraint_297 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_300, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_300, memb_ASN_NGAP_extensionValue_constraint_297 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tag2el_297[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_specs_297 = { + sizeof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs), + offsetof(struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tag2el_297, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs = { + "EndpointIPAddressAndPort-ExtIEs", + "EndpointIPAddressAndPort-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297, + sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297) + /sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297[0]), /* 1 */ + asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297) + /sizeof(asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_tags_297[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_297, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_specs_297 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_304 = { + sizeof(struct ASN_NGAP_EPS_TAI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EPS_TAI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_304 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EPS_TAI_ExtIEs_301[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_302, memb_ASN_NGAP_id_constraint_301 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_303, memb_ASN_NGAP_criticality_constraint_301 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_304, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_304, memb_ASN_NGAP_extensionValue_constraint_301 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EPS_TAI_ExtIEs_tag2el_301[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EPS_TAI_ExtIEs_specs_301 = { + sizeof(struct ASN_NGAP_EPS_TAI_ExtIEs), + offsetof(struct ASN_NGAP_EPS_TAI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EPS_TAI_ExtIEs_tag2el_301, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs = { + "EPS-TAI-ExtIEs", + "EPS-TAI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301, + sizeof(asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301[0]), /* 1 */ + asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301) + /sizeof(asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs_tags_301[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EPS_TAI_ExtIEs_301, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EPS_TAI_ExtIEs_specs_301 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_308[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue, choice.TransportLayerAddress), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue, choice.TransportLayerAddress_1), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransportLayerAddress" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_308[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* TransportLayerAddress */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, -1, 0 } /* TransportLayerAddress */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_308 = { + sizeof(struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_308, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_308, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_308 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_E_RABInformationItem_ExtIEs_305[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_306, memb_ASN_NGAP_id_constraint_305 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_E_RABInformationItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_307, memb_ASN_NGAP_criticality_constraint_305 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_308, + select_E_RABInformationItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_308, memb_ASN_NGAP_extensionValue_constraint_305 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_E_RABInformationItem_ExtIEs_tag2el_305[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_E_RABInformationItem_ExtIEs_specs_305 = { + sizeof(struct ASN_NGAP_E_RABInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_E_RABInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_E_RABInformationItem_ExtIEs_tag2el_305, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs = { + "E-RABInformationItem-ExtIEs", + "E-RABInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305, + sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305[0]), /* 1 */ + asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305) + /sizeof(asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs_tags_305[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_E_RABInformationItem_ExtIEs_305, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_E_RABInformationItem_ExtIEs_specs_305 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_312 = { + sizeof(struct ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRA_CGI_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_312 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGI_ExtIEs_309[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_310, memb_ASN_NGAP_id_constraint_309 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_311, memb_ASN_NGAP_criticality_constraint_309 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_312, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_312, memb_ASN_NGAP_extensionValue_constraint_309 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRA_CGI_ExtIEs_tag2el_309[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGI_ExtIEs_specs_309 = { + sizeof(struct ASN_NGAP_EUTRA_CGI_ExtIEs), + offsetof(struct ASN_NGAP_EUTRA_CGI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRA_CGI_ExtIEs_tag2el_309, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs = { + "EUTRA-CGI-ExtIEs", + "EUTRA-CGI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309, + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs_tags_309[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRA_CGI_ExtIEs_309, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRA_CGI_ExtIEs_specs_309 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_316 = { + sizeof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRA_PagingeDRXInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_316 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_313[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_314, memb_ASN_NGAP_id_constraint_313 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_315, memb_ASN_NGAP_criticality_constraint_313 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_316, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_316, memb_ASN_NGAP_extensionValue_constraint_313 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tag2el_313[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_specs_313 = { + sizeof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs), + offsetof(struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tag2el_313, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs = { + "EUTRA-PagingeDRXInformation-ExtIEs", + "EUTRA-PagingeDRXInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313, + sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313) + /sizeof(asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_tags_313[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_313, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_specs_313 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_320 = { + sizeof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ExcessPacketDelayThresholdItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_320 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_317[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_318, memb_ASN_NGAP_id_constraint_317 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_319, memb_ASN_NGAP_criticality_constraint_317 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_320, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_320, memb_ASN_NGAP_extensionValue_constraint_317 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tag2el_317[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_specs_317 = { + sizeof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs), + offsetof(struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tag2el_317, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs = { + "ExcessPacketDelayThresholdItem-ExtIEs", + "ExcessPacketDelayThresholdItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317, + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317) + /sizeof(asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_tags_317[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_317, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_specs_317 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_324 = { + sizeof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_324 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_321[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_322, memb_ASN_NGAP_id_constraint_321 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_323, memb_ASN_NGAP_criticality_constraint_321 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_324, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_324, memb_ASN_NGAP_extensionValue_constraint_321 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_321[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_specs_321 = { + sizeof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs), + offsetof(struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tag2el_321, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs = { + "ExpectedUEActivityBehaviour-ExtIEs", + "ExpectedUEActivityBehaviour-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_tags_321[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_321, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_specs_321 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_328 = { + sizeof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_328 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_325[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_326, memb_ASN_NGAP_id_constraint_325 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_327, memb_ASN_NGAP_criticality_constraint_325 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_328, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_328, memb_ASN_NGAP_extensionValue_constraint_325 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tag2el_325[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_specs_325 = { + sizeof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs), + offsetof(struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tag2el_325, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs = { + "ExpectedUEBehaviour-ExtIEs", + "ExpectedUEBehaviour-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_tags_325[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_325, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_specs_325 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_332 = { + sizeof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_332 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_329[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_330, memb_ASN_NGAP_id_constraint_329 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_331, memb_ASN_NGAP_criticality_constraint_329 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_332, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_332, memb_ASN_NGAP_extensionValue_constraint_329 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tag2el_329[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_specs_329 = { + sizeof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs), + offsetof(struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tag2el_329, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs = { + "ExpectedUEMovingTrajectoryItem-ExtIEs", + "ExpectedUEMovingTrajectoryItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329, + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329) + /sizeof(asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_tags_329[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_329, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_specs_329 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_336 = { + sizeof(struct ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_Extended_AMFName_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_336 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_AMFName_ExtIEs_333[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_334, memb_ASN_NGAP_id_constraint_333 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_335, memb_ASN_NGAP_criticality_constraint_333 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_336, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_336, memb_ASN_NGAP_extensionValue_constraint_333 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Extended_AMFName_ExtIEs_tag2el_333[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_AMFName_ExtIEs_specs_333 = { + sizeof(struct ASN_NGAP_Extended_AMFName_ExtIEs), + offsetof(struct ASN_NGAP_Extended_AMFName_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Extended_AMFName_ExtIEs_tag2el_333, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs = { + "Extended-AMFName-ExtIEs", + "Extended-AMFName-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333, + sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333) + /sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333[0]), /* 1 */ + asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333) + /sizeof(asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs_tags_333[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Extended_AMFName_ExtIEs_333, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Extended_AMFName_ExtIEs_specs_333 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_340 = { + sizeof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_Extended_RANNodeName_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_340 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_RANNodeName_ExtIEs_337[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_338, memb_ASN_NGAP_id_constraint_337 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_339, memb_ASN_NGAP_criticality_constraint_337 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_340, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_340, memb_ASN_NGAP_extensionValue_constraint_337 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Extended_RANNodeName_ExtIEs_tag2el_337[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_RANNodeName_ExtIEs_specs_337 = { + sizeof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs), + offsetof(struct ASN_NGAP_Extended_RANNodeName_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Extended_RANNodeName_ExtIEs_tag2el_337, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs = { + "Extended-RANNodeName-ExtIEs", + "Extended-RANNodeName-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337, + sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337) + /sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337[0]), /* 1 */ + asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337) + /sizeof(asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs_tags_337[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Extended_RANNodeName_ExtIEs_337, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Extended_RANNodeName_ExtIEs_specs_337 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_344 = { + sizeof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ExtendedRATRestrictionInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_344 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_341[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_342, memb_ASN_NGAP_id_constraint_341 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_343, memb_ASN_NGAP_criticality_constraint_341 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_344, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_344, memb_ASN_NGAP_extensionValue_constraint_341 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tag2el_341[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_specs_341 = { + sizeof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs), + offsetof(struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tag2el_341, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs = { + "ExtendedRATRestrictionInformation-ExtIEs", + "ExtendedRATRestrictionInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341, + sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341[0]), /* 1 */ + asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341) + /sizeof(asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_tags_341[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_341, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_specs_341 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_348 = { + sizeof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EventL1LoggedMDTConfig_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_348 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_345[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_346, memb_ASN_NGAP_id_constraint_345 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_347, memb_ASN_NGAP_criticality_constraint_345 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_348, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_348, memb_ASN_NGAP_extensionValue_constraint_345 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tag2el_345[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_specs_345 = { + sizeof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs), + offsetof(struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tag2el_345, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs = { + "EventL1LoggedMDTConfig-ExtIEs", + "EventL1LoggedMDTConfig-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345, + sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345) + /sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345) + /sizeof(asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_tags_345[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_345, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_specs_345 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_352 = { + sizeof(struct ASN_NGAP_FailureIndication_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FailureIndication_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FailureIndication_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FailureIndication_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_352 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FailureIndication_ExtIEs_349[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FailureIndication_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_350, memb_ASN_NGAP_id_constraint_349 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FailureIndication_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_351, memb_ASN_NGAP_criticality_constraint_349 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FailureIndication_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_352, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_352, memb_ASN_NGAP_extensionValue_constraint_349 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FailureIndication_ExtIEs_tag2el_349[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FailureIndication_ExtIEs_specs_349 = { + sizeof(struct ASN_NGAP_FailureIndication_ExtIEs), + offsetof(struct ASN_NGAP_FailureIndication_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FailureIndication_ExtIEs_tag2el_349, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FailureIndication_ExtIEs = { + "FailureIndication-ExtIEs", + "FailureIndication-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349, + sizeof(asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349) + /sizeof(asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349[0]), /* 1 */ + asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349) + /sizeof(asn_DEF_ASN_NGAP_FailureIndication_ExtIEs_tags_349[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FailureIndication_ExtIEs_349, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FailureIndication_ExtIEs_specs_349 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_356 = { + sizeof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FiveG_ProSeAuthorized_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_356 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_353[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_354, memb_ASN_NGAP_id_constraint_353 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_355, memb_ASN_NGAP_criticality_constraint_353 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_356, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_356, memb_ASN_NGAP_extensionValue_constraint_353 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tag2el_353[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_specs_353 = { + sizeof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs), + offsetof(struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tag2el_353, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs = { + "FiveG-ProSeAuthorized-ExtIEs", + "FiveG-ProSeAuthorized-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353, + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_tags_353[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_353, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_specs_353 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_360 = { + sizeof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FiveG_ProSePC5QoSParameters_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_360 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_357[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_358, memb_ASN_NGAP_id_constraint_357 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_359, memb_ASN_NGAP_criticality_constraint_357 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_360, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_360, memb_ASN_NGAP_extensionValue_constraint_357 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tag2el_357[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_specs_357 = { + sizeof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs), + offsetof(struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tag2el_357, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs = { + "FiveG-ProSePC5QoSParameters-ExtIEs", + "FiveG-ProSePC5QoSParameters-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357, + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357) + /sizeof(asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_tags_357[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_357, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_specs_357 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_364 = { + sizeof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FiveGProSePC5QoSFlowItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_364 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_361[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_362, memb_ASN_NGAP_id_constraint_361 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_363, memb_ASN_NGAP_criticality_constraint_361 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_364, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_364, memb_ASN_NGAP_extensionValue_constraint_361 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tag2el_361[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_specs_361 = { + sizeof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs), + offsetof(struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tag2el_361, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs = { + "FiveGProSePC5QoSFlowItem-ExtIEs", + "FiveGProSePC5QoSFlowItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361, + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_tags_361[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_361, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_specs_361 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_368 = { + sizeof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FiveGProSePC5FlowBitRates_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_368 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_365[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_366, memb_ASN_NGAP_id_constraint_365 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_367, memb_ASN_NGAP_criticality_constraint_365 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_368, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_368, memb_ASN_NGAP_extensionValue_constraint_365 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tag2el_365[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_specs_365 = { + sizeof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs), + offsetof(struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tag2el_365, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs = { + "FiveGProSePC5FlowBitRates-ExtIEs", + "FiveGProSePC5FlowBitRates-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365, + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365) + /sizeof(asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_tags_365[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_365, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_specs_365 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_372 = { + sizeof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FiveG_S_TMSI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_372 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_S_TMSI_ExtIEs_369[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_370, memb_ASN_NGAP_id_constraint_369 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_371, memb_ASN_NGAP_criticality_constraint_369 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_372, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_372, memb_ASN_NGAP_extensionValue_constraint_369 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tag2el_369[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_S_TMSI_ExtIEs_specs_369 = { + sizeof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs), + offsetof(struct ASN_NGAP_FiveG_S_TMSI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tag2el_369, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs = { + "FiveG-S-TMSI-ExtIEs", + "FiveG-S-TMSI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369, + sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369) + /sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369[0]), /* 1 */ + asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369) + /sizeof(asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs_tags_369[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FiveG_S_TMSI_ExtIEs_369, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FiveG_S_TMSI_ExtIEs_specs_369 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_376 = { + sizeof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ForbiddenAreaInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_376 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_373[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_374, memb_ASN_NGAP_id_constraint_373 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_375, memb_ASN_NGAP_criticality_constraint_373 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_376, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_376, memb_ASN_NGAP_extensionValue_constraint_373 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tag2el_373[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_specs_373 = { + sizeof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs), + offsetof(struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tag2el_373, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs = { + "ForbiddenAreaInformation-Item-ExtIEs", + "ForbiddenAreaInformation-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373, + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373[0]), /* 1 */ + asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373) + /sizeof(asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_tags_373[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_373, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_specs_373 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_380 = { + sizeof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FromEUTRANtoNGRAN_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_380 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_377[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_378, memb_ASN_NGAP_id_constraint_377 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_379, memb_ASN_NGAP_criticality_constraint_377 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_380, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_380, memb_ASN_NGAP_extensionValue_constraint_377 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tag2el_377[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_specs_377 = { + sizeof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs), + offsetof(struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tag2el_377, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs = { + "FromEUTRANtoNGRAN-ExtIEs", + "FromEUTRANtoNGRAN-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377, + sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377) + /sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377[0]), /* 1 */ + asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377) + /sizeof(asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_tags_377[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_377, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_specs_377 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_384 = { + sizeof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_FromNGRANtoEUTRAN_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_384 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_381[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_382, memb_ASN_NGAP_id_constraint_381 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_383, memb_ASN_NGAP_criticality_constraint_381 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_384, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_384, memb_ASN_NGAP_extensionValue_constraint_381 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tag2el_381[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_specs_381 = { + sizeof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs), + offsetof(struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tag2el_381, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs = { + "FromNGRANtoEUTRAN-ExtIEs", + "FromNGRANtoEUTRAN-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381, + sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381) + /sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381[0]), /* 1 */ + asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381) + /sizeof(asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_tags_381[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_381, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_specs_381 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_388[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue, choice.AlternativeQoSParaSetList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_388[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_388 = { + sizeof(struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_388, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_388, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_388 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GBR_QosInformation_ExtIEs_385[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_386, memb_ASN_NGAP_id_constraint_385 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_GBR_QosInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_387, memb_ASN_NGAP_criticality_constraint_385 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_388, + select_GBR_QosInformation_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_388, memb_ASN_NGAP_extensionValue_constraint_385 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GBR_QosInformation_ExtIEs_tag2el_385[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GBR_QosInformation_ExtIEs_specs_385 = { + sizeof(struct ASN_NGAP_GBR_QosInformation_ExtIEs), + offsetof(struct ASN_NGAP_GBR_QosInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GBR_QosInformation_ExtIEs_tag2el_385, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs = { + "GBR-QosInformation-ExtIEs", + "GBR-QosInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385, + sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385) + /sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385[0]), /* 1 */ + asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385) + /sizeof(asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs_tags_385[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GBR_QosInformation_ExtIEs_385, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GBR_QosInformation_ExtIEs_specs_385 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_392 = { + sizeof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalCable_ID_new_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_392 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalCable_ID_new_ExtIEs_389[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_390, memb_ASN_NGAP_id_constraint_389 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_391, memb_ASN_NGAP_criticality_constraint_389 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_392, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_392, memb_ASN_NGAP_extensionValue_constraint_389 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tag2el_389[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalCable_ID_new_ExtIEs_specs_389 = { + sizeof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs), + offsetof(struct ASN_NGAP_GlobalCable_ID_new_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tag2el_389, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs = { + "GlobalCable-ID-new-ExtIEs", + "GlobalCable-ID-new-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389, + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389) + /sizeof(asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs_tags_389[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalCable_ID_new_ExtIEs_389, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalCable_ID_new_ExtIEs_specs_389 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_396 = { + sizeof(struct ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_396 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalENB_ID_ExtIEs_393[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_394, memb_ASN_NGAP_id_constraint_393 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_395, memb_ASN_NGAP_criticality_constraint_393 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_396, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_396, memb_ASN_NGAP_extensionValue_constraint_393 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalENB_ID_ExtIEs_tag2el_393[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalENB_ID_ExtIEs_specs_393 = { + sizeof(struct ASN_NGAP_GlobalENB_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalENB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalENB_ID_ExtIEs_tag2el_393, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs = { + "GlobalENB-ID-ExtIEs", + "GlobalENB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393, + sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393) + /sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393) + /sizeof(asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs_tags_393[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalENB_ID_ExtIEs_393, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalENB_ID_ExtIEs_specs_393 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_400 = { + sizeof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_400 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalGNB_ID_ExtIEs_397[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_398, memb_ASN_NGAP_id_constraint_397 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_399, memb_ASN_NGAP_criticality_constraint_397 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_400, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_400, memb_ASN_NGAP_extensionValue_constraint_397 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalGNB_ID_ExtIEs_tag2el_397[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalGNB_ID_ExtIEs_specs_397 = { + sizeof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalGNB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalGNB_ID_ExtIEs_tag2el_397, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs = { + "GlobalGNB-ID-ExtIEs", + "GlobalGNB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397, + sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397) + /sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397) + /sizeof(asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs_tags_397[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalGNB_ID_ExtIEs_397, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalGNB_ID_ExtIEs_specs_397 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_404 = { + sizeof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalN3IWF_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_404 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_401[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_402, memb_ASN_NGAP_id_constraint_401 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_403, memb_ASN_NGAP_criticality_constraint_401 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_404, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_404, memb_ASN_NGAP_extensionValue_constraint_401 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tag2el_401[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_specs_401 = { + sizeof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tag2el_401, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs = { + "GlobalN3IWF-ID-ExtIEs", + "GlobalN3IWF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401, + sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401) + /sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401) + /sizeof(asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_tags_401[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_401, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_specs_401 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_408[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue, choice.TAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_408[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TAI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_408 = { + sizeof(struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_408, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_408, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_408 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalLine_ID_ExtIEs_405[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_406, memb_ASN_NGAP_id_constraint_405 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_GlobalLine_ID_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_407, memb_ASN_NGAP_criticality_constraint_405 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_408, + select_GlobalLine_ID_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_408, memb_ASN_NGAP_extensionValue_constraint_405 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalLine_ID_ExtIEs_tag2el_405[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalLine_ID_ExtIEs_specs_405 = { + sizeof(struct ASN_NGAP_GlobalLine_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalLine_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalLine_ID_ExtIEs_tag2el_405, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs = { + "GlobalLine-ID-ExtIEs", + "GlobalLine-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405, + sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405) + /sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405) + /sizeof(asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs_tags_405[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalLine_ID_ExtIEs_405, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalLine_ID_ExtIEs_specs_405 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_412 = { + sizeof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalNgENB_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_412 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalNgENB_ID_ExtIEs_409[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_410, memb_ASN_NGAP_id_constraint_409 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_411, memb_ASN_NGAP_criticality_constraint_409 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_412, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_412, memb_ASN_NGAP_extensionValue_constraint_409 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tag2el_409[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalNgENB_ID_ExtIEs_specs_409 = { + sizeof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalNgENB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tag2el_409, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs = { + "GlobalNgENB-ID-ExtIEs", + "GlobalNgENB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409, + sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409) + /sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409) + /sizeof(asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs_tags_409[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalNgENB_ID_ExtIEs_409, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalNgENB_ID_ExtIEs_specs_409 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_416 = { + sizeof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalTNGF_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_416 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTNGF_ID_ExtIEs_413[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_414, memb_ASN_NGAP_id_constraint_413 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_415, memb_ASN_NGAP_criticality_constraint_413 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_416, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_416, memb_ASN_NGAP_extensionValue_constraint_413 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tag2el_413[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTNGF_ID_ExtIEs_specs_413 = { + sizeof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalTNGF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tag2el_413, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs = { + "GlobalTNGF-ID-ExtIEs", + "GlobalTNGF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413, + sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413) + /sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413) + /sizeof(asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs_tags_413[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalTNGF_ID_ExtIEs_413, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalTNGF_ID_ExtIEs_specs_413 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_420 = { + sizeof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalTWIF_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_420 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTWIF_ID_ExtIEs_417[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_418, memb_ASN_NGAP_id_constraint_417 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_419, memb_ASN_NGAP_criticality_constraint_417 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_420, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_420, memb_ASN_NGAP_extensionValue_constraint_417 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tag2el_417[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTWIF_ID_ExtIEs_specs_417 = { + sizeof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalTWIF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tag2el_417, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs = { + "GlobalTWIF-ID-ExtIEs", + "GlobalTWIF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417, + sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417) + /sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417) + /sizeof(asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs_tags_417[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalTWIF_ID_ExtIEs_417, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalTWIF_ID_ExtIEs_specs_417 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_424 = { + sizeof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GlobalW_AGF_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_424 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_421[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_422, memb_ASN_NGAP_id_constraint_421 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_423, memb_ASN_NGAP_criticality_constraint_421 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_424, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_424, memb_ASN_NGAP_extensionValue_constraint_421 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tag2el_421[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_specs_421 = { + sizeof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tag2el_421, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs = { + "GlobalW-AGF-ID-ExtIEs", + "GlobalW-AGF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421, + sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421) + /sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421) + /sizeof(asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_tags_421[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_421, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_specs_421 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_428 = { + sizeof(struct ASN_NGAP_GTPTunnel_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GTPTunnel_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_428 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GTPTunnel_ExtIEs_425[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_426, memb_ASN_NGAP_id_constraint_425 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_427, memb_ASN_NGAP_criticality_constraint_425 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_428, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_428, memb_ASN_NGAP_extensionValue_constraint_425 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GTPTunnel_ExtIEs_tag2el_425[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GTPTunnel_ExtIEs_specs_425 = { + sizeof(struct ASN_NGAP_GTPTunnel_ExtIEs), + offsetof(struct ASN_NGAP_GTPTunnel_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GTPTunnel_ExtIEs_tag2el_425, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs = { + "GTPTunnel-ExtIEs", + "GTPTunnel-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425, + sizeof(asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425) + /sizeof(asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425[0]), /* 1 */ + asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425) + /sizeof(asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs_tags_425[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GTPTunnel_ExtIEs_425, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GTPTunnel_ExtIEs_specs_425 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_432 = { + sizeof(struct ASN_NGAP_GUAMI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_GUAMI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_GUAMI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_GUAMI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_432 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GUAMI_ExtIEs_429[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_430, memb_ASN_NGAP_id_constraint_429 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_431, memb_ASN_NGAP_criticality_constraint_429 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GUAMI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_432, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_432, memb_ASN_NGAP_extensionValue_constraint_429 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GUAMI_ExtIEs_tag2el_429[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GUAMI_ExtIEs_specs_429 = { + sizeof(struct ASN_NGAP_GUAMI_ExtIEs), + offsetof(struct ASN_NGAP_GUAMI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GUAMI_ExtIEs_tag2el_429, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMI_ExtIEs = { + "GUAMI-ExtIEs", + "GUAMI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429, + sizeof(asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429) + /sizeof(asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429[0]), /* 1 */ + asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429) + /sizeof(asn_DEF_ASN_NGAP_GUAMI_ExtIEs_tags_429[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GUAMI_ExtIEs_429, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GUAMI_ExtIEs_specs_429 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_436[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, choice.DataForwardingResponseERABList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseERABList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DataForwardingResponseERABList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, choice.QosFlowListWithCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowListWithCause" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_436[] = { 0, 2, 3, 4, 1 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_436[] = { 0, 4, 1, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_436[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* DataForwardingResponseERABList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 }, /* QosFlowListWithCause */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_436 = { + sizeof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_436, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_436, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_436, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_436, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_436 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommandTransfer_ExtIEs_433[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_434, memb_ASN_NGAP_id_constraint_433 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverCommandTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_435, memb_ASN_NGAP_criticality_constraint_433 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_436, + select_HandoverCommandTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_436, memb_ASN_NGAP_extensionValue_constraint_433 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tag2el_433[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommandTransfer_ExtIEs_specs_433 = { + sizeof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs), + offsetof(struct ASN_NGAP_HandoverCommandTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tag2el_433, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs = { + "HandoverCommandTransfer-ExtIEs", + "HandoverCommandTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433, + sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs_tags_433[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCommandTransfer_ExtIEs_433, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCommandTransfer_ExtIEs_specs_433 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_440 = { + sizeof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_440 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_437[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_438, memb_ASN_NGAP_id_constraint_437 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_439, memb_ASN_NGAP_criticality_constraint_437 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_440, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_440, memb_ASN_NGAP_extensionValue_constraint_437 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tag2el_437[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_specs_437 = { + sizeof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tag2el_437, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs = { + "HandoverPreparationUnsuccessfulTransfer-ExtIEs", + "HandoverPreparationUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437, + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_tags_437[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_437, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_specs_437 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_444[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.AdditionalDLUPTNLInformationForHOList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AdditionalDLUPTNLInformationForHOList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.DataForwardingResponseERABList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingResponseERABList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DataForwardingResponseERABList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation_1), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.RedundantPDUSessionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantPDUSessionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.MBS_SupportIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SupportIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SupportIndicator" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_444[] = { 7, 0, 2, 3, 5, 1, 4, 6 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_444[] = { 1, 5, 2, 3, 6, 4, 7, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_444[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 0 }, /* MBS-SupportIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* AdditionalDLUPTNLInformationForHOList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* DataForwardingResponseERABList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 }, /* RedundantPDUSessionInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 2 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, -1, 1 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 6, -2, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 2 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, -1, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 6, -2, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 6, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 6, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_444 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_444, + 13, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_444, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_444, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_444, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_444 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_441[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_442, memb_ASN_NGAP_id_constraint_441 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_443, memb_ASN_NGAP_criticality_constraint_441 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_444, + select_HandoverRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_444, memb_ASN_NGAP_extensionValue_constraint_441 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tag2el_441[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_specs_441 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tag2el_441, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs = { + "HandoverRequestAcknowledgeTransfer-ExtIEs", + "HandoverRequestAcknowledgeTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441, + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_tags_441[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_441, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_specs_441 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_448 = { + sizeof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HandoverRequiredTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_448 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_445[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_446, memb_ASN_NGAP_id_constraint_445 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_447, memb_ASN_NGAP_criticality_constraint_445 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_448, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_448, memb_ASN_NGAP_extensionValue_constraint_445 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tag2el_445[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_specs_445 = { + sizeof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs), + offsetof(struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tag2el_445, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs = { + "HandoverRequiredTransfer-ExtIEs", + "HandoverRequiredTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445, + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_tags_445[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_445, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_specs_445 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_452 = { + sizeof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_452 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_449[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_450, memb_ASN_NGAP_id_constraint_449 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_451, memb_ASN_NGAP_criticality_constraint_449 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_452, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_452, memb_ASN_NGAP_extensionValue_constraint_449 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tag2el_449[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_specs_449 = { + sizeof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tag2el_449, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs = { + "HandoverResourceAllocationUnsuccessfulTransfer-ExtIEs", + "HandoverResourceAllocationUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449, + sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449) + /sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449) + /sizeof(asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_tags_449[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_449, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_specs_449 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_456 = { + sizeof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HFCNode_ID_new_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_456 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HFCNode_ID_new_ExtIEs_453[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_454, memb_ASN_NGAP_id_constraint_453 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_455, memb_ASN_NGAP_criticality_constraint_453 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_456, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_456, memb_ASN_NGAP_extensionValue_constraint_453 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HFCNode_ID_new_ExtIEs_tag2el_453[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HFCNode_ID_new_ExtIEs_specs_453 = { + sizeof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs), + offsetof(struct ASN_NGAP_HFCNode_ID_new_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HFCNode_ID_new_ExtIEs_tag2el_453, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs = { + "HFCNode-ID-new-ExtIEs", + "HFCNode-ID-new-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453, + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453[0]), /* 1 */ + asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453) + /sizeof(asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs_tags_453[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HFCNode_ID_new_ExtIEs_453, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HFCNode_ID_new_ExtIEs_specs_453 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_460[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport_ExtIEs__extensionValue, choice.ExtendedMobilityInformation), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedMobilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedMobilityInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_460[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 0 } /* ExtendedMobilityInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_460 = { + sizeof(struct ASN_NGAP_HOReport_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_HOReport_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_HOReport_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_HOReport_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_460, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_460, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_460 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HOReport_ExtIEs_457[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_458, memb_ASN_NGAP_id_constraint_457 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HOReport_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_459, memb_ASN_NGAP_criticality_constraint_457 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HOReport_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_460, + select_HOReport_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_460, memb_ASN_NGAP_extensionValue_constraint_457 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HOReport_ExtIEs_tag2el_457[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HOReport_ExtIEs_specs_457 = { + sizeof(struct ASN_NGAP_HOReport_ExtIEs), + offsetof(struct ASN_NGAP_HOReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HOReport_ExtIEs_tag2el_457, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HOReport_ExtIEs = { + "HOReport-ExtIEs", + "HOReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457, + sizeof(asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457) + /sizeof(asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457[0]), /* 1 */ + asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457) + /sizeof(asn_DEF_ASN_NGAP_HOReport_ExtIEs_tags_457[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HOReport_ExtIEs_457, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HOReport_ExtIEs_specs_457 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_464 = { + sizeof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_464 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_461[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_462, memb_ASN_NGAP_id_constraint_461 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_463, memb_ASN_NGAP_criticality_constraint_461 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_464, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_464, memb_ASN_NGAP_extensionValue_constraint_461 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tag2el_461[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_specs_461 = { + sizeof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs), + offsetof(struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tag2el_461, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs = { + "InfoOnRecommendedCellsAndRANNodesForPaging-ExtIEs", + "InfoOnRecommendedCellsAndRANNodesForPaging-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461, + sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461) + /sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461[0]), /* 1 */ + asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461) + /sizeof(asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_tags_461[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_461, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_specs_461 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_468 = { + sizeof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ImmediateMDTNr_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_468 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ImmediateMDTNr_ExtIEs_465[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_466, memb_ASN_NGAP_id_constraint_465 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_467, memb_ASN_NGAP_criticality_constraint_465 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_468, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_468, memb_ASN_NGAP_extensionValue_constraint_465 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ImmediateMDTNr_ExtIEs_tag2el_465[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ImmediateMDTNr_ExtIEs_specs_465 = { + sizeof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs), + offsetof(struct ASN_NGAP_ImmediateMDTNr_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ImmediateMDTNr_ExtIEs_tag2el_465, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs = { + "ImmediateMDTNr-ExtIEs", + "ImmediateMDTNr-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465, + sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465) + /sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465[0]), /* 1 */ + asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465) + /sizeof(asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs_tags_465[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ImmediateMDTNr_ExtIEs_465, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ImmediateMDTNr_ExtIEs_specs_465 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_472 = { + sizeof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_InterSystemFailureIndication_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_472 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemFailureIndication_ExtIEs_469[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_470, memb_ASN_NGAP_id_constraint_469 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_471, memb_ASN_NGAP_criticality_constraint_469 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_472, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_472, memb_ASN_NGAP_extensionValue_constraint_469 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tag2el_469[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemFailureIndication_ExtIEs_specs_469 = { + sizeof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs), + offsetof(struct ASN_NGAP_InterSystemFailureIndication_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tag2el_469, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs = { + "InterSystemFailureIndication-ExtIEs", + "InterSystemFailureIndication-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469, + sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469) + /sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469) + /sizeof(asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs_tags_469[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemFailureIndication_ExtIEs_469, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemFailureIndication_ExtIEs_specs_469 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_476 = { + sizeof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemSONConfigurationTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_476 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_473[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_474, memb_ASN_NGAP_id_constraint_473 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_475, memb_ASN_NGAP_criticality_constraint_473 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_476, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_476, memb_ASN_NGAP_extensionValue_constraint_473 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tag2el_473[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_specs_473 = { + sizeof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tag2el_473, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs = { + "IntersystemSONConfigurationTransfer-ExtIEs", + "IntersystemSONConfigurationTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_tags_473[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_473, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_specs_473 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_480 = { + sizeof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemSONeNBID_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_480 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONeNBID_ExtIEs_477[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_478, memb_ASN_NGAP_id_constraint_477 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_479, memb_ASN_NGAP_criticality_constraint_477 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_480, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_480, memb_ASN_NGAP_extensionValue_constraint_477 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tag2el_477[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONeNBID_ExtIEs_specs_477 = { + sizeof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONeNBID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tag2el_477, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs = { + "IntersystemSONeNBID-ExtIEs", + "IntersystemSONeNBID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs_tags_477[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONeNBID_ExtIEs_477, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONeNBID_ExtIEs_specs_477 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_484 = { + sizeof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemSONNGRANnodeID_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_484 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_481[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_482, memb_ASN_NGAP_id_constraint_481 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_483, memb_ASN_NGAP_criticality_constraint_481 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_484, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_484, memb_ASN_NGAP_extensionValue_constraint_481 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tag2el_481[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_specs_481 = { + sizeof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tag2el_481, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs = { + "IntersystemSONNGRANnodeID-ExtIEs", + "IntersystemSONNGRANnodeID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_tags_481[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_481, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_specs_481 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_488 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemCellActivationRequest_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_488 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_485[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_486, memb_ASN_NGAP_id_constraint_485 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_487, memb_ASN_NGAP_criticality_constraint_485 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_488, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_488, memb_ASN_NGAP_extensionValue_constraint_485 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tag2el_485[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_specs_485 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tag2el_485, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs = { + "IntersystemCellActivationRequest-ExtIEs", + "IntersystemCellActivationRequest-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_tags_485[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_485, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_specs_485 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_492 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemResourceStatusRequest_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_492 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_489[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_490, memb_ASN_NGAP_id_constraint_489 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_491, memb_ASN_NGAP_criticality_constraint_489 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_492, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_492, memb_ASN_NGAP_extensionValue_constraint_489 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tag2el_489[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_specs_489 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tag2el_489, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs = { + "IntersystemResourceStatusRequest-ExtIEs", + "IntersystemResourceStatusRequest-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_tags_489[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_489, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_specs_489 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_496 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_ReportingSystemIEs_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_496 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_493[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_494, memb_ASN_NGAP_id_constraint_493 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_495, memb_ASN_NGAP_criticality_constraint_493 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_496, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_496, memb_ASN_NGAP_extensionValue_constraint_493 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tag2el_493[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_specs_493 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tag2el_493, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs = { + "EUTRAN-ReportingSystemIEs-ExtIEs", + "EUTRAN-ReportingSystemIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_tags_493[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_493, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_specs_493 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_500 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_ReportingSystemIEs_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_500 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_497[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_498, memb_ASN_NGAP_id_constraint_497 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_499, memb_ASN_NGAP_criticality_constraint_497 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_500, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_500, memb_ASN_NGAP_extensionValue_constraint_497 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tag2el_497[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_specs_497 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tag2el_497, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs = { + "NGRAN-ReportingSystemIEs-ExtIEs", + "NGRAN-ReportingSystemIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497, + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_tags_497[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_497, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_specs_497 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_504 = { + sizeof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_CellToReportItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_504 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_501[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_502, memb_ASN_NGAP_id_constraint_501 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_503, memb_ASN_NGAP_criticality_constraint_501 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_504, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_504, memb_ASN_NGAP_extensionValue_constraint_501 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tag2el_501[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_specs_501 = { + sizeof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tag2el_501, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs = { + "EUTRAN-CellToReportItem-ExtIEs", + "EUTRAN-CellToReportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_tags_501[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_501, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_specs_501 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_508 = { + sizeof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_CellToReportItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_508 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_505[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_506, memb_ASN_NGAP_id_constraint_505 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_507, memb_ASN_NGAP_criticality_constraint_505 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_508, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_508, memb_ASN_NGAP_extensionValue_constraint_505 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tag2el_505[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_specs_505 = { + sizeof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tag2el_505, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs = { + "NGRAN-CellToReportItem-ExtIEs", + "NGRAN-CellToReportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_tags_505[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_505, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_specs_505 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_512 = { + sizeof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EventBasedReportingIEs_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_512 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventBasedReportingIEs_ExtIEs_509[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_510, memb_ASN_NGAP_id_constraint_509 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_511, memb_ASN_NGAP_criticality_constraint_509 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_512, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_512, memb_ASN_NGAP_extensionValue_constraint_509 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tag2el_509[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventBasedReportingIEs_ExtIEs_specs_509 = { + sizeof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs), + offsetof(struct ASN_NGAP_EventBasedReportingIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tag2el_509, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs = { + "EventBasedReportingIEs-ExtIEs", + "EventBasedReportingIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509, + sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509) + /sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509) + /sizeof(asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs_tags_509[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventBasedReportingIEs_ExtIEs_509, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EventBasedReportingIEs_ExtIEs_specs_509 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_516 = { + sizeof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PeriodicReportingIEs_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_516 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PeriodicReportingIEs_ExtIEs_513[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_514, memb_ASN_NGAP_id_constraint_513 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_515, memb_ASN_NGAP_criticality_constraint_513 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_516, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_516, memb_ASN_NGAP_extensionValue_constraint_513 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tag2el_513[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PeriodicReportingIEs_ExtIEs_specs_513 = { + sizeof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs), + offsetof(struct ASN_NGAP_PeriodicReportingIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tag2el_513, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs = { + "PeriodicReportingIEs-ExtIEs", + "PeriodicReportingIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513, + sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513) + /sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513[0]), /* 1 */ + asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513) + /sizeof(asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs_tags_513[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PeriodicReportingIEs_ExtIEs_513, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PeriodicReportingIEs_ExtIEs_specs_513 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_520 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemCellActivationReply_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_520 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_517[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_518, memb_ASN_NGAP_id_constraint_517 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_519, memb_ASN_NGAP_criticality_constraint_517 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_520, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_520, memb_ASN_NGAP_extensionValue_constraint_517 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tag2el_517[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_specs_517 = { + sizeof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tag2el_517, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs = { + "IntersystemCellActivationReply-ExtIEs", + "IntersystemCellActivationReply-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_tags_517[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_517, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_specs_517 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_524 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemResourceStatusReply_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_524 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_521[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_522, memb_ASN_NGAP_id_constraint_521 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_523, memb_ASN_NGAP_criticality_constraint_521 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_524, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_524, memb_ASN_NGAP_extensionValue_constraint_521 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tag2el_521[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_specs_521 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tag2el_521, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs = { + "IntersystemResourceStatusReply-ExtIEs", + "IntersystemResourceStatusReply-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_tags_521[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_521, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_specs_521 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_528 = { + sizeof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemCellStateIndication_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_528 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_525[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_526, memb_ASN_NGAP_id_constraint_525 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_527, memb_ASN_NGAP_criticality_constraint_525 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_528, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_528, memb_ASN_NGAP_extensionValue_constraint_525 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tag2el_525[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_specs_525 = { + sizeof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tag2el_525, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs = { + "IntersystemCellStateIndication-ExtIEs", + "IntersystemCellStateIndication-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525, + sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525) + /sizeof(asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_tags_525[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_525, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_specs_525 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_532 = { + sizeof(struct ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NotificationCell_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_532 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCell_Item_ExtIEs_529[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_530, memb_ASN_NGAP_id_constraint_529 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_531, memb_ASN_NGAP_criticality_constraint_529 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_532, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_532, memb_ASN_NGAP_extensionValue_constraint_529 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NotificationCell_Item_ExtIEs_tag2el_529[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NotificationCell_Item_ExtIEs_specs_529 = { + sizeof(struct ASN_NGAP_NotificationCell_Item_ExtIEs), + offsetof(struct ASN_NGAP_NotificationCell_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NotificationCell_Item_ExtIEs_tag2el_529, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs = { + "NotificationCell-Item-ExtIEs", + "NotificationCell-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529, + sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529) + /sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529[0]), /* 1 */ + asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529) + /sizeof(asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs_tags_529[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NotificationCell_Item_ExtIEs_529, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NotificationCell_Item_ExtIEs_specs_529 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_536 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemResourceStatusReport_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_536 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_533[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_534, memb_ASN_NGAP_id_constraint_533 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_535, memb_ASN_NGAP_criticality_constraint_533 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_536, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_536, memb_ASN_NGAP_extensionValue_constraint_533 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tag2el_533[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_specs_533 = { + sizeof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tag2el_533, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs = { + "IntersystemResourceStatusReport-ExtIEs", + "IntersystemResourceStatusReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533, + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533) + /sizeof(asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_tags_533[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_533, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_specs_533 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_540 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_ReportingStatusIEs_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_540 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_537[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_538, memb_ASN_NGAP_id_constraint_537 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_539, memb_ASN_NGAP_criticality_constraint_537 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_540, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_540, memb_ASN_NGAP_extensionValue_constraint_537 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tag2el_537[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_specs_537 = { + sizeof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tag2el_537, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs = { + "EUTRAN-ReportingStatusIEs-ExtIEs", + "EUTRAN-ReportingStatusIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_tags_537[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_537, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_specs_537 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_544 = { + sizeof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_CellReportItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_544 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_541[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_542, memb_ASN_NGAP_id_constraint_541 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_543, memb_ASN_NGAP_criticality_constraint_541 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_544, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_544, memb_ASN_NGAP_extensionValue_constraint_541 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tag2el_541[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_specs_541 = { + sizeof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tag2el_541, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs = { + "EUTRAN-CellReportItem-ExtIEs", + "EUTRAN-CellReportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_tags_541[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_541, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_specs_541 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_548 = { + sizeof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_548 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_545[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_546, memb_ASN_NGAP_id_constraint_545 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_547, memb_ASN_NGAP_criticality_constraint_545 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_548, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_548, memb_ASN_NGAP_extensionValue_constraint_545 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tag2el_545[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_specs_545 = { + sizeof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tag2el_545, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs = { + "EUTRAN-CompositeAvailableCapacityGroup-ExtIEs", + "EUTRAN-CompositeAvailableCapacityGroup-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_tags_545[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_545, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_specs_545 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_552 = { + sizeof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_552 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_549[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_550, memb_ASN_NGAP_id_constraint_549 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_551, memb_ASN_NGAP_criticality_constraint_549 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_552, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_552, memb_ASN_NGAP_extensionValue_constraint_549 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tag2el_549[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_specs_549 = { + sizeof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs), + offsetof(struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tag2el_549, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs = { + "CompositeAvailableCapacity-ExtIEs", + "CompositeAvailableCapacity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549, + sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549) + /sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549[0]), /* 1 */ + asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549) + /sizeof(asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_tags_549[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_549, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_specs_549 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_556 = { + sizeof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_EUTRAN_RadioResourceStatus_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_556 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_553[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_554, memb_ASN_NGAP_id_constraint_553 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_555, memb_ASN_NGAP_criticality_constraint_553 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_556, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_556, memb_ASN_NGAP_extensionValue_constraint_553 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tag2el_553[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_specs_553 = { + sizeof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs), + offsetof(struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tag2el_553, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs = { + "EUTRAN-RadioResourceStatus-ExtIEs", + "EUTRAN-RadioResourceStatus-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553, + sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553[0]), /* 1 */ + asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553) + /sizeof(asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_tags_553[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_553, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_specs_553 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_560 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_ReportingStatusIEs_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_560 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_557[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_558, memb_ASN_NGAP_id_constraint_557 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_559, memb_ASN_NGAP_criticality_constraint_557 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_560, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_560, memb_ASN_NGAP_extensionValue_constraint_557 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tag2el_557[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_specs_557 = { + sizeof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tag2el_557, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs = { + "NGRAN-ReportingStatusIEs-ExtIEs", + "NGRAN-ReportingStatusIEs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557, + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_tags_557[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_557, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_specs_557 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_564 = { + sizeof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_CellReportItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_564 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_561[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_562, memb_ASN_NGAP_id_constraint_561 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_563, memb_ASN_NGAP_criticality_constraint_561 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_564, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_564, memb_ASN_NGAP_extensionValue_constraint_561 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tag2el_561[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_specs_561 = { + sizeof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tag2el_561, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs = { + "NGRAN-CellReportItem-ExtIEs", + "NGRAN-CellReportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_tags_561[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_561, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_specs_561 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_568 = { + sizeof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_RadioResourceStatus_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_568 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_565[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_566, memb_ASN_NGAP_id_constraint_565 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_567, memb_ASN_NGAP_criticality_constraint_565 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_568, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_568, memb_ASN_NGAP_extensionValue_constraint_565 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tag2el_565[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_specs_565 = { + sizeof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tag2el_565, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs = { + "NGRAN-RadioResourceStatus-ExtIEs", + "NGRAN-RadioResourceStatus-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565, + sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_tags_565[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_565, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_specs_565 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_572 = { + sizeof(struct ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_InterSystemHOReport_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_572 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHOReport_ExtIEs_569[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_570, memb_ASN_NGAP_id_constraint_569 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_571, memb_ASN_NGAP_criticality_constraint_569 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_572, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_572, memb_ASN_NGAP_extensionValue_constraint_569 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemHOReport_ExtIEs_tag2el_569[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHOReport_ExtIEs_specs_569 = { + sizeof(struct ASN_NGAP_InterSystemHOReport_ExtIEs), + offsetof(struct ASN_NGAP_InterSystemHOReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InterSystemHOReport_ExtIEs_tag2el_569, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs = { + "InterSystemHOReport-ExtIEs", + "InterSystemHOReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569, + sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs_tags_569[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemHOReport_ExtIEs_569, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemHOReport_ExtIEs_specs_569 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_576 = { + sizeof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_IntersystemUnnecessaryHO_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_576 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_573[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_574, memb_ASN_NGAP_id_constraint_573 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_575, memb_ASN_NGAP_criticality_constraint_573 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_576, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_576, memb_ASN_NGAP_extensionValue_constraint_573 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tag2el_573[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_specs_573 = { + sizeof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tag2el_573, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs = { + "IntersystemUnnecessaryHO-ExtIEs", + "IntersystemUnnecessaryHO-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573, + sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573) + /sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573) + /sizeof(asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_tags_573[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_573, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_specs_573 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_580 = { + sizeof(struct ASN_NGAP_LAI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LAI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LAI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LAI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_580 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LAI_ExtIEs_577[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LAI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_578, memb_ASN_NGAP_id_constraint_577 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LAI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_579, memb_ASN_NGAP_criticality_constraint_577 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LAI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_580, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_580, memb_ASN_NGAP_extensionValue_constraint_577 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LAI_ExtIEs_tag2el_577[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LAI_ExtIEs_specs_577 = { + sizeof(struct ASN_NGAP_LAI_ExtIEs), + offsetof(struct ASN_NGAP_LAI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LAI_ExtIEs_tag2el_577, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAI_ExtIEs = { + "LAI-ExtIEs", + "LAI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577, + sizeof(asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577) + /sizeof(asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577[0]), /* 1 */ + asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577) + /sizeof(asn_DEF_ASN_NGAP_LAI_ExtIEs_tags_577[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LAI_ExtIEs_577, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LAI_ExtIEs_specs_577 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_584 = { + sizeof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LastVisitedCellItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_584 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellItem_ExtIEs_581[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_582, memb_ASN_NGAP_id_constraint_581 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_583, memb_ASN_NGAP_criticality_constraint_581 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_584, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_584, memb_ASN_NGAP_extensionValue_constraint_581 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedCellItem_ExtIEs_tag2el_581[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellItem_ExtIEs_specs_581 = { + sizeof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs), + offsetof(struct ASN_NGAP_LastVisitedCellItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedCellItem_ExtIEs_tag2el_581, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs = { + "LastVisitedCellItem-ExtIEs", + "LastVisitedCellItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581, + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs_tags_581[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedCellItem_ExtIEs_581, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedCellItem_ExtIEs_specs_581 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_588[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue, choice.LastVisitedPSCellList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedPSCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LastVisitedPSCellList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_588[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LastVisitedPSCellList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_588 = { + sizeof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_588, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_588, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_588 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_585[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_586, memb_ASN_NGAP_id_constraint_585 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LastVisitedNGRANCellInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_587, memb_ASN_NGAP_criticality_constraint_585 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_588, + select_LastVisitedNGRANCellInformation_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_588, memb_ASN_NGAP_extensionValue_constraint_585 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tag2el_585[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_specs_585 = { + sizeof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs), + offsetof(struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tag2el_585, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs = { + "LastVisitedNGRANCellInformation-ExtIEs", + "LastVisitedNGRANCellInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585, + sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_tags_585[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_585, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_specs_585 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_592 = { + sizeof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LastVisitedPSCellInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_592 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_589[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_590, memb_ASN_NGAP_id_constraint_589 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_591, memb_ASN_NGAP_criticality_constraint_589 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_592, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_592, memb_ASN_NGAP_extensionValue_constraint_589 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tag2el_589[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_specs_589 = { + sizeof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs), + offsetof(struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tag2el_589, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs = { + "LastVisitedPSCellInformation-ExtIEs", + "LastVisitedPSCellInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589, + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_tags_589[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_589, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_specs_589 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_596[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue, choice.LocationReportingAdditionalInfo), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingAdditionalInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingAdditionalInfo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_596[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* LocationReportingAdditionalInfo */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_596 = { + sizeof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_596, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_596, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_596 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingRequestType_ExtIEs_593[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_594, memb_ASN_NGAP_id_constraint_593 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LocationReportingRequestType_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_595, memb_ASN_NGAP_criticality_constraint_593 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_596, + select_LocationReportingRequestType_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_596, memb_ASN_NGAP_extensionValue_constraint_593 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingRequestType_ExtIEs_tag2el_593[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingRequestType_ExtIEs_specs_593 = { + sizeof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs), + offsetof(struct ASN_NGAP_LocationReportingRequestType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingRequestType_ExtIEs_tag2el_593, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs = { + "LocationReportingRequestType-ExtIEs", + "LocationReportingRequestType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593, + sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs_tags_593[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingRequestType_ExtIEs_593, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingRequestType_ExtIEs_specs_593 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_600[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue, choice.EarlyMeasurement), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_EarlyMeasurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EarlyMeasurement" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_600[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* EarlyMeasurement */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_600 = { + sizeof(struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_600, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_600 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTNr_ExtIEs_597[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_598, memb_ASN_NGAP_id_constraint_597 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LoggedMDTNr_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_599, memb_ASN_NGAP_criticality_constraint_597 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_600, + select_LoggedMDTNr_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_600, memb_ASN_NGAP_extensionValue_constraint_597 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LoggedMDTNr_ExtIEs_tag2el_597[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTNr_ExtIEs_specs_597 = { + sizeof(struct ASN_NGAP_LoggedMDTNr_ExtIEs), + offsetof(struct ASN_NGAP_LoggedMDTNr_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LoggedMDTNr_ExtIEs_tag2el_597, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs = { + "LoggedMDTNr-ExtIEs", + "LoggedMDTNr-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597, + sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597[0]), /* 1 */ + asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs_tags_597[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LoggedMDTNr_ExtIEs_597, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LoggedMDTNr_ExtIEs_specs_597 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_604 = { + sizeof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LTEV2XServicesAuthorized_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_604 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_601[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_602, memb_ASN_NGAP_id_constraint_601 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_603, memb_ASN_NGAP_criticality_constraint_601 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_604, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_604, memb_ASN_NGAP_extensionValue_constraint_601 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tag2el_601[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_specs_601 = { + sizeof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs), + offsetof(struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tag2el_601, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs = { + "LTEV2XServicesAuthorized-ExtIEs", + "LTEV2XServicesAuthorized-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601, + sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601) + /sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601) + /sizeof(asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_tags_601[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_601, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_specs_601 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_608 = { + sizeof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_608 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_605[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_606, memb_ASN_NGAP_id_constraint_605 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_607, memb_ASN_NGAP_criticality_constraint_605 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_608, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_608, memb_ASN_NGAP_extensionValue_constraint_605 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tag2el_605[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_specs_605 = { + sizeof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs), + offsetof(struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tag2el_605, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs = { + "LTEUE-Sidelink-Aggregate-MaximumBitrates-ExtIEs", + "LTEUE-Sidelink-Aggregate-MaximumBitrates-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605, + sizeof(asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605) + /sizeof(asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605[0]), /* 1 */ + asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605) + /sizeof(asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_tags_605[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_605, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_specs_605 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_612 = { + sizeof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_612 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_609[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_610, memb_ASN_NGAP_id_constraint_609 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_611, memb_ASN_NGAP_criticality_constraint_609 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_612, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_612, memb_ASN_NGAP_extensionValue_constraint_609 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tag2el_609[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_specs_609 = { + sizeof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tag2el_609, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs = { + "MBS-DataForwardingResponseMRBItem-ExtIEs", + "MBS-DataForwardingResponseMRBItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609, + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609) + /sizeof(asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_tags_609[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_609, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_specs_609 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_616 = { + sizeof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_616 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_613[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_614, memb_ASN_NGAP_id_constraint_613 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_615, memb_ASN_NGAP_criticality_constraint_613 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_616, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_616, memb_ASN_NGAP_extensionValue_constraint_613 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tag2el_613[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_specs_613 = { + sizeof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tag2el_613, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs = { + "MBS-MappingandDataForwardingRequestItem-ExtIEs", + "MBS-MappingandDataForwardingRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613, + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613) + /sizeof(asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_tags_613[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_613, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_specs_613 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_620 = { + sizeof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_620 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_617[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_618, memb_ASN_NGAP_id_constraint_617 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_619, memb_ASN_NGAP_criticality_constraint_617 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_620, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_620, memb_ASN_NGAP_extensionValue_constraint_617 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tag2el_617[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_specs_617 = { + sizeof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tag2el_617, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs = { + "MBS-QoSFlowsToBeSetupItem-ExtIEs", + "MBS-QoSFlowsToBeSetupItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617, + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617) + /sizeof(asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_tags_617[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_617, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_specs_617 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_624 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_ServiceAreaInformationItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_624 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_621[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_622, memb_ASN_NGAP_id_constraint_621 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_623, memb_ASN_NGAP_criticality_constraint_621 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_624, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_624, memb_ASN_NGAP_extensionValue_constraint_621 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tag2el_621[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_specs_621 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tag2el_621, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs = { + "MBS-ServiceAreaInformationItem-ExtIEs", + "MBS-ServiceAreaInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_tags_621[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_621, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_specs_621 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_628 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_ServiceAreaInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_628 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_625[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_626, memb_ASN_NGAP_id_constraint_625 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_627, memb_ASN_NGAP_criticality_constraint_625 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_628, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_628, memb_ASN_NGAP_extensionValue_constraint_625 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tag2el_625[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_specs_625 = { + sizeof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs), + offsetof(struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tag2el_625, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs = { + "MBS-ServiceAreaInformation-ExtIEs", + "MBS-ServiceAreaInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_tags_625[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_625, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_specs_625 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_632 = { + sizeof(struct ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_SessionID_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_632 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionID_ExtIEs_629[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_630, memb_ASN_NGAP_id_constraint_629 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_631, memb_ASN_NGAP_criticality_constraint_629 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_632, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_632, memb_ASN_NGAP_extensionValue_constraint_629 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionID_ExtIEs_tag2el_629[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionID_ExtIEs_specs_629 = { + sizeof(struct ASN_NGAP_MBS_SessionID_ExtIEs), + offsetof(struct ASN_NGAP_MBS_SessionID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionID_ExtIEs_tag2el_629, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs = { + "MBS-SessionID-ExtIEs", + "MBS-SessionID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs_tags_629[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionID_ExtIEs_629, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionID_ExtIEs_specs_629 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_636 = { + sizeof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionFailedtoSetupItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_636 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_633[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_634, memb_ASN_NGAP_id_constraint_633 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_635, memb_ASN_NGAP_criticality_constraint_633 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_636, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_636, memb_ASN_NGAP_extensionValue_constraint_633 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tag2el_633[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_specs_633 = { + sizeof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tag2el_633, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs = { + "MBSSessionFailedtoSetupItem-ExtIEs", + "MBSSessionFailedtoSetupItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633, + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_tags_633[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_633, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_specs_633 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_640 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_640 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_637[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_638, memb_ASN_NGAP_id_constraint_637 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_639, memb_ASN_NGAP_criticality_constraint_637 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_640, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_640, memb_ASN_NGAP_extensionValue_constraint_637 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tag2el_637[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_specs_637 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tag2el_637, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs = { + "MBS-ActiveSessionInformation-SourcetoTargetItem-ExtIEs", + "MBS-ActiveSessionInformation-SourcetoTargetItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_tags_637[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_637, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_specs_637 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_644 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_644 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_641[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_642, memb_ASN_NGAP_id_constraint_641 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_643, memb_ASN_NGAP_criticality_constraint_641 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_644, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_644, memb_ASN_NGAP_extensionValue_constraint_641 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tag2el_641[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_specs_641 = { + sizeof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tag2el_641, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs = { + "MBS-ActiveSessionInformation-TargettoSourceItem-ExtIEs", + "MBS-ActiveSessionInformation-TargettoSourceItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641, + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641) + /sizeof(asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_tags_641[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_641, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_specs_641 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_648 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_648 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_645[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_646, memb_ASN_NGAP_id_constraint_645 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_647, memb_ASN_NGAP_criticality_constraint_645 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_648, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_648, memb_ASN_NGAP_extensionValue_constraint_645 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tag2el_645[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_specs_645 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tag2el_645, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs = { + "MBSSessionSetupOrModFailureTransfer-ExtIEs", + "MBSSessionSetupOrModFailureTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_tags_645[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_645, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_specs_645 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_652 = { + sizeof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionSetupResponseItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_652 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_649[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_650, memb_ASN_NGAP_id_constraint_649 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_651, memb_ASN_NGAP_criticality_constraint_649 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_652, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_652, memb_ASN_NGAP_extensionValue_constraint_649 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tag2el_649[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_specs_649 = { + sizeof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tag2el_649, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs = { + "MBSSessionSetupResponseItem-ExtIEs", + "MBSSessionSetupResponseItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_tags_649[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_649, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_specs_649 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_656 = { + sizeof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionReleaseResponseTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_656 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_653[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_654, memb_ASN_NGAP_id_constraint_653 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_655, memb_ASN_NGAP_criticality_constraint_653 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_656, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_656, memb_ASN_NGAP_extensionValue_constraint_653 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tag2el_653[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_specs_653 = { + sizeof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tag2el_653, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs = { + "MBSSessionReleaseResponseTransfer-ExtIEs", + "MBSSessionReleaseResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653, + sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_tags_653[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_653, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_specs_653 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_660 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_660 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_657[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_658, memb_ASN_NGAP_id_constraint_657 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_659, memb_ASN_NGAP_criticality_constraint_657 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_660, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_660, memb_ASN_NGAP_extensionValue_constraint_657 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tag2el_657[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_specs_657 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tag2el_657, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs = { + "MBSSessionSetupOrModResponseTransfer-ExtIEs", + "MBSSessionSetupOrModResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_tags_657[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_657, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_specs_657 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_664 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_664 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_661[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_662, memb_ASN_NGAP_id_constraint_661 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_663, memb_ASN_NGAP_criticality_constraint_661 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_664, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_664, memb_ASN_NGAP_extensionValue_constraint_661 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tag2el_661[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_specs_661 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tag2el_661, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs = { + "MBS-SessionTNLInfo5GCItem-ExtIEs", + "MBS-SessionTNLInfo5GCItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_tags_661[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_661, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_specs_661 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_668 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_668 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_665[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_666, memb_ASN_NGAP_id_constraint_665 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_667, memb_ASN_NGAP_criticality_constraint_665 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_668, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_668, memb_ASN_NGAP_extensionValue_constraint_665 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tag2el_665[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_specs_665 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tag2el_665, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs = { + "MBS-SessionTNLInfoNGRANItem-ExtIEs", + "MBS-SessionTNLInfoNGRANItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_tags_665[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_665, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_specs_665 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_672 = { + sizeof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_672 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_669[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_670, memb_ASN_NGAP_id_constraint_669 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_671, memb_ASN_NGAP_criticality_constraint_669 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_672, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_672, memb_ASN_NGAP_extensionValue_constraint_669 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tag2el_669[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_specs_669 = { + sizeof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tag2el_669, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs = { + "MBS-DistributionReleaseRequesTransfer-ExtIEs", + "MBS-DistributionReleaseRequesTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_tags_669[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_669, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_specs_669 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_676 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_676 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_673[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_674, memb_ASN_NGAP_id_constraint_673 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_675, memb_ASN_NGAP_criticality_constraint_673 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_676, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_676, memb_ASN_NGAP_extensionValue_constraint_673 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tag2el_673[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_specs_673 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tag2el_673, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs = { + "MBS-DistributionSetupRequestTransfer-ExtIEs", + "MBS-DistributionSetupRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_tags_673[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_673, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_specs_673 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_680 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_680 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_677[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_678, memb_ASN_NGAP_id_constraint_677 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_679, memb_ASN_NGAP_criticality_constraint_677 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_680, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_680, memb_ASN_NGAP_extensionValue_constraint_677 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tag2el_677[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_specs_677 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tag2el_677, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs = { + "MBS-DistributionSetupResponseTransfer-ExtIEs", + "MBS-DistributionSetupResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_tags_677[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_677, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_specs_677 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_684 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_684 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_681[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_682, memb_ASN_NGAP_id_constraint_681 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_683, memb_ASN_NGAP_criticality_constraint_681 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_684, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_684, memb_ASN_NGAP_extensionValue_constraint_681 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tag2el_681[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_specs_681 = { + sizeof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tag2el_681, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs = { + "MBS-DistributionSetupUnsuccessfulTransfer-ExtIEs", + "MBS-DistributionSetupUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681, + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681) + /sizeof(asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_tags_681[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_681, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_specs_681 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_688 = { + sizeof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionSetupRequestItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_688 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_685[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_686, memb_ASN_NGAP_id_constraint_685 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_687, memb_ASN_NGAP_criticality_constraint_685 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_688, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_688, memb_ASN_NGAP_extensionValue_constraint_685 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tag2el_685[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_specs_685 = { + sizeof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tag2el_685, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs = { + "MBSSessionSetupRequestItem-ExtIEs", + "MBSSessionSetupRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_tags_685[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_685, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_specs_685 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_692 = { + sizeof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_692 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_689[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_690, memb_ASN_NGAP_id_constraint_689 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_691, memb_ASN_NGAP_criticality_constraint_689 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_692, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_692, memb_ASN_NGAP_extensionValue_constraint_689 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tag2el_689[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_specs_689 = { + sizeof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tag2el_689, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs = { + "MBSSessionSetuporModifyRequestItem-ExtIEs", + "MBSSessionSetuporModifyRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_tags_689[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_689, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_specs_689 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_696 = { + sizeof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MBSSessionToReleaseItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_696 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_693[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_694, memb_ASN_NGAP_id_constraint_693 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_695, memb_ASN_NGAP_criticality_constraint_693 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_696, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_696, memb_ASN_NGAP_extensionValue_constraint_693 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tag2el_693[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_specs_693 = { + sizeof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs), + offsetof(struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tag2el_693, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs = { + "MBSSessionToReleaseItem-ExtIEs", + "MBSSessionToReleaseItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693, + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_tags_693[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_693, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_specs_693 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_700[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, choice.PLMNIdentity), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, choice.CNTypeRestrictionsForServing), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNTypeRestrictionsForServing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNTypeRestrictionsForServing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, choice.CNTypeRestrictionsForEquivalent), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalent, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNTypeRestrictionsForEquivalent" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, choice.NPN_MobilityInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_MobilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-MobilityInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_700[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 }, /* PLMNIdentity */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* CNTypeRestrictionsForServing */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CNTypeRestrictionsForEquivalent */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* sNPN-MobilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* pNI-NPN-MobilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_700 = { + sizeof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_700, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_700, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_700 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MobilityRestrictionList_ExtIEs_697[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_698, memb_ASN_NGAP_id_constraint_697 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MobilityRestrictionList_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_699, memb_ASN_NGAP_criticality_constraint_697 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_700, + select_MobilityRestrictionList_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_700, memb_ASN_NGAP_extensionValue_constraint_697 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MobilityRestrictionList_ExtIEs_tag2el_697[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MobilityRestrictionList_ExtIEs_specs_697 = { + sizeof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs), + offsetof(struct ASN_NGAP_MobilityRestrictionList_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MobilityRestrictionList_ExtIEs_tag2el_697, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs = { + "MobilityRestrictionList-ExtIEs", + "MobilityRestrictionList-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697, + sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697) + /sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697[0]), /* 1 */ + asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697) + /sizeof(asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs_tags_697[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MobilityRestrictionList_ExtIEs_697, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MobilityRestrictionList_ExtIEs_specs_697 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_704 = { + sizeof(struct ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MDT_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_704 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_ExtIEs_701[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_702, memb_ASN_NGAP_id_constraint_701 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_703, memb_ASN_NGAP_criticality_constraint_701 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_704, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_704, memb_ASN_NGAP_extensionValue_constraint_701 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_ExtIEs_tag2el_701[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_ExtIEs_specs_701 = { + sizeof(struct ASN_NGAP_MDT_Configuration_ExtIEs), + offsetof(struct ASN_NGAP_MDT_Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_ExtIEs_tag2el_701, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs = { + "MDT-Configuration-ExtIEs", + "MDT-Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs_tags_701[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_ExtIEs_701, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_ExtIEs_specs_701 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_708 = { + sizeof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MDT_Configuration_NR_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_708 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_NR_ExtIEs_705[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_706, memb_ASN_NGAP_id_constraint_705 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_707, memb_ASN_NGAP_criticality_constraint_705 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_708, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_708, memb_ASN_NGAP_extensionValue_constraint_705 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tag2el_705[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_NR_ExtIEs_specs_705 = { + sizeof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs), + offsetof(struct ASN_NGAP_MDT_Configuration_NR_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tag2el_705, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs = { + "MDT-Configuration-NR-ExtIEs", + "MDT-Configuration-NR-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs_tags_705[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_NR_ExtIEs_705, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_NR_ExtIEs_specs_705 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_712 = { + sizeof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MDT_Configuration_EUTRA_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_712 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_709[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_710, memb_ASN_NGAP_id_constraint_709 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_711, memb_ASN_NGAP_criticality_constraint_709 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_712, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_712, memb_ASN_NGAP_extensionValue_constraint_709 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tag2el_709[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_specs_709 = { + sizeof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs), + offsetof(struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tag2el_709, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs = { + "MDT-Configuration-EUTRA-ExtIEs", + "MDT-Configuration-EUTRA-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709, + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709) + /sizeof(asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_tags_709[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_709, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_specs_709 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_716 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MulticastSessionActivationRequestTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_716 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_713[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_714, memb_ASN_NGAP_id_constraint_713 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_715, memb_ASN_NGAP_criticality_constraint_713 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_716, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_716, memb_ASN_NGAP_extensionValue_constraint_713 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tag2el_713[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_specs_713 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tag2el_713, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs = { + "MulticastSessionActivationRequestTransfer-ExtIEs", + "MulticastSessionActivationRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_tags_713[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_713, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_specs_713 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_720 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_720 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_717[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_718, memb_ASN_NGAP_id_constraint_717 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_719, memb_ASN_NGAP_criticality_constraint_717 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_720, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_720, memb_ASN_NGAP_extensionValue_constraint_717 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tag2el_717[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_specs_717 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tag2el_717, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs = { + "MulticastSessionDeactivationRequestTransfer-ExtIEs", + "MulticastSessionDeactivationRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_tags_717[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_717, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_specs_717 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_724 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MulticastGroupPagingAreaItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_724 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_721[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_722, memb_ASN_NGAP_id_constraint_721 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_723, memb_ASN_NGAP_criticality_constraint_721 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_724, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_724, memb_ASN_NGAP_extensionValue_constraint_721 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tag2el_721[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_specs_721 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs), + offsetof(struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tag2el_721, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs = { + "MulticastGroupPagingAreaItem-ExtIEs", + "MulticastGroupPagingAreaItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_tags_721[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_721, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_specs_721 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_728 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MulticastGroupPagingArea_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_728 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_725[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_726, memb_ASN_NGAP_id_constraint_725 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_727, memb_ASN_NGAP_criticality_constraint_725 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_728, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_728, memb_ASN_NGAP_extensionValue_constraint_725 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tag2el_725[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_specs_725 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs), + offsetof(struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tag2el_725, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs = { + "MulticastGroupPagingArea-ExtIEs", + "MulticastGroupPagingArea-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_tags_725[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_725, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_specs_725 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_732 = { + sizeof(struct ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UE_PagingItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_732 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_PagingItem_ExtIEs_729[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_730, memb_ASN_NGAP_id_constraint_729 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_731, memb_ASN_NGAP_criticality_constraint_729 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_732, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_732, memb_ASN_NGAP_extensionValue_constraint_729 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_PagingItem_ExtIEs_tag2el_729[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_PagingItem_ExtIEs_specs_729 = { + sizeof(struct ASN_NGAP_UE_PagingItem_ExtIEs), + offsetof(struct ASN_NGAP_UE_PagingItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UE_PagingItem_ExtIEs_tag2el_729, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs = { + "UE-PagingItem-ExtIEs", + "UE-PagingItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729, + sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs_tags_729[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_PagingItem_ExtIEs_729, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_PagingItem_ExtIEs_specs_729 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_736[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue, choice.IncludeBeamMeasurementsIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IncludeBeamMeasurementsIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IncludeBeamMeasurementsIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue, choice.BeamMeasurementsReportConfiguration), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BeamMeasurementsReportConfiguration" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_736[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* IncludeBeamMeasurementsIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* BeamMeasurementsReportConfiguration */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_736 = { + sizeof(struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_extensionValue_736, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_736 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1Configuration_ExtIEs_733[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_734, memb_ASN_NGAP_id_constraint_733 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M1Configuration_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_735, memb_ASN_NGAP_criticality_constraint_733 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_736, + select_M1Configuration_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_736, memb_ASN_NGAP_extensionValue_constraint_733 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1Configuration_ExtIEs_tag2el_733[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1Configuration_ExtIEs_specs_733 = { + sizeof(struct ASN_NGAP_M1Configuration_ExtIEs), + offsetof(struct ASN_NGAP_M1Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M1Configuration_ExtIEs_tag2el_733, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1Configuration_ExtIEs = { + "M1Configuration-ExtIEs", + "M1Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733, + sizeof(asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733) + /sizeof(asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733) + /sizeof(asn_DEF_ASN_NGAP_M1Configuration_ExtIEs_tags_733[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1Configuration_ExtIEs_733, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1Configuration_ExtIEs_specs_733 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_740 = { + sizeof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_740 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdEventA2_ExtIEs_737[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_738, memb_ASN_NGAP_id_constraint_737 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_739, memb_ASN_NGAP_criticality_constraint_737 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_740, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_740, memb_ASN_NGAP_extensionValue_constraint_737 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tag2el_737[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdEventA2_ExtIEs_specs_737 = { + sizeof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs), + offsetof(struct ASN_NGAP_M1ThresholdEventA2_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tag2el_737, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs = { + "M1ThresholdEventA2-ExtIEs", + "M1ThresholdEventA2-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737, + sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs_tags_737[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1ThresholdEventA2_ExtIEs_737, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1ThresholdEventA2_ExtIEs_specs_737 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_744[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue, choice.ExtendedReportIntervalMDT), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedReportIntervalMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedReportIntervalMDT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_744[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ExtendedReportIntervalMDT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_744 = { + sizeof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_744, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_744, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_744 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1PeriodicReporting_ExtIEs_741[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_742, memb_ASN_NGAP_id_constraint_741 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M1PeriodicReporting_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_743, memb_ASN_NGAP_criticality_constraint_741 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_744, + select_M1PeriodicReporting_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_744, memb_ASN_NGAP_extensionValue_constraint_741 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1PeriodicReporting_ExtIEs_tag2el_741[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1PeriodicReporting_ExtIEs_specs_741 = { + sizeof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs), + offsetof(struct ASN_NGAP_M1PeriodicReporting_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M1PeriodicReporting_ExtIEs_tag2el_741, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs = { + "M1PeriodicReporting-ExtIEs", + "M1PeriodicReporting-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741, + sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741) + /sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741) + /sizeof(asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs_tags_741[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1PeriodicReporting_ExtIEs_741, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1PeriodicReporting_ExtIEs_specs_741 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_748[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue, choice.M4ReportAmountMDT), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_M4ReportAmountMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "M4ReportAmountMDT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_748[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* M4ReportAmountMDT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_748 = { + sizeof(struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_748, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_748, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_748 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M4Configuration_ExtIEs_745[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_746, memb_ASN_NGAP_id_constraint_745 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M4Configuration_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_747, memb_ASN_NGAP_criticality_constraint_745 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M4Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_748, + select_M4Configuration_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_748, memb_ASN_NGAP_extensionValue_constraint_745 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M4Configuration_ExtIEs_tag2el_745[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M4Configuration_ExtIEs_specs_745 = { + sizeof(struct ASN_NGAP_M4Configuration_ExtIEs), + offsetof(struct ASN_NGAP_M4Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M4Configuration_ExtIEs_tag2el_745, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4Configuration_ExtIEs = { + "M4Configuration-ExtIEs", + "M4Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745, + sizeof(asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745) + /sizeof(asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745[0]), /* 1 */ + asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745) + /sizeof(asn_DEF_ASN_NGAP_M4Configuration_ExtIEs_tags_745[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M4Configuration_ExtIEs_745, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M4Configuration_ExtIEs_specs_745 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_752[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue, choice.M5ReportAmountMDT), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_M5ReportAmountMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "M5ReportAmountMDT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_752[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* M5ReportAmountMDT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_752 = { + sizeof(struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_752, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_752, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_752 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M5Configuration_ExtIEs_749[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_750, memb_ASN_NGAP_id_constraint_749 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M5Configuration_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_751, memb_ASN_NGAP_criticality_constraint_749 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M5Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_752, + select_M5Configuration_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_752, memb_ASN_NGAP_extensionValue_constraint_749 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M5Configuration_ExtIEs_tag2el_749[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M5Configuration_ExtIEs_specs_749 = { + sizeof(struct ASN_NGAP_M5Configuration_ExtIEs), + offsetof(struct ASN_NGAP_M5Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M5Configuration_ExtIEs_tag2el_749, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5Configuration_ExtIEs = { + "M5Configuration-ExtIEs", + "M5Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749, + sizeof(asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749) + /sizeof(asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749[0]), /* 1 */ + asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749) + /sizeof(asn_DEF_ASN_NGAP_M5Configuration_ExtIEs_tags_749[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M5Configuration_ExtIEs_749, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M5Configuration_ExtIEs_specs_749 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_756[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue, choice.M6ReportAmountMDT), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_M6ReportAmountMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "M6ReportAmountMDT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue, choice.ExcessPacketDelayThresholdConfiguration), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExcessPacketDelayThresholdConfiguration" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_756[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 }, /* M6ReportAmountMDT */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* ExcessPacketDelayThresholdConfiguration */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_756 = { + sizeof(struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_756, + 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_ASN_NGAP_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_ASN_NGAP_extensionValue_756, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_756 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M6Configuration_ExtIEs_753[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_754, memb_ASN_NGAP_id_constraint_753 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M6Configuration_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_755, memb_ASN_NGAP_criticality_constraint_753 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M6Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_756, + select_M6Configuration_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_756, memb_ASN_NGAP_extensionValue_constraint_753 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M6Configuration_ExtIEs_tag2el_753[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M6Configuration_ExtIEs_specs_753 = { + sizeof(struct ASN_NGAP_M6Configuration_ExtIEs), + offsetof(struct ASN_NGAP_M6Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M6Configuration_ExtIEs_tag2el_753, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6Configuration_ExtIEs = { + "M6Configuration-ExtIEs", + "M6Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753, + sizeof(asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753) + /sizeof(asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753[0]), /* 1 */ + asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753) + /sizeof(asn_DEF_ASN_NGAP_M6Configuration_ExtIEs_tags_753[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M6Configuration_ExtIEs_753, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M6Configuration_ExtIEs_specs_753 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_760[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue, choice.M7ReportAmountMDT), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_M7ReportAmountMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "M7ReportAmountMDT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_760[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* M7ReportAmountMDT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_760 = { + sizeof(struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_760, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_760, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_760 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M7Configuration_ExtIEs_757[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_758, memb_ASN_NGAP_id_constraint_757 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_M7Configuration_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_759, memb_ASN_NGAP_criticality_constraint_757 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M7Configuration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_760, + select_M7Configuration_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_760, memb_ASN_NGAP_extensionValue_constraint_757 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M7Configuration_ExtIEs_tag2el_757[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M7Configuration_ExtIEs_specs_757 = { + sizeof(struct ASN_NGAP_M7Configuration_ExtIEs), + offsetof(struct ASN_NGAP_M7Configuration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M7Configuration_ExtIEs_tag2el_757, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7Configuration_ExtIEs = { + "M7Configuration-ExtIEs", + "M7Configuration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757, + sizeof(asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757) + /sizeof(asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757[0]), /* 1 */ + asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757) + /sizeof(asn_DEF_ASN_NGAP_M7Configuration_ExtIEs_tags_757[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M7Configuration_ExtIEs_757, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M7Configuration_ExtIEs_specs_757 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_764 = { + sizeof(struct ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_MDT_Location_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_764 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Location_Info_ExtIEs_761[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_762, memb_ASN_NGAP_id_constraint_761 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_763, memb_ASN_NGAP_criticality_constraint_761 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_764, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_764, memb_ASN_NGAP_extensionValue_constraint_761 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_Location_Info_ExtIEs_tag2el_761[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Location_Info_ExtIEs_specs_761 = { + sizeof(struct ASN_NGAP_MDT_Location_Info_ExtIEs), + offsetof(struct ASN_NGAP_MDT_Location_Info_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_Location_Info_ExtIEs_tag2el_761, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs = { + "MDT-Location-Info-ExtIEs", + "MDT-Location-Info-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761, + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761) + /sizeof(asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs_tags_761[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_Location_Info_ExtIEs_761, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_Location_Info_ExtIEs_specs_761 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_768 = { + sizeof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_768 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_765[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_766, memb_ASN_NGAP_id_constraint_765 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_767, memb_ASN_NGAP_criticality_constraint_765 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_768, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_768, memb_ASN_NGAP_extensionValue_constraint_765 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tag2el_765[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_specs_765 = { + sizeof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs), + offsetof(struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tag2el_765, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs = { + "NB-IoT-Paging-eDRXInfo-ExtIEs", + "NB-IoT-Paging-eDRXInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765, + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765[0]), /* 1 */ + asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765) + /sizeof(asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_tags_765[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_765, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_specs_765 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_772 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGAPIESupportInformationRequestItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_772 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_769[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_770, memb_ASN_NGAP_id_constraint_769 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_771, memb_ASN_NGAP_criticality_constraint_769 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_772, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_772, memb_ASN_NGAP_extensionValue_constraint_769 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tag2el_769[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_specs_769 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tag2el_769, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs = { + "NGAPIESupportInformationRequestItem-ExtIEs", + "NGAPIESupportInformationRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_tags_769[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_769, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_specs_769 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_776 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGAPIESupportInformationResponseItem_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_776 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_773[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_774, memb_ASN_NGAP_id_constraint_773 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_775, memb_ASN_NGAP_criticality_constraint_773 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_776, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_776, memb_ASN_NGAP_extensionValue_constraint_773 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tag2el_773[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_specs_773 = { + sizeof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs), + offsetof(struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tag2el_773, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs = { + "NGAPIESupportInformationResponseItem-ExtIEs", + "NGAPIESupportInformationResponseItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773, + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773) + /sizeof(asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_tags_773[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_773, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_specs_773 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_780 = { + sizeof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_780 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_777[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_778, memb_ASN_NGAP_id_constraint_777 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_779, memb_ASN_NGAP_criticality_constraint_777 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_780, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_780, memb_ASN_NGAP_extensionValue_constraint_777 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tag2el_777[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_specs_777 = { + sizeof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tag2el_777, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs = { + "NGRAN-TNLAssociationToRemoveItem-ExtIEs", + "NGRAN-TNLAssociationToRemoveItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777, + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_tags_777[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_777, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_specs_777 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_784[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget_1), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_784[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* ExtendedPacketDelayBudget */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* ExtendedPacketDelayBudget */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_784 = { + sizeof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_784, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_extensionValue_784, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_784 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_781[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_782, memb_ASN_NGAP_id_constraint_781 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NonDynamic5QIDescriptor_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_783, memb_ASN_NGAP_criticality_constraint_781 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_784, + select_NonDynamic5QIDescriptor_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_784, memb_ASN_NGAP_extensionValue_constraint_781 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tag2el_781[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_specs_781 = { + sizeof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs), + offsetof(struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tag2el_781, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs = { + "NonDynamic5QIDescriptor-ExtIEs", + "NonDynamic5QIDescriptor-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781, + sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781) + /sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781[0]), /* 1 */ + asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781) + /sizeof(asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_tags_781[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_781, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_specs_781 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_788 = { + sizeof(struct ASN_NGAP_NR_CGI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NR_CGI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NR_CGI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NR_CGI_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_788 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGI_ExtIEs_785[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_CGI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_786, memb_ASN_NGAP_id_constraint_785 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_CGI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_787, memb_ASN_NGAP_criticality_constraint_785 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_CGI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_788, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_788, memb_ASN_NGAP_extensionValue_constraint_785 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NR_CGI_ExtIEs_tag2el_785[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_CGI_ExtIEs_specs_785 = { + sizeof(struct ASN_NGAP_NR_CGI_ExtIEs), + offsetof(struct ASN_NGAP_NR_CGI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NR_CGI_ExtIEs_tag2el_785, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGI_ExtIEs = { + "NR-CGI-ExtIEs", + "NR-CGI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785, + sizeof(asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785) + /sizeof(asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785) + /sizeof(asn_DEF_ASN_NGAP_NR_CGI_ExtIEs_tags_785[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NR_CGI_ExtIEs_785, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NR_CGI_ExtIEs_specs_785 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_792 = { + sizeof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NR_PagingeDRXInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_792 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_789[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_790, memb_ASN_NGAP_id_constraint_789 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_791, memb_ASN_NGAP_criticality_constraint_789 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_792, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_792, memb_ASN_NGAP_extensionValue_constraint_789 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tag2el_789[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_specs_789 = { + sizeof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs), + offsetof(struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tag2el_789, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs = { + "NR-PagingeDRXInformation-ExtIEs", + "NR-PagingeDRXInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789, + sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789) + /sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789[0]), /* 1 */ + asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789) + /sizeof(asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_tags_789[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_789, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_specs_789 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_796 = { + sizeof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NRNTNTAIInformation_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_796 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRNTNTAIInformation_ExtIEs_793[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_794, memb_ASN_NGAP_id_constraint_793 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_795, memb_ASN_NGAP_criticality_constraint_793 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_796, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_796, memb_ASN_NGAP_extensionValue_constraint_793 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tag2el_793[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRNTNTAIInformation_ExtIEs_specs_793 = { + sizeof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs), + offsetof(struct ASN_NGAP_NRNTNTAIInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tag2el_793, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs = { + "NRNTNTAIInformation-ExtIEs", + "NRNTNTAIInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793, + sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793) + /sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793) + /sizeof(asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs_tags_793[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRNTNTAIInformation_ExtIEs_793, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRNTNTAIInformation_ExtIEs_specs_793 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_800 = { + sizeof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NRFrequencyBandItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_800 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyBandItem_ExtIEs_797[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_798, memb_ASN_NGAP_id_constraint_797 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_799, memb_ASN_NGAP_criticality_constraint_797 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_800, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_800, memb_ASN_NGAP_extensionValue_constraint_797 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tag2el_797[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBandItem_ExtIEs_specs_797 = { + sizeof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs), + offsetof(struct ASN_NGAP_NRFrequencyBandItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tag2el_797, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs = { + "NRFrequencyBandItem-ExtIEs", + "NRFrequencyBandItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs_tags_797[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRFrequencyBandItem_ExtIEs_797, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRFrequencyBandItem_ExtIEs_specs_797 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_804 = { + sizeof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NRFrequencyInfo_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_804 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyInfo_ExtIEs_801[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_802, memb_ASN_NGAP_id_constraint_801 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_803, memb_ASN_NGAP_criticality_constraint_801 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_804, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_804, memb_ASN_NGAP_extensionValue_constraint_801 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRFrequencyInfo_ExtIEs_tag2el_801[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyInfo_ExtIEs_specs_801 = { + sizeof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs), + offsetof(struct ASN_NGAP_NRFrequencyInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NRFrequencyInfo_ExtIEs_tag2el_801, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs = { + "NRFrequencyInfo-ExtIEs", + "NRFrequencyInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801, + sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801) + /sizeof(asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs_tags_801[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRFrequencyInfo_ExtIEs_801, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRFrequencyInfo_ExtIEs_specs_801 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_808 = { + sizeof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NRV2XServicesAuthorized_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_808 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_805[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_806, memb_ASN_NGAP_id_constraint_805 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_807, memb_ASN_NGAP_criticality_constraint_805 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_808, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_808, memb_ASN_NGAP_extensionValue_constraint_805 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tag2el_805[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_specs_805 = { + sizeof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs), + offsetof(struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tag2el_805, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs = { + "NRV2XServicesAuthorized-ExtIEs", + "NRV2XServicesAuthorized-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805, + sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805) + /sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805) + /sizeof(asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_tags_805[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_805, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_specs_805 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_812 = { + sizeof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_812 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_809[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_810, memb_ASN_NGAP_id_constraint_809 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_811, memb_ASN_NGAP_criticality_constraint_809 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_812, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_812, memb_ASN_NGAP_extensionValue_constraint_809 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tag2el_809[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_specs_809 = { + sizeof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs), + offsetof(struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tag2el_809, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs = { + "NRUESidelinkAggregateMaximumBitrate-ExtIEs", + "NRUESidelinkAggregateMaximumBitrate-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809, + sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809) + /sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809[0]), /* 1 */ + asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809) + /sizeof(asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_tags_809[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_809, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_specs_809 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_816 = { + sizeof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_OverloadStartNSSAIItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_816 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_813[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_814, memb_ASN_NGAP_id_constraint_813 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_815, memb_ASN_NGAP_criticality_constraint_813 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_816, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_816, memb_ASN_NGAP_extensionValue_constraint_813 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tag2el_813[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_specs_813 = { + sizeof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs), + offsetof(struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tag2el_813, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs = { + "OverloadStartNSSAIItem-ExtIEs", + "OverloadStartNSSAIItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813, + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_tags_813[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_813, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_specs_813 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_820 = { + sizeof(struct ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PacketErrorRate_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_820 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PacketErrorRate_ExtIEs_817[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_818, memb_ASN_NGAP_id_constraint_817 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_819, memb_ASN_NGAP_criticality_constraint_817 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_820, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_820, memb_ASN_NGAP_extensionValue_constraint_817 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PacketErrorRate_ExtIEs_tag2el_817[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PacketErrorRate_ExtIEs_specs_817 = { + sizeof(struct ASN_NGAP_PacketErrorRate_ExtIEs), + offsetof(struct ASN_NGAP_PacketErrorRate_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PacketErrorRate_ExtIEs_tag2el_817, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs = { + "PacketErrorRate-ExtIEs", + "PacketErrorRate-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817, + sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817) + /sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817[0]), /* 1 */ + asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817) + /sizeof(asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs_tags_817[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PacketErrorRate_ExtIEs_817, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PacketErrorRate_ExtIEs_specs_817 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_824 = { + sizeof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PagingAssisDataforCEcapabUE_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_824 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_821[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_822, memb_ASN_NGAP_id_constraint_821 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_823, memb_ASN_NGAP_criticality_constraint_821 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_824, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_824, memb_ASN_NGAP_extensionValue_constraint_821 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tag2el_821[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_specs_821 = { + sizeof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs), + offsetof(struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tag2el_821, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs = { + "PagingAssisDataforCEcapabUE-ExtIEs", + "PagingAssisDataforCEcapabUE-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821, + sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821) + /sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821) + /sizeof(asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_tags_821[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_821, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_specs_821 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_828 = { + sizeof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PagingAttemptInformation_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_828 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAttemptInformation_ExtIEs_825[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_826, memb_ASN_NGAP_id_constraint_825 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_827, memb_ASN_NGAP_criticality_constraint_825 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_828, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_828, memb_ASN_NGAP_extensionValue_constraint_825 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PagingAttemptInformation_ExtIEs_tag2el_825[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAttemptInformation_ExtIEs_specs_825 = { + sizeof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs), + offsetof(struct ASN_NGAP_PagingAttemptInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PagingAttemptInformation_ExtIEs_tag2el_825, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs = { + "PagingAttemptInformation-ExtIEs", + "PagingAttemptInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825, + sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825) + /sizeof(asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs_tags_825[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PagingAttemptInformation_ExtIEs_825, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PagingAttemptInformation_ExtIEs_specs_825 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_832[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationPairList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationPairList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationPairList_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationPairList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, choice.QosFlowParametersList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowParametersList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowParametersList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_832[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_832[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_832[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* UPTransportLayerInformationPairList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* UPTransportLayerInformationPairList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* QosFlowParametersList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_832 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_832, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_832, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_832, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_extensionValue_832, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_832 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_829[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_830, memb_ASN_NGAP_id_constraint_829 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PathSwitchRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_831, memb_ASN_NGAP_criticality_constraint_829 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_832, + select_PathSwitchRequestAcknowledgeTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_832, memb_ASN_NGAP_extensionValue_constraint_829 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tag2el_829[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_specs_829 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tag2el_829, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs = { + "PathSwitchRequestAcknowledgeTransfer-ExtIEs", + "PathSwitchRequestAcknowledgeTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_tags_829[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_829, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_specs_829 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_836 = { + sizeof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_836 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_833[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_834, memb_ASN_NGAP_id_constraint_833 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_835, memb_ASN_NGAP_criticality_constraint_833 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_836, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_836, memb_ASN_NGAP_extensionValue_constraint_833 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tag2el_833[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_specs_833 = { + sizeof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tag2el_833, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs = { + "PathSwitchRequestSetupFailedTransfer-ExtIEs", + "PathSwitchRequestSetupFailedTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_tags_833[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_833, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_specs_833 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_840[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.DL_NGU_TNLInformationReused), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_DL_NGU_TNLInformationReused, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DL-NGU-TNLInformationReused" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.RedundantPDUSessionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantPDUSessionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, choice.MBS_SupportIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SupportIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SupportIndicator" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_840[] = { 2, 6, 0, 3, 4, 1, 5 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_840[] = { 2, 5, 0, 3, 4, 6, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_840[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* DL-NGU-TNLInformationReused */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* MBS-SupportIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 }, /* RedundantPDUSessionInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 5, -1, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 5, -1, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 5, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 5, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_840 = { + sizeof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_840, + 11, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_840, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_840, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_extensionValue_840, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_840 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_837[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_838, memb_ASN_NGAP_id_constraint_837 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PathSwitchRequestTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_839, memb_ASN_NGAP_criticality_constraint_837 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_840, + select_PathSwitchRequestTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_840, memb_ASN_NGAP_extensionValue_constraint_837 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tag2el_837[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_specs_837 = { + sizeof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tag2el_837, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs = { + "PathSwitchRequestTransfer-ExtIEs", + "PathSwitchRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_tags_837[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_837, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_specs_837 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_844 = { + sizeof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_844 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_841[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_842, memb_ASN_NGAP_id_constraint_841 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_843, memb_ASN_NGAP_criticality_constraint_841 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_844, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_844, memb_ASN_NGAP_extensionValue_constraint_841 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tag2el_841[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_specs_841 = { + sizeof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tag2el_841, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs = { + "PathSwitchRequestUnsuccessfulTransfer-ExtIEs", + "PathSwitchRequestUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_tags_841[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_841, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_specs_841 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_848 = { + sizeof(struct ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PC5QoSParameters_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_848 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSParameters_ExtIEs_845[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_846, memb_ASN_NGAP_id_constraint_845 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_847, memb_ASN_NGAP_criticality_constraint_845 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_848, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_848, memb_ASN_NGAP_extensionValue_constraint_845 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5QoSParameters_ExtIEs_tag2el_845[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSParameters_ExtIEs_specs_845 = { + sizeof(struct ASN_NGAP_PC5QoSParameters_ExtIEs), + offsetof(struct ASN_NGAP_PC5QoSParameters_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PC5QoSParameters_ExtIEs_tag2el_845, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs = { + "PC5QoSParameters-ExtIEs", + "PC5QoSParameters-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845, + sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs_tags_845[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5QoSParameters_ExtIEs_845, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5QoSParameters_ExtIEs_specs_845 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_852 = { + sizeof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PC5QoSFlowItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_852 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowItem_ExtIEs_849[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_850, memb_ASN_NGAP_id_constraint_849 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_851, memb_ASN_NGAP_criticality_constraint_849 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_852, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_852, memb_ASN_NGAP_extensionValue_constraint_849 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tag2el_849[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowItem_ExtIEs_specs_849 = { + sizeof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs), + offsetof(struct ASN_NGAP_PC5QoSFlowItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tag2el_849, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs = { + "PC5QoSFlowItem-ExtIEs", + "PC5QoSFlowItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849, + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849) + /sizeof(asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs_tags_849[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5QoSFlowItem_ExtIEs_849, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5QoSFlowItem_ExtIEs_specs_849 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_856 = { + sizeof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PC5FlowBitRates_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_856 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5FlowBitRates_ExtIEs_853[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_854, memb_ASN_NGAP_id_constraint_853 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_855, memb_ASN_NGAP_criticality_constraint_853 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_856, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_856, memb_ASN_NGAP_extensionValue_constraint_853 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PC5FlowBitRates_ExtIEs_tag2el_853[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5FlowBitRates_ExtIEs_specs_853 = { + sizeof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs), + offsetof(struct ASN_NGAP_PC5FlowBitRates_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PC5FlowBitRates_ExtIEs_tag2el_853, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs = { + "PC5FlowBitRates-ExtIEs", + "PC5FlowBitRates-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853, + sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853) + /sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853[0]), /* 1 */ + asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853) + /sizeof(asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs_tags_853[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PC5FlowBitRates_ExtIEs_853, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PC5FlowBitRates_ExtIEs_specs_853 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_860 = { + sizeof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_860 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_857[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_858, memb_ASN_NGAP_id_constraint_857 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_859, memb_ASN_NGAP_criticality_constraint_857 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_860, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_860, memb_ASN_NGAP_extensionValue_constraint_857 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tag2el_857[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_specs_857 = { + sizeof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tag2el_857, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs = { + "PDUSessionAggregateMaximumBitRate-ExtIEs", + "PDUSessionAggregateMaximumBitRate-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857, + sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_tags_857[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_857, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_specs_857 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_864 = { + sizeof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceAdmittedItem_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_864 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_861[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_862, memb_ASN_NGAP_id_constraint_861 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_863, memb_ASN_NGAP_criticality_constraint_861 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_864, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_864, memb_ASN_NGAP_extensionValue_constraint_861 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tag2el_861[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_specs_861 = { + sizeof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tag2el_861, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs = { + "PDUSessionResourceAdmittedItem-ExtIEs", + "PDUSessionResourceAdmittedItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_tags_861[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_861, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_specs_861 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_868 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_868 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_865[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_866, memb_ASN_NGAP_id_constraint_865 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_867, memb_ASN_NGAP_criticality_constraint_865 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_868, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_868, memb_ASN_NGAP_extensionValue_constraint_865 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tag2el_865[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_specs_865 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tag2el_865, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs = { + "PDUSessionResourceFailedToModifyItemModCfm-ExtIEs", + "PDUSessionResourceFailedToModifyItemModCfm-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_tags_865[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_865, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_specs_865 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_872 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_872 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_869[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_870, memb_ASN_NGAP_id_constraint_869 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_871, memb_ASN_NGAP_criticality_constraint_869 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_872, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_872, memb_ASN_NGAP_extensionValue_constraint_869 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tag2el_869[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_specs_869 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tag2el_869, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs = { + "PDUSessionResourceFailedToModifyItemModRes-ExtIEs", + "PDUSessionResourceFailedToModifyItemModRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_tags_869[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_869, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_specs_869 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_876 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_876 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_873[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_874, memb_ASN_NGAP_id_constraint_873 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_875, memb_ASN_NGAP_criticality_constraint_873 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_876, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_876, memb_ASN_NGAP_extensionValue_constraint_873 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tag2el_873[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_specs_873 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tag2el_873, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs = { + "PDUSessionResourceFailedToResumeItemRESReq-ExtIEs", + "PDUSessionResourceFailedToResumeItemRESReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_tags_873[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_873, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_specs_873 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_880 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_880 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_877[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_878, memb_ASN_NGAP_id_constraint_877 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_879, memb_ASN_NGAP_criticality_constraint_877 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_880, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_880, memb_ASN_NGAP_extensionValue_constraint_877 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tag2el_877[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_specs_877 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tag2el_877, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs = { + "PDUSessionResourceFailedToResumeItemRESRes-ExtIEs", + "PDUSessionResourceFailedToResumeItemRESRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_tags_877[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_877, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_specs_877 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_884 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_884 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_881[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_882, memb_ASN_NGAP_id_constraint_881 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_883, memb_ASN_NGAP_criticality_constraint_881 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_884, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_884, memb_ASN_NGAP_extensionValue_constraint_881 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tag2el_881[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_specs_881 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tag2el_881, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs = { + "PDUSessionResourceFailedToSetupItemCxtFail-ExtIEs", + "PDUSessionResourceFailedToSetupItemCxtFail-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_tags_881[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_881, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_specs_881 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_888 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_888 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_885[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_886, memb_ASN_NGAP_id_constraint_885 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_887, memb_ASN_NGAP_criticality_constraint_885 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_888, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_888, memb_ASN_NGAP_extensionValue_constraint_885 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tag2el_885[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_specs_885 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tag2el_885, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs = { + "PDUSessionResourceFailedToSetupItemCxtRes-ExtIEs", + "PDUSessionResourceFailedToSetupItemCxtRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_tags_885[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_885, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_specs_885 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_892 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_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_ASN_NGAP_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_ASN_NGAP_extensionValue_specs_892 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_889[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_890, memb_ASN_NGAP_id_constraint_889 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_891, memb_ASN_NGAP_criticality_constraint_889 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_892, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_892, memb_ASN_NGAP_extensionValue_constraint_889 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tag2el_889[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_specs_889 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tag2el_889, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs = { + "PDUSessionResourceFailedToSetupItemHOAck-ExtIEs", + "PDUSessionResourceFailedToSetupItemHOAck-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_tags_889[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_889, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_specs_889 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_896 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_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_ASN_NGAP_extensionValue_896 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_896 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_893[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_894, memb_ASN_NGAP_id_constraint_893 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_895, memb_ASN_NGAP_criticality_constraint_893 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_896, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_896, memb_ASN_NGAP_extensionValue_constraint_893 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tag2el_893[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_specs_893 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tag2el_893, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs = { + "PDUSessionResourceFailedToSetupItemPSReq-ExtIEs", + "PDUSessionResourceFailedToSetupItemPSReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_tags_893[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_893, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_specs_893 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_900 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_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_ASN_NGAP_extensionValue_900 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_900 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_897[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_898, memb_ASN_NGAP_id_constraint_897 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_899, memb_ASN_NGAP_criticality_constraint_897 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_900, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_900, memb_ASN_NGAP_extensionValue_constraint_897 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tag2el_897[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_specs_897 = { + sizeof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tag2el_897, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs = { + "PDUSessionResourceFailedToSetupItemSURes-ExtIEs", + "PDUSessionResourceFailedToSetupItemSURes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_tags_897[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_897, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_specs_897 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_904 = { + sizeof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceHandoverItem_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_ASN_NGAP_extensionValue_904 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_904 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_901[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_902, memb_ASN_NGAP_id_constraint_901 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_903, memb_ASN_NGAP_criticality_constraint_901 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_904, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_904, memb_ASN_NGAP_extensionValue_constraint_901 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tag2el_901[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_specs_901 = { + sizeof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tag2el_901, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs = { + "PDUSessionResourceHandoverItem-ExtIEs", + "PDUSessionResourceHandoverItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_tags_901[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_901, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_specs_901 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_908 = { + sizeof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceInformationItem_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_ASN_NGAP_extensionValue_908 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_908 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_905[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_906, memb_ASN_NGAP_id_constraint_905 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_907, memb_ASN_NGAP_criticality_constraint_905 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_908, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_908, memb_ASN_NGAP_extensionValue_constraint_905 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tag2el_905[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_specs_905 = { + sizeof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tag2el_905, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs = { + "PDUSessionResourceInformationItem-ExtIEs", + "PDUSessionResourceInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_tags_905[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_905, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_specs_905 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_912[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue, choice.OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer__constr_68, memb_ASN_NGAP_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer__constraint_912 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING PDUSessionResourceReleaseResponseTransfer)" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_912[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* OCTET STRING (CONTAINING PDUSessionResourceReleaseResponseTransfer) */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_912 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_912, + 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_ASN_NGAP_extensionValue_912 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_912, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_912 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_909[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_910, memb_ASN_NGAP_id_constraint_909 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceItemCxtRelCpl_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_911, memb_ASN_NGAP_criticality_constraint_909 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_912, + select_PDUSessionResourceItemCxtRelCpl_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_912, memb_ASN_NGAP_extensionValue_constraint_909 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tag2el_909[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_specs_909 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tag2el_909, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs = { + "PDUSessionResourceItemCxtRelCpl-ExtIEs", + "PDUSessionResourceItemCxtRelCpl-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_tags_909[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_909, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_specs_909 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_916 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_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_ASN_NGAP_extensionValue_916 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_916 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_913[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_914, memb_ASN_NGAP_id_constraint_913 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_915, memb_ASN_NGAP_criticality_constraint_913 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_916, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_916, memb_ASN_NGAP_extensionValue_constraint_913 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tag2el_913[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_specs_913 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tag2el_913, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs = { + "PDUSessionResourceItemCxtRelReq-ExtIEs", + "PDUSessionResourceItemCxtRelReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_tags_913[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_913, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_specs_913 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_920 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceItemHORqd_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_ASN_NGAP_extensionValue_920 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_920 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_917[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_918, memb_ASN_NGAP_id_constraint_917 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_919, memb_ASN_NGAP_criticality_constraint_917 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_920, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_920, memb_ASN_NGAP_extensionValue_constraint_917 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tag2el_917[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_specs_917 = { + sizeof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tag2el_917, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs = { + "PDUSessionResourceItemHORqd-ExtIEs", + "PDUSessionResourceItemHORqd-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_tags_917[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_917, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_specs_917 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_924[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationPairList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationPairList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_924[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_924[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_924[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* UPTransportLayerInformationPairList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_924 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_924, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_924, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_924, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_924 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_924, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_924 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_921[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_922, memb_ASN_NGAP_id_constraint_921 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyConfirmTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_923, memb_ASN_NGAP_criticality_constraint_921 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_924, + select_PDUSessionResourceModifyConfirmTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_924, memb_ASN_NGAP_extensionValue_constraint_921 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tag2el_921[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_specs_921 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tag2el_921, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs = { + "PDUSessionResourceModifyConfirmTransfer-ExtIEs", + "PDUSessionResourceModifyConfirmTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_tags_921[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_921, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_specs_921 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_928 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_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_ASN_NGAP_extensionValue_928 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_928 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_925[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_926, memb_ASN_NGAP_id_constraint_925 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_927, memb_ASN_NGAP_criticality_constraint_925 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_928, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_928, memb_ASN_NGAP_extensionValue_constraint_925 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tag2el_925[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_specs_925 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tag2el_925, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs = { + "PDUSessionResourceModifyIndicationUnsuccessfulTransfer-ExtIEs", + "PDUSessionResourceModifyIndicationUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_tags_925[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_925, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_specs_925 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_932[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationPairList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationPairList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformation_1), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.UPTransportLayerInformationPairList_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationPairList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.SecondaryRATUsageInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATUsageInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.MBS_SupportIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SupportIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SupportIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.MBSSessionSetupResponseList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionSetupResponseList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, choice.MBSSessionFailedtoSetupList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionFailedtoSetupList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_932[] = { 6, 0, 3, 4, 5, 7, 8, 1, 2 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_932[] = { 1, 7, 8, 2, 3, 4, 0, 5, 6 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_932[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, 0, 0 }, /* MBS-SupportIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* UPTransportLayerInformationPairList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 4 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 3 }, /* UPTransportLayerInformationPairList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 2 }, /* SecondaryRATUsageInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 1 }, /* MBSSessionSetupResponseList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -5, 0 }, /* MBSSessionFailedtoSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, -1, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_932 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_932, + 11, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_932, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_932, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_932 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_932, + 9, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_932 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_929[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_930, memb_ASN_NGAP_id_constraint_929 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyResponseTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_931, memb_ASN_NGAP_criticality_constraint_929 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_932, + select_PDUSessionResourceModifyResponseTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_932, memb_ASN_NGAP_extensionValue_constraint_929 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tag2el_929[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_specs_929 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tag2el_929, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs = { + "PDUSessionResourceModifyResponseTransfer-ExtIEs", + "PDUSessionResourceModifyResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_tags_929[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_929, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_specs_929 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_936[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, choice.SecondaryRATUsageInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATUsageInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, choice.SecurityResult), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_936[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* SecondaryRATUsageInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 2 }, /* SecurityResult */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 1 }, /* QosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 0 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_936 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_936, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_936 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_936, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_936 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_933[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_934, memb_ASN_NGAP_id_constraint_933 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyIndicationTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_935, memb_ASN_NGAP_criticality_constraint_933 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_936, + select_PDUSessionResourceModifyIndicationTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_936, memb_ASN_NGAP_extensionValue_constraint_933 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tag2el_933[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_specs_933 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tag2el_933, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs = { + "PDUSessionResourceModifyIndicationTransfer-ExtIEs", + "PDUSessionResourceModifyIndicationTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_tags_933[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_933, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_specs_933 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_940 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_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_ASN_NGAP_extensionValue_940 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_940 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_937[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_938, memb_ASN_NGAP_id_constraint_937 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_939, memb_ASN_NGAP_criticality_constraint_937 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_940, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_940, memb_ASN_NGAP_extensionValue_constraint_937 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tag2el_937[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_specs_937 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tag2el_937, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs = { + "PDUSessionResourceModifyItemModCfm-ExtIEs", + "PDUSessionResourceModifyItemModCfm-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_tags_937[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_937, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_specs_937 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_944 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyItemModInd_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_ASN_NGAP_extensionValue_944 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_944 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_941[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_942, memb_ASN_NGAP_id_constraint_941 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_943, memb_ASN_NGAP_criticality_constraint_941 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_944, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_944, memb_ASN_NGAP_extensionValue_constraint_941 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tag2el_941[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_specs_941 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tag2el_941, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs = { + "PDUSessionResourceModifyItemModInd-ExtIEs", + "PDUSessionResourceModifyItemModInd-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_tags_941[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_941, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_specs_941 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_948[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue, choice.S_NSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "S-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue, choice.ExpectedUEActivityBehaviour), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExpectedUEActivityBehaviour" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_948[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* S-NSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* ExpectedUEActivityBehaviour */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_948 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_948, + 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_ASN_NGAP_extensionValue_948 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_948, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_948 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_945[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_946, memb_ASN_NGAP_id_constraint_945 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyItemModReq_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_947, memb_ASN_NGAP_criticality_constraint_945 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_948, + select_PDUSessionResourceModifyItemModReq_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_948, memb_ASN_NGAP_extensionValue_constraint_945 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tag2el_945[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_specs_945 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tag2el_945, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs = { + "PDUSessionResourceModifyItemModReq-ExtIEs", + "PDUSessionResourceModifyItemModReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_tags_945[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_945, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_specs_945 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_952 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyItemModRes_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_ASN_NGAP_extensionValue_952 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_952 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_949[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_950, memb_ASN_NGAP_id_constraint_949 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_951, memb_ASN_NGAP_criticality_constraint_949 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_952, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_952, memb_ASN_NGAP_extensionValue_constraint_949 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tag2el_949[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_specs_949 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tag2el_949, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs = { + "PDUSessionResourceModifyItemModRes-ExtIEs", + "PDUSessionResourceModifyItemModRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_tags_949[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_949, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_specs_949 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_956 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_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_ASN_NGAP_extensionValue_956 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_956 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_953[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_954, memb_ASN_NGAP_id_constraint_953 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_955, memb_ASN_NGAP_criticality_constraint_953 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_956, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_956, memb_ASN_NGAP_extensionValue_constraint_953 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tag2el_953[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_specs_953 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tag2el_953, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs = { + "PDUSessionResourceModifyUnsuccessfulTransfer-ExtIEs", + "PDUSessionResourceModifyUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_tags_953[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_953, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_specs_953 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_960 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceNotifyItem_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_ASN_NGAP_extensionValue_960 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_960 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_957[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_958, memb_ASN_NGAP_id_constraint_957 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_959, memb_ASN_NGAP_criticality_constraint_957 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_960, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_960, memb_ASN_NGAP_extensionValue_constraint_957 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tag2el_957[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_specs_957 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tag2el_957, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs = { + "PDUSessionResourceNotifyItem-ExtIEs", + "PDUSessionResourceNotifyItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_tags_957[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_957, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_specs_957 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_964[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue, choice.SecondaryRATUsageInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATUsageInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_964[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SecondaryRATUsageInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_964 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_964, + 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_ASN_NGAP_extensionValue_964 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_964, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_964 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_961[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_962, memb_ASN_NGAP_id_constraint_961 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_963, memb_ASN_NGAP_criticality_constraint_961 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_964, + select_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_964, memb_ASN_NGAP_extensionValue_constraint_961 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tag2el_961[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_specs_961 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tag2el_961, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs = { + "PDUSessionResourceNotifyReleasedTransfer-ExtIEs", + "PDUSessionResourceNotifyReleasedTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_tags_961[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_961, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_specs_961 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_968[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue, choice.SecondaryRATUsageInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATUsageInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue, choice.QosFlowFeedbackList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowFeedbackList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowFeedbackList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_968[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* SecondaryRATUsageInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* QosFlowFeedbackList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_968 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_968, + 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_ASN_NGAP_extensionValue_968 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_968, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_968 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_965[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_966, memb_ASN_NGAP_id_constraint_965 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceNotifyTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_967, memb_ASN_NGAP_criticality_constraint_965 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_968, + select_PDUSessionResourceNotifyTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_968, memb_ASN_NGAP_extensionValue_constraint_965 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tag2el_965[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_specs_965 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tag2el_965, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs = { + "PDUSessionResourceNotifyTransfer-ExtIEs", + "PDUSessionResourceNotifyTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_tags_965[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_965, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_specs_965 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_972 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_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_ASN_NGAP_extensionValue_972 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_972 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_969[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_970, memb_ASN_NGAP_id_constraint_969 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_971, memb_ASN_NGAP_criticality_constraint_969 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_972, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_972, memb_ASN_NGAP_extensionValue_constraint_969 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tag2el_969[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_specs_969 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tag2el_969, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs = { + "PDUSessionResourceReleaseCommandTransfer-ExtIEs", + "PDUSessionResourceReleaseCommandTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_tags_969[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_969, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_specs_969 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_976 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleasedItemNot_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_ASN_NGAP_extensionValue_976 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_976 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_973[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_974, memb_ASN_NGAP_id_constraint_973 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_975, memb_ASN_NGAP_criticality_constraint_973 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_976, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_976, memb_ASN_NGAP_extensionValue_constraint_973 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tag2el_973[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_specs_973 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tag2el_973, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs = { + "PDUSessionResourceReleasedItemNot-ExtIEs", + "PDUSessionResourceReleasedItemNot-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_tags_973[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_973, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_specs_973 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_980 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_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_ASN_NGAP_extensionValue_980 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_980 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_977[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_978, memb_ASN_NGAP_id_constraint_977 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_979, memb_ASN_NGAP_criticality_constraint_977 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_980, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_980, memb_ASN_NGAP_extensionValue_constraint_977 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tag2el_977[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_specs_977 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tag2el_977, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs = { + "PDUSessionResourceReleasedItemPSAck-ExtIEs", + "PDUSessionResourceReleasedItemPSAck-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_tags_977[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_977, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_specs_977 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_984 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_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_ASN_NGAP_extensionValue_984 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_984 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_981[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_982, memb_ASN_NGAP_id_constraint_981 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_983, memb_ASN_NGAP_criticality_constraint_981 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_984, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_984, memb_ASN_NGAP_extensionValue_constraint_981 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tag2el_981[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_specs_981 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tag2el_981, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs = { + "PDUSessionResourceReleasedItemPSFail-ExtIEs", + "PDUSessionResourceReleasedItemPSFail-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_tags_981[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_981, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_specs_981 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_988 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_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_ASN_NGAP_extensionValue_988 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_988 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_985[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_986, memb_ASN_NGAP_id_constraint_985 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_987, memb_ASN_NGAP_criticality_constraint_985 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_988, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_988, memb_ASN_NGAP_extensionValue_constraint_985 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tag2el_985[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_specs_985 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tag2el_985, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs = { + "PDUSessionResourceReleasedItemRelRes-ExtIEs", + "PDUSessionResourceReleasedItemRelRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_tags_985[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_985, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_specs_985 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_992[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue, choice.SecondaryRATUsageInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecondaryRATUsageInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_992[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SecondaryRATUsageInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_992 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_992, + 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_ASN_NGAP_extensionValue_992 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_992, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_992 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_989[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_990, memb_ASN_NGAP_id_constraint_989 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceReleaseResponseTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_991, memb_ASN_NGAP_criticality_constraint_989 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_992, + select_PDUSessionResourceReleaseResponseTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_992, memb_ASN_NGAP_extensionValue_constraint_989 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tag2el_989[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_specs_989 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tag2el_989, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs = { + "PDUSessionResourceReleaseResponseTransfer-ExtIEs", + "PDUSessionResourceReleaseResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_tags_989[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_989, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_specs_989 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_996 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_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_ASN_NGAP_extensionValue_996 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_996 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_993[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_994, memb_ASN_NGAP_id_constraint_993 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_995, memb_ASN_NGAP_criticality_constraint_993 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_996, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_996, memb_ASN_NGAP_extensionValue_constraint_993 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tag2el_993[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_specs_993 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tag2el_993, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs = { + "PDUSessionResourceResumeItemRESReq-ExtIEs", + "PDUSessionResourceResumeItemRESReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_tags_993[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_993, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_specs_993 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1000 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_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_ASN_NGAP_extensionValue_1000 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1000 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_997[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_998, memb_ASN_NGAP_id_constraint_997 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_999, memb_ASN_NGAP_criticality_constraint_997 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1000, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1000, memb_ASN_NGAP_extensionValue_constraint_997 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tag2el_997[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_specs_997 = { + sizeof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tag2el_997, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs = { + "PDUSessionResourceResumeItemRESRes-ExtIEs", + "PDUSessionResourceResumeItemRESRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_tags_997[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_997, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_specs_997 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1004 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_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_ASN_NGAP_extensionValue_1004 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1004 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_1001[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1002, memb_ASN_NGAP_id_constraint_1001 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1003, memb_ASN_NGAP_criticality_constraint_1001 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1004, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1004, memb_ASN_NGAP_extensionValue_constraint_1001 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tag2el_1001[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_specs_1001 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tag2el_1001, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs = { + "PDUSessionResourceSecondaryRATUsageItem-ExtIEs", + "PDUSessionResourceSecondaryRATUsageItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_tags_1001[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_1001, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_specs_1001 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1008[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue, choice.ExpectedUEActivityBehaviour), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExpectedUEActivityBehaviour" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1008[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ExpectedUEActivityBehaviour */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1008 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1008, + 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_ASN_NGAP_extensionValue_1008 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1008, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1008 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1005[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1006, memb_ASN_NGAP_id_constraint_1005 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupItemCxtReq_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1007, memb_ASN_NGAP_criticality_constraint_1005 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1008, + select_PDUSessionResourceSetupItemCxtReq_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1008, memb_ASN_NGAP_extensionValue_constraint_1005 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tag2el_1005[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_specs_1005 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tag2el_1005, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs = { + "PDUSessionResourceSetupItemCxtReq-ExtIEs", + "PDUSessionResourceSetupItemCxtReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_tags_1005[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1005, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_specs_1005 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1012 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_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_ASN_NGAP_extensionValue_1012 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1012 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_1009[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1010, memb_ASN_NGAP_id_constraint_1009 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1011, memb_ASN_NGAP_criticality_constraint_1009 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1012, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1012, memb_ASN_NGAP_extensionValue_constraint_1009 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tag2el_1009[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_specs_1009 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tag2el_1009, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs = { + "PDUSessionResourceSetupItemCxtRes-ExtIEs", + "PDUSessionResourceSetupItemCxtRes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_tags_1009[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_1009, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_specs_1009 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1016[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue, choice.ExpectedUEActivityBehaviour), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExpectedUEActivityBehaviour" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1016[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ExpectedUEActivityBehaviour */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1016 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1016, + 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_ASN_NGAP_extensionValue_1016 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1016, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1016 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1013[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1014, memb_ASN_NGAP_id_constraint_1013 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupItemHOReq_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1015, memb_ASN_NGAP_criticality_constraint_1013 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1016, + select_PDUSessionResourceSetupItemHOReq_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1016, memb_ASN_NGAP_extensionValue_constraint_1013 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tag2el_1013[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_specs_1013 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tag2el_1013, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs = { + "PDUSessionResourceSetupItemHOReq-ExtIEs", + "PDUSessionResourceSetupItemHOReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_tags_1013[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1013, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_specs_1013 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1020[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue, choice.ExpectedUEActivityBehaviour), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExpectedUEActivityBehaviour" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1020[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ExpectedUEActivityBehaviour */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1020 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1020, + 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_ASN_NGAP_extensionValue_1020 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1020, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1020 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1017[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1018, memb_ASN_NGAP_id_constraint_1017 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupItemSUReq_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1019, memb_ASN_NGAP_criticality_constraint_1017 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1020, + select_PDUSessionResourceSetupItemSUReq_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1020, memb_ASN_NGAP_extensionValue_constraint_1017 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tag2el_1017[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_specs_1017 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tag2el_1017, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs = { + "PDUSessionResourceSetupItemSUReq-ExtIEs", + "PDUSessionResourceSetupItemSUReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_tags_1017[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1017, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_specs_1017 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1024 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupItemSURes_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_ASN_NGAP_extensionValue_1024 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1024 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_1021[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1022, memb_ASN_NGAP_id_constraint_1021 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1023, memb_ASN_NGAP_criticality_constraint_1021 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1024, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1024, memb_ASN_NGAP_extensionValue_constraint_1021 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tag2el_1021[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_specs_1021 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tag2el_1021, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs = { + "PDUSessionResourceSetupItemSURes-ExtIEs", + "PDUSessionResourceSetupItemSURes-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_tags_1021[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_1021, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_specs_1021 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1028[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.QosFlowPerTNLInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowPerTNLInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.RedundantPDUSessionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantPDUSessionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.MBS_SupportIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SupportIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SupportIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.MBSSessionSetupResponseList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionSetupResponseList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, choice.MBSSessionFailedtoSetupList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionFailedtoSetupList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1028[] = { 4, 0, 1, 2, 5, 6, 3 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1028[] = { 1, 2, 3, 6, 0, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1028[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* MBS-SupportIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* QosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* QosFlowPerTNLInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RedundantPDUSessionInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 1 }, /* MBSSessionSetupResponseList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 0 }, /* MBSSessionFailedtoSetupList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1028 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1028, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1028, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1028, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1028 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1028, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1028 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1025[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1026, memb_ASN_NGAP_id_constraint_1025 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupResponseTransfer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1027, memb_ASN_NGAP_criticality_constraint_1025 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1028, + select_PDUSessionResourceSetupResponseTransfer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1028, memb_ASN_NGAP_extensionValue_constraint_1025 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tag2el_1025[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_specs_1025 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tag2el_1025, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs = { + "PDUSessionResourceSetupResponseTransfer-ExtIEs", + "PDUSessionResourceSetupResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_tags_1025[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1025, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_specs_1025 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1032 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_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_ASN_NGAP_extensionValue_1032 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1032 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_1029[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1030, memb_ASN_NGAP_id_constraint_1029 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1031, memb_ASN_NGAP_criticality_constraint_1029 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1032, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1032, memb_ASN_NGAP_extensionValue_constraint_1029 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tag2el_1029[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_specs_1029 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tag2el_1029, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs = { + "PDUSessionResourceSetupUnsuccessfulTransfer-ExtIEs", + "PDUSessionResourceSetupUnsuccessfulTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_tags_1029[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_1029, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_specs_1029 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1036 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_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_ASN_NGAP_extensionValue_1036 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1036 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_1033[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1034, memb_ASN_NGAP_id_constraint_1033 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1035, memb_ASN_NGAP_criticality_constraint_1033 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1036, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1036, memb_ASN_NGAP_extensionValue_constraint_1033 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tag2el_1033[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_specs_1033 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tag2el_1033, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs = { + "PDUSessionResourceSuspendItemSUSReq-ExtIEs", + "PDUSessionResourceSuspendItemSUSReq-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_tags_1033[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_1033, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_specs_1033 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1040[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue, choice.ExpectedUEActivityBehaviour), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExpectedUEActivityBehaviour" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1040[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ExpectedUEActivityBehaviour */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1040 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1040, + 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_ASN_NGAP_extensionValue_1040 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1040, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1040 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1037[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1038, memb_ASN_NGAP_id_constraint_1037 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSwitchedItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1039, memb_ASN_NGAP_criticality_constraint_1037 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1040, + select_PDUSessionResourceSwitchedItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1040, memb_ASN_NGAP_extensionValue_constraint_1037 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tag2el_1037[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_specs_1037 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tag2el_1037, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs = { + "PDUSessionResourceSwitchedItem-ExtIEs", + "PDUSessionResourceSwitchedItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_tags_1037[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1037, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_specs_1037 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1044 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_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_ASN_NGAP_extensionValue_1044 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1044 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_1041[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1042, memb_ASN_NGAP_id_constraint_1041 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1043, memb_ASN_NGAP_criticality_constraint_1041 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1044, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1044, memb_ASN_NGAP_extensionValue_constraint_1041 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tag2el_1041[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_specs_1041 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tag2el_1041, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs = { + "PDUSessionResourceToBeSwitchedDLItem-ExtIEs", + "PDUSessionResourceToBeSwitchedDLItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_tags_1041[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_1041, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_specs_1041 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1048 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_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_ASN_NGAP_extensionValue_1048 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1048 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_1045[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1046, memb_ASN_NGAP_id_constraint_1045 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1047, memb_ASN_NGAP_criticality_constraint_1045 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1048, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1048, memb_ASN_NGAP_extensionValue_constraint_1045 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tag2el_1045[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_specs_1045 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tag2el_1045, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs = { + "PDUSessionResourceToReleaseItemHOCmd-ExtIEs", + "PDUSessionResourceToReleaseItemHOCmd-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_tags_1045[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_1045, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_specs_1045 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1052 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_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_ASN_NGAP_extensionValue_1052 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1052 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_1049[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1050, memb_ASN_NGAP_id_constraint_1049 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1051, memb_ASN_NGAP_criticality_constraint_1049 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1052, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1052, memb_ASN_NGAP_extensionValue_constraint_1049 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tag2el_1049[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_specs_1049 = { + sizeof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tag2el_1049, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs = { + "PDUSessionResourceToReleaseItemRelCmd-ExtIEs", + "PDUSessionResourceToReleaseItemRelCmd-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_tags_1049[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_1049, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_specs_1049 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1056 = { + sizeof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PDUSessionUsageReport_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_ASN_NGAP_extensionValue_1056 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1056 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionUsageReport_ExtIEs_1053[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1054, memb_ASN_NGAP_id_constraint_1053 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1055, memb_ASN_NGAP_criticality_constraint_1053 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1056, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1056, memb_ASN_NGAP_extensionValue_constraint_1053 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tag2el_1053[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionUsageReport_ExtIEs_specs_1053 = { + sizeof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs), + offsetof(struct ASN_NGAP_PDUSessionUsageReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tag2el_1053, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs = { + "PDUSessionUsageReport-ExtIEs", + "PDUSessionUsageReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053, + sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs_tags_1053[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionUsageReport_ExtIEs_1053, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionUsageReport_ExtIEs_specs_1053 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1060 = { + sizeof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PEIPSassistanceInformation_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_ASN_NGAP_extensionValue_1060 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1060 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_1057[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1058, memb_ASN_NGAP_id_constraint_1057 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1059, memb_ASN_NGAP_criticality_constraint_1057 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1060, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1060, memb_ASN_NGAP_extensionValue_constraint_1057 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tag2el_1057[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_specs_1057 = { + sizeof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs), + offsetof(struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tag2el_1057, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs = { + "PEIPSassistanceInformation-ExtIEs", + "PEIPSassistanceInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057, + sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057) + /sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057[0]), /* 1 */ + asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057) + /sizeof(asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_tags_1057[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_1057, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_specs_1057 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1064 = { + sizeof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1064 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1064 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_1061[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1062, memb_ASN_NGAP_id_constraint_1061 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1063, memb_ASN_NGAP_criticality_constraint_1061 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1064, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1064, memb_ASN_NGAP_extensionValue_constraint_1061 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tag2el_1061[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_specs_1061 = { + sizeof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs), + offsetof(struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tag2el_1061, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs = { + "PLMNAreaBasedQMC-ExtIEs", + "PLMNAreaBasedQMC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061, + sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061) + /sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061) + /sizeof(asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_tags_1061[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_1061, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_specs_1061 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1068[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue, choice.NPN_Support), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_Support, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-Support" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue, choice.ExtendedSliceSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedSliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedSliceSupportList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue, choice.OnboardingSupport), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_OnboardingSupport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OnboardingSupport" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1068[] = { 2, 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1068[] = { 2, 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1068[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* OnboardingSupport */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* ExtendedSliceSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sNPN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1068 = { + sizeof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1068, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1068, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1068, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1068 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1068, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1068 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportItem_ExtIEs_1065[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1066, memb_ASN_NGAP_id_constraint_1065 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PLMNSupportItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1067, memb_ASN_NGAP_criticality_constraint_1065 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1068, + select_PLMNSupportItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1068, memb_ASN_NGAP_extensionValue_constraint_1065 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PLMNSupportItem_ExtIEs_tag2el_1065[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNSupportItem_ExtIEs_specs_1065 = { + sizeof(struct ASN_NGAP_PLMNSupportItem_ExtIEs), + offsetof(struct ASN_NGAP_PLMNSupportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PLMNSupportItem_ExtIEs_tag2el_1065, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs = { + "PLMNSupportItem-ExtIEs", + "PLMNSupportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065, + sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065[0]), /* 1 */ + asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065) + /sizeof(asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs_tags_1065[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PLMNSupportItem_ExtIEs_1065, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PLMNSupportItem_ExtIEs_specs_1065 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1072 = { + sizeof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_PNI_NPN_MobilityInformation_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_ASN_NGAP_extensionValue_1072 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1072 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_1069[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1070, memb_ASN_NGAP_id_constraint_1069 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1071, memb_ASN_NGAP_criticality_constraint_1069 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1072, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1072, memb_ASN_NGAP_extensionValue_constraint_1069 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tag2el_1069[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_specs_1069 = { + sizeof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs), + offsetof(struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tag2el_1069, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs = { + "PNI-NPN-MobilityInformation-ExtIEs", + "PNI-NPN-MobilityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069, + sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069) + /sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069[0]), /* 1 */ + asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069) + /sizeof(asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_tags_1069[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_1069, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_specs_1069 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1076 = { + sizeof(struct ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QMCConfigInfo_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_ASN_NGAP_extensionValue_1076 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1076 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCConfigInfo_ExtIEs_1073[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1074, memb_ASN_NGAP_id_constraint_1073 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1075, memb_ASN_NGAP_criticality_constraint_1073 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1076, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1076, memb_ASN_NGAP_extensionValue_constraint_1073 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QMCConfigInfo_ExtIEs_tag2el_1073[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCConfigInfo_ExtIEs_specs_1073 = { + sizeof(struct ASN_NGAP_QMCConfigInfo_ExtIEs), + offsetof(struct ASN_NGAP_QMCConfigInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QMCConfigInfo_ExtIEs_tag2el_1073, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs = { + "QMCConfigInfo-ExtIEs", + "QMCConfigInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073, + sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073) + /sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073[0]), /* 1 */ + asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073) + /sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs_tags_1073[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QMCConfigInfo_ExtIEs_1073, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QMCConfigInfo_ExtIEs_specs_1073 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1080 = { + sizeof(struct ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QMCDeactivation_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_ASN_NGAP_extensionValue_1080 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1080 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCDeactivation_ExtIEs_1077[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1078, memb_ASN_NGAP_id_constraint_1077 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1079, memb_ASN_NGAP_criticality_constraint_1077 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1080, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1080, memb_ASN_NGAP_extensionValue_constraint_1077 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QMCDeactivation_ExtIEs_tag2el_1077[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCDeactivation_ExtIEs_specs_1077 = { + sizeof(struct ASN_NGAP_QMCDeactivation_ExtIEs), + offsetof(struct ASN_NGAP_QMCDeactivation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QMCDeactivation_ExtIEs_tag2el_1077, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs = { + "QMCDeactivation-ExtIEs", + "QMCDeactivation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077, + sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077) + /sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077[0]), /* 1 */ + asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077) + /sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs_tags_1077[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QMCDeactivation_ExtIEs_1077, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QMCDeactivation_ExtIEs_specs_1077 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1084[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue, choice.AlternativeQoSParaSetIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetIndex" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1084[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetIndex */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1084 = { + sizeof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1084, + 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_ASN_NGAP_extensionValue_1084 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1084, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1084 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1081[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1082, memb_ASN_NGAP_id_constraint_1081 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowAcceptedItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1083, memb_ASN_NGAP_criticality_constraint_1081 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1084, + select_QosFlowAcceptedItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1084, memb_ASN_NGAP_extensionValue_constraint_1081 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tag2el_1081[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_specs_1081 = { + sizeof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tag2el_1081, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs = { + "QosFlowAcceptedItem-ExtIEs", + "QosFlowAcceptedItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081, + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_tags_1081[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1081, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_specs_1081 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1088[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue, choice.TSCTrafficCharacteristics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TSCTrafficCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TSCTrafficCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue, choice.RedundantQosFlowIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantQosFlowIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantQosFlowIndicator" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1088[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1088[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1088[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* RedundantQosFlowIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TSCTrafficCharacteristics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1088 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1088, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1088, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1088, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1088 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1088, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1088 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1085[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1086, memb_ASN_NGAP_id_constraint_1085 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowAddOrModifyRequestItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1087, memb_ASN_NGAP_criticality_constraint_1085 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1088, + select_QosFlowAddOrModifyRequestItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1088, memb_ASN_NGAP_extensionValue_constraint_1085 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tag2el_1085[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_specs_1085 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tag2el_1085, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs = { + "QosFlowAddOrModifyRequestItem-ExtIEs", + "QosFlowAddOrModifyRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_tags_1085[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1085, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_specs_1085 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1092[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue, choice.AlternativeQoSParaSetIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetIndex" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1092[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetIndex */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1092 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1092, + 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_ASN_NGAP_extensionValue_1092 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1092, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1092 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1089[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1090, memb_ASN_NGAP_id_constraint_1089 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowAddOrModifyResponseItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1091, memb_ASN_NGAP_criticality_constraint_1089 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1092, + select_QosFlowAddOrModifyResponseItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1092, memb_ASN_NGAP_extensionValue_constraint_1089 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tag2el_1089[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_specs_1089 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tag2el_1089, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs = { + "QosFlowAddOrModifyResponseItem-ExtIEs", + "QosFlowAddOrModifyResponseItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_tags_1089[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1089, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_specs_1089 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1096 = { + sizeof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowFeedbackItem_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_ASN_NGAP_extensionValue_1096 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1096 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_1093[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1094, memb_ASN_NGAP_id_constraint_1093 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1095, memb_ASN_NGAP_criticality_constraint_1093 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1096, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1096, memb_ASN_NGAP_extensionValue_constraint_1093 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tag2el_1093[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_specs_1093 = { + sizeof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tag2el_1093, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs = { + "QosFlowFeedbackItem-ExtIEs", + "QosFlowFeedbackItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093, + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_tags_1093[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_1093, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_specs_1093 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1100[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue, choice.ULForwarding), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_ULForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ULForwarding" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue, choice.TransportLayerAddress), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue, choice.TransportLayerAddress_1), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransportLayerAddress" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1100[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1100[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, 0, 1 }, /* TransportLayerAddress */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 2, -1, 0 }, /* TransportLayerAddress */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* ULForwarding */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1100 = { + sizeof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1100, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1100, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1100, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1100 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1100, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationItem_ExtIEs_1097[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1098, memb_ASN_NGAP_id_constraint_1097 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowInformationItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1099, memb_ASN_NGAP_criticality_constraint_1097 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1100, + select_QosFlowInformationItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1100, memb_ASN_NGAP_extensionValue_constraint_1097 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowInformationItem_ExtIEs_tag2el_1097[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationItem_ExtIEs_specs_1097 = { + sizeof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowInformationItem_ExtIEs_tag2el_1097, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs = { + "QosFlowInformationItem-ExtIEs", + "QosFlowInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097, + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs_tags_1097[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowInformationItem_ExtIEs_1097, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowInformationItem_ExtIEs_specs_1097 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1104[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue, choice.QosMonitoringRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosMonitoringRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosMonitoringRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue, choice.QosMonitoringReportingFrequency), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosMonitoringReportingFrequency" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1104[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1104[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1104[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* QosMonitoringReportingFrequency */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* QosMonitoringRequest */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1104 = { + sizeof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1104, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1104, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1104, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1104 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1104, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1101[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1102, memb_ASN_NGAP_id_constraint_1101 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowLevelQosParameters_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1103, memb_ASN_NGAP_criticality_constraint_1101 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1104, + select_QosFlowLevelQosParameters_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1104, memb_ASN_NGAP_extensionValue_constraint_1101 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tag2el_1101[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_specs_1101 = { + sizeof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tag2el_1101, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs = { + "QosFlowLevelQosParameters-ExtIEs", + "QosFlowLevelQosParameters-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101, + sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101) + /sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101) + /sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_tags_1101[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1101, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_specs_1101 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1108 = { + sizeof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowWithCauseItem_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_ASN_NGAP_extensionValue_1108 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_1105[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1106, memb_ASN_NGAP_id_constraint_1105 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1107, memb_ASN_NGAP_criticality_constraint_1105 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1108, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1108, memb_ASN_NGAP_extensionValue_constraint_1105 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tag2el_1105[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_specs_1105 = { + sizeof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tag2el_1105, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs = { + "QosFlowWithCauseItem-ExtIEs", + "QosFlowWithCauseItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105, + sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105) + /sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105) + /sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_tags_1105[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_1105, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_specs_1105 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1112 = { + sizeof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowModifyConfirmItem_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_ASN_NGAP_extensionValue_1112 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_1109[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1110, memb_ASN_NGAP_id_constraint_1109 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1111, memb_ASN_NGAP_criticality_constraint_1109 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1112, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1112, memb_ASN_NGAP_extensionValue_constraint_1109 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tag2el_1109[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_specs_1109 = { + sizeof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tag2el_1109, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs = { + "QosFlowModifyConfirmItem-ExtIEs", + "QosFlowModifyConfirmItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109, + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_tags_1109[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_1109, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_specs_1109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1116[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue, choice.AlternativeQoSParaSetNotifyIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetNotifyIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetNotifyIndex" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetNotifyIndex */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1116 = { + sizeof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1116, + 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_ASN_NGAP_extensionValue_1116 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1116, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1113[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1114, memb_ASN_NGAP_id_constraint_1113 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowNotifyItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1115, memb_ASN_NGAP_criticality_constraint_1113 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1116, + select_QosFlowNotifyItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1116, memb_ASN_NGAP_extensionValue_constraint_1113 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tag2el_1113[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyItem_ExtIEs_specs_1113 = { + sizeof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowNotifyItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tag2el_1113, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs = { + "QosFlowNotifyItem-ExtIEs", + "QosFlowNotifyItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113, + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs_tags_1113[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1113, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowNotifyItem_ExtIEs_specs_1113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1120[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue, choice.ExtendedPacketDelayBudget_1), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedPacketDelayBudget" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue, choice.BurstArrivalTime), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_BurstArrivalTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BurstArrivalTime" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* ExtendedPacketDelayBudget */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* ExtendedPacketDelayBudget */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 } /* BurstArrivalTime */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1120 = { + sizeof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1120, + 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_ASN_NGAP_extensionValue_1120 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1120, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersItem_ExtIEs_1117[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1118, memb_ASN_NGAP_id_constraint_1117 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowParametersItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1119, memb_ASN_NGAP_criticality_constraint_1117 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1120, + select_QosFlowParametersItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1120, memb_ASN_NGAP_extensionValue_constraint_1117 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowParametersItem_ExtIEs_tag2el_1117[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersItem_ExtIEs_specs_1117 = { + sizeof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowParametersItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowParametersItem_ExtIEs_tag2el_1117, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs = { + "QosFlowParametersItem-ExtIEs", + "QosFlowParametersItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117, + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs_tags_1117[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowParametersItem_ExtIEs_1117, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowParametersItem_ExtIEs_specs_1117 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1124 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowPerTNLInformation_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_ASN_NGAP_extensionValue_1124 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_1121[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1122, memb_ASN_NGAP_id_constraint_1121 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1123, memb_ASN_NGAP_criticality_constraint_1121 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1124, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1124, memb_ASN_NGAP_extensionValue_constraint_1121 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tag2el_1121[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_specs_1121 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tag2el_1121, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs = { + "QosFlowPerTNLInformation-ExtIEs", + "QosFlowPerTNLInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121, + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_tags_1121[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_1121, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_specs_1121 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1128 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowPerTNLInformationItem_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_ASN_NGAP_extensionValue_1128 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_1125[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1126, memb_ASN_NGAP_id_constraint_1125 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1127, memb_ASN_NGAP_criticality_constraint_1125 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1128, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1128, memb_ASN_NGAP_extensionValue_constraint_1125 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tag2el_1125[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_specs_1125 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tag2el_1125, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs = { + "QosFlowPerTNLInformationItem-ExtIEs", + "QosFlowPerTNLInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125, + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_tags_1125[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_1125, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_specs_1125 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1132[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue, choice.TSCTrafficCharacteristics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TSCTrafficCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TSCTrafficCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue, choice.RedundantQosFlowIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantQosFlowIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantQosFlowIndicator" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1132[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1132[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* RedundantQosFlowIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TSCTrafficCharacteristics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1132 = { + sizeof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1132, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1132, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1132, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1132 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1132, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1129[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1130, memb_ASN_NGAP_id_constraint_1129 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowSetupRequestItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1131, memb_ASN_NGAP_criticality_constraint_1129 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1132, + select_QosFlowSetupRequestItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1132, memb_ASN_NGAP_extensionValue_constraint_1129 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tag2el_1129[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_specs_1129 = { + sizeof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tag2el_1129, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs = { + "QosFlowSetupRequestItem-ExtIEs", + "QosFlowSetupRequestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129, + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_tags_1129[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1129, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_specs_1129 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1136[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue, choice.AlternativeQoSParaSetIndex), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AlternativeQoSParaSetIndex" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* AlternativeQoSParaSetIndex */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1136 = { + sizeof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1136, + 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_ASN_NGAP_extensionValue_1136 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1136, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1133[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1134, memb_ASN_NGAP_id_constraint_1133 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_QosFlowItemWithDataForwarding_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1135, memb_ASN_NGAP_criticality_constraint_1133 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1136, + select_QosFlowItemWithDataForwarding_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1136, memb_ASN_NGAP_extensionValue_constraint_1133 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tag2el_1133[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_specs_1133 = { + sizeof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tag2el_1133, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs = { + "QosFlowItemWithDataForwarding-ExtIEs", + "QosFlowItemWithDataForwarding-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133, + sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133) + /sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133) + /sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_tags_1133[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1133, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_specs_1133 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1140 = { + sizeof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QosFlowToBeForwardedItem_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_ASN_NGAP_extensionValue_1140 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_1137[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1138, memb_ASN_NGAP_id_constraint_1137 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1139, memb_ASN_NGAP_criticality_constraint_1137 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1140, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1140, memb_ASN_NGAP_extensionValue_constraint_1137 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tag2el_1137[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_specs_1137 = { + sizeof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs), + offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tag2el_1137, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs = { + "QosFlowToBeForwardedItem-ExtIEs", + "QosFlowToBeForwardedItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137, + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_tags_1137[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_1137, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_specs_1137 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1144 = { + sizeof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_QoSFlowsUsageReport_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_ASN_NGAP_extensionValue_1144 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_1141[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1142, memb_ASN_NGAP_id_constraint_1141 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1143, memb_ASN_NGAP_criticality_constraint_1141 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1144, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1144, memb_ASN_NGAP_extensionValue_constraint_1141 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tag2el_1141[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_specs_1141 = { + sizeof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs), + offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tag2el_1141, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs = { + "QoSFlowsUsageReport-Item-ExtIEs", + "QoSFlowsUsageReport-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141, + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_tags_1141[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_1141, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_specs_1141 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1148 = { + sizeof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RANStatusTransfer_TransparentContainer_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_ASN_NGAP_extensionValue_1148 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_1145[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1146, memb_ASN_NGAP_id_constraint_1145 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1147, memb_ASN_NGAP_criticality_constraint_1145 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1148, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1148, memb_ASN_NGAP_extensionValue_constraint_1145 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tag2el_1145[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_specs_1145 = { + sizeof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs), + offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tag2el_1145, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs = { + "RANStatusTransfer-TransparentContainer-ExtIEs", + "RANStatusTransfer-TransparentContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145, + sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145) + /sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145) + /sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_tags_1145[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_1145, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_specs_1145 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1152[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue, choice.ExtendedRATRestrictionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ExtendedRATRestrictionInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1152[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ExtendedRATRestrictionInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1152 = { + sizeof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1152, + 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_ASN_NGAP_extensionValue_1152 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1152, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RATRestrictions_Item_ExtIEs_1149[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1150, memb_ASN_NGAP_id_constraint_1149 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RATRestrictions_Item_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1151, memb_ASN_NGAP_criticality_constraint_1149 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1152, + select_RATRestrictions_Item_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1152, memb_ASN_NGAP_extensionValue_constraint_1149 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RATRestrictions_Item_ExtIEs_tag2el_1149[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_Item_ExtIEs_specs_1149 = { + sizeof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs), + offsetof(struct ASN_NGAP_RATRestrictions_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RATRestrictions_Item_ExtIEs_tag2el_1149, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs = { + "RATRestrictions-Item-ExtIEs", + "RATRestrictions-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149, + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149[0]), /* 1 */ + asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs_tags_1149[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RATRestrictions_Item_ExtIEs_1149, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RATRestrictions_Item_ExtIEs_specs_1149 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1156 = { + sizeof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RecommendedCellsForPaging_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_ASN_NGAP_extensionValue_1156 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_1153[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1154, memb_ASN_NGAP_id_constraint_1153 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1155, memb_ASN_NGAP_criticality_constraint_1153 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1156, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1156, memb_ASN_NGAP_extensionValue_constraint_1153 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tag2el_1153[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_specs_1153 = { + sizeof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs), + offsetof(struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tag2el_1153, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs = { + "RecommendedCellsForPaging-ExtIEs", + "RecommendedCellsForPaging-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153, + sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_tags_1153[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_1153, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_specs_1153 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1160 = { + sizeof(struct ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RecommendedCellItem_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_ASN_NGAP_extensionValue_1160 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellItem_ExtIEs_1157[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1158, memb_ASN_NGAP_id_constraint_1157 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1159, memb_ASN_NGAP_criticality_constraint_1157 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1160, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1160, memb_ASN_NGAP_extensionValue_constraint_1157 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedCellItem_ExtIEs_tag2el_1157[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellItem_ExtIEs_specs_1157 = { + sizeof(struct ASN_NGAP_RecommendedCellItem_ExtIEs), + offsetof(struct ASN_NGAP_RecommendedCellItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedCellItem_ExtIEs_tag2el_1157, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs = { + "RecommendedCellItem-ExtIEs", + "RecommendedCellItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157, + sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs_tags_1157[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedCellItem_ExtIEs_1157, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedCellItem_ExtIEs_specs_1157 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1164 = { + sizeof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RecommendedRANNodesForPaging_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_ASN_NGAP_extensionValue_1164 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_1161[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1162, memb_ASN_NGAP_id_constraint_1161 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1163, memb_ASN_NGAP_criticality_constraint_1161 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1164, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1164, memb_ASN_NGAP_extensionValue_constraint_1161 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tag2el_1161[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_specs_1161 = { + sizeof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs), + offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tag2el_1161, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs = { + "RecommendedRANNodesForPaging-ExtIEs", + "RecommendedRANNodesForPaging-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161, + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_tags_1161[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_1161, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_specs_1161 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1168 = { + sizeof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RecommendedRANNodeItem_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_ASN_NGAP_extensionValue_1168 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_1165[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1166, memb_ASN_NGAP_id_constraint_1165 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1167, memb_ASN_NGAP_criticality_constraint_1165 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1168, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1168, memb_ASN_NGAP_extensionValue_constraint_1165 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tag2el_1165[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_specs_1165 = { + sizeof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs), + offsetof(struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tag2el_1165, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs = { + "RecommendedRANNodeItem-ExtIEs", + "RecommendedRANNodeItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165, + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_tags_1165[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_1165, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_specs_1165 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1172[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue, choice.PDUSessionPairID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionPairID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionPairID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* PDUSessionPairID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1172 = { + sizeof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1172, + 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_ASN_NGAP_extensionValue_1172 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1172, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1169[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1170, memb_ASN_NGAP_id_constraint_1169 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RedundantPDUSessionInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1171, memb_ASN_NGAP_criticality_constraint_1169 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1172, + select_RedundantPDUSessionInformation_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1172, memb_ASN_NGAP_extensionValue_constraint_1169 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tag2el_1169[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_specs_1169 = { + sizeof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs), + offsetof(struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tag2el_1169, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs = { + "RedundantPDUSessionInformation-ExtIEs", + "RedundantPDUSessionInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169, + sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169) + /sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169[0]), /* 1 */ + asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169) + /sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_tags_1169[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1169, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_specs_1169 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1176 = { + sizeof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RIMInformationTransfer_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_ASN_NGAP_extensionValue_1176 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformationTransfer_ExtIEs_1173[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1174, memb_ASN_NGAP_id_constraint_1173 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1175, memb_ASN_NGAP_criticality_constraint_1173 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1176, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1176, memb_ASN_NGAP_extensionValue_constraint_1173 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RIMInformationTransfer_ExtIEs_tag2el_1173[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformationTransfer_ExtIEs_specs_1173 = { + sizeof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs), + offsetof(struct ASN_NGAP_RIMInformationTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RIMInformationTransfer_ExtIEs_tag2el_1173, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs = { + "RIMInformationTransfer-ExtIEs", + "RIMInformationTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173, + sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173) + /sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173[0]), /* 1 */ + asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173) + /sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs_tags_1173[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RIMInformationTransfer_ExtIEs_1173, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RIMInformationTransfer_ExtIEs_specs_1173 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1180 = { + sizeof(struct ASN_NGAP_RIMInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_RIMInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_RIMInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_RIMInformation_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_ASN_NGAP_extensionValue_1180 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformation_ExtIEs_1177[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1178, memb_ASN_NGAP_id_constraint_1177 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1179, memb_ASN_NGAP_criticality_constraint_1177 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1180, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1180, memb_ASN_NGAP_extensionValue_constraint_1177 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RIMInformation_ExtIEs_tag2el_1177[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformation_ExtIEs_specs_1177 = { + sizeof(struct ASN_NGAP_RIMInformation_ExtIEs), + offsetof(struct ASN_NGAP_RIMInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RIMInformation_ExtIEs_tag2el_1177, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformation_ExtIEs = { + "RIMInformation-ExtIEs", + "RIMInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177, + sizeof(asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177) + /sizeof(asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177[0]), /* 1 */ + asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177) + /sizeof(asn_DEF_ASN_NGAP_RIMInformation_ExtIEs_tags_1177[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RIMInformation_ExtIEs_1177, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RIMInformation_ExtIEs_specs_1177 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1184 = { + sizeof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1184 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_1181[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1182, memb_ASN_NGAP_id_constraint_1181 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1183, memb_ASN_NGAP_criticality_constraint_1181 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1184, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1184, memb_ASN_NGAP_extensionValue_constraint_1181 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tag2el_1181[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_specs_1181 = { + sizeof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs), + offsetof(struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tag2el_1181, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs = { + "ScheduledCommunicationTime-ExtIEs", + "ScheduledCommunicationTime-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181, + sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181) + /sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181[0]), /* 1 */ + asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181) + /sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_tags_1181[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_1181, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_specs_1181 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1188 = { + sizeof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SecondaryRATUsageInformation_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_ASN_NGAP_extensionValue_1188 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_1185[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1186, memb_ASN_NGAP_id_constraint_1185 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1187, memb_ASN_NGAP_criticality_constraint_1185 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1188, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1188, memb_ASN_NGAP_extensionValue_constraint_1185 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tag2el_1185[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_specs_1185 = { + sizeof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs), + offsetof(struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tag2el_1185, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs = { + "SecondaryRATUsageInformation-ExtIEs", + "SecondaryRATUsageInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_tags_1185[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_1185, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_specs_1185 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1192 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_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_ASN_NGAP_extensionValue_1192 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_1189[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1190, memb_ASN_NGAP_id_constraint_1189 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1191, memb_ASN_NGAP_criticality_constraint_1189 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1192, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1192, memb_ASN_NGAP_extensionValue_constraint_1189 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tag2el_1189[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_specs_1189 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tag2el_1189, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs = { + "SecondaryRATDataUsageReportTransfer-ExtIEs", + "SecondaryRATDataUsageReportTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_tags_1189[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_1189, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_specs_1189 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1196 = { + sizeof(struct ASN_NGAP_SecurityContext_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SecurityContext_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SecurityContext_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SecurityContext_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_ASN_NGAP_extensionValue_1196 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityContext_ExtIEs_1193[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityContext_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1194, memb_ASN_NGAP_id_constraint_1193 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityContext_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1195, memb_ASN_NGAP_criticality_constraint_1193 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityContext_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1196, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1196, memb_ASN_NGAP_extensionValue_constraint_1193 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityContext_ExtIEs_tag2el_1193[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityContext_ExtIEs_specs_1193 = { + sizeof(struct ASN_NGAP_SecurityContext_ExtIEs), + offsetof(struct ASN_NGAP_SecurityContext_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityContext_ExtIEs_tag2el_1193, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityContext_ExtIEs = { + "SecurityContext-ExtIEs", + "SecurityContext-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193, + sizeof(asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193) + /sizeof(asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193) + /sizeof(asn_DEF_ASN_NGAP_SecurityContext_ExtIEs_tags_1193[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityContext_ExtIEs_1193, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityContext_ExtIEs_specs_1193 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1200[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue, choice.MaximumIntegrityProtectedDataRate), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaximumIntegrityProtectedDataRate" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1200[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* MaximumIntegrityProtectedDataRate */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1200 = { + sizeof(struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1200, + 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_ASN_NGAP_extensionValue_1200 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1200, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityIndication_ExtIEs_1197[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1198, memb_ASN_NGAP_id_constraint_1197 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SecurityIndication_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1199, memb_ASN_NGAP_criticality_constraint_1197 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1200, + select_SecurityIndication_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1200, memb_ASN_NGAP_extensionValue_constraint_1197 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityIndication_ExtIEs_tag2el_1197[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityIndication_ExtIEs_specs_1197 = { + sizeof(struct ASN_NGAP_SecurityIndication_ExtIEs), + offsetof(struct ASN_NGAP_SecurityIndication_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityIndication_ExtIEs_tag2el_1197, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs = { + "SecurityIndication-ExtIEs", + "SecurityIndication-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197, + sizeof(asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197) + /sizeof(asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197) + /sizeof(asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs_tags_1197[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityIndication_ExtIEs_1197, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityIndication_ExtIEs_specs_1197 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1204 = { + sizeof(struct ASN_NGAP_SecurityResult_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SecurityResult_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SecurityResult_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SecurityResult_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_ASN_NGAP_extensionValue_1204 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityResult_ExtIEs_1201[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityResult_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1202, memb_ASN_NGAP_id_constraint_1201 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityResult_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1203, memb_ASN_NGAP_criticality_constraint_1201 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityResult_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1204, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1204, memb_ASN_NGAP_extensionValue_constraint_1201 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityResult_ExtIEs_tag2el_1201[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityResult_ExtIEs_specs_1201 = { + sizeof(struct ASN_NGAP_SecurityResult_ExtIEs), + offsetof(struct ASN_NGAP_SecurityResult_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityResult_ExtIEs_tag2el_1201, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityResult_ExtIEs = { + "SecurityResult-ExtIEs", + "SecurityResult-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201, + sizeof(asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201) + /sizeof(asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201) + /sizeof(asn_DEF_ASN_NGAP_SecurityResult_ExtIEs_tags_1201[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityResult_ExtIEs_1201, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityResult_ExtIEs_specs_1201 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1208 = { + sizeof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SensorMeasurementConfiguration_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_ASN_NGAP_extensionValue_1208 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_1205[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1206, memb_ASN_NGAP_id_constraint_1205 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1207, memb_ASN_NGAP_criticality_constraint_1205 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1208, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1208, memb_ASN_NGAP_extensionValue_constraint_1205 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tag2el_1205[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_specs_1205 = { + sizeof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs), + offsetof(struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tag2el_1205, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs = { + "SensorMeasurementConfiguration-ExtIEs", + "SensorMeasurementConfiguration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205, + sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_tags_1205[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_1205, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_specs_1205 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1212 = { + sizeof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SensorMeasConfigNameItem_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_ASN_NGAP_extensionValue_1212 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_1209[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1210, memb_ASN_NGAP_id_constraint_1209 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1211, memb_ASN_NGAP_criticality_constraint_1209 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1212, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1212, memb_ASN_NGAP_extensionValue_constraint_1209 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tag2el_1209[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_specs_1209 = { + sizeof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs), + offsetof(struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tag2el_1209, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs = { + "SensorMeasConfigNameItem-ExtIEs", + "SensorMeasConfigNameItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209, + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_tags_1209[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_1209, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_specs_1209 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1216[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue, choice.GUAMIType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_GUAMIType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GUAMIType" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1216[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 0 } /* GUAMIType */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1216 = { + sizeof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1216, + 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_ASN_NGAP_extensionValue_1216 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1216, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ServedGUAMIItem_ExtIEs_1213[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1214, memb_ASN_NGAP_id_constraint_1213 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_ServedGUAMIItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1215, memb_ASN_NGAP_criticality_constraint_1213 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1216, + select_ServedGUAMIItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1216, memb_ASN_NGAP_extensionValue_constraint_1213 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ServedGUAMIItem_ExtIEs_tag2el_1213[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIItem_ExtIEs_specs_1213 = { + sizeof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs), + offsetof(struct ASN_NGAP_ServedGUAMIItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ServedGUAMIItem_ExtIEs_tag2el_1213, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs = { + "ServedGUAMIItem-ExtIEs", + "ServedGUAMIItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213, + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs_tags_1213[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ServedGUAMIItem_ExtIEs_1213, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ServedGUAMIItem_ExtIEs_specs_1213 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1220 = { + sizeof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_ServiceAreaInformation_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_ASN_NGAP_extensionValue_1220 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_1217[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1218, memb_ASN_NGAP_id_constraint_1217 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1219, memb_ASN_NGAP_criticality_constraint_1217 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1220, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1220, memb_ASN_NGAP_extensionValue_constraint_1217 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tag2el_1217[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_specs_1217 = { + sizeof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs), + offsetof(struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tag2el_1217, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs = { + "ServiceAreaInformation-Item-ExtIEs", + "ServiceAreaInformation-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217, + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_tags_1217[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_1217, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_specs_1217 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1224 = { + sizeof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SharedNGU_MulticastTNLInformation_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_ASN_NGAP_extensionValue_1224 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_1221[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1222, memb_ASN_NGAP_id_constraint_1221 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1223, memb_ASN_NGAP_criticality_constraint_1221 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1224, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1224, memb_ASN_NGAP_extensionValue_constraint_1221 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tag2el_1221[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_specs_1221 = { + sizeof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs), + offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tag2el_1221, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs = { + "SharedNGU-MulticastTNLInformation-ExtIEs", + "SharedNGU-MulticastTNLInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221, + sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221) + /sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221[0]), /* 1 */ + asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221) + /sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_tags_1221[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_1221, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_specs_1221 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1228 = { + sizeof(struct ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SliceOverloadItem_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_ASN_NGAP_extensionValue_1228 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadItem_ExtIEs_1225[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1226, memb_ASN_NGAP_id_constraint_1225 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1227, memb_ASN_NGAP_criticality_constraint_1225 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1228, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1228, memb_ASN_NGAP_extensionValue_constraint_1225 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceOverloadItem_ExtIEs_tag2el_1225[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceOverloadItem_ExtIEs_specs_1225 = { + sizeof(struct ASN_NGAP_SliceOverloadItem_ExtIEs), + offsetof(struct ASN_NGAP_SliceOverloadItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SliceOverloadItem_ExtIEs_tag2el_1225, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs = { + "SliceOverloadItem-ExtIEs", + "SliceOverloadItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225, + sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs_tags_1225[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceOverloadItem_ExtIEs_1225, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceOverloadItem_ExtIEs_specs_1225 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1232 = { + sizeof(struct ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SliceSupportItem_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_ASN_NGAP_extensionValue_1232 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportItem_ExtIEs_1229[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1230, memb_ASN_NGAP_id_constraint_1229 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1231, memb_ASN_NGAP_criticality_constraint_1229 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1232, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1232, memb_ASN_NGAP_extensionValue_constraint_1229 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceSupportItem_ExtIEs_tag2el_1229[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportItem_ExtIEs_specs_1229 = { + sizeof(struct ASN_NGAP_SliceSupportItem_ExtIEs), + offsetof(struct ASN_NGAP_SliceSupportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SliceSupportItem_ExtIEs_tag2el_1229, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs = { + "SliceSupportItem-ExtIEs", + "SliceSupportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229, + sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs_tags_1229[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceSupportItem_ExtIEs_1229, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceSupportItem_ExtIEs_specs_1229 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1236 = { + sizeof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SliceSupportQMC_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_ASN_NGAP_extensionValue_1236 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_1233[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1234, memb_ASN_NGAP_id_constraint_1233 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1235, memb_ASN_NGAP_criticality_constraint_1233 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1236, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1236, memb_ASN_NGAP_extensionValue_constraint_1233 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tag2el_1233[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_specs_1233 = { + sizeof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs), + offsetof(struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tag2el_1233, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs = { + "SliceSupportQMC-Item-ExtIEs", + "SliceSupportQMC-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233, + sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_tags_1233[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_1233, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_specs_1233 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1240 = { + sizeof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SNPN_MobilityInformation_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_ASN_NGAP_extensionValue_1240 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_1237[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1238, memb_ASN_NGAP_id_constraint_1237 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1239, memb_ASN_NGAP_criticality_constraint_1237 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1240, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1240, memb_ASN_NGAP_extensionValue_constraint_1237 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tag2el_1237[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_specs_1237 = { + sizeof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs), + offsetof(struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tag2el_1237, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs = { + "SNPN-MobilityInformation-ExtIEs", + "SNPN-MobilityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237, + sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237) + /sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237[0]), /* 1 */ + asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237) + /sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_tags_1237[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_1237, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_specs_1237 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1244 = { + sizeof(struct ASN_NGAP_S_NSSAI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_S_NSSAI_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_ASN_NGAP_extensionValue_1244 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_S_NSSAI_ExtIEs_1241[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1242, memb_ASN_NGAP_id_constraint_1241 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1243, memb_ASN_NGAP_criticality_constraint_1241 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1244, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1244, memb_ASN_NGAP_extensionValue_constraint_1241 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_S_NSSAI_ExtIEs_tag2el_1241[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_S_NSSAI_ExtIEs_specs_1241 = { + sizeof(struct ASN_NGAP_S_NSSAI_ExtIEs), + offsetof(struct ASN_NGAP_S_NSSAI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_S_NSSAI_ExtIEs_tag2el_1241, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs = { + "S-NSSAI-ExtIEs", + "S-NSSAI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241, + sizeof(asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241) + /sizeof(asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241[0]), /* 1 */ + asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241) + /sizeof(asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs_tags_1241[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_S_NSSAI_ExtIEs_1241, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_S_NSSAI_ExtIEs_specs_1241 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1248 = { + sizeof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SONConfigurationTransfer_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_ASN_NGAP_extensionValue_1248 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONConfigurationTransfer_ExtIEs_1245[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1246, memb_ASN_NGAP_id_constraint_1245 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1247, memb_ASN_NGAP_criticality_constraint_1245 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1248, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1248, memb_ASN_NGAP_extensionValue_constraint_1245 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tag2el_1245[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONConfigurationTransfer_ExtIEs_specs_1245 = { + sizeof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs), + offsetof(struct ASN_NGAP_SONConfigurationTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tag2el_1245, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs = { + "SONConfigurationTransfer-ExtIEs", + "SONConfigurationTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245, + sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245) + /sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245) + /sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs_tags_1245[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONConfigurationTransfer_ExtIEs_1245, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONConfigurationTransfer_ExtIEs_specs_1245 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1252 = { + sizeof(struct ASN_NGAP_SONInformationReply_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SONInformationReply_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_ASN_NGAP_extensionValue_1252 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReply_ExtIEs_1249[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1250, memb_ASN_NGAP_id_constraint_1249 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1251, memb_ASN_NGAP_criticality_constraint_1249 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1252, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1252, memb_ASN_NGAP_extensionValue_constraint_1249 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformationReply_ExtIEs_tag2el_1249[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReply_ExtIEs_specs_1249 = { + sizeof(struct ASN_NGAP_SONInformationReply_ExtIEs), + offsetof(struct ASN_NGAP_SONInformationReply_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SONInformationReply_ExtIEs_tag2el_1249, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs = { + "SONInformationReply-ExtIEs", + "SONInformationReply-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249, + sizeof(asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs_tags_1249[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformationReply_ExtIEs_1249, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformationReply_ExtIEs_specs_1249 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1256 = { + sizeof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SuccessfulHandoverReport_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_ASN_NGAP_extensionValue_1256 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_1253[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1254, memb_ASN_NGAP_id_constraint_1253 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1255, memb_ASN_NGAP_criticality_constraint_1253 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1256, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1256, memb_ASN_NGAP_extensionValue_constraint_1253 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tag2el_1253[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_specs_1253 = { + sizeof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs), + offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tag2el_1253, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs = { + "SuccessfulHandoverReport-Item-ExtIEs", + "SuccessfulHandoverReport-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253, + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253[0]), /* 1 */ + asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_tags_1253[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_1253, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_specs_1253 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1260[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.SgNB_UE_X2AP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SgNB-UE-X2AP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.UEHistoryInformationFromTheUE), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEHistoryInformationFromTheUE" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.SourceNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_SourceNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SourceNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.MBS_ActiveSessionInformation_SourcetoTargetList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ActiveSessionInformation-SourcetoTargetList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.QMCConfigInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QMCConfigInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.NGAPIESupportInformationRequestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGAPIESupportInformationRequestList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1260[] = { 0, 3, 4, 5, 6, 1, 2 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1260[] = { 0, 5, 6, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1260[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* SgNB-UE-X2AP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* MBS-ActiveSessionInformation-SourcetoTargetList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 1 }, /* QMCConfigInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 0 }, /* NGAPIESupportInformationRequestList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* nR */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, -1, 0 }, /* sourceengNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1260 = { + sizeof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1260, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1260, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1260, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1260 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1260, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1257[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1258, memb_ASN_NGAP_id_constraint_1257 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1259, memb_ASN_NGAP_criticality_constraint_1257 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1260, + select_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1260, memb_ASN_NGAP_extensionValue_constraint_1257 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tag2el_1257[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_specs_1257 = { + sizeof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs), + offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tag2el_1257, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs = { + "SourceNGRANNode-ToTargetNGRANNode-TransparentContainer-ExtIEs", + "SourceNGRANNode-ToTargetNGRANNode-TransparentContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257, + sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257) + /sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257) + /sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_tags_1257[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1257, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_specs_1257 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1264 = { + sizeof(struct ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SourceRANNodeID_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_ASN_NGAP_extensionValue_1264 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceRANNodeID_ExtIEs_1261[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1262, memb_ASN_NGAP_id_constraint_1261 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1263, memb_ASN_NGAP_criticality_constraint_1261 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1264, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1264, memb_ASN_NGAP_extensionValue_constraint_1261 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceRANNodeID_ExtIEs_tag2el_1261[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceRANNodeID_ExtIEs_specs_1261 = { + sizeof(struct ASN_NGAP_SourceRANNodeID_ExtIEs), + offsetof(struct ASN_NGAP_SourceRANNodeID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SourceRANNodeID_ExtIEs_tag2el_1261, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs = { + "SourceRANNodeID-ExtIEs", + "SourceRANNodeID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261, + sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261) + /sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261) + /sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs_tags_1261[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceRANNodeID_ExtIEs_1261, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceRANNodeID_ExtIEs_specs_1261 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1268 = { + sizeof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SourceToTarget_AMFInformationReroute_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_ASN_NGAP_extensionValue_1268 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_1265[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1266, memb_ASN_NGAP_id_constraint_1265 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1267, memb_ASN_NGAP_criticality_constraint_1265 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1268, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1268, memb_ASN_NGAP_extensionValue_constraint_1265 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tag2el_1265[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_specs_1265 = { + sizeof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs), + offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tag2el_1265, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs = { + "SourceToTarget-AMFInformationReroute-ExtIEs", + "SourceToTarget-AMFInformationReroute-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265, + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_tags_1265[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_1265, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_specs_1265 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1272[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue, choice.ConfiguredTACIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_ConfiguredTACIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConfiguredTACIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue, choice.RAT_Information), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAT_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAT-Information" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1272[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, 0, 1 }, /* ConfiguredTACIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, -1, 0 } /* RAT-Information */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1272 = { + sizeof(struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1272, + 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_ASN_NGAP_extensionValue_1272 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1272, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SupportedTAItem_ExtIEs_1269[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1270, memb_ASN_NGAP_id_constraint_1269 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SupportedTAItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1271, memb_ASN_NGAP_criticality_constraint_1269 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1272, + select_SupportedTAItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1272, memb_ASN_NGAP_extensionValue_constraint_1269 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SupportedTAItem_ExtIEs_tag2el_1269[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SupportedTAItem_ExtIEs_specs_1269 = { + sizeof(struct ASN_NGAP_SupportedTAItem_ExtIEs), + offsetof(struct ASN_NGAP_SupportedTAItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SupportedTAItem_ExtIEs_tag2el_1269, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs = { + "SupportedTAItem-ExtIEs", + "SupportedTAItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269, + sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269[0]), /* 1 */ + asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs_tags_1269[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SupportedTAItem_ExtIEs_1269, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SupportedTAItem_ExtIEs_specs_1269 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1276 = { + sizeof(struct ASN_NGAP_TAI_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAI_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAI_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAI_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_ASN_NGAP_extensionValue_1276 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAI_ExtIEs_1273[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1274, memb_ASN_NGAP_id_constraint_1273 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1275, memb_ASN_NGAP_criticality_constraint_1273 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAI_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1276, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1276, memb_ASN_NGAP_extensionValue_constraint_1273 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAI_ExtIEs_tag2el_1273[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAI_ExtIEs_specs_1273 = { + sizeof(struct ASN_NGAP_TAI_ExtIEs), + offsetof(struct ASN_NGAP_TAI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAI_ExtIEs_tag2el_1273, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAI_ExtIEs = { + "TAI-ExtIEs", + "TAI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273, + sizeof(asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273) + /sizeof(asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273) + /sizeof(asn_DEF_ASN_NGAP_TAI_ExtIEs_tags_1273[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAI_ExtIEs_1273, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAI_ExtIEs_specs_1273 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1280 = { + sizeof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAIBroadcastEUTRA_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_ASN_NGAP_extensionValue_1280 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_1277[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1278, memb_ASN_NGAP_id_constraint_1277 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1279, memb_ASN_NGAP_criticality_constraint_1277 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1280, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1280, memb_ASN_NGAP_extensionValue_constraint_1277 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tag2el_1277[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_specs_1277 = { + sizeof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tag2el_1277, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs = { + "TAIBroadcastEUTRA-Item-ExtIEs", + "TAIBroadcastEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_tags_1277[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_1277, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_specs_1277 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1284 = { + sizeof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAIBroadcastNR_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_ASN_NGAP_extensionValue_1284 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_1281[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1282, memb_ASN_NGAP_id_constraint_1281 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1283, memb_ASN_NGAP_criticality_constraint_1281 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1284, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1284, memb_ASN_NGAP_extensionValue_constraint_1281 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tag2el_1281[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_specs_1281 = { + sizeof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tag2el_1281, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs = { + "TAIBroadcastNR-Item-ExtIEs", + "TAIBroadcastNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_tags_1281[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_1281, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_specs_1281 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1288 = { + sizeof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAICancelledEUTRA_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_ASN_NGAP_extensionValue_1288 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1288 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_1285[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1286, memb_ASN_NGAP_id_constraint_1285 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1287, memb_ASN_NGAP_criticality_constraint_1285 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1288, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1288, memb_ASN_NGAP_extensionValue_constraint_1285 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tag2el_1285[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_specs_1285 = { + sizeof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs), + offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tag2el_1285, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs = { + "TAICancelledEUTRA-Item-ExtIEs", + "TAICancelledEUTRA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285, + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_tags_1285[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_1285, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_specs_1285 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1292 = { + sizeof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAICancelledNR_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_ASN_NGAP_extensionValue_1292 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1292 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledNR_Item_ExtIEs_1289[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1290, memb_ASN_NGAP_id_constraint_1289 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1291, memb_ASN_NGAP_criticality_constraint_1289 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1292, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1292, memb_ASN_NGAP_extensionValue_constraint_1289 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tag2el_1289[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_Item_ExtIEs_specs_1289 = { + sizeof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs), + offsetof(struct ASN_NGAP_TAICancelledNR_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tag2el_1289, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs = { + "TAICancelledNR-Item-ExtIEs", + "TAICancelledNR-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289, + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs_tags_1289[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAICancelledNR_Item_ExtIEs_1289, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAICancelledNR_Item_ExtIEs_specs_1289 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1296 = { + sizeof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAIListForInactiveItem_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_ASN_NGAP_extensionValue_1296 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1296 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForInactiveItem_ExtIEs_1293[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1294, memb_ASN_NGAP_id_constraint_1293 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1295, memb_ASN_NGAP_criticality_constraint_1293 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1296, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1296, memb_ASN_NGAP_extensionValue_constraint_1293 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tag2el_1293[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForInactiveItem_ExtIEs_specs_1293 = { + sizeof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs), + offsetof(struct ASN_NGAP_TAIListForInactiveItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tag2el_1293, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs = { + "TAIListForInactiveItem-ExtIEs", + "TAIListForInactiveItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293, + sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs_tags_1293[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIListForInactiveItem_ExtIEs_1293, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIListForInactiveItem_ExtIEs_specs_1293 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1300 = { + sizeof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAIListForPagingItem_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_ASN_NGAP_extensionValue_1300 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1300 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForPagingItem_ExtIEs_1297[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1298, memb_ASN_NGAP_id_constraint_1297 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1299, memb_ASN_NGAP_criticality_constraint_1297 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1300, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1300, memb_ASN_NGAP_extensionValue_constraint_1297 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIListForPagingItem_ExtIEs_tag2el_1297[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForPagingItem_ExtIEs_specs_1297 = { + sizeof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs), + offsetof(struct ASN_NGAP_TAIListForPagingItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIListForPagingItem_ExtIEs_tag2el_1297, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs = { + "TAIListForPagingItem-ExtIEs", + "TAIListForPagingItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297, + sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs_tags_1297[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIListForPagingItem_ExtIEs_1297, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIListForPagingItem_ExtIEs_specs_1297 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1304 = { + sizeof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TAINSAGSupportItem_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_ASN_NGAP_extensionValue_1304 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1304 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAINSAGSupportItem_ExtIEs_1301[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1302, memb_ASN_NGAP_id_constraint_1301 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1303, memb_ASN_NGAP_criticality_constraint_1301 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1304, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1304, memb_ASN_NGAP_extensionValue_constraint_1301 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tag2el_1301[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportItem_ExtIEs_specs_1301 = { + sizeof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs), + offsetof(struct ASN_NGAP_TAINSAGSupportItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tag2el_1301, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs = { + "TAINSAGSupportItem-ExtIEs", + "TAINSAGSupportItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301, + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs_tags_1301[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAINSAGSupportItem_ExtIEs_1301, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAINSAGSupportItem_ExtIEs_specs_1301 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1308 = { + sizeof(struct ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargeteNB_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_ASN_NGAP_extensionValue_1308 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1308 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargeteNB_ID_ExtIEs_1305[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1306, memb_ASN_NGAP_id_constraint_1305 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1307, memb_ASN_NGAP_criticality_constraint_1305 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1308, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1308, memb_ASN_NGAP_extensionValue_constraint_1305 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargeteNB_ID_ExtIEs_tag2el_1305[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargeteNB_ID_ExtIEs_specs_1305 = { + sizeof(struct ASN_NGAP_TargeteNB_ID_ExtIEs), + offsetof(struct ASN_NGAP_TargeteNB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargeteNB_ID_ExtIEs_tag2el_1305, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs = { + "TargeteNB-ID-ExtIEs", + "TargeteNB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305, + sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305) + /sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305) + /sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs_tags_1305[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargeteNB_ID_ExtIEs_1305, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargeteNB_ID_ExtIEs_specs_1305 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1312 = { + sizeof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetHomeENB_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_ASN_NGAP_extensionValue_1312 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1312 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetHomeENB_ID_ExtIEs_1309[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1310, memb_ASN_NGAP_id_constraint_1309 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1311, memb_ASN_NGAP_criticality_constraint_1309 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1312, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1312, memb_ASN_NGAP_extensionValue_constraint_1309 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tag2el_1309[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetHomeENB_ID_ExtIEs_specs_1309 = { + sizeof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs), + offsetof(struct ASN_NGAP_TargetHomeENB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tag2el_1309, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs = { + "TargetHomeENB-ID-ExtIEs", + "TargetHomeENB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309, + sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309) + /sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309) + /sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs_tags_1309[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetHomeENB_ID_ExtIEs_1309, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetHomeENB_ID_ExtIEs_specs_1309 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1316[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.DAPSResponseInfoList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DAPSResponseInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DAPSResponseInfoList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.DirectForwardingPathAvailability), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DirectForwardingPathAvailability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.MBS_ActiveSessionInformation_TargettoSourceList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ActiveSessionInformation-TargettoSourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, choice.NGAPIESupportInformationResponseList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGAPIESupportInformationResponseList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1316[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1316[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1316[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* DirectForwardingPathAvailability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* DAPSResponseInfoList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* MBS-ActiveSessionInformation-TargettoSourceList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* NGAPIESupportInformationResponseList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1316 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1316, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1316, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1316, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1316 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1316, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1316 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1313[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1314, memb_ASN_NGAP_id_constraint_1313 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1315, memb_ASN_NGAP_criticality_constraint_1313 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1316, + select_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1316, memb_ASN_NGAP_extensionValue_constraint_1313 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tag2el_1313[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_specs_1313 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tag2el_1313, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs = { + "TargetNGRANNode-ToSourceNGRANNode-TransparentContainer-ExtIEs", + "TargetNGRANNode-ToSourceNGRANNode-TransparentContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313, + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_tags_1313[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1313, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_specs_1313 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1320[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue, choice.NGAPIESupportInformationResponseList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGAPIESupportInformationResponseList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1320[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NGAPIESupportInformationResponseList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1320 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1320, + 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_ASN_NGAP_extensionValue_1320 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1320, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1320 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1317[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1318, memb_ASN_NGAP_id_constraint_1317 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1319, memb_ASN_NGAP_criticality_constraint_1317 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1320, + select_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1320, memb_ASN_NGAP_extensionValue_constraint_1317 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tag2el_1317[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_specs_1317 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tag2el_1317, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs = { + "TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer-ExtIEs", + "TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317, + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_tags_1317[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1317, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_specs_1317 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1324 = { + sizeof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetNSSAI_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_ASN_NGAP_extensionValue_1324 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1324 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAI_Item_ExtIEs_1321[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1322, memb_ASN_NGAP_id_constraint_1321 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1323, memb_ASN_NGAP_criticality_constraint_1321 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1324, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1324, memb_ASN_NGAP_extensionValue_constraint_1321 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tag2el_1321[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_Item_ExtIEs_specs_1321 = { + sizeof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs), + offsetof(struct ASN_NGAP_TargetNSSAI_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tag2el_1321, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs = { + "TargetNSSAI-Item-ExtIEs", + "TargetNSSAI-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321, + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs_tags_1321[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNSSAI_Item_ExtIEs_1321, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNSSAI_Item_ExtIEs_specs_1321 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1328 = { + sizeof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetNSSAIInformation_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_ASN_NGAP_extensionValue_1328 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1328 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_1325[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1326, memb_ASN_NGAP_id_constraint_1325 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1327, memb_ASN_NGAP_criticality_constraint_1325 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1328, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1328, memb_ASN_NGAP_extensionValue_constraint_1325 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tag2el_1325[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_specs_1325 = { + sizeof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs), + offsetof(struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tag2el_1325, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs = { + "TargetNSSAIInformation-Item-ExtIEs", + "TargetNSSAIInformation-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325, + sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_tags_1325[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_1325, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_specs_1325 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1332 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetRANNodeID_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_ASN_NGAP_extensionValue_1332 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1332 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_ExtIEs_1329[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1330, memb_ASN_NGAP_id_constraint_1329 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1331, memb_ASN_NGAP_criticality_constraint_1329 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1332, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1332, memb_ASN_NGAP_extensionValue_constraint_1329 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_ExtIEs_tag2el_1329[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_ExtIEs_specs_1329 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_ExtIEs), + offsetof(struct ASN_NGAP_TargetRANNodeID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_ExtIEs_tag2el_1329, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs = { + "TargetRANNodeID-ExtIEs", + "TargetRANNodeID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs_tags_1329[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_ExtIEs_1329, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_ExtIEs_specs_1329 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1336 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetRANNodeID_RIM_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_ASN_NGAP_extensionValue_1336 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1336 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_1333[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1334, memb_ASN_NGAP_id_constraint_1333 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1335, memb_ASN_NGAP_criticality_constraint_1333 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1336, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1336, memb_ASN_NGAP_extensionValue_constraint_1333 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tag2el_1333[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_specs_1333 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs), + offsetof(struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tag2el_1333, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs = { + "TargetRANNodeID-RIM-ExtIEs", + "TargetRANNodeID-RIM-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_tags_1333[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_1333, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_specs_1333 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1340[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue, choice.NR_CGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NR-CGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1340[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NR-CGI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1340 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1340, + 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_ASN_NGAP_extensionValue_1340 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1340, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1340 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1337[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1338, memb_ASN_NGAP_id_constraint_1337 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TargetRANNodeID_SON_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1339, memb_ASN_NGAP_criticality_constraint_1337 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1340, + select_TargetRANNodeID_SON_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1340, memb_ASN_NGAP_extensionValue_constraint_1337 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tag2el_1337[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_specs_1337 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs), + offsetof(struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tag2el_1337, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs = { + "TargetRANNodeID-SON-ExtIEs", + "TargetRANNodeID-SON-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_tags_1337[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1337, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_specs_1337 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1344 = { + sizeof(struct ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TargetRNC_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_ASN_NGAP_extensionValue_1344 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1344 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRNC_ID_ExtIEs_1341[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1342, memb_ASN_NGAP_id_constraint_1341 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1343, memb_ASN_NGAP_criticality_constraint_1341 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1344, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1344, memb_ASN_NGAP_extensionValue_constraint_1341 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRNC_ID_ExtIEs_tag2el_1341[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRNC_ID_ExtIEs_specs_1341 = { + sizeof(struct ASN_NGAP_TargetRNC_ID_ExtIEs), + offsetof(struct ASN_NGAP_TargetRNC_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRNC_ID_ExtIEs_tag2el_1341, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs = { + "TargetRNC-ID-ExtIEs", + "TargetRNC-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341, + sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341) + /sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341) + /sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs_tags_1341[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRNC_ID_ExtIEs_1341, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRNC_ID_ExtIEs_specs_1341 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1348 = { + sizeof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TimeSyncAssistanceInfo_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_ASN_NGAP_extensionValue_1348 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1348 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_1345[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1346, memb_ASN_NGAP_id_constraint_1345 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1347, memb_ASN_NGAP_criticality_constraint_1345 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1348, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1348, memb_ASN_NGAP_extensionValue_constraint_1345 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tag2el_1345[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_specs_1345 = { + sizeof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs), + offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tag2el_1345, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs = { + "TimeSyncAssistanceInfo-ExtIEs", + "TimeSyncAssistanceInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345, + sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345) + /sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345) + /sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_tags_1345[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_1345, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_specs_1345 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1352 = { + sizeof(struct ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TNLAssociationItem_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_ASN_NGAP_extensionValue_1352 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1352 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TNLAssociationItem_ExtIEs_1349[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1350, memb_ASN_NGAP_id_constraint_1349 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1351, memb_ASN_NGAP_criticality_constraint_1349 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1352, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1352, memb_ASN_NGAP_extensionValue_constraint_1349 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TNLAssociationItem_ExtIEs_tag2el_1349[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNLAssociationItem_ExtIEs_specs_1349 = { + sizeof(struct ASN_NGAP_TNLAssociationItem_ExtIEs), + offsetof(struct ASN_NGAP_TNLAssociationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TNLAssociationItem_ExtIEs_tag2el_1349, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs = { + "TNLAssociationItem-ExtIEs", + "TNLAssociationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349, + sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs_tags_1349[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TNLAssociationItem_ExtIEs_1349, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TNLAssociationItem_ExtIEs_specs_1349 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1356 = { + sizeof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TooearlyIntersystemHO_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_ASN_NGAP_extensionValue_1356 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1356 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_1353[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1354, memb_ASN_NGAP_id_constraint_1353 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1355, memb_ASN_NGAP_criticality_constraint_1353 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1356, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1356, memb_ASN_NGAP_extensionValue_constraint_1353 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tag2el_1353[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_specs_1353 = { + sizeof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs), + offsetof(struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tag2el_1353, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs = { + "TooearlyIntersystemHO-ExtIEs", + "TooearlyIntersystemHO-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353, + sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353) + /sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353[0]), /* 1 */ + asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353) + /sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_tags_1353[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_1353, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_specs_1353 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1360[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue, choice.MDT_Configuration), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDT_Configuration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDT-Configuration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue, choice.URI_address), + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), + 0, + &asn_DEF_ASN_NGAP_URI_address, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "URI-address" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1360[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* MDT-Configuration */ + { (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 1, 0, 0 } /* URI-address */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1360 = { + sizeof(struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1360, + 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_ASN_NGAP_extensionValue_1360 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1360, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1360 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceActivation_ExtIEs_1357[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1358, memb_ASN_NGAP_id_constraint_1357 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TraceActivation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1359, memb_ASN_NGAP_criticality_constraint_1357 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1360, + select_TraceActivation_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1360, memb_ASN_NGAP_extensionValue_constraint_1357 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceActivation_ExtIEs_tag2el_1357[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceActivation_ExtIEs_specs_1357 = { + sizeof(struct ASN_NGAP_TraceActivation_ExtIEs), + offsetof(struct ASN_NGAP_TraceActivation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TraceActivation_ExtIEs_tag2el_1357, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceActivation_ExtIEs = { + "TraceActivation-ExtIEs", + "TraceActivation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357, + sizeof(asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357) + /sizeof(asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357) + /sizeof(asn_DEF_ASN_NGAP_TraceActivation_ExtIEs_tags_1357[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceActivation_ExtIEs_1357, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceActivation_ExtIEs_specs_1357 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1364 = { + sizeof(struct ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1364 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1364 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedMDT_ExtIEs_1361[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1362, memb_ASN_NGAP_id_constraint_1361 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1363, memb_ASN_NGAP_criticality_constraint_1361 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1364, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1364, memb_ASN_NGAP_extensionValue_constraint_1361 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBasedMDT_ExtIEs_tag2el_1361[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedMDT_ExtIEs_specs_1361 = { + sizeof(struct ASN_NGAP_TAIBasedMDT_ExtIEs), + offsetof(struct ASN_NGAP_TAIBasedMDT_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBasedMDT_ExtIEs_tag2el_1361, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs = { + "TAIBasedMDT-ExtIEs", + "TAIBasedMDT-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361, + sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs_tags_1361[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBasedMDT_ExtIEs_1361, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBasedMDT_ExtIEs_specs_1361 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1368 = { + sizeof(struct ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1368 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1368 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedQMC_ExtIEs_1365[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1366, memb_ASN_NGAP_id_constraint_1365 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1367, memb_ASN_NGAP_criticality_constraint_1365 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1368, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1368, memb_ASN_NGAP_extensionValue_constraint_1365 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBasedQMC_ExtIEs_tag2el_1365[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedQMC_ExtIEs_specs_1365 = { + sizeof(struct ASN_NGAP_TAIBasedQMC_ExtIEs), + offsetof(struct ASN_NGAP_TAIBasedQMC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBasedQMC_ExtIEs_tag2el_1365, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs = { + "TAIBasedQMC-ExtIEs", + "TAIBasedQMC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365, + sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs_tags_1365[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBasedQMC_ExtIEs_1365, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBasedQMC_ExtIEs_specs_1365 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1372 = { + sizeof(struct ASN_NGAP_TABasedQMC_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1372 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1372 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedQMC_ExtIEs_1369[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1370, memb_ASN_NGAP_id_constraint_1369 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1371, memb_ASN_NGAP_criticality_constraint_1369 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1372, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1372, memb_ASN_NGAP_extensionValue_constraint_1369 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TABasedQMC_ExtIEs_tag2el_1369[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedQMC_ExtIEs_specs_1369 = { + sizeof(struct ASN_NGAP_TABasedQMC_ExtIEs), + offsetof(struct ASN_NGAP_TABasedQMC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TABasedQMC_ExtIEs_tag2el_1369, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs = { + "TABasedQMC-ExtIEs", + "TABasedQMC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369, + sizeof(asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369) + /sizeof(asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369[0]), /* 1 */ + asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369) + /sizeof(asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs_tags_1369[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TABasedQMC_ExtIEs_1369, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TABasedQMC_ExtIEs_specs_1369 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1376 = { + sizeof(struct ASN_NGAP_TABasedMDT_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1376 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1376 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedMDT_ExtIEs_1373[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1374, memb_ASN_NGAP_id_constraint_1373 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1375, memb_ASN_NGAP_criticality_constraint_1373 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1376, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1376, memb_ASN_NGAP_extensionValue_constraint_1373 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TABasedMDT_ExtIEs_tag2el_1373[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedMDT_ExtIEs_specs_1373 = { + sizeof(struct ASN_NGAP_TABasedMDT_ExtIEs), + offsetof(struct ASN_NGAP_TABasedMDT_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TABasedMDT_ExtIEs_tag2el_1373, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs = { + "TABasedMDT-ExtIEs", + "TABasedMDT-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373, + sizeof(asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373) + /sizeof(asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373[0]), /* 1 */ + asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373) + /sizeof(asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs_tags_1373[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TABasedMDT_ExtIEs_1373, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TABasedMDT_ExtIEs_specs_1373 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1380[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue, choice.SurvivalTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_SurvivalTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SurvivalTime" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1380[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 } /* SurvivalTime */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1380 = { + sizeof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1380, + 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_ASN_NGAP_extensionValue_1380 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1380, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1380 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1377[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1378, memb_ASN_NGAP_id_constraint_1377 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TSCAssistanceInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1379, memb_ASN_NGAP_criticality_constraint_1377 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1380, + select_TSCAssistanceInformation_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1380, memb_ASN_NGAP_extensionValue_constraint_1377 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tag2el_1377[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCAssistanceInformation_ExtIEs_specs_1377 = { + sizeof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs), + offsetof(struct ASN_NGAP_TSCAssistanceInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tag2el_1377, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs = { + "TSCAssistanceInformation-ExtIEs", + "TSCAssistanceInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377, + sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377) + /sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377[0]), /* 1 */ + asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377) + /sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs_tags_1377[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1377, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TSCAssistanceInformation_ExtIEs_specs_1377 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1384 = { + sizeof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_TSCTrafficCharacteristics_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_ASN_NGAP_extensionValue_1384 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1384 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_1381[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1382, memb_ASN_NGAP_id_constraint_1381 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1383, memb_ASN_NGAP_criticality_constraint_1381 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1384, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1384, memb_ASN_NGAP_extensionValue_constraint_1381 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tag2el_1381[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_specs_1381 = { + sizeof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs), + offsetof(struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tag2el_1381, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs = { + "TSCTrafficCharacteristics-ExtIEs", + "TSCTrafficCharacteristics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381, + sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381) + /sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381[0]), /* 1 */ + asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381) + /sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_tags_1381[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_1381, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_specs_1381 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1388 = { + sizeof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEAggregateMaximumBitRate_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_ASN_NGAP_extensionValue_1388 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1388 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_1385[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1386, memb_ASN_NGAP_id_constraint_1385 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1387, memb_ASN_NGAP_criticality_constraint_1385 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1388, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1388, memb_ASN_NGAP_extensionValue_constraint_1385 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tag2el_1385[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_specs_1385 = { + sizeof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs), + offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tag2el_1385, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs = { + "UEAggregateMaximumBitRate-ExtIEs", + "UEAggregateMaximumBitRate-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385, + sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385) + /sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385) + /sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_tags_1385[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_1385, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_specs_1385 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1392 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEAppLayerMeasInfoItem_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_ASN_NGAP_extensionValue_1392 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1392 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_1389[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1390, memb_ASN_NGAP_id_constraint_1389 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1391, memb_ASN_NGAP_criticality_constraint_1389 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1392, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1392, memb_ASN_NGAP_extensionValue_constraint_1389 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tag2el_1389[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_specs_1389 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs), + offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tag2el_1389, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs = { + "UEAppLayerMeasInfoItem-ExtIEs", + "UEAppLayerMeasInfoItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389, + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_tags_1389[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_1389, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_specs_1389 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1396 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEAppLayerMeasConfigInfo_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_ASN_NGAP_extensionValue_1396 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1396 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_1393[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1394, memb_ASN_NGAP_id_constraint_1393 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1395, memb_ASN_NGAP_criticality_constraint_1393 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1396, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1396, memb_ASN_NGAP_extensionValue_constraint_1393 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tag2el_1393[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_specs_1393 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs), + offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tag2el_1393, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs = { + "UEAppLayerMeasConfigInfo-ExtIEs", + "UEAppLayerMeasConfigInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393, + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_tags_1393[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_1393, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_specs_1393 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1400 = { + sizeof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_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_ASN_NGAP_extensionValue_1400 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1400 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_1397[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1398, memb_ASN_NGAP_id_constraint_1397 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1399, memb_ASN_NGAP_criticality_constraint_1397 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1400, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1400, memb_ASN_NGAP_extensionValue_constraint_1397 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tag2el_1397[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_specs_1397 = { + sizeof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs), + offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tag2el_1397, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs = { + "UE-associatedLogicalNG-connectionItem-ExtIEs", + "UE-associatedLogicalNG-connectionItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397, + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_tags_1397[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_1397, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_specs_1397 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1404 = { + sizeof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEContextResumeRequestTransfer_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_ASN_NGAP_extensionValue_1404 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1404 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_1401[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1402, memb_ASN_NGAP_id_constraint_1401 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1403, memb_ASN_NGAP_criticality_constraint_1401 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1404, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1404, memb_ASN_NGAP_extensionValue_constraint_1401 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tag2el_1401[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_specs_1401 = { + sizeof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tag2el_1401, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs = { + "UEContextResumeRequestTransfer-ExtIEs", + "UEContextResumeRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_tags_1401[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_1401, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_specs_1401 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1408 = { + sizeof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEContextResumeResponseTransfer_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_ASN_NGAP_extensionValue_1408 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1408 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_1405[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1406, memb_ASN_NGAP_id_constraint_1405 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1407, memb_ASN_NGAP_criticality_constraint_1405 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1408, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1408, memb_ASN_NGAP_extensionValue_constraint_1405 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tag2el_1405[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_specs_1405 = { + sizeof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs), + offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tag2el_1405, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs = { + "UEContextResumeResponseTransfer-ExtIEs", + "UEContextResumeResponseTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_tags_1405[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_1405, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_specs_1405 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1412 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEContextSuspendRequestTransfer_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_ASN_NGAP_extensionValue_1412 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1412 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_1409[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1410, memb_ASN_NGAP_id_constraint_1409 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1411, memb_ASN_NGAP_criticality_constraint_1409 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1412, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1412, memb_ASN_NGAP_extensionValue_constraint_1409 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tag2el_1409[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_specs_1409 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs), + offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tag2el_1409, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs = { + "UEContextSuspendRequestTransfer-ExtIEs", + "UEContextSuspendRequestTransfer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_tags_1409[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_1409, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_specs_1409 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1416 = { + sizeof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1416 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1416 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_1413[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1414, memb_ASN_NGAP_id_constraint_1413 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1415, memb_ASN_NGAP_criticality_constraint_1413 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1416, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1416, memb_ASN_NGAP_extensionValue_constraint_1413 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tag2el_1413[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_specs_1413 = { + sizeof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs), + offsetof(struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tag2el_1413, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs = { + "UE-DifferentiationInfo-ExtIEs", + "UE-DifferentiationInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413, + sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413) + /sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413) + /sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_tags_1413[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_1413, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_specs_1413 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1420 = { + sizeof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UE_NGAP_ID_pair_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_ASN_NGAP_extensionValue_1420 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1420 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_1417[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1418, memb_ASN_NGAP_id_constraint_1417 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1419, memb_ASN_NGAP_criticality_constraint_1417 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1420, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1420, memb_ASN_NGAP_extensionValue_constraint_1417 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tag2el_1417[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_specs_1417 = { + sizeof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs), + offsetof(struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tag2el_1417, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs = { + "UE-NGAP-ID-pair-ExtIEs", + "UE-NGAP-ID-pair-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417, + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_tags_1417[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_1417, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_specs_1417 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1424 = { + sizeof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UEPresenceInAreaOfInterestItem_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_ASN_NGAP_extensionValue_1424 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1424 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_1421[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1422, memb_ASN_NGAP_id_constraint_1421 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1423, memb_ASN_NGAP_criticality_constraint_1421 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1424, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1424, memb_ASN_NGAP_extensionValue_constraint_1421 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tag2el_1421[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_specs_1421 = { + sizeof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs), + offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tag2el_1421, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs = { + "UEPresenceInAreaOfInterestItem-ExtIEs", + "UEPresenceInAreaOfInterestItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421, + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_tags_1421[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_1421, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_specs_1421 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1428[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue, choice.UERadioCapabilityForPagingOfNB_IoT), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityForPagingOfNB-IoT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1428[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* UERadioCapabilityForPagingOfNB-IoT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1428 = { + sizeof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1428, + 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_ASN_NGAP_extensionValue_1428 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1428, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1428 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1425[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1426, memb_ASN_NGAP_id_constraint_1425 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityForPaging_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1427, memb_ASN_NGAP_criticality_constraint_1425 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1428, + select_UERadioCapabilityForPaging_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1428, memb_ASN_NGAP_extensionValue_constraint_1425 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tag2el_1425[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_specs_1425 = { + sizeof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tag2el_1425, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs = { + "UERadioCapabilityForPaging-ExtIEs", + "UERadioCapabilityForPaging-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_tags_1425[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1425, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_specs_1425 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1432 = { + sizeof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1432 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1432 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UESecurityCapabilities_ExtIEs_1429[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1430, memb_ASN_NGAP_id_constraint_1429 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1431, memb_ASN_NGAP_criticality_constraint_1429 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1432, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1432, memb_ASN_NGAP_extensionValue_constraint_1429 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UESecurityCapabilities_ExtIEs_tag2el_1429[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESecurityCapabilities_ExtIEs_specs_1429 = { + sizeof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs), + offsetof(struct ASN_NGAP_UESecurityCapabilities_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UESecurityCapabilities_ExtIEs_tag2el_1429, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs = { + "UESecurityCapabilities-ExtIEs", + "UESecurityCapabilities-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429, + sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429) + /sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429[0]), /* 1 */ + asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429) + /sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs_tags_1429[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UESecurityCapabilities_ExtIEs_1429, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UESecurityCapabilities_ExtIEs_specs_1429 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1436 = { + sizeof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UESliceMaximumBitRateItem_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_ASN_NGAP_extensionValue_1436 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1436 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_1433[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1434, memb_ASN_NGAP_id_constraint_1433 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1435, memb_ASN_NGAP_criticality_constraint_1433 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1436, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1436, memb_ASN_NGAP_extensionValue_constraint_1433 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tag2el_1433[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_specs_1433 = { + sizeof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs), + offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tag2el_1433, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs = { + "UESliceMaximumBitRateItem-ExtIEs", + "UESliceMaximumBitRateItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433, + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433[0]), /* 1 */ + asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_tags_1433[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_1433, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_specs_1433 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1440 = { + sizeof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UL_CP_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_ASN_NGAP_extensionValue_1440 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1440 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_1437[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1438, memb_ASN_NGAP_id_constraint_1437 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1439, memb_ASN_NGAP_criticality_constraint_1437 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1440, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1440, memb_ASN_NGAP_extensionValue_constraint_1437 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tag2el_1437[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_specs_1437 = { + sizeof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs), + offsetof(struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tag2el_1437, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs = { + "UL-CP-SecurityInformation-ExtIEs", + "UL-CP-SecurityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437, + sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437) + /sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437) + /sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_tags_1437[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_1437, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_specs_1437 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1444[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue, choice.UPTransportLayerInformation_1), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1444[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1444 = { + sizeof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1444, + 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_ASN_NGAP_extensionValue_1444 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1444, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1444 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1441[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1442, memb_ASN_NGAP_id_constraint_1441 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UL_NGU_UP_TNLModifyItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1443, memb_ASN_NGAP_criticality_constraint_1441 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1444, + select_UL_NGU_UP_TNLModifyItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1444, memb_ASN_NGAP_extensionValue_constraint_1441 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tag2el_1441[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_specs_1441 = { + sizeof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs), + offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tag2el_1441, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs = { + "UL-NGU-UP-TNLModifyItem-ExtIEs", + "UL-NGU-UP-TNLModifyItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441, + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_tags_1441[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1441, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_specs_1441 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1448 = { + sizeof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UnavailableGUAMIItem_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_ASN_NGAP_extensionValue_1448 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1448 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_1445[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1446, memb_ASN_NGAP_id_constraint_1445 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1447, memb_ASN_NGAP_criticality_constraint_1445 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1448, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1448, memb_ASN_NGAP_extensionValue_constraint_1445 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tag2el_1445[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_specs_1445 = { + sizeof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs), + offsetof(struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tag2el_1445, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs = { + "UnavailableGUAMIItem-ExtIEs", + "UnavailableGUAMIItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445, + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445[0]), /* 1 */ + asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_tags_1445[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_1445, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_specs_1445 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1452[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue, choice.CommonNetworkInstance), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_CommonNetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CommonNetworkInstance" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1452[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* CommonNetworkInstance */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1452 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1452, + 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_ASN_NGAP_extensionValue_1452 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1452, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1452 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1449[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1450, memb_ASN_NGAP_id_constraint_1449 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UPTransportLayerInformationItem_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1451, memb_ASN_NGAP_criticality_constraint_1449 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1452, + select_UPTransportLayerInformationItem_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1452, memb_ASN_NGAP_extensionValue_constraint_1449 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tag2el_1449[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_specs_1449 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs), + offsetof(struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tag2el_1449, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs = { + "UPTransportLayerInformationItem-ExtIEs", + "UPTransportLayerInformationItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_tags_1449[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1449, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_specs_1449 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1456 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UPTransportLayerInformationPairItem_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_ASN_NGAP_extensionValue_1456 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1456 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_1453[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1454, memb_ASN_NGAP_id_constraint_1453 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1455, memb_ASN_NGAP_criticality_constraint_1453 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1456, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1456, memb_ASN_NGAP_extensionValue_constraint_1453 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tag2el_1453[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_specs_1453 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs), + offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tag2el_1453, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs = { + "UPTransportLayerInformationPairItem-ExtIEs", + "UPTransportLayerInformationPairItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_tags_1453[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_1453, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_specs_1453 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1460[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue, choice.NGRAN_CGI), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRAN-CGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1460[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1460 = { + sizeof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1460, + 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_ASN_NGAP_extensionValue_1460 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1460, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1460 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1457[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1458, memb_ASN_NGAP_id_constraint_1457 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationEUTRA_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1459, memb_ASN_NGAP_criticality_constraint_1457 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1460, + select_UserLocationInformationEUTRA_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1460, memb_ASN_NGAP_extensionValue_constraint_1457 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tag2el_1457[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_specs_1457 = { + sizeof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tag2el_1457, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs = { + "UserLocationInformationEUTRA-ExtIEs", + "UserLocationInformationEUTRA-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_tags_1457[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1457, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_specs_1457 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1464[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue, choice.TAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1464[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TAI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1464 = { + sizeof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1464, + 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_ASN_NGAP_extensionValue_1464 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1464, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1464 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1461[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1462, memb_ASN_NGAP_id_constraint_1461 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationN3IWF_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1463, memb_ASN_NGAP_criticality_constraint_1461 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1464, + select_UserLocationInformationN3IWF_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1464, memb_ASN_NGAP_extensionValue_constraint_1461 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tag2el_1461[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_specs_1461 = { + sizeof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tag2el_1461, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs = { + "UserLocationInformationN3IWF-ExtIEs", + "UserLocationInformationN3IWF-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_tags_1461[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1461, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_specs_1461 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1468[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue, choice.TAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1468[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TAI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1468 = { + sizeof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1468, + 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_ASN_NGAP_extensionValue_1468 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1468, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1468 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1465[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1466, memb_ASN_NGAP_id_constraint_1465 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationTNGF_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1467, memb_ASN_NGAP_criticality_constraint_1465 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1468, + select_UserLocationInformationTNGF_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1468, memb_ASN_NGAP_extensionValue_constraint_1465 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tag2el_1465[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_specs_1465 = { + sizeof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tag2el_1465, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs = { + "UserLocationInformationTNGF-ExtIEs", + "UserLocationInformationTNGF-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_tags_1465[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1465, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_specs_1465 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1472[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue, choice.TAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1472[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* TAI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1472 = { + sizeof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1472, + 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_ASN_NGAP_extensionValue_1472 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1472, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1472 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1469[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1470, memb_ASN_NGAP_id_constraint_1469 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationTWIF_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1471, memb_ASN_NGAP_criticality_constraint_1469 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1472, + select_UserLocationInformationTWIF_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1472, memb_ASN_NGAP_extensionValue_constraint_1469 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tag2el_1469[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_specs_1469 = { + sizeof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tag2el_1469, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs = { + "UserLocationInformationTWIF-ExtIEs", + "UserLocationInformationTWIF-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_tags_1469[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1469, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_specs_1469 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1476[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue, choice.NGRAN_CGI), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRAN-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue, choice.NID), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_NID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue, choice.NRNTNTAIInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRNTNTAIInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRNTNTAIInformation" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_to_canonical_1476[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_extensionValue_from_canonical_1476[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1476[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, 0, 0 }, /* NID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* NRNTNTAIInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1476 = { + sizeof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1476, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_extensionValue_to_canonical_1476, + asn_MAP_ASN_NGAP_extensionValue_from_canonical_1476, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_extensionValue_1476 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1476, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1476 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationNR_ExtIEs_1473[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1474, memb_ASN_NGAP_id_constraint_1473 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationNR_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1475, memb_ASN_NGAP_criticality_constraint_1473 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1476, + select_UserLocationInformationNR_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1476, memb_ASN_NGAP_extensionValue_constraint_1473 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationNR_ExtIEs_tag2el_1473[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationNR_ExtIEs_specs_1473 = { + sizeof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationNR_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationNR_ExtIEs_tag2el_1473, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs = { + "UserLocationInformationNR-ExtIEs", + "UserLocationInformationNR-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs_tags_1473[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationNR_ExtIEs_1473, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationNR_ExtIEs_specs_1473 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1480 = { + sizeof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_UserPlaneSecurityInformation_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_ASN_NGAP_extensionValue_1480 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1480 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_1477[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1478, memb_ASN_NGAP_id_constraint_1477 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1479, memb_ASN_NGAP_criticality_constraint_1477 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1480, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1480, memb_ASN_NGAP_extensionValue_constraint_1477 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tag2el_1477[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_specs_1477 = { + sizeof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs), + offsetof(struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tag2el_1477, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs = { + "UserPlaneSecurityInformation-ExtIEs", + "UserPlaneSecurityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477, + sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477) + /sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477) + /sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_tags_1477[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_1477, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_specs_1477 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1484 = { + sizeof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_VolumeTimedReport_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_ASN_NGAP_extensionValue_1484 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1484 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_1481[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1482, memb_ASN_NGAP_id_constraint_1481 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1483, memb_ASN_NGAP_criticality_constraint_1481 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1484, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1484, memb_ASN_NGAP_extensionValue_constraint_1481 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tag2el_1481[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_specs_1481 = { + sizeof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs), + offsetof(struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tag2el_1481, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs = { + "VolumeTimedReport-Item-ExtIEs", + "VolumeTimedReport-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481, + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481[0]), /* 1 */ + asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_tags_1481[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_1481, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_specs_1481 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1488 = { + sizeof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_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_ASN_NGAP_extensionValue_1488 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1488 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_1485[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1486, memb_ASN_NGAP_id_constraint_1485 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1487, memb_ASN_NGAP_criticality_constraint_1485 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1488, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1488, memb_ASN_NGAP_extensionValue_constraint_1485 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tag2el_1485[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_specs_1485 = { + sizeof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs), + offsetof(struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tag2el_1485, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs = { + "WLANMeasurementConfiguration-ExtIEs", + "WLANMeasurementConfiguration-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485, + sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_tags_1485[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_1485, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_specs_1485 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1492 = { + sizeof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_WLANMeasConfigNameItem_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_ASN_NGAP_extensionValue_1492 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1492 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_1489[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1490, memb_ASN_NGAP_id_constraint_1489 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1491, memb_ASN_NGAP_criticality_constraint_1489 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1492, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1492, memb_ASN_NGAP_extensionValue_constraint_1489 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tag2el_1489[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_specs_1489 = { + sizeof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs), + offsetof(struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tag2el_1489, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs = { + "WLANMeasConfigNameItem-ExtIEs", + "WLANMeasConfigNameItem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489, + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_tags_1489[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_1489, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_specs_1489 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1496 = { + sizeof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_WUS_Assistance_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_ASN_NGAP_extensionValue_1496 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1496 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WUS_Assistance_Information_ExtIEs_1493[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1494, memb_ASN_NGAP_id_constraint_1493 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1495, memb_ASN_NGAP_criticality_constraint_1493 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1496, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1496, memb_ASN_NGAP_extensionValue_constraint_1493 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tag2el_1493[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WUS_Assistance_Information_ExtIEs_specs_1493 = { + sizeof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs), + offsetof(struct ASN_NGAP_WUS_Assistance_Information_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tag2el_1493, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs = { + "WUS-Assistance-Information-ExtIEs", + "WUS-Assistance-Information-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493, + sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493) + /sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493[0]), /* 1 */ + asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493) + /sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs_tags_1493[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WUS_Assistance_Information_ExtIEs_1493, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WUS_Assistance_Information_ExtIEs_specs_1493 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_extensionValue_1500[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue, choice.SCTP_TLAs), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SCTP_TLAs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SCTP-TLAs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_extensionValue_tag2el_1500[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SCTP-TLAs */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1500 = { + sizeof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue *)0)->present), + asn_MAP_ASN_NGAP_extensionValue_tag2el_1500, + 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_ASN_NGAP_extensionValue_1500 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_extensionValue_1500, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1500 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_XnExtTLA_Item_ExtIEs_1497[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1498, memb_ASN_NGAP_id_constraint_1497 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_XnExtTLA_Item_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1499, memb_ASN_NGAP_criticality_constraint_1497 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1500, + select_XnExtTLA_Item_ExtIEs_ASN_NGAP_extensionValue_type, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1500, memb_ASN_NGAP_extensionValue_constraint_1497 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_XnExtTLA_Item_ExtIEs_tag2el_1497[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnExtTLA_Item_ExtIEs_specs_1497 = { + sizeof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs), + offsetof(struct ASN_NGAP_XnExtTLA_Item_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_XnExtTLA_Item_ExtIEs_tag2el_1497, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs = { + "XnExtTLA-Item-ExtIEs", + "XnExtTLA-Item-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497, + sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs_tags_1497[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_XnExtTLA_Item_ExtIEs_1497, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_XnExtTLA_Item_ExtIEs_specs_1497 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_extensionValue_specs_1504 = { + sizeof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue), + offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue, _asn_ctx), + offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue, present), + sizeof(((struct ASN_NGAP_XnTNLConfigurationInfo_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_ASN_NGAP_extensionValue_1504 = { + "extensionValue", + "extensionValue", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_extensionValue_specs_1504 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_1501[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolExtensionID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_1502, memb_ASN_NGAP_id_constraint_1501 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_1503, memb_ASN_NGAP_criticality_constraint_1501 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs, extensionValue), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_extensionValue_1504, + 0, + { 0, &asn_PER_memb_ASN_NGAP_extensionValue_constr_1504, memb_ASN_NGAP_extensionValue_constraint_1501 }, + 0, 0, /* No default value */ + "extensionValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tag2el_1501[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_specs_1501 = { + sizeof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs), + offsetof(struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tag2el_1501, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs = { + "XnTNLConfigurationInfo-ExtIEs", + "XnTNLConfigurationInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501, + sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501) + /sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501) + /sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_tags_1501[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_1501, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_specs_1501 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.h b/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.h new file mode 100644 index 0000000..5352926 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionField.h @@ -0,0 +1,8641 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolExtensionField_H_ +#define _ASN_NGAP_ProtocolExtensionField_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolExtensionID.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_Presence.h" +#include +#include +#include +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include "ASN_NGAP_NPN-PagingAssistanceInformation.h" +#include "ASN_NGAP_PagingAssisDataforCEcapabUE.h" +#include "ASN_NGAP_AlternativeQoSParaSetIndex.h" +#include "ASN_NGAP_NPN-Support.h" +#include "ASN_NGAP_ExtendedSliceSupportList.h" +#include "ASN_NGAP_TAINSAGSupportList.h" +#include "ASN_NGAP_EUTRA-PagingeDRXInformation.h" +#include "ASN_NGAP_ExtendedUEIdentityIndexValue.h" +#include "ASN_NGAP_UERadioCapabilityForPaging.h" +#include "ASN_NGAP_MicoAllPLMN.h" +#include "ASN_NGAP_NR-PagingeDRXInformation.h" +#include "ASN_NGAP_PagingCauseIndicationForVoiceService.h" +#include "ASN_NGAP_PEIPSassistanceInformation.h" +#include "ASN_NGAP_HashedUEIdentityIndexValue.h" +#include "ASN_NGAP_AssociatedQosFlowList.h" +#include "ASN_NGAP_DAPSRequestInfo.h" +#include "ASN_NGAP_ExtendedPacketDelayBudget.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_AlternativeQoSParaSetList.h" +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_QosFlowPerTNLInformationList.h" +#include "ASN_NGAP_UPTransportLayerInformationList.h" +#include "ASN_NGAP_DataForwardingResponseERABList.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_AdditionalDLUPTNLInformationForHOList.h" +#include "ASN_NGAP_RedundantPDUSessionInformation.h" +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_MBS-SupportIndicator.h" +#include "ASN_NGAP_ExtendedMobilityInformation.h" +#include "ASN_NGAP_LastVisitedPSCellList.h" +#include "ASN_NGAP_LocationReportingAdditionalInfo.h" +#include "ASN_NGAP_EarlyMeasurement.h" +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_CNTypeRestrictionsForServing.h" +#include "ASN_NGAP_CNTypeRestrictionsForEquivalent.h" +#include "ASN_NGAP_NPN-MobilityInformation.h" +#include "ASN_NGAP_IncludeBeamMeasurementsIndication.h" +#include "ASN_NGAP_BeamMeasurementsReportConfiguration.h" +#include "ASN_NGAP_ExtendedReportIntervalMDT.h" +#include "ASN_NGAP_M4ReportAmountMDT.h" +#include "ASN_NGAP_M5ReportAmountMDT.h" +#include "ASN_NGAP_M6ReportAmountMDT.h" +#include "ASN_NGAP_ExcessPacketDelayThresholdConfiguration.h" +#include "ASN_NGAP_M7ReportAmountMDT.h" +#include "ASN_NGAP_UPTransportLayerInformationPairList.h" +#include "ASN_NGAP_QosFlowParametersList.h" +#include "ASN_NGAP_DL-NGU-TNLInformationReused.h" +#include +#include "ASN_NGAP_SecondaryRATUsageInformation.h" +#include "ASN_NGAP_MBSSessionSetupResponseList.h" +#include "ASN_NGAP_MBSSessionFailedtoSetupList.h" +#include "ASN_NGAP_SecurityResult.h" +#include "ASN_NGAP_QosFlowPerTNLInformation.h" +#include "ASN_NGAP_S-NSSAI.h" +#include "ASN_NGAP_ExpectedUEActivityBehaviour.h" +#include "ASN_NGAP_QosFlowFeedbackList.h" +#include "ASN_NGAP_OnboardingSupport.h" +#include "ASN_NGAP_TSCTrafficCharacteristics.h" +#include "ASN_NGAP_RedundantQosFlowIndicator.h" +#include "ASN_NGAP_ULForwarding.h" +#include "ASN_NGAP_QosMonitoringRequest.h" +#include "ASN_NGAP_QosMonitoringReportingFrequency.h" +#include "ASN_NGAP_AlternativeQoSParaSetNotifyIndex.h" +#include "ASN_NGAP_BurstArrivalTime.h" +#include "ASN_NGAP_ExtendedRATRestrictionInformation.h" +#include "ASN_NGAP_PDUSessionPairID.h" +#include "ASN_NGAP_MaximumIntegrityProtectedDataRate.h" +#include "ASN_NGAP_GUAMIType.h" +#include "ASN_NGAP_SgNB-UE-X2AP-ID.h" +#include "ASN_NGAP_UEHistoryInformationFromTheUE.h" +#include "ASN_NGAP_SourceNodeID.h" +#include "ASN_NGAP_RAN-UE-NGAP-ID.h" +#include "ASN_NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h" +#include "ASN_NGAP_QMCConfigInfo.h" +#include "ASN_NGAP_NGAPIESupportInformationRequestList.h" +#include "ASN_NGAP_ConfiguredTACIndication.h" +#include "ASN_NGAP_RAT-Information.h" +#include "ASN_NGAP_DAPSResponseInfoList.h" +#include "ASN_NGAP_DirectForwardingPathAvailability.h" +#include "ASN_NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h" +#include "ASN_NGAP_NGAPIESupportInformationResponseList.h" +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_MDT-Configuration.h" +#include "ASN_NGAP_URI-address.h" +#include "ASN_NGAP_SurvivalTime.h" +#include "ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h" +#include "ASN_NGAP_CommonNetworkInstance.h" +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_NID.h" +#include "ASN_NGAP_NRNTNTAIInformation.h" +#include "ASN_NGAP_SCTP-TLAs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue_PR_UPTransportLayerInformation +} ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue_PR { + ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR_CPTransportLayerInformation +} ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR { + ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR_NPN_PagingAssistanceInformation, + ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR_PagingAssisDataforCEcapabUE +} ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR { + ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue_PR_AlternativeQoSParaSetIndex +} ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue_PR { + ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue_PR { + ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue_PR { + ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue_PR { + ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR { + ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR_NPN_Support, + ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR_ExtendedSliceSupportList, + ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR_TAINSAGSupportList +} ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR { + ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue_PR { + ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue_PR { + ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CandidateCellID_ExtIEs__extensionValue_PR { + ASN_NGAP_CandidateCellID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CandidateCellID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CandidatePCI_ExtIEs__extensionValue_PR { + ASN_NGAP_CandidatePCI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CandidatePCI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellType_ExtIEs__extensionValue_PR { + ASN_NGAP_CellType_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellType_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue_PR { + ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue_PR { + ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR { + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_EUTRA_PagingeDRXInformation, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_ExtendedUEIdentityIndexValue, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_UERadioCapabilityForPaging, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_MicoAllPLMN, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_NR_PagingeDRXInformation, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_PagingCauseIndicationForVoiceService, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_PEIPSassistanceInformation, + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR_HashedUEIdentityIndexValue +} ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue_PR { + ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue_PR { + ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue_PR { + ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue_PR { + ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue_PR { + ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue_PR { + ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue_PR { + ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue_PR { + ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue_PR { + ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue_PR_AssociatedQosFlowList +} ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue_PR_DAPSRequestInfo +} ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR { + ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget, + ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget_1, + ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget_2 +} ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR { + ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FirstDLCount_ExtIEs__extensionValue_PR { + ASN_NGAP_FirstDLCount_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FirstDLCount_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue_PR { + ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue_PR { + ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EPS_TAI_ExtIEs__extensionValue_PR { + ASN_NGAP_EPS_TAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EPS_TAI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR_TransportLayerAddress, + ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR_TransportLayerAddress_1 +} ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue_PR { + ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR { + ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue_PR { + ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue_PR { + ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue_PR { + ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue_PR { + ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue_PR { + ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FailureIndication_ExtIEs__extensionValue_PR { + ASN_NGAP_FailureIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FailureIndication_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue_PR { + ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue_PR { + ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue_PR { + ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue_PR { + ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue_PR { + ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue_PR { + ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue_PR { + ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue_PR_AlternativeQoSParaSetList +} ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue_PR_TAI +} ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GTPTunnel_ExtIEs__extensionValue_PR { + ASN_NGAP_GTPTunnel_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GTPTunnel_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_GUAMI_ExtIEs__extensionValue_PR { + ASN_NGAP_GUAMI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_GUAMI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList, + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationList, + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_DataForwardingResponseERABList, + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR_QosFlowListWithCause +} ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_AdditionalDLUPTNLInformationForHOList, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationList, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_DataForwardingResponseERABList, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation_1, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_RedundantPDUSessionInformation, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_GlobalRANNodeID, + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_MBS_SupportIndicator +} ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue_PR { + ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_HOReport_ExtIEs__extensionValue_PR { + ASN_NGAP_HOReport_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_HOReport_ExtIEs__extensionValue_PR_ExtendedMobilityInformation +} ASN_NGAP_HOReport_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue_PR { + ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue_PR { + ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue_PR { + ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue_PR { + ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue_PR { + ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue_PR { + ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue_PR { + ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LAI_ExtIEs__extensionValue_PR { + ASN_NGAP_LAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_LAI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue_PR { + ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue_PR_LastVisitedPSCellList +} ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue_PR { + ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue_PR_LocationReportingAdditionalInfo +} ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue_PR { + ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue_PR_EarlyMeasurement +} ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue_PR { + ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR { + ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR { + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR_PLMNIdentity, + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR_CNTypeRestrictionsForServing, + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR_CNTypeRestrictionsForEquivalent, + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR_NPN_MobilityInformation +} ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue_PR { + ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue_PR { + ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue_PR { + ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue_PR { + ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR_IncludeBeamMeasurementsIndication, + ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR_BeamMeasurementsReportConfiguration +} ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue_PR { + ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue_PR { + ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue_PR_ExtendedReportIntervalMDT +} ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M4Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_M4Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M4Configuration_ExtIEs__extensionValue_PR_M4ReportAmountMDT +} ASN_NGAP_M4Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M5Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_M5Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M5Configuration_ExtIEs__extensionValue_PR_M5ReportAmountMDT +} ASN_NGAP_M5Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR_M6ReportAmountMDT, + ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR_ExcessPacketDelayThresholdConfiguration +} ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_M7Configuration_ExtIEs__extensionValue_PR { + ASN_NGAP_M7Configuration_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_M7Configuration_ExtIEs__extensionValue_PR_M7ReportAmountMDT +} ASN_NGAP_M7Configuration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue_PR { + ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR { + ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget, + ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget_1 +} ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NR_CGI_ExtIEs__extensionValue_PR { + ASN_NGAP_NR_CGI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NR_CGI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue_PR { + ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue_PR { + ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue_PR { + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue_PR { + ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue_PR { + ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue_PR { + ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationPairList, + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationPairList_1, + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR_QosFlowParametersList +} ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_DL_NGU_TNLInformationReused, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList_1, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_RedundantPDUSessionInformation, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_GlobalRANNodeID, + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR_MBS_SupportIndicator +} ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue_PR { + ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue_PR { + ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue_PR_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer_ +} ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationPairList +} ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationPairList, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformation_1, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_UPTransportLayerInformationPairList_1, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_SecondaryRATUsageInformation, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_MBS_SupportIndicator, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_MBSSessionSetupResponseList, + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR_MBSSessionFailedtoSetupList +} ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_SecondaryRATUsageInformation, + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_SecurityResult, + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformation, + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList, + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR_GlobalRANNodeID +} ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR_S_NSSAI, + ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR_ExpectedUEActivityBehaviour +} ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue_PR_SecondaryRATUsageInformation +} ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR_SecondaryRATUsageInformation, + ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR_QosFlowFeedbackList +} ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue_PR_SecondaryRATUsageInformation +} ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue_PR_ExpectedUEActivityBehaviour +} ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue_PR_ExpectedUEActivityBehaviour +} ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue_PR_ExpectedUEActivityBehaviour +} ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformation, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_QosFlowPerTNLInformationList, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_RedundantPDUSessionInformation, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_GlobalRANNodeID, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_MBS_SupportIndicator, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_MBSSessionSetupResponseList, + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR_MBSSessionFailedtoSetupList +} ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue_PR_ExpectedUEActivityBehaviour +} ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue_PR { + ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue_PR { + ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR_NPN_Support, + ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR_ExtendedSliceSupportList, + ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR_OnboardingSupport +} ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue_PR { + ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue_PR_AlternativeQoSParaSetIndex +} ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR_TSCTrafficCharacteristics, + ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR_RedundantQosFlowIndicator +} ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue_PR_AlternativeQoSParaSetIndex +} ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR_ULForwarding, + ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR_TransportLayerAddress, + ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR_TransportLayerAddress_1 +} ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR_QosMonitoringRequest, + ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR_QosMonitoringReportingFrequency +} ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue_PR_AlternativeQoSParaSetNotifyIndex +} ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget, + ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR_ExtendedPacketDelayBudget_1, + ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR_BurstArrivalTime +} ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR_TSCTrafficCharacteristics, + ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR_RedundantQosFlowIndicator +} ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue_PR_AlternativeQoSParaSetIndex +} ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue_PR { + ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR { + ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue_PR_ExtendedRATRestrictionInformation +} ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue_PR { + ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue_PR { + ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue_PR { + ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue_PR { + ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue_PR_PDUSessionPairID +} ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_RIMInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_RIMInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_RIMInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue_PR { + ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SecurityContext_ExtIEs__extensionValue_PR { + ASN_NGAP_SecurityContext_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SecurityContext_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SecurityIndication_ExtIEs__extensionValue_PR { + ASN_NGAP_SecurityIndication_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_SecurityIndication_ExtIEs__extensionValue_PR_MaximumIntegrityProtectedDataRate +} ASN_NGAP_SecurityIndication_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SecurityResult_ExtIEs__extensionValue_PR { + ASN_NGAP_SecurityResult_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SecurityResult_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue_PR { + ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue_PR { + ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue_PR { + ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue_PR_GUAMIType +} ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue_PR { + ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_S_NSSAI_ExtIEs__extensionValue_PR { + ASN_NGAP_S_NSSAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_S_NSSAI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SONInformationReply_ExtIEs__extensionValue_PR { + ASN_NGAP_SONInformationReply_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SONInformationReply_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR { + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_SgNB_UE_X2AP_ID, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_UEHistoryInformationFromTheUE, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_SourceNodeID, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_RAN_UE_NGAP_ID, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_MBS_ActiveSessionInformation_SourcetoTargetList, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_QMCConfigInfo, + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_NGAPIESupportInformationRequestList +} ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue_PR { + ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue_PR { + ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR { + ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR_ConfiguredTACIndication, + ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR_RAT_Information +} ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAI_ExtIEs__extensionValue_PR { + ASN_NGAP_TAI_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAI_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue_PR { + ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_DAPSResponseInfoList, + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_DirectForwardingPathAvailability, + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_MBS_ActiveSessionInformation_TargettoSourceList, + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR_NGAPIESupportInformationResponseList +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue_PR_NGAPIESupportInformationResponseList +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue_PR_NR_CGI +} ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue_PR { + ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue_PR { + ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR { + ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR_MDT_Configuration, + ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR_URI_address +} ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue_PR { + ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TABasedQMC_ExtIEs__extensionValue_PR { + ASN_NGAP_TABasedQMC_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TABasedQMC_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TABasedMDT_ExtIEs__extensionValue_PR { + ASN_NGAP_TABasedMDT_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TABasedMDT_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue_PR_SurvivalTime +} ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue_PR { + ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue_PR { + ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue_PR { + ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue_PR { + ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue_PR { + ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue_PR_UERadioCapabilityForPagingOfNB_IoT +} ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue_PR { + ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR_UPTransportLayerInformation, + ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR_UPTransportLayerInformation_1 +} ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue_PR_CommonNetworkInstance +} ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue_PR { + ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue_PR { + ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue_PR_NGRAN_CGI +} ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue_PR { + ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue_PR_TAI +} ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue_PR { + ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue_PR_TAI +} ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue_PR { + ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue_PR_TAI +} ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR { + ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR_NGRAN_CGI, + ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR_NID, + ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR_NRNTNTAIInformation +} ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue_PR { + ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue_PR { + ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue_PR { + ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue_PR { + ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue_PR { + ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue_PR_NOTHING, /* No components present */ + ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue_PR_SCTP_TLAs +} ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue_PR; +typedef enum ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue_PR { + ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue_PR_NOTHING /* No components present */ + +} ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue_PR; + +/* ASN_NGAP_ProtocolExtensionField */ +typedef struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue { + ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_t; +typedef struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue { + ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AllocationAndRetentionPriority_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_t; +typedef struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue { + ASN_NGAP_AllowedNSSAI_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AllowedNSSAI_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AllowedNSSAI_Item_ExtIEs_t; +typedef struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue { + ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_t; +typedef struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue { + ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_t; +typedef struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue { + ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_t; +typedef struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue { + ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_t; +typedef struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue { + ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_CPTransportLayerInformation_t CPTransportLayerInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_t; +typedef struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue { + ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_t; +typedef struct ASN_NGAP_AreaOfInterest_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue { + ASN_NGAP_AreaOfInterest_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaOfInterest_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterest_ExtIEs_t; +typedef struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue { + ASN_NGAP_AreaOfInterestCellItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaOfInterestCellItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestCellItem_ExtIEs_t; +typedef struct ASN_NGAP_AreaOfInterestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue { + ASN_NGAP_AreaOfInterestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaOfInterestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestItem_ExtIEs_t; +typedef struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue { + ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_t; +typedef struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue { + ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaOfInterestTAIItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_t; +typedef struct ASN_NGAP_AssistanceDataForPaging_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue { + ASN_NGAP_AssistanceDataForPaging_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AssistanceDataForPaging_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NPN_PagingAssistanceInformation_t NPN_PagingAssistanceInformation; + ASN_NGAP_PagingAssisDataforCEcapabUE_t PagingAssisDataforCEcapabUE; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssistanceDataForPaging_ExtIEs_t; +typedef struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue { + ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_t; +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue { + ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue { + ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue { + ASN_NGAP_AssociatedQosFlowItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AssociatedQosFlowItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetIndex_t AlternativeQoSParaSetIndex; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AssociatedQosFlowItem_ExtIEs_t; +typedef struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue { + ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_t; +typedef struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue { + ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__extensionValue_PR present; + union ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_t; +typedef struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue { + ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_t; +typedef struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue { + ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__extensionValue_PR present; + union ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_t; +typedef struct ASN_NGAP_BroadcastPLMNItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue { + ASN_NGAP_BroadcastPLMNItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_BroadcastPLMNItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NPN_Support_t NPN_Support; + ASN_NGAP_ExtendedSliceSupportList_t ExtendedSliceSupportList; + ASN_NGAP_TAINSAGSupportList_t TAINSAGSupportList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastPLMNItem_ExtIEs_t; +typedef struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue { + ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_t; +typedef struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue { + ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_t; +typedef struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue { + ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue { + ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CandidateCellItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue { + ASN_NGAP_CandidateCellItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CandidateCellItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCellItem_ExtIEs_t; +typedef struct ASN_NGAP_CandidateCellID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CandidateCellID_ExtIEs__extensionValue { + ASN_NGAP_CandidateCellID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CandidateCellID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidateCellID_ExtIEs_t; +typedef struct ASN_NGAP_CandidatePCI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CandidatePCI_ExtIEs__extensionValue { + ASN_NGAP_CandidatePCI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CandidatePCI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CandidatePCI_ExtIEs_t; +typedef struct ASN_NGAP_Cell_CAGInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue { + ASN_NGAP_Cell_CAGInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_Cell_CAGInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Cell_CAGInformation_ExtIEs_t; +typedef struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue { + ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue { + ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellIDCancelledNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CellType_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellType_ExtIEs__extensionValue { + ASN_NGAP_CellType_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellType_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellType_ExtIEs_t; +typedef struct ASN_NGAP_CNAssistedRANTuning_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue { + ASN_NGAP_CNAssistedRANTuning_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CNAssistedRANTuning_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CNAssistedRANTuning_ExtIEs_t; +typedef struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue { + ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_t; +typedef struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue { + ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue { + ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_t; +typedef struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue { + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_EUTRA_PagingeDRXInformation_t EUTRA_PagingeDRXInformation; + ASN_NGAP_ExtendedUEIdentityIndexValue_t ExtendedUEIdentityIndexValue; + ASN_NGAP_UERadioCapabilityForPaging_t UERadioCapabilityForPaging; + ASN_NGAP_MicoAllPLMN_t MicoAllPLMN; + ASN_NGAP_NR_PagingeDRXInformation_t NR_PagingeDRXInformation; + ASN_NGAP_PagingCauseIndicationForVoiceService_t PagingCauseIndicationForVoiceService; + ASN_NGAP_PEIPSassistanceInformation_t PEIPSassistanceInformation; + ASN_NGAP_HashedUEIdentityIndexValue_t HashedUEIdentityIndexValue; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_t; +typedef struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue { + ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__extensionValue_PR present; + union ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_t; +typedef struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue { + ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__extensionValue_PR present; + union ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_t; +typedef struct ASN_NGAP_CriticalityDiagnostics_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue { + ASN_NGAP_CriticalityDiagnostics_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CriticalityDiagnostics_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CriticalityDiagnostics_ExtIEs_t; +typedef struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue { + ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_t; +typedef struct ASN_NGAP_CellBasedMDT_NR_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue { + ASN_NGAP_CellBasedMDT_NR_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellBasedMDT_NR_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedMDT_NR_ExtIEs_t; +typedef struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue { + ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_t; +typedef struct ASN_NGAP_CellBasedQMC_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue { + ASN_NGAP_CellBasedQMC_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CellBasedQMC_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellBasedQMC_ExtIEs_t; +typedef struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue { + ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_t; +typedef struct ASN_NGAP_DAPSRequestInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue { + ASN_NGAP_DAPSRequestInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DAPSRequestInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSRequestInfo_ExtIEs_t; +typedef struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue { + ASN_NGAP_DAPSResponseInfoItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DAPSResponseInfoItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSResponseInfoItem_ExtIEs_t; +typedef struct ASN_NGAP_DAPSResponseInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue { + ASN_NGAP_DAPSResponseInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DAPSResponseInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DAPSResponseInfo_ExtIEs_t; +typedef struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue { + ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_t; +typedef struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue { + ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DL_CP_SecurityInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_t; +typedef struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue { + ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AssociatedQosFlowList_t AssociatedQosFlowList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusDL12_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue { + ASN_NGAP_DRBStatusDL12_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBStatusDL12_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusDL12_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusDL18_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue { + ASN_NGAP_DRBStatusDL18_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBStatusDL18_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusDL18_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusUL12_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue { + ASN_NGAP_DRBStatusUL12_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBStatusUL12_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusUL12_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusUL18_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue { + ASN_NGAP_DRBStatusUL18_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBStatusUL18_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBStatusUL18_ExtIEs_t; +typedef struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue { + ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_DAPSRequestInfo_t DAPSRequestInfo; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_t; +typedef struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue { + ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__extensionValue_PR present; + union ASN_NGAP_Dynamic5QIDescriptor_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget; + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget_1; + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget_2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_t; +typedef struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue { + ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_t; +typedef struct ASN_NGAP_FirstDLCount_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FirstDLCount_ExtIEs__extensionValue { + ASN_NGAP_FirstDLCount_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FirstDLCount_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FirstDLCount_ExtIEs_t; +typedef struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue { + ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_t; +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue { + ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue { + ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue { + ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EmergencyFallbackIndicator_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_t; +typedef struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue { + ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EndpointIPAddressAndPort_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_t; +typedef struct ASN_NGAP_EPS_TAI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EPS_TAI_ExtIEs__extensionValue { + ASN_NGAP_EPS_TAI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EPS_TAI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EPS_TAI_ExtIEs_t; +typedef struct ASN_NGAP_E_RABInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue { + ASN_NGAP_E_RABInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_E_RABInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TransportLayerAddress_t TransportLayerAddress; + ASN_NGAP_TransportLayerAddress_t TransportLayerAddress_1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_E_RABInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_EUTRA_CGI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue { + ASN_NGAP_EUTRA_CGI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRA_CGI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_CGI_ExtIEs_t; +typedef struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue { + ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_t; +typedef struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue { + ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_t; +typedef struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue { + ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_t; +typedef struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue { + ASN_NGAP_ExpectedUEBehaviour_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ExpectedUEBehaviour_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEBehaviour_ExtIEs_t; +typedef struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue { + ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_t; +typedef struct ASN_NGAP_Extended_AMFName_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue { + ASN_NGAP_Extended_AMFName_ExtIEs__extensionValue_PR present; + union ASN_NGAP_Extended_AMFName_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Extended_AMFName_ExtIEs_t; +typedef struct ASN_NGAP_Extended_RANNodeName_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue { + ASN_NGAP_Extended_RANNodeName_ExtIEs__extensionValue_PR present; + union ASN_NGAP_Extended_RANNodeName_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_Extended_RANNodeName_ExtIEs_t; +typedef struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue { + ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_t; +typedef struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue { + ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_t; +typedef struct ASN_NGAP_FailureIndication_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FailureIndication_ExtIEs__extensionValue { + ASN_NGAP_FailureIndication_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FailureIndication_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FailureIndication_ExtIEs_t; +typedef struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue { + ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_t; +typedef struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue { + ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_t; +typedef struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue { + ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_t; +typedef struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue { + ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_t; +typedef struct ASN_NGAP_FiveG_S_TMSI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue { + ASN_NGAP_FiveG_S_TMSI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FiveG_S_TMSI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FiveG_S_TMSI_ExtIEs_t; +typedef struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue { + ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_t; +typedef struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue { + ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_t; +typedef struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue { + ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__extensionValue_PR present; + union ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_t; +typedef struct ASN_NGAP_GBR_QosInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue { + ASN_NGAP_GBR_QosInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GBR_QosInformation_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetList_t AlternativeQoSParaSetList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GBR_QosInformation_ExtIEs_t; +typedef struct ASN_NGAP_GlobalCable_ID_new_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue { + ASN_NGAP_GlobalCable_ID_new_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalCable_ID_new_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalCable_ID_new_ExtIEs_t; +typedef struct ASN_NGAP_GlobalENB_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalENB_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalENB_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalENB_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalGNB_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalGNB_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalGNB_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalGNB_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalN3IWF_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalN3IWF_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalN3IWF_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalLine_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalLine_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalLine_ID_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TAI_t TAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalLine_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalNgENB_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalNgENB_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalNgENB_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalNgENB_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalTNGF_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalTNGF_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalTNGF_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalTNGF_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalTWIF_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalTWIF_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalTWIF_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalTWIF_ID_ExtIEs_t; +typedef struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue { + ASN_NGAP_GlobalW_AGF_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GlobalW_AGF_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GlobalW_AGF_ID_ExtIEs_t; +typedef struct ASN_NGAP_GTPTunnel_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GTPTunnel_ExtIEs__extensionValue { + ASN_NGAP_GTPTunnel_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GTPTunnel_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GTPTunnel_ExtIEs_t; +typedef struct ASN_NGAP_GUAMI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GUAMI_ExtIEs__extensionValue { + ASN_NGAP_GUAMI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_GUAMI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_GUAMI_ExtIEs_t; +typedef struct ASN_NGAP_HandoverCommandTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue { + ASN_NGAP_HandoverCommandTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HandoverCommandTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList; + ASN_NGAP_DataForwardingResponseERABList_t DataForwardingResponseERABList; + ASN_NGAP_QosFlowListWithCause_t QosFlowListWithCause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverCommandTransfer_ExtIEs_t; +typedef struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue { + ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AdditionalDLUPTNLInformationForHOList_t AdditionalDLUPTNLInformationForHOList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList; + ASN_NGAP_DataForwardingResponseERABList_t DataForwardingResponseERABList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation_1; + ASN_NGAP_RedundantPDUSessionInformation_t RedundantPDUSessionInformation; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_MBS_SupportIndicator_t MBS_SupportIndicator; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_t; +typedef struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue { + ASN_NGAP_HandoverRequiredTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HandoverRequiredTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequiredTransfer_ExtIEs_t; +typedef struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_HFCNode_ID_new_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue { + ASN_NGAP_HFCNode_ID_new_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HFCNode_ID_new_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HFCNode_ID_new_ExtIEs_t; +typedef struct ASN_NGAP_HOReport_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HOReport_ExtIEs__extensionValue { + ASN_NGAP_HOReport_ExtIEs__extensionValue_PR present; + union ASN_NGAP_HOReport_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedMobilityInformation_t ExtendedMobilityInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HOReport_ExtIEs_t; +typedef struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue { + ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__extensionValue_PR present; + union ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_t; +typedef struct ASN_NGAP_ImmediateMDTNr_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue { + ASN_NGAP_ImmediateMDTNr_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ImmediateMDTNr_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ImmediateMDTNr_ExtIEs_t; +typedef struct ASN_NGAP_InterSystemFailureIndication_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue { + ASN_NGAP_InterSystemFailureIndication_ExtIEs__extensionValue_PR present; + union ASN_NGAP_InterSystemFailureIndication_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InterSystemFailureIndication_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue { + ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONeNBID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue { + ASN_NGAP_IntersystemSONeNBID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemSONeNBID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONeNBID_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue { + ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue { + ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemCellActivationRequest_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue { + ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_CellToReportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_t; +typedef struct ASN_NGAP_EventBasedReportingIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue { + ASN_NGAP_EventBasedReportingIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EventBasedReportingIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EventBasedReportingIEs_ExtIEs_t; +typedef struct ASN_NGAP_PeriodicReportingIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue { + ASN_NGAP_PeriodicReportingIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PeriodicReportingIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PeriodicReportingIEs_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue { + ASN_NGAP_IntersystemCellActivationReply_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemCellActivationReply_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellActivationReply_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue { + ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemResourceStatusReply_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue { + ASN_NGAP_IntersystemCellStateIndication_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemCellStateIndication_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemCellStateIndication_ExtIEs_t; +typedef struct ASN_NGAP_NotificationCell_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue { + ASN_NGAP_NotificationCell_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NotificationCell_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NotificationCell_Item_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue { + ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemResourceStatusReport_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_CellReportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_t; +typedef struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue { + ASN_NGAP_CompositeAvailableCapacity_ExtIEs__extensionValue_PR present; + union ASN_NGAP_CompositeAvailableCapacity_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CompositeAvailableCapacity_ExtIEs_t; +typedef struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue { + ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__extensionValue_PR present; + union ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_CellReportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_CellReportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_CellReportItem_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_t; +typedef struct ASN_NGAP_InterSystemHOReport_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue { + ASN_NGAP_InterSystemHOReport_ExtIEs__extensionValue_PR present; + union ASN_NGAP_InterSystemHOReport_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InterSystemHOReport_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue { + ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__extensionValue_PR present; + union ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_t; +typedef struct ASN_NGAP_LAI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LAI_ExtIEs__extensionValue { + ASN_NGAP_LAI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LAI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LAI_ExtIEs_t; +typedef struct ASN_NGAP_LastVisitedCellItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue { + ASN_NGAP_LastVisitedCellItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LastVisitedCellItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedCellItem_ExtIEs_t; +typedef struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue { + ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_LastVisitedPSCellList_t LastVisitedPSCellList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_t; +typedef struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue { + ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LastVisitedPSCellInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_t; +typedef struct ASN_NGAP_LocationReportingRequestType_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue { + ASN_NGAP_LocationReportingRequestType_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LocationReportingRequestType_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_LocationReportingAdditionalInfo_t LocationReportingAdditionalInfo; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportingRequestType_ExtIEs_t; +typedef struct ASN_NGAP_LoggedMDTNr_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue { + ASN_NGAP_LoggedMDTNr_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LoggedMDTNr_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_EarlyMeasurement_t EarlyMeasurement; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LoggedMDTNr_ExtIEs_t; +typedef struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue { + ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_t; +typedef struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue { + ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__extensionValue_PR present; + union ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_t; +typedef struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue { + ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_t; +typedef struct ASN_NGAP_MBS_SessionID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue { + ASN_NGAP_MBS_SessionID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_SessionID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionID_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue { + ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_t; +typedef struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue { + ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MBSSessionToReleaseItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_t; +typedef struct ASN_NGAP_MobilityRestrictionList_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue { + ASN_NGAP_MobilityRestrictionList_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MobilityRestrictionList_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_PLMNIdentity_t PLMNIdentity; + ASN_NGAP_CNTypeRestrictionsForServing_t CNTypeRestrictionsForServing; + ASN_NGAP_CNTypeRestrictionsForEquivalent_t CNTypeRestrictionsForEquivalent; + ASN_NGAP_NPN_MobilityInformation_t NPN_MobilityInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MobilityRestrictionList_ExtIEs_t; +typedef struct ASN_NGAP_MDT_Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue { + ASN_NGAP_MDT_Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MDT_Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_ExtIEs_t; +typedef struct ASN_NGAP_MDT_Configuration_NR_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue { + ASN_NGAP_MDT_Configuration_NR_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MDT_Configuration_NR_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_NR_ExtIEs_t; +typedef struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue { + ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_t; +typedef struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue { + ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_t; +typedef struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue { + ASN_NGAP_MulticastGroupPagingArea_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MulticastGroupPagingArea_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingArea_ExtIEs_t; +typedef struct ASN_NGAP_UE_PagingItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue { + ASN_NGAP_UE_PagingItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UE_PagingItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_PagingItem_ExtIEs_t; +typedef struct ASN_NGAP_M1Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M1Configuration_ExtIEs__extensionValue { + ASN_NGAP_M1Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M1Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_IncludeBeamMeasurementsIndication_t IncludeBeamMeasurementsIndication; + ASN_NGAP_BeamMeasurementsReportConfiguration_t BeamMeasurementsReportConfiguration; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1Configuration_ExtIEs_t; +typedef struct ASN_NGAP_M1ThresholdEventA2_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue { + ASN_NGAP_M1ThresholdEventA2_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M1ThresholdEventA2_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1ThresholdEventA2_ExtIEs_t; +typedef struct ASN_NGAP_M1PeriodicReporting_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue { + ASN_NGAP_M1PeriodicReporting_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M1PeriodicReporting_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedReportIntervalMDT_t ExtendedReportIntervalMDT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M1PeriodicReporting_ExtIEs_t; +typedef struct ASN_NGAP_M4Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M4Configuration_ExtIEs__extensionValue { + ASN_NGAP_M4Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M4Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_M4ReportAmountMDT_t M4ReportAmountMDT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M4Configuration_ExtIEs_t; +typedef struct ASN_NGAP_M5Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M5Configuration_ExtIEs__extensionValue { + ASN_NGAP_M5Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M5Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_M5ReportAmountMDT_t M5ReportAmountMDT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M5Configuration_ExtIEs_t; +typedef struct ASN_NGAP_M6Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M6Configuration_ExtIEs__extensionValue { + ASN_NGAP_M6Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M6Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_M6ReportAmountMDT_t M6ReportAmountMDT; + ASN_NGAP_ExcessPacketDelayThresholdConfiguration_t ExcessPacketDelayThresholdConfiguration; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M6Configuration_ExtIEs_t; +typedef struct ASN_NGAP_M7Configuration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M7Configuration_ExtIEs__extensionValue { + ASN_NGAP_M7Configuration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_M7Configuration_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_M7ReportAmountMDT_t M7ReportAmountMDT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_M7Configuration_ExtIEs_t; +typedef struct ASN_NGAP_MDT_Location_Info_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue { + ASN_NGAP_MDT_Location_Info_ExtIEs__extensionValue_PR present; + union ASN_NGAP_MDT_Location_Info_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MDT_Location_Info_ExtIEs_t; +typedef struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue { + ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_t; +typedef struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue { + ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue { + ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue { + ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_t; +typedef struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue { + ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget; + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget_1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_t; +typedef struct ASN_NGAP_NR_CGI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NR_CGI_ExtIEs__extensionValue { + ASN_NGAP_NR_CGI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NR_CGI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_CGI_ExtIEs_t; +typedef struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue { + ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NR_PagingeDRXInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_t; +typedef struct ASN_NGAP_NRNTNTAIInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue { + ASN_NGAP_NRNTNTAIInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NRNTNTAIInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRNTNTAIInformation_ExtIEs_t; +typedef struct ASN_NGAP_NRFrequencyBandItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue { + ASN_NGAP_NRFrequencyBandItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NRFrequencyBandItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRFrequencyBandItem_ExtIEs_t; +typedef struct ASN_NGAP_NRFrequencyInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue { + ASN_NGAP_NRFrequencyInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NRFrequencyInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRFrequencyInfo_ExtIEs_t; +typedef struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue { + ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NRV2XServicesAuthorized_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_t; +typedef struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue { + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__extensionValue_PR present; + union ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_t; +typedef struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue { + ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_OverloadStartNSSAIItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_t; +typedef struct ASN_NGAP_PacketErrorRate_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue { + ASN_NGAP_PacketErrorRate_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PacketErrorRate_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PacketErrorRate_ExtIEs_t; +typedef struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue { + ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_t; +typedef struct ASN_NGAP_PagingAttemptInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue { + ASN_NGAP_PagingAttemptInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PagingAttemptInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PagingAttemptInformation_ExtIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue { + ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UPTransportLayerInformationPairList_t UPTransportLayerInformationPairList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformationPairList_t UPTransportLayerInformationPairList_1; + ASN_NGAP_QosFlowParametersList_t QosFlowParametersList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue { + ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PathSwitchRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_DL_NGU_TNLInformationReused_t DL_NGU_TNLInformationReused; + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList_1; + ASN_NGAP_RedundantPDUSessionInformation_t RedundantPDUSessionInformation; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_MBS_SupportIndicator_t MBS_SupportIndicator; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PC5QoSParameters_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue { + ASN_NGAP_PC5QoSParameters_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PC5QoSParameters_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5QoSParameters_ExtIEs_t; +typedef struct ASN_NGAP_PC5QoSFlowItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue { + ASN_NGAP_PC5QoSFlowItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PC5QoSFlowItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5QoSFlowItem_ExtIEs_t; +typedef struct ASN_NGAP_PC5FlowBitRates_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue { + ASN_NGAP_PC5FlowBitRates_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PC5FlowBitRates_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PC5FlowBitRates_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs__ASN_NGAP_extensionValue_u { + OCTET_STRING_t OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformationPairList_t UPTransportLayerInformationPairList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UPTransportLayerInformationPairList_t UPTransportLayerInformationPairList; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation_1; + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList; + ASN_NGAP_UPTransportLayerInformationPairList_t UPTransportLayerInformationPairList_1; + ASN_NGAP_SecondaryRATUsageInformation_t SecondaryRATUsageInformation; + ASN_NGAP_MBS_SupportIndicator_t MBS_SupportIndicator; + ASN_NGAP_MBSSessionSetupResponseList_t MBSSessionSetupResponseList; + ASN_NGAP_MBSSessionFailedtoSetupList_t MBSSessionFailedtoSetupList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SecondaryRATUsageInformation_t SecondaryRATUsageInformation; + ASN_NGAP_SecurityResult_t SecurityResult; + ASN_NGAP_QosFlowPerTNLInformation_t QosFlowPerTNLInformation; + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_S_NSSAI_t S_NSSAI; + ASN_NGAP_ExpectedUEActivityBehaviour_t ExpectedUEActivityBehaviour; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SecondaryRATUsageInformation_t SecondaryRATUsageInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SecondaryRATUsageInformation_t SecondaryRATUsageInformation; + ASN_NGAP_QosFlowFeedbackList_t QosFlowFeedbackList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SecondaryRATUsageInformation_t SecondaryRATUsageInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExpectedUEActivityBehaviour_t ExpectedUEActivityBehaviour; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExpectedUEActivityBehaviour_t ExpectedUEActivityBehaviour; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExpectedUEActivityBehaviour_t ExpectedUEActivityBehaviour; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_QosFlowPerTNLInformation_t QosFlowPerTNLInformation; + ASN_NGAP_QosFlowPerTNLInformationList_t QosFlowPerTNLInformationList; + ASN_NGAP_RedundantPDUSessionInformation_t RedundantPDUSessionInformation; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_MBS_SupportIndicator_t MBS_SupportIndicator; + ASN_NGAP_MBSSessionSetupResponseList_t MBSSessionSetupResponseList; + ASN_NGAP_MBSSessionFailedtoSetupList_t MBSSessionFailedtoSetupList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExpectedUEActivityBehaviour_t ExpectedUEActivityBehaviour; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_t; +typedef struct ASN_NGAP_PDUSessionUsageReport_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue { + ASN_NGAP_PDUSessionUsageReport_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PDUSessionUsageReport_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionUsageReport_ExtIEs_t; +typedef struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue { + ASN_NGAP_PEIPSassistanceInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PEIPSassistanceInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PEIPSassistanceInformation_ExtIEs_t; +typedef struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue { + ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PLMNAreaBasedQMC_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_t; +typedef struct ASN_NGAP_PLMNSupportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue { + ASN_NGAP_PLMNSupportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PLMNSupportItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NPN_Support_t NPN_Support; + ASN_NGAP_ExtendedSliceSupportList_t ExtendedSliceSupportList; + ASN_NGAP_OnboardingSupport_t OnboardingSupport; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PLMNSupportItem_ExtIEs_t; +typedef struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue { + ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_t; +typedef struct ASN_NGAP_QMCConfigInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue { + ASN_NGAP_QMCConfigInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QMCConfigInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QMCConfigInfo_ExtIEs_t; +typedef struct ASN_NGAP_QMCDeactivation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue { + ASN_NGAP_QMCDeactivation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QMCDeactivation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QMCDeactivation_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowAcceptedItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowAcceptedItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetIndex_t AlternativeQoSParaSetIndex; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAcceptedItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TSCTrafficCharacteristics_t TSCTrafficCharacteristics; + ASN_NGAP_RedundantQosFlowIndicator_t RedundantQosFlowIndicator; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetIndex_t AlternativeQoSParaSetIndex; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowFeedbackItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowFeedbackItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowFeedbackItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ULForwarding_t ULForwarding; + ASN_NGAP_TransportLayerAddress_t TransportLayerAddress; + ASN_NGAP_TransportLayerAddress_t TransportLayerAddress_1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue { + ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowLevelQosParameters_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_QosMonitoringRequest_t QosMonitoringRequest; + ASN_NGAP_QosMonitoringReportingFrequency_t QosMonitoringReportingFrequency; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowWithCauseItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowWithCauseItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowWithCauseItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowNotifyItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowNotifyItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowNotifyItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetNotifyIndex_t AlternativeQoSParaSetNotifyIndex; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowNotifyItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowParametersItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowParametersItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowParametersItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget; + ASN_NGAP_ExtendedPacketDelayBudget_t ExtendedPacketDelayBudget_1; + ASN_NGAP_BurstArrivalTime_t BurstArrivalTime; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowParametersItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue { + ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowPerTNLInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowSetupRequestItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TSCTrafficCharacteristics_t TSCTrafficCharacteristics; + ASN_NGAP_RedundantQosFlowIndicator_t RedundantQosFlowIndicator; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue { + ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_AlternativeQoSParaSetIndex_t AlternativeQoSParaSetIndex; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_t; +typedef struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue { + ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_t; +typedef struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue { + ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_t; +typedef struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue { + ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_t; +typedef struct ASN_NGAP_RATRestrictions_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue { + ASN_NGAP_RATRestrictions_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RATRestrictions_Item_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ExtendedRATRestrictionInformation_t ExtendedRATRestrictionInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RATRestrictions_Item_ExtIEs_t; +typedef struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue { + ASN_NGAP_RecommendedCellsForPaging_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RecommendedCellsForPaging_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedCellsForPaging_ExtIEs_t; +typedef struct ASN_NGAP_RecommendedCellItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue { + ASN_NGAP_RecommendedCellItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RecommendedCellItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedCellItem_ExtIEs_t; +typedef struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue { + ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_t; +typedef struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue { + ASN_NGAP_RecommendedRANNodeItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RecommendedRANNodeItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedRANNodeItem_ExtIEs_t; +typedef struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue { + ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RedundantPDUSessionInformation_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_PDUSessionPairID_t PDUSessionPairID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_t; +typedef struct ASN_NGAP_RIMInformationTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue { + ASN_NGAP_RIMInformationTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RIMInformationTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RIMInformationTransfer_ExtIEs_t; +typedef struct ASN_NGAP_RIMInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RIMInformation_ExtIEs__extensionValue { + ASN_NGAP_RIMInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_RIMInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RIMInformation_ExtIEs_t; +typedef struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue { + ASN_NGAP_ScheduledCommunicationTime_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ScheduledCommunicationTime_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ScheduledCommunicationTime_ExtIEs_t; +typedef struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue { + ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SecondaryRATUsageInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_t; +typedef struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue { + ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_t; +typedef struct ASN_NGAP_SecurityContext_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecurityContext_ExtIEs__extensionValue { + ASN_NGAP_SecurityContext_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SecurityContext_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityContext_ExtIEs_t; +typedef struct ASN_NGAP_SecurityIndication_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecurityIndication_ExtIEs__extensionValue { + ASN_NGAP_SecurityIndication_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SecurityIndication_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_MaximumIntegrityProtectedDataRate_t MaximumIntegrityProtectedDataRate; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityIndication_ExtIEs_t; +typedef struct ASN_NGAP_SecurityResult_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecurityResult_ExtIEs__extensionValue { + ASN_NGAP_SecurityResult_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SecurityResult_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityResult_ExtIEs_t; +typedef struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue { + ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SensorMeasurementConfiguration_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_t; +typedef struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue { + ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SensorMeasConfigNameItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_t; +typedef struct ASN_NGAP_ServedGUAMIItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue { + ASN_NGAP_ServedGUAMIItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ServedGUAMIItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_GUAMIType_t GUAMIType; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServedGUAMIItem_ExtIEs_t; +typedef struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue { + ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_ServiceAreaInformation_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_t; +typedef struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue { + ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_t; +typedef struct ASN_NGAP_SliceOverloadItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue { + ASN_NGAP_SliceOverloadItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SliceOverloadItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceOverloadItem_ExtIEs_t; +typedef struct ASN_NGAP_SliceSupportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue { + ASN_NGAP_SliceSupportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SliceSupportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportItem_ExtIEs_t; +typedef struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue { + ASN_NGAP_SliceSupportQMC_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SliceSupportQMC_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportQMC_Item_ExtIEs_t; +typedef struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue { + ASN_NGAP_SNPN_MobilityInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SNPN_MobilityInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SNPN_MobilityInformation_ExtIEs_t; +typedef struct ASN_NGAP_S_NSSAI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_S_NSSAI_ExtIEs__extensionValue { + ASN_NGAP_S_NSSAI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_S_NSSAI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_S_NSSAI_ExtIEs_t; +typedef struct ASN_NGAP_SONConfigurationTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue { + ASN_NGAP_SONConfigurationTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SONConfigurationTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONConfigurationTransfer_ExtIEs_t; +typedef struct ASN_NGAP_SONInformationReply_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SONInformationReply_ExtIEs__extensionValue { + ASN_NGAP_SONInformationReply_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SONInformationReply_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformationReply_ExtIEs_t; +typedef struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue { + ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_t; +typedef struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue { + ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SgNB_UE_X2AP_ID_t SgNB_UE_X2AP_ID; + ASN_NGAP_UEHistoryInformationFromTheUE_t UEHistoryInformationFromTheUE; + ASN_NGAP_SourceNodeID_t SourceNodeID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_t MBS_ActiveSessionInformation_SourcetoTargetList; + ASN_NGAP_QMCConfigInfo_t QMCConfigInfo; + ASN_NGAP_NGAPIESupportInformationRequestList_t NGAPIESupportInformationRequestList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_t; +typedef struct ASN_NGAP_SourceRANNodeID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue { + ASN_NGAP_SourceRANNodeID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SourceRANNodeID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceRANNodeID_ExtIEs_t; +typedef struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue { + ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_t; +typedef struct ASN_NGAP_SupportedTAItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue { + ASN_NGAP_SupportedTAItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_SupportedTAItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_ConfiguredTACIndication_t ConfiguredTACIndication; + ASN_NGAP_RAT_Information_t RAT_Information; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SupportedTAItem_ExtIEs_t; +typedef struct ASN_NGAP_TAI_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAI_ExtIEs__extensionValue { + ASN_NGAP_TAI_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAI_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAI_ExtIEs_t; +typedef struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue { + ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIBroadcastNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue { + ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_t; +typedef struct ASN_NGAP_TAICancelledNR_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue { + ASN_NGAP_TAICancelledNR_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAICancelledNR_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledNR_Item_ExtIEs_t; +typedef struct ASN_NGAP_TAIListForInactiveItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue { + ASN_NGAP_TAIListForInactiveItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIListForInactiveItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForInactiveItem_ExtIEs_t; +typedef struct ASN_NGAP_TAIListForPagingItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue { + ASN_NGAP_TAIListForPagingItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIListForPagingItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForPagingItem_ExtIEs_t; +typedef struct ASN_NGAP_TAINSAGSupportItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue { + ASN_NGAP_TAINSAGSupportItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAINSAGSupportItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAINSAGSupportItem_ExtIEs_t; +typedef struct ASN_NGAP_TargeteNB_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue { + ASN_NGAP_TargeteNB_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargeteNB_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargeteNB_ID_ExtIEs_t; +typedef struct ASN_NGAP_TargetHomeENB_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue { + ASN_NGAP_TargetHomeENB_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetHomeENB_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetHomeENB_ID_ExtIEs_t; +typedef struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue { + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_DAPSResponseInfoList_t DAPSResponseInfoList; + ASN_NGAP_DirectForwardingPathAvailability_t DirectForwardingPathAvailability; + ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceList_t MBS_ActiveSessionInformation_TargettoSourceList; + ASN_NGAP_NGAPIESupportInformationResponseList_t NGAPIESupportInformationResponseList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_t; +typedef struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue { + ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NGAPIESupportInformationResponseList_t NGAPIESupportInformationResponseList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_t; +typedef struct ASN_NGAP_TargetNSSAI_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue { + ASN_NGAP_TargetNSSAI_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetNSSAI_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNSSAI_Item_ExtIEs_t; +typedef struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue { + ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_t; +typedef struct ASN_NGAP_TargetRANNodeID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue { + ASN_NGAP_TargetRANNodeID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetRANNodeID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_ExtIEs_t; +typedef struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue { + ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetRANNodeID_RIM_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_t; +typedef struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue { + ASN_NGAP_TargetRANNodeID_SON_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetRANNodeID_SON_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NR_CGI_t NR_CGI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_SON_ExtIEs_t; +typedef struct ASN_NGAP_TargetRNC_ID_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue { + ASN_NGAP_TargetRNC_ID_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TargetRNC_ID_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRNC_ID_ExtIEs_t; +typedef struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue { + ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_t; +typedef struct ASN_NGAP_TNLAssociationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue { + ASN_NGAP_TNLAssociationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TNLAssociationItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TNLAssociationItem_ExtIEs_t; +typedef struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue { + ASN_NGAP_TooearlyIntersystemHO_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TooearlyIntersystemHO_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TooearlyIntersystemHO_ExtIEs_t; +typedef struct ASN_NGAP_TraceActivation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TraceActivation_ExtIEs__extensionValue { + ASN_NGAP_TraceActivation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TraceActivation_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_MDT_Configuration_t MDT_Configuration; + ASN_NGAP_URI_address_t URI_address; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TraceActivation_ExtIEs_t; +typedef struct ASN_NGAP_TAIBasedMDT_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue { + ASN_NGAP_TAIBasedMDT_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIBasedMDT_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBasedMDT_ExtIEs_t; +typedef struct ASN_NGAP_TAIBasedQMC_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue { + ASN_NGAP_TAIBasedQMC_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TAIBasedQMC_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBasedQMC_ExtIEs_t; +typedef struct ASN_NGAP_TABasedQMC_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TABasedQMC_ExtIEs__extensionValue { + ASN_NGAP_TABasedQMC_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TABasedQMC_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TABasedQMC_ExtIEs_t; +typedef struct ASN_NGAP_TABasedMDT_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TABasedMDT_ExtIEs__extensionValue { + ASN_NGAP_TABasedMDT_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TABasedMDT_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TABasedMDT_ExtIEs_t; +typedef struct ASN_NGAP_TSCAssistanceInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue { + ASN_NGAP_TSCAssistanceInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TSCAssistanceInformation_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SurvivalTime_t SurvivalTime; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TSCAssistanceInformation_ExtIEs_t; +typedef struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue { + ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__extensionValue_PR present; + union ASN_NGAP_TSCTrafficCharacteristics_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_t; +typedef struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue { + ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_t; +typedef struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue { + ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_t; +typedef struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue { + ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_t; +typedef struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue { + ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_t; +typedef struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue { + ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_t; +typedef struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue { + ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_t; +typedef struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue { + ASN_NGAP_UE_DifferentiationInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UE_DifferentiationInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_DifferentiationInfo_ExtIEs_t; +typedef struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue { + ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UE_NGAP_ID_pair_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_t; +typedef struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue { + ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue { + ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UERadioCapabilityForPaging_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_t UERadioCapabilityForPagingOfNB_IoT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_t; +typedef struct ASN_NGAP_UESecurityCapabilities_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue { + ASN_NGAP_UESecurityCapabilities_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UESecurityCapabilities_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UESecurityCapabilities_ExtIEs_t; +typedef struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue { + ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_t; +typedef struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue { + ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UL_CP_SecurityInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_t; +typedef struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue { + ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation_1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_t; +typedef struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue { + ASN_NGAP_UnavailableGUAMIItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UnavailableGUAMIItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UnavailableGUAMIItem_ExtIEs_t; +typedef struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue { + ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UPTransportLayerInformationItem_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_CommonNetworkInstance_t CommonNetworkInstance; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_t; +typedef struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue { + ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue { + ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserLocationInformationEUTRA_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NGRAN_CGI_t NGRAN_CGI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue { + ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserLocationInformationN3IWF_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TAI_t TAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue { + ASN_NGAP_UserLocationInformationTNGF_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserLocationInformationTNGF_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TAI_t TAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationTNGF_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue { + ASN_NGAP_UserLocationInformationTWIF_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserLocationInformationTWIF_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_TAI_t TAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationTWIF_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationNR_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue { + ASN_NGAP_UserLocationInformationNR_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserLocationInformationNR_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_NGRAN_CGI_t NGRAN_CGI; + ASN_NGAP_NID_t NID; + ASN_NGAP_NRNTNTAIInformation_t NRNTNTAIInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationNR_ExtIEs_t; +typedef struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue { + ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__extensionValue_PR present; + union ASN_NGAP_UserPlaneSecurityInformation_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_t; +typedef struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue { + ASN_NGAP_VolumeTimedReport_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_VolumeTimedReport_Item_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_VolumeTimedReport_Item_ExtIEs_t; +typedef struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue { + ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__extensionValue_PR present; + union ASN_NGAP_WLANMeasurementConfiguration_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_t; +typedef struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue { + ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__extensionValue_PR present; + union ASN_NGAP_WLANMeasConfigNameItem_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_t; +typedef struct ASN_NGAP_WUS_Assistance_Information_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue { + ASN_NGAP_WUS_Assistance_Information_ExtIEs__extensionValue_PR present; + union ASN_NGAP_WUS_Assistance_Information_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WUS_Assistance_Information_ExtIEs_t; +typedef struct ASN_NGAP_XnExtTLA_Item_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue { + ASN_NGAP_XnExtTLA_Item_ExtIEs__extensionValue_PR present; + union ASN_NGAP_XnExtTLA_Item_ExtIEs__ASN_NGAP_extensionValue_u { + ASN_NGAP_SCTP_TLAs_t SCTP_TLAs; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnExtTLA_Item_ExtIEs_t; +typedef struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs { + ASN_NGAP_ProtocolExtensionID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue { + ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__extensionValue_PR present; + union ASN_NGAP_XnTNLConfigurationInfo_ExtIEs__ASN_NGAP_extensionValue_u { + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } extensionValue; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AdditionalDLUPTNLInformationForHOItem_ExtIEs_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_specs_5; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllocationAndRetentionPriority_ExtIEs_5[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AllowedNSSAI_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_specs_9; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AllowedNSSAI_Item_ExtIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Allowed_PNI_NPN_Item_ExtIEs_13[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AlternativeQoSParaSetItem_ExtIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationSetupItem_ExtIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToAddItem_ExtIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToRemoveItem_ExtIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMF_TNLAssociationToUpdateItem_ExtIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterest_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterest_ExtIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterest_ExtIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestCellItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestCellItem_ExtIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestItem_ExtIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestItem_ExtIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestRANNodeItem_ExtIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaOfInterestTAIItem_ExtIEs_53[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForPaging_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForPaging_ExtIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForPaging_ExtIEs_57[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssistanceDataForRecommendedCells_ExtIEs_61[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetupRequestItem_ExtIEs_65[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_specs_69; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_ExtIEs_69[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AssociatedQosFlowItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_specs_73; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AssociatedQosFlowItem_ExtIEs_73[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_specs_77; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfNeighCellsItem_ExtIEs_77[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_specs_81; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AvailableRANVisibleQoEMetrics_ExtIEs_81[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_specs_85; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportConfiguration_ExtIEs_85[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_specs_89; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BeamMeasurementsReportQuantity_ExtIEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastPLMNItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastPLMNItem_ExtIEs_specs_93; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastPLMNItem_ExtIEs_93[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_specs_97; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasurementConfiguration_ExtIEs_97[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_specs_101; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BluetoothMeasConfigNameItem_ExtIEs_101[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_specs_105; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_EUTRA_Item_ExtIEs_105[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_specs_109; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInEAI_NR_Item_ExtIEs_109[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_specs_113; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_EUTRA_Item_ExtIEs_113[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CancelledCellsInTAI_NR_Item_ExtIEs_117[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellItem_ExtIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellItem_ExtIEs_121[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCellID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCellID_ExtIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCellID_ExtIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidatePCI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidatePCI_ExtIEs_specs_129; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidatePCI_ExtIEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cell_CAGInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cell_CAGInformation_ExtIEs_specs_133; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Cell_CAGInformation_ExtIEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_specs_137; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastEUTRA_Item_ExtIEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_specs_141; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDBroadcastNR_Item_ExtIEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_specs_145; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledEUTRA_Item_ExtIEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_specs_149; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDCancelledNR_Item_ExtIEs_149[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellType_ExtIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellType_ExtIEs_153[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNAssistedRANTuning_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNAssistedRANTuning_ExtIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CNAssistedRANTuning_ExtIEs_157[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_specs_161; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CNTypeRestrictionsForEquivalentItem_ExtIEs_161[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_specs_165; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_EUTRA_Item_ExtIEs_165[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_specs_169; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInEAI_NR_Item_ExtIEs_169[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_specs_173; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_EUTRA_Item_ExtIEs_173[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_specs_177; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompletedCellsInTAI_NR_Item_ExtIEs_177[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_specs_181; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CoreNetworkAssistanceInformationForInactive_ExtIEs_181[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_specs_185; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN12_ExtIEs_185[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_specs_189; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_COUNTValueForPDCP_SN18_ExtIEs_189[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_ExtIEs_specs_193; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_ExtIEs_193[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_specs_197; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CriticalityDiagnostics_IE_Item_ExtIEs_197[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_NR_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_NR_ExtIEs_specs_201; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_NR_ExtIEs_201[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_specs_205; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedMDT_EUTRA_ExtIEs_205[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellBasedQMC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellBasedQMC_ExtIEs_specs_209; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellBasedQMC_ExtIEs_209[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_specs_213; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseDRBItem_ExtIEs_213[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSRequestInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSRequestInfo_ExtIEs_specs_217; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSRequestInfo_ExtIEs_217[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfoItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_specs_221; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfoItem_ExtIEs_221[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DAPSResponseInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DAPSResponseInfo_ExtIEs_specs_225; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DAPSResponseInfo_ExtIEs_225[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_specs_229; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DataForwardingResponseERABListItem_ExtIEs_229[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_specs_233; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DL_CP_SecurityInformation_ExtIEs_233[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_specs_237; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToStatusTransferItem_ExtIEs_237[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL12_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL12_ExtIEs_specs_241; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL12_ExtIEs_241[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL18_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL18_ExtIEs_specs_245; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL18_ExtIEs_245[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL12_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL12_ExtIEs_specs_249; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL12_ExtIEs_249[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL18_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL18_ExtIEs_specs_253; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL18_ExtIEs_253[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_specs_257; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsToQosFlowsMappingItem_ExtIEs_257[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_specs_261; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Dynamic5QIDescriptor_ExtIEs_261[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_specs_265; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EarlyStatusTransfer_TransparentContainer_ExtIEs_265[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FirstDLCount_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FirstDLCount_ExtIEs_specs_269; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FirstDLCount_ExtIEs_269[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_specs_273; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBsSubjectToEarlyStatusTransfer_Item_ExtIEs_273[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_specs_277; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastEUTRA_Item_ExtIEs_277[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_specs_281; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDBroadcastNR_Item_ExtIEs_281[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_specs_285; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledEUTRA_Item_ExtIEs_285[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_specs_289; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyAreaIDCancelledNR_Item_ExtIEs_289[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_specs_293; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EmergencyFallbackIndicator_ExtIEs_293[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_specs_297; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EndpointIPAddressAndPort_ExtIEs_297[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EPS_TAI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EPS_TAI_ExtIEs_specs_301; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EPS_TAI_ExtIEs_301[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_E_RABInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_E_RABInformationItem_ExtIEs_specs_305; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_E_RABInformationItem_ExtIEs_305[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_CGI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_CGI_ExtIEs_specs_309; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_CGI_ExtIEs_309[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_specs_313; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRA_PagingeDRXInformation_ExtIEs_313[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_specs_317; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExcessPacketDelayThresholdItem_ExtIEs_317[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_specs_321; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEActivityBehaviour_ExtIEs_321[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEBehaviour_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_specs_325; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEBehaviour_ExtIEs_325[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_specs_329; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExpectedUEMovingTrajectoryItem_ExtIEs_329[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_AMFName_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_AMFName_ExtIEs_specs_333; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_AMFName_ExtIEs_333[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Extended_RANNodeName_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Extended_RANNodeName_ExtIEs_specs_337; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Extended_RANNodeName_ExtIEs_337[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_specs_341; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ExtendedRATRestrictionInformation_ExtIEs_341[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_specs_345; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventL1LoggedMDTConfig_ExtIEs_345[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FailureIndication_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FailureIndication_ExtIEs_specs_349; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FailureIndication_ExtIEs_349[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_specs_353; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSeAuthorized_ExtIEs_353[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_specs_357; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_ProSePC5QoSParameters_ExtIEs_357[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_specs_361; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5QoSFlowItem_ExtIEs_361[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_specs_365; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveGProSePC5FlowBitRates_ExtIEs_365[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FiveG_S_TMSI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FiveG_S_TMSI_ExtIEs_specs_369; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FiveG_S_TMSI_ExtIEs_369[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_specs_373; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ForbiddenAreaInformation_Item_ExtIEs_373[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_specs_377; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FromEUTRANtoNGRAN_ExtIEs_377[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_specs_381; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_FromNGRANtoEUTRAN_ExtIEs_381[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GBR_QosInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GBR_QosInformation_ExtIEs_specs_385; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GBR_QosInformation_ExtIEs_385[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalCable_ID_new_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalCable_ID_new_ExtIEs_specs_389; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalCable_ID_new_ExtIEs_389[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalENB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalENB_ID_ExtIEs_specs_393; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalENB_ID_ExtIEs_393[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalGNB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalGNB_ID_ExtIEs_specs_397; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalGNB_ID_ExtIEs_397[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalN3IWF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_specs_401; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalN3IWF_ID_ExtIEs_401[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalLine_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalLine_ID_ExtIEs_specs_405; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalLine_ID_ExtIEs_405[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalNgENB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalNgENB_ID_ExtIEs_specs_409; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalNgENB_ID_ExtIEs_409[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTNGF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTNGF_ID_ExtIEs_specs_413; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTNGF_ID_ExtIEs_413[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalTWIF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalTWIF_ID_ExtIEs_specs_417; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalTWIF_ID_ExtIEs_417[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalW_AGF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_specs_421; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalW_AGF_ID_ExtIEs_421[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GTPTunnel_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GTPTunnel_ExtIEs_specs_425; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GTPTunnel_ExtIEs_425[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GUAMI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GUAMI_ExtIEs_specs_429; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GUAMI_ExtIEs_429[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommandTransfer_ExtIEs_specs_433; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommandTransfer_ExtIEs_433[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_specs_437; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationUnsuccessfulTransfer_ExtIEs_437[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_specs_441; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeTransfer_ExtIEs_441[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_specs_445; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequiredTransfer_ExtIEs_445[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_specs_449; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverResourceAllocationUnsuccessfulTransfer_ExtIEs_449[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HFCNode_ID_new_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HFCNode_ID_new_ExtIEs_specs_453; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HFCNode_ID_new_ExtIEs_453[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HOReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HOReport_ExtIEs_specs_457; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HOReport_ExtIEs_457[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_specs_461; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_ExtIEs_461[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ImmediateMDTNr_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ImmediateMDTNr_ExtIEs_specs_465; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ImmediateMDTNr_ExtIEs_465[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemFailureIndication_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemFailureIndication_ExtIEs_specs_469; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemFailureIndication_ExtIEs_469[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_specs_473; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONConfigurationTransfer_ExtIEs_473[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONeNBID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONeNBID_ExtIEs_specs_477; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONeNBID_ExtIEs_477[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_specs_481; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONNGRANnodeID_ExtIEs_481[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_specs_485; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationRequest_ExtIEs_485[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_specs_489; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusRequest_ExtIEs_489[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_specs_493; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingSystemIEs_ExtIEs_493[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_specs_497; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingSystemIEs_ExtIEs_497[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_specs_501; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellToReportItem_ExtIEs_501[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_specs_505; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellToReportItem_ExtIEs_505[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventBasedReportingIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventBasedReportingIEs_ExtIEs_specs_509; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventBasedReportingIEs_ExtIEs_509[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PeriodicReportingIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PeriodicReportingIEs_ExtIEs_specs_513; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PeriodicReportingIEs_ExtIEs_513[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellActivationReply_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_specs_517; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellActivationReply_ExtIEs_517[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_specs_521; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReply_ExtIEs_521[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemCellStateIndication_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_specs_525; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemCellStateIndication_ExtIEs_525[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NotificationCell_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NotificationCell_Item_ExtIEs_specs_529; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NotificationCell_Item_ExtIEs_529[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_specs_533; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemResourceStatusReport_ExtIEs_533[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_specs_537; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_ReportingStatusIEs_ExtIEs_537[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_specs_541; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CellReportItem_ExtIEs_541[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_specs_545; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_CompositeAvailableCapacityGroup_ExtIEs_545[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CompositeAvailableCapacity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_specs_549; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CompositeAvailableCapacity_ExtIEs_549[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_specs_553; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EUTRAN_RadioResourceStatus_ExtIEs_553[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_specs_557; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_ReportingStatusIEs_ExtIEs_557[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CellReportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_specs_561; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CellReportItem_ExtIEs_561[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_specs_565; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_RadioResourceStatus_ExtIEs_565[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHOReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHOReport_ExtIEs_specs_569; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHOReport_ExtIEs_569[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_specs_573; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemUnnecessaryHO_ExtIEs_573[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LAI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LAI_ExtIEs_specs_577; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LAI_ExtIEs_577[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellItem_ExtIEs_specs_581; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellItem_ExtIEs_581[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_specs_585; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedNGRANCellInformation_ExtIEs_585[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_specs_589; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedPSCellInformation_ExtIEs_589[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingRequestType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingRequestType_ExtIEs_specs_593; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingRequestType_ExtIEs_593[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTNr_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTNr_ExtIEs_specs_597; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTNr_ExtIEs_597[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_specs_601; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEV2XServicesAuthorized_ExtIEs_601[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_specs_605; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LTEUE_Sidelink_Aggregate_MaximumBitrates_ExtIEs_605[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_specs_609; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DataForwardingResponseMRBItem_ExtIEs_609[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_specs_613; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_MappingandDataForwardingRequestItem_ExtIEs_613[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_specs_617; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_QoSFlowsToBeSetupItem_ExtIEs_617[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_specs_621; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformationItem_ExtIEs_621[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_specs_625; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceAreaInformation_ExtIEs_625[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionID_ExtIEs_specs_629; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionID_ExtIEs_629[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_specs_633; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionFailedtoSetupItem_ExtIEs_633[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_specs_637; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_ExtIEs_637[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_specs_641; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_ExtIEs_641[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_specs_645; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModFailureTransfer_ExtIEs_645[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_specs_649; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupResponseItem_ExtIEs_649[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_specs_653; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionReleaseResponseTransfer_ExtIEs_653[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_specs_657; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModResponseTransfer_ExtIEs_657[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_specs_661; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GCItem_ExtIEs_661[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_specs_665; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRANItem_ExtIEs_665[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_specs_669; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionReleaseRequesTransfer_ExtIEs_669[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_specs_673; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupRequestTransfer_ExtIEs_673[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_specs_677; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupResponseTransfer_ExtIEs_677[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_specs_681; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_DistributionSetupUnsuccessfulTransfer_ExtIEs_681[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_specs_685; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupRequestItem_ExtIEs_685[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_specs_689; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetuporModifyRequestItem_ExtIEs_689[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_specs_693; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionToReleaseItem_ExtIEs_693[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MobilityRestrictionList_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MobilityRestrictionList_ExtIEs_specs_697; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MobilityRestrictionList_ExtIEs_697[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_ExtIEs_specs_701; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_ExtIEs_701[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_NR_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_NR_ExtIEs_specs_705; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_NR_ExtIEs_705[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_specs_709; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Configuration_EUTRA_ExtIEs_709[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_specs_713; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequestTransfer_ExtIEs_713[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_specs_717; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestTransfer_ExtIEs_717[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_specs_721; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingAreaItem_ExtIEs_721[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingArea_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_specs_725; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingArea_ExtIEs_725[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_PagingItem_ExtIEs_specs_729; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_PagingItem_ExtIEs_729[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1Configuration_ExtIEs_specs_733; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1Configuration_ExtIEs_733[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdEventA2_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdEventA2_ExtIEs_specs_737; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdEventA2_ExtIEs_737[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1PeriodicReporting_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1PeriodicReporting_ExtIEs_specs_741; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1PeriodicReporting_ExtIEs_741[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M4Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M4Configuration_ExtIEs_specs_745; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M4Configuration_ExtIEs_745[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M5Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M5Configuration_ExtIEs_specs_749; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M5Configuration_ExtIEs_749[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M6Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M6Configuration_ExtIEs_specs_753; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M6Configuration_ExtIEs_753[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M7Configuration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M7Configuration_ExtIEs_specs_757; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M7Configuration_ExtIEs_757[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_Location_Info_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_Location_Info_ExtIEs_specs_761; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_Location_Info_ExtIEs_761[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_specs_765; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NB_IoT_Paging_eDRXInfo_ExtIEs_765[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_specs_769; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationRequestItem_ExtIEs_769[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_specs_773; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGAPIESupportInformationResponseItem_ExtIEs_773[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_specs_777; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_TNLAssociationToRemoveItem_ExtIEs_777[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_specs_781; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NonDynamic5QIDescriptor_ExtIEs_781[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_CGI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_CGI_ExtIEs_specs_785; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_CGI_ExtIEs_785[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_specs_789; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NR_PagingeDRXInformation_ExtIEs_789[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRNTNTAIInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRNTNTAIInformation_ExtIEs_specs_793; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRNTNTAIInformation_ExtIEs_793[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyBandItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyBandItem_ExtIEs_specs_797; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyBandItem_ExtIEs_797[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRFrequencyInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRFrequencyInfo_ExtIEs_specs_801; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRFrequencyInfo_ExtIEs_801[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_specs_805; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRV2XServicesAuthorized_ExtIEs_805[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_specs_809; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_ExtIEs_809[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_specs_813; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartNSSAIItem_ExtIEs_813[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PacketErrorRate_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PacketErrorRate_ExtIEs_specs_817; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PacketErrorRate_ExtIEs_817[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_specs_821; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAssisDataforCEcapabUE_ExtIEs_821[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingAttemptInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingAttemptInformation_ExtIEs_specs_825; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingAttemptInformation_ExtIEs_825[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_specs_829; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeTransfer_ExtIEs_829[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_specs_833; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestSetupFailedTransfer_ExtIEs_833[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_specs_837; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestTransfer_ExtIEs_837[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_specs_841; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestUnsuccessfulTransfer_ExtIEs_841[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSParameters_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSParameters_ExtIEs_specs_845; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSParameters_ExtIEs_845[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5QoSFlowItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5QoSFlowItem_ExtIEs_specs_849; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5QoSFlowItem_ExtIEs_849[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PC5FlowBitRates_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PC5FlowBitRates_ExtIEs_specs_853; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PC5FlowBitRates_ExtIEs_853[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_specs_857; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionAggregateMaximumBitRate_ExtIEs_857[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_specs_861; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceAdmittedItem_ExtIEs_861[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_specs_865; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModCfm_ExtIEs_865[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_specs_869; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToModifyItemModRes_ExtIEs_869[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_specs_873; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESReq_ExtIEs_873[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_specs_877; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToResumeItemRESRes_ExtIEs_877[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_specs_881; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtFail_ExtIEs_881[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_specs_885; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemCxtRes_ExtIEs_885[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_specs_889; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemHOAck_ExtIEs_889[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_specs_893; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemPSReq_ExtIEs_893[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_specs_897; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceFailedToSetupItemSURes_ExtIEs_897[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_specs_901; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceHandoverItem_ExtIEs_901[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_specs_905; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceInformationItem_ExtIEs_905[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_specs_909; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelCpl_ExtIEs_909[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_specs_913; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemCxtRelReq_ExtIEs_913[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_specs_917; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceItemHORqd_ExtIEs_917[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_specs_921; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmTransfer_ExtIEs_921[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_specs_925; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_ExtIEs_925[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_specs_929; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseTransfer_ExtIEs_929[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_specs_933; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationTransfer_ExtIEs_933[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_specs_937; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModCfm_ExtIEs_937[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_specs_941; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModInd_ExtIEs_941[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_specs_945; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModReq_ExtIEs_945[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_specs_949; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyItemModRes_ExtIEs_949[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_specs_953; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_ExtIEs_953[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_specs_957; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyItem_ExtIEs_957[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_specs_961; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyReleasedTransfer_ExtIEs_961[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_specs_965; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyTransfer_ExtIEs_965[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_specs_969; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandTransfer_ExtIEs_969[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_specs_973; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemNot_ExtIEs_973[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_specs_977; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSAck_ExtIEs_977[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_specs_981; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemPSFail_ExtIEs_981[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_specs_985; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleasedItemRelRes_ExtIEs_985[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_specs_989; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseTransfer_ExtIEs_989[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_specs_993; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESReq_ExtIEs_993[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_specs_997; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceResumeItemRESRes_ExtIEs_997[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_specs_1001; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSecondaryRATUsageItem_ExtIEs_1001[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_specs_1005; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtReq_ExtIEs_1005[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_specs_1009; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemCxtRes_ExtIEs_1009[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_specs_1013; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemHOReq_ExtIEs_1013[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_specs_1017; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSUReq_ExtIEs_1017[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_specs_1021; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupItemSURes_ExtIEs_1021[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_specs_1025; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseTransfer_ExtIEs_1025[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_specs_1029; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_ExtIEs_1029[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_specs_1033; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSuspendItemSUSReq_ExtIEs_1033[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_specs_1037; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSwitchedItem_ExtIEs_1037[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_specs_1041; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToBeSwitchedDLItem_ExtIEs_1041[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_specs_1045; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemHOCmd_ExtIEs_1045[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_specs_1049; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceToReleaseItemRelCmd_ExtIEs_1049[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionUsageReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionUsageReport_ExtIEs_specs_1053; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionUsageReport_ExtIEs_1053[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PEIPSassistanceInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_specs_1057; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PEIPSassistanceInformation_ExtIEs_1057[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_specs_1061; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNAreaBasedQMC_ExtIEs_1061[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PLMNSupportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PLMNSupportItem_ExtIEs_specs_1065; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PLMNSupportItem_ExtIEs_1065[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_specs_1069; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PNI_NPN_MobilityInformation_ExtIEs_1069[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCConfigInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCConfigInfo_ExtIEs_specs_1073; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCConfigInfo_ExtIEs_1073[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCDeactivation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCDeactivation_ExtIEs_specs_1077; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCDeactivation_ExtIEs_1077[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_specs_1081; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedItem_ExtIEs_1081[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_specs_1085; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_ExtIEs_1085[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_specs_1089; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_ExtIEs_1089[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_specs_1093; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackItem_ExtIEs_1093[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationItem_ExtIEs_specs_1097; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationItem_ExtIEs_1097[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_specs_1101; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_ExtIEs_1101[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_specs_1105; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowWithCauseItem_ExtIEs_1105[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_specs_1109; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_ExtIEs_1109[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyItem_ExtIEs_specs_1113; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyItem_ExtIEs_1113[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersItem_ExtIEs_specs_1117; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersItem_ExtIEs_1117[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_specs_1121; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_ExtIEs_1121[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_specs_1125; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_ExtIEs_1125[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_specs_1129; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_ExtIEs_1129[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_specs_1133; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_ExtIEs_1133[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_specs_1137; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_ExtIEs_1137[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_specs_1141; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_ExtIEs_1141[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_specs_1145; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_ExtIEs_1145[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_Item_ExtIEs_specs_1149; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RATRestrictions_Item_ExtIEs_1149[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_specs_1153; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellsForPaging_ExtIEs_1153[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellItem_ExtIEs_specs_1157; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellItem_ExtIEs_1157[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_specs_1161; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_ExtIEs_1161[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_specs_1165; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodeItem_ExtIEs_1165[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_specs_1169; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_ExtIEs_1169[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformationTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformationTransfer_ExtIEs_specs_1173; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformationTransfer_ExtIEs_1173[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformation_ExtIEs_specs_1177; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformation_ExtIEs_1177[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_specs_1181; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ScheduledCommunicationTime_ExtIEs_1181[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_specs_1185; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_ExtIEs_1185[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_specs_1189; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportTransfer_ExtIEs_1189[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityContext_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityContext_ExtIEs_specs_1193; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityContext_ExtIEs_1193[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityIndication_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityIndication_ExtIEs_specs_1197; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityIndication_ExtIEs_1197[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityResult_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityResult_ExtIEs_specs_1201; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityResult_ExtIEs_1201[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_specs_1205; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_ExtIEs_1205[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_specs_1209; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_ExtIEs_1209[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIItem_ExtIEs_specs_1213; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServedGUAMIItem_ExtIEs_1213[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_specs_1217; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_ExtIEs_1217[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_specs_1221; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_ExtIEs_1221[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceOverloadItem_ExtIEs_specs_1225; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadItem_ExtIEs_1225[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportItem_ExtIEs_specs_1229; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportItem_ExtIEs_1229[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_specs_1233; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportQMC_Item_ExtIEs_1233[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_specs_1237; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SNPN_MobilityInformation_ExtIEs_1237[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_S_NSSAI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_S_NSSAI_ExtIEs_specs_1241; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_S_NSSAI_ExtIEs_1241[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONConfigurationTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONConfigurationTransfer_ExtIEs_specs_1245; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONConfigurationTransfer_ExtIEs_1245[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReply_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReply_ExtIEs_specs_1249; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReply_ExtIEs_1249[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_specs_1253; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_ExtIEs_1253[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_specs_1257; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_ExtIEs_1257[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceRANNodeID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceRANNodeID_ExtIEs_specs_1261; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceRANNodeID_ExtIEs_1261[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_specs_1265; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_ExtIEs_1265[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SupportedTAItem_ExtIEs_specs_1269; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SupportedTAItem_ExtIEs_1269[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAI_ExtIEs_specs_1273; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAI_ExtIEs_1273[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_specs_1277; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_ExtIEs_1277[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_specs_1281; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_ExtIEs_1281[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_specs_1285; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_ExtIEs_1285[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_Item_ExtIEs_specs_1289; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledNR_Item_ExtIEs_1289[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactiveItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForInactiveItem_ExtIEs_specs_1293; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForInactiveItem_ExtIEs_1293[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPagingItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForPagingItem_ExtIEs_specs_1297; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForPagingItem_ExtIEs_1297[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportItem_ExtIEs_specs_1301; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAINSAGSupportItem_ExtIEs_1301[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargeteNB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargeteNB_ID_ExtIEs_specs_1305; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargeteNB_ID_ExtIEs_1305[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetHomeENB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetHomeENB_ID_ExtIEs_specs_1309; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetHomeENB_ID_ExtIEs_1309[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_specs_1313; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_ExtIEs_1313[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_specs_1317; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_ExtIEs_1317[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_Item_ExtIEs_specs_1321; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAI_Item_ExtIEs_1321[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_specs_1325; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAIInformation_Item_ExtIEs_1325[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_ExtIEs_specs_1329; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_ExtIEs_1329[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_specs_1333; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_ExtIEs_1333[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_specs_1337; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_SON_ExtIEs_1337[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRNC_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRNC_ID_ExtIEs_specs_1341; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRNC_ID_ExtIEs_1341[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_specs_1345; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_ExtIEs_1345[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNLAssociationItem_ExtIEs_specs_1349; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TNLAssociationItem_ExtIEs_1349[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_specs_1353; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TooearlyIntersystemHO_ExtIEs_1353[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceActivation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceActivation_ExtIEs_specs_1357; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceActivation_ExtIEs_1357[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedMDT_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedMDT_ExtIEs_specs_1361; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedMDT_ExtIEs_1361[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedQMC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedQMC_ExtIEs_specs_1365; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedQMC_ExtIEs_1365[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedQMC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedQMC_ExtIEs_specs_1369; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedQMC_ExtIEs_1369[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedMDT_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedMDT_ExtIEs_specs_1373; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedMDT_ExtIEs_1373[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCAssistanceInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCAssistanceInformation_ExtIEs_specs_1377; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCAssistanceInformation_ExtIEs_1377[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_specs_1381; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_ExtIEs_1381[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_specs_1385; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_ExtIEs_1385[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_specs_1389; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_ExtIEs_1389[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_specs_1393; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_ExtIEs_1393[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_specs_1397; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_ExtIEs_1397[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_specs_1401; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequestTransfer_ExtIEs_1401[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_specs_1405; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponseTransfer_ExtIEs_1405[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_specs_1409; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequestTransfer_ExtIEs_1409[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_specs_1413; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_DifferentiationInfo_ExtIEs_1413[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_specs_1417; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_ExtIEs_1417[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_specs_1421; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_ExtIEs_1421[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_specs_1425; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_ExtIEs_1425[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESecurityCapabilities_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESecurityCapabilities_ExtIEs_specs_1429; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UESecurityCapabilities_ExtIEs_1429[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_specs_1433; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_ExtIEs_1433[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_specs_1437; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_ExtIEs_1437[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_specs_1441; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_ExtIEs_1441[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_specs_1445; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UnavailableGUAMIItem_ExtIEs_1445[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_specs_1449; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_ExtIEs_1449[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_specs_1453; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_ExtIEs_1453[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_specs_1457; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_ExtIEs_1457[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_specs_1461; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_ExtIEs_1461[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_specs_1465; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTNGF_ExtIEs_1465[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_specs_1469; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTWIF_ExtIEs_1469[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationNR_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationNR_ExtIEs_specs_1473; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationNR_ExtIEs_1473[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_specs_1477; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_ExtIEs_1477[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_specs_1481; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_VolumeTimedReport_Item_ExtIEs_1481[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_specs_1485; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_ExtIEs_1485[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_specs_1489; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_ExtIEs_1489[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WUS_Assistance_Information_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WUS_Assistance_Information_ExtIEs_specs_1493; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WUS_Assistance_Information_ExtIEs_1493[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLA_Item_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnExtTLA_Item_ExtIEs_specs_1497; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnExtTLA_Item_ExtIEs_1497[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_specs_1501; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_ExtIEs_1501[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolExtensionField_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.c b/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.c new file mode 100644 index 0000000..98d8edc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolExtensionID.h" + +int +ASN_NGAP_ProtocolExtensionID_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_ASN_NGAP_ProtocolExtensionID_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_ASN_NGAP_ProtocolExtensionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionID = { + "ProtocolExtensionID", + "ProtocolExtensionID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolExtensionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolExtensionID_constr_1, ASN_NGAP_ProtocolExtensionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.h b/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.h new file mode 100644 index 0000000..04ab683 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolExtensionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolExtensionID_H_ +#define _ASN_NGAP_ProtocolExtensionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ProtocolExtensionID */ +typedef long ASN_NGAP_ProtocolExtensionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolExtensionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolExtensionID; +asn_struct_free_f ASN_NGAP_ProtocolExtensionID_free; +asn_struct_print_f ASN_NGAP_ProtocolExtensionID_print; +asn_constr_check_f ASN_NGAP_ProtocolExtensionID_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolExtensionID_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolExtensionID_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolExtensionID_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolExtensionID_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolExtensionID_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolExtensionID_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolExtensionID_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolExtensionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolExtensionID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.c new file mode 100644 index 0000000..7bb8a0a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.c @@ -0,0 +1,4930 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-Container.h" + +#include "ASN_NGAP_ProtocolIE-Field.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P0_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_ASN_NGAP_ProtocolIE_Container_123P1_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_ASN_NGAP_ProtocolIE_Container_123P2_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_ASN_NGAP_ProtocolIE_Container_123P3_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_ASN_NGAP_ProtocolIE_Container_123P4_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_ASN_NGAP_ProtocolIE_Container_123P5_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_ASN_NGAP_ProtocolIE_Container_123P6_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_ASN_NGAP_ProtocolIE_Container_123P7_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_ASN_NGAP_ProtocolIE_Container_123P8_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_ASN_NGAP_ProtocolIE_Container_123P9_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_ASN_NGAP_ProtocolIE_Container_123P10_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_ASN_NGAP_ProtocolIE_Container_123P11_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_ASN_NGAP_ProtocolIE_Container_123P12_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_ASN_NGAP_ProtocolIE_Container_123P13_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_ASN_NGAP_ProtocolIE_Container_123P14_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_ASN_NGAP_ProtocolIE_Container_123P15_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_ASN_NGAP_ProtocolIE_Container_123P16_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_ASN_NGAP_ProtocolIE_Container_123P17_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_ASN_NGAP_ProtocolIE_Container_123P18_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_ASN_NGAP_ProtocolIE_Container_123P19_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_ASN_NGAP_ProtocolIE_Container_123P20_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_ASN_NGAP_ProtocolIE_Container_123P21_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_ASN_NGAP_ProtocolIE_Container_123P22_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_ASN_NGAP_ProtocolIE_Container_123P23_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_ASN_NGAP_ProtocolIE_Container_123P24_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_ASN_NGAP_ProtocolIE_Container_123P25_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_ASN_NGAP_ProtocolIE_Container_123P26_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_ASN_NGAP_ProtocolIE_Container_123P27_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_ASN_NGAP_ProtocolIE_Container_123P28_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_ASN_NGAP_ProtocolIE_Container_123P29_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_ASN_NGAP_ProtocolIE_Container_123P30_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_ASN_NGAP_ProtocolIE_Container_123P31_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_ASN_NGAP_ProtocolIE_Container_123P32_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_ASN_NGAP_ProtocolIE_Container_123P33_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_ASN_NGAP_ProtocolIE_Container_123P34_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_ASN_NGAP_ProtocolIE_Container_123P35_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_ASN_NGAP_ProtocolIE_Container_123P36_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_ASN_NGAP_ProtocolIE_Container_123P37_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_ASN_NGAP_ProtocolIE_Container_123P38_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_ASN_NGAP_ProtocolIE_Container_123P39_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_ASN_NGAP_ProtocolIE_Container_123P40_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_ASN_NGAP_ProtocolIE_Container_123P41_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_ASN_NGAP_ProtocolIE_Container_123P42_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_ASN_NGAP_ProtocolIE_Container_123P43_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_ASN_NGAP_ProtocolIE_Container_123P44_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_ASN_NGAP_ProtocolIE_Container_123P45_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_ASN_NGAP_ProtocolIE_Container_123P46_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_ASN_NGAP_ProtocolIE_Container_123P47_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_ASN_NGAP_ProtocolIE_Container_123P48_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_ASN_NGAP_ProtocolIE_Container_123P49_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_ASN_NGAP_ProtocolIE_Container_123P50_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_ASN_NGAP_ProtocolIE_Container_123P51_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_ASN_NGAP_ProtocolIE_Container_123P52_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_ASN_NGAP_ProtocolIE_Container_123P53_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_ASN_NGAP_ProtocolIE_Container_123P54_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_ASN_NGAP_ProtocolIE_Container_123P55_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_ASN_NGAP_ProtocolIE_Container_123P56_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_ASN_NGAP_ProtocolIE_Container_123P57_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_ASN_NGAP_ProtocolIE_Container_123P58_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_ASN_NGAP_ProtocolIE_Container_123P59_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_ASN_NGAP_ProtocolIE_Container_123P60_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_ASN_NGAP_ProtocolIE_Container_123P61_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_ASN_NGAP_ProtocolIE_Container_123P62_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_ASN_NGAP_ProtocolIE_Container_123P63_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_ASN_NGAP_ProtocolIE_Container_123P64_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_ASN_NGAP_ProtocolIE_Container_123P65_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_ASN_NGAP_ProtocolIE_Container_123P66_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_ASN_NGAP_ProtocolIE_Container_123P67_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_ASN_NGAP_ProtocolIE_Container_123P68_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_ASN_NGAP_ProtocolIE_Container_123P69_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_ASN_NGAP_ProtocolIE_Container_123P70_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_ASN_NGAP_ProtocolIE_Container_123P71_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_ASN_NGAP_ProtocolIE_Container_123P72_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_ASN_NGAP_ProtocolIE_Container_123P73_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_ASN_NGAP_ProtocolIE_Container_123P74_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_ASN_NGAP_ProtocolIE_Container_123P75_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_ASN_NGAP_ProtocolIE_Container_123P76_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_ASN_NGAP_ProtocolIE_Container_123P77_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_ASN_NGAP_ProtocolIE_Container_123P78_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_ASN_NGAP_ProtocolIE_Container_123P79_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_ASN_NGAP_ProtocolIE_Container_123P80_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_ASN_NGAP_ProtocolIE_Container_123P81_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_ASN_NGAP_ProtocolIE_Container_123P82_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_ASN_NGAP_ProtocolIE_Container_123P83_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_ASN_NGAP_ProtocolIE_Container_123P84_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_ASN_NGAP_ProtocolIE_Container_123P85_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_ASN_NGAP_ProtocolIE_Container_123P86_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_ASN_NGAP_ProtocolIE_Container_123P87_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_ASN_NGAP_ProtocolIE_Container_123P88_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_ASN_NGAP_ProtocolIE_Container_123P89_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_ASN_NGAP_ProtocolIE_Container_123P90_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_ASN_NGAP_ProtocolIE_Container_123P91_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_ASN_NGAP_ProtocolIE_Container_123P92_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_ASN_NGAP_ProtocolIE_Container_123P93_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_ASN_NGAP_ProtocolIE_Container_123P94_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_ASN_NGAP_ProtocolIE_Container_123P95_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_ASN_NGAP_ProtocolIE_Container_123P96_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_ASN_NGAP_ProtocolIE_Container_123P97_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_ASN_NGAP_ProtocolIE_Container_123P98_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_ASN_NGAP_ProtocolIE_Container_123P99_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_ASN_NGAP_ProtocolIE_Container_123P100_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_ASN_NGAP_ProtocolIE_Container_123P101_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_ASN_NGAP_ProtocolIE_Container_123P102_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_ASN_NGAP_ProtocolIE_Container_123P103_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_ASN_NGAP_ProtocolIE_Container_123P104_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_ASN_NGAP_ProtocolIE_Container_123P105_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_ASN_NGAP_ProtocolIE_Container_123P106_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_ASN_NGAP_ProtocolIE_Container_123P107_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_ASN_NGAP_ProtocolIE_Container_123P108_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_ASN_NGAP_ProtocolIE_Container_123P109_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_ASN_NGAP_ProtocolIE_Container_123P110_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_ASN_NGAP_ProtocolIE_Container_123P111_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_ASN_NGAP_ProtocolIE_Container_123P112_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_ASN_NGAP_ProtocolIE_Container_123P113_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_ASN_NGAP_ProtocolIE_Container_123P114_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_ASN_NGAP_ProtocolIE_Container_123P115_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_ASN_NGAP_ProtocolIE_Container_123P116_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_ASN_NGAP_ProtocolIE_Container_123P117_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_ASN_NGAP_ProtocolIE_Container_123P118_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_ASN_NGAP_ProtocolIE_Container_123P119_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_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P120_constr_241 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_ASN_NGAP_ProtocolIE_Container_123P121_constr_243 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_ASN_NGAP_ProtocolIE_Container_123P122_constr_245 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_ASN_NGAP_ProtocolIE_Container_123P0_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P0_specs_1 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P0), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P0, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P0_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P0_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P1_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P1_specs_3 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P1), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P1, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1_tags_3[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P1_3, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P1_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P2_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P2_specs_5 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P2), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2_tags_5[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P2_5, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P2_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P3_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P3_specs_7 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P3), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P3, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3_tags_7[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P3_7, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P3_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P4_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P4_specs_9 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P4), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4_tags_9[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P4_9, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P4_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P5_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P5_specs_11 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P5), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5_tags_11[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P5_11, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P6_specs_13 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P6), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6_tags_13[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P6_13, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P6_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P7_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P7_specs_15 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P7), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7_tags_15[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P7_15, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P7_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P8_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P8_specs_17 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P8), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8_tags_17[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P8_17, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P8_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P9_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P9_specs_19 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P9), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P9, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9_tags_19[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P9_19, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P9_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P10_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P10_specs_21 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P10), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P10, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10_tags_21[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P10_21, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P10_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P11_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P11_specs_23 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P11), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P11, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11_tags_23[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P11_23, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P11_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P12_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P12_specs_25 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P12), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P12, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12_tags_25[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P12_25, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P12_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P13_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P13_specs_27 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P13), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P13, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13_tags_27[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P13_27, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P13_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P14_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P14_specs_29 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P14), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14_tags_29[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P14_29, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P15_specs_31 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P15), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15_tags_31[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P15_31, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P16_specs_33 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P16), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16_tags_33[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P16_33, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P17_specs_35 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P17), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17_tags_35[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P17_35, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P18_specs_37 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P18), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18_tags_37[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P18_37, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P19_specs_39 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P19), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19_tags_39[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P19_39, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P20_specs_41 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P20), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P20, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20_tags_41[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P20_41, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P20_specs_41 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P21_43[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P21_specs_43 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P21), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P21, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21_tags_43[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P21_43, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P21_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P22_45[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P22_specs_45 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P22), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P22, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22_tags_45[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P22_45, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P22_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P23_47[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P23_specs_47 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P23), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P23, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23_tags_47[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P23_47, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P23_specs_47 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P24_49[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P24_specs_49 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P24), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P24, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24_tags_49[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P24_49, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P24_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P25_51[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P25_specs_51 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P25), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P25, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25_tags_51[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P25_51, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P25_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P26_53[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P26_specs_53 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P26), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P26, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26_tags_53[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P26_53, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P26_specs_53 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P27_55[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P27_specs_55 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P27), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P27, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27_tags_55[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P27_constr_55, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P27_55, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P27_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P28_57[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P28_specs_57 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P28), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P28, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28_tags_57[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P28_constr_57, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P28_57, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P28_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P29_59[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RetrieveUEInformationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P29_specs_59 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P29), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P29, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29_tags_59[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P29_constr_59, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P29_59, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P29_specs_59 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P30_61[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEInformationTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P30_specs_61 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P30), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P30, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30_tags_61[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P30_constr_61, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P30_61, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P30_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P31_63[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P31_specs_63 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P31), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P31, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31_tags_63[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P31_constr_63, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P31_63, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P31_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P32_65[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequiredIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P32_specs_65 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P32), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P32, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32_tags_65[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P32_constr_65, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P32_65, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P32_specs_65 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P33_67[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCommandIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P33_specs_67 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P33), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P33, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33_tags_67[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P33_constr_67, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P33_67, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P33_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P34_69[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P34_specs_69 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P34), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P34, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34_tags_69[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P34_constr_69, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P34_69, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P34_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P35_71[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P35_specs_71 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P35), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P35, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35_tags_71[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P35_constr_71, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P35_71, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P35_specs_71 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P36_73[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P36_specs_73 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P36), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P36, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36_tags_73[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P36_constr_73, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P36_73, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P36_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P37_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P37_specs_75 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P37), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P37, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37_tags_75[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P37_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P37_75, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P37_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P38_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverNotifyIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P38_specs_77 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P38), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P38, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38_tags_77[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P38_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P38_77, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P38_specs_77 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P39_79[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P39_specs_79 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P39), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P39, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39_tags_79[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P39_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P39_79, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P39_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P40_81[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P40_specs_81 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P40), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P40, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40_tags_81[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P40_constr_81, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P40_81, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P40_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P41_83[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P41_specs_83 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P41), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P41, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41_tags_83[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P41_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P41_83, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P41_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P42_85[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCancelIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P42_specs_85 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P42), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P42, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42_tags_85[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P42_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P42_85, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P42_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P43_87[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P43_specs_87 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P43), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P43, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43_tags_87[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P43_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P43_87, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P43_specs_87 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P44_89[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverSuccessIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P44_specs_89 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P44), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P44, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44_tags_89[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P44_constr_89, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P44_89, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P44_specs_89 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P45_91[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P45_specs_91 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P45), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P45, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45_tags_91[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P45_constr_91, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P45_91, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P45_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P46_93[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P46_specs_93 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P46), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P46, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46_tags_93[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P46_constr_93, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P46_93, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P46_specs_93 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P47_95[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P47_specs_95 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P47), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P47, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47_tags_95[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P47_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P47_95, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P47_specs_95 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P48_97[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P48_specs_97 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P48), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P48, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48_tags_97[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P48_constr_97, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P48_97, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P48_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P49_99[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P49_specs_99 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P49), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P49, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49_tags_99[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P49_constr_99, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P49_99, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P49_specs_99 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P50_101[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialUEMessage_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P50_specs_101 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P50), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P50, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50_tags_101[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P50_constr_101, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P50_101, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P50_specs_101 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P51_103[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P51_specs_103 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P51), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P51, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51_tags_103[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P51_constr_103, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P51_103, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P51_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P52_105[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkNASTransport_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P52_specs_105 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P52), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P52, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52_tags_105[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P52_constr_105, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P52_105, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P52_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P53_107[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P53_specs_107 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P53), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P53, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53_tags_107[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P53_constr_107, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P53_107, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P53_specs_107 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P54_109[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RerouteNASRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P54_specs_109 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P54), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P54, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54_tags_109[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P54_constr_109, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P54_109, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P54_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P55_111[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P55_specs_111 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P55), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P55, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55_tags_111[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P55_constr_111, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P55_111, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P55_specs_111 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P56_113[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P56_specs_113 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P56), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P56, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56_tags_113[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P56_constr_113, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P56_113, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P56_specs_113 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P57_115[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P57_specs_115 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P57), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P57, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57_tags_115[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P57_constr_115, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P57_115, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P57_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P58_117[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P58_specs_117 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P58), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P58, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58_tags_117[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P58_constr_117, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P58_117, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P58_specs_117 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P59_119[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P59_specs_119 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P59), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P59, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59_tags_119[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P59_constr_119, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P59_119, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P59_specs_119 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P60_121[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P60_specs_121 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P60), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P60, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60_tags_121[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P60_constr_121, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P60_121, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P60_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P61_123[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P61_specs_123 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P61), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P61, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61_tags_123[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P61_constr_123, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P61_123, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P61_specs_123 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P62_125[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P62_specs_125 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P62), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P62, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62_tags_125[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P62_constr_125, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P62_125, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P62_specs_125 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P63_127[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P63_specs_127 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P63), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P63, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63_tags_127[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P63_constr_127, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P63_127, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P63_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P64_129[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFStatusIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P64_specs_129 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P64), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P64, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64_tags_129[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P64_constr_129, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P64_129, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P64_specs_129 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P65_131[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGResetIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P65_specs_131 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P65), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P65, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65_tags_131[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P65_constr_131, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P65_131, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P65_specs_131 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P66_133[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P66_specs_133 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P66), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P66, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66_tags_133[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P66_constr_133, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P66_133, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P66_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P67_135[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ErrorIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P67_specs_135 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P67), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P67, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67_tags_135[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P67_constr_135, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P67_135, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P67_specs_135 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P68_137[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStartIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P68_specs_137 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P68), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P68, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68_tags_137[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P68_constr_137, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P68_137, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P68_specs_137 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P69_139[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStopIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P69_specs_139 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P69), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P69, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69_tags_139[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P69_constr_139, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P69_139, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P69_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P70_141[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P70_specs_141 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P70), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P70, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70_tags_141[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P70_constr_141, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P70_141, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P70_specs_141 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P71_143[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P71_specs_143 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P71), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P71, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71_tags_143[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P71_constr_143, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P71_143, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P71_specs_143 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P72_145[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P72_specs_145 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P72), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P72, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72_tags_145[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P72_constr_145, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P72_145, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P72_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P73_147[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P73_specs_147 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P73), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P73, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73_tags_147[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P73_constr_147, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P73_147, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P73_specs_147 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P74_149[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSCancelRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P74_specs_149 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P74), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P74, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74_tags_149[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P74_constr_149, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P74_149, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P74_specs_149 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P75_151[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSCancelResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P75_specs_151 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P75), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P75, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75_tags_151[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P75_constr_151, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P75_151, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P75_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P76_153[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSRestartIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P76_specs_153 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P76), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P76, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76_tags_153[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P76_constr_153, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P76_153, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P76_specs_153 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P77_155[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSFailureIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P77_specs_155 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P77), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P77, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77_tags_155[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P77_constr_155, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P77_155, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P77_specs_155 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P78_157[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P78_specs_157 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P78), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P78, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78_tags_157[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P78_constr_157, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P78_157, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P78_specs_157 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P79_159[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P79_specs_159 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P79), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P79, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79_tags_159[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P79_constr_159, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P79_159, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P79_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P80_161[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P80_specs_161 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P80), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P80, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80_tags_161[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P80_constr_161, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P80_161, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P80_specs_161 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P81_163[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P81_specs_163 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P81), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P81, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81_tags_163[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P81_constr_163, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P81_163, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P81_specs_163 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P82_165[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceStartIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P82_specs_165 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P82), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P82, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82_tags_165[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P82_constr_165, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P82_165, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P82_specs_165 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P83_167[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceFailureIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P83_specs_167 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P83), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P83, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83_tags_167[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P83_constr_167, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P83_167, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P83_specs_167 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P84_169[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DeactivateTraceIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P84_specs_169 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P84), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P84, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84_tags_169[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P84_constr_169, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P84_169, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P84_specs_169 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P85_171[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CellTrafficTraceIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P85_specs_171 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P85), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P85, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85_tags_171[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P85_constr_171, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P85_171, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P85_specs_171 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P86_173[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingControlIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P86_specs_173 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P86), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P86, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86_tags_173[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P86_constr_173, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P86_173, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P86_specs_173 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P87_175[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P87_specs_175 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P87), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P87, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87_tags_175[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P87_constr_175, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P87_175, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P87_specs_175 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P88_177[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P88_specs_177 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P88), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P88, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88_tags_177[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P88_constr_177, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P88_177, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P88_specs_177 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P89_179[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P89_specs_179 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P89), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P89, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89_tags_179[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P89_constr_179, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P89_179, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P89_specs_179 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P90_181[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P90_specs_181 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P90), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P90, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90_tags_181[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P90_constr_181, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P90_181, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P90_specs_181 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P91_183[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P91_specs_183 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P91), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P91, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91_tags_183[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P91_constr_183, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P91_183, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P91_specs_183 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P92_185[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P92_specs_185 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P92), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P92, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92_tags_185[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P92_constr_185, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P92_185, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P92_specs_185 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P93_187[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P93_specs_187 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P93), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P93, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93_tags_187[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P93_constr_187, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P93_187, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P93_specs_187 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P94_189[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P94_specs_189 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P94), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P94, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94_tags_189[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P94_constr_189, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P94_189, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P94_specs_189 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P95_191[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P95_specs_191 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P95), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P95, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95_tags_191[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P95_constr_191, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P95_191, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P95_specs_191 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P96_193[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P96_specs_193 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P96), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P96, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96_tags_193[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P96_constr_193, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P96_193, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P96_specs_193 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P97_195[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P97_specs_195 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P97), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P97, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97_tags_195[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P97_constr_195, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P97_195, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P97_specs_195 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P98_197[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P98_specs_197 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P98), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P98, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98_tags_197[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P98_constr_197, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P98_197, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P98_specs_197 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P99_199[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P99_specs_199 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P99), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P99, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99_tags_199[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P99_constr_199, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P99_199, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P99_specs_199 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P100_201[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P100_specs_201 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P100), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P100, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100_tags_201[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P100_constr_201, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P100_201, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P100_specs_201 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P101_203[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P101_specs_203 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P101), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P101, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101_tags_203[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P101_constr_203, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P101_203, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P101_specs_203 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P102_205[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P102_specs_205 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P102), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P102, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102_tags_205[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P102_constr_205, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P102_205, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P102_specs_205 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P103_207[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P103_specs_207 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P103), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P103, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103_tags_207[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P103_constr_207, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P103_207, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P103_specs_207 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P104_209[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P104_specs_209 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P104), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P104, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104_tags_209[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P104_constr_209, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P104_209, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P104_specs_209 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P105_211[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P105_specs_211 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P105), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P105, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105_tags_211[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P105_constr_211, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P105_211, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P105_specs_211 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P106_213[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P106_specs_213 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P106), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P106, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106_tags_213[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P106_constr_213, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P106_213, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P106_specs_213 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P107_215[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P107_specs_215 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P107), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P107, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107_tags_215[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P107_constr_215, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P107_215, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P107_specs_215 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P108_217[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P108_specs_217 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P108), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P108, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108_tags_217[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P108_constr_217, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P108_217, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P108_specs_217 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P109_219[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P109_specs_219 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P109), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P109, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109_tags_219[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P109_constr_219, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P109_219, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P109_specs_219 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P110_221[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P110_specs_221 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P110), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P110, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110_tags_221[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P110_constr_221, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P110_221, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P110_specs_221 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P111_223[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P111_specs_223 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P111), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P111, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111_tags_223[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P111_constr_223, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P111_223, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P111_specs_223 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P112_225[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P112_specs_225 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P112), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P112, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112_tags_225[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P112_constr_225, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P112_225, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P112_specs_225 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P113_227[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P113_specs_227 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P113), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P113, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113_tags_227[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P113_constr_227, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P113_227, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P113_specs_227 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P114_229[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P114_specs_229 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P114), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P114, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114_tags_229[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P114_constr_229, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P114_229, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P114_specs_229 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P115_231[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P115_specs_231 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P115), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P115, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115_tags_231[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P115_constr_231, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P115_231, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P115_specs_231 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P116_233[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P116_specs_233 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P116), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P116, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116_tags_233[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P116_constr_233, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P116_233, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P116_specs_233 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P117_235[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P117_specs_235 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P117), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P117, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117_tags_235[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P117_constr_235, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P117_235, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P117_specs_235 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P118_237[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P118_specs_237 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P118), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P118, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118_tags_237[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P118_constr_237, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P118_237, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P118_specs_237 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P119_239[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P119_specs_239 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P119), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P119, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119_tags_239[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P119_constr_239, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P119_239, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P119_specs_239 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P120_241[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P120_specs_241 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P120), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P120, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120_tags_241[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P120_constr_241, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P120_241, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P120_specs_241 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P121_243[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P121_specs_243 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P121), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P121, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121_tags_243[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P121_constr_243, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P121_243, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P121_specs_243 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P122_245[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPagingIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P122_specs_245 = { + sizeof(struct ASN_NGAP_ProtocolIE_Container_123P122), + offsetof(struct ASN_NGAP_ProtocolIE_Container_123P122, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122 = { + "ProtocolIE-Container", + "ProtocolIE-Container", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122_tags_245[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P122_constr_245, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ProtocolIE_Container_123P122_245, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ProtocolIE_Container_123P122_specs_245 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.h new file mode 100644 index 0000000..0b33820 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-Container.h @@ -0,0 +1,1386 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_Container_H_ +#define _ASN_NGAP_ProtocolIE_Container_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs; +struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs; +struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs; +struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs; +struct ASN_NGAP_PDUSessionResourceSetupRequestIEs; +struct ASN_NGAP_PDUSessionResourceSetupResponseIEs; +struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs; +struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs; +struct ASN_NGAP_PDUSessionResourceModifyRequestIEs; +struct ASN_NGAP_PDUSessionResourceModifyResponseIEs; +struct ASN_NGAP_PDUSessionResourceNotifyIEs; +struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs; +struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs; +struct ASN_NGAP_InitialContextSetupRequestIEs; +struct ASN_NGAP_InitialContextSetupResponseIEs; +struct ASN_NGAP_InitialContextSetupFailureIEs; +struct ASN_NGAP_UEContextReleaseRequest_IEs; +struct ASN_NGAP_UEContextReleaseCommand_IEs; +struct ASN_NGAP_UEContextReleaseComplete_IEs; +struct ASN_NGAP_UEContextResumeRequestIEs; +struct ASN_NGAP_UEContextResumeResponseIEs; +struct ASN_NGAP_UEContextResumeFailureIEs; +struct ASN_NGAP_UEContextSuspendRequestIEs; +struct ASN_NGAP_UEContextSuspendResponseIEs; +struct ASN_NGAP_UEContextSuspendFailureIEs; +struct ASN_NGAP_UEContextModificationRequestIEs; +struct ASN_NGAP_UEContextModificationResponseIEs; +struct ASN_NGAP_UEContextModificationFailureIEs; +struct ASN_NGAP_RRCInactiveTransitionReportIEs; +struct ASN_NGAP_RetrieveUEInformationIEs; +struct ASN_NGAP_UEInformationTransferIEs; +struct ASN_NGAP_RANCPRelocationIndicationIEs; +struct ASN_NGAP_HandoverRequiredIEs; +struct ASN_NGAP_HandoverCommandIEs; +struct ASN_NGAP_HandoverPreparationFailureIEs; +struct ASN_NGAP_HandoverRequestIEs; +struct ASN_NGAP_HandoverRequestAcknowledgeIEs; +struct ASN_NGAP_HandoverFailureIEs; +struct ASN_NGAP_HandoverNotifyIEs; +struct ASN_NGAP_PathSwitchRequestIEs; +struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs; +struct ASN_NGAP_PathSwitchRequestFailureIEs; +struct ASN_NGAP_HandoverCancelIEs; +struct ASN_NGAP_HandoverCancelAcknowledgeIEs; +struct ASN_NGAP_HandoverSuccessIEs; +struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs; +struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs; +struct ASN_NGAP_UplinkRANStatusTransferIEs; +struct ASN_NGAP_DownlinkRANStatusTransferIEs; +struct ASN_NGAP_PagingIEs; +struct ASN_NGAP_InitialUEMessage_IEs; +struct ASN_NGAP_DownlinkNASTransport_IEs; +struct ASN_NGAP_UplinkNASTransport_IEs; +struct ASN_NGAP_NASNonDeliveryIndication_IEs; +struct ASN_NGAP_RerouteNASRequest_IEs; +struct ASN_NGAP_NGSetupRequestIEs; +struct ASN_NGAP_NGSetupResponseIEs; +struct ASN_NGAP_NGSetupFailureIEs; +struct ASN_NGAP_RANConfigurationUpdateIEs; +struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs; +struct ASN_NGAP_RANConfigurationUpdateFailureIEs; +struct ASN_NGAP_AMFConfigurationUpdateIEs; +struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs; +struct ASN_NGAP_AMFConfigurationUpdateFailureIEs; +struct ASN_NGAP_AMFStatusIndicationIEs; +struct ASN_NGAP_NGResetIEs; +struct ASN_NGAP_NGResetAcknowledgeIEs; +struct ASN_NGAP_ErrorIndicationIEs; +struct ASN_NGAP_OverloadStartIEs; +struct ASN_NGAP_OverloadStopIEs; +struct ASN_NGAP_UplinkRANConfigurationTransferIEs; +struct ASN_NGAP_DownlinkRANConfigurationTransferIEs; +struct ASN_NGAP_WriteReplaceWarningRequestIEs; +struct ASN_NGAP_WriteReplaceWarningResponseIEs; +struct ASN_NGAP_PWSCancelRequestIEs; +struct ASN_NGAP_PWSCancelResponseIEs; +struct ASN_NGAP_PWSRestartIndicationIEs; +struct ASN_NGAP_PWSFailureIndicationIEs; +struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs; +struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs; +struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs; +struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs; +struct ASN_NGAP_TraceStartIEs; +struct ASN_NGAP_TraceFailureIndicationIEs; +struct ASN_NGAP_DeactivateTraceIEs; +struct ASN_NGAP_CellTrafficTraceIEs; +struct ASN_NGAP_LocationReportingControlIEs; +struct ASN_NGAP_LocationReportingFailureIndicationIEs; +struct ASN_NGAP_LocationReportIEs; +struct ASN_NGAP_UETNLABindingReleaseRequestIEs; +struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs; +struct ASN_NGAP_UERadioCapabilityCheckRequestIEs; +struct ASN_NGAP_UERadioCapabilityCheckResponseIEs; +struct ASN_NGAP_SecondaryRATDataUsageReportIEs; +struct ASN_NGAP_UplinkRIMInformationTransferIEs; +struct ASN_NGAP_DownlinkRIMInformationTransferIEs; +struct ASN_NGAP_ConnectionEstablishmentIndicationIEs; +struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs; +struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs; +struct ASN_NGAP_AMFCPRelocationIndicationIEs; +struct ASN_NGAP_BroadcastSessionSetupRequestIEs; +struct ASN_NGAP_BroadcastSessionSetupResponseIEs; +struct ASN_NGAP_BroadcastSessionSetupFailureIEs; +struct ASN_NGAP_BroadcastSessionModificationRequestIEs; +struct ASN_NGAP_BroadcastSessionModificationResponseIEs; +struct ASN_NGAP_BroadcastSessionModificationFailureIEs; +struct ASN_NGAP_BroadcastSessionReleaseRequestIEs; +struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs; +struct ASN_NGAP_BroadcastSessionReleaseResponseIEs; +struct ASN_NGAP_DistributionSetupRequestIEs; +struct ASN_NGAP_DistributionSetupResponseIEs; +struct ASN_NGAP_DistributionSetupFailureIEs; +struct ASN_NGAP_DistributionReleaseRequestIEs; +struct ASN_NGAP_DistributionReleaseResponseIEs; +struct ASN_NGAP_MulticastSessionActivationRequestIEs; +struct ASN_NGAP_MulticastSessionActivationResponseIEs; +struct ASN_NGAP_MulticastSessionActivationFailureIEs; +struct ASN_NGAP_MulticastSessionDeactivationRequestIEs; +struct ASN_NGAP_MulticastSessionDeactivationResponseIEs; +struct ASN_NGAP_MulticastSessionUpdateRequestIEs; +struct ASN_NGAP_MulticastSessionUpdateResponseIEs; +struct ASN_NGAP_MulticastSessionUpdateFailureIEs; +struct ASN_NGAP_MulticastGroupPagingIEs; + +/* ASN_NGAP_ProtocolIE-Container */ +typedef struct ASN_NGAP_ProtocolIE_Container_123P0 { + A_SEQUENCE_OF(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P0_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P1 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P1_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P2 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P2_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P3 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P3_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P4 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P4_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P5 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P5_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P6 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P6_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P7 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P7_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P8 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P8_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P9 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P9_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P10 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceNotifyIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P10_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P11 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P11_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P12 { + A_SEQUENCE_OF(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P12_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P13 { + A_SEQUENCE_OF(struct ASN_NGAP_InitialContextSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P13_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P14 { + A_SEQUENCE_OF(struct ASN_NGAP_InitialContextSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P14_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P15 { + A_SEQUENCE_OF(struct ASN_NGAP_InitialContextSetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P15_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P16 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextReleaseRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P16_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P17 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextReleaseCommand_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P17_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P18 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextReleaseComplete_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P18_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P19 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextResumeRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P19_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P20 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextResumeResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P20_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P21 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextResumeFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P21_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P22 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextSuspendRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P22_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P23 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextSuspendResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P23_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P24 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextSuspendFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P24_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P25 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextModificationRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P25_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P26 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextModificationResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P26_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P27 { + A_SEQUENCE_OF(struct ASN_NGAP_UEContextModificationFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P27_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P28 { + A_SEQUENCE_OF(struct ASN_NGAP_RRCInactiveTransitionReportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P28_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P29 { + A_SEQUENCE_OF(struct ASN_NGAP_RetrieveUEInformationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P29_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P30 { + A_SEQUENCE_OF(struct ASN_NGAP_UEInformationTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P30_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P31 { + A_SEQUENCE_OF(struct ASN_NGAP_RANCPRelocationIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P31_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P32 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverRequiredIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P32_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P33 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverCommandIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P33_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P34 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverPreparationFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P34_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P35 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P35_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P36 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverRequestAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P36_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P37 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P37_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P38 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverNotifyIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P38_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P39 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P39_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P40 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P40_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P41 { + A_SEQUENCE_OF(struct ASN_NGAP_PathSwitchRequestFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P41_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P42 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverCancelIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P42_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P43 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverCancelAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P43_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P44 { + A_SEQUENCE_OF(struct ASN_NGAP_HandoverSuccessIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P44_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P45 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P45_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P46 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P46_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P47 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkRANStatusTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P47_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P48 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkRANStatusTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P48_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P49 { + A_SEQUENCE_OF(struct ASN_NGAP_PagingIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P49_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P50 { + A_SEQUENCE_OF(struct ASN_NGAP_InitialUEMessage_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P50_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P51 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkNASTransport_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P51_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P52 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkNASTransport_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P52_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P53 { + A_SEQUENCE_OF(struct ASN_NGAP_NASNonDeliveryIndication_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P53_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P54 { + A_SEQUENCE_OF(struct ASN_NGAP_RerouteNASRequest_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P54_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P55 { + A_SEQUENCE_OF(struct ASN_NGAP_NGSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P55_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P56 { + A_SEQUENCE_OF(struct ASN_NGAP_NGSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P56_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P57 { + A_SEQUENCE_OF(struct ASN_NGAP_NGSetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P57_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P58 { + A_SEQUENCE_OF(struct ASN_NGAP_RANConfigurationUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P58_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P59 { + A_SEQUENCE_OF(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P59_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P60 { + A_SEQUENCE_OF(struct ASN_NGAP_RANConfigurationUpdateFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P60_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P61 { + A_SEQUENCE_OF(struct ASN_NGAP_AMFConfigurationUpdateIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P61_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P62 { + A_SEQUENCE_OF(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P62_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P63 { + A_SEQUENCE_OF(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P63_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P64 { + A_SEQUENCE_OF(struct ASN_NGAP_AMFStatusIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P64_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P65 { + A_SEQUENCE_OF(struct ASN_NGAP_NGResetIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P65_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P66 { + A_SEQUENCE_OF(struct ASN_NGAP_NGResetAcknowledgeIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P66_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P67 { + A_SEQUENCE_OF(struct ASN_NGAP_ErrorIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P67_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P68 { + A_SEQUENCE_OF(struct ASN_NGAP_OverloadStartIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P68_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P69 { + A_SEQUENCE_OF(struct ASN_NGAP_OverloadStopIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P69_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P70 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkRANConfigurationTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P70_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P71 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P71_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P72 { + A_SEQUENCE_OF(struct ASN_NGAP_WriteReplaceWarningRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P72_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P73 { + A_SEQUENCE_OF(struct ASN_NGAP_WriteReplaceWarningResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P73_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P74 { + A_SEQUENCE_OF(struct ASN_NGAP_PWSCancelRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P74_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P75 { + A_SEQUENCE_OF(struct ASN_NGAP_PWSCancelResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P75_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P76 { + A_SEQUENCE_OF(struct ASN_NGAP_PWSRestartIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P76_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P77 { + A_SEQUENCE_OF(struct ASN_NGAP_PWSFailureIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P77_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P78 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P78_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P79 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P79_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P80 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P80_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P81 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P81_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P82 { + A_SEQUENCE_OF(struct ASN_NGAP_TraceStartIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P82_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P83 { + A_SEQUENCE_OF(struct ASN_NGAP_TraceFailureIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P83_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P84 { + A_SEQUENCE_OF(struct ASN_NGAP_DeactivateTraceIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P84_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P85 { + A_SEQUENCE_OF(struct ASN_NGAP_CellTrafficTraceIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P85_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P86 { + A_SEQUENCE_OF(struct ASN_NGAP_LocationReportingControlIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P86_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P87 { + A_SEQUENCE_OF(struct ASN_NGAP_LocationReportingFailureIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P87_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P88 { + A_SEQUENCE_OF(struct ASN_NGAP_LocationReportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P88_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P89 { + A_SEQUENCE_OF(struct ASN_NGAP_UETNLABindingReleaseRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P89_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P90 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P90_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P91 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P91_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P92 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P92_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P93 { + A_SEQUENCE_OF(struct ASN_NGAP_SecondaryRATDataUsageReportIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P93_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P94 { + A_SEQUENCE_OF(struct ASN_NGAP_UplinkRIMInformationTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P94_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P95 { + A_SEQUENCE_OF(struct ASN_NGAP_DownlinkRIMInformationTransferIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P95_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P96 { + A_SEQUENCE_OF(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P96_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P97 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P97_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P98 { + A_SEQUENCE_OF(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P98_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P99 { + A_SEQUENCE_OF(struct ASN_NGAP_AMFCPRelocationIndicationIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P99_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P100 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P100_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P101 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P101_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P102 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionSetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P102_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P103 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionModificationRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P103_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P104 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionModificationResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P104_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P105 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionModificationFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P105_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P106 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P106_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P107 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P107_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P108 { + A_SEQUENCE_OF(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P108_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P109 { + A_SEQUENCE_OF(struct ASN_NGAP_DistributionSetupRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P109_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P110 { + A_SEQUENCE_OF(struct ASN_NGAP_DistributionSetupResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P110_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P111 { + A_SEQUENCE_OF(struct ASN_NGAP_DistributionSetupFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P111_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P112 { + A_SEQUENCE_OF(struct ASN_NGAP_DistributionReleaseRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P112_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P113 { + A_SEQUENCE_OF(struct ASN_NGAP_DistributionReleaseResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P113_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P114 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionActivationRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P114_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P115 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionActivationResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P115_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P116 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionActivationFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P116_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P117 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P117_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P118 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P118_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P119 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionUpdateRequestIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P119_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P120 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionUpdateResponseIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P120_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P121 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastSessionUpdateFailureIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P121_t; +typedef struct ASN_NGAP_ProtocolIE_Container_123P122 { + A_SEQUENCE_OF(struct ASN_NGAP_MulticastGroupPagingIEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ProtocolIE_Container_123P122_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P0; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P1; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P2; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P3; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P4; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P5; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P6; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P7; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P8; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P9; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P10; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P11; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P12; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P13; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P14; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P15; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P26_constr_53; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P27_specs_55; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P27_55[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P27_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P28_specs_57; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P28_57[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P28_constr_57; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P29_specs_59; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P29_59[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P29_constr_59; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P30_specs_61; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P30_61[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P30_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P31_specs_63; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P31_63[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P31_constr_63; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P32; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P32_specs_65; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P32_65[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P32_constr_65; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P33; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P33_specs_67; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P33_67[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P33_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P34; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P34_specs_69; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P34_69[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P34_constr_69; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P35; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P35_specs_71; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P35_71[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P35_constr_71; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P36; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P36_specs_73; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P36_73[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P36_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P37; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P37_specs_75; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P37_75[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P37_constr_75; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P38; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P38_specs_77; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P38_77[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P38_constr_77; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P39; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P39_specs_79; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P39_79[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P39_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P40; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P40_specs_81; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P40_81[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P40_constr_81; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P41; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P41_specs_83; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P41_83[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P41_constr_83; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P42; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P42_specs_85; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P42_85[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P42_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P43; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P43_specs_87; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P43_87[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P43_constr_87; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P44; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P44_specs_89; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P44_89[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P44_constr_89; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P45_specs_91; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P45_91[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P45_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P46; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P46_specs_93; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P46_93[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P46_constr_93; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P47_specs_95; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P47_95[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P47_constr_95; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P48; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P48_specs_97; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P48_97[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P48_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P49; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P49_specs_99; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P49_99[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P49_constr_99; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P50; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P50_specs_101; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P50_101[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P50_constr_101; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P51; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P51_specs_103; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P51_103[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P51_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P52_specs_105; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P52_105[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P52_constr_105; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P53; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P53_specs_107; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P53_107[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P53_constr_107; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P54_specs_109; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P54_109[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P54_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P55; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P55_specs_111; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P55_111[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P55_constr_111; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P56; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P56_specs_113; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P56_113[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P56_constr_113; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P57; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P57_specs_115; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P57_115[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P57_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P58_specs_117; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P58_117[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P58_constr_117; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P59_specs_119; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P59_119[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P59_constr_119; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P60_specs_121; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P60_121[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P60_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P61; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P61_specs_123; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P61_123[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P61_constr_123; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P62; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P62_specs_125; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P62_125[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P62_constr_125; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P63; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P63_specs_127; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P63_127[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P63_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P64; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P64_specs_129; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P64_129[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P64_constr_129; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P65; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P65_specs_131; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P65_131[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P65_constr_131; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P66; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P66_specs_133; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P66_133[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P66_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P67; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P67_specs_135; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P67_135[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P67_constr_135; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P68; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P68_specs_137; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P68_137[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P68_constr_137; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P69; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P69_specs_139; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P69_139[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P69_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P70_specs_141; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P70_141[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P70_constr_141; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P71; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P71_specs_143; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P71_143[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P71_constr_143; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P72_specs_145; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P72_145[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P72_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P73_specs_147; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P73_147[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P73_constr_147; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P74; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P74_specs_149; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P74_149[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P74_constr_149; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P75; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P75_specs_151; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P75_151[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P75_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P76; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P76_specs_153; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P76_153[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P76_constr_153; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P77; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P77_specs_155; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P77_155[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P77_constr_155; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P78; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P78_specs_157; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P78_157[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P78_constr_157; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P79_specs_159; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P79_159[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P79_constr_159; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P80; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P80_specs_161; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P80_161[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P80_constr_161; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P81_specs_163; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P81_163[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P81_constr_163; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P82_specs_165; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P82_165[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P82_constr_165; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P83_specs_167; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P83_167[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P83_constr_167; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P84; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P84_specs_169; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P84_169[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P84_constr_169; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P85; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P85_specs_171; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P85_171[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P85_constr_171; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P86; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P86_specs_173; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P86_173[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P86_constr_173; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P87; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P87_specs_175; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P87_175[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P87_constr_175; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P88; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P88_specs_177; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P88_177[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P88_constr_177; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P89_specs_179; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P89_179[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P89_constr_179; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P90_specs_181; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P90_181[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P90_constr_181; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P91_specs_183; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P91_183[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P91_constr_183; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P92_specs_185; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P92_185[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P92_constr_185; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P93_specs_187; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P93_187[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P93_constr_187; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P94_specs_189; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P94_189[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P94_constr_189; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P95; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P95_specs_191; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P95_191[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P95_constr_191; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P96; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P96_specs_193; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P96_193[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P96_constr_193; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P97_specs_195; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P97_195[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P97_constr_195; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P98_specs_197; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P98_197[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P98_constr_197; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P99; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P99_specs_199; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P99_199[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P99_constr_199; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P100; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P100_specs_201; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P100_201[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P100_constr_201; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P101; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P101_specs_203; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P101_203[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P101_constr_203; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P102; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P102_specs_205; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P102_205[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P102_constr_205; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P103; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P103_specs_207; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P103_207[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P103_constr_207; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P104; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P104_specs_209; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P104_209[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P104_constr_209; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P105; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P105_specs_211; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P105_211[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P105_constr_211; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P106; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P106_specs_213; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P106_213[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P106_constr_213; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P107; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P107_specs_215; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P107_215[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P107_constr_215; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P108; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P108_specs_217; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P108_217[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P108_constr_217; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P109; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P109_specs_219; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P109_219[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P109_constr_219; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P110; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P110_specs_221; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P110_221[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P110_constr_221; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P111; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P111_specs_223; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P111_223[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P111_constr_223; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P112; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P112_specs_225; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P112_225[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P112_constr_225; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P113; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P113_specs_227; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P113_227[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P113_constr_227; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P114; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P114_specs_229; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P114_229[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P114_constr_229; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P115; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P115_specs_231; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P115_231[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P115_constr_231; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P116; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P116_specs_233; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P116_233[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P116_constr_233; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P117; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P117_specs_235; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P117_235[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P117_constr_235; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P118; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P118_specs_237; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P118_237[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P118_constr_237; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P119; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P119_specs_239; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P119_239[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P119_constr_239; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P120; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P120_specs_241; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P120_241[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P120_constr_241; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P121; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P121_specs_243; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P121_243[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P121_constr_243; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_Container_123P122; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ProtocolIE_Container_123P122_specs_245; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProtocolIE_Container_123P122_245[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_Container_123P122_constr_245; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_Container_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.c new file mode 100644 index 0000000..f7e3aa7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-ContainerList.h" + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.h new file mode 100644 index 0000000..6749b54 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_ContainerList_H_ +#define _ASN_NGAP_ProtocolIE_ContainerList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_ContainerList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.c new file mode 100644 index 0000000..f854f93 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-ContainerPair.h" + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.h new file mode 100644 index 0000000..3fde757 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_ContainerPair_H_ +#define _ASN_NGAP_ProtocolIE_ContainerPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_ContainerPair_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.c new file mode 100644 index 0000000..3e53eef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-ContainerPairList.h" + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.h new file mode 100644 index 0000000..aadcf5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ContainerPairList.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_ContainerPairList_H_ +#define _ASN_NGAP_ProtocolIE_ContainerPairList_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_ContainerPairList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.c new file mode 100644 index 0000000..21f75f0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.c @@ -0,0 +1,51633 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-Field.h" + +static const long asn_VAL_1_ASN_NGAP_id_EndpointIPAddressAndPort = 169; +static const long asn_VAL_1_ASN_NGAP_reject = 0; +static const long asn_VAL_1_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_CPTransportLayerInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_1_ASN_NGAP_id_EndpointIPAddressAndPort }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_1_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EndpointIPAddressAndPort }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_1_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_CPTransportLayerInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_CPTransportLayerInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_2_ASN_NGAP_id_GlobalTNGF_ID = 240; +static const long asn_VAL_2_ASN_NGAP_reject = 0; +static const long asn_VAL_2_ASN_NGAP_mandatory = 2; +static const long asn_VAL_3_ASN_NGAP_id_GlobalTWIF_ID = 241; +static const long asn_VAL_3_ASN_NGAP_reject = 0; +static const long asn_VAL_3_ASN_NGAP_mandatory = 2; +static const long asn_VAL_4_ASN_NGAP_id_GlobalW_AGF_ID = 242; +static const long asn_VAL_4_ASN_NGAP_reject = 0; +static const long asn_VAL_4_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_GlobalRANNodeID_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_2_ASN_NGAP_id_GlobalTNGF_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_2_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalTNGF_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_2_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_3_ASN_NGAP_id_GlobalTWIF_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_3_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalTWIF_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_3_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_4_ASN_NGAP_id_GlobalW_AGF_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_4_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalW_AGF_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_4_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_GlobalRANNodeID_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_GlobalRANNodeID_ExtIEs_1_rows } +}; +static const long asn_VAL_5_ASN_NGAP_id_IntersystemSONInformationRequest = 290; +static const long asn_VAL_5_ASN_NGAP_ignore = 1; +static const long asn_VAL_5_ASN_NGAP_mandatory = 2; +static const long asn_VAL_6_ASN_NGAP_id_IntersystemSONInformationReply = 291; +static const long asn_VAL_6_ASN_NGAP_ignore = 1; +static const long asn_VAL_6_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_IntersystemSONInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_5_ASN_NGAP_id_IntersystemSONInformationRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_5_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemSONInformationRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_5_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_6_ASN_NGAP_id_IntersystemSONInformationReply }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_6_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemSONInformationReply }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_6_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_IntersystemSONInformation_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_IntersystemSONInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_7_ASN_NGAP_id_EnergySavingIndication = 292; +static const long asn_VAL_7_ASN_NGAP_ignore = 1; +static const long asn_VAL_7_ASN_NGAP_mandatory = 2; +static const long asn_VAL_8_ASN_NGAP_id_IntersystemResourceStatusUpdate = 293; +static const long asn_VAL_8_ASN_NGAP_ignore = 1; +static const long asn_VAL_8_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_7_ASN_NGAP_id_EnergySavingIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_7_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemCellStateIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_7_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_8_ASN_NGAP_id_IntersystemResourceStatusUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_8_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemResourceStatusReport }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_8_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_1_rows } +}; +static const long asn_VAL_45_ASN_NGAP_id_SONInformationReport = 252; +static const long asn_VAL_45_ASN_NGAP_ignore = 1; +static const long asn_VAL_45_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SONInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_45_ASN_NGAP_id_SONInformationReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_45_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SONInformationReport }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_45_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SONInformation_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_SONInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_46_ASN_NGAP_id_SuccessfulHandoverReportList = 294; +static const long asn_VAL_46_ASN_NGAP_ignore = 1; +static const long asn_VAL_46_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SONInformationReport_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_46_ASN_NGAP_id_SuccessfulHandoverReportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_46_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SuccessfulHandoverReportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_46_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SONInformationReport_ExtIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_SONInformationReport_ExtIEs_1_rows } +}; +static const long asn_VAL_47_ASN_NGAP_id_TargetRNC_ID = 178; +static const long asn_VAL_47_ASN_NGAP_reject = 0; +static const long asn_VAL_47_ASN_NGAP_mandatory = 2; +static const long asn_VAL_48_ASN_NGAP_id_TargetHomeENB_ID = 364; +static const long asn_VAL_48_ASN_NGAP_reject = 0; +static const long asn_VAL_48_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TargetID_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_47_ASN_NGAP_id_TargetRNC_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_47_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetRNC_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_47_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_48_ASN_NGAP_id_TargetHomeENB_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_48_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetHomeENB_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_48_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TargetID_ExtIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_TargetID_ExtIEs_1_rows } +}; +static const long asn_VAL_49_ASN_NGAP_id_UserLocationInformationTNGF = 244; +static const long asn_VAL_49_ASN_NGAP_ignore = 1; +static const long asn_VAL_49_ASN_NGAP_mandatory = 2; +static const long asn_VAL_50_ASN_NGAP_id_UserLocationInformationTWIF = 248; +static const long asn_VAL_50_ASN_NGAP_ignore = 1; +static const long asn_VAL_50_ASN_NGAP_mandatory = 2; +static const long asn_VAL_51_ASN_NGAP_id_UserLocationInformationW_AGF = 243; +static const long asn_VAL_51_ASN_NGAP_ignore = 1; +static const long asn_VAL_51_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformation_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_49_ASN_NGAP_id_UserLocationInformationTNGF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_49_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformationTNGF }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_49_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_50_ASN_NGAP_id_UserLocationInformationTWIF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_50_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformationTWIF }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_50_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_51_ASN_NGAP_id_UserLocationInformationW_AGF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_51_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformationW_AGF }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_51_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformation_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UserLocationInformation_ExtIEs_1_rows } +}; +static const long asn_VAL_52_ASN_NGAP_id_GlobalCable_ID = 275; +static const long asn_VAL_52_ASN_NGAP_ignore = 1; +static const long asn_VAL_52_ASN_NGAP_mandatory = 2; +static const long asn_VAL_53_ASN_NGAP_id_HFCNode_ID_new = 362; +static const long asn_VAL_53_ASN_NGAP_ignore = 1; +static const long asn_VAL_53_ASN_NGAP_mandatory = 2; +static const long asn_VAL_54_ASN_NGAP_id_GlobalCable_ID_new = 363; +static const long asn_VAL_54_ASN_NGAP_ignore = 1; +static const long asn_VAL_54_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_52_ASN_NGAP_id_GlobalCable_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_52_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalCable_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_52_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_53_ASN_NGAP_id_HFCNode_ID_new }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_53_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_HFCNode_ID_new }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_53_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_54_ASN_NGAP_id_GlobalCable_ID_new }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_54_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalCable_ID_new }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_54_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_1_rows } +}; +static const long asn_VAL_9_ASN_NGAP_id_MBS_SessionTNLInfo5GC = 352; +static const long asn_VAL_9_ASN_NGAP_reject = 0; +static const long asn_VAL_9_ASN_NGAP_optional = 0; +static const long asn_VAL_10_ASN_NGAP_id_MBS_QoSFlowsToBeSetupModList = 297; +static const long asn_VAL_10_ASN_NGAP_reject = 0; +static const long asn_VAL_10_ASN_NGAP_mandatory = 2; +static const long asn_VAL_11_ASN_NGAP_id_MBS_SessionFSAIDList = 357; +static const long asn_VAL_11_ASN_NGAP_ignore = 1; +static const long asn_VAL_11_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_9_ASN_NGAP_id_MBS_SessionTNLInfo5GC }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_9_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_9_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_10_ASN_NGAP_id_MBS_QoSFlowsToBeSetupModList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_10_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_10_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_11_ASN_NGAP_id_MBS_SessionFSAIDList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_11_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionFSAIDList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_11_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_1_rows } +}; +static const long asn_VAL_12_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_12_ASN_NGAP_reject = 0; +static const long asn_VAL_12_ASN_NGAP_mandatory = 2; +static const long asn_VAL_13_ASN_NGAP_id_MBS_ServiceArea = 298; +static const long asn_VAL_13_ASN_NGAP_reject = 0; +static const long asn_VAL_13_ASN_NGAP_optional = 0; +static const long asn_VAL_14_ASN_NGAP_id_MBS_QoSFlowsToBeSetupModList = 297; +static const long asn_VAL_14_ASN_NGAP_reject = 0; +static const long asn_VAL_14_ASN_NGAP_optional = 0; +static const long asn_VAL_15_ASN_NGAP_id_MBS_QoSFlowToReleaseList = 351; +static const long asn_VAL_15_ASN_NGAP_reject = 0; +static const long asn_VAL_15_ASN_NGAP_optional = 0; +static const long asn_VAL_16_ASN_NGAP_id_MBS_SessionTNLInfo5GC = 352; +static const long asn_VAL_16_ASN_NGAP_reject = 0; +static const long asn_VAL_16_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_12_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_12_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_12_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_13_ASN_NGAP_id_MBS_ServiceArea }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_13_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_ServiceArea }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_13_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_14_ASN_NGAP_id_MBS_QoSFlowsToBeSetupModList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_14_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_14_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_15_ASN_NGAP_id_MBS_QoSFlowToReleaseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_15_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QosFlowListWithCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_15_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_16_ASN_NGAP_id_MBS_SessionTNLInfo5GC }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_16_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_16_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_1_rows } +}; +static const long asn_VAL_17_ASN_NGAP_id_PDUSessionAggregateMaximumBitRate = 130; +static const long asn_VAL_17_ASN_NGAP_reject = 0; +static const long asn_VAL_17_ASN_NGAP_optional = 0; +static const long asn_VAL_18_ASN_NGAP_id_UL_NGU_UP_TNLModifyList = 140; +static const long asn_VAL_18_ASN_NGAP_reject = 0; +static const long asn_VAL_18_ASN_NGAP_optional = 0; +static const long asn_VAL_19_ASN_NGAP_id_NetworkInstance = 129; +static const long asn_VAL_19_ASN_NGAP_reject = 0; +static const long asn_VAL_19_ASN_NGAP_optional = 0; +static const long asn_VAL_20_ASN_NGAP_id_QosFlowAddOrModifyRequestList = 135; +static const long asn_VAL_20_ASN_NGAP_reject = 0; +static const long asn_VAL_20_ASN_NGAP_optional = 0; +static const long asn_VAL_21_ASN_NGAP_id_QosFlowToReleaseList = 137; +static const long asn_VAL_21_ASN_NGAP_reject = 0; +static const long asn_VAL_21_ASN_NGAP_optional = 0; +static const long asn_VAL_22_ASN_NGAP_id_AdditionalUL_NGU_UP_TNLInformation = 126; +static const long asn_VAL_22_ASN_NGAP_reject = 0; +static const long asn_VAL_22_ASN_NGAP_optional = 0; +static const long asn_VAL_23_ASN_NGAP_id_CommonNetworkInstance = 166; +static const long asn_VAL_23_ASN_NGAP_ignore = 1; +static const long asn_VAL_23_ASN_NGAP_optional = 0; +static const long asn_VAL_24_ASN_NGAP_id_AdditionalRedundantUL_NGU_UP_TNLInformation = 186; +static const long asn_VAL_24_ASN_NGAP_ignore = 1; +static const long asn_VAL_24_ASN_NGAP_optional = 0; +static const long asn_VAL_25_ASN_NGAP_id_RedundantCommonNetworkInstance = 190; +static const long asn_VAL_25_ASN_NGAP_ignore = 1; +static const long asn_VAL_25_ASN_NGAP_optional = 0; +static const long asn_VAL_26_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_26_ASN_NGAP_ignore = 1; +static const long asn_VAL_26_ASN_NGAP_optional = 0; +static const long asn_VAL_27_ASN_NGAP_id_SecurityIndication = 138; +static const long asn_VAL_27_ASN_NGAP_ignore = 1; +static const long asn_VAL_27_ASN_NGAP_optional = 0; +static const long asn_VAL_28_ASN_NGAP_id_MBSSessionSetuporModifyRequestList = 319; +static const long asn_VAL_28_ASN_NGAP_ignore = 1; +static const long asn_VAL_28_ASN_NGAP_optional = 0; +static const long asn_VAL_29_ASN_NGAP_id_MBSSessionToReleaseList = 317; +static const long asn_VAL_29_ASN_NGAP_ignore = 1; +static const long asn_VAL_29_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_17_ASN_NGAP_id_PDUSessionAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_17_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_17_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_18_ASN_NGAP_id_UL_NGU_UP_TNLModifyList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_18_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_18_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_19_ASN_NGAP_id_NetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_19_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_19_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_20_ASN_NGAP_id_QosFlowAddOrModifyRequestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_20_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_20_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_21_ASN_NGAP_id_QosFlowToReleaseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_21_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QosFlowListWithCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_21_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_22_ASN_NGAP_id_AdditionalUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_22_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_22_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_23_ASN_NGAP_id_CommonNetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_23_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CommonNetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_23_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_24_ASN_NGAP_id_AdditionalRedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_24_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_24_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_25_ASN_NGAP_id_RedundantCommonNetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_25_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CommonNetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_25_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_26_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_26_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_26_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_27_ASN_NGAP_id_SecurityIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_27_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_27_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_28_ASN_NGAP_id_MBSSessionSetuporModifyRequestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_28_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_28_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_29_ASN_NGAP_id_MBSSessionToReleaseList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_29_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionToReleaseList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_29_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_1[] = { + { 13, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_1_rows } +}; +static const long asn_VAL_30_ASN_NGAP_id_PDUSessionAggregateMaximumBitRate = 130; +static const long asn_VAL_30_ASN_NGAP_reject = 0; +static const long asn_VAL_30_ASN_NGAP_optional = 0; +static const long asn_VAL_31_ASN_NGAP_id_UL_NGU_UP_TNLInformation = 139; +static const long asn_VAL_31_ASN_NGAP_reject = 0; +static const long asn_VAL_31_ASN_NGAP_mandatory = 2; +static const long asn_VAL_32_ASN_NGAP_id_AdditionalUL_NGU_UP_TNLInformation = 126; +static const long asn_VAL_32_ASN_NGAP_reject = 0; +static const long asn_VAL_32_ASN_NGAP_optional = 0; +static const long asn_VAL_33_ASN_NGAP_id_DataForwardingNotPossible = 127; +static const long asn_VAL_33_ASN_NGAP_reject = 0; +static const long asn_VAL_33_ASN_NGAP_optional = 0; +static const long asn_VAL_34_ASN_NGAP_id_PDUSessionType = 134; +static const long asn_VAL_34_ASN_NGAP_reject = 0; +static const long asn_VAL_34_ASN_NGAP_mandatory = 2; +static const long asn_VAL_35_ASN_NGAP_id_SecurityIndication = 138; +static const long asn_VAL_35_ASN_NGAP_reject = 0; +static const long asn_VAL_35_ASN_NGAP_optional = 0; +static const long asn_VAL_36_ASN_NGAP_id_NetworkInstance = 129; +static const long asn_VAL_36_ASN_NGAP_reject = 0; +static const long asn_VAL_36_ASN_NGAP_optional = 0; +static const long asn_VAL_37_ASN_NGAP_id_QosFlowSetupRequestList = 136; +static const long asn_VAL_37_ASN_NGAP_reject = 0; +static const long asn_VAL_37_ASN_NGAP_mandatory = 2; +static const long asn_VAL_38_ASN_NGAP_id_CommonNetworkInstance = 166; +static const long asn_VAL_38_ASN_NGAP_ignore = 1; +static const long asn_VAL_38_ASN_NGAP_optional = 0; +static const long asn_VAL_39_ASN_NGAP_id_DirectForwardingPathAvailability = 22; +static const long asn_VAL_39_ASN_NGAP_ignore = 1; +static const long asn_VAL_39_ASN_NGAP_optional = 0; +static const long asn_VAL_40_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation = 195; +static const long asn_VAL_40_ASN_NGAP_ignore = 1; +static const long asn_VAL_40_ASN_NGAP_optional = 0; +static const long asn_VAL_41_ASN_NGAP_id_AdditionalRedundantUL_NGU_UP_TNLInformation = 186; +static const long asn_VAL_41_ASN_NGAP_ignore = 1; +static const long asn_VAL_41_ASN_NGAP_optional = 0; +static const long asn_VAL_42_ASN_NGAP_id_RedundantCommonNetworkInstance = 190; +static const long asn_VAL_42_ASN_NGAP_ignore = 1; +static const long asn_VAL_42_ASN_NGAP_optional = 0; +static const long asn_VAL_43_ASN_NGAP_id_RedundantPDUSessionInformation = 197; +static const long asn_VAL_43_ASN_NGAP_ignore = 1; +static const long asn_VAL_43_ASN_NGAP_optional = 0; +static const long asn_VAL_44_ASN_NGAP_id_MBSSessionSetupRequestList = 318; +static const long asn_VAL_44_ASN_NGAP_ignore = 1; +static const long asn_VAL_44_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_30_ASN_NGAP_id_PDUSessionAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_30_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_30_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_31_ASN_NGAP_id_UL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_31_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_31_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_32_ASN_NGAP_id_AdditionalUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_32_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_32_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_33_ASN_NGAP_id_DataForwardingNotPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_33_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_DataForwardingNotPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_33_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_34_ASN_NGAP_id_PDUSessionType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_34_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_34_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_35_ASN_NGAP_id_SecurityIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_35_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_35_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_36_ASN_NGAP_id_NetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_36_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_36_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_37_ASN_NGAP_id_QosFlowSetupRequestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_37_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QosFlowSetupRequestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_37_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_38_ASN_NGAP_id_CommonNetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_38_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CommonNetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_38_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_39_ASN_NGAP_id_DirectForwardingPathAvailability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_39_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_39_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_40_ASN_NGAP_id_RedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_40_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_40_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_41_ASN_NGAP_id_AdditionalRedundantUL_NGU_UP_TNLInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_41_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UPTransportLayerInformationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_41_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_42_ASN_NGAP_id_RedundantCommonNetworkInstance }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_42_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CommonNetworkInstance }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_42_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_43_ASN_NGAP_id_RedundantPDUSessionInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_43_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_43_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_44_ASN_NGAP_id_MBSSessionSetupRequestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_44_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBSSessionSetupRequestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_44_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_1[] = { + { 15, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_1_rows } +}; +static const long asn_VAL_55_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_55_ASN_NGAP_reject = 0; +static const long asn_VAL_55_ASN_NGAP_mandatory = 2; +static const long asn_VAL_56_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_56_ASN_NGAP_reject = 0; +static const long asn_VAL_56_ASN_NGAP_mandatory = 2; +static const long asn_VAL_57_ASN_NGAP_id_RANPagingPriority = 83; +static const long asn_VAL_57_ASN_NGAP_ignore = 1; +static const long asn_VAL_57_ASN_NGAP_optional = 0; +static const long asn_VAL_58_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_58_ASN_NGAP_reject = 0; +static const long asn_VAL_58_ASN_NGAP_optional = 0; +static const long asn_VAL_59_ASN_NGAP_id_PDUSessionResourceSetupListSUReq = 74; +static const long asn_VAL_59_ASN_NGAP_reject = 0; +static const long asn_VAL_59_ASN_NGAP_mandatory = 2; +static const long asn_VAL_60_ASN_NGAP_id_UEAggregateMaximumBitRate = 110; +static const long asn_VAL_60_ASN_NGAP_ignore = 1; +static const long asn_VAL_60_ASN_NGAP_optional = 0; +static const long asn_VAL_61_ASN_NGAP_id_UESliceMaximumBitRateList = 335; +static const long asn_VAL_61_ASN_NGAP_ignore = 1; +static const long asn_VAL_61_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_55_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_55_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_55_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_56_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_56_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_56_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_57_ASN_NGAP_id_RANPagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_57_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANPagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_57_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_58_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_58_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_58_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_59_ASN_NGAP_id_PDUSessionResourceSetupListSUReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_59_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_59_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_60_ASN_NGAP_id_UEAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_60_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_60_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_61_ASN_NGAP_id_UESliceMaximumBitRateList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_61_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_61_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestIEs_1_rows } +}; +static const long asn_VAL_62_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_62_ASN_NGAP_ignore = 1; +static const long asn_VAL_62_ASN_NGAP_mandatory = 2; +static const long asn_VAL_63_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_63_ASN_NGAP_ignore = 1; +static const long asn_VAL_63_ASN_NGAP_mandatory = 2; +static const long asn_VAL_64_ASN_NGAP_id_PDUSessionResourceSetupListSURes = 75; +static const long asn_VAL_64_ASN_NGAP_ignore = 1; +static const long asn_VAL_64_ASN_NGAP_optional = 0; +static const long asn_VAL_65_ASN_NGAP_id_PDUSessionResourceFailedToSetupListSURes = 58; +static const long asn_VAL_65_ASN_NGAP_ignore = 1; +static const long asn_VAL_65_ASN_NGAP_optional = 0; +static const long asn_VAL_66_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_66_ASN_NGAP_ignore = 1; +static const long asn_VAL_66_ASN_NGAP_optional = 0; +static const long asn_VAL_67_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_67_ASN_NGAP_ignore = 1; +static const long asn_VAL_67_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_62_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_62_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_62_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_63_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_63_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_63_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_64_ASN_NGAP_id_PDUSessionResourceSetupListSURes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_64_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_64_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_65_ASN_NGAP_id_PDUSessionResourceFailedToSetupListSURes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_65_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_65_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_66_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_66_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_66_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_67_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_67_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_67_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseIEs_1[] = { + { 6, 4, asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseIEs_1_rows } +}; +static const long asn_VAL_68_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_68_ASN_NGAP_reject = 0; +static const long asn_VAL_68_ASN_NGAP_mandatory = 2; +static const long asn_VAL_69_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_69_ASN_NGAP_reject = 0; +static const long asn_VAL_69_ASN_NGAP_mandatory = 2; +static const long asn_VAL_70_ASN_NGAP_id_RANPagingPriority = 83; +static const long asn_VAL_70_ASN_NGAP_ignore = 1; +static const long asn_VAL_70_ASN_NGAP_optional = 0; +static const long asn_VAL_71_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_71_ASN_NGAP_ignore = 1; +static const long asn_VAL_71_ASN_NGAP_optional = 0; +static const long asn_VAL_72_ASN_NGAP_id_PDUSessionResourceToReleaseListRelCmd = 79; +static const long asn_VAL_72_ASN_NGAP_reject = 0; +static const long asn_VAL_72_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_68_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_68_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_68_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_69_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_69_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_69_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_70_ASN_NGAP_id_RANPagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_70_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANPagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_70_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_71_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_71_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_71_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_72_ASN_NGAP_id_PDUSessionResourceToReleaseListRelCmd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_72_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_72_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_1_rows } +}; +static const long asn_VAL_73_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_73_ASN_NGAP_ignore = 1; +static const long asn_VAL_73_ASN_NGAP_mandatory = 2; +static const long asn_VAL_74_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_74_ASN_NGAP_ignore = 1; +static const long asn_VAL_74_ASN_NGAP_mandatory = 2; +static const long asn_VAL_75_ASN_NGAP_id_PDUSessionResourceReleasedListRelRes = 70; +static const long asn_VAL_75_ASN_NGAP_ignore = 1; +static const long asn_VAL_75_ASN_NGAP_mandatory = 2; +static const long asn_VAL_76_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_76_ASN_NGAP_ignore = 1; +static const long asn_VAL_76_ASN_NGAP_optional = 0; +static const long asn_VAL_77_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_77_ASN_NGAP_ignore = 1; +static const long asn_VAL_77_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_73_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_73_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_73_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_74_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_74_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_74_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_75_ASN_NGAP_id_PDUSessionResourceReleasedListRelRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_75_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_75_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_76_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_76_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_76_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_77_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_77_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_77_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_1_rows } +}; +static const long asn_VAL_78_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_78_ASN_NGAP_reject = 0; +static const long asn_VAL_78_ASN_NGAP_mandatory = 2; +static const long asn_VAL_79_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_79_ASN_NGAP_reject = 0; +static const long asn_VAL_79_ASN_NGAP_mandatory = 2; +static const long asn_VAL_80_ASN_NGAP_id_RANPagingPriority = 83; +static const long asn_VAL_80_ASN_NGAP_ignore = 1; +static const long asn_VAL_80_ASN_NGAP_optional = 0; +static const long asn_VAL_81_ASN_NGAP_id_PDUSessionResourceModifyListModReq = 64; +static const long asn_VAL_81_ASN_NGAP_reject = 0; +static const long asn_VAL_81_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_78_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_78_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_78_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_79_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_79_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_79_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_80_ASN_NGAP_id_RANPagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_80_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANPagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_80_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_81_ASN_NGAP_id_PDUSessionResourceModifyListModReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_81_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_81_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestIEs_1_rows } +}; +static const long asn_VAL_82_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_82_ASN_NGAP_ignore = 1; +static const long asn_VAL_82_ASN_NGAP_mandatory = 2; +static const long asn_VAL_83_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_83_ASN_NGAP_ignore = 1; +static const long asn_VAL_83_ASN_NGAP_mandatory = 2; +static const long asn_VAL_84_ASN_NGAP_id_PDUSessionResourceModifyListModRes = 65; +static const long asn_VAL_84_ASN_NGAP_ignore = 1; +static const long asn_VAL_84_ASN_NGAP_optional = 0; +static const long asn_VAL_85_ASN_NGAP_id_PDUSessionResourceFailedToModifyListModRes = 54; +static const long asn_VAL_85_ASN_NGAP_ignore = 1; +static const long asn_VAL_85_ASN_NGAP_optional = 0; +static const long asn_VAL_86_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_86_ASN_NGAP_ignore = 1; +static const long asn_VAL_86_ASN_NGAP_optional = 0; +static const long asn_VAL_87_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_87_ASN_NGAP_ignore = 1; +static const long asn_VAL_87_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_82_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_82_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_82_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_83_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_83_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_83_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_84_ASN_NGAP_id_PDUSessionResourceModifyListModRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_84_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_84_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_85_ASN_NGAP_id_PDUSessionResourceFailedToModifyListModRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_85_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_85_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_86_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_86_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_86_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_87_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_87_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_87_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseIEs_1[] = { + { 6, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseIEs_1_rows } +}; +static const long asn_VAL_88_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_88_ASN_NGAP_reject = 0; +static const long asn_VAL_88_ASN_NGAP_mandatory = 2; +static const long asn_VAL_89_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_89_ASN_NGAP_reject = 0; +static const long asn_VAL_89_ASN_NGAP_mandatory = 2; +static const long asn_VAL_90_ASN_NGAP_id_PDUSessionResourceNotifyList = 66; +static const long asn_VAL_90_ASN_NGAP_reject = 0; +static const long asn_VAL_90_ASN_NGAP_optional = 0; +static const long asn_VAL_91_ASN_NGAP_id_PDUSessionResourceReleasedListNot = 67; +static const long asn_VAL_91_ASN_NGAP_ignore = 1; +static const long asn_VAL_91_ASN_NGAP_optional = 0; +static const long asn_VAL_92_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_92_ASN_NGAP_ignore = 1; +static const long asn_VAL_92_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_88_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_88_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_88_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_89_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_89_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_89_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_90_ASN_NGAP_id_PDUSessionResourceNotifyList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_90_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_90_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_91_ASN_NGAP_id_PDUSessionResourceReleasedListNot }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_91_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_91_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_92_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_92_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_92_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceNotifyIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_PDUSessionResourceNotifyIEs_1_rows } +}; +static const long asn_VAL_93_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_93_ASN_NGAP_reject = 0; +static const long asn_VAL_93_ASN_NGAP_mandatory = 2; +static const long asn_VAL_94_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_94_ASN_NGAP_reject = 0; +static const long asn_VAL_94_ASN_NGAP_mandatory = 2; +static const long asn_VAL_95_ASN_NGAP_id_PDUSessionResourceModifyListModInd = 63; +static const long asn_VAL_95_ASN_NGAP_reject = 0; +static const long asn_VAL_95_ASN_NGAP_mandatory = 2; +static const long asn_VAL_96_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_96_ASN_NGAP_ignore = 1; +static const long asn_VAL_96_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_93_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_93_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_93_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_94_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_94_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_94_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_95_ASN_NGAP_id_PDUSessionResourceModifyListModInd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_95_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_95_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_96_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_96_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_96_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_1_rows } +}; +static const long asn_VAL_97_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_97_ASN_NGAP_ignore = 1; +static const long asn_VAL_97_ASN_NGAP_mandatory = 2; +static const long asn_VAL_98_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_98_ASN_NGAP_ignore = 1; +static const long asn_VAL_98_ASN_NGAP_mandatory = 2; +static const long asn_VAL_99_ASN_NGAP_id_PDUSessionResourceModifyListModCfm = 62; +static const long asn_VAL_99_ASN_NGAP_ignore = 1; +static const long asn_VAL_99_ASN_NGAP_optional = 0; +static const long asn_VAL_100_ASN_NGAP_id_PDUSessionResourceFailedToModifyListModCfm = 131; +static const long asn_VAL_100_ASN_NGAP_ignore = 1; +static const long asn_VAL_100_ASN_NGAP_optional = 0; +static const long asn_VAL_101_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_101_ASN_NGAP_ignore = 1; +static const long asn_VAL_101_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_97_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_97_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_97_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_98_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_98_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_98_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_99_ASN_NGAP_id_PDUSessionResourceModifyListModCfm }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_99_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_99_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_100_ASN_NGAP_id_PDUSessionResourceFailedToModifyListModCfm }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_100_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_100_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_101_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_101_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_101_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_1_rows } +}; +static const long asn_VAL_102_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_102_ASN_NGAP_reject = 0; +static const long asn_VAL_102_ASN_NGAP_mandatory = 2; +static const long asn_VAL_103_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_103_ASN_NGAP_reject = 0; +static const long asn_VAL_103_ASN_NGAP_mandatory = 2; +static const long asn_VAL_104_ASN_NGAP_id_OldAMF = 48; +static const long asn_VAL_104_ASN_NGAP_reject = 0; +static const long asn_VAL_104_ASN_NGAP_optional = 0; +static const long asn_VAL_105_ASN_NGAP_id_UEAggregateMaximumBitRate = 110; +static const long asn_VAL_105_ASN_NGAP_reject = 0; +static const long asn_VAL_105_ASN_NGAP_conditional = 1; +static const long asn_VAL_106_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive = 18; +static const long asn_VAL_106_ASN_NGAP_ignore = 1; +static const long asn_VAL_106_ASN_NGAP_optional = 0; +static const long asn_VAL_107_ASN_NGAP_id_GUAMI = 28; +static const long asn_VAL_107_ASN_NGAP_reject = 0; +static const long asn_VAL_107_ASN_NGAP_mandatory = 2; +static const long asn_VAL_108_ASN_NGAP_id_PDUSessionResourceSetupListCxtReq = 71; +static const long asn_VAL_108_ASN_NGAP_reject = 0; +static const long asn_VAL_108_ASN_NGAP_optional = 0; +static const long asn_VAL_109_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_109_ASN_NGAP_reject = 0; +static const long asn_VAL_109_ASN_NGAP_mandatory = 2; +static const long asn_VAL_110_ASN_NGAP_id_UESecurityCapabilities = 119; +static const long asn_VAL_110_ASN_NGAP_reject = 0; +static const long asn_VAL_110_ASN_NGAP_mandatory = 2; +static const long asn_VAL_111_ASN_NGAP_id_SecurityKey = 94; +static const long asn_VAL_111_ASN_NGAP_reject = 0; +static const long asn_VAL_111_ASN_NGAP_mandatory = 2; +static const long asn_VAL_112_ASN_NGAP_id_TraceActivation = 108; +static const long asn_VAL_112_ASN_NGAP_ignore = 1; +static const long asn_VAL_112_ASN_NGAP_optional = 0; +static const long asn_VAL_113_ASN_NGAP_id_MobilityRestrictionList = 36; +static const long asn_VAL_113_ASN_NGAP_ignore = 1; +static const long asn_VAL_113_ASN_NGAP_optional = 0; +static const long asn_VAL_114_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_114_ASN_NGAP_ignore = 1; +static const long asn_VAL_114_ASN_NGAP_optional = 0; +static const long asn_VAL_115_ASN_NGAP_id_IndexToRFSP = 31; +static const long asn_VAL_115_ASN_NGAP_ignore = 1; +static const long asn_VAL_115_ASN_NGAP_optional = 0; +static const long asn_VAL_116_ASN_NGAP_id_MaskedIMEISV = 34; +static const long asn_VAL_116_ASN_NGAP_ignore = 1; +static const long asn_VAL_116_ASN_NGAP_optional = 0; +static const long asn_VAL_117_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_117_ASN_NGAP_ignore = 1; +static const long asn_VAL_117_ASN_NGAP_optional = 0; +static const long asn_VAL_118_ASN_NGAP_id_EmergencyFallbackIndicator = 24; +static const long asn_VAL_118_ASN_NGAP_reject = 0; +static const long asn_VAL_118_ASN_NGAP_optional = 0; +static const long asn_VAL_119_ASN_NGAP_id_RRCInactiveTransitionReportRequest = 91; +static const long asn_VAL_119_ASN_NGAP_ignore = 1; +static const long asn_VAL_119_ASN_NGAP_optional = 0; +static const long asn_VAL_120_ASN_NGAP_id_UERadioCapabilityForPaging = 118; +static const long asn_VAL_120_ASN_NGAP_ignore = 1; +static const long asn_VAL_120_ASN_NGAP_optional = 0; +static const long asn_VAL_121_ASN_NGAP_id_RedirectionVoiceFallback = 146; +static const long asn_VAL_121_ASN_NGAP_ignore = 1; +static const long asn_VAL_121_ASN_NGAP_optional = 0; +static const long asn_VAL_122_ASN_NGAP_id_LocationReportingRequestType = 33; +static const long asn_VAL_122_ASN_NGAP_ignore = 1; +static const long asn_VAL_122_ASN_NGAP_optional = 0; +static const long asn_VAL_123_ASN_NGAP_id_CNAssistedRANTuning = 165; +static const long asn_VAL_123_ASN_NGAP_ignore = 1; +static const long asn_VAL_123_ASN_NGAP_optional = 0; +static const long asn_VAL_124_ASN_NGAP_id_SRVCCOperationPossible = 177; +static const long asn_VAL_124_ASN_NGAP_ignore = 1; +static const long asn_VAL_124_ASN_NGAP_optional = 0; +static const long asn_VAL_125_ASN_NGAP_id_IAB_Authorized = 199; +static const long asn_VAL_125_ASN_NGAP_ignore = 1; +static const long asn_VAL_125_ASN_NGAP_optional = 0; +static const long asn_VAL_126_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_126_ASN_NGAP_ignore = 1; +static const long asn_VAL_126_ASN_NGAP_optional = 0; +static const long asn_VAL_127_ASN_NGAP_id_Extended_ConnectedTime = 206; +static const long asn_VAL_127_ASN_NGAP_ignore = 1; +static const long asn_VAL_127_ASN_NGAP_optional = 0; +static const long asn_VAL_128_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_128_ASN_NGAP_ignore = 1; +static const long asn_VAL_128_ASN_NGAP_optional = 0; +static const long asn_VAL_129_ASN_NGAP_id_NRV2XServicesAuthorized = 216; +static const long asn_VAL_129_ASN_NGAP_ignore = 1; +static const long asn_VAL_129_ASN_NGAP_optional = 0; +static const long asn_VAL_130_ASN_NGAP_id_LTEV2XServicesAuthorized = 215; +static const long asn_VAL_130_ASN_NGAP_ignore = 1; +static const long asn_VAL_130_ASN_NGAP_optional = 0; +static const long asn_VAL_131_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate = 218; +static const long asn_VAL_131_ASN_NGAP_ignore = 1; +static const long asn_VAL_131_ASN_NGAP_optional = 0; +static const long asn_VAL_132_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate = 217; +static const long asn_VAL_132_ASN_NGAP_ignore = 1; +static const long asn_VAL_132_ASN_NGAP_optional = 0; +static const long asn_VAL_133_ASN_NGAP_id_PC5QoSParameters = 219; +static const long asn_VAL_133_ASN_NGAP_ignore = 1; +static const long asn_VAL_133_ASN_NGAP_optional = 0; +static const long asn_VAL_134_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_134_ASN_NGAP_ignore = 1; +static const long asn_VAL_134_ASN_NGAP_optional = 0; +static const long asn_VAL_135_ASN_NGAP_id_UE_UP_CIoT_Support = 234; +static const long asn_VAL_135_ASN_NGAP_ignore = 1; +static const long asn_VAL_135_ASN_NGAP_optional = 0; +static const long asn_VAL_136_ASN_NGAP_id_RGLevelWirelineAccessCharacteristics = 238; +static const long asn_VAL_136_ASN_NGAP_ignore = 1; +static const long asn_VAL_136_ASN_NGAP_optional = 0; +static const long asn_VAL_137_ASN_NGAP_id_ManagementBasedMDTPLMNList = 254; +static const long asn_VAL_137_ASN_NGAP_ignore = 1; +static const long asn_VAL_137_ASN_NGAP_optional = 0; +static const long asn_VAL_138_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_138_ASN_NGAP_reject = 0; +static const long asn_VAL_138_ASN_NGAP_optional = 0; +static const long asn_VAL_139_ASN_NGAP_id_TimeSyncAssistanceInfo = 326; +static const long asn_VAL_139_ASN_NGAP_ignore = 1; +static const long asn_VAL_139_ASN_NGAP_optional = 0; +static const long asn_VAL_140_ASN_NGAP_id_QMCConfigInfo = 328; +static const long asn_VAL_140_ASN_NGAP_ignore = 1; +static const long asn_VAL_140_ASN_NGAP_optional = 0; +static const long asn_VAL_141_ASN_NGAP_id_TargetNSSAIInformation = 334; +static const long asn_VAL_141_ASN_NGAP_ignore = 1; +static const long asn_VAL_141_ASN_NGAP_optional = 0; +static const long asn_VAL_142_ASN_NGAP_id_UESliceMaximumBitRateList = 335; +static const long asn_VAL_142_ASN_NGAP_ignore = 1; +static const long asn_VAL_142_ASN_NGAP_optional = 0; +static const long asn_VAL_143_ASN_NGAP_id_FiveG_ProSeAuthorized = 345; +static const long asn_VAL_143_ASN_NGAP_ignore = 1; +static const long asn_VAL_143_ASN_NGAP_optional = 0; +static const long asn_VAL_144_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate = 346; +static const long asn_VAL_144_ASN_NGAP_ignore = 1; +static const long asn_VAL_144_ASN_NGAP_optional = 0; +static const long asn_VAL_145_ASN_NGAP_id_FiveG_ProSePC5QoSParameters = 347; +static const long asn_VAL_145_ASN_NGAP_ignore = 1; +static const long asn_VAL_145_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_InitialContextSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_102_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_102_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_102_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_103_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_103_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_103_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_104_ASN_NGAP_id_OldAMF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_104_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_104_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_105_ASN_NGAP_id_UEAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_105_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_105_ASN_NGAP_conditional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_106_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_106_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_106_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_107_ASN_NGAP_id_GUAMI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_107_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GUAMI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_107_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_108_ASN_NGAP_id_PDUSessionResourceSetupListCxtReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_108_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_108_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_109_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_109_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_109_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_110_ASN_NGAP_id_UESecurityCapabilities }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_110_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESecurityCapabilities }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_110_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_111_ASN_NGAP_id_SecurityKey }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_111_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityKey }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_111_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_112_ASN_NGAP_id_TraceActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_112_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TraceActivation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_112_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_113_ASN_NGAP_id_MobilityRestrictionList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_113_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MobilityRestrictionList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_113_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_114_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_114_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_114_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_115_ASN_NGAP_id_IndexToRFSP }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_115_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IndexToRFSP }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_115_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_116_ASN_NGAP_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_116_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_116_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_117_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_117_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_117_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_118_ASN_NGAP_id_EmergencyFallbackIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_118_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EmergencyFallbackIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_118_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_119_ASN_NGAP_id_RRCInactiveTransitionReportRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_119_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_119_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_120_ASN_NGAP_id_UERadioCapabilityForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_120_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_120_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_121_ASN_NGAP_id_RedirectionVoiceFallback }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_121_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedirectionVoiceFallback }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_121_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_122_ASN_NGAP_id_LocationReportingRequestType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_122_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingRequestType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_122_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_123_ASN_NGAP_id_CNAssistedRANTuning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_123_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CNAssistedRANTuning }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_123_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_124_ASN_NGAP_id_SRVCCOperationPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_124_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SRVCCOperationPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_124_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_125_ASN_NGAP_id_IAB_Authorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_125_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IAB_Authorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_125_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_126_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_126_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_126_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_127_ASN_NGAP_id_Extended_ConnectedTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_127_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_ConnectedTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_127_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_128_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_128_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_128_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_129_ASN_NGAP_id_NRV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_129_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_129_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_130_ASN_NGAP_id_LTEV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_130_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_130_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_131_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_131_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_131_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_132_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_132_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_132_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_133_ASN_NGAP_id_PC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_133_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_133_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_134_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_134_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_134_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_135_ASN_NGAP_id_UE_UP_CIoT_Support }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_135_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_135_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_136_ASN_NGAP_id_RGLevelWirelineAccessCharacteristics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_136_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_136_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_137_ASN_NGAP_id_ManagementBasedMDTPLMNList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_137_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MDTPLMNList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_137_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_138_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_138_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_138_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_139_ASN_NGAP_id_TimeSyncAssistanceInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_139_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_139_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_140_ASN_NGAP_id_QMCConfigInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_140_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QMCConfigInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_140_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_141_ASN_NGAP_id_TargetNSSAIInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_141_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetNSSAIInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_141_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_142_ASN_NGAP_id_UESliceMaximumBitRateList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_142_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_142_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_143_ASN_NGAP_id_FiveG_ProSeAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_143_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_143_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_144_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_144_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_144_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_145_ASN_NGAP_id_FiveG_ProSePC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_145_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_145_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_InitialContextSetupRequestIEs_1[] = { + { 44, 4, asn_IOS_ASN_NGAP_InitialContextSetupRequestIEs_1_rows } +}; +static const long asn_VAL_146_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_146_ASN_NGAP_ignore = 1; +static const long asn_VAL_146_ASN_NGAP_mandatory = 2; +static const long asn_VAL_147_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_147_ASN_NGAP_ignore = 1; +static const long asn_VAL_147_ASN_NGAP_mandatory = 2; +static const long asn_VAL_148_ASN_NGAP_id_PDUSessionResourceSetupListCxtRes = 72; +static const long asn_VAL_148_ASN_NGAP_ignore = 1; +static const long asn_VAL_148_ASN_NGAP_optional = 0; +static const long asn_VAL_149_ASN_NGAP_id_PDUSessionResourceFailedToSetupListCxtRes = 55; +static const long asn_VAL_149_ASN_NGAP_ignore = 1; +static const long asn_VAL_149_ASN_NGAP_optional = 0; +static const long asn_VAL_150_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_150_ASN_NGAP_ignore = 1; +static const long asn_VAL_150_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_InitialContextSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_146_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_146_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_146_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_147_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_147_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_147_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_148_ASN_NGAP_id_PDUSessionResourceSetupListCxtRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_148_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_148_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_149_ASN_NGAP_id_PDUSessionResourceFailedToSetupListCxtRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_149_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_149_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_150_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_150_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_150_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_InitialContextSetupResponseIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_InitialContextSetupResponseIEs_1_rows } +}; +static const long asn_VAL_151_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_151_ASN_NGAP_ignore = 1; +static const long asn_VAL_151_ASN_NGAP_mandatory = 2; +static const long asn_VAL_152_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_152_ASN_NGAP_ignore = 1; +static const long asn_VAL_152_ASN_NGAP_mandatory = 2; +static const long asn_VAL_153_ASN_NGAP_id_PDUSessionResourceFailedToSetupListCxtFail = 132; +static const long asn_VAL_153_ASN_NGAP_ignore = 1; +static const long asn_VAL_153_ASN_NGAP_optional = 0; +static const long asn_VAL_154_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_154_ASN_NGAP_ignore = 1; +static const long asn_VAL_154_ASN_NGAP_mandatory = 2; +static const long asn_VAL_155_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_155_ASN_NGAP_ignore = 1; +static const long asn_VAL_155_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_InitialContextSetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_151_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_151_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_151_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_152_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_152_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_152_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_153_ASN_NGAP_id_PDUSessionResourceFailedToSetupListCxtFail }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_153_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_153_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_154_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_154_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_154_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_155_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_155_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_155_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_InitialContextSetupFailureIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_InitialContextSetupFailureIEs_1_rows } +}; +static const long asn_VAL_156_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_156_ASN_NGAP_reject = 0; +static const long asn_VAL_156_ASN_NGAP_mandatory = 2; +static const long asn_VAL_157_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_157_ASN_NGAP_reject = 0; +static const long asn_VAL_157_ASN_NGAP_mandatory = 2; +static const long asn_VAL_158_ASN_NGAP_id_PDUSessionResourceListCxtRelReq = 133; +static const long asn_VAL_158_ASN_NGAP_reject = 0; +static const long asn_VAL_158_ASN_NGAP_optional = 0; +static const long asn_VAL_159_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_159_ASN_NGAP_ignore = 1; +static const long asn_VAL_159_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextReleaseRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_156_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_156_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_156_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_157_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_157_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_157_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_158_ASN_NGAP_id_PDUSessionResourceListCxtRelReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_158_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_158_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_159_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_159_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_159_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextReleaseRequest_IEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UEContextReleaseRequest_IEs_1_rows } +}; +static const long asn_VAL_160_ASN_NGAP_id_UE_NGAP_IDs = 114; +static const long asn_VAL_160_ASN_NGAP_reject = 0; +static const long asn_VAL_160_ASN_NGAP_mandatory = 2; +static const long asn_VAL_161_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_161_ASN_NGAP_ignore = 1; +static const long asn_VAL_161_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextReleaseCommand_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_160_ASN_NGAP_id_UE_NGAP_IDs }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_160_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_NGAP_IDs }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_160_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_161_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_161_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_161_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextReleaseCommand_IEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_UEContextReleaseCommand_IEs_1_rows } +}; +static const long asn_VAL_162_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_162_ASN_NGAP_ignore = 1; +static const long asn_VAL_162_ASN_NGAP_mandatory = 2; +static const long asn_VAL_163_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_163_ASN_NGAP_ignore = 1; +static const long asn_VAL_163_ASN_NGAP_mandatory = 2; +static const long asn_VAL_164_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_164_ASN_NGAP_ignore = 1; +static const long asn_VAL_164_ASN_NGAP_optional = 0; +static const long asn_VAL_165_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging = 32; +static const long asn_VAL_165_ASN_NGAP_ignore = 1; +static const long asn_VAL_165_ASN_NGAP_optional = 0; +static const long asn_VAL_166_ASN_NGAP_id_PDUSessionResourceListCxtRelCpl = 60; +static const long asn_VAL_166_ASN_NGAP_reject = 0; +static const long asn_VAL_166_ASN_NGAP_optional = 0; +static const long asn_VAL_167_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_167_ASN_NGAP_ignore = 1; +static const long asn_VAL_167_ASN_NGAP_optional = 0; +static const long asn_VAL_168_ASN_NGAP_id_PagingAssisDataforCEcapabUE = 207; +static const long asn_VAL_168_ASN_NGAP_ignore = 1; +static const long asn_VAL_168_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextReleaseComplete_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_162_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_162_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_162_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_163_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_163_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_163_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_164_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_164_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_164_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_165_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_165_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_165_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_166_ASN_NGAP_id_PDUSessionResourceListCxtRelCpl }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_166_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_166_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_167_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_167_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_167_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_168_ASN_NGAP_id_PagingAssisDataforCEcapabUE }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_168_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_168_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextReleaseComplete_IEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_UEContextReleaseComplete_IEs_1_rows } +}; +static const long asn_VAL_169_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_169_ASN_NGAP_reject = 0; +static const long asn_VAL_169_ASN_NGAP_mandatory = 2; +static const long asn_VAL_170_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_170_ASN_NGAP_reject = 0; +static const long asn_VAL_170_ASN_NGAP_mandatory = 2; +static const long asn_VAL_171_ASN_NGAP_id_RRC_Resume_Cause = 237; +static const long asn_VAL_171_ASN_NGAP_ignore = 1; +static const long asn_VAL_171_ASN_NGAP_mandatory = 2; +static const long asn_VAL_172_ASN_NGAP_id_PDUSessionResourceResumeListRESReq = 232; +static const long asn_VAL_172_ASN_NGAP_reject = 0; +static const long asn_VAL_172_ASN_NGAP_optional = 0; +static const long asn_VAL_173_ASN_NGAP_id_PDUSessionResourceFailedToResumeListRESReq = 229; +static const long asn_VAL_173_ASN_NGAP_reject = 0; +static const long asn_VAL_173_ASN_NGAP_optional = 0; +static const long asn_VAL_174_ASN_NGAP_id_Suspend_Request_Indication = 235; +static const long asn_VAL_174_ASN_NGAP_ignore = 1; +static const long asn_VAL_174_ASN_NGAP_optional = 0; +static const long asn_VAL_175_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging = 32; +static const long asn_VAL_175_ASN_NGAP_ignore = 1; +static const long asn_VAL_175_ASN_NGAP_optional = 0; +static const long asn_VAL_176_ASN_NGAP_id_PagingAssisDataforCEcapabUE = 207; +static const long asn_VAL_176_ASN_NGAP_ignore = 1; +static const long asn_VAL_176_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextResumeRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_169_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_169_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_169_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_170_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_170_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_170_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_171_ASN_NGAP_id_RRC_Resume_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_171_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCEstablishmentCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_171_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_172_ASN_NGAP_id_PDUSessionResourceResumeListRESReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_172_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_172_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_173_ASN_NGAP_id_PDUSessionResourceFailedToResumeListRESReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_173_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_173_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_174_ASN_NGAP_id_Suspend_Request_Indication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_174_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Suspend_Request_Indication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_174_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_175_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_175_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_175_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_176_ASN_NGAP_id_PagingAssisDataforCEcapabUE }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_176_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_176_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextResumeRequestIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_UEContextResumeRequestIEs_1_rows } +}; +static const long asn_VAL_177_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_177_ASN_NGAP_ignore = 1; +static const long asn_VAL_177_ASN_NGAP_mandatory = 2; +static const long asn_VAL_178_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_178_ASN_NGAP_ignore = 1; +static const long asn_VAL_178_ASN_NGAP_mandatory = 2; +static const long asn_VAL_179_ASN_NGAP_id_PDUSessionResourceResumeListRESRes = 233; +static const long asn_VAL_179_ASN_NGAP_reject = 0; +static const long asn_VAL_179_ASN_NGAP_optional = 0; +static const long asn_VAL_180_ASN_NGAP_id_PDUSessionResourceFailedToResumeListRESRes = 230; +static const long asn_VAL_180_ASN_NGAP_reject = 0; +static const long asn_VAL_180_ASN_NGAP_optional = 0; +static const long asn_VAL_181_ASN_NGAP_id_SecurityContext = 93; +static const long asn_VAL_181_ASN_NGAP_reject = 0; +static const long asn_VAL_181_ASN_NGAP_optional = 0; +static const long asn_VAL_182_ASN_NGAP_id_Suspend_Response_Indication = 236; +static const long asn_VAL_182_ASN_NGAP_ignore = 1; +static const long asn_VAL_182_ASN_NGAP_optional = 0; +static const long asn_VAL_183_ASN_NGAP_id_Extended_ConnectedTime = 206; +static const long asn_VAL_183_ASN_NGAP_ignore = 1; +static const long asn_VAL_183_ASN_NGAP_optional = 0; +static const long asn_VAL_184_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_184_ASN_NGAP_ignore = 1; +static const long asn_VAL_184_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextResumeResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_177_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_177_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_177_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_178_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_178_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_178_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_179_ASN_NGAP_id_PDUSessionResourceResumeListRESRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_179_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_179_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_180_ASN_NGAP_id_PDUSessionResourceFailedToResumeListRESRes }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_180_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_180_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_181_ASN_NGAP_id_SecurityContext }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_181_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityContext }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_181_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_182_ASN_NGAP_id_Suspend_Response_Indication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_182_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Suspend_Response_Indication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_182_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_183_ASN_NGAP_id_Extended_ConnectedTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_183_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_ConnectedTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_183_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_184_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_184_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_184_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextResumeResponseIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_UEContextResumeResponseIEs_1_rows } +}; +static const long asn_VAL_185_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_185_ASN_NGAP_ignore = 1; +static const long asn_VAL_185_ASN_NGAP_mandatory = 2; +static const long asn_VAL_186_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_186_ASN_NGAP_ignore = 1; +static const long asn_VAL_186_ASN_NGAP_mandatory = 2; +static const long asn_VAL_187_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_187_ASN_NGAP_ignore = 1; +static const long asn_VAL_187_ASN_NGAP_mandatory = 2; +static const long asn_VAL_188_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_188_ASN_NGAP_ignore = 1; +static const long asn_VAL_188_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextResumeFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_185_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_185_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_185_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_186_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_186_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_186_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_187_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_187_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_187_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_188_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_188_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_188_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextResumeFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UEContextResumeFailureIEs_1_rows } +}; +static const long asn_VAL_189_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_189_ASN_NGAP_reject = 0; +static const long asn_VAL_189_ASN_NGAP_mandatory = 2; +static const long asn_VAL_190_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_190_ASN_NGAP_reject = 0; +static const long asn_VAL_190_ASN_NGAP_mandatory = 2; +static const long asn_VAL_191_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging = 32; +static const long asn_VAL_191_ASN_NGAP_ignore = 1; +static const long asn_VAL_191_ASN_NGAP_optional = 0; +static const long asn_VAL_192_ASN_NGAP_id_PagingAssisDataforCEcapabUE = 207; +static const long asn_VAL_192_ASN_NGAP_ignore = 1; +static const long asn_VAL_192_ASN_NGAP_optional = 0; +static const long asn_VAL_193_ASN_NGAP_id_PDUSessionResourceSuspendListSUSReq = 231; +static const long asn_VAL_193_ASN_NGAP_reject = 0; +static const long asn_VAL_193_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextSuspendRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_189_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_189_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_189_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_190_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_190_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_190_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_191_ASN_NGAP_id_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_191_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_191_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_192_ASN_NGAP_id_PagingAssisDataforCEcapabUE }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_192_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_192_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_193_ASN_NGAP_id_PDUSessionResourceSuspendListSUSReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_193_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_193_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextSuspendRequestIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_UEContextSuspendRequestIEs_1_rows } +}; +static const long asn_VAL_194_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_194_ASN_NGAP_ignore = 1; +static const long asn_VAL_194_ASN_NGAP_mandatory = 2; +static const long asn_VAL_195_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_195_ASN_NGAP_ignore = 1; +static const long asn_VAL_195_ASN_NGAP_mandatory = 2; +static const long asn_VAL_196_ASN_NGAP_id_SecurityContext = 93; +static const long asn_VAL_196_ASN_NGAP_reject = 0; +static const long asn_VAL_196_ASN_NGAP_optional = 0; +static const long asn_VAL_197_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_197_ASN_NGAP_ignore = 1; +static const long asn_VAL_197_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextSuspendResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_194_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_194_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_194_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_195_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_195_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_195_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_196_ASN_NGAP_id_SecurityContext }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_196_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityContext }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_196_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_197_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_197_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_197_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextSuspendResponseIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UEContextSuspendResponseIEs_1_rows } +}; +static const long asn_VAL_198_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_198_ASN_NGAP_ignore = 1; +static const long asn_VAL_198_ASN_NGAP_mandatory = 2; +static const long asn_VAL_199_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_199_ASN_NGAP_ignore = 1; +static const long asn_VAL_199_ASN_NGAP_mandatory = 2; +static const long asn_VAL_200_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_200_ASN_NGAP_ignore = 1; +static const long asn_VAL_200_ASN_NGAP_mandatory = 2; +static const long asn_VAL_201_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_201_ASN_NGAP_ignore = 1; +static const long asn_VAL_201_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextSuspendFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_198_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_198_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_198_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_199_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_199_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_199_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_200_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_200_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_200_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_201_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_201_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_201_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextSuspendFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UEContextSuspendFailureIEs_1_rows } +}; +static const long asn_VAL_202_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_202_ASN_NGAP_reject = 0; +static const long asn_VAL_202_ASN_NGAP_mandatory = 2; +static const long asn_VAL_203_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_203_ASN_NGAP_reject = 0; +static const long asn_VAL_203_ASN_NGAP_mandatory = 2; +static const long asn_VAL_204_ASN_NGAP_id_RANPagingPriority = 83; +static const long asn_VAL_204_ASN_NGAP_ignore = 1; +static const long asn_VAL_204_ASN_NGAP_optional = 0; +static const long asn_VAL_205_ASN_NGAP_id_SecurityKey = 94; +static const long asn_VAL_205_ASN_NGAP_reject = 0; +static const long asn_VAL_205_ASN_NGAP_optional = 0; +static const long asn_VAL_206_ASN_NGAP_id_IndexToRFSP = 31; +static const long asn_VAL_206_ASN_NGAP_ignore = 1; +static const long asn_VAL_206_ASN_NGAP_optional = 0; +static const long asn_VAL_207_ASN_NGAP_id_UEAggregateMaximumBitRate = 110; +static const long asn_VAL_207_ASN_NGAP_ignore = 1; +static const long asn_VAL_207_ASN_NGAP_optional = 0; +static const long asn_VAL_208_ASN_NGAP_id_UESecurityCapabilities = 119; +static const long asn_VAL_208_ASN_NGAP_reject = 0; +static const long asn_VAL_208_ASN_NGAP_optional = 0; +static const long asn_VAL_209_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive = 18; +static const long asn_VAL_209_ASN_NGAP_ignore = 1; +static const long asn_VAL_209_ASN_NGAP_optional = 0; +static const long asn_VAL_210_ASN_NGAP_id_EmergencyFallbackIndicator = 24; +static const long asn_VAL_210_ASN_NGAP_reject = 0; +static const long asn_VAL_210_ASN_NGAP_optional = 0; +static const long asn_VAL_211_ASN_NGAP_id_NewAMF_UE_NGAP_ID = 40; +static const long asn_VAL_211_ASN_NGAP_reject = 0; +static const long asn_VAL_211_ASN_NGAP_optional = 0; +static const long asn_VAL_212_ASN_NGAP_id_RRCInactiveTransitionReportRequest = 91; +static const long asn_VAL_212_ASN_NGAP_ignore = 1; +static const long asn_VAL_212_ASN_NGAP_optional = 0; +static const long asn_VAL_213_ASN_NGAP_id_NewGUAMI = 162; +static const long asn_VAL_213_ASN_NGAP_reject = 0; +static const long asn_VAL_213_ASN_NGAP_optional = 0; +static const long asn_VAL_214_ASN_NGAP_id_CNAssistedRANTuning = 165; +static const long asn_VAL_214_ASN_NGAP_ignore = 1; +static const long asn_VAL_214_ASN_NGAP_optional = 0; +static const long asn_VAL_215_ASN_NGAP_id_SRVCCOperationPossible = 177; +static const long asn_VAL_215_ASN_NGAP_ignore = 1; +static const long asn_VAL_215_ASN_NGAP_optional = 0; +static const long asn_VAL_216_ASN_NGAP_id_IAB_Authorized = 199; +static const long asn_VAL_216_ASN_NGAP_ignore = 1; +static const long asn_VAL_216_ASN_NGAP_optional = 0; +static const long asn_VAL_217_ASN_NGAP_id_NRV2XServicesAuthorized = 216; +static const long asn_VAL_217_ASN_NGAP_ignore = 1; +static const long asn_VAL_217_ASN_NGAP_optional = 0; +static const long asn_VAL_218_ASN_NGAP_id_LTEV2XServicesAuthorized = 215; +static const long asn_VAL_218_ASN_NGAP_ignore = 1; +static const long asn_VAL_218_ASN_NGAP_optional = 0; +static const long asn_VAL_219_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate = 218; +static const long asn_VAL_219_ASN_NGAP_ignore = 1; +static const long asn_VAL_219_ASN_NGAP_optional = 0; +static const long asn_VAL_220_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate = 217; +static const long asn_VAL_220_ASN_NGAP_ignore = 1; +static const long asn_VAL_220_ASN_NGAP_optional = 0; +static const long asn_VAL_221_ASN_NGAP_id_PC5QoSParameters = 219; +static const long asn_VAL_221_ASN_NGAP_ignore = 1; +static const long asn_VAL_221_ASN_NGAP_optional = 0; +static const long asn_VAL_222_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_222_ASN_NGAP_reject = 0; +static const long asn_VAL_222_ASN_NGAP_optional = 0; +static const long asn_VAL_223_ASN_NGAP_id_RGLevelWirelineAccessCharacteristics = 238; +static const long asn_VAL_223_ASN_NGAP_ignore = 1; +static const long asn_VAL_223_ASN_NGAP_optional = 0; +static const long asn_VAL_224_ASN_NGAP_id_TimeSyncAssistanceInfo = 326; +static const long asn_VAL_224_ASN_NGAP_ignore = 1; +static const long asn_VAL_224_ASN_NGAP_optional = 0; +static const long asn_VAL_225_ASN_NGAP_id_QMCConfigInfo = 328; +static const long asn_VAL_225_ASN_NGAP_ignore = 1; +static const long asn_VAL_225_ASN_NGAP_optional = 0; +static const long asn_VAL_226_ASN_NGAP_id_QMCDeactivation = 329; +static const long asn_VAL_226_ASN_NGAP_ignore = 1; +static const long asn_VAL_226_ASN_NGAP_optional = 0; +static const long asn_VAL_227_ASN_NGAP_id_UESliceMaximumBitRateList = 335; +static const long asn_VAL_227_ASN_NGAP_ignore = 1; +static const long asn_VAL_227_ASN_NGAP_optional = 0; +static const long asn_VAL_228_ASN_NGAP_id_ManagementBasedMDTPLMNModificationList = 359; +static const long asn_VAL_228_ASN_NGAP_ignore = 1; +static const long asn_VAL_228_ASN_NGAP_optional = 0; +static const long asn_VAL_229_ASN_NGAP_id_FiveG_ProSeAuthorized = 345; +static const long asn_VAL_229_ASN_NGAP_ignore = 1; +static const long asn_VAL_229_ASN_NGAP_optional = 0; +static const long asn_VAL_230_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate = 346; +static const long asn_VAL_230_ASN_NGAP_ignore = 1; +static const long asn_VAL_230_ASN_NGAP_optional = 0; +static const long asn_VAL_231_ASN_NGAP_id_FiveG_ProSePC5QoSParameters = 347; +static const long asn_VAL_231_ASN_NGAP_ignore = 1; +static const long asn_VAL_231_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextModificationRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_202_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_202_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_202_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_203_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_203_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_203_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_204_ASN_NGAP_id_RANPagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_204_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANPagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_204_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_205_ASN_NGAP_id_SecurityKey }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_205_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityKey }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_205_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_206_ASN_NGAP_id_IndexToRFSP }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_206_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IndexToRFSP }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_206_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_207_ASN_NGAP_id_UEAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_207_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_207_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_208_ASN_NGAP_id_UESecurityCapabilities }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_208_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESecurityCapabilities }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_208_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_209_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_209_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_209_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_210_ASN_NGAP_id_EmergencyFallbackIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_210_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EmergencyFallbackIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_210_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_211_ASN_NGAP_id_NewAMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_211_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_211_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_212_ASN_NGAP_id_RRCInactiveTransitionReportRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_212_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_212_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_213_ASN_NGAP_id_NewGUAMI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_213_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GUAMI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_213_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_214_ASN_NGAP_id_CNAssistedRANTuning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_214_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CNAssistedRANTuning }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_214_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_215_ASN_NGAP_id_SRVCCOperationPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_215_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SRVCCOperationPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_215_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_216_ASN_NGAP_id_IAB_Authorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_216_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IAB_Authorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_216_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_217_ASN_NGAP_id_NRV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_217_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_217_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_218_ASN_NGAP_id_LTEV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_218_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_218_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_219_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_219_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_219_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_220_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_220_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_220_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_221_ASN_NGAP_id_PC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_221_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_221_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_222_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_222_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_222_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_223_ASN_NGAP_id_RGLevelWirelineAccessCharacteristics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_223_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_223_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_224_ASN_NGAP_id_TimeSyncAssistanceInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_224_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_224_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_225_ASN_NGAP_id_QMCConfigInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_225_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QMCConfigInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_225_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_226_ASN_NGAP_id_QMCDeactivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_226_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_QMCDeactivation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_226_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_227_ASN_NGAP_id_UESliceMaximumBitRateList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_227_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_227_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_228_ASN_NGAP_id_ManagementBasedMDTPLMNModificationList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_228_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MDTPLMNModificationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_228_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_229_ASN_NGAP_id_FiveG_ProSeAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_229_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_229_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_230_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_230_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_230_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_231_ASN_NGAP_id_FiveG_ProSePC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_231_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_231_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextModificationRequestIEs_1[] = { + { 30, 4, asn_IOS_ASN_NGAP_UEContextModificationRequestIEs_1_rows } +}; +static const long asn_VAL_232_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_232_ASN_NGAP_ignore = 1; +static const long asn_VAL_232_ASN_NGAP_mandatory = 2; +static const long asn_VAL_233_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_233_ASN_NGAP_ignore = 1; +static const long asn_VAL_233_ASN_NGAP_mandatory = 2; +static const long asn_VAL_234_ASN_NGAP_id_RRCState = 92; +static const long asn_VAL_234_ASN_NGAP_ignore = 1; +static const long asn_VAL_234_ASN_NGAP_optional = 0; +static const long asn_VAL_235_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_235_ASN_NGAP_ignore = 1; +static const long asn_VAL_235_ASN_NGAP_optional = 0; +static const long asn_VAL_236_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_236_ASN_NGAP_ignore = 1; +static const long asn_VAL_236_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextModificationResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_232_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_232_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_232_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_233_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_233_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_233_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_234_ASN_NGAP_id_RRCState }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_234_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCState }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_234_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_235_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_235_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_235_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_236_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_236_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_236_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextModificationResponseIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_UEContextModificationResponseIEs_1_rows } +}; +static const long asn_VAL_237_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_237_ASN_NGAP_ignore = 1; +static const long asn_VAL_237_ASN_NGAP_mandatory = 2; +static const long asn_VAL_238_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_238_ASN_NGAP_ignore = 1; +static const long asn_VAL_238_ASN_NGAP_mandatory = 2; +static const long asn_VAL_239_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_239_ASN_NGAP_ignore = 1; +static const long asn_VAL_239_ASN_NGAP_mandatory = 2; +static const long asn_VAL_240_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_240_ASN_NGAP_ignore = 1; +static const long asn_VAL_240_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEContextModificationFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_237_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_237_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_237_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_238_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_238_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_238_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_239_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_239_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_239_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_240_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_240_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_240_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEContextModificationFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UEContextModificationFailureIEs_1_rows } +}; +static const long asn_VAL_241_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_241_ASN_NGAP_reject = 0; +static const long asn_VAL_241_ASN_NGAP_mandatory = 2; +static const long asn_VAL_242_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_242_ASN_NGAP_reject = 0; +static const long asn_VAL_242_ASN_NGAP_mandatory = 2; +static const long asn_VAL_243_ASN_NGAP_id_RRCState = 92; +static const long asn_VAL_243_ASN_NGAP_ignore = 1; +static const long asn_VAL_243_ASN_NGAP_mandatory = 2; +static const long asn_VAL_244_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_244_ASN_NGAP_ignore = 1; +static const long asn_VAL_244_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RRCInactiveTransitionReportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_241_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_241_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_241_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_242_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_242_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_242_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_243_ASN_NGAP_id_RRCState }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_243_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCState }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_243_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_244_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_244_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_244_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RRCInactiveTransitionReportIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_RRCInactiveTransitionReportIEs_1_rows } +}; +static const long asn_VAL_245_ASN_NGAP_id_FiveG_S_TMSI = 26; +static const long asn_VAL_245_ASN_NGAP_reject = 0; +static const long asn_VAL_245_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RetrieveUEInformationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_245_ASN_NGAP_id_FiveG_S_TMSI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_245_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_S_TMSI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_245_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RetrieveUEInformationIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_RetrieveUEInformationIEs_1_rows } +}; +static const long asn_VAL_246_ASN_NGAP_id_FiveG_S_TMSI = 26; +static const long asn_VAL_246_ASN_NGAP_reject = 0; +static const long asn_VAL_246_ASN_NGAP_mandatory = 2; +static const long asn_VAL_247_ASN_NGAP_id_NB_IoT_UEPriority = 210; +static const long asn_VAL_247_ASN_NGAP_ignore = 1; +static const long asn_VAL_247_ASN_NGAP_optional = 0; +static const long asn_VAL_248_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_248_ASN_NGAP_ignore = 1; +static const long asn_VAL_248_ASN_NGAP_optional = 0; +static const long asn_VAL_249_ASN_NGAP_id_S_NSSAI = 148; +static const long asn_VAL_249_ASN_NGAP_ignore = 1; +static const long asn_VAL_249_ASN_NGAP_optional = 0; +static const long asn_VAL_250_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_250_ASN_NGAP_ignore = 1; +static const long asn_VAL_250_ASN_NGAP_optional = 0; +static const long asn_VAL_251_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_251_ASN_NGAP_ignore = 1; +static const long asn_VAL_251_ASN_NGAP_optional = 0; +static const long asn_VAL_252_ASN_NGAP_id_MaskedIMEISV = 34; +static const long asn_VAL_252_ASN_NGAP_ignore = 1; +static const long asn_VAL_252_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UEInformationTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_246_ASN_NGAP_id_FiveG_S_TMSI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_246_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_S_TMSI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_246_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_247_ASN_NGAP_id_NB_IoT_UEPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_247_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_UEPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_247_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_248_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_248_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_248_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_249_ASN_NGAP_id_S_NSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_249_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_S_NSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_249_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_250_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_250_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_250_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_251_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_251_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_251_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_252_ASN_NGAP_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_252_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_252_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UEInformationTransferIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_UEInformationTransferIEs_1_rows } +}; +static const long asn_VAL_253_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_253_ASN_NGAP_reject = 0; +static const long asn_VAL_253_ASN_NGAP_mandatory = 2; +static const long asn_VAL_254_ASN_NGAP_id_FiveG_S_TMSI = 26; +static const long asn_VAL_254_ASN_NGAP_reject = 0; +static const long asn_VAL_254_ASN_NGAP_mandatory = 2; +static const long asn_VAL_255_ASN_NGAP_id_EUTRA_CGI = 25; +static const long asn_VAL_255_ASN_NGAP_ignore = 1; +static const long asn_VAL_255_ASN_NGAP_mandatory = 2; +static const long asn_VAL_256_ASN_NGAP_id_TAI = 213; +static const long asn_VAL_256_ASN_NGAP_ignore = 1; +static const long asn_VAL_256_ASN_NGAP_mandatory = 2; +static const long asn_VAL_257_ASN_NGAP_id_UL_CP_SecurityInformation = 211; +static const long asn_VAL_257_ASN_NGAP_reject = 0; +static const long asn_VAL_257_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RANCPRelocationIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_253_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_253_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_253_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_254_ASN_NGAP_id_FiveG_S_TMSI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_254_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_S_TMSI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_254_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_255_ASN_NGAP_id_EUTRA_CGI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_255_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EUTRA_CGI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_255_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_256_ASN_NGAP_id_TAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_256_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_256_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_257_ASN_NGAP_id_UL_CP_SecurityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_257_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UL_CP_SecurityInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_257_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RANCPRelocationIndicationIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_RANCPRelocationIndicationIEs_1_rows } +}; +static const long asn_VAL_258_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_258_ASN_NGAP_reject = 0; +static const long asn_VAL_258_ASN_NGAP_mandatory = 2; +static const long asn_VAL_259_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_259_ASN_NGAP_reject = 0; +static const long asn_VAL_259_ASN_NGAP_mandatory = 2; +static const long asn_VAL_260_ASN_NGAP_id_HandoverType = 29; +static const long asn_VAL_260_ASN_NGAP_reject = 0; +static const long asn_VAL_260_ASN_NGAP_mandatory = 2; +static const long asn_VAL_261_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_261_ASN_NGAP_ignore = 1; +static const long asn_VAL_261_ASN_NGAP_mandatory = 2; +static const long asn_VAL_262_ASN_NGAP_id_TargetID = 105; +static const long asn_VAL_262_ASN_NGAP_reject = 0; +static const long asn_VAL_262_ASN_NGAP_mandatory = 2; +static const long asn_VAL_263_ASN_NGAP_id_DirectForwardingPathAvailability = 22; +static const long asn_VAL_263_ASN_NGAP_ignore = 1; +static const long asn_VAL_263_ASN_NGAP_optional = 0; +static const long asn_VAL_264_ASN_NGAP_id_PDUSessionResourceListHORqd = 61; +static const long asn_VAL_264_ASN_NGAP_reject = 0; +static const long asn_VAL_264_ASN_NGAP_mandatory = 2; +static const long asn_VAL_265_ASN_NGAP_id_SourceToTarget_TransparentContainer = 101; +static const long asn_VAL_265_ASN_NGAP_reject = 0; +static const long asn_VAL_265_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverRequiredIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_258_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_258_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_258_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_259_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_259_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_259_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_260_ASN_NGAP_id_HandoverType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_260_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_HandoverType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_260_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_261_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_261_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_261_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_262_ASN_NGAP_id_TargetID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_262_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_262_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_263_ASN_NGAP_id_DirectForwardingPathAvailability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_263_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_263_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_264_ASN_NGAP_id_PDUSessionResourceListHORqd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_264_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_264_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_265_ASN_NGAP_id_SourceToTarget_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_265_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_265_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverRequiredIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_HandoverRequiredIEs_1_rows } +}; +static const long asn_VAL_266_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_266_ASN_NGAP_reject = 0; +static const long asn_VAL_266_ASN_NGAP_mandatory = 2; +static const long asn_VAL_267_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_267_ASN_NGAP_reject = 0; +static const long asn_VAL_267_ASN_NGAP_mandatory = 2; +static const long asn_VAL_268_ASN_NGAP_id_HandoverType = 29; +static const long asn_VAL_268_ASN_NGAP_reject = 0; +static const long asn_VAL_268_ASN_NGAP_mandatory = 2; +static const long asn_VAL_269_ASN_NGAP_id_NASSecurityParametersFromNGRAN = 39; +static const long asn_VAL_269_ASN_NGAP_reject = 0; +static const long asn_VAL_269_ASN_NGAP_conditional = 1; +static const long asn_VAL_270_ASN_NGAP_id_PDUSessionResourceHandoverList = 59; +static const long asn_VAL_270_ASN_NGAP_ignore = 1; +static const long asn_VAL_270_ASN_NGAP_optional = 0; +static const long asn_VAL_271_ASN_NGAP_id_PDUSessionResourceToReleaseListHOCmd = 78; +static const long asn_VAL_271_ASN_NGAP_ignore = 1; +static const long asn_VAL_271_ASN_NGAP_optional = 0; +static const long asn_VAL_272_ASN_NGAP_id_TargetToSource_TransparentContainer = 106; +static const long asn_VAL_272_ASN_NGAP_reject = 0; +static const long asn_VAL_272_ASN_NGAP_mandatory = 2; +static const long asn_VAL_273_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_273_ASN_NGAP_ignore = 1; +static const long asn_VAL_273_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverCommandIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_266_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_266_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_266_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_267_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_267_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_267_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_268_ASN_NGAP_id_HandoverType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_268_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_HandoverType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_268_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_269_ASN_NGAP_id_NASSecurityParametersFromNGRAN }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_269_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_269_ASN_NGAP_conditional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_270_ASN_NGAP_id_PDUSessionResourceHandoverList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_270_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_270_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_271_ASN_NGAP_id_PDUSessionResourceToReleaseListHOCmd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_271_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_271_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_272_ASN_NGAP_id_TargetToSource_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_272_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_272_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_273_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_273_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_273_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverCommandIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_HandoverCommandIEs_1_rows } +}; +static const long asn_VAL_274_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_274_ASN_NGAP_ignore = 1; +static const long asn_VAL_274_ASN_NGAP_mandatory = 2; +static const long asn_VAL_275_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_275_ASN_NGAP_ignore = 1; +static const long asn_VAL_275_ASN_NGAP_mandatory = 2; +static const long asn_VAL_276_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_276_ASN_NGAP_ignore = 1; +static const long asn_VAL_276_ASN_NGAP_mandatory = 2; +static const long asn_VAL_277_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_277_ASN_NGAP_ignore = 1; +static const long asn_VAL_277_ASN_NGAP_optional = 0; +static const long asn_VAL_278_ASN_NGAP_id_TargettoSource_Failure_TransparentContainer = 262; +static const long asn_VAL_278_ASN_NGAP_ignore = 1; +static const long asn_VAL_278_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverPreparationFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_274_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_274_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_274_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_275_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_275_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_275_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_276_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_276_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_276_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_277_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_277_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_277_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_278_ASN_NGAP_id_TargettoSource_Failure_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_278_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_278_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverPreparationFailureIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_HandoverPreparationFailureIEs_1_rows } +}; +static const long asn_VAL_279_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_279_ASN_NGAP_reject = 0; +static const long asn_VAL_279_ASN_NGAP_mandatory = 2; +static const long asn_VAL_280_ASN_NGAP_id_HandoverType = 29; +static const long asn_VAL_280_ASN_NGAP_reject = 0; +static const long asn_VAL_280_ASN_NGAP_mandatory = 2; +static const long asn_VAL_281_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_281_ASN_NGAP_ignore = 1; +static const long asn_VAL_281_ASN_NGAP_mandatory = 2; +static const long asn_VAL_282_ASN_NGAP_id_UEAggregateMaximumBitRate = 110; +static const long asn_VAL_282_ASN_NGAP_reject = 0; +static const long asn_VAL_282_ASN_NGAP_mandatory = 2; +static const long asn_VAL_283_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive = 18; +static const long asn_VAL_283_ASN_NGAP_ignore = 1; +static const long asn_VAL_283_ASN_NGAP_optional = 0; +static const long asn_VAL_284_ASN_NGAP_id_UESecurityCapabilities = 119; +static const long asn_VAL_284_ASN_NGAP_reject = 0; +static const long asn_VAL_284_ASN_NGAP_mandatory = 2; +static const long asn_VAL_285_ASN_NGAP_id_SecurityContext = 93; +static const long asn_VAL_285_ASN_NGAP_reject = 0; +static const long asn_VAL_285_ASN_NGAP_mandatory = 2; +static const long asn_VAL_286_ASN_NGAP_id_NewSecurityContextInd = 41; +static const long asn_VAL_286_ASN_NGAP_reject = 0; +static const long asn_VAL_286_ASN_NGAP_optional = 0; +static const long asn_VAL_287_ASN_NGAP_id_NASC = 37; +static const long asn_VAL_287_ASN_NGAP_reject = 0; +static const long asn_VAL_287_ASN_NGAP_optional = 0; +static const long asn_VAL_288_ASN_NGAP_id_PDUSessionResourceSetupListHOReq = 73; +static const long asn_VAL_288_ASN_NGAP_reject = 0; +static const long asn_VAL_288_ASN_NGAP_mandatory = 2; +static const long asn_VAL_289_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_289_ASN_NGAP_reject = 0; +static const long asn_VAL_289_ASN_NGAP_mandatory = 2; +static const long asn_VAL_290_ASN_NGAP_id_TraceActivation = 108; +static const long asn_VAL_290_ASN_NGAP_ignore = 1; +static const long asn_VAL_290_ASN_NGAP_optional = 0; +static const long asn_VAL_291_ASN_NGAP_id_MaskedIMEISV = 34; +static const long asn_VAL_291_ASN_NGAP_ignore = 1; +static const long asn_VAL_291_ASN_NGAP_optional = 0; +static const long asn_VAL_292_ASN_NGAP_id_SourceToTarget_TransparentContainer = 101; +static const long asn_VAL_292_ASN_NGAP_reject = 0; +static const long asn_VAL_292_ASN_NGAP_mandatory = 2; +static const long asn_VAL_293_ASN_NGAP_id_MobilityRestrictionList = 36; +static const long asn_VAL_293_ASN_NGAP_ignore = 1; +static const long asn_VAL_293_ASN_NGAP_optional = 0; +static const long asn_VAL_294_ASN_NGAP_id_LocationReportingRequestType = 33; +static const long asn_VAL_294_ASN_NGAP_ignore = 1; +static const long asn_VAL_294_ASN_NGAP_optional = 0; +static const long asn_VAL_295_ASN_NGAP_id_RRCInactiveTransitionReportRequest = 91; +static const long asn_VAL_295_ASN_NGAP_ignore = 1; +static const long asn_VAL_295_ASN_NGAP_optional = 0; +static const long asn_VAL_296_ASN_NGAP_id_GUAMI = 28; +static const long asn_VAL_296_ASN_NGAP_reject = 0; +static const long asn_VAL_296_ASN_NGAP_mandatory = 2; +static const long asn_VAL_297_ASN_NGAP_id_RedirectionVoiceFallback = 146; +static const long asn_VAL_297_ASN_NGAP_ignore = 1; +static const long asn_VAL_297_ASN_NGAP_optional = 0; +static const long asn_VAL_298_ASN_NGAP_id_CNAssistedRANTuning = 165; +static const long asn_VAL_298_ASN_NGAP_ignore = 1; +static const long asn_VAL_298_ASN_NGAP_optional = 0; +static const long asn_VAL_299_ASN_NGAP_id_SRVCCOperationPossible = 177; +static const long asn_VAL_299_ASN_NGAP_ignore = 1; +static const long asn_VAL_299_ASN_NGAP_optional = 0; +static const long asn_VAL_300_ASN_NGAP_id_IAB_Authorized = 199; +static const long asn_VAL_300_ASN_NGAP_reject = 0; +static const long asn_VAL_300_ASN_NGAP_optional = 0; +static const long asn_VAL_301_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_301_ASN_NGAP_ignore = 1; +static const long asn_VAL_301_ASN_NGAP_optional = 0; +static const long asn_VAL_302_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_302_ASN_NGAP_ignore = 1; +static const long asn_VAL_302_ASN_NGAP_optional = 0; +static const long asn_VAL_303_ASN_NGAP_id_NRV2XServicesAuthorized = 216; +static const long asn_VAL_303_ASN_NGAP_ignore = 1; +static const long asn_VAL_303_ASN_NGAP_optional = 0; +static const long asn_VAL_304_ASN_NGAP_id_LTEV2XServicesAuthorized = 215; +static const long asn_VAL_304_ASN_NGAP_ignore = 1; +static const long asn_VAL_304_ASN_NGAP_optional = 0; +static const long asn_VAL_305_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate = 218; +static const long asn_VAL_305_ASN_NGAP_ignore = 1; +static const long asn_VAL_305_ASN_NGAP_optional = 0; +static const long asn_VAL_306_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate = 217; +static const long asn_VAL_306_ASN_NGAP_ignore = 1; +static const long asn_VAL_306_ASN_NGAP_optional = 0; +static const long asn_VAL_307_ASN_NGAP_id_PC5QoSParameters = 219; +static const long asn_VAL_307_ASN_NGAP_ignore = 1; +static const long asn_VAL_307_ASN_NGAP_optional = 0; +static const long asn_VAL_308_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_308_ASN_NGAP_ignore = 1; +static const long asn_VAL_308_ASN_NGAP_optional = 0; +static const long asn_VAL_309_ASN_NGAP_id_UE_UP_CIoT_Support = 234; +static const long asn_VAL_309_ASN_NGAP_ignore = 1; +static const long asn_VAL_309_ASN_NGAP_optional = 0; +static const long asn_VAL_310_ASN_NGAP_id_ManagementBasedMDTPLMNList = 254; +static const long asn_VAL_310_ASN_NGAP_ignore = 1; +static const long asn_VAL_310_ASN_NGAP_optional = 0; +static const long asn_VAL_311_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_311_ASN_NGAP_reject = 0; +static const long asn_VAL_311_ASN_NGAP_optional = 0; +static const long asn_VAL_312_ASN_NGAP_id_Extended_ConnectedTime = 206; +static const long asn_VAL_312_ASN_NGAP_ignore = 1; +static const long asn_VAL_312_ASN_NGAP_optional = 0; +static const long asn_VAL_313_ASN_NGAP_id_TimeSyncAssistanceInfo = 326; +static const long asn_VAL_313_ASN_NGAP_ignore = 1; +static const long asn_VAL_313_ASN_NGAP_optional = 0; +static const long asn_VAL_314_ASN_NGAP_id_UESliceMaximumBitRateList = 335; +static const long asn_VAL_314_ASN_NGAP_ignore = 1; +static const long asn_VAL_314_ASN_NGAP_optional = 0; +static const long asn_VAL_315_ASN_NGAP_id_FiveG_ProSeAuthorized = 345; +static const long asn_VAL_315_ASN_NGAP_ignore = 1; +static const long asn_VAL_315_ASN_NGAP_optional = 0; +static const long asn_VAL_316_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate = 346; +static const long asn_VAL_316_ASN_NGAP_ignore = 1; +static const long asn_VAL_316_ASN_NGAP_optional = 0; +static const long asn_VAL_317_ASN_NGAP_id_FiveG_ProSePC5QoSParameters = 347; +static const long asn_VAL_317_ASN_NGAP_ignore = 1; +static const long asn_VAL_317_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_279_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_279_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_279_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_280_ASN_NGAP_id_HandoverType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_280_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_HandoverType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_280_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_281_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_281_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_281_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_282_ASN_NGAP_id_UEAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_282_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_282_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_283_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_283_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_283_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_284_ASN_NGAP_id_UESecurityCapabilities }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_284_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESecurityCapabilities }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_284_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_285_ASN_NGAP_id_SecurityContext }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_285_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityContext }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_285_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_286_ASN_NGAP_id_NewSecurityContextInd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_286_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NewSecurityContextInd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_286_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_287_ASN_NGAP_id_NASC }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_287_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_287_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_288_ASN_NGAP_id_PDUSessionResourceSetupListHOReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_288_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_288_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_289_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_289_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_289_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_290_ASN_NGAP_id_TraceActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_290_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TraceActivation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_290_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_291_ASN_NGAP_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_291_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_291_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_292_ASN_NGAP_id_SourceToTarget_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_292_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_292_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_293_ASN_NGAP_id_MobilityRestrictionList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_293_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MobilityRestrictionList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_293_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_294_ASN_NGAP_id_LocationReportingRequestType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_294_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingRequestType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_294_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_295_ASN_NGAP_id_RRCInactiveTransitionReportRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_295_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_295_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_296_ASN_NGAP_id_GUAMI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_296_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GUAMI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_296_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_297_ASN_NGAP_id_RedirectionVoiceFallback }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_297_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedirectionVoiceFallback }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_297_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_298_ASN_NGAP_id_CNAssistedRANTuning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_298_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CNAssistedRANTuning }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_298_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_299_ASN_NGAP_id_SRVCCOperationPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_299_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SRVCCOperationPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_299_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_300_ASN_NGAP_id_IAB_Authorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_300_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IAB_Authorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_300_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_301_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_301_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_301_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_302_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_302_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_302_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_303_ASN_NGAP_id_NRV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_303_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_303_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_304_ASN_NGAP_id_LTEV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_304_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_304_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_305_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_305_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_305_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_306_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_306_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_306_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_307_ASN_NGAP_id_PC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_307_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_307_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_308_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_308_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_308_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_309_ASN_NGAP_id_UE_UP_CIoT_Support }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_309_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_309_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_310_ASN_NGAP_id_ManagementBasedMDTPLMNList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_310_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MDTPLMNList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_310_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_311_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_311_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_311_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_312_ASN_NGAP_id_Extended_ConnectedTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_312_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_ConnectedTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_312_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_313_ASN_NGAP_id_TimeSyncAssistanceInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_313_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_313_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_314_ASN_NGAP_id_UESliceMaximumBitRateList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_314_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_314_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_315_ASN_NGAP_id_FiveG_ProSeAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_315_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_315_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_316_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_316_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_316_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_317_ASN_NGAP_id_FiveG_ProSePC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_317_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_317_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverRequestIEs_1[] = { + { 39, 4, asn_IOS_ASN_NGAP_HandoverRequestIEs_1_rows } +}; +static const long asn_VAL_318_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_318_ASN_NGAP_ignore = 1; +static const long asn_VAL_318_ASN_NGAP_mandatory = 2; +static const long asn_VAL_319_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_319_ASN_NGAP_ignore = 1; +static const long asn_VAL_319_ASN_NGAP_mandatory = 2; +static const long asn_VAL_320_ASN_NGAP_id_PDUSessionResourceAdmittedList = 53; +static const long asn_VAL_320_ASN_NGAP_ignore = 1; +static const long asn_VAL_320_ASN_NGAP_mandatory = 2; +static const long asn_VAL_321_ASN_NGAP_id_PDUSessionResourceFailedToSetupListHOAck = 56; +static const long asn_VAL_321_ASN_NGAP_ignore = 1; +static const long asn_VAL_321_ASN_NGAP_optional = 0; +static const long asn_VAL_322_ASN_NGAP_id_TargetToSource_TransparentContainer = 106; +static const long asn_VAL_322_ASN_NGAP_reject = 0; +static const long asn_VAL_322_ASN_NGAP_mandatory = 2; +static const long asn_VAL_323_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_323_ASN_NGAP_ignore = 1; +static const long asn_VAL_323_ASN_NGAP_optional = 0; +static const long asn_VAL_324_ASN_NGAP_id_NPN_AccessInformation = 259; +static const long asn_VAL_324_ASN_NGAP_reject = 0; +static const long asn_VAL_324_ASN_NGAP_optional = 0; +static const long asn_VAL_325_ASN_NGAP_id_RedCapIndication = 333; +static const long asn_VAL_325_ASN_NGAP_ignore = 1; +static const long asn_VAL_325_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_318_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_318_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_318_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_319_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_319_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_319_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_320_ASN_NGAP_id_PDUSessionResourceAdmittedList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_320_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_320_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_321_ASN_NGAP_id_PDUSessionResourceFailedToSetupListHOAck }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_321_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_321_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_322_ASN_NGAP_id_TargetToSource_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_322_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_322_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_323_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_323_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_323_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_324_ASN_NGAP_id_NPN_AccessInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_324_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NPN_AccessInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_324_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_325_ASN_NGAP_id_RedCapIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_325_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedCapIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_325_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_326_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_326_ASN_NGAP_ignore = 1; +static const long asn_VAL_326_ASN_NGAP_mandatory = 2; +static const long asn_VAL_327_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_327_ASN_NGAP_ignore = 1; +static const long asn_VAL_327_ASN_NGAP_mandatory = 2; +static const long asn_VAL_328_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_328_ASN_NGAP_ignore = 1; +static const long asn_VAL_328_ASN_NGAP_optional = 0; +static const long asn_VAL_329_ASN_NGAP_id_TargettoSource_Failure_TransparentContainer = 262; +static const long asn_VAL_329_ASN_NGAP_ignore = 1; +static const long asn_VAL_329_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_326_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_326_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_326_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_327_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_327_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_327_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_328_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_328_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_328_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_329_ASN_NGAP_id_TargettoSource_Failure_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_329_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_329_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_HandoverFailureIEs_1_rows } +}; +static const long asn_VAL_330_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_330_ASN_NGAP_reject = 0; +static const long asn_VAL_330_ASN_NGAP_mandatory = 2; +static const long asn_VAL_331_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_331_ASN_NGAP_reject = 0; +static const long asn_VAL_331_ASN_NGAP_mandatory = 2; +static const long asn_VAL_332_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_332_ASN_NGAP_ignore = 1; +static const long asn_VAL_332_ASN_NGAP_mandatory = 2; +static const long asn_VAL_333_ASN_NGAP_id_NotifySourceNGRANNode = 269; +static const long asn_VAL_333_ASN_NGAP_ignore = 1; +static const long asn_VAL_333_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverNotifyIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_330_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_330_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_330_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_331_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_331_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_331_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_332_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_332_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_332_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_333_ASN_NGAP_id_NotifySourceNGRANNode }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_333_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NotifySourceNGRANNode }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_333_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverNotifyIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_HandoverNotifyIEs_1_rows } +}; +static const long asn_VAL_334_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_334_ASN_NGAP_reject = 0; +static const long asn_VAL_334_ASN_NGAP_mandatory = 2; +static const long asn_VAL_335_ASN_NGAP_id_SourceAMF_UE_NGAP_ID = 100; +static const long asn_VAL_335_ASN_NGAP_reject = 0; +static const long asn_VAL_335_ASN_NGAP_mandatory = 2; +static const long asn_VAL_336_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_336_ASN_NGAP_ignore = 1; +static const long asn_VAL_336_ASN_NGAP_mandatory = 2; +static const long asn_VAL_337_ASN_NGAP_id_UESecurityCapabilities = 119; +static const long asn_VAL_337_ASN_NGAP_ignore = 1; +static const long asn_VAL_337_ASN_NGAP_mandatory = 2; +static const long asn_VAL_338_ASN_NGAP_id_PDUSessionResourceToBeSwitchedDLList = 76; +static const long asn_VAL_338_ASN_NGAP_reject = 0; +static const long asn_VAL_338_ASN_NGAP_mandatory = 2; +static const long asn_VAL_339_ASN_NGAP_id_PDUSessionResourceFailedToSetupListPSReq = 57; +static const long asn_VAL_339_ASN_NGAP_ignore = 1; +static const long asn_VAL_339_ASN_NGAP_optional = 0; +static const long asn_VAL_340_ASN_NGAP_id_RRC_Resume_Cause = 237; +static const long asn_VAL_340_ASN_NGAP_ignore = 1; +static const long asn_VAL_340_ASN_NGAP_optional = 0; +static const long asn_VAL_341_ASN_NGAP_id_RedCapIndication = 333; +static const long asn_VAL_341_ASN_NGAP_ignore = 1; +static const long asn_VAL_341_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PathSwitchRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_334_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_334_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_334_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_335_ASN_NGAP_id_SourceAMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_335_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_335_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_336_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_336_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_336_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_337_ASN_NGAP_id_UESecurityCapabilities }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_337_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESecurityCapabilities }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_337_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_338_ASN_NGAP_id_PDUSessionResourceToBeSwitchedDLList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_338_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_338_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_339_ASN_NGAP_id_PDUSessionResourceFailedToSetupListPSReq }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_339_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_339_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_340_ASN_NGAP_id_RRC_Resume_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_340_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCEstablishmentCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_340_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_341_ASN_NGAP_id_RedCapIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_341_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedCapIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_341_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PathSwitchRequestIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_PathSwitchRequestIEs_1_rows } +}; +static const long asn_VAL_342_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_342_ASN_NGAP_ignore = 1; +static const long asn_VAL_342_ASN_NGAP_mandatory = 2; +static const long asn_VAL_343_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_343_ASN_NGAP_ignore = 1; +static const long asn_VAL_343_ASN_NGAP_mandatory = 2; +static const long asn_VAL_344_ASN_NGAP_id_UESecurityCapabilities = 119; +static const long asn_VAL_344_ASN_NGAP_reject = 0; +static const long asn_VAL_344_ASN_NGAP_optional = 0; +static const long asn_VAL_345_ASN_NGAP_id_SecurityContext = 93; +static const long asn_VAL_345_ASN_NGAP_reject = 0; +static const long asn_VAL_345_ASN_NGAP_mandatory = 2; +static const long asn_VAL_346_ASN_NGAP_id_NewSecurityContextInd = 41; +static const long asn_VAL_346_ASN_NGAP_reject = 0; +static const long asn_VAL_346_ASN_NGAP_optional = 0; +static const long asn_VAL_347_ASN_NGAP_id_PDUSessionResourceSwitchedList = 77; +static const long asn_VAL_347_ASN_NGAP_ignore = 1; +static const long asn_VAL_347_ASN_NGAP_mandatory = 2; +static const long asn_VAL_348_ASN_NGAP_id_PDUSessionResourceReleasedListPSAck = 68; +static const long asn_VAL_348_ASN_NGAP_ignore = 1; +static const long asn_VAL_348_ASN_NGAP_optional = 0; +static const long asn_VAL_349_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_349_ASN_NGAP_reject = 0; +static const long asn_VAL_349_ASN_NGAP_mandatory = 2; +static const long asn_VAL_350_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive = 18; +static const long asn_VAL_350_ASN_NGAP_ignore = 1; +static const long asn_VAL_350_ASN_NGAP_optional = 0; +static const long asn_VAL_351_ASN_NGAP_id_RRCInactiveTransitionReportRequest = 91; +static const long asn_VAL_351_ASN_NGAP_ignore = 1; +static const long asn_VAL_351_ASN_NGAP_optional = 0; +static const long asn_VAL_352_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_352_ASN_NGAP_ignore = 1; +static const long asn_VAL_352_ASN_NGAP_optional = 0; +static const long asn_VAL_353_ASN_NGAP_id_RedirectionVoiceFallback = 146; +static const long asn_VAL_353_ASN_NGAP_ignore = 1; +static const long asn_VAL_353_ASN_NGAP_optional = 0; +static const long asn_VAL_354_ASN_NGAP_id_CNAssistedRANTuning = 165; +static const long asn_VAL_354_ASN_NGAP_ignore = 1; +static const long asn_VAL_354_ASN_NGAP_optional = 0; +static const long asn_VAL_355_ASN_NGAP_id_SRVCCOperationPossible = 177; +static const long asn_VAL_355_ASN_NGAP_ignore = 1; +static const long asn_VAL_355_ASN_NGAP_optional = 0; +static const long asn_VAL_356_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_356_ASN_NGAP_ignore = 1; +static const long asn_VAL_356_ASN_NGAP_optional = 0; +static const long asn_VAL_357_ASN_NGAP_id_Extended_ConnectedTime = 206; +static const long asn_VAL_357_ASN_NGAP_ignore = 1; +static const long asn_VAL_357_ASN_NGAP_optional = 0; +static const long asn_VAL_358_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_358_ASN_NGAP_ignore = 1; +static const long asn_VAL_358_ASN_NGAP_optional = 0; +static const long asn_VAL_359_ASN_NGAP_id_NRV2XServicesAuthorized = 216; +static const long asn_VAL_359_ASN_NGAP_ignore = 1; +static const long asn_VAL_359_ASN_NGAP_optional = 0; +static const long asn_VAL_360_ASN_NGAP_id_LTEV2XServicesAuthorized = 215; +static const long asn_VAL_360_ASN_NGAP_ignore = 1; +static const long asn_VAL_360_ASN_NGAP_optional = 0; +static const long asn_VAL_361_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate = 218; +static const long asn_VAL_361_ASN_NGAP_ignore = 1; +static const long asn_VAL_361_ASN_NGAP_optional = 0; +static const long asn_VAL_362_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate = 217; +static const long asn_VAL_362_ASN_NGAP_ignore = 1; +static const long asn_VAL_362_ASN_NGAP_optional = 0; +static const long asn_VAL_363_ASN_NGAP_id_PC5QoSParameters = 219; +static const long asn_VAL_363_ASN_NGAP_ignore = 1; +static const long asn_VAL_363_ASN_NGAP_optional = 0; +static const long asn_VAL_364_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_364_ASN_NGAP_ignore = 1; +static const long asn_VAL_364_ASN_NGAP_optional = 0; +static const long asn_VAL_365_ASN_NGAP_id_UE_UP_CIoT_Support = 234; +static const long asn_VAL_365_ASN_NGAP_ignore = 1; +static const long asn_VAL_365_ASN_NGAP_optional = 0; +static const long asn_VAL_366_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_366_ASN_NGAP_reject = 0; +static const long asn_VAL_366_ASN_NGAP_optional = 0; +static const long asn_VAL_367_ASN_NGAP_id_ManagementBasedMDTPLMNList = 254; +static const long asn_VAL_367_ASN_NGAP_ignore = 1; +static const long asn_VAL_367_ASN_NGAP_optional = 0; +static const long asn_VAL_368_ASN_NGAP_id_TimeSyncAssistanceInfo = 326; +static const long asn_VAL_368_ASN_NGAP_ignore = 1; +static const long asn_VAL_368_ASN_NGAP_optional = 0; +static const long asn_VAL_369_ASN_NGAP_id_FiveG_ProSeAuthorized = 345; +static const long asn_VAL_369_ASN_NGAP_ignore = 1; +static const long asn_VAL_369_ASN_NGAP_optional = 0; +static const long asn_VAL_370_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate = 346; +static const long asn_VAL_370_ASN_NGAP_ignore = 1; +static const long asn_VAL_370_ASN_NGAP_optional = 0; +static const long asn_VAL_371_ASN_NGAP_id_FiveG_ProSePC5QoSParameters = 347; +static const long asn_VAL_371_ASN_NGAP_ignore = 1; +static const long asn_VAL_371_ASN_NGAP_optional = 0; +static const long asn_VAL_372_ASN_NGAP_id_ManagementBasedMDTPLMNModificationList = 359; +static const long asn_VAL_372_ASN_NGAP_ignore = 1; +static const long asn_VAL_372_ASN_NGAP_optional = 0; +static const long asn_VAL_373_ASN_NGAP_id_IAB_Authorized = 199; +static const long asn_VAL_373_ASN_NGAP_ignore = 1; +static const long asn_VAL_373_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_342_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_342_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_342_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_343_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_343_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_343_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_344_ASN_NGAP_id_UESecurityCapabilities }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_344_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UESecurityCapabilities }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_344_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_345_ASN_NGAP_id_SecurityContext }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_345_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SecurityContext }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_345_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_346_ASN_NGAP_id_NewSecurityContextInd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_346_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NewSecurityContextInd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_346_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_347_ASN_NGAP_id_PDUSessionResourceSwitchedList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_347_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_347_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_348_ASN_NGAP_id_PDUSessionResourceReleasedListPSAck }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_348_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_348_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_349_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_349_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_349_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_350_ASN_NGAP_id_CoreNetworkAssistanceInformationForInactive }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_350_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_350_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_351_ASN_NGAP_id_RRCInactiveTransitionReportRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_351_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_351_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_352_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_352_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_352_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_353_ASN_NGAP_id_RedirectionVoiceFallback }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_353_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedirectionVoiceFallback }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_353_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_354_ASN_NGAP_id_CNAssistedRANTuning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_354_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CNAssistedRANTuning }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_354_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_355_ASN_NGAP_id_SRVCCOperationPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_355_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SRVCCOperationPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_355_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_356_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_356_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_356_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_357_ASN_NGAP_id_Extended_ConnectedTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_357_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_ConnectedTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_357_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_358_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_358_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_358_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_359_ASN_NGAP_id_NRV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_359_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_359_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_360_ASN_NGAP_id_LTEV2XServicesAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_360_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_360_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_361_ASN_NGAP_id_NRUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_361_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_361_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_362_ASN_NGAP_id_LTEUESidelinkAggregateMaximumBitrate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_362_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_362_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_363_ASN_NGAP_id_PC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_363_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_363_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_364_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_364_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_364_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_365_ASN_NGAP_id_UE_UP_CIoT_Support }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_365_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_365_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_366_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_366_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_366_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_367_ASN_NGAP_id_ManagementBasedMDTPLMNList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_367_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MDTPLMNList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_367_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_368_ASN_NGAP_id_TimeSyncAssistanceInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_368_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_368_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_369_ASN_NGAP_id_FiveG_ProSeAuthorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_369_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_369_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_370_ASN_NGAP_id_FiveG_ProSeUEPC5AggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_370_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_370_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_371_ASN_NGAP_id_FiveG_ProSePC5QoSParameters }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_371_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_371_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_372_ASN_NGAP_id_ManagementBasedMDTPLMNModificationList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_372_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MDTPLMNModificationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_372_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_373_ASN_NGAP_id_IAB_Authorized }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_373_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IAB_Authorized }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_373_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_1[] = { + { 32, 4, asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_374_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_374_ASN_NGAP_ignore = 1; +static const long asn_VAL_374_ASN_NGAP_mandatory = 2; +static const long asn_VAL_375_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_375_ASN_NGAP_ignore = 1; +static const long asn_VAL_375_ASN_NGAP_mandatory = 2; +static const long asn_VAL_376_ASN_NGAP_id_PDUSessionResourceReleasedListPSFail = 69; +static const long asn_VAL_376_ASN_NGAP_ignore = 1; +static const long asn_VAL_376_ASN_NGAP_mandatory = 2; +static const long asn_VAL_377_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_377_ASN_NGAP_ignore = 1; +static const long asn_VAL_377_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PathSwitchRequestFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_374_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_374_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_374_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_375_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_375_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_375_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_376_ASN_NGAP_id_PDUSessionResourceReleasedListPSFail }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_376_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_376_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_377_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_377_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_377_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PathSwitchRequestFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PathSwitchRequestFailureIEs_1_rows } +}; +static const long asn_VAL_378_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_378_ASN_NGAP_reject = 0; +static const long asn_VAL_378_ASN_NGAP_mandatory = 2; +static const long asn_VAL_379_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_379_ASN_NGAP_reject = 0; +static const long asn_VAL_379_ASN_NGAP_mandatory = 2; +static const long asn_VAL_380_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_380_ASN_NGAP_ignore = 1; +static const long asn_VAL_380_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverCancelIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_378_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_378_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_378_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_379_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_379_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_379_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_380_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_380_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_380_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverCancelIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_HandoverCancelIEs_1_rows } +}; +static const long asn_VAL_381_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_381_ASN_NGAP_ignore = 1; +static const long asn_VAL_381_ASN_NGAP_mandatory = 2; +static const long asn_VAL_382_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_382_ASN_NGAP_ignore = 1; +static const long asn_VAL_382_ASN_NGAP_mandatory = 2; +static const long asn_VAL_383_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_383_ASN_NGAP_ignore = 1; +static const long asn_VAL_383_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverCancelAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_381_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_381_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_381_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_382_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_382_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_382_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_383_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_383_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_383_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverCancelAcknowledgeIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_HandoverCancelAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_384_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_384_ASN_NGAP_reject = 0; +static const long asn_VAL_384_ASN_NGAP_mandatory = 2; +static const long asn_VAL_385_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_385_ASN_NGAP_reject = 0; +static const long asn_VAL_385_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_HandoverSuccessIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_384_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_384_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_384_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_385_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_385_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_385_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_HandoverSuccessIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_HandoverSuccessIEs_1_rows } +}; +static const long asn_VAL_386_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_386_ASN_NGAP_reject = 0; +static const long asn_VAL_386_ASN_NGAP_mandatory = 2; +static const long asn_VAL_387_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_387_ASN_NGAP_reject = 0; +static const long asn_VAL_387_ASN_NGAP_mandatory = 2; +static const long asn_VAL_388_ASN_NGAP_id_EarlyStatusTransfer_TransparentContainer = 268; +static const long asn_VAL_388_ASN_NGAP_reject = 0; +static const long asn_VAL_388_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_386_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_386_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_386_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_387_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_387_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_387_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_388_ASN_NGAP_id_EarlyStatusTransfer_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_388_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_388_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_1_rows } +}; +static const long asn_VAL_389_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_389_ASN_NGAP_reject = 0; +static const long asn_VAL_389_ASN_NGAP_mandatory = 2; +static const long asn_VAL_390_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_390_ASN_NGAP_reject = 0; +static const long asn_VAL_390_ASN_NGAP_mandatory = 2; +static const long asn_VAL_391_ASN_NGAP_id_EarlyStatusTransfer_TransparentContainer = 268; +static const long asn_VAL_391_ASN_NGAP_reject = 0; +static const long asn_VAL_391_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_389_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_389_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_389_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_390_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_390_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_390_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_391_ASN_NGAP_id_EarlyStatusTransfer_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_391_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_391_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_1_rows } +}; +static const long asn_VAL_392_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_392_ASN_NGAP_reject = 0; +static const long asn_VAL_392_ASN_NGAP_mandatory = 2; +static const long asn_VAL_393_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_393_ASN_NGAP_reject = 0; +static const long asn_VAL_393_ASN_NGAP_mandatory = 2; +static const long asn_VAL_394_ASN_NGAP_id_RANStatusTransfer_TransparentContainer = 84; +static const long asn_VAL_394_ASN_NGAP_reject = 0; +static const long asn_VAL_394_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkRANStatusTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_392_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_392_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_392_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_393_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_393_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_393_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_394_ASN_NGAP_id_RANStatusTransfer_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_394_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_394_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkRANStatusTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UplinkRANStatusTransferIEs_1_rows } +}; +static const long asn_VAL_395_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_395_ASN_NGAP_reject = 0; +static const long asn_VAL_395_ASN_NGAP_mandatory = 2; +static const long asn_VAL_396_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_396_ASN_NGAP_reject = 0; +static const long asn_VAL_396_ASN_NGAP_mandatory = 2; +static const long asn_VAL_397_ASN_NGAP_id_RANStatusTransfer_TransparentContainer = 84; +static const long asn_VAL_397_ASN_NGAP_reject = 0; +static const long asn_VAL_397_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkRANStatusTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_395_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_395_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_395_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_396_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_396_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_396_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_397_ASN_NGAP_id_RANStatusTransfer_TransparentContainer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_397_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_397_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkRANStatusTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DownlinkRANStatusTransferIEs_1_rows } +}; +static const long asn_VAL_398_ASN_NGAP_id_UEPagingIdentity = 115; +static const long asn_VAL_398_ASN_NGAP_ignore = 1; +static const long asn_VAL_398_ASN_NGAP_mandatory = 2; +static const long asn_VAL_399_ASN_NGAP_id_PagingDRX = 50; +static const long asn_VAL_399_ASN_NGAP_ignore = 1; +static const long asn_VAL_399_ASN_NGAP_optional = 0; +static const long asn_VAL_400_ASN_NGAP_id_TAIListForPaging = 103; +static const long asn_VAL_400_ASN_NGAP_ignore = 1; +static const long asn_VAL_400_ASN_NGAP_mandatory = 2; +static const long asn_VAL_401_ASN_NGAP_id_PagingPriority = 52; +static const long asn_VAL_401_ASN_NGAP_ignore = 1; +static const long asn_VAL_401_ASN_NGAP_optional = 0; +static const long asn_VAL_402_ASN_NGAP_id_UERadioCapabilityForPaging = 118; +static const long asn_VAL_402_ASN_NGAP_ignore = 1; +static const long asn_VAL_402_ASN_NGAP_optional = 0; +static const long asn_VAL_403_ASN_NGAP_id_PagingOrigin = 51; +static const long asn_VAL_403_ASN_NGAP_ignore = 1; +static const long asn_VAL_403_ASN_NGAP_optional = 0; +static const long asn_VAL_404_ASN_NGAP_id_AssistanceDataForPaging = 11; +static const long asn_VAL_404_ASN_NGAP_ignore = 1; +static const long asn_VAL_404_ASN_NGAP_optional = 0; +static const long asn_VAL_405_ASN_NGAP_id_NB_IoT_Paging_eDRXInfo = 203; +static const long asn_VAL_405_ASN_NGAP_ignore = 1; +static const long asn_VAL_405_ASN_NGAP_optional = 0; +static const long asn_VAL_406_ASN_NGAP_id_NB_IoT_PagingDRX = 202; +static const long asn_VAL_406_ASN_NGAP_ignore = 1; +static const long asn_VAL_406_ASN_NGAP_optional = 0; +static const long asn_VAL_407_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_407_ASN_NGAP_ignore = 1; +static const long asn_VAL_407_ASN_NGAP_optional = 0; +static const long asn_VAL_408_ASN_NGAP_id_WUS_Assistance_Information = 208; +static const long asn_VAL_408_ASN_NGAP_ignore = 1; +static const long asn_VAL_408_ASN_NGAP_optional = 0; +static const long asn_VAL_409_ASN_NGAP_id_EUTRA_PagingeDRXInformation = 223; +static const long asn_VAL_409_ASN_NGAP_ignore = 1; +static const long asn_VAL_409_ASN_NGAP_optional = 0; +static const long asn_VAL_410_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_410_ASN_NGAP_ignore = 1; +static const long asn_VAL_410_ASN_NGAP_optional = 0; +static const long asn_VAL_411_ASN_NGAP_id_NR_PagingeDRXInformation = 332; +static const long asn_VAL_411_ASN_NGAP_ignore = 1; +static const long asn_VAL_411_ASN_NGAP_optional = 0; +static const long asn_VAL_412_ASN_NGAP_id_PagingCause = 342; +static const long asn_VAL_412_ASN_NGAP_ignore = 1; +static const long asn_VAL_412_ASN_NGAP_optional = 0; +static const long asn_VAL_413_ASN_NGAP_id_PEIPSassistanceInformation = 344; +static const long asn_VAL_413_ASN_NGAP_ignore = 1; +static const long asn_VAL_413_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PagingIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_398_ASN_NGAP_id_UEPagingIdentity }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_398_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEPagingIdentity }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_398_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_399_ASN_NGAP_id_PagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_399_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_399_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_400_ASN_NGAP_id_TAIListForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_400_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TAIListForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_400_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_401_ASN_NGAP_id_PagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_401_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_401_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_402_ASN_NGAP_id_UERadioCapabilityForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_402_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_402_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_403_ASN_NGAP_id_PagingOrigin }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_403_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingOrigin }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_403_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_404_ASN_NGAP_id_AssistanceDataForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_404_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AssistanceDataForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_404_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_405_ASN_NGAP_id_NB_IoT_Paging_eDRXInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_405_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_405_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_406_ASN_NGAP_id_NB_IoT_PagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_406_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_PagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_406_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_407_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_407_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_407_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_408_ASN_NGAP_id_WUS_Assistance_Information }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_408_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WUS_Assistance_Information }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_408_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_409_ASN_NGAP_id_EUTRA_PagingeDRXInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_409_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_409_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_410_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_410_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_410_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_411_ASN_NGAP_id_NR_PagingeDRXInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_411_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NR_PagingeDRXInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_411_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_412_ASN_NGAP_id_PagingCause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_412_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_412_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_413_ASN_NGAP_id_PEIPSassistanceInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_413_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PEIPSassistanceInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_413_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PagingIEs_1[] = { + { 16, 4, asn_IOS_ASN_NGAP_PagingIEs_1_rows } +}; +static const long asn_VAL_414_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_414_ASN_NGAP_reject = 0; +static const long asn_VAL_414_ASN_NGAP_mandatory = 2; +static const long asn_VAL_415_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_415_ASN_NGAP_reject = 0; +static const long asn_VAL_415_ASN_NGAP_mandatory = 2; +static const long asn_VAL_416_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_416_ASN_NGAP_reject = 0; +static const long asn_VAL_416_ASN_NGAP_mandatory = 2; +static const long asn_VAL_417_ASN_NGAP_id_RRCEstablishmentCause = 90; +static const long asn_VAL_417_ASN_NGAP_ignore = 1; +static const long asn_VAL_417_ASN_NGAP_mandatory = 2; +static const long asn_VAL_418_ASN_NGAP_id_FiveG_S_TMSI = 26; +static const long asn_VAL_418_ASN_NGAP_reject = 0; +static const long asn_VAL_418_ASN_NGAP_optional = 0; +static const long asn_VAL_419_ASN_NGAP_id_AMFSetID = 3; +static const long asn_VAL_419_ASN_NGAP_ignore = 1; +static const long asn_VAL_419_ASN_NGAP_optional = 0; +static const long asn_VAL_420_ASN_NGAP_id_UEContextRequest = 112; +static const long asn_VAL_420_ASN_NGAP_ignore = 1; +static const long asn_VAL_420_ASN_NGAP_optional = 0; +static const long asn_VAL_421_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_421_ASN_NGAP_reject = 0; +static const long asn_VAL_421_ASN_NGAP_optional = 0; +static const long asn_VAL_422_ASN_NGAP_id_SourceToTarget_AMFInformationReroute = 171; +static const long asn_VAL_422_ASN_NGAP_ignore = 1; +static const long asn_VAL_422_ASN_NGAP_optional = 0; +static const long asn_VAL_423_ASN_NGAP_id_SelectedPLMNIdentity = 174; +static const long asn_VAL_423_ASN_NGAP_ignore = 1; +static const long asn_VAL_423_ASN_NGAP_optional = 0; +static const long asn_VAL_424_ASN_NGAP_id_IABNodeIndication = 201; +static const long asn_VAL_424_ASN_NGAP_reject = 0; +static const long asn_VAL_424_ASN_NGAP_optional = 0; +static const long asn_VAL_425_ASN_NGAP_id_CEmodeBSupport_Indicator = 224; +static const long asn_VAL_425_ASN_NGAP_reject = 0; +static const long asn_VAL_425_ASN_NGAP_optional = 0; +static const long asn_VAL_426_ASN_NGAP_id_LTEM_Indication = 225; +static const long asn_VAL_426_ASN_NGAP_ignore = 1; +static const long asn_VAL_426_ASN_NGAP_optional = 0; +static const long asn_VAL_427_ASN_NGAP_id_EDT_Session = 227; +static const long asn_VAL_427_ASN_NGAP_ignore = 1; +static const long asn_VAL_427_ASN_NGAP_optional = 0; +static const long asn_VAL_428_ASN_NGAP_id_AuthenticatedIndication = 245; +static const long asn_VAL_428_ASN_NGAP_ignore = 1; +static const long asn_VAL_428_ASN_NGAP_optional = 0; +static const long asn_VAL_429_ASN_NGAP_id_NPN_AccessInformation = 259; +static const long asn_VAL_429_ASN_NGAP_reject = 0; +static const long asn_VAL_429_ASN_NGAP_optional = 0; +static const long asn_VAL_430_ASN_NGAP_id_RedCapIndication = 333; +static const long asn_VAL_430_ASN_NGAP_ignore = 1; +static const long asn_VAL_430_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_InitialUEMessage_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_414_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_414_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_414_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_415_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_415_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_415_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_416_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_416_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_416_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_417_ASN_NGAP_id_RRCEstablishmentCause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_417_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RRCEstablishmentCause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_417_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_418_ASN_NGAP_id_FiveG_S_TMSI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_418_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_S_TMSI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_418_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_419_ASN_NGAP_id_AMFSetID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_419_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFSetID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_419_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_420_ASN_NGAP_id_UEContextRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_420_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEContextRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_420_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_421_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_421_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_421_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_422_ASN_NGAP_id_SourceToTarget_AMFInformationReroute }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_422_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_422_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_423_ASN_NGAP_id_SelectedPLMNIdentity }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_423_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PLMNIdentity }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_423_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_424_ASN_NGAP_id_IABNodeIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_424_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IABNodeIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_424_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_425_ASN_NGAP_id_CEmodeBSupport_Indicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_425_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_425_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_426_ASN_NGAP_id_LTEM_Indication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_426_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LTEM_Indication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_426_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_427_ASN_NGAP_id_EDT_Session }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_427_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EDT_Session }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_427_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_428_ASN_NGAP_id_AuthenticatedIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_428_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AuthenticatedIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_428_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_429_ASN_NGAP_id_NPN_AccessInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_429_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NPN_AccessInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_429_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_430_ASN_NGAP_id_RedCapIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_430_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RedCapIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_430_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_InitialUEMessage_IEs_1[] = { + { 17, 4, asn_IOS_ASN_NGAP_InitialUEMessage_IEs_1_rows } +}; +static const long asn_VAL_431_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_431_ASN_NGAP_reject = 0; +static const long asn_VAL_431_ASN_NGAP_mandatory = 2; +static const long asn_VAL_432_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_432_ASN_NGAP_reject = 0; +static const long asn_VAL_432_ASN_NGAP_mandatory = 2; +static const long asn_VAL_433_ASN_NGAP_id_OldAMF = 48; +static const long asn_VAL_433_ASN_NGAP_reject = 0; +static const long asn_VAL_433_ASN_NGAP_optional = 0; +static const long asn_VAL_434_ASN_NGAP_id_RANPagingPriority = 83; +static const long asn_VAL_434_ASN_NGAP_ignore = 1; +static const long asn_VAL_434_ASN_NGAP_optional = 0; +static const long asn_VAL_435_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_435_ASN_NGAP_reject = 0; +static const long asn_VAL_435_ASN_NGAP_mandatory = 2; +static const long asn_VAL_436_ASN_NGAP_id_MobilityRestrictionList = 36; +static const long asn_VAL_436_ASN_NGAP_ignore = 1; +static const long asn_VAL_436_ASN_NGAP_optional = 0; +static const long asn_VAL_437_ASN_NGAP_id_IndexToRFSP = 31; +static const long asn_VAL_437_ASN_NGAP_ignore = 1; +static const long asn_VAL_437_ASN_NGAP_optional = 0; +static const long asn_VAL_438_ASN_NGAP_id_UEAggregateMaximumBitRate = 110; +static const long asn_VAL_438_ASN_NGAP_ignore = 1; +static const long asn_VAL_438_ASN_NGAP_optional = 0; +static const long asn_VAL_439_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_439_ASN_NGAP_reject = 0; +static const long asn_VAL_439_ASN_NGAP_optional = 0; +static const long asn_VAL_440_ASN_NGAP_id_SRVCCOperationPossible = 177; +static const long asn_VAL_440_ASN_NGAP_ignore = 1; +static const long asn_VAL_440_ASN_NGAP_optional = 0; +static const long asn_VAL_441_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_441_ASN_NGAP_ignore = 1; +static const long asn_VAL_441_ASN_NGAP_optional = 0; +static const long asn_VAL_442_ASN_NGAP_id_Extended_ConnectedTime = 206; +static const long asn_VAL_442_ASN_NGAP_ignore = 1; +static const long asn_VAL_442_ASN_NGAP_optional = 0; +static const long asn_VAL_443_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_443_ASN_NGAP_ignore = 1; +static const long asn_VAL_443_ASN_NGAP_optional = 0; +static const long asn_VAL_444_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_444_ASN_NGAP_ignore = 1; +static const long asn_VAL_444_ASN_NGAP_optional = 0; +static const long asn_VAL_445_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_445_ASN_NGAP_ignore = 1; +static const long asn_VAL_445_ASN_NGAP_optional = 0; +static const long asn_VAL_446_ASN_NGAP_id_UECapabilityInfoRequest = 228; +static const long asn_VAL_446_ASN_NGAP_ignore = 1; +static const long asn_VAL_446_ASN_NGAP_optional = 0; +static const long asn_VAL_447_ASN_NGAP_id_EndIndication = 226; +static const long asn_VAL_447_ASN_NGAP_ignore = 1; +static const long asn_VAL_447_ASN_NGAP_optional = 0; +static const long asn_VAL_448_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_448_ASN_NGAP_reject = 0; +static const long asn_VAL_448_ASN_NGAP_optional = 0; +static const long asn_VAL_449_ASN_NGAP_id_TargetNSSAIInformation = 334; +static const long asn_VAL_449_ASN_NGAP_ignore = 1; +static const long asn_VAL_449_ASN_NGAP_optional = 0; +static const long asn_VAL_450_ASN_NGAP_id_MaskedIMEISV = 34; +static const long asn_VAL_450_ASN_NGAP_ignore = 1; +static const long asn_VAL_450_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkNASTransport_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_431_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_431_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_431_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_432_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_432_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_432_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_433_ASN_NGAP_id_OldAMF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_433_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_433_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_434_ASN_NGAP_id_RANPagingPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_434_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANPagingPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_434_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_435_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_435_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_435_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_436_ASN_NGAP_id_MobilityRestrictionList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_436_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MobilityRestrictionList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_436_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_437_ASN_NGAP_id_IndexToRFSP }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_437_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IndexToRFSP }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_437_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_438_ASN_NGAP_id_UEAggregateMaximumBitRate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_438_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_438_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_439_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_439_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_439_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_440_ASN_NGAP_id_SRVCCOperationPossible }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_440_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SRVCCOperationPossible }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_440_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_441_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_441_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_441_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_442_ASN_NGAP_id_Extended_ConnectedTime }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_442_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_ConnectedTime }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_442_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_443_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_443_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_443_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_444_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_444_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_444_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_445_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_445_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_445_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_446_ASN_NGAP_id_UECapabilityInfoRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_446_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UECapabilityInfoRequest }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_446_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_447_ASN_NGAP_id_EndIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_447_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EndIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_447_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_448_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_448_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_448_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_449_ASN_NGAP_id_TargetNSSAIInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_449_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TargetNSSAIInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_449_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_450_ASN_NGAP_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_450_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_450_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkNASTransport_IEs_1[] = { + { 20, 4, asn_IOS_ASN_NGAP_DownlinkNASTransport_IEs_1_rows } +}; +static const long asn_VAL_451_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_451_ASN_NGAP_reject = 0; +static const long asn_VAL_451_ASN_NGAP_mandatory = 2; +static const long asn_VAL_452_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_452_ASN_NGAP_reject = 0; +static const long asn_VAL_452_ASN_NGAP_mandatory = 2; +static const long asn_VAL_453_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_453_ASN_NGAP_reject = 0; +static const long asn_VAL_453_ASN_NGAP_mandatory = 2; +static const long asn_VAL_454_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_454_ASN_NGAP_ignore = 1; +static const long asn_VAL_454_ASN_NGAP_mandatory = 2; +static const long asn_VAL_455_ASN_NGAP_id_W_AGFIdentityInformation = 239; +static const long asn_VAL_455_ASN_NGAP_reject = 0; +static const long asn_VAL_455_ASN_NGAP_optional = 0; +static const long asn_VAL_456_ASN_NGAP_id_TNGFIdentityInformation = 246; +static const long asn_VAL_456_ASN_NGAP_reject = 0; +static const long asn_VAL_456_ASN_NGAP_optional = 0; +static const long asn_VAL_457_ASN_NGAP_id_TWIFIdentityInformation = 247; +static const long asn_VAL_457_ASN_NGAP_reject = 0; +static const long asn_VAL_457_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkNASTransport_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_451_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_451_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_451_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_452_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_452_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_452_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_453_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_453_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_453_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_454_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_454_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_454_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_455_ASN_NGAP_id_W_AGFIdentityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_455_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_455_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_456_ASN_NGAP_id_TNGFIdentityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_456_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_456_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_457_ASN_NGAP_id_TWIFIdentityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_457_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_457_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkNASTransport_IEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_UplinkNASTransport_IEs_1_rows } +}; +static const long asn_VAL_458_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_458_ASN_NGAP_reject = 0; +static const long asn_VAL_458_ASN_NGAP_mandatory = 2; +static const long asn_VAL_459_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_459_ASN_NGAP_reject = 0; +static const long asn_VAL_459_ASN_NGAP_mandatory = 2; +static const long asn_VAL_460_ASN_NGAP_id_NAS_PDU = 38; +static const long asn_VAL_460_ASN_NGAP_ignore = 1; +static const long asn_VAL_460_ASN_NGAP_mandatory = 2; +static const long asn_VAL_461_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_461_ASN_NGAP_ignore = 1; +static const long asn_VAL_461_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NASNonDeliveryIndication_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_458_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_458_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_458_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_459_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_459_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_459_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_460_ASN_NGAP_id_NAS_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_460_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NAS_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_460_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_461_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_461_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_461_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NASNonDeliveryIndication_IEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_NASNonDeliveryIndication_IEs_1_rows } +}; +static const long asn_VAL_462_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_462_ASN_NGAP_reject = 0; +static const long asn_VAL_462_ASN_NGAP_mandatory = 2; +static const long asn_VAL_463_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_463_ASN_NGAP_ignore = 1; +static const long asn_VAL_463_ASN_NGAP_optional = 0; +static const long asn_VAL_464_ASN_NGAP_id_NGAP_Message = 42; +static const long asn_VAL_464_ASN_NGAP_reject = 0; +static const long asn_VAL_464_ASN_NGAP_mandatory = 2; +static const long asn_VAL_465_ASN_NGAP_id_AMFSetID = 3; +static const long asn_VAL_465_ASN_NGAP_reject = 0; +static const long asn_VAL_465_ASN_NGAP_mandatory = 2; +static const long asn_VAL_466_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_466_ASN_NGAP_reject = 0; +static const long asn_VAL_466_ASN_NGAP_optional = 0; +static const long asn_VAL_467_ASN_NGAP_id_SourceToTarget_AMFInformationReroute = 171; +static const long asn_VAL_467_ASN_NGAP_ignore = 1; +static const long asn_VAL_467_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RerouteNASRequest_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_462_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_462_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_462_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_463_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_463_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_463_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_464_ASN_NGAP_id_NGAP_Message }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_464_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_464_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_465_ASN_NGAP_id_AMFSetID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_465_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFSetID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_465_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_466_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_466_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_466_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_467_ASN_NGAP_id_SourceToTarget_AMFInformationReroute }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_467_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_467_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RerouteNASRequest_IEs_1[] = { + { 6, 4, asn_IOS_ASN_NGAP_RerouteNASRequest_IEs_1_rows } +}; +static const long asn_VAL_468_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_468_ASN_NGAP_reject = 0; +static const long asn_VAL_468_ASN_NGAP_mandatory = 2; +static const long asn_VAL_469_ASN_NGAP_id_RANNodeName = 82; +static const long asn_VAL_469_ASN_NGAP_ignore = 1; +static const long asn_VAL_469_ASN_NGAP_optional = 0; +static const long asn_VAL_470_ASN_NGAP_id_SupportedTAList = 102; +static const long asn_VAL_470_ASN_NGAP_reject = 0; +static const long asn_VAL_470_ASN_NGAP_mandatory = 2; +static const long asn_VAL_471_ASN_NGAP_id_DefaultPagingDRX = 21; +static const long asn_VAL_471_ASN_NGAP_ignore = 1; +static const long asn_VAL_471_ASN_NGAP_mandatory = 2; +static const long asn_VAL_472_ASN_NGAP_id_UERetentionInformation = 147; +static const long asn_VAL_472_ASN_NGAP_ignore = 1; +static const long asn_VAL_472_ASN_NGAP_optional = 0; +static const long asn_VAL_473_ASN_NGAP_id_NB_IoT_DefaultPagingDRX = 204; +static const long asn_VAL_473_ASN_NGAP_ignore = 1; +static const long asn_VAL_473_ASN_NGAP_optional = 0; +static const long asn_VAL_474_ASN_NGAP_id_Extended_RANNodeName = 273; +static const long asn_VAL_474_ASN_NGAP_ignore = 1; +static const long asn_VAL_474_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_468_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_468_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_468_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_469_ASN_NGAP_id_RANNodeName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_469_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANNodeName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_469_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_470_ASN_NGAP_id_SupportedTAList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_470_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SupportedTAList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_470_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_471_ASN_NGAP_id_DefaultPagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_471_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_471_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_472_ASN_NGAP_id_UERetentionInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_472_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERetentionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_472_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_473_ASN_NGAP_id_NB_IoT_DefaultPagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_473_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_473_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_474_ASN_NGAP_id_Extended_RANNodeName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_474_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_RANNodeName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_474_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGSetupRequestIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_NGSetupRequestIEs_1_rows } +}; +static const long asn_VAL_475_ASN_NGAP_id_AMFName = 1; +static const long asn_VAL_475_ASN_NGAP_reject = 0; +static const long asn_VAL_475_ASN_NGAP_mandatory = 2; +static const long asn_VAL_476_ASN_NGAP_id_ServedGUAMIList = 96; +static const long asn_VAL_476_ASN_NGAP_reject = 0; +static const long asn_VAL_476_ASN_NGAP_mandatory = 2; +static const long asn_VAL_477_ASN_NGAP_id_RelativeAMFCapacity = 86; +static const long asn_VAL_477_ASN_NGAP_ignore = 1; +static const long asn_VAL_477_ASN_NGAP_mandatory = 2; +static const long asn_VAL_478_ASN_NGAP_id_PLMNSupportList = 80; +static const long asn_VAL_478_ASN_NGAP_reject = 0; +static const long asn_VAL_478_ASN_NGAP_mandatory = 2; +static const long asn_VAL_479_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_479_ASN_NGAP_ignore = 1; +static const long asn_VAL_479_ASN_NGAP_optional = 0; +static const long asn_VAL_480_ASN_NGAP_id_UERetentionInformation = 147; +static const long asn_VAL_480_ASN_NGAP_ignore = 1; +static const long asn_VAL_480_ASN_NGAP_optional = 0; +static const long asn_VAL_481_ASN_NGAP_id_IAB_Supported = 200; +static const long asn_VAL_481_ASN_NGAP_ignore = 1; +static const long asn_VAL_481_ASN_NGAP_optional = 0; +static const long asn_VAL_482_ASN_NGAP_id_Extended_AMFName = 274; +static const long asn_VAL_482_ASN_NGAP_ignore = 1; +static const long asn_VAL_482_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_475_ASN_NGAP_id_AMFName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_475_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_475_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_476_ASN_NGAP_id_ServedGUAMIList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_476_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_ServedGUAMIList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_476_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_477_ASN_NGAP_id_RelativeAMFCapacity }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_477_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RelativeAMFCapacity }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_477_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_478_ASN_NGAP_id_PLMNSupportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_478_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PLMNSupportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_478_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_479_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_479_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_479_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_480_ASN_NGAP_id_UERetentionInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_480_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERetentionInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_480_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_481_ASN_NGAP_id_IAB_Supported }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_481_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IAB_Supported }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_481_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_482_ASN_NGAP_id_Extended_AMFName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_482_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_482_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGSetupResponseIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_NGSetupResponseIEs_1_rows } +}; +static const long asn_VAL_483_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_483_ASN_NGAP_ignore = 1; +static const long asn_VAL_483_ASN_NGAP_mandatory = 2; +static const long asn_VAL_484_ASN_NGAP_id_TimeToWait = 107; +static const long asn_VAL_484_ASN_NGAP_ignore = 1; +static const long asn_VAL_484_ASN_NGAP_optional = 0; +static const long asn_VAL_485_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_485_ASN_NGAP_ignore = 1; +static const long asn_VAL_485_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGSetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_483_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_483_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_483_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_484_ASN_NGAP_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_484_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_484_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_485_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_485_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_485_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGSetupFailureIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_NGSetupFailureIEs_1_rows } +}; +static const long asn_VAL_486_ASN_NGAP_id_RANNodeName = 82; +static const long asn_VAL_486_ASN_NGAP_ignore = 1; +static const long asn_VAL_486_ASN_NGAP_optional = 0; +static const long asn_VAL_487_ASN_NGAP_id_SupportedTAList = 102; +static const long asn_VAL_487_ASN_NGAP_reject = 0; +static const long asn_VAL_487_ASN_NGAP_optional = 0; +static const long asn_VAL_488_ASN_NGAP_id_DefaultPagingDRX = 21; +static const long asn_VAL_488_ASN_NGAP_ignore = 1; +static const long asn_VAL_488_ASN_NGAP_optional = 0; +static const long asn_VAL_489_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_489_ASN_NGAP_ignore = 1; +static const long asn_VAL_489_ASN_NGAP_optional = 0; +static const long asn_VAL_490_ASN_NGAP_id_NGRAN_TNLAssociationToRemoveList = 167; +static const long asn_VAL_490_ASN_NGAP_reject = 0; +static const long asn_VAL_490_ASN_NGAP_optional = 0; +static const long asn_VAL_491_ASN_NGAP_id_NB_IoT_DefaultPagingDRX = 204; +static const long asn_VAL_491_ASN_NGAP_ignore = 1; +static const long asn_VAL_491_ASN_NGAP_optional = 0; +static const long asn_VAL_492_ASN_NGAP_id_Extended_RANNodeName = 273; +static const long asn_VAL_492_ASN_NGAP_ignore = 1; +static const long asn_VAL_492_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RANConfigurationUpdateIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_486_ASN_NGAP_id_RANNodeName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_486_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RANNodeName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_486_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_487_ASN_NGAP_id_SupportedTAList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_487_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SupportedTAList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_487_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_488_ASN_NGAP_id_DefaultPagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_488_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_488_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_489_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_489_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_489_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_490_ASN_NGAP_id_NGRAN_TNLAssociationToRemoveList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_490_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_490_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_491_ASN_NGAP_id_NB_IoT_DefaultPagingDRX }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_491_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_491_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_492_ASN_NGAP_id_Extended_RANNodeName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_492_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_RANNodeName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_492_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RANConfigurationUpdateIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_RANConfigurationUpdateIEs_1_rows } +}; +static const long asn_VAL_493_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_493_ASN_NGAP_ignore = 1; +static const long asn_VAL_493_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_493_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_493_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_493_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_494_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_494_ASN_NGAP_ignore = 1; +static const long asn_VAL_494_ASN_NGAP_mandatory = 2; +static const long asn_VAL_495_ASN_NGAP_id_TimeToWait = 107; +static const long asn_VAL_495_ASN_NGAP_ignore = 1; +static const long asn_VAL_495_ASN_NGAP_optional = 0; +static const long asn_VAL_496_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_496_ASN_NGAP_ignore = 1; +static const long asn_VAL_496_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_RANConfigurationUpdateFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_494_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_494_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_494_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_495_ASN_NGAP_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_495_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_495_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_496_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_496_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_496_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_RANConfigurationUpdateFailureIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_RANConfigurationUpdateFailureIEs_1_rows } +}; +static const long asn_VAL_497_ASN_NGAP_id_AMFName = 1; +static const long asn_VAL_497_ASN_NGAP_reject = 0; +static const long asn_VAL_497_ASN_NGAP_optional = 0; +static const long asn_VAL_498_ASN_NGAP_id_ServedGUAMIList = 96; +static const long asn_VAL_498_ASN_NGAP_reject = 0; +static const long asn_VAL_498_ASN_NGAP_optional = 0; +static const long asn_VAL_499_ASN_NGAP_id_RelativeAMFCapacity = 86; +static const long asn_VAL_499_ASN_NGAP_ignore = 1; +static const long asn_VAL_499_ASN_NGAP_optional = 0; +static const long asn_VAL_500_ASN_NGAP_id_PLMNSupportList = 80; +static const long asn_VAL_500_ASN_NGAP_reject = 0; +static const long asn_VAL_500_ASN_NGAP_optional = 0; +static const long asn_VAL_501_ASN_NGAP_id_AMF_TNLAssociationToAddList = 6; +static const long asn_VAL_501_ASN_NGAP_ignore = 1; +static const long asn_VAL_501_ASN_NGAP_optional = 0; +static const long asn_VAL_502_ASN_NGAP_id_AMF_TNLAssociationToRemoveList = 7; +static const long asn_VAL_502_ASN_NGAP_ignore = 1; +static const long asn_VAL_502_ASN_NGAP_optional = 0; +static const long asn_VAL_503_ASN_NGAP_id_AMF_TNLAssociationToUpdateList = 8; +static const long asn_VAL_503_ASN_NGAP_ignore = 1; +static const long asn_VAL_503_ASN_NGAP_optional = 0; +static const long asn_VAL_504_ASN_NGAP_id_Extended_AMFName = 274; +static const long asn_VAL_504_ASN_NGAP_ignore = 1; +static const long asn_VAL_504_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_497_ASN_NGAP_id_AMFName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_497_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_497_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_498_ASN_NGAP_id_ServedGUAMIList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_498_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_ServedGUAMIList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_498_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_499_ASN_NGAP_id_RelativeAMFCapacity }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_499_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RelativeAMFCapacity }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_499_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_500_ASN_NGAP_id_PLMNSupportList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_500_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PLMNSupportList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_500_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_501_ASN_NGAP_id_AMF_TNLAssociationToAddList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_501_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_501_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_502_ASN_NGAP_id_AMF_TNLAssociationToRemoveList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_502_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_502_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_503_ASN_NGAP_id_AMF_TNLAssociationToUpdateList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_503_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_503_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_504_ASN_NGAP_id_Extended_AMFName }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_504_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Extended_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_504_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateIEs_1[] = { + { 8, 4, asn_IOS_ASN_NGAP_AMFConfigurationUpdateIEs_1_rows } +}; +static const long asn_VAL_505_ASN_NGAP_id_AMF_TNLAssociationSetupList = 5; +static const long asn_VAL_505_ASN_NGAP_ignore = 1; +static const long asn_VAL_505_ASN_NGAP_optional = 0; +static const long asn_VAL_506_ASN_NGAP_id_AMF_TNLAssociationFailedToSetupList = 4; +static const long asn_VAL_506_ASN_NGAP_ignore = 1; +static const long asn_VAL_506_ASN_NGAP_optional = 0; +static const long asn_VAL_507_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_507_ASN_NGAP_ignore = 1; +static const long asn_VAL_507_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_505_ASN_NGAP_id_AMF_TNLAssociationSetupList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_505_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_505_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_506_ASN_NGAP_id_AMF_TNLAssociationFailedToSetupList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_506_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TNLAssociationList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_506_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_507_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_507_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_507_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_508_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_508_ASN_NGAP_ignore = 1; +static const long asn_VAL_508_ASN_NGAP_mandatory = 2; +static const long asn_VAL_509_ASN_NGAP_id_TimeToWait = 107; +static const long asn_VAL_509_ASN_NGAP_ignore = 1; +static const long asn_VAL_509_ASN_NGAP_optional = 0; +static const long asn_VAL_510_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_510_ASN_NGAP_ignore = 1; +static const long asn_VAL_510_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_508_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_508_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_508_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_509_ASN_NGAP_id_TimeToWait }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_509_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TimeToWait }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_509_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_510_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_510_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_510_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMFConfigurationUpdateFailureIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_AMFConfigurationUpdateFailureIEs_1_rows } +}; +static const long asn_VAL_511_ASN_NGAP_id_UnavailableGUAMIList = 120; +static const long asn_VAL_511_ASN_NGAP_reject = 0; +static const long asn_VAL_511_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMFStatusIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_511_ASN_NGAP_id_UnavailableGUAMIList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_511_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UnavailableGUAMIList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_511_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMFStatusIndicationIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_AMFStatusIndicationIEs_1_rows } +}; +static const long asn_VAL_512_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_512_ASN_NGAP_ignore = 1; +static const long asn_VAL_512_ASN_NGAP_mandatory = 2; +static const long asn_VAL_513_ASN_NGAP_id_ResetType = 88; +static const long asn_VAL_513_ASN_NGAP_reject = 0; +static const long asn_VAL_513_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGResetIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_512_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_512_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_512_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_513_ASN_NGAP_id_ResetType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_513_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_ResetType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_513_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGResetIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_NGResetIEs_1_rows } +}; +static const long asn_VAL_514_ASN_NGAP_id_UE_associatedLogicalNG_connectionList = 111; +static const long asn_VAL_514_ASN_NGAP_ignore = 1; +static const long asn_VAL_514_ASN_NGAP_optional = 0; +static const long asn_VAL_515_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_515_ASN_NGAP_ignore = 1; +static const long asn_VAL_515_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGResetAcknowledgeIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_514_ASN_NGAP_id_UE_associatedLogicalNG_connectionList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_514_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_514_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_515_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_515_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_515_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGResetAcknowledgeIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_NGResetAcknowledgeIEs_1_rows } +}; +static const long asn_VAL_516_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_516_ASN_NGAP_ignore = 1; +static const long asn_VAL_516_ASN_NGAP_optional = 0; +static const long asn_VAL_517_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_517_ASN_NGAP_ignore = 1; +static const long asn_VAL_517_ASN_NGAP_optional = 0; +static const long asn_VAL_518_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_518_ASN_NGAP_ignore = 1; +static const long asn_VAL_518_ASN_NGAP_optional = 0; +static const long asn_VAL_519_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_519_ASN_NGAP_ignore = 1; +static const long asn_VAL_519_ASN_NGAP_optional = 0; +static const long asn_VAL_520_ASN_NGAP_id_FiveG_S_TMSI = 26; +static const long asn_VAL_520_ASN_NGAP_ignore = 1; +static const long asn_VAL_520_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_ErrorIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_516_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_516_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_516_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_517_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_517_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_517_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_518_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_518_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_518_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_519_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_519_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_519_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_520_ASN_NGAP_id_FiveG_S_TMSI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_520_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_FiveG_S_TMSI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_520_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_ErrorIndicationIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_ErrorIndicationIEs_1_rows } +}; +static const long asn_VAL_521_ASN_NGAP_id_AMFOverloadResponse = 2; +static const long asn_VAL_521_ASN_NGAP_reject = 0; +static const long asn_VAL_521_ASN_NGAP_optional = 0; +static const long asn_VAL_522_ASN_NGAP_id_AMFTrafficLoadReductionIndication = 9; +static const long asn_VAL_522_ASN_NGAP_ignore = 1; +static const long asn_VAL_522_ASN_NGAP_optional = 0; +static const long asn_VAL_523_ASN_NGAP_id_OverloadStartNSSAIList = 49; +static const long asn_VAL_523_ASN_NGAP_ignore = 1; +static const long asn_VAL_523_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_OverloadStartIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_521_ASN_NGAP_id_AMFOverloadResponse }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_521_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_OverloadResponse }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_521_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_522_ASN_NGAP_id_AMFTrafficLoadReductionIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_522_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TrafficLoadReductionIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_522_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_523_ASN_NGAP_id_OverloadStartNSSAIList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_523_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_OverloadStartNSSAIList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_523_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_OverloadStartIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_OverloadStartIEs_1_rows } +}; +static const long asn_VAL_524_ASN_NGAP_id_SONConfigurationTransferUL = 99; +static const long asn_VAL_524_ASN_NGAP_ignore = 1; +static const long asn_VAL_524_ASN_NGAP_optional = 0; +static const long asn_VAL_525_ASN_NGAP_id_ENDC_SONConfigurationTransferUL = 158; +static const long asn_VAL_525_ASN_NGAP_ignore = 1; +static const long asn_VAL_525_ASN_NGAP_optional = 0; +static const long asn_VAL_526_ASN_NGAP_id_IntersystemSONConfigurationTransferUL = 251; +static const long asn_VAL_526_ASN_NGAP_ignore = 1; +static const long asn_VAL_526_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkRANConfigurationTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_524_ASN_NGAP_id_SONConfigurationTransferUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_524_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_524_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_525_ASN_NGAP_id_ENDC_SONConfigurationTransferUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_525_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_525_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_526_ASN_NGAP_id_IntersystemSONConfigurationTransferUL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_526_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_526_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkRANConfigurationTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UplinkRANConfigurationTransferIEs_1_rows } +}; +static const long asn_VAL_527_ASN_NGAP_id_SONConfigurationTransferDL = 98; +static const long asn_VAL_527_ASN_NGAP_ignore = 1; +static const long asn_VAL_527_ASN_NGAP_optional = 0; +static const long asn_VAL_528_ASN_NGAP_id_ENDC_SONConfigurationTransferDL = 157; +static const long asn_VAL_528_ASN_NGAP_ignore = 1; +static const long asn_VAL_528_ASN_NGAP_optional = 0; +static const long asn_VAL_529_ASN_NGAP_id_IntersystemSONConfigurationTransferDL = 250; +static const long asn_VAL_529_ASN_NGAP_ignore = 1; +static const long asn_VAL_529_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkRANConfigurationTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_527_ASN_NGAP_id_SONConfigurationTransferDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_527_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_527_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_528_ASN_NGAP_id_ENDC_SONConfigurationTransferDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_528_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_528_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_529_ASN_NGAP_id_IntersystemSONConfigurationTransferDL }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_529_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_529_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkRANConfigurationTransferIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DownlinkRANConfigurationTransferIEs_1_rows } +}; +static const long asn_VAL_530_ASN_NGAP_id_MessageIdentifier = 35; +static const long asn_VAL_530_ASN_NGAP_reject = 0; +static const long asn_VAL_530_ASN_NGAP_mandatory = 2; +static const long asn_VAL_531_ASN_NGAP_id_SerialNumber = 95; +static const long asn_VAL_531_ASN_NGAP_reject = 0; +static const long asn_VAL_531_ASN_NGAP_mandatory = 2; +static const long asn_VAL_532_ASN_NGAP_id_WarningAreaList = 122; +static const long asn_VAL_532_ASN_NGAP_ignore = 1; +static const long asn_VAL_532_ASN_NGAP_optional = 0; +static const long asn_VAL_533_ASN_NGAP_id_RepetitionPeriod = 87; +static const long asn_VAL_533_ASN_NGAP_reject = 0; +static const long asn_VAL_533_ASN_NGAP_mandatory = 2; +static const long asn_VAL_534_ASN_NGAP_id_NumberOfBroadcastsRequested = 47; +static const long asn_VAL_534_ASN_NGAP_reject = 0; +static const long asn_VAL_534_ASN_NGAP_mandatory = 2; +static const long asn_VAL_535_ASN_NGAP_id_WarningType = 125; +static const long asn_VAL_535_ASN_NGAP_ignore = 1; +static const long asn_VAL_535_ASN_NGAP_optional = 0; +static const long asn_VAL_536_ASN_NGAP_id_WarningSecurityInfo = 124; +static const long asn_VAL_536_ASN_NGAP_ignore = 1; +static const long asn_VAL_536_ASN_NGAP_optional = 0; +static const long asn_VAL_537_ASN_NGAP_id_DataCodingScheme = 20; +static const long asn_VAL_537_ASN_NGAP_ignore = 1; +static const long asn_VAL_537_ASN_NGAP_optional = 0; +static const long asn_VAL_538_ASN_NGAP_id_WarningMessageContents = 123; +static const long asn_VAL_538_ASN_NGAP_ignore = 1; +static const long asn_VAL_538_ASN_NGAP_optional = 0; +static const long asn_VAL_539_ASN_NGAP_id_ConcurrentWarningMessageInd = 17; +static const long asn_VAL_539_ASN_NGAP_reject = 0; +static const long asn_VAL_539_ASN_NGAP_optional = 0; +static const long asn_VAL_540_ASN_NGAP_id_WarningAreaCoordinates = 141; +static const long asn_VAL_540_ASN_NGAP_ignore = 1; +static const long asn_VAL_540_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_WriteReplaceWarningRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_530_ASN_NGAP_id_MessageIdentifier }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_530_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MessageIdentifier }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_530_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_531_ASN_NGAP_id_SerialNumber }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_531_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SerialNumber }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_531_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_532_ASN_NGAP_id_WarningAreaList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_532_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningAreaList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_532_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_533_ASN_NGAP_id_RepetitionPeriod }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_533_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RepetitionPeriod }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_533_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_534_ASN_NGAP_id_NumberOfBroadcastsRequested }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_534_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_534_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_535_ASN_NGAP_id_WarningType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_535_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_535_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_536_ASN_NGAP_id_WarningSecurityInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_536_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningSecurityInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_536_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_537_ASN_NGAP_id_DataCodingScheme }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_537_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_DataCodingScheme }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_537_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_538_ASN_NGAP_id_WarningMessageContents }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_538_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningMessageContents }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_538_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_539_ASN_NGAP_id_ConcurrentWarningMessageInd }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_539_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_539_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_540_ASN_NGAP_id_WarningAreaCoordinates }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_540_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningAreaCoordinates }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_540_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_WriteReplaceWarningRequestIEs_1[] = { + { 11, 4, asn_IOS_ASN_NGAP_WriteReplaceWarningRequestIEs_1_rows } +}; +static const long asn_VAL_541_ASN_NGAP_id_MessageIdentifier = 35; +static const long asn_VAL_541_ASN_NGAP_reject = 0; +static const long asn_VAL_541_ASN_NGAP_mandatory = 2; +static const long asn_VAL_542_ASN_NGAP_id_SerialNumber = 95; +static const long asn_VAL_542_ASN_NGAP_reject = 0; +static const long asn_VAL_542_ASN_NGAP_mandatory = 2; +static const long asn_VAL_543_ASN_NGAP_id_BroadcastCompletedAreaList = 13; +static const long asn_VAL_543_ASN_NGAP_ignore = 1; +static const long asn_VAL_543_ASN_NGAP_optional = 0; +static const long asn_VAL_544_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_544_ASN_NGAP_ignore = 1; +static const long asn_VAL_544_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_WriteReplaceWarningResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_541_ASN_NGAP_id_MessageIdentifier }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_541_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MessageIdentifier }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_541_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_542_ASN_NGAP_id_SerialNumber }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_542_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SerialNumber }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_542_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_543_ASN_NGAP_id_BroadcastCompletedAreaList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_543_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_BroadcastCompletedAreaList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_543_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_544_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_544_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_544_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_WriteReplaceWarningResponseIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_WriteReplaceWarningResponseIEs_1_rows } +}; +static const long asn_VAL_545_ASN_NGAP_id_MessageIdentifier = 35; +static const long asn_VAL_545_ASN_NGAP_reject = 0; +static const long asn_VAL_545_ASN_NGAP_mandatory = 2; +static const long asn_VAL_546_ASN_NGAP_id_SerialNumber = 95; +static const long asn_VAL_546_ASN_NGAP_reject = 0; +static const long asn_VAL_546_ASN_NGAP_mandatory = 2; +static const long asn_VAL_547_ASN_NGAP_id_WarningAreaList = 122; +static const long asn_VAL_547_ASN_NGAP_ignore = 1; +static const long asn_VAL_547_ASN_NGAP_optional = 0; +static const long asn_VAL_548_ASN_NGAP_id_CancelAllWarningMessages = 14; +static const long asn_VAL_548_ASN_NGAP_reject = 0; +static const long asn_VAL_548_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PWSCancelRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_545_ASN_NGAP_id_MessageIdentifier }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_545_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MessageIdentifier }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_545_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_546_ASN_NGAP_id_SerialNumber }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_546_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SerialNumber }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_546_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_547_ASN_NGAP_id_WarningAreaList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_547_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_WarningAreaList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_547_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_548_ASN_NGAP_id_CancelAllWarningMessages }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_548_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CancelAllWarningMessages }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_548_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PWSCancelRequestIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PWSCancelRequestIEs_1_rows } +}; +static const long asn_VAL_549_ASN_NGAP_id_MessageIdentifier = 35; +static const long asn_VAL_549_ASN_NGAP_reject = 0; +static const long asn_VAL_549_ASN_NGAP_mandatory = 2; +static const long asn_VAL_550_ASN_NGAP_id_SerialNumber = 95; +static const long asn_VAL_550_ASN_NGAP_reject = 0; +static const long asn_VAL_550_ASN_NGAP_mandatory = 2; +static const long asn_VAL_551_ASN_NGAP_id_BroadcastCancelledAreaList = 12; +static const long asn_VAL_551_ASN_NGAP_ignore = 1; +static const long asn_VAL_551_ASN_NGAP_optional = 0; +static const long asn_VAL_552_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_552_ASN_NGAP_ignore = 1; +static const long asn_VAL_552_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PWSCancelResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_549_ASN_NGAP_id_MessageIdentifier }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_549_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MessageIdentifier }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_549_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_550_ASN_NGAP_id_SerialNumber }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_550_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_SerialNumber }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_550_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_551_ASN_NGAP_id_BroadcastCancelledAreaList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_551_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_BroadcastCancelledAreaList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_551_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_552_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_552_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_552_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PWSCancelResponseIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PWSCancelResponseIEs_1_rows } +}; +static const long asn_VAL_553_ASN_NGAP_id_CellIDListForRestart = 16; +static const long asn_VAL_553_ASN_NGAP_reject = 0; +static const long asn_VAL_553_ASN_NGAP_mandatory = 2; +static const long asn_VAL_554_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_554_ASN_NGAP_reject = 0; +static const long asn_VAL_554_ASN_NGAP_mandatory = 2; +static const long asn_VAL_555_ASN_NGAP_id_TAIListForRestart = 104; +static const long asn_VAL_555_ASN_NGAP_reject = 0; +static const long asn_VAL_555_ASN_NGAP_mandatory = 2; +static const long asn_VAL_556_ASN_NGAP_id_EmergencyAreaIDListForRestart = 23; +static const long asn_VAL_556_ASN_NGAP_reject = 0; +static const long asn_VAL_556_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PWSRestartIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_553_ASN_NGAP_id_CellIDListForRestart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_553_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CellIDListForRestart }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_553_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_554_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_554_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_554_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_555_ASN_NGAP_id_TAIListForRestart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_555_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TAIListForRestart }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_555_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_556_ASN_NGAP_id_EmergencyAreaIDListForRestart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_556_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_556_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PWSRestartIndicationIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_PWSRestartIndicationIEs_1_rows } +}; +static const long asn_VAL_557_ASN_NGAP_id_PWSFailedCellIDList = 81; +static const long asn_VAL_557_ASN_NGAP_reject = 0; +static const long asn_VAL_557_ASN_NGAP_mandatory = 2; +static const long asn_VAL_558_ASN_NGAP_id_GlobalRANNodeID = 27; +static const long asn_VAL_558_ASN_NGAP_reject = 0; +static const long asn_VAL_558_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_PWSFailureIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_557_ASN_NGAP_id_PWSFailedCellIDList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_557_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PWSFailedCellIDList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_557_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_558_ASN_NGAP_id_GlobalRANNodeID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_558_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_GlobalRANNodeID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_558_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_PWSFailureIndicationIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_PWSFailureIndicationIEs_1_rows } +}; +static const long asn_VAL_559_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_559_ASN_NGAP_reject = 0; +static const long asn_VAL_559_ASN_NGAP_mandatory = 2; +static const long asn_VAL_560_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_560_ASN_NGAP_reject = 0; +static const long asn_VAL_560_ASN_NGAP_mandatory = 2; +static const long asn_VAL_561_ASN_NGAP_id_RoutingID = 89; +static const long asn_VAL_561_ASN_NGAP_reject = 0; +static const long asn_VAL_561_ASN_NGAP_mandatory = 2; +static const long asn_VAL_562_ASN_NGAP_id_NRPPa_PDU = 46; +static const long asn_VAL_562_ASN_NGAP_reject = 0; +static const long asn_VAL_562_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_559_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_559_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_559_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_560_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_560_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_560_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_561_ASN_NGAP_id_RoutingID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_561_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RoutingID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_561_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_562_ASN_NGAP_id_NRPPa_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_562_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRPPa_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_562_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_1_rows } +}; +static const long asn_VAL_563_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_563_ASN_NGAP_reject = 0; +static const long asn_VAL_563_ASN_NGAP_mandatory = 2; +static const long asn_VAL_564_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_564_ASN_NGAP_reject = 0; +static const long asn_VAL_564_ASN_NGAP_mandatory = 2; +static const long asn_VAL_565_ASN_NGAP_id_RoutingID = 89; +static const long asn_VAL_565_ASN_NGAP_reject = 0; +static const long asn_VAL_565_ASN_NGAP_mandatory = 2; +static const long asn_VAL_566_ASN_NGAP_id_NRPPa_PDU = 46; +static const long asn_VAL_566_ASN_NGAP_reject = 0; +static const long asn_VAL_566_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_563_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_563_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_563_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_564_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_564_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_564_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_565_ASN_NGAP_id_RoutingID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_565_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RoutingID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_565_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_566_ASN_NGAP_id_NRPPa_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_566_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRPPa_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_566_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_1_rows } +}; +static const long asn_VAL_567_ASN_NGAP_id_RoutingID = 89; +static const long asn_VAL_567_ASN_NGAP_reject = 0; +static const long asn_VAL_567_ASN_NGAP_mandatory = 2; +static const long asn_VAL_568_ASN_NGAP_id_NRPPa_PDU = 46; +static const long asn_VAL_568_ASN_NGAP_reject = 0; +static const long asn_VAL_568_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_567_ASN_NGAP_id_RoutingID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_567_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RoutingID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_567_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_568_ASN_NGAP_id_NRPPa_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_568_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRPPa_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_568_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_1_rows } +}; +static const long asn_VAL_569_ASN_NGAP_id_RoutingID = 89; +static const long asn_VAL_569_ASN_NGAP_reject = 0; +static const long asn_VAL_569_ASN_NGAP_mandatory = 2; +static const long asn_VAL_570_ASN_NGAP_id_NRPPa_PDU = 46; +static const long asn_VAL_570_ASN_NGAP_reject = 0; +static const long asn_VAL_570_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_569_ASN_NGAP_id_RoutingID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_569_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RoutingID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_569_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_570_ASN_NGAP_id_NRPPa_PDU }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_570_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NRPPa_PDU }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_570_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_1_rows } +}; +static const long asn_VAL_571_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_571_ASN_NGAP_reject = 0; +static const long asn_VAL_571_ASN_NGAP_mandatory = 2; +static const long asn_VAL_572_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_572_ASN_NGAP_reject = 0; +static const long asn_VAL_572_ASN_NGAP_mandatory = 2; +static const long asn_VAL_573_ASN_NGAP_id_TraceActivation = 108; +static const long asn_VAL_573_ASN_NGAP_ignore = 1; +static const long asn_VAL_573_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TraceStartIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_571_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_571_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_571_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_572_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_572_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_572_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_573_ASN_NGAP_id_TraceActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_573_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TraceActivation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_573_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TraceStartIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_TraceStartIEs_1_rows } +}; +static const long asn_VAL_574_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_574_ASN_NGAP_reject = 0; +static const long asn_VAL_574_ASN_NGAP_mandatory = 2; +static const long asn_VAL_575_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_575_ASN_NGAP_reject = 0; +static const long asn_VAL_575_ASN_NGAP_mandatory = 2; +static const long asn_VAL_576_ASN_NGAP_id_NGRANTraceID = 44; +static const long asn_VAL_576_ASN_NGAP_ignore = 1; +static const long asn_VAL_576_ASN_NGAP_mandatory = 2; +static const long asn_VAL_577_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_577_ASN_NGAP_ignore = 1; +static const long asn_VAL_577_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_TraceFailureIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_574_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_574_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_574_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_575_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_575_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_575_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_576_ASN_NGAP_id_NGRANTraceID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_576_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NGRANTraceID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_576_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_577_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_577_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_577_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_TraceFailureIndicationIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_TraceFailureIndicationIEs_1_rows } +}; +static const long asn_VAL_578_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_578_ASN_NGAP_reject = 0; +static const long asn_VAL_578_ASN_NGAP_mandatory = 2; +static const long asn_VAL_579_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_579_ASN_NGAP_reject = 0; +static const long asn_VAL_579_ASN_NGAP_mandatory = 2; +static const long asn_VAL_580_ASN_NGAP_id_NGRANTraceID = 44; +static const long asn_VAL_580_ASN_NGAP_ignore = 1; +static const long asn_VAL_580_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DeactivateTraceIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_578_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_578_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_578_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_579_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_579_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_579_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_580_ASN_NGAP_id_NGRANTraceID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_580_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NGRANTraceID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_580_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DeactivateTraceIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DeactivateTraceIEs_1_rows } +}; +static const long asn_VAL_581_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_581_ASN_NGAP_reject = 0; +static const long asn_VAL_581_ASN_NGAP_mandatory = 2; +static const long asn_VAL_582_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_582_ASN_NGAP_reject = 0; +static const long asn_VAL_582_ASN_NGAP_mandatory = 2; +static const long asn_VAL_583_ASN_NGAP_id_NGRANTraceID = 44; +static const long asn_VAL_583_ASN_NGAP_ignore = 1; +static const long asn_VAL_583_ASN_NGAP_mandatory = 2; +static const long asn_VAL_584_ASN_NGAP_id_NGRAN_CGI = 43; +static const long asn_VAL_584_ASN_NGAP_ignore = 1; +static const long asn_VAL_584_ASN_NGAP_mandatory = 2; +static const long asn_VAL_585_ASN_NGAP_id_TraceCollectionEntityIPAddress = 109; +static const long asn_VAL_585_ASN_NGAP_ignore = 1; +static const long asn_VAL_585_ASN_NGAP_mandatory = 2; +static const long asn_VAL_586_ASN_NGAP_id_PrivacyIndicator = 256; +static const long asn_VAL_586_ASN_NGAP_ignore = 1; +static const long asn_VAL_586_ASN_NGAP_optional = 0; +static const long asn_VAL_587_ASN_NGAP_id_TraceCollectionEntityURI = 257; +static const long asn_VAL_587_ASN_NGAP_ignore = 1; +static const long asn_VAL_587_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_CellTrafficTraceIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_581_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_581_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_581_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_582_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_582_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_582_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_583_ASN_NGAP_id_NGRANTraceID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_583_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NGRANTraceID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_583_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_584_ASN_NGAP_id_NGRAN_CGI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_584_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NGRAN_CGI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_584_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_585_ASN_NGAP_id_TraceCollectionEntityIPAddress }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_585_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_TransportLayerAddress }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_585_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_586_ASN_NGAP_id_PrivacyIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_586_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PrivacyIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_586_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_587_ASN_NGAP_id_TraceCollectionEntityURI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_587_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_URI_address }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_587_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_CellTrafficTraceIEs_1[] = { + { 7, 4, asn_IOS_ASN_NGAP_CellTrafficTraceIEs_1_rows } +}; +static const long asn_VAL_588_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_588_ASN_NGAP_reject = 0; +static const long asn_VAL_588_ASN_NGAP_mandatory = 2; +static const long asn_VAL_589_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_589_ASN_NGAP_reject = 0; +static const long asn_VAL_589_ASN_NGAP_mandatory = 2; +static const long asn_VAL_590_ASN_NGAP_id_LocationReportingRequestType = 33; +static const long asn_VAL_590_ASN_NGAP_ignore = 1; +static const long asn_VAL_590_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LocationReportingControlIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_588_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_588_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_588_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_589_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_589_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_589_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_590_ASN_NGAP_id_LocationReportingRequestType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_590_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingRequestType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_590_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LocationReportingControlIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_LocationReportingControlIEs_1_rows } +}; +static const long asn_VAL_591_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_591_ASN_NGAP_reject = 0; +static const long asn_VAL_591_ASN_NGAP_mandatory = 2; +static const long asn_VAL_592_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_592_ASN_NGAP_reject = 0; +static const long asn_VAL_592_ASN_NGAP_mandatory = 2; +static const long asn_VAL_593_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_593_ASN_NGAP_ignore = 1; +static const long asn_VAL_593_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LocationReportingFailureIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_591_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_591_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_591_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_592_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_592_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_592_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_593_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_593_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_593_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LocationReportingFailureIndicationIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_LocationReportingFailureIndicationIEs_1_rows } +}; +static const long asn_VAL_594_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_594_ASN_NGAP_reject = 0; +static const long asn_VAL_594_ASN_NGAP_mandatory = 2; +static const long asn_VAL_595_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_595_ASN_NGAP_reject = 0; +static const long asn_VAL_595_ASN_NGAP_mandatory = 2; +static const long asn_VAL_596_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_596_ASN_NGAP_ignore = 1; +static const long asn_VAL_596_ASN_NGAP_mandatory = 2; +static const long asn_VAL_597_ASN_NGAP_id_UEPresenceInAreaOfInterestList = 116; +static const long asn_VAL_597_ASN_NGAP_ignore = 1; +static const long asn_VAL_597_ASN_NGAP_optional = 0; +static const long asn_VAL_598_ASN_NGAP_id_LocationReportingRequestType = 33; +static const long asn_VAL_598_ASN_NGAP_ignore = 1; +static const long asn_VAL_598_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_LocationReportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_594_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_594_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_594_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_595_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_595_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_595_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_596_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_596_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_596_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_597_ASN_NGAP_id_UEPresenceInAreaOfInterestList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_597_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_597_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_598_ASN_NGAP_id_LocationReportingRequestType }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_598_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingRequestType }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_598_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_LocationReportIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_LocationReportIEs_1_rows } +}; +static const long asn_VAL_599_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_599_ASN_NGAP_reject = 0; +static const long asn_VAL_599_ASN_NGAP_mandatory = 2; +static const long asn_VAL_600_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_600_ASN_NGAP_reject = 0; +static const long asn_VAL_600_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UETNLABindingReleaseRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_599_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_599_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_599_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_600_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_600_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_600_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UETNLABindingReleaseRequestIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_UETNLABindingReleaseRequestIEs_1_rows } +}; +static const long asn_VAL_601_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_601_ASN_NGAP_reject = 0; +static const long asn_VAL_601_ASN_NGAP_mandatory = 2; +static const long asn_VAL_602_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_602_ASN_NGAP_reject = 0; +static const long asn_VAL_602_ASN_NGAP_mandatory = 2; +static const long asn_VAL_603_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_603_ASN_NGAP_ignore = 1; +static const long asn_VAL_603_ASN_NGAP_mandatory = 2; +static const long asn_VAL_604_ASN_NGAP_id_UERadioCapabilityForPaging = 118; +static const long asn_VAL_604_ASN_NGAP_ignore = 1; +static const long asn_VAL_604_ASN_NGAP_optional = 0; +static const long asn_VAL_605_ASN_NGAP_id_UERadioCapability_EUTRA_Format = 265; +static const long asn_VAL_605_ASN_NGAP_ignore = 1; +static const long asn_VAL_605_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_601_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_601_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_601_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_602_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_602_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_602_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_603_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_603_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_603_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_604_ASN_NGAP_id_UERadioCapabilityForPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_604_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_604_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_605_ASN_NGAP_id_UERadioCapability_EUTRA_Format }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_605_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_605_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_1_rows } +}; +static const long asn_VAL_606_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_606_ASN_NGAP_reject = 0; +static const long asn_VAL_606_ASN_NGAP_mandatory = 2; +static const long asn_VAL_607_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_607_ASN_NGAP_reject = 0; +static const long asn_VAL_607_ASN_NGAP_mandatory = 2; +static const long asn_VAL_608_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_608_ASN_NGAP_ignore = 1; +static const long asn_VAL_608_ASN_NGAP_optional = 0; +static const long asn_VAL_609_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_609_ASN_NGAP_reject = 0; +static const long asn_VAL_609_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityCheckRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_606_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_606_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_606_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_607_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_607_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_607_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_608_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_608_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_608_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_609_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_609_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_609_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityCheckRequestIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UERadioCapabilityCheckRequestIEs_1_rows } +}; +static const long asn_VAL_610_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_610_ASN_NGAP_ignore = 1; +static const long asn_VAL_610_ASN_NGAP_mandatory = 2; +static const long asn_VAL_611_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_611_ASN_NGAP_ignore = 1; +static const long asn_VAL_611_ASN_NGAP_mandatory = 2; +static const long asn_VAL_612_ASN_NGAP_id_IMSVoiceSupportIndicator = 30; +static const long asn_VAL_612_ASN_NGAP_reject = 0; +static const long asn_VAL_612_ASN_NGAP_mandatory = 2; +static const long asn_VAL_613_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_613_ASN_NGAP_ignore = 1; +static const long asn_VAL_613_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityCheckResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_610_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_610_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_610_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_611_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_611_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_611_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_612_ASN_NGAP_id_IMSVoiceSupportIndicator }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_612_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_612_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_613_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_613_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_613_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityCheckResponseIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_UERadioCapabilityCheckResponseIEs_1_rows } +}; +static const long asn_VAL_614_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_614_ASN_NGAP_ignore = 1; +static const long asn_VAL_614_ASN_NGAP_mandatory = 2; +static const long asn_VAL_615_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_615_ASN_NGAP_ignore = 1; +static const long asn_VAL_615_ASN_NGAP_mandatory = 2; +static const long asn_VAL_616_ASN_NGAP_id_PDUSessionResourceSecondaryRATUsageList = 142; +static const long asn_VAL_616_ASN_NGAP_ignore = 1; +static const long asn_VAL_616_ASN_NGAP_mandatory = 2; +static const long asn_VAL_617_ASN_NGAP_id_HandoverFlag = 143; +static const long asn_VAL_617_ASN_NGAP_ignore = 1; +static const long asn_VAL_617_ASN_NGAP_optional = 0; +static const long asn_VAL_618_ASN_NGAP_id_UserLocationInformation = 121; +static const long asn_VAL_618_ASN_NGAP_ignore = 1; +static const long asn_VAL_618_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_SecondaryRATDataUsageReportIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_614_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_614_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_614_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_615_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_615_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_615_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_616_ASN_NGAP_id_PDUSessionResourceSecondaryRATUsageList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_616_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_616_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_617_ASN_NGAP_id_HandoverFlag }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_617_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_HandoverFlag }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_617_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_618_ASN_NGAP_id_UserLocationInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_618_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UserLocationInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_618_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_SecondaryRATDataUsageReportIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_SecondaryRATDataUsageReportIEs_1_rows } +}; +static const long asn_VAL_619_ASN_NGAP_id_RIMInformationTransfer = 175; +static const long asn_VAL_619_ASN_NGAP_ignore = 1; +static const long asn_VAL_619_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UplinkRIMInformationTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_619_ASN_NGAP_id_RIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_619_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RIMInformationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_619_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UplinkRIMInformationTransferIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UplinkRIMInformationTransferIEs_1_rows } +}; +static const long asn_VAL_620_ASN_NGAP_id_RIMInformationTransfer = 175; +static const long asn_VAL_620_ASN_NGAP_ignore = 1; +static const long asn_VAL_620_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DownlinkRIMInformationTransferIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_620_ASN_NGAP_id_RIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_620_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RIMInformationTransfer }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_620_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DownlinkRIMInformationTransferIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_DownlinkRIMInformationTransferIEs_1_rows } +}; +static const long asn_VAL_621_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_621_ASN_NGAP_reject = 0; +static const long asn_VAL_621_ASN_NGAP_mandatory = 2; +static const long asn_VAL_622_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_622_ASN_NGAP_reject = 0; +static const long asn_VAL_622_ASN_NGAP_mandatory = 2; +static const long asn_VAL_623_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_623_ASN_NGAP_ignore = 1; +static const long asn_VAL_623_ASN_NGAP_optional = 0; +static const long asn_VAL_624_ASN_NGAP_id_EndIndication = 226; +static const long asn_VAL_624_ASN_NGAP_ignore = 1; +static const long asn_VAL_624_ASN_NGAP_optional = 0; +static const long asn_VAL_625_ASN_NGAP_id_S_NSSAI = 148; +static const long asn_VAL_625_ASN_NGAP_ignore = 1; +static const long asn_VAL_625_ASN_NGAP_optional = 0; +static const long asn_VAL_626_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_626_ASN_NGAP_ignore = 1; +static const long asn_VAL_626_ASN_NGAP_optional = 0; +static const long asn_VAL_627_ASN_NGAP_id_UE_DifferentiationInfo = 209; +static const long asn_VAL_627_ASN_NGAP_ignore = 1; +static const long asn_VAL_627_ASN_NGAP_optional = 0; +static const long asn_VAL_628_ASN_NGAP_id_DL_CP_SecurityInformation = 212; +static const long asn_VAL_628_ASN_NGAP_ignore = 1; +static const long asn_VAL_628_ASN_NGAP_optional = 0; +static const long asn_VAL_629_ASN_NGAP_id_NB_IoT_UEPriority = 210; +static const long asn_VAL_629_ASN_NGAP_ignore = 1; +static const long asn_VAL_629_ASN_NGAP_optional = 0; +static const long asn_VAL_630_ASN_NGAP_id_Enhanced_CoverageRestriction = 205; +static const long asn_VAL_630_ASN_NGAP_ignore = 1; +static const long asn_VAL_630_ASN_NGAP_optional = 0; +static const long asn_VAL_631_ASN_NGAP_id_CEmodeBrestricted = 222; +static const long asn_VAL_631_ASN_NGAP_ignore = 1; +static const long asn_VAL_631_ASN_NGAP_optional = 0; +static const long asn_VAL_632_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_632_ASN_NGAP_reject = 0; +static const long asn_VAL_632_ASN_NGAP_optional = 0; +static const long asn_VAL_633_ASN_NGAP_id_MaskedIMEISV = 34; +static const long asn_VAL_633_ASN_NGAP_ignore = 1; +static const long asn_VAL_633_ASN_NGAP_optional = 0; +static const long asn_VAL_634_ASN_NGAP_id_OldAMF = 48; +static const long asn_VAL_634_ASN_NGAP_reject = 0; +static const long asn_VAL_634_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_ConnectionEstablishmentIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_621_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_621_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_621_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_622_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_622_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_622_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_623_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_623_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_623_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_624_ASN_NGAP_id_EndIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_624_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_EndIndication }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_624_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_625_ASN_NGAP_id_S_NSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_625_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_S_NSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_625_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_626_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_626_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_626_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_627_ASN_NGAP_id_UE_DifferentiationInfo }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_627_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UE_DifferentiationInfo }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_627_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_628_ASN_NGAP_id_DL_CP_SecurityInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_628_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_DL_CP_SecurityInformation }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_628_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_629_ASN_NGAP_id_NB_IoT_UEPriority }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_629_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_NB_IoT_UEPriority }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_629_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_630_ASN_NGAP_id_Enhanced_CoverageRestriction }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_630_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_630_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_631_ASN_NGAP_id_CEmodeBrestricted }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_631_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CEmodeBrestricted }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_631_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_632_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_632_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_632_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_633_ASN_NGAP_id_MaskedIMEISV }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_633_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MaskedIMEISV }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_633_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_634_ASN_NGAP_id_OldAMF }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_634_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMFName }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_634_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_ConnectionEstablishmentIndicationIEs_1[] = { + { 14, 4, asn_IOS_ASN_NGAP_ConnectionEstablishmentIndicationIEs_1_rows } +}; +static const long asn_VAL_635_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_635_ASN_NGAP_reject = 0; +static const long asn_VAL_635_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_635_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_635_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_635_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_1[] = { + { 1, 4, asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_1_rows } +}; +static const long asn_VAL_636_ASN_NGAP_id_UERadioCapabilityID = 264; +static const long asn_VAL_636_ASN_NGAP_reject = 0; +static const long asn_VAL_636_ASN_NGAP_mandatory = 2; +static const long asn_VAL_637_ASN_NGAP_id_UERadioCapability = 117; +static const long asn_VAL_637_ASN_NGAP_ignore = 1; +static const long asn_VAL_637_ASN_NGAP_mandatory = 2; +static const long asn_VAL_638_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_638_ASN_NGAP_ignore = 1; +static const long asn_VAL_638_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_636_ASN_NGAP_id_UERadioCapabilityID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_636_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_636_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_637_ASN_NGAP_id_UERadioCapability }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_637_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapability }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_637_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_638_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_638_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_638_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_1_rows } +}; +static const long asn_VAL_639_ASN_NGAP_id_AMF_UE_NGAP_ID = 10; +static const long asn_VAL_639_ASN_NGAP_reject = 0; +static const long asn_VAL_639_ASN_NGAP_mandatory = 2; +static const long asn_VAL_640_ASN_NGAP_id_RAN_UE_NGAP_ID = 85; +static const long asn_VAL_640_ASN_NGAP_reject = 0; +static const long asn_VAL_640_ASN_NGAP_mandatory = 2; +static const long asn_VAL_641_ASN_NGAP_id_S_NSSAI = 148; +static const long asn_VAL_641_ASN_NGAP_ignore = 1; +static const long asn_VAL_641_ASN_NGAP_optional = 0; +static const long asn_VAL_642_ASN_NGAP_id_AllowedNSSAI = 0; +static const long asn_VAL_642_ASN_NGAP_ignore = 1; +static const long asn_VAL_642_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_AMFCPRelocationIndicationIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_639_ASN_NGAP_id_AMF_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_639_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_639_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_640_ASN_NGAP_id_RAN_UE_NGAP_ID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_640_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_640_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_641_ASN_NGAP_id_S_NSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_641_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_S_NSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_641_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_642_ASN_NGAP_id_AllowedNSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_642_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_AllowedNSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_642_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_AMFCPRelocationIndicationIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_AMFCPRelocationIndicationIEs_1_rows } +}; +static const long asn_VAL_643_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_643_ASN_NGAP_reject = 0; +static const long asn_VAL_643_ASN_NGAP_mandatory = 2; +static const long asn_VAL_644_ASN_NGAP_id_S_NSSAI = 148; +static const long asn_VAL_644_ASN_NGAP_reject = 0; +static const long asn_VAL_644_ASN_NGAP_mandatory = 2; +static const long asn_VAL_645_ASN_NGAP_id_MBS_ServiceArea = 298; +static const long asn_VAL_645_ASN_NGAP_reject = 0; +static const long asn_VAL_645_ASN_NGAP_mandatory = 2; +static const long asn_VAL_646_ASN_NGAP_id_MBSSessionSetupRequestTransfer = 315; +static const long asn_VAL_646_ASN_NGAP_reject = 0; +static const long asn_VAL_646_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_643_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_643_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_643_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_644_ASN_NGAP_id_S_NSSAI }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_644_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_S_NSSAI }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_644_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_645_ASN_NGAP_id_MBS_ServiceArea }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_645_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_ServiceArea }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_645_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_646_ASN_NGAP_id_MBSSessionSetupRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_646_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_646_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionSetupRequestIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_BroadcastSessionSetupRequestIEs_1_rows } +}; +static const long asn_VAL_647_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_647_ASN_NGAP_reject = 0; +static const long asn_VAL_647_ASN_NGAP_mandatory = 2; +static const long asn_VAL_648_ASN_NGAP_id_MBSSessionSetupResponseTransfer = 316; +static const long asn_VAL_648_ASN_NGAP_reject = 0; +static const long asn_VAL_648_ASN_NGAP_optional = 0; +static const long asn_VAL_649_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_649_ASN_NGAP_ignore = 1; +static const long asn_VAL_649_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_647_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_647_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_647_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_648_ASN_NGAP_id_MBSSessionSetupResponseTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_648_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_648_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_649_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_649_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_649_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionSetupResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_BroadcastSessionSetupResponseIEs_1_rows } +}; +static const long asn_VAL_650_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_650_ASN_NGAP_reject = 0; +static const long asn_VAL_650_ASN_NGAP_mandatory = 2; +static const long asn_VAL_651_ASN_NGAP_id_MBSSessionSetupFailureTransfer = 314; +static const long asn_VAL_651_ASN_NGAP_ignore = 1; +static const long asn_VAL_651_ASN_NGAP_optional = 0; +static const long asn_VAL_652_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_652_ASN_NGAP_ignore = 1; +static const long asn_VAL_652_ASN_NGAP_mandatory = 2; +static const long asn_VAL_653_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_653_ASN_NGAP_ignore = 1; +static const long asn_VAL_653_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionSetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_650_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_650_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_650_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_651_ASN_NGAP_id_MBSSessionSetupFailureTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_651_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_651_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_652_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_652_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_652_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_653_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_653_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_653_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionSetupFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_BroadcastSessionSetupFailureIEs_1_rows } +}; +static const long asn_VAL_654_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_654_ASN_NGAP_reject = 0; +static const long asn_VAL_654_ASN_NGAP_mandatory = 2; +static const long asn_VAL_655_ASN_NGAP_id_MBS_ServiceArea = 298; +static const long asn_VAL_655_ASN_NGAP_reject = 0; +static const long asn_VAL_655_ASN_NGAP_optional = 0; +static const long asn_VAL_656_ASN_NGAP_id_MBSSessionModificationRequestTransfer = 349; +static const long asn_VAL_656_ASN_NGAP_reject = 0; +static const long asn_VAL_656_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionModificationRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_654_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_654_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_654_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_655_ASN_NGAP_id_MBS_ServiceArea }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_655_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_ServiceArea }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_655_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_656_ASN_NGAP_id_MBSSessionModificationRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_656_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_656_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionModificationRequestIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_BroadcastSessionModificationRequestIEs_1_rows } +}; +static const long asn_VAL_657_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_657_ASN_NGAP_reject = 0; +static const long asn_VAL_657_ASN_NGAP_mandatory = 2; +static const long asn_VAL_658_ASN_NGAP_id_MBSSessionModificationResponseTransfer = 350; +static const long asn_VAL_658_ASN_NGAP_reject = 0; +static const long asn_VAL_658_ASN_NGAP_optional = 0; +static const long asn_VAL_659_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_659_ASN_NGAP_ignore = 1; +static const long asn_VAL_659_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionModificationResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_657_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_657_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_657_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_658_ASN_NGAP_id_MBSSessionModificationResponseTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_658_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_658_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_659_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_659_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_659_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionModificationResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_BroadcastSessionModificationResponseIEs_1_rows } +}; +static const long asn_VAL_660_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_660_ASN_NGAP_reject = 0; +static const long asn_VAL_660_ASN_NGAP_mandatory = 2; +static const long asn_VAL_661_ASN_NGAP_id_MBSSessionModificationFailureTransfer = 348; +static const long asn_VAL_661_ASN_NGAP_ignore = 1; +static const long asn_VAL_661_ASN_NGAP_optional = 0; +static const long asn_VAL_662_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_662_ASN_NGAP_ignore = 1; +static const long asn_VAL_662_ASN_NGAP_mandatory = 2; +static const long asn_VAL_663_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_663_ASN_NGAP_ignore = 1; +static const long asn_VAL_663_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionModificationFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_660_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_660_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_660_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_661_ASN_NGAP_id_MBSSessionModificationFailureTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_661_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_661_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_662_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_662_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_662_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_663_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_663_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_663_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionModificationFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_BroadcastSessionModificationFailureIEs_1_rows } +}; +static const long asn_VAL_664_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_664_ASN_NGAP_reject = 0; +static const long asn_VAL_664_ASN_NGAP_mandatory = 2; +static const long asn_VAL_665_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_665_ASN_NGAP_ignore = 1; +static const long asn_VAL_665_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_664_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_664_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_664_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_665_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_665_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_665_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequestIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequestIEs_1_rows } +}; +static const long asn_VAL_666_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_666_ASN_NGAP_reject = 0; +static const long asn_VAL_666_ASN_NGAP_mandatory = 2; +static const long asn_VAL_667_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_667_ASN_NGAP_ignore = 1; +static const long asn_VAL_667_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_666_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_666_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_666_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_667_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_667_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_667_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_1_rows } +}; +static const long asn_VAL_668_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_668_ASN_NGAP_reject = 0; +static const long asn_VAL_668_ASN_NGAP_mandatory = 2; +static const long asn_VAL_669_ASN_NGAP_id_MBSSessionReleaseResponseTransfer = 358; +static const long asn_VAL_669_ASN_NGAP_ignore = 1; +static const long asn_VAL_669_ASN_NGAP_optional = 0; +static const long asn_VAL_670_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_670_ASN_NGAP_ignore = 1; +static const long asn_VAL_670_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_668_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_668_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_668_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_669_ASN_NGAP_id_MBSSessionReleaseResponseTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_669_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_669_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_670_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_670_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_670_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_BroadcastSessionReleaseResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_BroadcastSessionReleaseResponseIEs_1_rows } +}; +static const long asn_VAL_671_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_671_ASN_NGAP_reject = 0; +static const long asn_VAL_671_ASN_NGAP_mandatory = 2; +static const long asn_VAL_672_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_672_ASN_NGAP_reject = 0; +static const long asn_VAL_672_ASN_NGAP_optional = 0; +static const long asn_VAL_673_ASN_NGAP_id_MBS_DistributionSetupRequestTransfer = 301; +static const long asn_VAL_673_ASN_NGAP_reject = 0; +static const long asn_VAL_673_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DistributionSetupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_671_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_671_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_671_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_672_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_672_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_672_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_673_ASN_NGAP_id_MBS_DistributionSetupRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_673_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_673_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DistributionSetupRequestIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DistributionSetupRequestIEs_1_rows } +}; +static const long asn_VAL_674_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_674_ASN_NGAP_reject = 0; +static const long asn_VAL_674_ASN_NGAP_mandatory = 2; +static const long asn_VAL_675_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_675_ASN_NGAP_reject = 0; +static const long asn_VAL_675_ASN_NGAP_optional = 0; +static const long asn_VAL_676_ASN_NGAP_id_MBS_DistributionSetupResponseTransfer = 302; +static const long asn_VAL_676_ASN_NGAP_reject = 0; +static const long asn_VAL_676_ASN_NGAP_mandatory = 2; +static const long asn_VAL_677_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_677_ASN_NGAP_ignore = 1; +static const long asn_VAL_677_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DistributionSetupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_674_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_674_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_674_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_675_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_675_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_675_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_676_ASN_NGAP_id_MBS_DistributionSetupResponseTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_676_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_676_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_677_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_677_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_677_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DistributionSetupResponseIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_DistributionSetupResponseIEs_1_rows } +}; +static const long asn_VAL_678_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_678_ASN_NGAP_reject = 0; +static const long asn_VAL_678_ASN_NGAP_mandatory = 2; +static const long asn_VAL_679_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_679_ASN_NGAP_reject = 0; +static const long asn_VAL_679_ASN_NGAP_optional = 0; +static const long asn_VAL_680_ASN_NGAP_id_MBS_DistributionSetupUnsuccessfulTransfer = 303; +static const long asn_VAL_680_ASN_NGAP_ignore = 1; +static const long asn_VAL_680_ASN_NGAP_mandatory = 2; +static const long asn_VAL_681_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_681_ASN_NGAP_ignore = 1; +static const long asn_VAL_681_ASN_NGAP_mandatory = 2; +static const long asn_VAL_682_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_682_ASN_NGAP_ignore = 1; +static const long asn_VAL_682_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DistributionSetupFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_678_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_678_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_678_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_679_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_679_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_679_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_680_ASN_NGAP_id_MBS_DistributionSetupUnsuccessfulTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_680_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_680_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_681_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_681_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_681_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_682_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_682_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_682_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DistributionSetupFailureIEs_1[] = { + { 5, 4, asn_IOS_ASN_NGAP_DistributionSetupFailureIEs_1_rows } +}; +static const long asn_VAL_683_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_683_ASN_NGAP_reject = 0; +static const long asn_VAL_683_ASN_NGAP_mandatory = 2; +static const long asn_VAL_684_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_684_ASN_NGAP_reject = 0; +static const long asn_VAL_684_ASN_NGAP_optional = 0; +static const long asn_VAL_685_ASN_NGAP_id_MBS_DistributionReleaseRequestTransfer = 300; +static const long asn_VAL_685_ASN_NGAP_reject = 0; +static const long asn_VAL_685_ASN_NGAP_mandatory = 2; +static const long asn_VAL_686_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_686_ASN_NGAP_ignore = 1; +static const long asn_VAL_686_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DistributionReleaseRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_683_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_683_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_683_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_684_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_684_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_684_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_685_ASN_NGAP_id_MBS_DistributionReleaseRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_685_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_685_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_686_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_686_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_686_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DistributionReleaseRequestIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_DistributionReleaseRequestIEs_1_rows } +}; +static const long asn_VAL_687_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_687_ASN_NGAP_reject = 0; +static const long asn_VAL_687_ASN_NGAP_mandatory = 2; +static const long asn_VAL_688_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_688_ASN_NGAP_reject = 0; +static const long asn_VAL_688_ASN_NGAP_optional = 0; +static const long asn_VAL_689_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_689_ASN_NGAP_ignore = 1; +static const long asn_VAL_689_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_DistributionReleaseResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_687_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_687_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_687_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_688_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_688_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_688_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_689_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_689_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_689_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_DistributionReleaseResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_DistributionReleaseResponseIEs_1_rows } +}; +static const long asn_VAL_690_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_690_ASN_NGAP_reject = 0; +static const long asn_VAL_690_ASN_NGAP_mandatory = 2; +static const long asn_VAL_691_ASN_NGAP_id_MulticastSessionActivationRequestTransfer = 304; +static const long asn_VAL_691_ASN_NGAP_reject = 0; +static const long asn_VAL_691_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionActivationRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_690_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_690_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_690_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_691_ASN_NGAP_id_MulticastSessionActivationRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_691_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_691_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionActivationRequestIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_MulticastSessionActivationRequestIEs_1_rows } +}; +static const long asn_VAL_692_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_692_ASN_NGAP_reject = 0; +static const long asn_VAL_692_ASN_NGAP_mandatory = 2; +static const long asn_VAL_693_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_693_ASN_NGAP_ignore = 1; +static const long asn_VAL_693_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionActivationResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_692_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_692_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_692_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_693_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_693_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_693_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionActivationResponseIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_MulticastSessionActivationResponseIEs_1_rows } +}; +static const long asn_VAL_694_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_694_ASN_NGAP_reject = 0; +static const long asn_VAL_694_ASN_NGAP_mandatory = 2; +static const long asn_VAL_695_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_695_ASN_NGAP_ignore = 1; +static const long asn_VAL_695_ASN_NGAP_mandatory = 2; +static const long asn_VAL_696_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_696_ASN_NGAP_ignore = 1; +static const long asn_VAL_696_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionActivationFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_694_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_694_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_694_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_695_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_695_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_695_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_696_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_696_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_696_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionActivationFailureIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_MulticastSessionActivationFailureIEs_1_rows } +}; +static const long asn_VAL_697_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_697_ASN_NGAP_reject = 0; +static const long asn_VAL_697_ASN_NGAP_mandatory = 2; +static const long asn_VAL_698_ASN_NGAP_id_MulticastSessionDeactivationRequestTransfer = 305; +static const long asn_VAL_698_ASN_NGAP_reject = 0; +static const long asn_VAL_698_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionDeactivationRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_697_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_697_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_697_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_698_ASN_NGAP_id_MulticastSessionDeactivationRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_698_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_698_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionDeactivationRequestIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_MulticastSessionDeactivationRequestIEs_1_rows } +}; +static const long asn_VAL_699_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_699_ASN_NGAP_reject = 0; +static const long asn_VAL_699_ASN_NGAP_mandatory = 2; +static const long asn_VAL_700_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_700_ASN_NGAP_ignore = 1; +static const long asn_VAL_700_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionDeactivationResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_699_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_699_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_699_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_700_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_700_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_700_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionDeactivationResponseIEs_1[] = { + { 2, 4, asn_IOS_ASN_NGAP_MulticastSessionDeactivationResponseIEs_1_rows } +}; +static const long asn_VAL_701_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_701_ASN_NGAP_reject = 0; +static const long asn_VAL_701_ASN_NGAP_mandatory = 2; +static const long asn_VAL_702_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_702_ASN_NGAP_reject = 0; +static const long asn_VAL_702_ASN_NGAP_optional = 0; +static const long asn_VAL_703_ASN_NGAP_id_MulticastSessionUpdateRequestTransfer = 306; +static const long asn_VAL_703_ASN_NGAP_reject = 0; +static const long asn_VAL_703_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_701_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_701_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_701_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_702_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_702_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_702_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_703_ASN_NGAP_id_MulticastSessionUpdateRequestTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_703_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_OCTET_STRING }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_703_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestIEs_1_rows } +}; +static const long asn_VAL_704_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_704_ASN_NGAP_reject = 0; +static const long asn_VAL_704_ASN_NGAP_mandatory = 2; +static const long asn_VAL_705_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_705_ASN_NGAP_reject = 0; +static const long asn_VAL_705_ASN_NGAP_optional = 0; +static const long asn_VAL_706_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_706_ASN_NGAP_ignore = 1; +static const long asn_VAL_706_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionUpdateResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_704_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_704_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_704_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_705_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_705_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_705_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_706_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_706_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_706_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionUpdateResponseIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_MulticastSessionUpdateResponseIEs_1_rows } +}; +static const long asn_VAL_707_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_707_ASN_NGAP_reject = 0; +static const long asn_VAL_707_ASN_NGAP_mandatory = 2; +static const long asn_VAL_708_ASN_NGAP_id_MBS_AreaSessionID = 295; +static const long asn_VAL_708_ASN_NGAP_reject = 0; +static const long asn_VAL_708_ASN_NGAP_optional = 0; +static const long asn_VAL_709_ASN_NGAP_id_Cause = 15; +static const long asn_VAL_709_ASN_NGAP_ignore = 1; +static const long asn_VAL_709_ASN_NGAP_mandatory = 2; +static const long asn_VAL_710_ASN_NGAP_id_CriticalityDiagnostics = 19; +static const long asn_VAL_710_ASN_NGAP_ignore = 1; +static const long asn_VAL_710_ASN_NGAP_optional = 0; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastSessionUpdateFailureIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_707_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_707_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_707_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_708_ASN_NGAP_id_MBS_AreaSessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_708_ASN_NGAP_reject }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_AreaSessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_708_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_709_ASN_NGAP_id_Cause }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_709_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_Cause }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_709_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_710_ASN_NGAP_id_CriticalityDiagnostics }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_710_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_CriticalityDiagnostics }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_710_ASN_NGAP_optional } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastSessionUpdateFailureIEs_1[] = { + { 4, 4, asn_IOS_ASN_NGAP_MulticastSessionUpdateFailureIEs_1_rows } +}; +static const long asn_VAL_711_ASN_NGAP_id_MBS_SessionID = 299; +static const long asn_VAL_711_ASN_NGAP_ignore = 1; +static const long asn_VAL_711_ASN_NGAP_mandatory = 2; +static const long asn_VAL_712_ASN_NGAP_id_MBS_ServiceArea = 298; +static const long asn_VAL_712_ASN_NGAP_ignore = 1; +static const long asn_VAL_712_ASN_NGAP_optional = 0; +static const long asn_VAL_713_ASN_NGAP_id_MulticastGroupPagingAreaList = 307; +static const long asn_VAL_713_ASN_NGAP_ignore = 1; +static const long asn_VAL_713_ASN_NGAP_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_MulticastGroupPagingIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_711_ASN_NGAP_id_MBS_SessionID }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_711_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_SessionID }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_711_ASN_NGAP_mandatory }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_712_ASN_NGAP_id_MBS_ServiceArea }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_712_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MBS_ServiceArea }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_712_ASN_NGAP_optional }, + { "&id", aioc__value, &asn_DEF_ASN_NGAP_ProtocolIE_ID, &asn_VAL_713_ASN_NGAP_id_MulticastGroupPagingAreaList }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_713_ASN_NGAP_ignore }, + { "&Value", aioc__type, &asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList }, + { "&presence", aioc__value, &asn_DEF_ASN_NGAP_Presence, &asn_VAL_713_ASN_NGAP_mandatory } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_MulticastGroupPagingIEs_1[] = { + { 3, 4, asn_IOS_ASN_NGAP_MulticastGroupPagingIEs_1_rows } +}; +static int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_CPTransportLayerInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_CPTransportLayerInformation_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 ASN_NGAP_CPTransportLayerInformation_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_ASN_NGAP_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_CPTransportLayerInformation_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_CPTransportLayerInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_CPTransportLayerInformation_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_GlobalRANNodeID_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_GlobalRANNodeID_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 ASN_NGAP_GlobalRANNodeID_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_ASN_NGAP_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_GlobalRANNodeID_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_GlobalRANNodeID_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_GlobalRANNodeID_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_IntersystemSONInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_IntersystemSONInformation_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 ASN_NGAP_IntersystemSONInformation_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_ASN_NGAP_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_IntersystemSONInformation_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_IntersystemSONInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_IntersystemSONInformation_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_IntersystemSONInformationReport_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_IntersystemSONInformationReport_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 ASN_NGAP_IntersystemSONInformationReport_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_ASN_NGAP_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_IntersystemSONInformationReport_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_IntersystemSONInformationReport_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_SONInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SONInformation_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 ASN_NGAP_SONInformation_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_ASN_NGAP_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_SONInformation_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SONInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_SONInformation_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_ASN_NGAP_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_ASN_NGAP_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_SONInformationReport_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SONInformationReport_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 ASN_NGAP_SONInformationReport_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_ASN_NGAP_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_SONInformationReport_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SONInformationReport_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_SONInformationReport_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_TargetID_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TargetID_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 ASN_NGAP_TargetID_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_ASN_NGAP_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_TargetID_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TargetID_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_TargetID_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_UserLocationInformation_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformation_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 ASN_NGAP_UserLocationInformation_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_ASN_NGAP_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_UserLocationInformation_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformation_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UserLocationInformation_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_ASN_NGAP_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_ASN_NGAP_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_UserLocationInformationW_AGF_ExtIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationW_AGF_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 ASN_NGAP_UserLocationInformationW_AGF_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_ASN_NGAP_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_UserLocationInformationW_AGF_ExtIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_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_ASN_NGAP_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_MBSSessionSetupOrModRequestTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_MBSSessionSetupOrModRequestTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_MulticastSessionUpdateRequestTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_MulticastSessionUpdateRequestTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceModifyRequestTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceModifyRequestTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceSetupRequestTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceSetupRequestTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceSetupRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceSetupRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceSetupResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceSetupResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceReleaseCommandIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceReleaseCommandIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceReleaseResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceReleaseResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceModifyRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceModifyRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceModifyResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceModifyResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceNotifyIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceNotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceNotifyIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceNotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceModifyIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceModifyIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PDUSessionResourceModifyConfirmIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PDUSessionResourceModifyConfirmIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_InitialContextSetupRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_InitialContextSetupRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_InitialContextSetupResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_InitialContextSetupResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_InitialContextSetupFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_InitialContextSetupFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialContextSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextReleaseRequest_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseRequest_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 ASN_NGAP_UEContextReleaseRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextReleaseRequest_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseRequest_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 ASN_NGAP_UEContextReleaseRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextReleaseCommand_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseCommand_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 ASN_NGAP_UEContextReleaseCommand_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextReleaseCommand_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseCommand_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 ASN_NGAP_UEContextReleaseCommand_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextReleaseComplete_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseComplete_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 ASN_NGAP_UEContextReleaseComplete_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextReleaseComplete_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextReleaseComplete_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 ASN_NGAP_UEContextReleaseComplete_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextResumeRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextResumeRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextResumeResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextResumeResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextResumeFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextResumeFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextResumeFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextSuspendRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextSuspendRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextSuspendResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextSuspendResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextSuspendFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextSuspendFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextSuspendFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextModificationRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextModificationRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextModificationResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextModificationResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEContextModificationFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEContextModificationFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEContextModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RRCInactiveTransitionReportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RRCInactiveTransitionReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RRCInactiveTransitionReportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RRCInactiveTransitionReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RetrieveUEInformationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RetrieveUEInformationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RetrieveUEInformationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RetrieveUEInformationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UEInformationTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UEInformationTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UEInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UEInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RANCPRelocationIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANCPRelocationIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RANCPRelocationIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANCPRelocationIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverRequiredIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverRequiredIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverCommandIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverCommandIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCommandIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCommandIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverPreparationFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverPreparationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverPreparationFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverPreparationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverRequestAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverRequestAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverRequestAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverNotifyIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverNotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverNotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverNotifyIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverNotifyIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverNotifyIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PathSwitchRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PathSwitchRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PathSwitchRequestAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PathSwitchRequestAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PathSwitchRequestFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PathSwitchRequestFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PathSwitchRequestFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverCancelIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCancelIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCancelIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverCancelIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCancelIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCancelIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverCancelAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCancelAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverCancelAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverCancelAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_HandoverSuccessIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverSuccessIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverSuccessIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_HandoverSuccessIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_HandoverSuccessIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_HandoverSuccessIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkRANEarlyStatusTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkRANEarlyStatusTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkRANEarlyStatusTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkRANEarlyStatusTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkRANStatusTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkRANStatusTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkRANStatusTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkRANStatusTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANStatusTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PagingIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PagingIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_InitialUEMessage_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialUEMessage_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 ASN_NGAP_InitialUEMessage_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_InitialUEMessage_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_InitialUEMessage_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 ASN_NGAP_InitialUEMessage_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkNASTransport_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkNASTransport_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 ASN_NGAP_DownlinkNASTransport_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkNASTransport_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkNASTransport_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 ASN_NGAP_DownlinkNASTransport_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkNASTransport_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkNASTransport_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 ASN_NGAP_UplinkNASTransport_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkNASTransport_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkNASTransport_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 ASN_NGAP_UplinkNASTransport_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NASNonDeliveryIndication_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NASNonDeliveryIndication_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 ASN_NGAP_NASNonDeliveryIndication_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NASNonDeliveryIndication_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NASNonDeliveryIndication_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 ASN_NGAP_NASNonDeliveryIndication_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RerouteNASRequest_IEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RerouteNASRequest_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 ASN_NGAP_RerouteNASRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RerouteNASRequest_IEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RerouteNASRequest_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 ASN_NGAP_RerouteNASRequest_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NGSetupRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NGSetupRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NGSetupResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NGSetupResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NGSetupFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NGSetupFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RANConfigurationUpdateIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RANConfigurationUpdateIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RANConfigurationUpdateAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RANConfigurationUpdateAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_RANConfigurationUpdateFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_RANConfigurationUpdateFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_RANConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_AMFConfigurationUpdateIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_AMFConfigurationUpdateIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_AMFConfigurationUpdateAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_AMFConfigurationUpdateAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_AMFConfigurationUpdateFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_AMFConfigurationUpdateFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFConfigurationUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_AMFStatusIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFStatusIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_AMFStatusIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFStatusIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NGResetIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGResetIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGResetIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NGResetIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGResetIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGResetIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_NGResetAcknowledgeIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGResetAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_NGResetAcknowledgeIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGResetAcknowledgeIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ErrorIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_ErrorIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_ErrorIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ErrorIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_ErrorIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_ErrorIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_OverloadStartIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_OverloadStartIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_OverloadStartIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_OverloadStartIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_OverloadStartIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_OverloadStartIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_UplinkRANConfigurationTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANConfigurationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkRANConfigurationTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRANConfigurationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkRANConfigurationTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANConfigurationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkRANConfigurationTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRANConfigurationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_WriteReplaceWarningRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_WriteReplaceWarningRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_WriteReplaceWarningRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_WriteReplaceWarningRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_WriteReplaceWarningResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_WriteReplaceWarningResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_WriteReplaceWarningResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_WriteReplaceWarningResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PWSCancelRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSCancelRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSCancelRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PWSCancelRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSCancelRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSCancelRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PWSCancelResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSCancelResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSCancelResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PWSCancelResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSCancelResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSCancelResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PWSRestartIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSRestartIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PWSRestartIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSRestartIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_PWSFailureIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_PWSFailureIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_PWSFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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 asn_type_selector_result_t +select_DownlinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DownlinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_TraceStartIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TraceStartIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_TraceStartIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_TraceStartIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TraceStartIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_TraceStartIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_TraceFailureIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TraceFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_TraceFailureIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_TraceFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DeactivateTraceIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DeactivateTraceIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DeactivateTraceIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DeactivateTraceIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DeactivateTraceIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DeactivateTraceIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_CellTrafficTraceIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_CellTrafficTraceIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_CellTrafficTraceIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_CellTrafficTraceIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_CellTrafficTraceIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_CellTrafficTraceIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_LocationReportingControlIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportingControlIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportingControlIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_LocationReportingControlIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportingControlIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportingControlIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_LocationReportingFailureIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportingFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_LocationReportingFailureIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportingFailureIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_LocationReportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_LocationReportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_LocationReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_LocationReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UETNLABindingReleaseRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UETNLABindingReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UETNLABindingReleaseRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UETNLABindingReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UERadioCapabilityInfoIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UERadioCapabilityInfoIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UERadioCapabilityCheckRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityCheckRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UERadioCapabilityCheckRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityCheckRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UERadioCapabilityCheckResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityCheckResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UERadioCapabilityCheckResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityCheckResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_SecondaryRATDataUsageReportIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SecondaryRATDataUsageReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_SecondaryRATDataUsageReportIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_SecondaryRATDataUsageReportIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UplinkRIMInformationTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRIMInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UplinkRIMInformationTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UplinkRIMInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_DownlinkRIMInformationTransferIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRIMInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_DownlinkRIMInformationTransferIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DownlinkRIMInformationTransferIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ConnectionEstablishmentIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_ConnectionEstablishmentIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ConnectionEstablishmentIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_ConnectionEstablishmentIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UERadioCapabilityIDMappingRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UERadioCapabilityIDMappingRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_UERadioCapabilityIDMappingResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_UERadioCapabilityIDMappingResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_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_AMFCPRelocationIndicationIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFCPRelocationIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_AMFCPRelocationIndicationIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_AMFCPRelocationIndicationIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constraint_660(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constraint_664(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constraint_668(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionSetupFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constraint_672(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionModificationRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionModificationRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constraint_676(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionModificationResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionModificationResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 int +memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constraint_680(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionModificationFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionModificationFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionModificationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionReleaseRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionReleaseRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionReleaseRequiredIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_BroadcastSessionReleaseRequiredIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer__constraint_692(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_BroadcastSessionReleaseResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_BroadcastSessionReleaseResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_BroadcastSessionReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer__constraint_696(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer__constraint_700(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer__constraint_704(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionSetupFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionSetupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer__constraint_708(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionReleaseRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionReleaseRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionReleaseRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionReleaseResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_DistributionReleaseResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_DistributionReleaseResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer__constraint_716(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionActivationRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionActivationRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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_MulticastSessionActivationResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_MulticastSessionActivationResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionActivationFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionActivationFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionActivationFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer__constraint_728(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionDeactivationRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionDeactivationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionDeactivationRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionDeactivationRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionDeactivationResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionDeactivationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionDeactivationResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionDeactivationResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer__constraint_736(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_NGAP_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_MulticastSessionUpdateRequestIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_MulticastSessionUpdateRequestIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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_MulticastSessionUpdateResponseIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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_MulticastSessionUpdateResponseIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionUpdateFailureIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastSessionUpdateFailureIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastSessionUpdateFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastGroupPagingIEs_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastGroupPagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_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 asn_type_selector_result_t +select_MulticastGroupPagingIEs_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_MulticastGroupPagingIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + presence_index++; + if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) { + result.type_descriptor = type_cell->type_descriptor; + result.presence_index = presence_index; + break; + } + } + + return result; +} + +static int +memb_ASN_NGAP_value_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 asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constr_646 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constr_648 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constr_651 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constr_656 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constr_658 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_per_constraints_t asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constr_661 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer__constr_669 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer__constr_673 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer__constr_676 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer__constr_680 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer__constr_685 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer__constr_691 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer__constr_698 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer__constr_703 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_constr_748 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_ASN_NGAP_value_specs_4 = { + sizeof(struct ASN_NGAP_AMFPagingTarget_ExtIEs__value), + offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_AMFPagingTarget_ExtIEs__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_ASN_NGAP_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_ASN_NGAP_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFPagingTarget_ExtIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_2, memb_ASN_NGAP_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_4, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_4, memb_ASN_NGAP_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFPagingTarget_ExtIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFPagingTarget_ExtIEs_specs_1 = { + sizeof(struct ASN_NGAP_AMFPagingTarget_ExtIEs), + offsetof(struct ASN_NGAP_AMFPagingTarget_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFPagingTarget_ExtIEs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs = { + "AMFPagingTarget-ExtIEs", + "AMFPagingTarget-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1, + sizeof(asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFPagingTarget_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFPagingTarget_ExtIEs_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_8 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_6, memb_ASN_NGAP_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_7, memb_ASN_NGAP_criticality_constraint_5 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_8, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_8, memb_ASN_NGAP_value_constraint_5 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_specs_5 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs = { + "AreaScopeOfMDT-NR-ExtIEs", + "AreaScopeOfMDT-NR-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_5, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_specs_5 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_12 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_10, memb_ASN_NGAP_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_11, memb_ASN_NGAP_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_12, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_12, memb_ASN_NGAP_value_constraint_9 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tag2el_9[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_specs_9 = { + sizeof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs), + offsetof(struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs = { + "AreaScopeOfMDT-EUTRA-ExtIEs", + "AreaScopeOfMDT-EUTRA-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_9, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_specs_9 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_16 = { + sizeof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs__value), + offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_AreaScopeOfQMC_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfQMC_ExtIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_14, memb_ASN_NGAP_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_15, memb_ASN_NGAP_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_16, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_16, memb_ASN_NGAP_value_constraint_13 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tag2el_13[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfQMC_ExtIEs_specs_13 = { + sizeof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs), + offsetof(struct ASN_NGAP_AreaScopeOfQMC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs = { + "AreaScopeOfQMC-ExtIEs", + "AreaScopeOfQMC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13, + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13[0]), /* 1 */ + asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13) + /sizeof(asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfQMC_ExtIEs_13, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfQMC_ExtIEs_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_20 = { + sizeof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value), + offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_18, memb_ASN_NGAP_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_19, memb_ASN_NGAP_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_20, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_20, memb_ASN_NGAP_value_constraint_17 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_specs_17 = { + sizeof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs), + offsetof(struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tag2el_17, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs = { + "BroadcastCancelledAreaList-ExtIEs", + "BroadcastCancelledAreaList-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17, + sizeof(asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17) + /sizeof(asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17) + /sizeof(asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_17, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_specs_17 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_24 = { + sizeof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value), + offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_22, memb_ASN_NGAP_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_23, memb_ASN_NGAP_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_24, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_24, memb_ASN_NGAP_value_constraint_21 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_specs_21 = { + sizeof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs), + offsetof(struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tag2el_21, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs = { + "BroadcastCompletedAreaList-ExtIEs", + "BroadcastCompletedAreaList-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21, + sizeof(asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21) + /sizeof(asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21) + /sizeof(asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_21, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_specs_21 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_28 = { + sizeof(struct ASN_NGAP_CandidateCell_ExtIEs__value), + offsetof(struct ASN_NGAP_CandidateCell_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_CandidateCell_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_CandidateCell_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCell_ExtIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCell_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_26, memb_ASN_NGAP_id_constraint_25 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCell_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_27, memb_ASN_NGAP_criticality_constraint_25 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CandidateCell_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_28, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_28, memb_ASN_NGAP_value_constraint_25 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CandidateCell_ExtIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCell_ExtIEs_specs_25 = { + sizeof(struct ASN_NGAP_CandidateCell_ExtIEs), + offsetof(struct ASN_NGAP_CandidateCell_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CandidateCell_ExtIEs_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCell_ExtIEs = { + "CandidateCell-ExtIEs", + "CandidateCell-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25, + sizeof(asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25) + /sizeof(asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25[0]), /* 1 */ + asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25) + /sizeof(asn_DEF_ASN_NGAP_CandidateCell_ExtIEs_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCell_ExtIEs_25, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCell_ExtIEs_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_32 = { + sizeof(struct ASN_NGAP_Cause_ExtIEs__value), + offsetof(struct ASN_NGAP_Cause_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_Cause_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_Cause_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_Cause_ExtIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_30, memb_ASN_NGAP_id_constraint_29 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_31, memb_ASN_NGAP_criticality_constraint_29 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_Cause_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_32, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_32, memb_ASN_NGAP_value_constraint_29 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_Cause_ExtIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cause_ExtIEs_specs_29 = { + sizeof(struct ASN_NGAP_Cause_ExtIEs), + offsetof(struct ASN_NGAP_Cause_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_Cause_ExtIEs_tag2el_29, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cause_ExtIEs = { + "Cause-ExtIEs", + "Cause-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29, + sizeof(asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29) + /sizeof(asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29[0]), /* 1 */ + asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29) + /sizeof(asn_DEF_ASN_NGAP_Cause_ExtIEs_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Cause_ExtIEs_29, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Cause_ExtIEs_specs_29 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_36 = { + sizeof(struct ASN_NGAP_CellIDListForRestart_ExtIEs__value), + offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_CellIDListForRestart_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDListForRestart_ExtIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_34, memb_ASN_NGAP_id_constraint_33 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_35, memb_ASN_NGAP_criticality_constraint_33 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_36, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_36, memb_ASN_NGAP_value_constraint_33 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellIDListForRestart_ExtIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDListForRestart_ExtIEs_specs_33 = { + sizeof(struct ASN_NGAP_CellIDListForRestart_ExtIEs), + offsetof(struct ASN_NGAP_CellIDListForRestart_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellIDListForRestart_ExtIEs_tag2el_33, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs = { + "CellIDListForRestart-ExtIEs", + "CellIDListForRestart-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33, + sizeof(asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33) + /sizeof(asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33) + /sizeof(asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDListForRestart_ExtIEs_33, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDListForRestart_ExtIEs_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value, choice.EndpointIPAddressAndPort), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EndpointIPAddressAndPort, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EndpointIPAddressAndPort" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* EndpointIPAddressAndPort */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_40 = { + sizeof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_40, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CPTransportLayerInformation_ExtIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_38, memb_ASN_NGAP_id_constraint_37 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_CPTransportLayerInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_39, memb_ASN_NGAP_criticality_constraint_37 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_40, + select_CPTransportLayerInformation_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_40, memb_ASN_NGAP_value_constraint_37 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CPTransportLayerInformation_ExtIEs_specs_37 = { + sizeof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs), + offsetof(struct ASN_NGAP_CPTransportLayerInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs = { + "CPTransportLayerInformation-ExtIEs", + "CPTransportLayerInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37, + sizeof(asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37) + /sizeof(asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37[0]), /* 1 */ + asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37) + /sizeof(asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CPTransportLayerInformation_ExtIEs_37, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CPTransportLayerInformation_ExtIEs_specs_37 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_44 = { + sizeof(struct ASN_NGAP_DRBStatusDL_ExtIEs__value), + offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_DRBStatusDL_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL_ExtIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_42, memb_ASN_NGAP_id_constraint_41 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_43, memb_ASN_NGAP_criticality_constraint_41 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_44, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_44, memb_ASN_NGAP_value_constraint_41 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusDL_ExtIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL_ExtIEs_specs_41 = { + sizeof(struct ASN_NGAP_DRBStatusDL_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusDL_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusDL_ExtIEs_tag2el_41, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs = { + "DRBStatusDL-ExtIEs", + "DRBStatusDL-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41, + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL_ExtIEs_41, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL_ExtIEs_specs_41 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_48 = { + sizeof(struct ASN_NGAP_DRBStatusUL_ExtIEs__value), + offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_DRBStatusUL_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL_ExtIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_46, memb_ASN_NGAP_id_constraint_45 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_47, memb_ASN_NGAP_criticality_constraint_45 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_48, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_48, memb_ASN_NGAP_value_constraint_45 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DRBStatusUL_ExtIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL_ExtIEs_specs_45 = { + sizeof(struct ASN_NGAP_DRBStatusUL_ExtIEs), + offsetof(struct ASN_NGAP_DRBStatusUL_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DRBStatusUL_ExtIEs_tag2el_45, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs = { + "DRBStatusUL-ExtIEs", + "DRBStatusUL-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45, + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45[0]), /* 1 */ + asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45) + /sizeof(asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL_ExtIEs_45, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL_ExtIEs_specs_45 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_52 = { + sizeof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs__value), + offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ProcedureStageChoice_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ProcedureStageChoice_ExtIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_50, memb_ASN_NGAP_id_constraint_49 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_51, memb_ASN_NGAP_criticality_constraint_49 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_52, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_52, memb_ASN_NGAP_value_constraint_49 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ProcedureStageChoice_ExtIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ProcedureStageChoice_ExtIEs_specs_49 = { + sizeof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs), + offsetof(struct ASN_NGAP_ProcedureStageChoice_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ProcedureStageChoice_ExtIEs_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs = { + "ProcedureStageChoice-ExtIEs", + "ProcedureStageChoice-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49, + sizeof(asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ProcedureStageChoice_ExtIEs_49, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ProcedureStageChoice_ExtIEs_specs_49 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_56 = { + sizeof(struct ASN_NGAP_ENB_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_ENB_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ENB_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ENB_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_56 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ENB_ID_ExtIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_54, memb_ASN_NGAP_id_constraint_53 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_55, memb_ASN_NGAP_criticality_constraint_53 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ENB_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_56, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_56, memb_ASN_NGAP_value_constraint_53 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ENB_ID_ExtIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ENB_ID_ExtIEs_specs_53 = { + sizeof(struct ASN_NGAP_ENB_ID_ExtIEs), + offsetof(struct ASN_NGAP_ENB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ENB_ID_ExtIEs_tag2el_53, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ENB_ID_ExtIEs = { + "ENB-ID-ExtIEs", + "ENB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53, + sizeof(asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53[0]), /* 1 */ + asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ENB_ID_ExtIEs_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ENB_ID_ExtIEs_53, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ENB_ID_ExtIEs_specs_53 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_60 = { + sizeof(struct ASN_NGAP_EventTrigger_ExtIEs__value), + offsetof(struct ASN_NGAP_EventTrigger_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_EventTrigger_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_EventTrigger_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_EventTrigger_ExtIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventTrigger_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_58, memb_ASN_NGAP_id_constraint_57 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventTrigger_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_59, memb_ASN_NGAP_criticality_constraint_57 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_EventTrigger_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_60, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_60, memb_ASN_NGAP_value_constraint_57 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_EventTrigger_ExtIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventTrigger_ExtIEs_specs_57 = { + sizeof(struct ASN_NGAP_EventTrigger_ExtIEs), + offsetof(struct ASN_NGAP_EventTrigger_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_EventTrigger_ExtIEs_tag2el_57, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventTrigger_ExtIEs = { + "EventTrigger-ExtIEs", + "EventTrigger-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57, + sizeof(asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57) + /sizeof(asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57[0]), /* 1 */ + asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57) + /sizeof(asn_DEF_ASN_NGAP_EventTrigger_ExtIEs_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventTrigger_ExtIEs_57, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EventTrigger_ExtIEs_specs_57 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_64 = { + sizeof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value), + offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_62, memb_ASN_NGAP_id_constraint_61 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_63, memb_ASN_NGAP_criticality_constraint_61 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_64, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_64, memb_ASN_NGAP_value_constraint_61 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_specs_61 = { + sizeof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs), + offsetof(struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs = { + "MeasurementThresholdL1LoggedMDT-ExtIEs", + "MeasurementThresholdL1LoggedMDT-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61, + sizeof(asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61) + /sizeof(asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61[0]), /* 1 */ + asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61) + /sizeof(asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_61, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value, choice.GlobalTNGF_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalTNGF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalTNGF-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value, choice.GlobalTWIF_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalTWIF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalTWIF-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value, choice.GlobalW_AGF_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalW_AGF_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalW-AGF-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_68[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalTNGF-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* GlobalTWIF-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* GlobalW-AGF-ID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_68 = { + sizeof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value), + offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_68, + 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_ASN_NGAP_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_ASN_NGAP_value_68, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalRANNodeID_ExtIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_66, memb_ASN_NGAP_id_constraint_65 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_GlobalRANNodeID_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_67, memb_ASN_NGAP_criticality_constraint_65 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_68, + select_GlobalRANNodeID_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_68, memb_ASN_NGAP_value_constraint_65 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GlobalRANNodeID_ExtIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalRANNodeID_ExtIEs_specs_65 = { + sizeof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs), + offsetof(struct ASN_NGAP_GlobalRANNodeID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GlobalRANNodeID_ExtIEs_tag2el_65, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs = { + "GlobalRANNodeID-ExtIEs", + "GlobalRANNodeID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65, + sizeof(asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65) + /sizeof(asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65[0]), /* 1 */ + asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65) + /sizeof(asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalRANNodeID_ExtIEs_65, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalRANNodeID_ExtIEs_specs_65 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_72 = { + sizeof(struct ASN_NGAP_GNB_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_GNB_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_GNB_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_GNB_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_GNB_ID_ExtIEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GNB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_70, memb_ASN_NGAP_id_constraint_69 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GNB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_71, memb_ASN_NGAP_criticality_constraint_69 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_GNB_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_72, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_72, memb_ASN_NGAP_value_constraint_69 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_GNB_ID_ExtIEs_tag2el_69[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GNB_ID_ExtIEs_specs_69 = { + sizeof(struct ASN_NGAP_GNB_ID_ExtIEs), + offsetof(struct ASN_NGAP_GNB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_GNB_ID_ExtIEs_tag2el_69, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GNB_ID_ExtIEs = { + "GNB-ID-ExtIEs", + "GNB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69, + sizeof(asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69) + /sizeof(asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69[0]), /* 1 */ + asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69) + /sizeof(asn_DEF_ASN_NGAP_GNB_ID_ExtIEs_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GNB_ID_ExtIEs_69, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GNB_ID_ExtIEs_specs_69 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_76 = { + sizeof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs__value), + offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_IntersystemSONTransferType_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONTransferType_ExtIEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_74, memb_ASN_NGAP_id_constraint_73 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_75, memb_ASN_NGAP_criticality_constraint_73 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_76, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_76, memb_ASN_NGAP_value_constraint_73 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tag2el_73[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONTransferType_ExtIEs_specs_73 = { + sizeof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONTransferType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs = { + "IntersystemSONTransferType-ExtIEs", + "IntersystemSONTransferType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs_tags_73[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONTransferType_ExtIEs_73, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONTransferType_ExtIEs_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_80[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value, choice.IntersystemSONInformationRequest), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_IntersystemSONInformationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemSONInformationRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value, choice.IntersystemSONInformationReply), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_IntersystemSONInformationReply, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemSONInformationReply" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_80[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* nGRAN-CellActivation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* nGRAN-CellActivation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* resourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* resourceStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_80 = { + sizeof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_80, + 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_ASN_NGAP_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_ASN_NGAP_value_80, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformation_ExtIEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_78, memb_ASN_NGAP_id_constraint_77 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_IntersystemSONInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_79, memb_ASN_NGAP_criticality_constraint_77 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_80, + select_IntersystemSONInformation_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_80, memb_ASN_NGAP_value_constraint_77 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformation_ExtIEs_tag2el_77[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformation_ExtIEs_specs_77 = { + sizeof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONInformation_ExtIEs_tag2el_77, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs = { + "IntersystemSONInformation-ExtIEs", + "IntersystemSONInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs_tags_77[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformation_ExtIEs_77, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformation_ExtIEs_specs_77 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_84 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value), + offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_84 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_82, memb_ASN_NGAP_id_constraint_81 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_83, memb_ASN_NGAP_criticality_constraint_81 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_84, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_84, memb_ASN_NGAP_value_constraint_81 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_specs_81 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tag2el_81, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs = { + "IntersystemSONInformationRequest-ExtIEs", + "IntersystemSONInformationRequest-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_tags_81[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_81, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_specs_81 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_88 = { + sizeof(struct ASN_NGAP_ReportingSystem_ExtIEs__value), + offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ReportingSystem_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportingSystem_ExtIEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_86, memb_ASN_NGAP_id_constraint_85 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_87, memb_ASN_NGAP_criticality_constraint_85 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_88, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_88, memb_ASN_NGAP_value_constraint_85 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ReportingSystem_ExtIEs_tag2el_85[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ReportingSystem_ExtIEs_specs_85 = { + sizeof(struct ASN_NGAP_ReportingSystem_ExtIEs), + offsetof(struct ASN_NGAP_ReportingSystem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ReportingSystem_ExtIEs_tag2el_85, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs = { + "ReportingSystem-ExtIEs", + "ReportingSystem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85, + sizeof(asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85) + /sizeof(asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs_tags_85[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ReportingSystem_ExtIEs_85, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportingSystem_ExtIEs_specs_85 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_92 = { + sizeof(struct ASN_NGAP_ReportType_ExtIEs__value), + offsetof(struct ASN_NGAP_ReportType_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ReportType_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ReportType_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_92 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportType_ExtIEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_90, memb_ASN_NGAP_id_constraint_89 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_91, memb_ASN_NGAP_criticality_constraint_89 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportType_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_92, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_92, memb_ASN_NGAP_value_constraint_89 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ReportType_ExtIEs_tag2el_89[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ReportType_ExtIEs_specs_89 = { + sizeof(struct ASN_NGAP_ReportType_ExtIEs), + offsetof(struct ASN_NGAP_ReportType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ReportType_ExtIEs_tag2el_89, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportType_ExtIEs = { + "ReportType-ExtIEs", + "ReportType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89, + sizeof(asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89) + /sizeof(asn_DEF_ASN_NGAP_ReportType_ExtIEs_tags_89[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ReportType_ExtIEs_89, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportType_ExtIEs_specs_89 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_96 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value), + offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_96 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_94, memb_ASN_NGAP_id_constraint_93 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_95, memb_ASN_NGAP_criticality_constraint_93 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_96, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_96, memb_ASN_NGAP_value_constraint_93 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tag2el_93[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_specs_93 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tag2el_93, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs = { + "IntersystemSONInformationReply-ExtIEs", + "IntersystemSONInformationReply-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_tags_93[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_93, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_specs_93 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value, choice.IntersystemCellStateIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemCellStateIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemCellStateIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value, choice.IntersystemResourceStatusReport), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemResourceStatusReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemResourceStatusReport" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* IntersystemCellStateIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* IntersystemResourceStatusReport */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_100 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value), + offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_100, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_98, memb_ASN_NGAP_id_constraint_97 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_IntersystemSONInformationReport_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_99, memb_ASN_NGAP_criticality_constraint_97 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_100, + select_IntersystemSONInformationReport_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_100, memb_ASN_NGAP_value_constraint_97 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tag2el_97[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_specs_97 = { + sizeof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs), + offsetof(struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tag2el_97, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs = { + "IntersystemSONInformationReport-ExtIEs", + "IntersystemSONInformationReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97, + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97[0]), /* 1 */ + asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97) + /sizeof(asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_tags_97[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_97, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_specs_97 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_104 = { + sizeof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value), + offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_102, memb_ASN_NGAP_id_constraint_101 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_103, memb_ASN_NGAP_criticality_constraint_101 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_104, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_104, memb_ASN_NGAP_value_constraint_101 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tag2el_101[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_specs_101 = { + sizeof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs), + offsetof(struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tag2el_101, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs = { + "ResourceStatusReportingSystem-ExtIEs", + "ResourceStatusReportingSystem-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101, + sizeof(asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101[0]), /* 1 */ + asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101) + /sizeof(asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_tags_101[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_101, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_specs_101 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_108 = { + sizeof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value), + offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_106, memb_ASN_NGAP_id_constraint_105 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_107, memb_ASN_NGAP_criticality_constraint_105 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_108, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_108, memb_ASN_NGAP_value_constraint_105 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tag2el_105[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_specs_105 = { + sizeof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs), + offsetof(struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tag2el_105, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs = { + "InterSystemHandoverReportType-ExtIEs", + "InterSystemHandoverReportType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105, + sizeof(asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105[0]), /* 1 */ + asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105) + /sizeof(asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_tags_105[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_105, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_specs_105 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_112 = { + sizeof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_LastVisitedCellInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellInformation_ExtIEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_110, memb_ASN_NGAP_id_constraint_109 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_111, memb_ASN_NGAP_criticality_constraint_109 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_112, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_112, memb_ASN_NGAP_value_constraint_109 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tag2el_109[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellInformation_ExtIEs_specs_109 = { + sizeof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs), + offsetof(struct ASN_NGAP_LastVisitedCellInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tag2el_109, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs = { + "LastVisitedCellInformation-ExtIEs", + "LastVisitedCellInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109, + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109[0]), /* 1 */ + asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109) + /sizeof(asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs_tags_109[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedCellInformation_ExtIEs_109, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedCellInformation_ExtIEs_specs_109 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_116 = { + sizeof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs__value), + offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_LoggedMDTTrigger_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_116 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTTrigger_ExtIEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_114, memb_ASN_NGAP_id_constraint_113 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_115, memb_ASN_NGAP_criticality_constraint_113 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_116, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_116, memb_ASN_NGAP_value_constraint_113 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tag2el_113[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTTrigger_ExtIEs_specs_113 = { + sizeof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs), + offsetof(struct ASN_NGAP_LoggedMDTTrigger_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tag2el_113, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs = { + "LoggedMDTTrigger-ExtIEs", + "LoggedMDTTrigger-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113, + sizeof(asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113[0]), /* 1 */ + asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113) + /sizeof(asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs_tags_113[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LoggedMDTTrigger_ExtIEs_113, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LoggedMDTTrigger_ExtIEs_specs_113 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_120 = { + sizeof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MRB_ProgressInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_120 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MRB_ProgressInformation_ExtIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_118, memb_ASN_NGAP_id_constraint_117 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_119, memb_ASN_NGAP_criticality_constraint_117 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_120, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_120, memb_ASN_NGAP_value_constraint_117 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tag2el_117[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MRB_ProgressInformation_ExtIEs_specs_117 = { + sizeof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs), + offsetof(struct ASN_NGAP_MRB_ProgressInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tag2el_117, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs = { + "MRB-ProgressInformation-ExtIEs", + "MRB-ProgressInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117, + sizeof(asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117) + /sizeof(asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117[0]), /* 1 */ + asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117) + /sizeof(asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs_tags_117[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MRB_ProgressInformation_ExtIEs_117, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MRB_ProgressInformation_ExtIEs_specs_117 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_124 = { + sizeof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs__value), + offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MBS_ServiceArea_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceArea_ExtIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_122, memb_ASN_NGAP_id_constraint_121 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_123, memb_ASN_NGAP_criticality_constraint_121 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_124, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_124, memb_ASN_NGAP_value_constraint_121 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_ServiceArea_ExtIEs_tag2el_121[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceArea_ExtIEs_specs_121 = { + sizeof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs), + offsetof(struct ASN_NGAP_MBS_ServiceArea_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_ServiceArea_ExtIEs_tag2el_121, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs = { + "MBS-ServiceArea-ExtIEs", + "MBS-ServiceArea-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121, + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121) + /sizeof(asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs_tags_121[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceArea_ExtIEs_121, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceArea_ExtIEs_specs_121 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_128 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_128 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_126, memb_ASN_NGAP_id_constraint_125 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_127, memb_ASN_NGAP_criticality_constraint_125 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_128, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_128, memb_ASN_NGAP_value_constraint_125 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tag2el_125[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_specs_125 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tag2el_125, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs = { + "MBS-SessionTNLInfo5GC-ExtIEs", + "MBS-SessionTNLInfo5GC-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_tags_125[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_125, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_specs_125 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_132 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_130, memb_ASN_NGAP_id_constraint_129 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_131, memb_ASN_NGAP_criticality_constraint_129 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_132, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_132, memb_ASN_NGAP_value_constraint_129 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tag2el_129[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_specs_129 = { + sizeof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs), + offsetof(struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tag2el_129, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs = { + "MBS-SessionTNLInfoNGRAN-ExtIEs", + "MBS-SessionTNLInfoNGRAN-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129, + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129) + /sizeof(asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_tags_129[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_129, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_specs_129 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_136 = { + sizeof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value), + offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_134, memb_ASN_NGAP_id_constraint_133 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_135, memb_ASN_NGAP_criticality_constraint_133 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_136, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_136, memb_ASN_NGAP_value_constraint_133 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tag2el_133[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_specs_133 = { + sizeof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs), + offsetof(struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tag2el_133, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs = { + "MDT-AlignmentInfo-ExtIEs", + "MDT-AlignmentInfo-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133, + sizeof(asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133) + /sizeof(asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133) + /sizeof(asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_tags_133[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_133, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_specs_133 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_140 = { + sizeof(struct ASN_NGAP_MDTModeNr_ExtIEs__value), + offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_MDTModeNr_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_140 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTModeNr_ExtIEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_138, memb_ASN_NGAP_id_constraint_137 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_139, memb_ASN_NGAP_criticality_constraint_137 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_140, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_140, memb_ASN_NGAP_value_constraint_137 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MDTModeNr_ExtIEs_tag2el_137[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDTModeNr_ExtIEs_specs_137 = { + sizeof(struct ASN_NGAP_MDTModeNr_ExtIEs), + offsetof(struct ASN_NGAP_MDTModeNr_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MDTModeNr_ExtIEs_tag2el_137, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs = { + "MDTModeNr-ExtIEs", + "MDTModeNr-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137, + sizeof(asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137) + /sizeof(asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137[0]), /* 1 */ + asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137) + /sizeof(asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs_tags_137[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDTModeNr_ExtIEs_137, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDTModeNr_ExtIEs_specs_137 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_144 = { + sizeof(struct ASN_NGAP_M1ThresholdType_ExtIEs__value), + offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_M1ThresholdType_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_144 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdType_ExtIEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_142, memb_ASN_NGAP_id_constraint_141 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_143, memb_ASN_NGAP_criticality_constraint_141 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_144, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_144, memb_ASN_NGAP_value_constraint_141 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_M1ThresholdType_ExtIEs_tag2el_141[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdType_ExtIEs_specs_141 = { + sizeof(struct ASN_NGAP_M1ThresholdType_ExtIEs), + offsetof(struct ASN_NGAP_M1ThresholdType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_M1ThresholdType_ExtIEs_tag2el_141, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs = { + "M1ThresholdType-ExtIEs", + "M1ThresholdType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141, + sizeof(asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141[0]), /* 1 */ + asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141) + /sizeof(asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs_tags_141[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1ThresholdType_ExtIEs_141, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1ThresholdType_ExtIEs_specs_141 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_148 = { + sizeof(struct ASN_NGAP_N3IWF_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_N3IWF_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_N3IWF_ID_ExtIEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_146, memb_ASN_NGAP_id_constraint_145 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_147, memb_ASN_NGAP_criticality_constraint_145 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_148, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_148, memb_ASN_NGAP_value_constraint_145 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_N3IWF_ID_ExtIEs_tag2el_145[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_N3IWF_ID_ExtIEs_specs_145 = { + sizeof(struct ASN_NGAP_N3IWF_ID_ExtIEs), + offsetof(struct ASN_NGAP_N3IWF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_N3IWF_ID_ExtIEs_tag2el_145, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs = { + "N3IWF-ID-ExtIEs", + "N3IWF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145, + sizeof(asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145) + /sizeof(asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145[0]), /* 1 */ + asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145) + /sizeof(asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs_tags_145[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_N3IWF_ID_ExtIEs_145, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_N3IWF_ID_ExtIEs_specs_145 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_152 = { + sizeof(struct ASN_NGAP_NgENB_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NgENB_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_152 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NgENB_ID_ExtIEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_150, memb_ASN_NGAP_id_constraint_149 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_151, memb_ASN_NGAP_criticality_constraint_149 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_152, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_152, memb_ASN_NGAP_value_constraint_149 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NgENB_ID_ExtIEs_tag2el_149[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NgENB_ID_ExtIEs_specs_149 = { + sizeof(struct ASN_NGAP_NgENB_ID_ExtIEs), + offsetof(struct ASN_NGAP_NgENB_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NgENB_ID_ExtIEs_tag2el_149, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs = { + "NgENB-ID-ExtIEs", + "NgENB-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149, + sizeof(asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149) + /sizeof(asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149[0]), /* 1 */ + asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149) + /sizeof(asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs_tags_149[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NgENB_ID_ExtIEs_149, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NgENB_ID_ExtIEs_specs_149 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_156 = { + sizeof(struct ASN_NGAP_NGRAN_CGI_ExtIEs__value), + offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NGRAN_CGI_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_156 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CGI_ExtIEs_153[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_154, memb_ASN_NGAP_id_constraint_153 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_155, memb_ASN_NGAP_criticality_constraint_153 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_156, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_156, memb_ASN_NGAP_value_constraint_153 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGRAN_CGI_ExtIEs_tag2el_153[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CGI_ExtIEs_specs_153 = { + sizeof(struct ASN_NGAP_NGRAN_CGI_ExtIEs), + offsetof(struct ASN_NGAP_NGRAN_CGI_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGRAN_CGI_ExtIEs_tag2el_153, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs = { + "NGRAN-CGI-ExtIEs", + "NGRAN-CGI-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153, + sizeof(asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153) + /sizeof(asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs_tags_153[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CGI_ExtIEs_153, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CGI_ExtIEs_specs_153 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_160 = { + sizeof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NPN_AccessInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_160 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_AccessInformation_ExtIEs_157[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_158, memb_ASN_NGAP_id_constraint_157 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_159, memb_ASN_NGAP_criticality_constraint_157 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_160, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_160, memb_ASN_NGAP_value_constraint_157 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_AccessInformation_ExtIEs_tag2el_157[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_AccessInformation_ExtIEs_specs_157 = { + sizeof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs), + offsetof(struct ASN_NGAP_NPN_AccessInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NPN_AccessInformation_ExtIEs_tag2el_157, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs = { + "NPN-AccessInformation-ExtIEs", + "NPN-AccessInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157, + sizeof(asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157) + /sizeof(asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157[0]), /* 1 */ + asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157) + /sizeof(asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs_tags_157[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_AccessInformation_ExtIEs_157, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_AccessInformation_ExtIEs_specs_157 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_164 = { + sizeof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NPN_MobilityInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_164 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_MobilityInformation_ExtIEs_161[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_162, memb_ASN_NGAP_id_constraint_161 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_163, memb_ASN_NGAP_criticality_constraint_161 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_164, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_164, memb_ASN_NGAP_value_constraint_161 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tag2el_161[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_MobilityInformation_ExtIEs_specs_161 = { + sizeof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs), + offsetof(struct ASN_NGAP_NPN_MobilityInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tag2el_161, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs = { + "NPN-MobilityInformation-ExtIEs", + "NPN-MobilityInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161, + sizeof(asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161) + /sizeof(asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161[0]), /* 1 */ + asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161) + /sizeof(asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs_tags_161[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_MobilityInformation_ExtIEs_161, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_MobilityInformation_ExtIEs_specs_161 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_168 = { + sizeof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_168 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_165[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_166, memb_ASN_NGAP_id_constraint_165 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_167, memb_ASN_NGAP_criticality_constraint_165 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_168, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_168, memb_ASN_NGAP_value_constraint_165 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tag2el_165[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_specs_165 = { + sizeof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs), + offsetof(struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tag2el_165, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs = { + "NPN-PagingAssistanceInformation-ExtIEs", + "NPN-PagingAssistanceInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165, + sizeof(asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165) + /sizeof(asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165[0]), /* 1 */ + asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165) + /sizeof(asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_tags_165[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_165, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_specs_165 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_172 = { + sizeof(struct ASN_NGAP_NPN_Support_ExtIEs__value), + offsetof(struct ASN_NGAP_NPN_Support_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NPN_Support_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_NPN_Support_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_172 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_Support_ExtIEs_169[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_Support_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_170, memb_ASN_NGAP_id_constraint_169 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_Support_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_171, memb_ASN_NGAP_criticality_constraint_169 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NPN_Support_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_172, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_172, memb_ASN_NGAP_value_constraint_169 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NPN_Support_ExtIEs_tag2el_169[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_Support_ExtIEs_specs_169 = { + sizeof(struct ASN_NGAP_NPN_Support_ExtIEs), + offsetof(struct ASN_NGAP_NPN_Support_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NPN_Support_ExtIEs_tag2el_169, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_Support_ExtIEs = { + "NPN-Support-ExtIEs", + "NPN-Support-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169, + sizeof(asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169) + /sizeof(asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169[0]), /* 1 */ + asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169) + /sizeof(asn_DEF_ASN_NGAP_NPN_Support_ExtIEs_tags_169[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_Support_ExtIEs_169, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_Support_ExtIEs_specs_169 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_176 = { + sizeof(struct ASN_NGAP_OverloadResponse_ExtIEs__value), + offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_OverloadResponse_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_176 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadResponse_ExtIEs_173[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_174, memb_ASN_NGAP_id_constraint_173 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_175, memb_ASN_NGAP_criticality_constraint_173 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_176, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_176, memb_ASN_NGAP_value_constraint_173 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadResponse_ExtIEs_tag2el_173[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadResponse_ExtIEs_specs_173 = { + sizeof(struct ASN_NGAP_OverloadResponse_ExtIEs), + offsetof(struct ASN_NGAP_OverloadResponse_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadResponse_ExtIEs_tag2el_173, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs = { + "OverloadResponse-ExtIEs", + "OverloadResponse-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173, + sizeof(asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173) + /sizeof(asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173) + /sizeof(asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs_tags_173[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadResponse_ExtIEs_173, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadResponse_ExtIEs_specs_173 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_180 = { + sizeof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs__value), + offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_PWSFailedCellIDList_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_180 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailedCellIDList_ExtIEs_177[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_178, memb_ASN_NGAP_id_constraint_177 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_179, memb_ASN_NGAP_criticality_constraint_177 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_180, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_180, memb_ASN_NGAP_value_constraint_177 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tag2el_177[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailedCellIDList_ExtIEs_specs_177 = { + sizeof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs), + offsetof(struct ASN_NGAP_PWSFailedCellIDList_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tag2el_177, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs = { + "PWSFailedCellIDList-ExtIEs", + "PWSFailedCellIDList-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177, + sizeof(asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177) + /sizeof(asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177) + /sizeof(asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs_tags_177[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSFailedCellIDList_ExtIEs_177, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSFailedCellIDList_ExtIEs_specs_177 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_184 = { + sizeof(struct ASN_NGAP_QosCharacteristics_ExtIEs__value), + offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_QosCharacteristics_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_184 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosCharacteristics_ExtIEs_181[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_182, memb_ASN_NGAP_id_constraint_181 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_183, memb_ASN_NGAP_criticality_constraint_181 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_184, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_184, memb_ASN_NGAP_value_constraint_181 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosCharacteristics_ExtIEs_tag2el_181[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosCharacteristics_ExtIEs_specs_181 = { + sizeof(struct ASN_NGAP_QosCharacteristics_ExtIEs), + offsetof(struct ASN_NGAP_QosCharacteristics_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_QosCharacteristics_ExtIEs_tag2el_181, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs = { + "QosCharacteristics-ExtIEs", + "QosCharacteristics-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181, + sizeof(asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181) + /sizeof(asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181) + /sizeof(asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs_tags_181[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosCharacteristics_ExtIEs_181, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosCharacteristics_ExtIEs_specs_181 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_188 = { + sizeof(struct ASN_NGAP_ResetType_ExtIEs__value), + offsetof(struct ASN_NGAP_ResetType_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ResetType_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_ResetType_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_188 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ResetType_ExtIEs_185[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResetType_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_186, memb_ASN_NGAP_id_constraint_185 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResetType_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_187, memb_ASN_NGAP_criticality_constraint_185 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResetType_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_188, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_188, memb_ASN_NGAP_value_constraint_185 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ResetType_ExtIEs_tag2el_185[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ResetType_ExtIEs_specs_185 = { + sizeof(struct ASN_NGAP_ResetType_ExtIEs), + offsetof(struct ASN_NGAP_ResetType_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ResetType_ExtIEs_tag2el_185, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetType_ExtIEs = { + "ResetType-ExtIEs", + "ResetType-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185, + sizeof(asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185[0]), /* 1 */ + asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185) + /sizeof(asn_DEF_ASN_NGAP_ResetType_ExtIEs_tags_185[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ResetType_ExtIEs_185, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResetType_ExtIEs_specs_185 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_192 = { + sizeof(struct ASN_NGAP_SensorNameConfig_ExtIEs__value), + offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_SensorNameConfig_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_192 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorNameConfig_ExtIEs_189[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_190, memb_ASN_NGAP_id_constraint_189 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_191, memb_ASN_NGAP_criticality_constraint_189 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_192, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_192, memb_ASN_NGAP_value_constraint_189 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorNameConfig_ExtIEs_tag2el_189[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorNameConfig_ExtIEs_specs_189 = { + sizeof(struct ASN_NGAP_SensorNameConfig_ExtIEs), + offsetof(struct ASN_NGAP_SensorNameConfig_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SensorNameConfig_ExtIEs_tag2el_189, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs = { + "SensorNameConfig-ExtIEs", + "SensorNameConfig-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189, + sizeof(asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189) + /sizeof(asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189) + /sizeof(asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs_tags_189[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorNameConfig_ExtIEs_189, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorNameConfig_ExtIEs_specs_189 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_196[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformation_ExtIEs__value, choice.SONInformationReport), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_SONInformationReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SONInformationReport" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_196[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureIndicationInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* hOReportInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_196 = { + sizeof(struct ASN_NGAP_SONInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_SONInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_SONInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_SONInformation_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_196, + 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_ASN_NGAP_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_ASN_NGAP_value_196, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_196 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformation_ExtIEs_193[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_194, memb_ASN_NGAP_id_constraint_193 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SONInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_195, memb_ASN_NGAP_criticality_constraint_193 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_196, + select_SONInformation_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_196, memb_ASN_NGAP_value_constraint_193 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformation_ExtIEs_tag2el_193[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformation_ExtIEs_specs_193 = { + sizeof(struct ASN_NGAP_SONInformation_ExtIEs), + offsetof(struct ASN_NGAP_SONInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SONInformation_ExtIEs_tag2el_193, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformation_ExtIEs = { + "SONInformation-ExtIEs", + "SONInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193, + sizeof(asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193) + /sizeof(asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193) + /sizeof(asn_DEF_ASN_NGAP_SONInformation_ExtIEs_tags_193[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformation_ExtIEs_193, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformation_ExtIEs_specs_193 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_200[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs__value, choice.SuccessfulHandoverReportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SuccessfulHandoverReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SuccessfulHandoverReportList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_200[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SuccessfulHandoverReportList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_200 = { + sizeof(struct ASN_NGAP_SONInformationReport_ExtIEs__value), + offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_SONInformationReport_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_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_ASN_NGAP_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_ASN_NGAP_value_200, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_200 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReport_ExtIEs_197[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_198, memb_ASN_NGAP_id_constraint_197 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SONInformationReport_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_199, memb_ASN_NGAP_criticality_constraint_197 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_200, + select_SONInformationReport_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_200, memb_ASN_NGAP_value_constraint_197 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformationReport_ExtIEs_tag2el_197[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReport_ExtIEs_specs_197 = { + sizeof(struct ASN_NGAP_SONInformationReport_ExtIEs), + offsetof(struct ASN_NGAP_SONInformationReport_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SONInformationReport_ExtIEs_tag2el_197, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs = { + "SONInformationReport-ExtIEs", + "SONInformationReport-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197, + sizeof(asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs_tags_197[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformationReport_ExtIEs_197, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformationReport_ExtIEs_specs_197 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_204 = { + sizeof(struct ASN_NGAP_SourceNodeID_ExtIEs__value), + offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_SourceNodeID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_204 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNodeID_ExtIEs_201[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_202, memb_ASN_NGAP_id_constraint_201 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_203, memb_ASN_NGAP_criticality_constraint_201 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_204, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_204, memb_ASN_NGAP_value_constraint_201 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceNodeID_ExtIEs_tag2el_201[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceNodeID_ExtIEs_specs_201 = { + sizeof(struct ASN_NGAP_SourceNodeID_ExtIEs), + offsetof(struct ASN_NGAP_SourceNodeID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SourceNodeID_ExtIEs_tag2el_201, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs = { + "SourceNodeID-ExtIEs", + "SourceNodeID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201, + sizeof(asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201) + /sizeof(asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201) + /sizeof(asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs_tags_201[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceNodeID_ExtIEs_201, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceNodeID_ExtIEs_specs_201 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_208[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetID_ExtIEs__value, choice.TargetRNC_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetRNC_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetRNC-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetID_ExtIEs__value, choice.TargetHomeENB_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetHomeENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetHomeENB-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_208[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* TargetRNC-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* TargetHomeENB-ID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_208 = { + sizeof(struct ASN_NGAP_TargetID_ExtIEs__value), + offsetof(struct ASN_NGAP_TargetID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_TargetID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_TargetID_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_208, + 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_ASN_NGAP_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_ASN_NGAP_value_208, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_208 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetID_ExtIEs_205[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_206, memb_ASN_NGAP_id_constraint_205 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TargetID_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_207, memb_ASN_NGAP_criticality_constraint_205 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_208, + select_TargetID_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_208, memb_ASN_NGAP_value_constraint_205 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetID_ExtIEs_tag2el_205[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetID_ExtIEs_specs_205 = { + sizeof(struct ASN_NGAP_TargetID_ExtIEs), + offsetof(struct ASN_NGAP_TargetID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TargetID_ExtIEs_tag2el_205, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetID_ExtIEs = { + "TargetID-ExtIEs", + "TargetID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205, + sizeof(asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205) + /sizeof(asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205) + /sizeof(asn_DEF_ASN_NGAP_TargetID_ExtIEs_tags_205[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetID_ExtIEs_205, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetID_ExtIEs_specs_205 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_212 = { + sizeof(struct ASN_NGAP_TNGF_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_TNGF_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_212 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TNGF_ID_ExtIEs_209[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_210, memb_ASN_NGAP_id_constraint_209 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_211, memb_ASN_NGAP_criticality_constraint_209 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_212, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_212, memb_ASN_NGAP_value_constraint_209 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TNGF_ID_ExtIEs_tag2el_209[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNGF_ID_ExtIEs_specs_209 = { + sizeof(struct ASN_NGAP_TNGF_ID_ExtIEs), + offsetof(struct ASN_NGAP_TNGF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TNGF_ID_ExtIEs_tag2el_209, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs = { + "TNGF-ID-ExtIEs", + "TNGF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209, + sizeof(asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209) + /sizeof(asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209) + /sizeof(asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs_tags_209[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TNGF_ID_ExtIEs_209, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TNGF_ID_ExtIEs_specs_209 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_216 = { + sizeof(struct ASN_NGAP_TWIF_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_TWIF_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_216 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TWIF_ID_ExtIEs_213[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_214, memb_ASN_NGAP_id_constraint_213 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_215, memb_ASN_NGAP_criticality_constraint_213 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_216, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_216, memb_ASN_NGAP_value_constraint_213 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TWIF_ID_ExtIEs_tag2el_213[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TWIF_ID_ExtIEs_specs_213 = { + sizeof(struct ASN_NGAP_TWIF_ID_ExtIEs), + offsetof(struct ASN_NGAP_TWIF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TWIF_ID_ExtIEs_tag2el_213, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs = { + "TWIF-ID-ExtIEs", + "TWIF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213, + sizeof(asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213) + /sizeof(asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213[0]), /* 1 */ + asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213) + /sizeof(asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs_tags_213[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TWIF_ID_ExtIEs_213, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TWIF_ID_ExtIEs_specs_213 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_220 = { + sizeof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value), + offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_220 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_217[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_218, memb_ASN_NGAP_id_constraint_217 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_219, memb_ASN_NGAP_criticality_constraint_217 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_220, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_220, memb_ASN_NGAP_value_constraint_217 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tag2el_217[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_specs_217 = { + sizeof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs), + offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tag2el_217, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs = { + "UEHistoryInformationFromTheUE-ExtIEs", + "UEHistoryInformationFromTheUE-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217, + sizeof(asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217) + /sizeof(asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217) + /sizeof(asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_tags_217[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_217, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_specs_217 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_224 = { + sizeof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs__value), + offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UEIdentityIndexValue_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_224 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEIdentityIndexValue_ExtIEs_221[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_222, memb_ASN_NGAP_id_constraint_221 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_223, memb_ASN_NGAP_criticality_constraint_221 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_224, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_224, memb_ASN_NGAP_value_constraint_221 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tag2el_221[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEIdentityIndexValue_ExtIEs_specs_221 = { + sizeof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs), + offsetof(struct ASN_NGAP_UEIdentityIndexValue_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tag2el_221, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs = { + "UEIdentityIndexValue-ExtIEs", + "UEIdentityIndexValue-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221, + sizeof(asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221) + /sizeof(asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221) + /sizeof(asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs_tags_221[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEIdentityIndexValue_ExtIEs_221, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEIdentityIndexValue_ExtIEs_specs_221 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_228 = { + sizeof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs__value), + offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UE_NGAP_IDs_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_228 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_IDs_ExtIEs_225[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_226, memb_ASN_NGAP_id_constraint_225 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_227, memb_ASN_NGAP_criticality_constraint_225 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_228, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_228, memb_ASN_NGAP_value_constraint_225 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tag2el_225[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_IDs_ExtIEs_specs_225 = { + sizeof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs), + offsetof(struct ASN_NGAP_UE_NGAP_IDs_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tag2el_225, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs = { + "UE-NGAP-IDs-ExtIEs", + "UE-NGAP-IDs-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225, + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs_tags_225[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_NGAP_IDs_ExtIEs_225, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_NGAP_IDs_ExtIEs_specs_225 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_232 = { + sizeof(struct ASN_NGAP_UEPagingIdentity_ExtIEs__value), + offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UEPagingIdentity_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_232 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPagingIdentity_ExtIEs_229[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_230, memb_ASN_NGAP_id_constraint_229 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_231, memb_ASN_NGAP_criticality_constraint_229 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_232, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_232, memb_ASN_NGAP_value_constraint_229 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEPagingIdentity_ExtIEs_tag2el_229[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPagingIdentity_ExtIEs_specs_229 = { + sizeof(struct ASN_NGAP_UEPagingIdentity_ExtIEs), + offsetof(struct ASN_NGAP_UEPagingIdentity_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEPagingIdentity_ExtIEs_tag2el_229, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs = { + "UEPagingIdentity-ExtIEs", + "UEPagingIdentity-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229, + sizeof(asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229) + /sizeof(asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229) + /sizeof(asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs_tags_229[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEPagingIdentity_ExtIEs_229, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEPagingIdentity_ExtIEs_specs_229 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_236 = { + sizeof(struct ASN_NGAP_UERLFReportContainer_ExtIEs__value), + offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UERLFReportContainer_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_236 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERLFReportContainer_ExtIEs_233[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_234, memb_ASN_NGAP_id_constraint_233 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_235, memb_ASN_NGAP_criticality_constraint_233 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_236, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_236, memb_ASN_NGAP_value_constraint_233 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERLFReportContainer_ExtIEs_tag2el_233[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERLFReportContainer_ExtIEs_specs_233 = { + sizeof(struct ASN_NGAP_UERLFReportContainer_ExtIEs), + offsetof(struct ASN_NGAP_UERLFReportContainer_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERLFReportContainer_ExtIEs_tag2el_233, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs = { + "UERLFReportContainer-ExtIEs", + "UERLFReportContainer-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233, + sizeof(asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233) + /sizeof(asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233) + /sizeof(asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs_tags_233[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERLFReportContainer_ExtIEs_233, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERLFReportContainer_ExtIEs_specs_233 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_240 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UPTransportLayerInformation_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_240 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformation_ExtIEs_237[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_238, memb_ASN_NGAP_id_constraint_237 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_239, memb_ASN_NGAP_criticality_constraint_237 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_240, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_240, memb_ASN_NGAP_value_constraint_237 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tag2el_237[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformation_ExtIEs_specs_237 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs), + offsetof(struct ASN_NGAP_UPTransportLayerInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tag2el_237, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs = { + "UPTransportLayerInformation-ExtIEs", + "UPTransportLayerInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs_tags_237[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformation_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformation_ExtIEs_specs_237 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_244[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value, choice.UserLocationInformationTNGF), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationTNGF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformationTNGF" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value, choice.UserLocationInformationTWIF), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationTWIF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformationTWIF" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value, choice.UserLocationInformationW_AGF), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformationW_AGF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformationW-AGF" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_244[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* UserLocationInformationTNGF */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* UserLocationInformationTWIF */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* globalLine-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* hFCNode-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_244 = { + sizeof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value), + offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UserLocationInformation_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_244, + 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_ASN_NGAP_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_ASN_NGAP_value_244, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_244 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformation_ExtIEs_241[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_242, memb_ASN_NGAP_id_constraint_241 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformation_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_243, memb_ASN_NGAP_criticality_constraint_241 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_244, + select_UserLocationInformation_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_244, memb_ASN_NGAP_value_constraint_241 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformation_ExtIEs_tag2el_241[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformation_ExtIEs_specs_241 = { + sizeof(struct ASN_NGAP_UserLocationInformation_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformation_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformation_ExtIEs_tag2el_241, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs = { + "UserLocationInformation-ExtIEs", + "UserLocationInformation-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs_tags_241[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformation_ExtIEs_241, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformation_ExtIEs_specs_241 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_248[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value, choice.GlobalCable_ID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalCable_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalCable-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value, choice.HFCNode_ID_new), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HFCNode_ID_new, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HFCNode-ID-new" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value, choice.GlobalCable_ID_new), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GlobalCable_ID_new, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalCable-ID-new" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_248[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 }, /* GlobalCable-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* HFCNode-ID-new */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* GlobalCable-ID-new */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_248 = { + sizeof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value), + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_248, + 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_ASN_NGAP_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_ASN_NGAP_value_248, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_248 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_245[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_246, memb_ASN_NGAP_id_constraint_245 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UserLocationInformationW_AGF_ExtIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_247, memb_ASN_NGAP_criticality_constraint_245 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_248, + select_UserLocationInformationW_AGF_ExtIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_248, memb_ASN_NGAP_value_constraint_245 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tag2el_245[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_specs_245 = { + sizeof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs), + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tag2el_245, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs = { + "UserLocationInformationW-AGF-ExtIEs", + "UserLocationInformationW-AGF-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_tags_245[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_specs_245 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_252 = { + sizeof(struct ASN_NGAP_W_AGF_ID_ExtIEs__value), + offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_W_AGF_ID_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_252 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_W_AGF_ID_ExtIEs_249[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_250, memb_ASN_NGAP_id_constraint_249 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_251, memb_ASN_NGAP_criticality_constraint_249 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_252, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_252, memb_ASN_NGAP_value_constraint_249 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_W_AGF_ID_ExtIEs_tag2el_249[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_W_AGF_ID_ExtIEs_specs_249 = { + sizeof(struct ASN_NGAP_W_AGF_ID_ExtIEs), + offsetof(struct ASN_NGAP_W_AGF_ID_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_W_AGF_ID_ExtIEs_tag2el_249, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs = { + "W-AGF-ID-ExtIEs", + "W-AGF-ID-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249, + sizeof(asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249) + /sizeof(asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249[0]), /* 1 */ + asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249) + /sizeof(asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs_tags_249[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_W_AGF_ID_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_W_AGF_ID_ExtIEs_specs_249 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_256 = { + sizeof(struct ASN_NGAP_WarningAreaList_ExtIEs__value), + offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs__value, present), + sizeof(((struct ASN_NGAP_WarningAreaList_ExtIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_256 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WarningAreaList_ExtIEs_253[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_254, memb_ASN_NGAP_id_constraint_253 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_255, memb_ASN_NGAP_criticality_constraint_253 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_256, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_256, memb_ASN_NGAP_value_constraint_253 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WarningAreaList_ExtIEs_tag2el_253[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WarningAreaList_ExtIEs_specs_253 = { + sizeof(struct ASN_NGAP_WarningAreaList_ExtIEs), + offsetof(struct ASN_NGAP_WarningAreaList_ExtIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WarningAreaList_ExtIEs_tag2el_253, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs = { + "WarningAreaList-ExtIEs", + "WarningAreaList-ExtIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253, + sizeof(asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253) + /sizeof(asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253[0]), /* 1 */ + asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253) + /sizeof(asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs_tags_253[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WarningAreaList_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WarningAreaList_ExtIEs_specs_253 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_260[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value, choice.MBS_SessionTNLInfo5GC), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionTNLInfo5GC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value, choice.MBS_QoSFlowsToBeSetupList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-QoSFlowsToBeSetupList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value, choice.MBS_SessionFSAIDList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionFSAIDList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionFSAIDList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_260[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_260[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_260[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* MBS-QoSFlowsToBeSetupList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* MBS-SessionFSAIDList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_260 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value, present), + sizeof(((struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_260, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_260, + asn_MAP_ASN_NGAP_value_from_canonical_260, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_260, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_260 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_257[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_258, memb_ASN_NGAP_id_constraint_257 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MBSSessionSetupOrModRequestTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_259, memb_ASN_NGAP_criticality_constraint_257 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_260, + select_MBSSessionSetupOrModRequestTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_260, memb_ASN_NGAP_value_constraint_257 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tag2el_257[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_specs_257 = { + sizeof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs), + offsetof(struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tag2el_257, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs = { + "MBSSessionSetupOrModRequestTransferIEs", + "MBSSessionSetupOrModRequestTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257, + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257[0]), /* 1 */ + asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257) + /sizeof(asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_tags_257[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_257, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_specs_257 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_264[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, choice.MBS_ServiceArea), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ServiceArea" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, choice.MBS_QoSFlowsToBeSetupList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_QoSFlowsToBeSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-QoSFlowsToBeSetupList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, choice.QosFlowListWithCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowListWithCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, choice.MBS_SessionTNLInfo5GC), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionTNLInfo5GC" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_264[] = { 0, 2, 3, 1, 4 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_264[] = { 0, 3, 1, 2, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_264[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* MBS-QoSFlowsToBeSetupList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* QosFlowListWithCause */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, -1, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, -1, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_264 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_264, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_264, + asn_MAP_ASN_NGAP_value_from_canonical_264, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_264, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_264 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_261[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_262, memb_ASN_NGAP_id_constraint_261 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionUpdateRequestTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_263, memb_ASN_NGAP_criticality_constraint_261 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_264, + select_MulticastSessionUpdateRequestTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_264, memb_ASN_NGAP_value_constraint_261 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tag2el_261[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_specs_261 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tag2el_261, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs = { + "MulticastSessionUpdateRequestTransferIEs", + "MulticastSessionUpdateRequestTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_tags_261[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_261, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_specs_261 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_268[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.PDUSessionAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.UL_NGU_UP_TNLModifyList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UL-NGU-UP-TNLModifyList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.NetworkInstance), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.QosFlowAddOrModifyRequestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowAddOrModifyRequestList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.QosFlowListWithCause), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowListWithCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.UPTransportLayerInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.CommonNetworkInstance), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_CommonNetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CommonNetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.UPTransportLayerInformationList_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.CommonNetworkInstance_1), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_CommonNetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CommonNetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.SecurityIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.MBSSessionSetuporModifyRequestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetuporModifyRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionSetuporModifyRequestList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, choice.MBSSessionToReleaseList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionToReleaseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionToReleaseList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_268[] = { 2, 6, 8, 0, 1, 3, 4, 5, 7, 10, 11, 12, 9 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_268[] = { 3, 4, 0, 5, 6, 7, 1, 8, 2, 12, 9, 10, 11 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_268[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* NetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, 0, 1 }, /* CommonNetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, -1, 0 }, /* CommonNetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* PDUSessionAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* UL-NGU-UP-TNLModifyList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 6 }, /* QosFlowAddOrModifyRequestList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 5 }, /* QosFlowListWithCause */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -4, 4 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -5, 3 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -6, 2 }, /* SecurityIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -7, 1 }, /* MBSSessionSetuporModifyRequestList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -8, 0 }, /* MBSSessionToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 9, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 9, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_268 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_268, + 14, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_268, + asn_MAP_ASN_NGAP_value_from_canonical_268, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_268, + 13, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_268 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_265[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_266, memb_ASN_NGAP_id_constraint_265 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyRequestTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_267, memb_ASN_NGAP_criticality_constraint_265 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_268, + select_PDUSessionResourceModifyRequestTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_268, memb_ASN_NGAP_value_constraint_265 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tag2el_265[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_specs_265 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tag2el_265, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs = { + "PDUSessionResourceModifyRequestTransferIEs", + "PDUSessionResourceModifyRequestTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_tags_265[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_265, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_specs_265 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_272[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.PDUSessionAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.UPTransportLayerInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.UPTransportLayerInformationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.DataForwardingNotPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataForwardingNotPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DataForwardingNotPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.PDUSessionType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.SecurityIndication), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.NetworkInstance), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.QosFlowSetupRequestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowSetupRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QosFlowSetupRequestList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.CommonNetworkInstance), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_CommonNetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CommonNetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.DirectForwardingPathAvailability), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DirectForwardingPathAvailability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.UPTransportLayerInformation_1), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.UPTransportLayerInformationList_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UPTransportLayerInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.CommonNetworkInstance_1), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_CommonNetworkInstance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CommonNetworkInstance" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.RedundantPDUSessionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedundantPDUSessionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedundantPDUSessionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, choice.MBSSessionSetupRequestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBSSessionSetupRequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBSSessionSetupRequestList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_272[] = { 6, 8, 12, 3, 4, 9, 0, 2, 5, 7, 11, 13, 14, 1, 10 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_272[] = { 6, 13, 7, 3, 4, 8, 0, 9, 1, 5, 14, 10, 2, 11, 12 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_272[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, 0, 0 }, /* NetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, 0, 1 }, /* CommonNetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 12, -1, 0 }, /* CommonNetworkInstance */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 2 }, /* DataForwardingNotPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, -1, 1 }, /* PDUSessionType */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -2, 0 }, /* DirectForwardingPathAvailability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 6 }, /* PDUSessionAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 5 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 4 }, /* SecurityIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 3 }, /* QosFlowSetupRequestList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -4, 2 }, /* UPTransportLayerInformationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -5, 1 }, /* RedundantPDUSessionInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -6, 0 }, /* MBSSessionSetupRequestList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 1 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 10, -1, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 10, -1, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_272 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_272, + 17, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_272, + asn_MAP_ASN_NGAP_value_from_canonical_272, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_272, + 15, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_272 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_269[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_270, memb_ASN_NGAP_id_constraint_269 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupRequestTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_271, memb_ASN_NGAP_criticality_constraint_269 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_272, + select_PDUSessionResourceSetupRequestTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_272, memb_ASN_NGAP_value_constraint_269 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tag2el_269[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_specs_269 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tag2el_269, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs = { + "PDUSessionResourceSetupRequestTransferIEs", + "PDUSessionResourceSetupRequestTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_tags_269[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_269, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_specs_269 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_276[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.RANPagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANPagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANPagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.PDUSessionResourceSetupListSUReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSUReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupListSUReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.UEAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, choice.UESliceMaximumBitRateList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESliceMaximumBitRateList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_276[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* RANPagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* PDUSessionResourceSetupListSUReq */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 1 }, /* UEAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 0 } /* UESliceMaximumBitRateList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_276 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_276, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_276, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_276 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestIEs_273[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_274, memb_ASN_NGAP_id_constraint_273 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_275, memb_ASN_NGAP_criticality_constraint_273 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_276, + select_PDUSessionResourceSetupRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_276, memb_ASN_NGAP_value_constraint_273 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tag2el_273[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestIEs_specs_273 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tag2el_273, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs = { + "PDUSessionResourceSetupRequestIEs", + "PDUSessionResourceSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs_tags_273[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestIEs_273, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestIEs_specs_273 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_280[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.PDUSessionResourceSetupListSURes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListSURes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupListSURes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.PDUSessionResourceFailedToSetupListSURes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListSURes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToSetupListSURes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_280[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* PDUSessionResourceSetupListSURes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PDUSessionResourceFailedToSetupListSURes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 5, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 5, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 5, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 5, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_280 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_280, + 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_ASN_NGAP_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_ASN_NGAP_value_280, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_280 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseIEs_277[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_278, memb_ASN_NGAP_id_constraint_277 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceSetupResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_279, memb_ASN_NGAP_criticality_constraint_277 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_280, + select_PDUSessionResourceSetupResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_280, memb_ASN_NGAP_value_constraint_277 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tag2el_277[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseIEs_specs_277 = { + sizeof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceSetupResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tag2el_277, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs = { + "PDUSessionResourceSetupResponseIEs", + "PDUSessionResourceSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs_tags_277[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseIEs_277, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseIEs_specs_277 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_284[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, choice.RANPagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANPagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANPagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, choice.PDUSessionResourceToReleaseListRelCmd), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListRelCmd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceToReleaseListRelCmd" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_284[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* RANPagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 } /* PDUSessionResourceToReleaseListRelCmd */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_284 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_284, + 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_ASN_NGAP_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_ASN_NGAP_value_284, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_284 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_281[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_282, memb_ASN_NGAP_id_constraint_281 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceReleaseCommandIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_283, memb_ASN_NGAP_criticality_constraint_281 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_284, + select_PDUSessionResourceReleaseCommandIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_284, memb_ASN_NGAP_value_constraint_281 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tag2el_281[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_specs_281 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tag2el_281, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs = { + "PDUSessionResourceReleaseCommandIEs", + "PDUSessionResourceReleaseCommandIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_tags_281[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_281, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_specs_281 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_288[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, choice.PDUSessionResourceReleasedListRelRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListRelRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleasedListRelRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_288[] = { 0, 1, 2, 4, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_288[] = { 0, 1, 2, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_288[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* PDUSessionResourceReleasedListRelRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_288 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_288, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_288, + asn_MAP_ASN_NGAP_value_from_canonical_288, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_288, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_288 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_285[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_286, memb_ASN_NGAP_id_constraint_285 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceReleaseResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_287, memb_ASN_NGAP_criticality_constraint_285 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_288, + select_PDUSessionResourceReleaseResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_288, memb_ASN_NGAP_value_constraint_285 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tag2el_285[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_specs_285 = { + sizeof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tag2el_285, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs = { + "PDUSessionResourceReleaseResponseIEs", + "PDUSessionResourceReleaseResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_tags_285[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_285, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_specs_285 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_292[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, choice.RANPagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANPagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANPagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, choice.PDUSessionResourceModifyListModReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyListModReq" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_292[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 0 }, /* RANPagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* PDUSessionResourceModifyListModReq */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_292 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_292, + 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_ASN_NGAP_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_ASN_NGAP_value_292, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_292 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestIEs_289[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_290, memb_ASN_NGAP_id_constraint_289 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_291, memb_ASN_NGAP_criticality_constraint_289 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_292, + select_PDUSessionResourceModifyRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_292, memb_ASN_NGAP_value_constraint_289 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tag2el_289[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestIEs_specs_289 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tag2el_289, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs = { + "PDUSessionResourceModifyRequestIEs", + "PDUSessionResourceModifyRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs_tags_289[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestIEs_289, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestIEs_specs_289 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_296[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.PDUSessionResourceModifyListModRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyListModRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.PDUSessionResourceFailedToModifyListModRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToModifyListModRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_296[] = { 0, 1, 2, 3, 5, 4 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_296[] = { 0, 1, 2, 3, 5, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_296[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* PDUSessionResourceModifyListModRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PDUSessionResourceFailedToModifyListModRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_296 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_296, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_296, + asn_MAP_ASN_NGAP_value_from_canonical_296, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_296, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_296 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseIEs_293[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_294, memb_ASN_NGAP_id_constraint_293 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_295, memb_ASN_NGAP_criticality_constraint_293 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_296, + select_PDUSessionResourceModifyResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_296, memb_ASN_NGAP_value_constraint_293 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tag2el_293[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseIEs_specs_293 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tag2el_293, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs = { + "PDUSessionResourceModifyResponseIEs", + "PDUSessionResourceModifyResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs_tags_293[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseIEs_293, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseIEs_specs_293 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_300[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, choice.PDUSessionResourceNotifyList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceNotifyList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceNotifyList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, choice.PDUSessionResourceReleasedListNot), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListNot, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleasedListNot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_300[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* PDUSessionResourceNotifyList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* PDUSessionResourceReleasedListNot */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_300 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceNotifyIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_300, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_300, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_300 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyIEs_297[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_298, memb_ASN_NGAP_id_constraint_297 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceNotifyIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_299, memb_ASN_NGAP_criticality_constraint_297 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_300, + select_PDUSessionResourceNotifyIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_300, memb_ASN_NGAP_value_constraint_297 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceNotifyIEs_tag2el_297[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyIEs_specs_297 = { + sizeof(struct ASN_NGAP_PDUSessionResourceNotifyIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceNotifyIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceNotifyIEs_tag2el_297, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs = { + "PDUSessionResourceNotifyIEs", + "PDUSessionResourceNotifyIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs_tags_297[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceNotifyIEs_297, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceNotifyIEs_specs_297 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_304[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, choice.PDUSessionResourceModifyListModInd), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModInd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyListModInd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_304[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* PDUSessionResourceModifyListModInd */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_304 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_304, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_304, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_304 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_301[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_302, memb_ASN_NGAP_id_constraint_301 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_303, memb_ASN_NGAP_criticality_constraint_301 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_304, + select_PDUSessionResourceModifyIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_304, memb_ASN_NGAP_value_constraint_301 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tag2el_301[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_specs_301 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tag2el_301, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs = { + "PDUSessionResourceModifyIndicationIEs", + "PDUSessionResourceModifyIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_tags_301[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_301, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_specs_301 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_308[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, choice.PDUSessionResourceModifyListModCfm), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyListModCfm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyListModCfm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, choice.PDUSessionResourceFailedToModifyListModCfm), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToModifyListModCfm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_308[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* PDUSessionResourceModifyListModCfm */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PDUSessionResourceFailedToModifyListModCfm */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_308 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value, present), + sizeof(((struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_308, + 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_ASN_NGAP_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_ASN_NGAP_value_308, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_308 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_305[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_306, memb_ASN_NGAP_id_constraint_305 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PDUSessionResourceModifyConfirmIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_307, memb_ASN_NGAP_criticality_constraint_305 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_308, + select_PDUSessionResourceModifyConfirmIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_308, memb_ASN_NGAP_value_constraint_305 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tag2el_305[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_specs_305 = { + sizeof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs), + offsetof(struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tag2el_305, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs = { + "PDUSessionResourceModifyConfirmIEs", + "PDUSessionResourceModifyConfirmIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305, + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305[0]), /* 1 */ + asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305) + /sizeof(asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_tags_305[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_305, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_specs_305 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_312[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UEAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.CoreNetworkAssistanceInformationForInactive), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CoreNetworkAssistanceInformationForInactive" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.GUAMI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GUAMI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GUAMI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.PDUSessionResourceSetupListCxtReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupListCxtReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UESecurityCapabilities), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESecurityCapabilities" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.SecurityKey), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityKey, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityKey" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.TraceActivation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TraceActivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.MobilityRestrictionList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MobilityRestrictionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MobilityRestrictionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.IndexToRFSP), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_IndexToRFSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IndexToRFSP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.EmergencyFallbackIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyFallbackIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EmergencyFallbackIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.RRCInactiveTransitionReportRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCInactiveTransitionReportRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UERadioCapabilityForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.RedirectionVoiceFallback), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedirectionVoiceFallback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedirectionVoiceFallback" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.LocationReportingRequestType), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingRequestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.CNAssistedRANTuning), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNAssistedRANTuning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNAssistedRANTuning" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.SRVCCOperationPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_SRVCCOperationPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRVCCOperationPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.IAB_Authorized), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IAB_Authorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IAB-Authorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.Extended_ConnectedTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_ConnectedTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-ConnectedTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.NRV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.LTEV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.LTEUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.PC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PC5QoSParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UE_UP_CIoT_Support), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-UP-CIoT-Support" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.RGLevelWirelineAccessCharacteristics), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RGLevelWirelineAccessCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.MDTPLMNList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDTPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDTPLMNList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.TimeSyncAssistanceInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeSyncAssistanceInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.QMCConfigInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QMCConfigInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.TargetNSSAIInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNSSAIInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetNSSAIInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.UESliceMaximumBitRateList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESliceMaximumBitRateList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.FiveG_ProSeAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSeAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, choice.FiveG_ProSePC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSePC5QoSParameters" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_312[] = { 0, 1, 13, 25, 9, 14, 12, 15, 34, 36, 17, 19, 22, 23, 24, 32, 33, 3, 4, 5, 6, 7, 8, 10, 11, 16, 18, 20, 21, 26, 27, 28, 29, 30, 31, 35, 37, 38, 39, 40, 41, 42, 43, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_312[] = { 0, 1, 43, 17, 18, 19, 20, 21, 22, 4, 23, 24, 6, 2, 5, 7, 25, 10, 26, 11, 27, 28, 12, 13, 14, 3, 29, 30, 31, 32, 33, 34, 15, 16, 8, 35, 9, 36, 37, 38, 39, 40, 41, 42 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_312[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 3 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 2 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 13, -2, 1 }, /* IndexToRFSP */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 25, -3, 0 }, /* Extended-ConnectedTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 9, 0, 1 }, /* SecurityKey */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 14, -1, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 12, 0, 3 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 15, -1, 2 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 34, -2, 1 }, /* RGLevelWirelineAccessCharacteristics */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 36, -3, 0 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 17, 0, 6 }, /* RRCInactiveTransitionReportRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 19, -1, 5 }, /* RedirectionVoiceFallback */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 22, -2, 4 }, /* SRVCCOperationPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 23, -3, 3 }, /* IAB-Authorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 24, -4, 2 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 32, -5, 1 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 33, -6, 0 }, /* UE-UP-CIoT-Support */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 25 }, /* UEAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 24 }, /* CoreNetworkAssistanceInformationForInactive */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 23 }, /* GUAMI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 22 }, /* PDUSessionResourceSetupListCxtReq */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 21 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -5, 20 }, /* UESecurityCapabilities */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -6, 19 }, /* TraceActivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -7, 18 }, /* MobilityRestrictionList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -8, 17 }, /* EmergencyFallbackIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -9, 16 }, /* UERadioCapabilityForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -10, 15 }, /* LocationReportingRequestType */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -11, 14 }, /* CNAssistedRANTuning */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -12, 13 }, /* UE-DifferentiationInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -13, 12 }, /* NRV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -14, 11 }, /* LTEV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -15, 10 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 30, -16, 9 }, /* LTEUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 31, -17, 8 }, /* PC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 35, -18, 7 }, /* MDTPLMNList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 37, -19, 6 }, /* TimeSyncAssistanceInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 38, -20, 5 }, /* QMCConfigInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 39, -21, 4 }, /* TargetNSSAIInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 40, -22, 3 }, /* UESliceMaximumBitRateList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 41, -23, 2 }, /* FiveG-ProSeAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 42, -24, 1 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 43, -25, 0 }, /* FiveG-ProSePC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 2, 0, 0 } /* AMFName */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_312 = { + sizeof(struct ASN_NGAP_InitialContextSetupRequestIEs__value), + offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs__value, present), + sizeof(((struct ASN_NGAP_InitialContextSetupRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_312, + 44, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_312, + asn_MAP_ASN_NGAP_value_from_canonical_312, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_312, + 44, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_312 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupRequestIEs_309[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_310, memb_ASN_NGAP_id_constraint_309 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_InitialContextSetupRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_311, memb_ASN_NGAP_criticality_constraint_309 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_312, + select_InitialContextSetupRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_312, memb_ASN_NGAP_value_constraint_309 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupRequestIEs_tag2el_309[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupRequestIEs_specs_309 = { + sizeof(struct ASN_NGAP_InitialContextSetupRequestIEs), + offsetof(struct ASN_NGAP_InitialContextSetupRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupRequestIEs_tag2el_309, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs = { + "InitialContextSetupRequestIEs", + "InitialContextSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs_tags_309[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupRequestIEs_309, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupRequestIEs_specs_309 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_316[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, choice.PDUSessionResourceSetupListCxtRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListCxtRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupListCxtRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, choice.PDUSessionResourceFailedToSetupListCxtRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToSetupListCxtRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_316[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* PDUSessionResourceSetupListCxtRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PDUSessionResourceFailedToSetupListCxtRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_316 = { + sizeof(struct ASN_NGAP_InitialContextSetupResponseIEs__value), + offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs__value, present), + sizeof(((struct ASN_NGAP_InitialContextSetupResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_316, + 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_ASN_NGAP_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_ASN_NGAP_value_316, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_316 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupResponseIEs_313[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_314, memb_ASN_NGAP_id_constraint_313 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_InitialContextSetupResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_315, memb_ASN_NGAP_criticality_constraint_313 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_316, + select_InitialContextSetupResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_316, memb_ASN_NGAP_value_constraint_313 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupResponseIEs_tag2el_313[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupResponseIEs_specs_313 = { + sizeof(struct ASN_NGAP_InitialContextSetupResponseIEs), + offsetof(struct ASN_NGAP_InitialContextSetupResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupResponseIEs_tag2el_313, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs = { + "InitialContextSetupResponseIEs", + "InitialContextSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs_tags_313[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupResponseIEs_313, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupResponseIEs_specs_313 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_320[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, choice.PDUSessionResourceFailedToSetupListCxtFail), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToSetupListCxtFail" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_320[] = { 0, 1, 2, 4, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_320[] = { 0, 1, 2, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_320[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* PDUSessionResourceFailedToSetupListCxtFail */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_320 = { + sizeof(struct ASN_NGAP_InitialContextSetupFailureIEs__value), + offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs__value, present), + sizeof(((struct ASN_NGAP_InitialContextSetupFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_320, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_320, + asn_MAP_ASN_NGAP_value_from_canonical_320, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_320, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_320 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupFailureIEs_317[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_318, memb_ASN_NGAP_id_constraint_317 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_InitialContextSetupFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_319, memb_ASN_NGAP_criticality_constraint_317 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_320, + select_InitialContextSetupFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_320, memb_ASN_NGAP_value_constraint_317 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialContextSetupFailureIEs_tag2el_317[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupFailureIEs_specs_317 = { + sizeof(struct ASN_NGAP_InitialContextSetupFailureIEs), + offsetof(struct ASN_NGAP_InitialContextSetupFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_InitialContextSetupFailureIEs_tag2el_317, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs = { + "InitialContextSetupFailureIEs", + "InitialContextSetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317, + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317) + /sizeof(asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs_tags_317[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialContextSetupFailureIEs_317, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialContextSetupFailureIEs_specs_317 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_324[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, choice.PDUSessionResourceListCxtRelReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceListCxtRelReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_324[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* PDUSessionResourceListCxtRelReq */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_324 = { + sizeof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value), + offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs__value, present), + sizeof(((struct ASN_NGAP_UEContextReleaseRequest_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_324, + 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_ASN_NGAP_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_ASN_NGAP_value_324, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_324 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseRequest_IEs_321[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_322, memb_ASN_NGAP_id_constraint_321 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextReleaseRequest_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_323, memb_ASN_NGAP_criticality_constraint_321 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_324, + select_UEContextReleaseRequest_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_324, memb_ASN_NGAP_value_constraint_321 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseRequest_IEs_tag2el_321[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseRequest_IEs_specs_321 = { + sizeof(struct ASN_NGAP_UEContextReleaseRequest_IEs), + offsetof(struct ASN_NGAP_UEContextReleaseRequest_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseRequest_IEs_tag2el_321, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs = { + "UEContextReleaseRequest-IEs", + "UEContextReleaseRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs_tags_321[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseRequest_IEs_321, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseRequest_IEs_specs_321 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_328[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs__value, choice.UE_NGAP_IDs), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UE_NGAP_IDs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-NGAP-IDs" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_328[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* uE-NGAP-ID-pair */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* aMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, -1, 0 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_328 = { + sizeof(struct ASN_NGAP_UEContextReleaseCommand_IEs__value), + offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs__value, present), + sizeof(((struct ASN_NGAP_UEContextReleaseCommand_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_328, + 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_ASN_NGAP_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_ASN_NGAP_value_328, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_328 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseCommand_IEs_325[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_326, memb_ASN_NGAP_id_constraint_325 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextReleaseCommand_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_327, memb_ASN_NGAP_criticality_constraint_325 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_328, + select_UEContextReleaseCommand_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_328, memb_ASN_NGAP_value_constraint_325 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseCommand_IEs_tag2el_325[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseCommand_IEs_specs_325 = { + sizeof(struct ASN_NGAP_UEContextReleaseCommand_IEs), + offsetof(struct ASN_NGAP_UEContextReleaseCommand_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseCommand_IEs_tag2el_325, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs = { + "UEContextReleaseCommand-IEs", + "UEContextReleaseCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs_tags_325[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseCommand_IEs_325, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseCommand_IEs_specs_325 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_332[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.InfoOnRecommendedCellsAndRANNodesForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InfoOnRecommendedCellsAndRANNodesForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.PDUSessionResourceListCxtRelCpl), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceListCxtRelCpl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceListCxtRelCpl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, choice.PagingAssisDataforCEcapabUE), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingAssisDataforCEcapabUE" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_332[] = { 0, 1, 3, 4, 5, 6, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_332[] = { 0, 1, 6, 2, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_332[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 3 }, /* InfoOnRecommendedCellsAndRANNodesForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 2 }, /* PDUSessionResourceListCxtRelCpl */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 0 }, /* PagingAssisDataforCEcapabUE */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_332 = { + sizeof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value), + offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs__value, present), + sizeof(((struct ASN_NGAP_UEContextReleaseComplete_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_332, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_332, + asn_MAP_ASN_NGAP_value_from_canonical_332, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_332, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_332 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseComplete_IEs_329[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_330, memb_ASN_NGAP_id_constraint_329 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextReleaseComplete_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_331, memb_ASN_NGAP_criticality_constraint_329 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_332, + select_UEContextReleaseComplete_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_332, memb_ASN_NGAP_value_constraint_329 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseComplete_IEs_tag2el_329[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseComplete_IEs_specs_329 = { + sizeof(struct ASN_NGAP_UEContextReleaseComplete_IEs), + offsetof(struct ASN_NGAP_UEContextReleaseComplete_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseComplete_IEs_tag2el_329, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs = { + "UEContextReleaseComplete-IEs", + "UEContextReleaseComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs_tags_329[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseComplete_IEs_329, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseComplete_IEs_specs_329 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_336[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.RRCEstablishmentCause), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCEstablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCEstablishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.PDUSessionResourceResumeListRESReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceResumeListRESReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.PDUSessionResourceFailedToResumeListRESReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToResumeListRESReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.Suspend_Request_Indication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Suspend_Request_Indication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Suspend-Request-Indication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.InfoOnRecommendedCellsAndRANNodesForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InfoOnRecommendedCellsAndRANNodesForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, choice.PagingAssisDataforCEcapabUE), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingAssisDataforCEcapabUE" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_336[] = { 0, 1, 2, 5, 3, 4, 6, 7 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_336[] = { 0, 1, 2, 4, 5, 3, 6, 7 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_336[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* RRCEstablishmentCause */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* Suspend-Request-Indication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 3 }, /* PDUSessionResourceResumeListRESReq */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 2 }, /* PDUSessionResourceFailedToResumeListRESReq */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 1 }, /* InfoOnRecommendedCellsAndRANNodesForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 } /* PagingAssisDataforCEcapabUE */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_336 = { + sizeof(struct ASN_NGAP_UEContextResumeRequestIEs__value), + offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextResumeRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextResumeRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_336, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_336, + asn_MAP_ASN_NGAP_value_from_canonical_336, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_336, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_336 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequestIEs_333[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_334, memb_ASN_NGAP_id_constraint_333 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextResumeRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_335, memb_ASN_NGAP_criticality_constraint_333 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_336, + select_UEContextResumeRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_336, memb_ASN_NGAP_value_constraint_333 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeRequestIEs_tag2el_333[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequestIEs_specs_333 = { + sizeof(struct ASN_NGAP_UEContextResumeRequestIEs), + offsetof(struct ASN_NGAP_UEContextResumeRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeRequestIEs_tag2el_333, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestIEs = { + "UEContextResumeRequestIEs", + "UEContextResumeRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestIEs_tags_333[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeRequestIEs_333, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeRequestIEs_specs_333 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_340[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.PDUSessionResourceResumeListRESRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceResumeListRESRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceResumeListRESRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.PDUSessionResourceFailedToResumeListRESRes), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToResumeListRESRes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.SecurityContext), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityContext, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityContext" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.Suspend_Response_Indication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Suspend_Response_Indication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Suspend-Response-Indication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.Extended_ConnectedTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_ConnectedTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-ConnectedTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_340[] = { 0, 1, 6, 5, 2, 3, 4, 7 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_340[] = { 0, 1, 4, 5, 6, 3, 2, 7 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_340[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -2, 0 }, /* Extended-ConnectedTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* Suspend-Response-Indication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* PDUSessionResourceResumeListRESRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* PDUSessionResourceFailedToResumeListRESRes */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* SecurityContext */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_340 = { + sizeof(struct ASN_NGAP_UEContextResumeResponseIEs__value), + offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextResumeResponseIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextResumeResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_340, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_340, + asn_MAP_ASN_NGAP_value_from_canonical_340, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_340, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_340 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponseIEs_337[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_338, memb_ASN_NGAP_id_constraint_337 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextResumeResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_339, memb_ASN_NGAP_criticality_constraint_337 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_340, + select_UEContextResumeResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_340, memb_ASN_NGAP_value_constraint_337 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeResponseIEs_tag2el_337[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponseIEs_specs_337 = { + sizeof(struct ASN_NGAP_UEContextResumeResponseIEs), + offsetof(struct ASN_NGAP_UEContextResumeResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeResponseIEs_tag2el_337, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseIEs = { + "UEContextResumeResponseIEs", + "UEContextResumeResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseIEs_tags_337[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeResponseIEs_337, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeResponseIEs_specs_337 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_344[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_344[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_344[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_344[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_344 = { + sizeof(struct ASN_NGAP_UEContextResumeFailureIEs__value), + offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextResumeFailureIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextResumeFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_344, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_344, + asn_MAP_ASN_NGAP_value_from_canonical_344, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_344, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_344 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeFailureIEs_341[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_342, memb_ASN_NGAP_id_constraint_341 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextResumeFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_343, memb_ASN_NGAP_criticality_constraint_341 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_344, + select_UEContextResumeFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_344, memb_ASN_NGAP_value_constraint_341 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeFailureIEs_tag2el_341[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeFailureIEs_specs_341 = { + sizeof(struct ASN_NGAP_UEContextResumeFailureIEs), + offsetof(struct ASN_NGAP_UEContextResumeFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeFailureIEs_tag2el_341, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeFailureIEs = { + "UEContextResumeFailureIEs", + "UEContextResumeFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailureIEs_tags_341[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeFailureIEs_341, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeFailureIEs_specs_341 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_348[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, choice.InfoOnRecommendedCellsAndRANNodesForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InfoOnRecommendedCellsAndRANNodesForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, choice.PagingAssisDataforCEcapabUE), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingAssisDataforCEcapabUE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingAssisDataforCEcapabUE" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, choice.PDUSessionResourceSuspendListSUSReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSuspendListSUSReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSuspendListSUSReq" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_348[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* InfoOnRecommendedCellsAndRANNodesForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PagingAssisDataforCEcapabUE */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 0 } /* PDUSessionResourceSuspendListSUSReq */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_348 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequestIEs__value), + offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextSuspendRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_348, + 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_ASN_NGAP_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_ASN_NGAP_value_348, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_348 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequestIEs_345[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_346, memb_ASN_NGAP_id_constraint_345 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextSuspendRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_347, memb_ASN_NGAP_criticality_constraint_345 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_348, + select_UEContextSuspendRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_348, memb_ASN_NGAP_value_constraint_345 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendRequestIEs_tag2el_345[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequestIEs_specs_345 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequestIEs), + offsetof(struct ASN_NGAP_UEContextSuspendRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendRequestIEs_tag2el_345, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs = { + "UEContextSuspendRequestIEs", + "UEContextSuspendRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs_tags_345[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendRequestIEs_345, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendRequestIEs_specs_345 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_352[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, choice.SecurityContext), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityContext, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityContext" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_352[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* SecurityContext */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_352 = { + sizeof(struct ASN_NGAP_UEContextSuspendResponseIEs__value), + offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextSuspendResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_352, + 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_ASN_NGAP_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_ASN_NGAP_value_352, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_352 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendResponseIEs_349[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_350, memb_ASN_NGAP_id_constraint_349 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextSuspendResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_351, memb_ASN_NGAP_criticality_constraint_349 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_352, + select_UEContextSuspendResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_352, memb_ASN_NGAP_value_constraint_349 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendResponseIEs_tag2el_349[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendResponseIEs_specs_349 = { + sizeof(struct ASN_NGAP_UEContextSuspendResponseIEs), + offsetof(struct ASN_NGAP_UEContextSuspendResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendResponseIEs_tag2el_349, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs = { + "UEContextSuspendResponseIEs", + "UEContextSuspendResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs_tags_349[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendResponseIEs_349, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendResponseIEs_specs_349 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_356[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_356[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_356[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_356[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_356 = { + sizeof(struct ASN_NGAP_UEContextSuspendFailureIEs__value), + offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextSuspendFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_356, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_356, + asn_MAP_ASN_NGAP_value_from_canonical_356, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_356, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_356 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendFailureIEs_353[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_354, memb_ASN_NGAP_id_constraint_353 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextSuspendFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_355, memb_ASN_NGAP_criticality_constraint_353 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_356, + select_UEContextSuspendFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_356, memb_ASN_NGAP_value_constraint_353 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendFailureIEs_tag2el_353[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendFailureIEs_specs_353 = { + sizeof(struct ASN_NGAP_UEContextSuspendFailureIEs), + offsetof(struct ASN_NGAP_UEContextSuspendFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendFailureIEs_tag2el_353, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs = { + "UEContextSuspendFailureIEs", + "UEContextSuspendFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs_tags_353[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendFailureIEs_353, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendFailureIEs_specs_353 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_360[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.RANPagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANPagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANPagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.SecurityKey), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityKey, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityKey" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.IndexToRFSP), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_IndexToRFSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IndexToRFSP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.UEAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.UESecurityCapabilities), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESecurityCapabilities" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.CoreNetworkAssistanceInformationForInactive), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CoreNetworkAssistanceInformationForInactive" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.EmergencyFallbackIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyFallbackIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EmergencyFallbackIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.AMF_UE_NGAP_ID_1), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.RRCInactiveTransitionReportRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCInactiveTransitionReportRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.GUAMI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GUAMI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GUAMI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.CNAssistedRANTuning), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNAssistedRANTuning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNAssistedRANTuning" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.SRVCCOperationPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_SRVCCOperationPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRVCCOperationPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.IAB_Authorized), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IAB_Authorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IAB-Authorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.NRV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.LTEV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.LTEUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.PC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PC5QoSParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.RGLevelWirelineAccessCharacteristics), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RGLevelWirelineAccessCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.TimeSyncAssistanceInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeSyncAssistanceInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.QMCConfigInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QMCConfigInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.QMCDeactivation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QMCDeactivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "QMCDeactivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.UESliceMaximumBitRateList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESliceMaximumBitRateList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.MDTPLMNModificationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDTPLMNModificationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDTPLMNModificationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.FiveG_ProSeAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSeAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, choice.FiveG_ProSePC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSePC5QoSParameters" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_360[] = { 0, 1, 2, 4, 9, 3, 20, 21, 10, 13, 14, 5, 6, 7, 8, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_360[] = { 0, 1, 2, 5, 3, 11, 12, 13, 14, 4, 8, 15, 16, 9, 10, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_360[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 4 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 3 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -2, 2 }, /* RANPagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -3, 1 }, /* IndexToRFSP */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 9, -4, 0 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* SecurityKey */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 20, 0, 1 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 21, -1, 0 }, /* RGLevelWirelineAccessCharacteristics */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, 0, 2 }, /* RRCInactiveTransitionReportRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -1, 1 }, /* SRVCCOperationPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 14, -2, 0 }, /* IAB-Authorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, 0, 18 }, /* UEAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -1, 17 }, /* UESecurityCapabilities */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -2, 16 }, /* CoreNetworkAssistanceInformationForInactive */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -3, 15 }, /* EmergencyFallbackIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -4, 14 }, /* GUAMI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -5, 13 }, /* CNAssistedRANTuning */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -6, 12 }, /* NRV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -7, 11 }, /* LTEV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -8, 10 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -9, 9 }, /* LTEUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -10, 8 }, /* PC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -11, 7 }, /* TimeSyncAssistanceInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -12, 6 }, /* QMCConfigInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -13, 5 }, /* QMCDeactivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -14, 4 }, /* UESliceMaximumBitRateList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -15, 3 }, /* MDTPLMNModificationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -16, 2 }, /* FiveG-ProSeAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -17, 1 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -18, 0 } /* FiveG-ProSePC5QoSParameters */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_360 = { + sizeof(struct ASN_NGAP_UEContextModificationRequestIEs__value), + offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextModificationRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextModificationRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_360, + 30, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_360, + asn_MAP_ASN_NGAP_value_from_canonical_360, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_360, + 30, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_360 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationRequestIEs_357[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_358, memb_ASN_NGAP_id_constraint_357 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextModificationRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_359, memb_ASN_NGAP_criticality_constraint_357 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_360, + select_UEContextModificationRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_360, memb_ASN_NGAP_value_constraint_357 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationRequestIEs_tag2el_357[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationRequestIEs_specs_357 = { + sizeof(struct ASN_NGAP_UEContextModificationRequestIEs), + offsetof(struct ASN_NGAP_UEContextModificationRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationRequestIEs_tag2el_357, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationRequestIEs = { + "UEContextModificationRequestIEs", + "UEContextModificationRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequestIEs_tags_357[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationRequestIEs_357, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationRequestIEs_specs_357 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_364[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, choice.RRCState), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCState" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_364[] = { 0, 1, 2, 4, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_364[] = { 0, 1, 2, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_364[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* RRCState */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_364 = { + sizeof(struct ASN_NGAP_UEContextModificationResponseIEs__value), + offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextModificationResponseIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextModificationResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_364, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_364, + asn_MAP_ASN_NGAP_value_from_canonical_364, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_364, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_364 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationResponseIEs_361[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_362, memb_ASN_NGAP_id_constraint_361 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextModificationResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_363, memb_ASN_NGAP_criticality_constraint_361 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_364, + select_UEContextModificationResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_364, memb_ASN_NGAP_value_constraint_361 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationResponseIEs_tag2el_361[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationResponseIEs_specs_361 = { + sizeof(struct ASN_NGAP_UEContextModificationResponseIEs), + offsetof(struct ASN_NGAP_UEContextModificationResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationResponseIEs_tag2el_361, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationResponseIEs = { + "UEContextModificationResponseIEs", + "UEContextModificationResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponseIEs_tags_361[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationResponseIEs_361, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationResponseIEs_specs_361 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_368[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_368[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_368[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_368[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_368 = { + sizeof(struct ASN_NGAP_UEContextModificationFailureIEs__value), + offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEContextModificationFailureIEs__value, present), + sizeof(((struct ASN_NGAP_UEContextModificationFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_368, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_368, + asn_MAP_ASN_NGAP_value_from_canonical_368, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_368, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_368 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationFailureIEs_365[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_366, memb_ASN_NGAP_id_constraint_365 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEContextModificationFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_367, memb_ASN_NGAP_criticality_constraint_365 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_368, + select_UEContextModificationFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_368, memb_ASN_NGAP_value_constraint_365 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationFailureIEs_tag2el_365[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationFailureIEs_specs_365 = { + sizeof(struct ASN_NGAP_UEContextModificationFailureIEs), + offsetof(struct ASN_NGAP_UEContextModificationFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationFailureIEs_tag2el_365, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationFailureIEs = { + "UEContextModificationFailureIEs", + "UEContextModificationFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailureIEs_tags_365[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationFailureIEs_365, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationFailureIEs_specs_365 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_372[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, choice.RRCState), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCState" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_372[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* RRCState */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_372 = { + sizeof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value), + offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs__value, present), + sizeof(((struct ASN_NGAP_RRCInactiveTransitionReportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_372, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_372, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_372 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RRCInactiveTransitionReportIEs_369[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_370, memb_ASN_NGAP_id_constraint_369 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RRCInactiveTransitionReportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_371, memb_ASN_NGAP_criticality_constraint_369 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_372, + select_RRCInactiveTransitionReportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_372, memb_ASN_NGAP_value_constraint_369 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RRCInactiveTransitionReportIEs_tag2el_369[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReportIEs_specs_369 = { + sizeof(struct ASN_NGAP_RRCInactiveTransitionReportIEs), + offsetof(struct ASN_NGAP_RRCInactiveTransitionReportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RRCInactiveTransitionReportIEs_tag2el_369, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs = { + "RRCInactiveTransitionReportIEs", + "RRCInactiveTransitionReportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369, + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs_tags_369[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RRCInactiveTransitionReportIEs_369, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RRCInactiveTransitionReportIEs_specs_369 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_376[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RetrieveUEInformationIEs__value, choice.FiveG_S_TMSI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-S-TMSI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_376[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* FiveG-S-TMSI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_376 = { + sizeof(struct ASN_NGAP_RetrieveUEInformationIEs__value), + offsetof(struct ASN_NGAP_RetrieveUEInformationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RetrieveUEInformationIEs__value, present), + sizeof(((struct ASN_NGAP_RetrieveUEInformationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_376, + 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_ASN_NGAP_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_ASN_NGAP_value_376, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_376 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RetrieveUEInformationIEs_373[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_374, memb_ASN_NGAP_id_constraint_373 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RetrieveUEInformationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_375, memb_ASN_NGAP_criticality_constraint_373 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_376, + select_RetrieveUEInformationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_376, memb_ASN_NGAP_value_constraint_373 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RetrieveUEInformationIEs_tag2el_373[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RetrieveUEInformationIEs_specs_373 = { + sizeof(struct ASN_NGAP_RetrieveUEInformationIEs), + offsetof(struct ASN_NGAP_RetrieveUEInformationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RetrieveUEInformationIEs_tag2el_373, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RetrieveUEInformationIEs = { + "RetrieveUEInformationIEs", + "RetrieveUEInformationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373, + sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373) + /sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373[0]), /* 1 */ + asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373) + /sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformationIEs_tags_373[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RetrieveUEInformationIEs_373, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RetrieveUEInformationIEs_specs_373 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_380[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.FiveG_S_TMSI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.NB_IoT_UEPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_UEPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-UEPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.S_NSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "S-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_380[] = { 1, 6, 2, 0, 3, 4, 5 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_380[] = { 3, 0, 2, 4, 5, 6, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_380[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* NB-IoT-UEPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 6, 0, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 3 }, /* FiveG-S-TMSI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* S-NSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 } /* UE-DifferentiationInfo */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_380 = { + sizeof(struct ASN_NGAP_UEInformationTransferIEs__value), + offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UEInformationTransferIEs__value, present), + sizeof(((struct ASN_NGAP_UEInformationTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_380, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_380, + asn_MAP_ASN_NGAP_value_from_canonical_380, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_380, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_380 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEInformationTransferIEs_377[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_378, memb_ASN_NGAP_id_constraint_377 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UEInformationTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_379, memb_ASN_NGAP_criticality_constraint_377 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_380, + select_UEInformationTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_380, memb_ASN_NGAP_value_constraint_377 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEInformationTransferIEs_tag2el_377[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEInformationTransferIEs_specs_377 = { + sizeof(struct ASN_NGAP_UEInformationTransferIEs), + offsetof(struct ASN_NGAP_UEInformationTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UEInformationTransferIEs_tag2el_377, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEInformationTransferIEs = { + "UEInformationTransferIEs", + "UEInformationTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377, + sizeof(asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377) + /sizeof(asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377) + /sizeof(asn_DEF_ASN_NGAP_UEInformationTransferIEs_tags_377[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEInformationTransferIEs_377, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEInformationTransferIEs_specs_377 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_384[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, choice.FiveG_S_TMSI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, choice.EUTRA_CGI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, choice.TAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, choice.UL_CP_SecurityInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UL_CP_SecurityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UL-CP-SecurityInformation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_384[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* FiveG-S-TMSI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* EUTRA-CGI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* TAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 } /* UL-CP-SecurityInformation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_384 = { + sizeof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value), + offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_RANCPRelocationIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_384, + 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_ASN_NGAP_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_ASN_NGAP_value_384, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_384 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANCPRelocationIndicationIEs_381[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_382, memb_ASN_NGAP_id_constraint_381 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RANCPRelocationIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_383, memb_ASN_NGAP_criticality_constraint_381 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_384, + select_RANCPRelocationIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_384, memb_ASN_NGAP_value_constraint_381 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANCPRelocationIndicationIEs_tag2el_381[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANCPRelocationIndicationIEs_specs_381 = { + sizeof(struct ASN_NGAP_RANCPRelocationIndicationIEs), + offsetof(struct ASN_NGAP_RANCPRelocationIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RANCPRelocationIndicationIEs_tag2el_381, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs = { + "RANCPRelocationIndicationIEs", + "RANCPRelocationIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381, + sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381) + /sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381) + /sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs_tags_381[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANCPRelocationIndicationIEs_381, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RANCPRelocationIndicationIEs_specs_381 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_388[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.HandoverType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.TargetID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_TargetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.DirectForwardingPathAvailability), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_DirectForwardingPathAvailability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DirectForwardingPathAvailability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.PDUSessionResourceListHORqd), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceListHORqd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceListHORqd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, choice.SourceToTarget_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SourceToTarget-TransparentContainer" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_388[] = { 0, 1, 7, 2, 5, 6, 3, 4 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_388[] = { 0, 1, 3, 6, 7, 4, 5, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_388[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, 0, 0 }, /* SourceToTarget-TransparentContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* HandoverType */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* DirectForwardingPathAvailability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, 0, 0 }, /* PDUSessionResourceListHORqd */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 1 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, -1, 0 }, /* targetRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 1 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, -1, 0 }, /* targeteNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 1 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, -1, 0 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_388 = { + sizeof(struct ASN_NGAP_HandoverRequiredIEs__value), + offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverRequiredIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverRequiredIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_388, + 15, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_388, + asn_MAP_ASN_NGAP_value_from_canonical_388, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_388, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_388 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequiredIEs_385[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_386, memb_ASN_NGAP_id_constraint_385 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverRequiredIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_387, memb_ASN_NGAP_criticality_constraint_385 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequiredIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_388, + select_HandoverRequiredIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_388, memb_ASN_NGAP_value_constraint_385 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequiredIEs_tag2el_385[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequiredIEs_specs_385 = { + sizeof(struct ASN_NGAP_HandoverRequiredIEs), + offsetof(struct ASN_NGAP_HandoverRequiredIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequiredIEs_tag2el_385, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredIEs = { + "HandoverRequiredIEs", + "HandoverRequiredIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385, + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequiredIEs_tags_385[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequiredIEs_385, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequiredIEs_specs_385 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_392[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.HandoverType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.NASSecurityParametersFromNGRAN), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NASSecurityParametersFromNGRAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NASSecurityParametersFromNGRAN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.PDUSessionResourceHandoverList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceHandoverList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceHandoverList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.PDUSessionResourceToReleaseListHOCmd), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToReleaseListHOCmd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceToReleaseListHOCmd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.TargetToSource_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetToSource-TransparentContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_392[] = { 0, 1, 3, 6, 2, 4, 5, 7 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_392[] = { 0, 1, 4, 2, 5, 6, 3, 7 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_392[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 1 }, /* NASSecurityParametersFromNGRAN */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 0 }, /* TargetToSource-TransparentContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* HandoverType */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* PDUSessionResourceHandoverList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 1 }, /* PDUSessionResourceToReleaseListHOCmd */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -2, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_392 = { + sizeof(struct ASN_NGAP_HandoverCommandIEs__value), + offsetof(struct ASN_NGAP_HandoverCommandIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverCommandIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverCommandIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_392, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_392, + asn_MAP_ASN_NGAP_value_from_canonical_392, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_392, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_392 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommandIEs_389[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_390, memb_ASN_NGAP_id_constraint_389 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverCommandIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_391, memb_ASN_NGAP_criticality_constraint_389 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCommandIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_392, + select_HandoverCommandIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_392, memb_ASN_NGAP_value_constraint_389 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCommandIEs_tag2el_389[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommandIEs_specs_389 = { + sizeof(struct ASN_NGAP_HandoverCommandIEs), + offsetof(struct ASN_NGAP_HandoverCommandIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCommandIEs_tag2el_389, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandIEs = { + "HandoverCommandIEs", + "HandoverCommandIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389, + sizeof(asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389) + /sizeof(asn_DEF_ASN_NGAP_HandoverCommandIEs_tags_389[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCommandIEs_389, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCommandIEs_specs_389 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_396[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, choice.TargettoSource_Failure_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargettoSource-Failure-TransparentContainer" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_396[] = { 0, 1, 4, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_396[] = { 0, 1, 4, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_396[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* TargettoSource-Failure-TransparentContainer */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_396 = { + sizeof(struct ASN_NGAP_HandoverPreparationFailureIEs__value), + offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverPreparationFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_396, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_396, + asn_MAP_ASN_NGAP_value_from_canonical_396, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_396, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_396 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationFailureIEs_393[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_394, memb_ASN_NGAP_id_constraint_393 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverPreparationFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_395, memb_ASN_NGAP_criticality_constraint_393 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_396, + select_HandoverPreparationFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_396, memb_ASN_NGAP_value_constraint_393 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverPreparationFailureIEs_tag2el_393[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationFailureIEs_specs_393 = { + sizeof(struct ASN_NGAP_HandoverPreparationFailureIEs), + offsetof(struct ASN_NGAP_HandoverPreparationFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverPreparationFailureIEs_tag2el_393, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs = { + "HandoverPreparationFailureIEs", + "HandoverPreparationFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393, + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393) + /sizeof(asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs_tags_393[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverPreparationFailureIEs_393, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverPreparationFailureIEs_specs_393 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_400[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.HandoverType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UEAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.CoreNetworkAssistanceInformationForInactive), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CoreNetworkAssistanceInformationForInactive" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UESecurityCapabilities), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESecurityCapabilities" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.SecurityContext), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityContext, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityContext" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.NewSecurityContextInd), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NewSecurityContextInd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NewSecurityContextInd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.PDUSessionResourceSetupListHOReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupListHOReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupListHOReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.TraceActivation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TraceActivation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.SourceToTarget_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SourceToTarget-TransparentContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.MobilityRestrictionList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MobilityRestrictionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MobilityRestrictionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.LocationReportingRequestType), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingRequestType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.RRCInactiveTransitionReportRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCInactiveTransitionReportRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.GUAMI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_GUAMI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GUAMI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.RedirectionVoiceFallback), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedirectionVoiceFallback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedirectionVoiceFallback" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.CNAssistedRANTuning), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNAssistedRANTuning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNAssistedRANTuning" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.SRVCCOperationPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_SRVCCOperationPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRVCCOperationPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.IAB_Authorized), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IAB_Authorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IAB-Authorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.NRV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.LTEV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.LTEUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.PC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PC5QoSParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UE_UP_CIoT_Support), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-UP-CIoT-Support" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.MDTPLMNList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDTPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDTPLMNList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.Extended_ConnectedTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_ConnectedTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-ConnectedTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.TimeSyncAssistanceInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeSyncAssistanceInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.UESliceMaximumBitRateList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESliceMaximumBitRateList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.FiveG_ProSeAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSeAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.NRUESidelinkAggregateMaximumBitrate_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs__value, choice.FiveG_ProSePC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSePC5QoSParameters" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_400[] = { 0, 33, 12, 8, 13, 32, 1, 7, 16, 18, 20, 21, 22, 29, 30, 3, 4, 5, 6, 9, 10, 11, 14, 15, 17, 19, 23, 24, 25, 26, 27, 28, 31, 34, 35, 36, 37, 38, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_400[] = { 0, 6, 38, 15, 16, 17, 18, 7, 3, 19, 20, 21, 2, 4, 22, 23, 8, 24, 9, 25, 10, 11, 12, 26, 27, 28, 29, 30, 31, 13, 14, 32, 5, 1, 33, 34, 35, 36, 37 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_400[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 33, -1, 0 }, /* Extended-ConnectedTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 12, 0, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, 0, 2 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 13, -1, 1 }, /* SourceToTarget-TransparentContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 32, -2, 0 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 8 }, /* HandoverType */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -1, 7 }, /* NewSecurityContextInd */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 16, -2, 6 }, /* RRCInactiveTransitionReportRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 18, -3, 5 }, /* RedirectionVoiceFallback */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 20, -4, 4 }, /* SRVCCOperationPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 21, -5, 3 }, /* IAB-Authorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 22, -6, 2 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 29, -7, 1 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 30, -8, 0 }, /* UE-UP-CIoT-Support */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 22 }, /* UEAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 21 }, /* CoreNetworkAssistanceInformationForInactive */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 20 }, /* UESecurityCapabilities */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 19 }, /* SecurityContext */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -4, 18 }, /* PDUSessionResourceSetupListHOReq */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -5, 17 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -6, 16 }, /* TraceActivation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -7, 15 }, /* MobilityRestrictionList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -8, 14 }, /* LocationReportingRequestType */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -9, 13 }, /* GUAMI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -10, 12 }, /* CNAssistedRANTuning */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -11, 11 }, /* UE-DifferentiationInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -12, 10 }, /* NRV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -13, 9 }, /* LTEV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -14, 8 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -15, 7 }, /* LTEUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -16, 6 }, /* PC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 31, -17, 5 }, /* MDTPLMNList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 34, -18, 4 }, /* TimeSyncAssistanceInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 35, -19, 3 }, /* UESliceMaximumBitRateList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 36, -20, 2 }, /* FiveG-ProSeAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 37, -21, 1 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 38, -22, 0 }, /* FiveG-ProSePC5QoSParameters */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_400 = { + sizeof(struct ASN_NGAP_HandoverRequestIEs__value), + offsetof(struct ASN_NGAP_HandoverRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverRequestIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_400, + 44, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_400, + asn_MAP_ASN_NGAP_value_from_canonical_400, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_400, + 39, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_400 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestIEs_397[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_398, memb_ASN_NGAP_id_constraint_397 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_399, memb_ASN_NGAP_criticality_constraint_397 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_400, + select_HandoverRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_400, memb_ASN_NGAP_value_constraint_397 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequestIEs_tag2el_397[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestIEs_specs_397 = { + sizeof(struct ASN_NGAP_HandoverRequestIEs), + offsetof(struct ASN_NGAP_HandoverRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequestIEs_tag2el_397, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestIEs = { + "HandoverRequestIEs", + "HandoverRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397, + sizeof(asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestIEs_tags_397[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequestIEs_397, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequestIEs_specs_397 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_404[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.PDUSessionResourceAdmittedList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceAdmittedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceAdmittedList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.PDUSessionResourceFailedToSetupListHOAck), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToSetupListHOAck" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.TargetToSource_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetToSource-TransparentContainer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.NPN_AccessInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_AccessInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-AccessInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, choice.RedCapIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedCapIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedCapIndication" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_404[] = { 0, 1, 4, 7, 2, 3, 5, 6 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_404[] = { 0, 1, 4, 5, 2, 6, 7, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_404[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 0 }, /* TargetToSource-TransparentContainer */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, 0, 0 }, /* RedCapIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 2 }, /* PDUSessionResourceAdmittedList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 1 }, /* PDUSessionResourceFailedToSetupListHOAck */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 6, 0, 0 }, /* pNI-NPN-Access-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 6, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_404 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_404, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_404, + asn_MAP_ASN_NGAP_value_from_canonical_404, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_404, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_404 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeIEs_401[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_402, memb_ASN_NGAP_id_constraint_401 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverRequestAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_403, memb_ASN_NGAP_criticality_constraint_401 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_404, + select_HandoverRequestAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_404, memb_ASN_NGAP_value_constraint_401 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeIEs_tag2el_401[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeIEs_specs_401 = { + sizeof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs), + offsetof(struct ASN_NGAP_HandoverRequestAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverRequestAcknowledgeIEs_tag2el_401, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs = { + "HandoverRequestAcknowledgeIEs", + "HandoverRequestAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401, + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401) + /sizeof(asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs_tags_401[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeIEs_401, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeIEs_specs_401 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_408[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs__value, choice.TargettoSource_Failure_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargettoSource-Failure-TransparentContainer" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_408[] = { 0, 3, 2, 1 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_408[] = { 0, 3, 2, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_408[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* TargettoSource-Failure-TransparentContainer */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_408 = { + sizeof(struct ASN_NGAP_HandoverFailureIEs__value), + offsetof(struct ASN_NGAP_HandoverFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverFailureIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_408, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_408, + asn_MAP_ASN_NGAP_value_from_canonical_408, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_408, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_408 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverFailureIEs_405[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_406, memb_ASN_NGAP_id_constraint_405 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_407, memb_ASN_NGAP_criticality_constraint_405 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_408, + select_HandoverFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_408, memb_ASN_NGAP_value_constraint_405 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverFailureIEs_tag2el_405[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverFailureIEs_specs_405 = { + sizeof(struct ASN_NGAP_HandoverFailureIEs), + offsetof(struct ASN_NGAP_HandoverFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverFailureIEs_tag2el_405, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverFailureIEs = { + "HandoverFailureIEs", + "HandoverFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405, + sizeof(asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405) + /sizeof(asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405) + /sizeof(asn_DEF_ASN_NGAP_HandoverFailureIEs_tags_405[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverFailureIEs_405, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverFailureIEs_specs_405 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_412[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, choice.NotifySourceNGRANNode), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NotifySourceNGRANNode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NotifySourceNGRANNode" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_412[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_412[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_412[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* NotifySourceNGRANNode */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_412 = { + sizeof(struct ASN_NGAP_HandoverNotifyIEs__value), + offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverNotifyIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverNotifyIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_412, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_412, + asn_MAP_ASN_NGAP_value_from_canonical_412, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_412, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_412 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverNotifyIEs_409[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_410, memb_ASN_NGAP_id_constraint_409 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverNotifyIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_411, memb_ASN_NGAP_criticality_constraint_409 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverNotifyIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_412, + select_HandoverNotifyIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_412, memb_ASN_NGAP_value_constraint_409 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverNotifyIEs_tag2el_409[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverNotifyIEs_specs_409 = { + sizeof(struct ASN_NGAP_HandoverNotifyIEs), + offsetof(struct ASN_NGAP_HandoverNotifyIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverNotifyIEs_tag2el_409, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverNotifyIEs = { + "HandoverNotifyIEs", + "HandoverNotifyIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409, + sizeof(asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409) + /sizeof(asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409) + /sizeof(asn_DEF_ASN_NGAP_HandoverNotifyIEs_tags_409[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverNotifyIEs_409, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverNotifyIEs_specs_409 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_416[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.UESecurityCapabilities), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESecurityCapabilities" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.PDUSessionResourceToBeSwitchedDLList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceToBeSwitchedDLList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceToBeSwitchedDLList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.PDUSessionResourceFailedToSetupListPSReq), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceFailedToSetupListPSReq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.RRCEstablishmentCause), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCEstablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCEstablishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, choice.RedCapIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedCapIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedCapIndication" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_416[] = { 0, 1, 6, 7, 3, 4, 5, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_416[] = { 0, 1, 7, 4, 5, 6, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_416[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, 0, 1 }, /* RRCEstablishmentCause */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 7, -1, 0 }, /* RedCapIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 2 }, /* UESecurityCapabilities */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 1 }, /* PDUSessionResourceToBeSwitchedDLList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 0 }, /* PDUSessionResourceFailedToSetupListPSReq */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_416 = { + sizeof(struct ASN_NGAP_PathSwitchRequestIEs__value), + offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestIEs__value, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_416, + 11, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_416, + asn_MAP_ASN_NGAP_value_from_canonical_416, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_416, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_416 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestIEs_413[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_414, memb_ASN_NGAP_id_constraint_413 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PathSwitchRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_415, memb_ASN_NGAP_criticality_constraint_413 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_416, + select_PathSwitchRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_416, memb_ASN_NGAP_value_constraint_413 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestIEs_tag2el_413[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestIEs_specs_413 = { + sizeof(struct ASN_NGAP_PathSwitchRequestIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestIEs_tag2el_413, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestIEs = { + "PathSwitchRequestIEs", + "PathSwitchRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestIEs_tags_413[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestIEs_413, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestIEs_specs_413 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_420[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.UESecurityCapabilities), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESecurityCapabilities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UESecurityCapabilities" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.SecurityContext), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SecurityContext, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SecurityContext" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.NewSecurityContextInd), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NewSecurityContextInd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NewSecurityContextInd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.PDUSessionResourceSwitchedList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSwitchedList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSwitchedList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.PDUSessionResourceReleasedListPSAck), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleasedListPSAck" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.CoreNetworkAssistanceInformationForInactive), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CoreNetworkAssistanceInformationForInactive, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CoreNetworkAssistanceInformationForInactive" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.RRCInactiveTransitionReportRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCInactiveTransitionReportRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.RedirectionVoiceFallback), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedirectionVoiceFallback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedirectionVoiceFallback" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.CNAssistedRANTuning), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CNAssistedRANTuning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CNAssistedRANTuning" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.SRVCCOperationPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_SRVCCOperationPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRVCCOperationPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.Extended_ConnectedTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_ConnectedTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-ConnectedTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.NRV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.LTEV2XServicesAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEV2XServicesAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEV2XServicesAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.NRUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.LTEUESidelinkAggregateMaximumBitrate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.PC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PC5QoSParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.UE_UP_CIoT_Support), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_UP_CIoT_Support, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-UP-CIoT-Support" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.MDTPLMNList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDTPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDTPLMNList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.TimeSyncAssistanceInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeSyncAssistanceInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.FiveG_ProSeAuthorized), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSeAuthorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSeAuthorized" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.NRUESidelinkAggregateMaximumBitrate_1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRUESidelinkAggregateMaximumBitrate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRUESidelinkAggregateMaximumBitrate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.FiveG_ProSePC5QoSParameters), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_ProSePC5QoSParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-ProSePC5QoSParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.MDTPLMNModificationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MDTPLMNModificationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MDTPLMNModificationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, choice.IAB_Authorized), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IAB_Authorized, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IAB-Authorized" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_420[] = { 0, 1, 15, 24, 4, 9, 11, 13, 14, 22, 23, 31, 2, 3, 5, 6, 7, 8, 10, 12, 16, 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_420[] = { 0, 1, 12, 13, 4, 14, 15, 16, 17, 5, 18, 6, 19, 7, 8, 2, 20, 21, 22, 23, 24, 25, 9, 10, 3, 26, 27, 28, 29, 30, 31, 11 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_420[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 15, -2, 0 }, /* Extended-ConnectedTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 24, 0, 0 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 7 }, /* NewSecurityContextInd */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 6 }, /* RRCInactiveTransitionReportRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -2, 5 }, /* RedirectionVoiceFallback */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -3, 4 }, /* SRVCCOperationPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 14, -4, 3 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 22, -5, 2 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 23, -6, 1 }, /* UE-UP-CIoT-Support */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 31, -7, 0 }, /* IAB-Authorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 19 }, /* UESecurityCapabilities */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 18 }, /* SecurityContext */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -2, 17 }, /* PDUSessionResourceSwitchedList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -3, 16 }, /* PDUSessionResourceReleasedListPSAck */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -4, 15 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -5, 14 }, /* CoreNetworkAssistanceInformationForInactive */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -6, 13 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -7, 12 }, /* CNAssistedRANTuning */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -8, 11 }, /* UE-DifferentiationInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -9, 10 }, /* NRV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -10, 9 }, /* LTEV2XServicesAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -11, 8 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -12, 7 }, /* LTEUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -13, 6 }, /* PC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -14, 5 }, /* MDTPLMNList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -15, 4 }, /* TimeSyncAssistanceInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -16, 3 }, /* FiveG-ProSeAuthorized */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -17, 2 }, /* NRUESidelinkAggregateMaximumBitrate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 29, -18, 1 }, /* FiveG-ProSePC5QoSParameters */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 30, -19, 0 } /* MDTPLMNModificationList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_420 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_420, + 32, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_420, + asn_MAP_ASN_NGAP_value_from_canonical_420, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_420, + 32, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_420 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_417[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_418, memb_ASN_NGAP_id_constraint_417 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PathSwitchRequestAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_419, memb_ASN_NGAP_criticality_constraint_417 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_420, + select_PathSwitchRequestAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_420, memb_ASN_NGAP_value_constraint_417 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tag2el_417[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_specs_417 = { + sizeof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tag2el_417, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs = { + "PathSwitchRequestAcknowledgeIEs", + "PathSwitchRequestAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_tags_417[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_417, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_specs_417 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_424[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, choice.PDUSessionResourceReleasedListPSFail), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleasedListPSFail, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleasedListPSFail" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_424[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* PDUSessionResourceReleasedListPSFail */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_424 = { + sizeof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value), + offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs__value, present), + sizeof(((struct ASN_NGAP_PathSwitchRequestFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_424, + 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_ASN_NGAP_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_ASN_NGAP_value_424, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_424 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestFailureIEs_421[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_422, memb_ASN_NGAP_id_constraint_421 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PathSwitchRequestFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_423, memb_ASN_NGAP_criticality_constraint_421 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_424, + select_PathSwitchRequestFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_424, memb_ASN_NGAP_value_constraint_421 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PathSwitchRequestFailureIEs_tag2el_421[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestFailureIEs_specs_421 = { + sizeof(struct ASN_NGAP_PathSwitchRequestFailureIEs), + offsetof(struct ASN_NGAP_PathSwitchRequestFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PathSwitchRequestFailureIEs_tag2el_421, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs = { + "PathSwitchRequestFailureIEs", + "PathSwitchRequestFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421, + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421[0]), /* 1 */ + asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421) + /sizeof(asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs_tags_421[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PathSwitchRequestFailureIEs_421, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PathSwitchRequestFailureIEs_specs_421 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_428[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_428[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_428 = { + sizeof(struct ASN_NGAP_HandoverCancelIEs__value), + offsetof(struct ASN_NGAP_HandoverCancelIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverCancelIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverCancelIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_428, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_428, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_428 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelIEs_425[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_426, memb_ASN_NGAP_id_constraint_425 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverCancelIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_427, memb_ASN_NGAP_criticality_constraint_425 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_428, + select_HandoverCancelIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_428, memb_ASN_NGAP_value_constraint_425 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCancelIEs_tag2el_425[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelIEs_specs_425 = { + sizeof(struct ASN_NGAP_HandoverCancelIEs), + offsetof(struct ASN_NGAP_HandoverCancelIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCancelIEs_tag2el_425, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancelIEs = { + "HandoverCancelIEs", + "HandoverCancelIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425, + sizeof(asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelIEs_tags_425[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCancelIEs_425, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCancelIEs_specs_425 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_432[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_432[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_432 = { + sizeof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_432, + 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_ASN_NGAP_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_ASN_NGAP_value_432, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_432 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelAcknowledgeIEs_429[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_430, memb_ASN_NGAP_id_constraint_429 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverCancelAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_431, memb_ASN_NGAP_criticality_constraint_429 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_432, + select_HandoverCancelAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_432, memb_ASN_NGAP_value_constraint_429 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverCancelAcknowledgeIEs_tag2el_429[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelAcknowledgeIEs_specs_429 = { + sizeof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs), + offsetof(struct ASN_NGAP_HandoverCancelAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverCancelAcknowledgeIEs_tag2el_429, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs = { + "HandoverCancelAcknowledgeIEs", + "HandoverCancelAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429, + sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429) + /sizeof(asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs_tags_429[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverCancelAcknowledgeIEs_429, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverCancelAcknowledgeIEs_specs_429 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_436[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccessIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccessIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_436[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* RAN-UE-NGAP-ID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_436 = { + sizeof(struct ASN_NGAP_HandoverSuccessIEs__value), + offsetof(struct ASN_NGAP_HandoverSuccessIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_HandoverSuccessIEs__value, present), + sizeof(((struct ASN_NGAP_HandoverSuccessIEs__value *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_436, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_436 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverSuccessIEs_433[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccessIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_434, memb_ASN_NGAP_id_constraint_433 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccessIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_HandoverSuccessIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_435, memb_ASN_NGAP_criticality_constraint_433 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_HandoverSuccessIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_436, + select_HandoverSuccessIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_436, memb_ASN_NGAP_value_constraint_433 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_HandoverSuccessIEs_tag2el_433[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverSuccessIEs_specs_433 = { + sizeof(struct ASN_NGAP_HandoverSuccessIEs), + offsetof(struct ASN_NGAP_HandoverSuccessIEs, _asn_ctx), + asn_MAP_ASN_NGAP_HandoverSuccessIEs_tag2el_433, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverSuccessIEs = { + "HandoverSuccessIEs", + "HandoverSuccessIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433, + sizeof(asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433) + /sizeof(asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433[0]), /* 1 */ + asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433) + /sizeof(asn_DEF_ASN_NGAP_HandoverSuccessIEs_tags_433[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_HandoverSuccessIEs_433, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_HandoverSuccessIEs_specs_433 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_440[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value, choice.EarlyStatusTransfer_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EarlyStatusTransfer-TransparentContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_440[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* EarlyStatusTransfer-TransparentContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_440 = { + sizeof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value), + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_440, + 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_ASN_NGAP_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_ASN_NGAP_value_440, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_440 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_437[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_438, memb_ASN_NGAP_id_constraint_437 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkRANEarlyStatusTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_439, memb_ASN_NGAP_criticality_constraint_437 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_440, + select_UplinkRANEarlyStatusTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_440, memb_ASN_NGAP_value_constraint_437 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tag2el_437[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_specs_437 = { + sizeof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs), + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tag2el_437, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs = { + "UplinkRANEarlyStatusTransferIEs", + "UplinkRANEarlyStatusTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437, + sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_tags_437[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_437, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_specs_437 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_444[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value, choice.EarlyStatusTransfer_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EarlyStatusTransfer_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EarlyStatusTransfer-TransparentContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_444[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* EarlyStatusTransfer-TransparentContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_444 = { + sizeof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value), + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_444, + 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_ASN_NGAP_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_ASN_NGAP_value_444, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_444 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_441[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_442, memb_ASN_NGAP_id_constraint_441 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkRANEarlyStatusTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_443, memb_ASN_NGAP_criticality_constraint_441 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_444, + select_DownlinkRANEarlyStatusTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_444, memb_ASN_NGAP_value_constraint_441 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tag2el_441[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_specs_441 = { + sizeof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs), + offsetof(struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tag2el_441, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs = { + "DownlinkRANEarlyStatusTransferIEs", + "DownlinkRANEarlyStatusTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_tags_441[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_441, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_specs_441 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_448[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value, choice.RANStatusTransfer_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANStatusTransfer-TransparentContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_448[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* RANStatusTransfer-TransparentContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_448 = { + sizeof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value), + offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkRANStatusTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_448, + 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_ASN_NGAP_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_ASN_NGAP_value_448, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_448 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANStatusTransferIEs_445[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_446, memb_ASN_NGAP_id_constraint_445 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkRANStatusTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_447, memb_ASN_NGAP_criticality_constraint_445 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_448, + select_UplinkRANStatusTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_448, memb_ASN_NGAP_value_constraint_445 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANStatusTransferIEs_tag2el_445[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANStatusTransferIEs_specs_445 = { + sizeof(struct ASN_NGAP_UplinkRANStatusTransferIEs), + offsetof(struct ASN_NGAP_UplinkRANStatusTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANStatusTransferIEs_tag2el_445, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs = { + "UplinkRANStatusTransferIEs", + "UplinkRANStatusTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445, + sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs_tags_445[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANStatusTransferIEs_445, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANStatusTransferIEs_specs_445 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_452[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value, choice.RANStatusTransfer_TransparentContainer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANStatusTransfer-TransparentContainer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_452[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* RANStatusTransfer-TransparentContainer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_452 = { + sizeof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value), + offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkRANStatusTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_452, + 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_ASN_NGAP_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_ASN_NGAP_value_452, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_452 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANStatusTransferIEs_449[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_450, memb_ASN_NGAP_id_constraint_449 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkRANStatusTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_451, memb_ASN_NGAP_criticality_constraint_449 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_452, + select_DownlinkRANStatusTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_452, memb_ASN_NGAP_value_constraint_449 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANStatusTransferIEs_tag2el_449[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANStatusTransferIEs_specs_449 = { + sizeof(struct ASN_NGAP_DownlinkRANStatusTransferIEs), + offsetof(struct ASN_NGAP_DownlinkRANStatusTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANStatusTransferIEs_tag2el_449, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs = { + "DownlinkRANStatusTransferIEs", + "DownlinkRANStatusTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs_tags_449[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANStatusTransferIEs_449, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANStatusTransferIEs_specs_449 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_456[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.UEPagingIdentity), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UEPagingIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEPagingIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.PagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.TAIListForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAIListForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.PagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.UERadioCapabilityForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.PagingOrigin), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingOrigin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingOrigin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.AssistanceDataForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AssistanceDataForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AssistanceDataForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.NB_IoT_Paging_eDRXInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_Paging_eDRXInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-Paging-eDRXInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.NB_IoT_PagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-PagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.WUS_Assistance_Information), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WUS_Assistance_Information, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WUS-Assistance-Information" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.EUTRA_PagingeDRXInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EUTRA_PagingeDRXInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EUTRA-PagingeDRXInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.NR_PagingeDRXInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NR_PagingeDRXInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NR-PagingeDRXInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.PagingCause), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs__value, choice.PEIPSassistanceInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PEIPSassistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PEIPSassistanceInformation" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_456[] = { 1, 3, 5, 8, 9, 12, 14, 2, 4, 6, 7, 10, 11, 13, 15, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_456[] = { 15, 0, 7, 1, 8, 2, 9, 10, 3, 4, 11, 12, 5, 13, 6, 14 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_456[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 6 }, /* PagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, -1, 5 }, /* PagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -2, 4 }, /* PagingOrigin */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 8, -3, 3 }, /* NB-IoT-PagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -4, 2 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 12, -5, 1 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 14, -6, 0 }, /* PagingCause */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 7 }, /* TAIListForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 6 }, /* UERadioCapabilityForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 5 }, /* AssistanceDataForPaging */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 4 }, /* NB-IoT-Paging-eDRXInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -4, 3 }, /* WUS-Assistance-Information */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -5, 2 }, /* EUTRA-PagingeDRXInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -6, 1 }, /* NR-PagingeDRXInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -7, 0 }, /* PEIPSassistanceInformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveG-S-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_456 = { + sizeof(struct ASN_NGAP_PagingIEs__value), + offsetof(struct ASN_NGAP_PagingIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PagingIEs__value, present), + sizeof(((struct ASN_NGAP_PagingIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_456, + 17, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_456, + asn_MAP_ASN_NGAP_value_from_canonical_456, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_456, + 16, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_456 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingIEs_453[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_454, memb_ASN_NGAP_id_constraint_453 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PagingIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_455, memb_ASN_NGAP_criticality_constraint_453 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PagingIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_456, + select_PagingIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_456, memb_ASN_NGAP_value_constraint_453 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PagingIEs_tags_453[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PagingIEs_tag2el_453[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingIEs_specs_453 = { + sizeof(struct ASN_NGAP_PagingIEs), + offsetof(struct ASN_NGAP_PagingIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PagingIEs_tag2el_453, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingIEs = { + "PagingIEs", + "PagingIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PagingIEs_tags_453, + sizeof(asn_DEF_ASN_NGAP_PagingIEs_tags_453) + /sizeof(asn_DEF_ASN_NGAP_PagingIEs_tags_453[0]), /* 1 */ + asn_DEF_ASN_NGAP_PagingIEs_tags_453, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PagingIEs_tags_453) + /sizeof(asn_DEF_ASN_NGAP_PagingIEs_tags_453[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PagingIEs_453, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PagingIEs_specs_453 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_460[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.RRCEstablishmentCause), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RRCEstablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RRCEstablishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.FiveG_S_TMSI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.AMFSetID), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFSetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.UEContextRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.SourceToTarget_AMFInformationReroute), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SourceToTarget-AMFInformationReroute" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.PLMNIdentity), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.IABNodeIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IABNodeIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IABNodeIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.CEmodeBSupport_Indicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBSupport_Indicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBSupport-Indicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.LTEM_Indication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_LTEM_Indication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LTEM-Indication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.EDT_Session), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_EDT_Session, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EDT-Session" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.AuthenticatedIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_AuthenticatedIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AuthenticatedIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.NPN_AccessInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NPN_AccessInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NPN-AccessInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, choice.RedCapIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_RedCapIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RedCapIndication" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_460[] = { 0, 5, 1, 9, 3, 6, 10, 11, 12, 13, 14, 16, 4, 7, 8, 2, 15 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_460[] = { 0, 2, 15, 4, 12, 1, 5, 13, 14, 3, 6, 7, 8, 9, 10, 16, 11 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_460[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 5, 0, 0 }, /* AMFSetID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 1 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 9, -1, 0 }, /* PLMNIdentity */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 7 }, /* RRCEstablishmentCause */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 6 }, /* UEContextRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -2, 5 }, /* IABNodeIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 11, -3, 4 }, /* CEmodeBSupport-Indicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 12, -4, 3 }, /* LTEM-Indication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -5, 2 }, /* EDT-Session */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 14, -6, 1 }, /* AuthenticatedIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 16, -7, 0 }, /* RedCapIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 2 }, /* FiveG-S-TMSI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -1, 1 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -2, 0 }, /* SourceToTarget-AMFInformationReroute */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 1 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 15, -1, 0 }, /* pNI-NPN-Access-Information */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 1 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 15, -1, 0 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_460 = { + sizeof(struct ASN_NGAP_InitialUEMessage_IEs__value), + offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_InitialUEMessage_IEs__value, present), + sizeof(((struct ASN_NGAP_InitialUEMessage_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_460, + 21, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_460, + asn_MAP_ASN_NGAP_value_from_canonical_460, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_460, + 17, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_460 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialUEMessage_IEs_457[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_458, memb_ASN_NGAP_id_constraint_457 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_InitialUEMessage_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_459, memb_ASN_NGAP_criticality_constraint_457 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_InitialUEMessage_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_460, + select_InitialUEMessage_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_460, memb_ASN_NGAP_value_constraint_457 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_InitialUEMessage_IEs_tag2el_457[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialUEMessage_IEs_specs_457 = { + sizeof(struct ASN_NGAP_InitialUEMessage_IEs), + offsetof(struct ASN_NGAP_InitialUEMessage_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_InitialUEMessage_IEs_tag2el_457, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialUEMessage_IEs = { + "InitialUEMessage-IEs", + "InitialUEMessage-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457, + sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457) + /sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457[0]), /* 1 */ + asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457) + /sizeof(asn_DEF_ASN_NGAP_InitialUEMessage_IEs_tags_457[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InitialUEMessage_IEs_457, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InitialUEMessage_IEs_specs_457 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_464[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.RANPagingPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANPagingPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANPagingPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.MobilityRestrictionList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MobilityRestrictionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MobilityRestrictionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.IndexToRFSP), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_IndexToRFSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IndexToRFSP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.UEAggregateMaximumBitRate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEAggregateMaximumBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.SRVCCOperationPossible), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_SRVCCOperationPossible, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SRVCCOperationPossible" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.Extended_ConnectedTime), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_ConnectedTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-ConnectedTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.UECapabilityInfoRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UECapabilityInfoRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UECapabilityInfoRequest" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.EndIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_EndIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EndIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.TargetNSSAIInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNSSAIInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TargetNSSAIInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_464[] = { 0, 1, 3, 6, 11, 19, 4, 14, 17, 9, 10, 13, 15, 16, 5, 7, 8, 12, 18, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_464[] = { 0, 1, 19, 2, 6, 14, 3, 15, 16, 9, 10, 4, 17, 11, 7, 12, 13, 8, 18, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_464[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 4 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 3 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 2 }, /* RANPagingPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 6, -3, 1 }, /* IndexToRFSP */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 11, -4, 0 }, /* Extended-ConnectedTime */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 19, 0, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, 0, 2 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 14, -1, 1 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 17, -2, 0 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, 0, 4 }, /* SRVCCOperationPossible */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -1, 3 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 13, -2, 2 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 15, -3, 1 }, /* UECapabilityInfoRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 16, -4, 0 }, /* EndIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, 0, 4 }, /* MobilityRestrictionList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -1, 3 }, /* UEAggregateMaximumBitRate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -2, 2 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -3, 1 }, /* UE-DifferentiationInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -4, 0 }, /* TargetNSSAIInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 2, 0, 0 } /* AMFName */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_464 = { + sizeof(struct ASN_NGAP_DownlinkNASTransport_IEs__value), + offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkNASTransport_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_464, + 20, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_464, + asn_MAP_ASN_NGAP_value_from_canonical_464, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_464, + 20, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_464 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNASTransport_IEs_461[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_462, memb_ASN_NGAP_id_constraint_461 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkNASTransport_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_463, memb_ASN_NGAP_criticality_constraint_461 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_464, + select_DownlinkNASTransport_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_464, memb_ASN_NGAP_value_constraint_461 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkNASTransport_IEs_tag2el_461[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNASTransport_IEs_specs_461 = { + sizeof(struct ASN_NGAP_DownlinkNASTransport_IEs), + offsetof(struct ASN_NGAP_DownlinkNASTransport_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkNASTransport_IEs_tag2el_461, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs = { + "DownlinkNASTransport-IEs", + "DownlinkNASTransport-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461, + sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs_tags_461[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkNASTransport_IEs_461, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkNASTransport_IEs_specs_461 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_468[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.OCTET_STRING), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OCTET STRING" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.OCTET_STRING_1), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OCTET STRING" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, choice.OCTET_STRING_2), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OCTET STRING" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_468[] = { 0, 1, 2, 4, 5, 6, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_468[] = { 0, 1, 2, 6, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_468[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 3 }, /* NAS-PDU */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 2 }, /* OCTET STRING */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, -2, 1 }, /* OCTET STRING */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -3, 0 }, /* OCTET STRING */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_468 = { + sizeof(struct ASN_NGAP_UplinkNASTransport_IEs__value), + offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkNASTransport_IEs__value, present), + sizeof(((struct ASN_NGAP_UplinkNASTransport_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_468, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_468, + asn_MAP_ASN_NGAP_value_from_canonical_468, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_468, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_468 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNASTransport_IEs_465[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_466, memb_ASN_NGAP_id_constraint_465 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkNASTransport_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_467, memb_ASN_NGAP_criticality_constraint_465 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_468, + select_UplinkNASTransport_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_468, memb_ASN_NGAP_value_constraint_465 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkNASTransport_IEs_tag2el_465[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNASTransport_IEs_specs_465 = { + sizeof(struct ASN_NGAP_UplinkNASTransport_IEs), + offsetof(struct ASN_NGAP_UplinkNASTransport_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkNASTransport_IEs_tag2el_465, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNASTransport_IEs = { + "UplinkNASTransport-IEs", + "UplinkNASTransport-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465, + sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465) + /sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465) + /sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_IEs_tags_465[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkNASTransport_IEs_465, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkNASTransport_IEs_specs_465 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_472[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, choice.NAS_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NAS_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NAS-PDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_472[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* NAS-PDU */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_472 = { + sizeof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value), + offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs__value, present), + sizeof(((struct ASN_NGAP_NASNonDeliveryIndication_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_472, + 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_ASN_NGAP_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_ASN_NGAP_value_472, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_472 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NASNonDeliveryIndication_IEs_469[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_470, memb_ASN_NGAP_id_constraint_469 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NASNonDeliveryIndication_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_471, memb_ASN_NGAP_criticality_constraint_469 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_472, + select_NASNonDeliveryIndication_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_472, memb_ASN_NGAP_value_constraint_469 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NASNonDeliveryIndication_IEs_tag2el_469[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NASNonDeliveryIndication_IEs_specs_469 = { + sizeof(struct ASN_NGAP_NASNonDeliveryIndication_IEs), + offsetof(struct ASN_NGAP_NASNonDeliveryIndication_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_NASNonDeliveryIndication_IEs_tag2el_469, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs = { + "NASNonDeliveryIndication-IEs", + "NASNonDeliveryIndication-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469, + sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469) + /sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469[0]), /* 1 */ + asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469) + /sizeof(asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs_tags_469[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NASNonDeliveryIndication_IEs_469, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NASNonDeliveryIndication_IEs_specs_469 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_476[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.OCTET_STRING), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OCTET STRING" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.AMFSetID), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFSetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, choice.SourceToTarget_AMFInformationReroute), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SourceToTarget-AMFInformationReroute" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_476[] = { 0, 1, 3, 2, 4, 5 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_476[] = { 0, 1, 3, 2, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_476[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 3, 0, 0 }, /* AMFSetID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 1 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 0 } /* SourceToTarget-AMFInformationReroute */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_476 = { + sizeof(struct ASN_NGAP_RerouteNASRequest_IEs__value), + offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RerouteNASRequest_IEs__value, present), + sizeof(((struct ASN_NGAP_RerouteNASRequest_IEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_476, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_476, + asn_MAP_ASN_NGAP_value_from_canonical_476, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_476, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_476 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RerouteNASRequest_IEs_473[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_474, memb_ASN_NGAP_id_constraint_473 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RerouteNASRequest_IEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_475, memb_ASN_NGAP_criticality_constraint_473 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest_IEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_476, + select_RerouteNASRequest_IEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_476, memb_ASN_NGAP_value_constraint_473 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RerouteNASRequest_IEs_tag2el_473[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RerouteNASRequest_IEs_specs_473 = { + sizeof(struct ASN_NGAP_RerouteNASRequest_IEs), + offsetof(struct ASN_NGAP_RerouteNASRequest_IEs, _asn_ctx), + asn_MAP_ASN_NGAP_RerouteNASRequest_IEs_tag2el_473, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RerouteNASRequest_IEs = { + "RerouteNASRequest-IEs", + "RerouteNASRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473, + sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473) + /sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473[0]), /* 1 */ + asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473) + /sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_IEs_tags_473[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RerouteNASRequest_IEs_473, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RerouteNASRequest_IEs_specs_473 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_480[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.RANNodeName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANNodeName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANNodeName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.SupportedTAList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SupportedTAList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SupportedTAList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.PagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.UERetentionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERetentionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERetentionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.NB_IoT_DefaultPagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-DefaultPagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, choice.Extended_RANNodeName), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_RANNodeName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-RANNodeName" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_480[] = { 3, 4, 5, 2, 6, 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_480[] = { 6, 5, 3, 0, 1, 2, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_480[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 2 }, /* PagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, -1, 1 }, /* UERetentionInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -2, 0 }, /* NB-IoT-DefaultPagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* SupportedTAList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -1, 0 }, /* Extended-RANNodeName */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 1, 0, 0 }, /* RANNodeName */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_480 = { + sizeof(struct ASN_NGAP_NGSetupRequestIEs__value), + offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGSetupRequestIEs__value, present), + sizeof(((struct ASN_NGAP_NGSetupRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_480, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_480, + asn_MAP_ASN_NGAP_value_from_canonical_480, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_480, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_480 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupRequestIEs_477[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_478, memb_ASN_NGAP_id_constraint_477 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NGSetupRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_479, memb_ASN_NGAP_criticality_constraint_477 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_480, + select_NGSetupRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_480, memb_ASN_NGAP_value_constraint_477 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupRequestIEs_tag2el_477[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupRequestIEs_specs_477 = { + sizeof(struct ASN_NGAP_NGSetupRequestIEs), + offsetof(struct ASN_NGAP_NGSetupRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupRequestIEs_tag2el_477, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupRequestIEs = { + "NGSetupRequestIEs", + "NGSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477, + sizeof(asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477) + /sizeof(asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477) + /sizeof(asn_DEF_ASN_NGAP_NGSetupRequestIEs_tags_477[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupRequestIEs_477, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupRequestIEs_specs_477 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_484[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.ServedGUAMIList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServedGUAMIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServedGUAMIList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.RelativeAMFCapacity), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RelativeAMFCapacity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RelativeAMFCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.PLMNSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PLMNSupportList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.UERetentionInformation), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERetentionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERetentionInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.IAB_Supported), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IAB_Supported, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IAB-Supported" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, choice.Extended_AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-AMFName" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_484[] = { 2, 5, 6, 1, 3, 4, 7, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_484[] = { 7, 3, 0, 4, 5, 1, 2, 6 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_484[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* RelativeAMFCapacity */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 1 }, /* UERetentionInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 6, -1, 0 }, /* IAB-Supported */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* ServedGUAMIList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* PLMNSupportList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 }, /* Extended-AMFName */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 0, 0, 0 } /* AMFName */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_484 = { + sizeof(struct ASN_NGAP_NGSetupResponseIEs__value), + offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGSetupResponseIEs__value, present), + sizeof(((struct ASN_NGAP_NGSetupResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_484, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_484, + asn_MAP_ASN_NGAP_value_from_canonical_484, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_484, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_484 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupResponseIEs_481[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_482, memb_ASN_NGAP_id_constraint_481 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NGSetupResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_483, memb_ASN_NGAP_criticality_constraint_481 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_484, + select_NGSetupResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_484, memb_ASN_NGAP_value_constraint_481 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupResponseIEs_tag2el_481[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupResponseIEs_specs_481 = { + sizeof(struct ASN_NGAP_NGSetupResponseIEs), + offsetof(struct ASN_NGAP_NGSetupResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupResponseIEs_tag2el_481, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupResponseIEs = { + "NGSetupResponseIEs", + "NGSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481, + sizeof(asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481) + /sizeof(asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481) + /sizeof(asn_DEF_ASN_NGAP_NGSetupResponseIEs_tags_481[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupResponseIEs_481, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupResponseIEs_specs_481 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_488[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_488[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_488[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_488[] = { + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_488 = { + sizeof(struct ASN_NGAP_NGSetupFailureIEs__value), + offsetof(struct ASN_NGAP_NGSetupFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGSetupFailureIEs__value, present), + sizeof(((struct ASN_NGAP_NGSetupFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_488, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_488, + asn_MAP_ASN_NGAP_value_from_canonical_488, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_488, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_488 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupFailureIEs_485[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_486, memb_ASN_NGAP_id_constraint_485 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NGSetupFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_487, memb_ASN_NGAP_criticality_constraint_485 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGSetupFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_488, + select_NGSetupFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_488, memb_ASN_NGAP_value_constraint_485 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGSetupFailureIEs_tag2el_485[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupFailureIEs_specs_485 = { + sizeof(struct ASN_NGAP_NGSetupFailureIEs), + offsetof(struct ASN_NGAP_NGSetupFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGSetupFailureIEs_tag2el_485, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupFailureIEs = { + "NGSetupFailureIEs", + "NGSetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485, + sizeof(asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485) + /sizeof(asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485) + /sizeof(asn_DEF_ASN_NGAP_NGSetupFailureIEs_tags_485[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGSetupFailureIEs_485, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGSetupFailureIEs_specs_485 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_492[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.RANNodeName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANNodeName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANNodeName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.SupportedTAList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SupportedTAList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SupportedTAList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.PagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.NGRAN_TNLAssociationToRemoveList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRAN_TNLAssociationToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRAN-TNLAssociationToRemoveList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.NB_IoT_DefaultPagingDRX), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_DefaultPagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-DefaultPagingDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, choice.Extended_RANNodeName), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_RANNodeName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-RANNodeName" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_492[] = { 2, 5, 1, 4, 6, 0, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_492[] = { 5, 2, 0, 6, 3, 1, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_492[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 1 }, /* PagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, -1, 0 }, /* NB-IoT-DefaultPagingDRX */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* SupportedTAList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 1 }, /* NGRAN-TNLAssociationToRemoveList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 0 }, /* Extended-RANNodeName */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 0, 0, 0 }, /* RANNodeName */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_492 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateIEs__value), + offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs__value, present), + sizeof(((struct ASN_NGAP_RANConfigurationUpdateIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_492, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_492, + asn_MAP_ASN_NGAP_value_from_canonical_492, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_492, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_492 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateIEs_489[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_490, memb_ASN_NGAP_id_constraint_489 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RANConfigurationUpdateIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_491, memb_ASN_NGAP_criticality_constraint_489 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_492, + select_RANConfigurationUpdateIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_492, memb_ASN_NGAP_value_constraint_489 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdateIEs_tag2el_489[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateIEs_specs_489 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateIEs), + offsetof(struct ASN_NGAP_RANConfigurationUpdateIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdateIEs_tag2el_489, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs = { + "RANConfigurationUpdateIEs", + "RANConfigurationUpdateIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs_tags_489[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdateIEs_489, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdateIEs_specs_489 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_496[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_496[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_496 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_496, + 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_ASN_NGAP_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_ASN_NGAP_value_496, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_496 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_493[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_494, memb_ASN_NGAP_id_constraint_493 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RANConfigurationUpdateAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_495, memb_ASN_NGAP_criticality_constraint_493 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_496, + select_RANConfigurationUpdateAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_496, memb_ASN_NGAP_value_constraint_493 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tag2el_493[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_specs_493 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs), + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tag2el_493, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs = { + "RANConfigurationUpdateAcknowledgeIEs", + "RANConfigurationUpdateAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_tags_493[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_493, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_specs_493 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_500[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_500[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_500[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_500[] = { + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_500 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value), + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value, present), + sizeof(((struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_500, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_500, + asn_MAP_ASN_NGAP_value_from_canonical_500, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_500, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_500 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateFailureIEs_497[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_498, memb_ASN_NGAP_id_constraint_497 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_RANConfigurationUpdateFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_499, memb_ASN_NGAP_criticality_constraint_497 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_500, + select_RANConfigurationUpdateFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_500, memb_ASN_NGAP_value_constraint_497 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdateFailureIEs_tag2el_497[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateFailureIEs_specs_497 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs), + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdateFailureIEs_tag2el_497, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs = { + "RANConfigurationUpdateFailureIEs", + "RANConfigurationUpdateFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs_tags_497[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdateFailureIEs_497, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdateFailureIEs_specs_497 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_504[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFName" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.ServedGUAMIList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServedGUAMIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ServedGUAMIList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.RelativeAMFCapacity), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RelativeAMFCapacity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RelativeAMFCapacity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.PLMNSupportList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PLMNSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PLMNSupportList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.AMF_TNLAssociationToAddList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToAddList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-TNLAssociationToAddList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.AMF_TNLAssociationToRemoveList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-TNLAssociationToRemoveList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.AMF_TNLAssociationToUpdateList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationToUpdateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-TNLAssociationToUpdateList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, choice.Extended_AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_Extended_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Extended-AMFName" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_504[] = { 2, 1, 3, 4, 5, 6, 7, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_504[] = { 7, 1, 0, 2, 3, 4, 5, 6 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_504[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, 0, 0 }, /* RelativeAMFCapacity */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 5 }, /* ServedGUAMIList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 4 }, /* PLMNSupportList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 3 }, /* AMF-TNLAssociationToAddList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 2 }, /* AMF-TNLAssociationToRemoveList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -4, 1 }, /* AMF-TNLAssociationToUpdateList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -5, 0 }, /* Extended-AMFName */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 0, 0, 0 } /* AMFName */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_504 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs__value, present), + sizeof(((struct ASN_NGAP_AMFConfigurationUpdateIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_504, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_504, + asn_MAP_ASN_NGAP_value_from_canonical_504, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_504, + 8, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_504 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateIEs_501[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_502, memb_ASN_NGAP_id_constraint_501 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMFConfigurationUpdateIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_503, memb_ASN_NGAP_criticality_constraint_501 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_504, + select_AMFConfigurationUpdateIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_504, memb_ASN_NGAP_value_constraint_501 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdateIEs_tag2el_501[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateIEs_specs_501 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateIEs), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdateIEs_tag2el_501, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs = { + "AMFConfigurationUpdateIEs", + "AMFConfigurationUpdateIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs_tags_501[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdateIEs_501, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdateIEs_specs_501 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_508[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value, choice.AMF_TNLAssociationSetupList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_TNLAssociationSetupList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-TNLAssociationSetupList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value, choice.TNLAssociationList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TNLAssociationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TNLAssociationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_508[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* AMF-TNLAssociationSetupList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* TNLAssociationList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_508 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_508, + 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_ASN_NGAP_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_ASN_NGAP_value_508, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_508 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_505[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_506, memb_ASN_NGAP_id_constraint_505 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMFConfigurationUpdateAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_507, memb_ASN_NGAP_criticality_constraint_505 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_508, + select_AMFConfigurationUpdateAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_508, memb_ASN_NGAP_value_constraint_505 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tag2el_505[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_specs_505 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tag2el_505, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs = { + "AMFConfigurationUpdateAcknowledgeIEs", + "AMFConfigurationUpdateAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_tags_505[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_505, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_specs_505 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_512[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value, choice.TimeToWait), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_TimeToWait, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TimeToWait" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_512[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_512[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_512[] = { + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_512 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value, present), + sizeof(((struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_512, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_512, + asn_MAP_ASN_NGAP_value_from_canonical_512, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_512, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_512 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailureIEs_509[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_510, memb_ASN_NGAP_id_constraint_509 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMFConfigurationUpdateFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_511, memb_ASN_NGAP_criticality_constraint_509 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_512, + select_AMFConfigurationUpdateFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_512, memb_ASN_NGAP_value_constraint_509 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tag2el_509[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailureIEs_specs_509 = { + sizeof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs), + offsetof(struct ASN_NGAP_AMFConfigurationUpdateFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tag2el_509, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs = { + "AMFConfigurationUpdateFailureIEs", + "AMFConfigurationUpdateFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509, + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509) + /sizeof(asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs_tags_509[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailureIEs_509, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailureIEs_specs_509 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_516[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFStatusIndicationIEs__value, choice.UnavailableGUAMIList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UnavailableGUAMIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UnavailableGUAMIList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_516[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* UnavailableGUAMIList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_516 = { + sizeof(struct ASN_NGAP_AMFStatusIndicationIEs__value), + offsetof(struct ASN_NGAP_AMFStatusIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFStatusIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_AMFStatusIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_516, + 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_ASN_NGAP_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_ASN_NGAP_value_516, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_516 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFStatusIndicationIEs_513[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_514, memb_ASN_NGAP_id_constraint_513 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMFStatusIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_515, memb_ASN_NGAP_criticality_constraint_513 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_516, + select_AMFStatusIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_516, memb_ASN_NGAP_value_constraint_513 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFStatusIndicationIEs_tag2el_513[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFStatusIndicationIEs_specs_513 = { + sizeof(struct ASN_NGAP_AMFStatusIndicationIEs), + offsetof(struct ASN_NGAP_AMFStatusIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFStatusIndicationIEs_tag2el_513, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFStatusIndicationIEs = { + "AMFStatusIndicationIEs", + "AMFStatusIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513, + sizeof(asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513) + /sizeof(asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513) + /sizeof(asn_DEF_ASN_NGAP_AMFStatusIndicationIEs_tags_513[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFStatusIndicationIEs_513, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFStatusIndicationIEs_specs_513 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_520[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetIEs__value, choice.ResetType), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_ResetType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ResetType" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_520[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* radioNetwork */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* nG-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* partOfNG-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 1 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, -1, 0 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_520 = { + sizeof(struct ASN_NGAP_NGResetIEs__value), + offsetof(struct ASN_NGAP_NGResetIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGResetIEs__value, present), + sizeof(((struct ASN_NGAP_NGResetIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_520, + 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_ASN_NGAP_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_ASN_NGAP_value_520, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_520 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetIEs_517[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_518, memb_ASN_NGAP_id_constraint_517 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NGResetIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_519, memb_ASN_NGAP_criticality_constraint_517 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_520, + select_NGResetIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_520, memb_ASN_NGAP_value_constraint_517 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGResetIEs_tags_517[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGResetIEs_tag2el_517[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetIEs_specs_517 = { + sizeof(struct ASN_NGAP_NGResetIEs), + offsetof(struct ASN_NGAP_NGResetIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGResetIEs_tag2el_517, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGResetIEs = { + "NGResetIEs", + "NGResetIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGResetIEs_tags_517, + sizeof(asn_DEF_ASN_NGAP_NGResetIEs_tags_517) + /sizeof(asn_DEF_ASN_NGAP_NGResetIEs_tags_517[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGResetIEs_tags_517, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGResetIEs_tags_517) + /sizeof(asn_DEF_ASN_NGAP_NGResetIEs_tags_517[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGResetIEs_517, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGResetIEs_specs_517 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_524[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs__value, choice.UE_associatedLogicalNG_connectionList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-associatedLogicalNG-connectionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_524[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* UE-associatedLogicalNG-connectionList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_524 = { + sizeof(struct ASN_NGAP_NGResetAcknowledgeIEs__value), + offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs__value, present), + sizeof(((struct ASN_NGAP_NGResetAcknowledgeIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_524, + 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_ASN_NGAP_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_ASN_NGAP_value_524, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_524 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetAcknowledgeIEs_521[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_522, memb_ASN_NGAP_id_constraint_521 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_NGResetAcknowledgeIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_523, memb_ASN_NGAP_criticality_constraint_521 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_524, + select_NGResetAcknowledgeIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_524, memb_ASN_NGAP_value_constraint_521 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_NGResetAcknowledgeIEs_tag2el_521[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetAcknowledgeIEs_specs_521 = { + sizeof(struct ASN_NGAP_NGResetAcknowledgeIEs), + offsetof(struct ASN_NGAP_NGResetAcknowledgeIEs, _asn_ctx), + asn_MAP_ASN_NGAP_NGResetAcknowledgeIEs_tag2el_521, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs = { + "NGResetAcknowledgeIEs", + "NGResetAcknowledgeIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521, + sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521) + /sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521[0]), /* 1 */ + asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521) + /sizeof(asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs_tags_521[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGResetAcknowledgeIEs_521, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGResetAcknowledgeIEs_specs_521 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_528[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, choice.FiveG_S_TMSI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "FiveG-S-TMSI" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_528[] = { 0, 1, 3, 4, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_528[] = { 0, 1, 4, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_528[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* FiveG-S-TMSI */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_528 = { + sizeof(struct ASN_NGAP_ErrorIndicationIEs__value), + offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ErrorIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_ErrorIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_528, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_528, + asn_MAP_ASN_NGAP_value_from_canonical_528, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_528, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_528 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ErrorIndicationIEs_525[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_526, memb_ASN_NGAP_id_constraint_525 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_ErrorIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_527, memb_ASN_NGAP_criticality_constraint_525 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ErrorIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_528, + select_ErrorIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_528, memb_ASN_NGAP_value_constraint_525 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ErrorIndicationIEs_tag2el_525[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ErrorIndicationIEs_specs_525 = { + sizeof(struct ASN_NGAP_ErrorIndicationIEs), + offsetof(struct ASN_NGAP_ErrorIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ErrorIndicationIEs_tag2el_525, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ErrorIndicationIEs = { + "ErrorIndicationIEs", + "ErrorIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525, + sizeof(asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525) + /sizeof(asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525[0]), /* 1 */ + asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525) + /sizeof(asn_DEF_ASN_NGAP_ErrorIndicationIEs_tags_525[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ErrorIndicationIEs_525, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ErrorIndicationIEs_specs_525 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_532[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs__value, choice.OverloadResponse), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_OverloadResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OverloadResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs__value, choice.TrafficLoadReductionIndication), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_TrafficLoadReductionIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TrafficLoadReductionIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs__value, choice.OverloadStartNSSAIList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_OverloadStartNSSAIList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "OverloadStartNSSAIList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_532[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_532[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_532[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* TrafficLoadReductionIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* OverloadStartNSSAIList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* overloadAction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_532 = { + sizeof(struct ASN_NGAP_OverloadStartIEs__value), + offsetof(struct ASN_NGAP_OverloadStartIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_OverloadStartIEs__value, present), + sizeof(((struct ASN_NGAP_OverloadStartIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_532, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_532, + asn_MAP_ASN_NGAP_value_from_canonical_532, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_532, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_532 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartIEs_529[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_530, memb_ASN_NGAP_id_constraint_529 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_OverloadStartIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_531, memb_ASN_NGAP_criticality_constraint_529 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStartIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_532, + select_OverloadStartIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_532, memb_ASN_NGAP_value_constraint_529 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStartIEs_tag2el_529[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartIEs_specs_529 = { + sizeof(struct ASN_NGAP_OverloadStartIEs), + offsetof(struct ASN_NGAP_OverloadStartIEs, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStartIEs_tag2el_529, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartIEs = { + "OverloadStartIEs", + "OverloadStartIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529, + sizeof(asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529) + /sizeof(asn_DEF_ASN_NGAP_OverloadStartIEs_tags_529[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStartIEs_529, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStartIEs_specs_529 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_536 = { + sizeof(struct ASN_NGAP_OverloadStopIEs__value), + offsetof(struct ASN_NGAP_OverloadStopIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_OverloadStopIEs__value, present), + sizeof(((struct ASN_NGAP_OverloadStopIEs__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_ASN_NGAP_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 }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_value_specs_536 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStopIEs_533[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStopIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_534, memb_ASN_NGAP_id_constraint_533 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStopIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + 0, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_535, memb_ASN_NGAP_criticality_constraint_533 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_OverloadStopIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_536, + 0, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_536, memb_ASN_NGAP_value_constraint_533 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_OverloadStopIEs_tag2el_533[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStopIEs_specs_533 = { + sizeof(struct ASN_NGAP_OverloadStopIEs), + offsetof(struct ASN_NGAP_OverloadStopIEs, _asn_ctx), + asn_MAP_ASN_NGAP_OverloadStopIEs_tag2el_533, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStopIEs = { + "OverloadStopIEs", + "OverloadStopIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533, + sizeof(asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533) + /sizeof(asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533[0]), /* 1 */ + asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533) + /sizeof(asn_DEF_ASN_NGAP_OverloadStopIEs_tags_533[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadStopIEs_533, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadStopIEs_specs_533 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_540[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value, choice.SONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SONConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value, choice.EN_DCSONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EN-DCSONConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value, choice.IntersystemSONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemSONConfigurationTransfer" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_540[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_540[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_540[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* EN-DCSONConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* SONConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* IntersystemSONConfigurationTransfer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_540 = { + sizeof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value), + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_540, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_540, + asn_MAP_ASN_NGAP_value_from_canonical_540, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_540, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_540 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANConfigurationTransferIEs_537[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_538, memb_ASN_NGAP_id_constraint_537 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkRANConfigurationTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_539, memb_ASN_NGAP_criticality_constraint_537 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_540, + select_UplinkRANConfigurationTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_540, memb_ASN_NGAP_value_constraint_537 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANConfigurationTransferIEs_tag2el_537[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANConfigurationTransferIEs_specs_537 = { + sizeof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs), + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANConfigurationTransferIEs_tag2el_537, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs = { + "UplinkRANConfigurationTransferIEs", + "UplinkRANConfigurationTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537, + sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs_tags_537[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANConfigurationTransferIEs_537, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANConfigurationTransferIEs_specs_537 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_544[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value, choice.SONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SONConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value, choice.EN_DCSONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_EN_DCSONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EN-DCSONConfigurationTransfer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value, choice.IntersystemSONConfigurationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_IntersystemSONConfigurationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IntersystemSONConfigurationTransfer" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_544[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_544[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_544[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* EN-DCSONConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* SONConfigurationTransfer */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* IntersystemSONConfigurationTransfer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_544 = { + sizeof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value), + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_544, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_544, + asn_MAP_ASN_NGAP_value_from_canonical_544, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_544, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_544 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransferIEs_541[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_542, memb_ASN_NGAP_id_constraint_541 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkRANConfigurationTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_543, memb_ASN_NGAP_criticality_constraint_541 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_544, + select_DownlinkRANConfigurationTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_544, memb_ASN_NGAP_value_constraint_541 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tag2el_541[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransferIEs_specs_541 = { + sizeof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs), + offsetof(struct ASN_NGAP_DownlinkRANConfigurationTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tag2el_541, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs = { + "DownlinkRANConfigurationTransferIEs", + "DownlinkRANConfigurationTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541, + sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs_tags_541[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransferIEs_541, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransferIEs_specs_541 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_548[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.MessageIdentifier), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MessageIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MessageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.SerialNumber), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SerialNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SerialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.WarningAreaList), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_WarningAreaList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningAreaList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.RepetitionPeriod), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RepetitionPeriod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RepetitionPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.NumberOfBroadcastsRequested), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NumberOfBroadcastsRequested, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NumberOfBroadcastsRequested" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.WarningType), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_WarningType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.WarningSecurityInfo), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_WarningSecurityInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningSecurityInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.DataCodingScheme), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_DataCodingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DataCodingScheme" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.WarningMessageContents), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_WarningMessageContents, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningMessageContents" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.ConcurrentWarningMessageInd), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_ConcurrentWarningMessageInd, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ConcurrentWarningMessageInd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, choice.WarningAreaCoordinates), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_WarningAreaCoordinates, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningAreaCoordinates" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_548[] = { 3, 4, 0, 1, 7, 5, 6, 8, 10, 9, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_548[] = { 2, 3, 10, 0, 1, 5, 6, 4, 7, 9, 8 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_548[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, 0, 1 }, /* RepetitionPeriod */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 4, -1, 0 }, /* NumberOfBroadcastsRequested */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 2 }, /* MessageIdentifier */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, -1, 1 }, /* SerialNumber */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 7, -2, 0 }, /* DataCodingScheme */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 3 }, /* WarningType */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 2 }, /* WarningSecurityInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 8, -2, 1 }, /* WarningMessageContents */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 10, -3, 0 }, /* WarningAreaCoordinates */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, 0, 0 }, /* ConcurrentWarningMessageInd */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* eUTRA-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* nR-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* emergencyAreaIDList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_548 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value), + offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs__value, present), + sizeof(((struct ASN_NGAP_WriteReplaceWarningRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_548, + 15, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_548, + asn_MAP_ASN_NGAP_value_from_canonical_548, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_548, + 11, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_548 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningRequestIEs_545[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_546, memb_ASN_NGAP_id_constraint_545 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_WriteReplaceWarningRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_547, memb_ASN_NGAP_criticality_constraint_545 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_548, + select_WriteReplaceWarningRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_548, memb_ASN_NGAP_value_constraint_545 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WriteReplaceWarningRequestIEs_tag2el_545[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningRequestIEs_specs_545 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningRequestIEs), + offsetof(struct ASN_NGAP_WriteReplaceWarningRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WriteReplaceWarningRequestIEs_tag2el_545, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs = { + "WriteReplaceWarningRequestIEs", + "WriteReplaceWarningRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545, + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545[0]), /* 1 */ + asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs_tags_545[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WriteReplaceWarningRequestIEs_545, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WriteReplaceWarningRequestIEs_specs_545 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_552[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, choice.MessageIdentifier), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MessageIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MessageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, choice.SerialNumber), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SerialNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SerialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, choice.BroadcastCompletedAreaList), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_BroadcastCompletedAreaList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastCompletedAreaList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_552[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_552[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_552[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* MessageIdentifier */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, -1, 0 }, /* SerialNumber */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* cellIDBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* tAIBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emergencyAreaIDBroadcastEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* cellIDBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* tAIBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 }, /* emergencyAreaIDBroadcastNR */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_552 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value), + offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs__value, present), + sizeof(((struct ASN_NGAP_WriteReplaceWarningResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_552, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_552, + asn_MAP_ASN_NGAP_value_from_canonical_552, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_552, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_552 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningResponseIEs_549[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_550, memb_ASN_NGAP_id_constraint_549 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_WriteReplaceWarningResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_551, memb_ASN_NGAP_criticality_constraint_549 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_552, + select_WriteReplaceWarningResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_552, memb_ASN_NGAP_value_constraint_549 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WriteReplaceWarningResponseIEs_tag2el_549[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningResponseIEs_specs_549 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningResponseIEs), + offsetof(struct ASN_NGAP_WriteReplaceWarningResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_WriteReplaceWarningResponseIEs_tag2el_549, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs = { + "WriteReplaceWarningResponseIEs", + "WriteReplaceWarningResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549, + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549[0]), /* 1 */ + asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs_tags_549[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WriteReplaceWarningResponseIEs_549, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WriteReplaceWarningResponseIEs_specs_549 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_556[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, choice.MessageIdentifier), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MessageIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MessageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, choice.SerialNumber), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SerialNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SerialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, choice.WarningAreaList), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_WarningAreaList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WarningAreaList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, choice.CancelAllWarningMessages), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CancelAllWarningMessages, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CancelAllWarningMessages" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_556[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_556[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_556[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* MessageIdentifier */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, -1, 0 }, /* SerialNumber */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* CancelAllWarningMessages */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* eUTRA-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* nR-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* emergencyAreaIDList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_556 = { + sizeof(struct ASN_NGAP_PWSCancelRequestIEs__value), + offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PWSCancelRequestIEs__value, present), + sizeof(((struct ASN_NGAP_PWSCancelRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_556, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_556, + asn_MAP_ASN_NGAP_value_from_canonical_556, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_556, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_556 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelRequestIEs_553[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_554, memb_ASN_NGAP_id_constraint_553 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PWSCancelRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_555, memb_ASN_NGAP_criticality_constraint_553 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_556, + select_PWSCancelRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_556, memb_ASN_NGAP_value_constraint_553 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSCancelRequestIEs_tag2el_553[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelRequestIEs_specs_553 = { + sizeof(struct ASN_NGAP_PWSCancelRequestIEs), + offsetof(struct ASN_NGAP_PWSCancelRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PWSCancelRequestIEs_tag2el_553, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelRequestIEs = { + "PWSCancelRequestIEs", + "PWSCancelRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553, + sizeof(asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelRequestIEs_tags_553[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSCancelRequestIEs_553, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSCancelRequestIEs_specs_553 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_560[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, choice.MessageIdentifier), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MessageIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MessageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, choice.SerialNumber), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_SerialNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "SerialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, choice.BroadcastCancelledAreaList), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_BroadcastCancelledAreaList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastCancelledAreaList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_560[] = { 0, 1, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_560[] = { 0, 1, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_560[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 0, 0, 1 }, /* MessageIdentifier */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 1, -1, 0 }, /* SerialNumber */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnostics */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* cellIDCancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* tAICancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* emergencyAreaIDCancelledEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* cellIDCancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* tAICancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 }, /* emergencyAreaIDCancelledNR */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_560 = { + sizeof(struct ASN_NGAP_PWSCancelResponseIEs__value), + offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PWSCancelResponseIEs__value, present), + sizeof(((struct ASN_NGAP_PWSCancelResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_560, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_560, + asn_MAP_ASN_NGAP_value_from_canonical_560, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_560, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_560 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelResponseIEs_557[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_558, memb_ASN_NGAP_id_constraint_557 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PWSCancelResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_559, memb_ASN_NGAP_criticality_constraint_557 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSCancelResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_560, + select_PWSCancelResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_560, memb_ASN_NGAP_value_constraint_557 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSCancelResponseIEs_tag2el_557[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelResponseIEs_specs_557 = { + sizeof(struct ASN_NGAP_PWSCancelResponseIEs), + offsetof(struct ASN_NGAP_PWSCancelResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PWSCancelResponseIEs_tag2el_557, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelResponseIEs = { + "PWSCancelResponseIEs", + "PWSCancelResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557, + sizeof(asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557) + /sizeof(asn_DEF_ASN_NGAP_PWSCancelResponseIEs_tags_557[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSCancelResponseIEs_557, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSCancelResponseIEs_specs_557 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_564[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, choice.CellIDListForRestart), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_CellIDListForRestart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CellIDListForRestart" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, choice.TAIListForRestart), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForRestart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TAIListForRestart" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, choice.EmergencyAreaIDListForRestart), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_EmergencyAreaIDListForRestart, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EmergencyAreaIDListForRestart" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_564[] = { 2, 3, 0, 1 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_564[] = { 2, 3, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_564[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* TAIListForRestart */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* EmergencyAreaIDListForRestart */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* eUTRA-CGIListforRestart */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* nR-CGIListforRestart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, -1, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_564 = { + sizeof(struct ASN_NGAP_PWSRestartIndicationIEs__value), + offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PWSRestartIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_PWSRestartIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_564, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_564, + asn_MAP_ASN_NGAP_value_from_canonical_564, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_564, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_564 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSRestartIndicationIEs_561[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_562, memb_ASN_NGAP_id_constraint_561 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PWSRestartIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_563, memb_ASN_NGAP_criticality_constraint_561 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_564, + select_PWSRestartIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_564, memb_ASN_NGAP_value_constraint_561 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSRestartIndicationIEs_tag2el_561[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSRestartIndicationIEs_specs_561 = { + sizeof(struct ASN_NGAP_PWSRestartIndicationIEs), + offsetof(struct ASN_NGAP_PWSRestartIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PWSRestartIndicationIEs_tag2el_561, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSRestartIndicationIEs = { + "PWSRestartIndicationIEs", + "PWSRestartIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561, + sizeof(asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561) + /sizeof(asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561) + /sizeof(asn_DEF_ASN_NGAP_PWSRestartIndicationIEs_tags_561[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSRestartIndicationIEs_561, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSRestartIndicationIEs_specs_561 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_568[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndicationIEs__value, choice.PWSFailedCellIDList), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_PWSFailedCellIDList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSFailedCellIDList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndicationIEs__value, choice.GlobalRANNodeID), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "GlobalRANNodeID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_568[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* eUTRA-CGI-PWSFailedList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, -1, 0 }, /* globalGNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 1 }, /* nR-CGI-PWSFailedList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, -1, 0 }, /* globalNgENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 1 }, /* choice-Extensions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, -1, 0 }, /* globalN3IWF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_568 = { + sizeof(struct ASN_NGAP_PWSFailureIndicationIEs__value), + offsetof(struct ASN_NGAP_PWSFailureIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_PWSFailureIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_PWSFailureIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_568, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_568, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_568 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailureIndicationIEs_565[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_566, memb_ASN_NGAP_id_constraint_565 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_PWSFailureIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_567, memb_ASN_NGAP_criticality_constraint_565 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_568, + select_PWSFailureIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_568, memb_ASN_NGAP_value_constraint_565 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_PWSFailureIndicationIEs_tag2el_565[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailureIndicationIEs_specs_565 = { + sizeof(struct ASN_NGAP_PWSFailureIndicationIEs), + offsetof(struct ASN_NGAP_PWSFailureIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_PWSFailureIndicationIEs_tag2el_565, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailureIndicationIEs = { + "PWSFailureIndicationIEs", + "PWSFailureIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565, + sizeof(asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565) + /sizeof(asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565[0]), /* 1 */ + asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565) + /sizeof(asn_DEF_ASN_NGAP_PWSFailureIndicationIEs_tags_565[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSFailureIndicationIEs_565, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSFailureIndicationIEs_specs_565 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_572[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, choice.RoutingID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RoutingID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RoutingID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, choice.NRPPa_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRPPa_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRPPa-PDU" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_572[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RoutingID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 } /* NRPPa-PDU */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_572 = { + sizeof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value), + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_572, + 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_ASN_NGAP_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_ASN_NGAP_value_572, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_572 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_569[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_570, memb_ASN_NGAP_id_constraint_569 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_571, memb_ASN_NGAP_criticality_constraint_569 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_572, + select_DownlinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_572, memb_ASN_NGAP_value_constraint_569 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tag2el_569[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_specs_569 = { + sizeof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs), + offsetof(struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tag2el_569, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs = { + "DownlinkUEAssociatedNRPPaTransportIEs", + "DownlinkUEAssociatedNRPPaTransportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569, + sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569) + /sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569) + /sizeof(asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_tags_569[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_569, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_specs_569 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_576[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, choice.RoutingID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RoutingID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RoutingID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, choice.NRPPa_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRPPa_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRPPa-PDU" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_576[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RoutingID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 } /* NRPPa-PDU */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_576 = { + sizeof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value), + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_576, + 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_ASN_NGAP_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_ASN_NGAP_value_576, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_576 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_573[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_574, memb_ASN_NGAP_id_constraint_573 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_575, memb_ASN_NGAP_criticality_constraint_573 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_576, + select_UplinkUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_576, memb_ASN_NGAP_value_constraint_573 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tag2el_573[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_specs_573 = { + sizeof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs), + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tag2el_573, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs = { + "UplinkUEAssociatedNRPPaTransportIEs", + "UplinkUEAssociatedNRPPaTransportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573, + sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573) + /sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573) + /sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_tags_573[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_573, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_specs_573 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_580[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value, choice.RoutingID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RoutingID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RoutingID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value, choice.NRPPa_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRPPa_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRPPa-PDU" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_580[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 1 }, /* RoutingID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, -1, 0 } /* NRPPa-PDU */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_580 = { + sizeof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value), + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_580, + 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_ASN_NGAP_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 }, + asn_MBR_ASN_NGAP_value_580, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_580 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_577[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_578, memb_ASN_NGAP_id_constraint_577 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_579, memb_ASN_NGAP_criticality_constraint_577 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_580, + select_DownlinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_580, memb_ASN_NGAP_value_constraint_577 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tag2el_577[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_specs_577 = { + sizeof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs), + offsetof(struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tag2el_577, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs = { + "DownlinkNonUEAssociatedNRPPaTransportIEs", + "DownlinkNonUEAssociatedNRPPaTransportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577, + sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577) + /sizeof(asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_tags_577[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_577, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_specs_577 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_584[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value, choice.RoutingID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_RoutingID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RoutingID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value, choice.NRPPa_PDU), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NRPPa_PDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NRPPa-PDU" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_584[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 1 }, /* RoutingID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, -1, 0 } /* NRPPa-PDU */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_584 = { + sizeof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value), + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_584, + 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_ASN_NGAP_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_ASN_NGAP_value_584, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_584 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_581[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_582, memb_ASN_NGAP_id_constraint_581 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_583, memb_ASN_NGAP_criticality_constraint_581 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_584, + select_UplinkNonUEAssociatedNRPPaTransportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_584, memb_ASN_NGAP_value_constraint_581 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tag2el_581[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_specs_581 = { + sizeof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs), + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tag2el_581, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs = { + "UplinkNonUEAssociatedNRPPaTransportIEs", + "UplinkNonUEAssociatedNRPPaTransportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581, + sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581) + /sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581) + /sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_tags_581[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_581, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_specs_581 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_588[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs__value, choice.TraceActivation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TraceActivation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TraceActivation" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_588[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* TraceActivation */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_588 = { + sizeof(struct ASN_NGAP_TraceStartIEs__value), + offsetof(struct ASN_NGAP_TraceStartIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_TraceStartIEs__value, present), + sizeof(((struct ASN_NGAP_TraceStartIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_588, + 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_ASN_NGAP_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_ASN_NGAP_value_588, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_588 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceStartIEs_585[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_586, memb_ASN_NGAP_id_constraint_585 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TraceStartIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_587, memb_ASN_NGAP_criticality_constraint_585 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStartIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_588, + select_TraceStartIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_588, memb_ASN_NGAP_value_constraint_585 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceStartIEs_tags_585[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceStartIEs_tag2el_585[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceStartIEs_specs_585 = { + sizeof(struct ASN_NGAP_TraceStartIEs), + offsetof(struct ASN_NGAP_TraceStartIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TraceStartIEs_tag2el_585, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceStartIEs = { + "TraceStartIEs", + "TraceStartIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceStartIEs_tags_585, + sizeof(asn_DEF_ASN_NGAP_TraceStartIEs_tags_585) + /sizeof(asn_DEF_ASN_NGAP_TraceStartIEs_tags_585[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceStartIEs_tags_585, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceStartIEs_tags_585) + /sizeof(asn_DEF_ASN_NGAP_TraceStartIEs_tags_585[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceStartIEs_585, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceStartIEs_specs_585 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_592[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, choice.NGRANTraceID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRANTraceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRANTraceID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_592[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* NGRANTraceID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_592 = { + sizeof(struct ASN_NGAP_TraceFailureIndicationIEs__value), + offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_TraceFailureIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_TraceFailureIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_592, + 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_ASN_NGAP_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_ASN_NGAP_value_592, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_592 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceFailureIndicationIEs_589[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_590, memb_ASN_NGAP_id_constraint_589 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_TraceFailureIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_591, memb_ASN_NGAP_criticality_constraint_589 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_592, + select_TraceFailureIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_592, memb_ASN_NGAP_value_constraint_589 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceFailureIndicationIEs_tag2el_589[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceFailureIndicationIEs_specs_589 = { + sizeof(struct ASN_NGAP_TraceFailureIndicationIEs), + offsetof(struct ASN_NGAP_TraceFailureIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_TraceFailureIndicationIEs_tag2el_589, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceFailureIndicationIEs = { + "TraceFailureIndicationIEs", + "TraceFailureIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589, + sizeof(asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589) + /sizeof(asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589) + /sizeof(asn_DEF_ASN_NGAP_TraceFailureIndicationIEs_tags_589[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceFailureIndicationIEs_589, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceFailureIndicationIEs_specs_589 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_596[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs__value, choice.NGRANTraceID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRANTraceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRANTraceID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_596[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 } /* NGRANTraceID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_596 = { + sizeof(struct ASN_NGAP_DeactivateTraceIEs__value), + offsetof(struct ASN_NGAP_DeactivateTraceIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DeactivateTraceIEs__value, present), + sizeof(((struct ASN_NGAP_DeactivateTraceIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_596, + 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_ASN_NGAP_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_ASN_NGAP_value_596, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_596 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DeactivateTraceIEs_593[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_594, memb_ASN_NGAP_id_constraint_593 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DeactivateTraceIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_595, memb_ASN_NGAP_criticality_constraint_593 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DeactivateTraceIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_596, + select_DeactivateTraceIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_596, memb_ASN_NGAP_value_constraint_593 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DeactivateTraceIEs_tag2el_593[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DeactivateTraceIEs_specs_593 = { + sizeof(struct ASN_NGAP_DeactivateTraceIEs), + offsetof(struct ASN_NGAP_DeactivateTraceIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DeactivateTraceIEs_tag2el_593, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DeactivateTraceIEs = { + "DeactivateTraceIEs", + "DeactivateTraceIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593, + sizeof(asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593) + /sizeof(asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593[0]), /* 1 */ + asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593) + /sizeof(asn_DEF_ASN_NGAP_DeactivateTraceIEs_tags_593[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DeactivateTraceIEs_593, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DeactivateTraceIEs_specs_593 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_600[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.NGRANTraceID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGRANTraceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRANTraceID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.NGRAN_CGI), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGRAN-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.TransportLayerAddress), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransportLayerAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.PrivacyIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_PrivacyIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PrivacyIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, choice.URI_address), + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), + 0, + &asn_DEF_ASN_NGAP_URI_address, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "URI-address" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_600[] = { 0, 1, 4, 2, 5, 6, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_600[] = { 0, 1, 3, 6, 2, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_600[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 4, 0, 0 }, /* TransportLayerAddress */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* NGRANTraceID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* PrivacyIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)), 6, 0, 0 }, /* URI-address */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_600 = { + sizeof(struct ASN_NGAP_CellTrafficTraceIEs__value), + offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_CellTrafficTraceIEs__value, present), + sizeof(((struct ASN_NGAP_CellTrafficTraceIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_600, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_600, + asn_MAP_ASN_NGAP_value_from_canonical_600, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_600, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_600 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_CellTrafficTraceIEs_597[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_598, memb_ASN_NGAP_id_constraint_597 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_CellTrafficTraceIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_599, memb_ASN_NGAP_criticality_constraint_597 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_CellTrafficTraceIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_600, + select_CellTrafficTraceIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_600, memb_ASN_NGAP_value_constraint_597 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_CellTrafficTraceIEs_tag2el_597[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellTrafficTraceIEs_specs_597 = { + sizeof(struct ASN_NGAP_CellTrafficTraceIEs), + offsetof(struct ASN_NGAP_CellTrafficTraceIEs, _asn_ctx), + asn_MAP_ASN_NGAP_CellTrafficTraceIEs_tag2el_597, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellTrafficTraceIEs = { + "CellTrafficTraceIEs", + "CellTrafficTraceIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597, + sizeof(asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597) + /sizeof(asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597[0]), /* 1 */ + asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597) + /sizeof(asn_DEF_ASN_NGAP_CellTrafficTraceIEs_tags_597[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellTrafficTraceIEs_597, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellTrafficTraceIEs_specs_597 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_604[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs__value, choice.LocationReportingRequestType), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingRequestType" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_604[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* LocationReportingRequestType */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_604 = { + sizeof(struct ASN_NGAP_LocationReportingControlIEs__value), + offsetof(struct ASN_NGAP_LocationReportingControlIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_LocationReportingControlIEs__value, present), + sizeof(((struct ASN_NGAP_LocationReportingControlIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_604, + 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_ASN_NGAP_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_ASN_NGAP_value_604, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_604 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingControlIEs_601[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_602, memb_ASN_NGAP_id_constraint_601 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LocationReportingControlIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_603, memb_ASN_NGAP_criticality_constraint_601 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingControlIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_604, + select_LocationReportingControlIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_604, memb_ASN_NGAP_value_constraint_601 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingControlIEs_tag2el_601[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingControlIEs_specs_601 = { + sizeof(struct ASN_NGAP_LocationReportingControlIEs), + offsetof(struct ASN_NGAP_LocationReportingControlIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingControlIEs_tag2el_601, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingControlIEs = { + "LocationReportingControlIEs", + "LocationReportingControlIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601, + sizeof(asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingControlIEs_tags_601[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingControlIEs_601, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingControlIEs_specs_601 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_608[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_608[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_608 = { + sizeof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value), + offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_LocationReportingFailureIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_608, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_608, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_608 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingFailureIndicationIEs_605[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_606, memb_ASN_NGAP_id_constraint_605 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LocationReportingFailureIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_607, memb_ASN_NGAP_criticality_constraint_605 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_608, + select_LocationReportingFailureIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_608, memb_ASN_NGAP_value_constraint_605 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportingFailureIndicationIEs_tag2el_605[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingFailureIndicationIEs_specs_605 = { + sizeof(struct ASN_NGAP_LocationReportingFailureIndicationIEs), + offsetof(struct ASN_NGAP_LocationReportingFailureIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportingFailureIndicationIEs_tag2el_605, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs = { + "LocationReportingFailureIndicationIEs", + "LocationReportingFailureIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605, + sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605) + /sizeof(asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs_tags_605[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportingFailureIndicationIEs_605, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportingFailureIndicationIEs_specs_605 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_612[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs__value, choice.UEPresenceInAreaOfInterestList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEPresenceInAreaOfInterestList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs__value, choice.LocationReportingRequestType), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LocationReportingRequestType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "LocationReportingRequestType" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_612[] = { 0, 1, 3, 4, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_612[] = { 0, 1, 4, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_612[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* UEPresenceInAreaOfInterestList */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* LocationReportingRequestType */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_612 = { + sizeof(struct ASN_NGAP_LocationReportIEs__value), + offsetof(struct ASN_NGAP_LocationReportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_LocationReportIEs__value, present), + sizeof(((struct ASN_NGAP_LocationReportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_612, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_612, + asn_MAP_ASN_NGAP_value_from_canonical_612, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_612, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_612 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportIEs_609[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_610, memb_ASN_NGAP_id_constraint_609 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_LocationReportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_611, memb_ASN_NGAP_criticality_constraint_609 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_LocationReportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_612, + select_LocationReportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_612, memb_ASN_NGAP_value_constraint_609 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_LocationReportIEs_tags_609[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_LocationReportIEs_tag2el_609[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportIEs_specs_609 = { + sizeof(struct ASN_NGAP_LocationReportIEs), + offsetof(struct ASN_NGAP_LocationReportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_LocationReportIEs_tag2el_609, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportIEs = { + "LocationReportIEs", + "LocationReportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_LocationReportIEs_tags_609, + sizeof(asn_DEF_ASN_NGAP_LocationReportIEs_tags_609) + /sizeof(asn_DEF_ASN_NGAP_LocationReportIEs_tags_609[0]), /* 1 */ + asn_DEF_ASN_NGAP_LocationReportIEs_tags_609, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_LocationReportIEs_tags_609) + /sizeof(asn_DEF_ASN_NGAP_LocationReportIEs_tags_609[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LocationReportIEs_609, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LocationReportIEs_specs_609 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_616[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_616[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 } /* RAN-UE-NGAP-ID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_616 = { + sizeof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value), + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_616, + 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_ASN_NGAP_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_ASN_NGAP_value_616, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_616 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UETNLABindingReleaseRequestIEs_613[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_614, memb_ASN_NGAP_id_constraint_613 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UETNLABindingReleaseRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_615, memb_ASN_NGAP_criticality_constraint_613 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_616, + select_UETNLABindingReleaseRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_616, memb_ASN_NGAP_value_constraint_613 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UETNLABindingReleaseRequestIEs_tag2el_613[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UETNLABindingReleaseRequestIEs_specs_613 = { + sizeof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs), + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UETNLABindingReleaseRequestIEs_tag2el_613, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs = { + "UETNLABindingReleaseRequestIEs", + "UETNLABindingReleaseRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613, + sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613) + /sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613[0]), /* 1 */ + asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613) + /sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs_tags_613[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UETNLABindingReleaseRequestIEs_613, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UETNLABindingReleaseRequestIEs_specs_613 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_620[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, choice.UERadioCapabilityForPaging), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityForPaging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityForPaging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, choice.UERadioCapability_1), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_620[] = { 0, 1, 2, 4, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_620[] = { 0, 1, 2, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_620[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* UERadioCapabilityForPaging */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_620 = { + sizeof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value), + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_620, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_620, + asn_MAP_ASN_NGAP_value_from_canonical_620, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_620, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_620 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_617[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_618, memb_ASN_NGAP_id_constraint_617 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityInfoIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_619, memb_ASN_NGAP_criticality_constraint_617 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_620, + select_UERadioCapabilityInfoIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_620, memb_ASN_NGAP_value_constraint_617 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tag2el_617[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_specs_617 = { + sizeof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tag2el_617, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs = { + "UERadioCapabilityInfoIndicationIEs", + "UERadioCapabilityInfoIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_tags_617[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_617, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_specs_617 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_624[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_624[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 } /* UERadioCapabilityID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_624 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_624, + 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_ASN_NGAP_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_ASN_NGAP_value_624, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_624 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequestIEs_621[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_622, memb_ASN_NGAP_id_constraint_621 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityCheckRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_623, memb_ASN_NGAP_criticality_constraint_621 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_624, + select_UERadioCapabilityCheckRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_624, memb_ASN_NGAP_value_constraint_621 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tag2el_621[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequestIEs_specs_621 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tag2el_621, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs = { + "UERadioCapabilityCheckRequestIEs", + "UERadioCapabilityCheckRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs_tags_621[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequestIEs_621, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequestIEs_specs_621 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_628[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, choice.IMSVoiceSupportIndicator), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_IMSVoiceSupportIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "IMSVoiceSupportIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_628[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* IMSVoiceSupportIndicator */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_628 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_628, + 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_ASN_NGAP_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_ASN_NGAP_value_628, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_628 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponseIEs_625[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_626, memb_ASN_NGAP_id_constraint_625 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityCheckResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_627, memb_ASN_NGAP_criticality_constraint_625 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_628, + select_UERadioCapabilityCheckResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_628, memb_ASN_NGAP_value_constraint_625 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tag2el_625[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponseIEs_specs_625 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tag2el_625, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs = { + "UERadioCapabilityCheckResponseIEs", + "UERadioCapabilityCheckResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs_tags_625[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponseIEs_625, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponseIEs_specs_625 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_632[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, choice.PDUSessionResourceSecondaryRATUsageList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSecondaryRATUsageList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSecondaryRATUsageList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, choice.HandoverFlag), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverFlag, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverFlag" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, choice.UserLocationInformation), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_UserLocationInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UserLocationInformation" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_632[] = { 0, 1, 3, 2, 4 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_632[] = { 0, 1, 3, 2, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_632[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* HandoverFlag */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* PDUSessionResourceSecondaryRATUsageList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 4, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 4, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_632 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value, present), + sizeof(((struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_632, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_632, + asn_MAP_ASN_NGAP_value_from_canonical_632, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_632, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_632 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportIEs_629[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_630, memb_ASN_NGAP_id_constraint_629 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_SecondaryRATDataUsageReportIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_631, memb_ASN_NGAP_criticality_constraint_629 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_632, + select_SecondaryRATDataUsageReportIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_632, memb_ASN_NGAP_value_constraint_629 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportIEs_tag2el_629[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportIEs_specs_629 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportIEs, _asn_ctx), + asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportIEs_tag2el_629, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs = { + "SecondaryRATDataUsageReportIEs", + "SecondaryRATDataUsageReportIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs_tags_629[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportIEs_629, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportIEs_specs_629 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_636[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs__value, choice.RIMInformationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RIMInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RIMInformationTransfer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_636[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RIMInformationTransfer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_636 = { + sizeof(struct ASN_NGAP_UplinkRIMInformationTransferIEs__value), + offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs__value, present), + sizeof(((struct ASN_NGAP_UplinkRIMInformationTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_636, + 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_ASN_NGAP_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_ASN_NGAP_value_636, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_636 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRIMInformationTransferIEs_633[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_634, memb_ASN_NGAP_id_constraint_633 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UplinkRIMInformationTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_635, memb_ASN_NGAP_criticality_constraint_633 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_636, + select_UplinkRIMInformationTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_636, memb_ASN_NGAP_value_constraint_633 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRIMInformationTransferIEs_tag2el_633[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRIMInformationTransferIEs_specs_633 = { + sizeof(struct ASN_NGAP_UplinkRIMInformationTransferIEs), + offsetof(struct ASN_NGAP_UplinkRIMInformationTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRIMInformationTransferIEs_tag2el_633, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs = { + "UplinkRIMInformationTransferIEs", + "UplinkRIMInformationTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633, + sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633) + /sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633) + /sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs_tags_633[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRIMInformationTransferIEs_633, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRIMInformationTransferIEs_specs_633 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_640[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value, choice.RIMInformationTransfer), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RIMInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RIMInformationTransfer" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_640[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RIMInformationTransfer */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_640 = { + sizeof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value), + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value, present), + sizeof(((struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_640, + 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_ASN_NGAP_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_ASN_NGAP_value_640, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_640 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRIMInformationTransferIEs_637[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_638, memb_ASN_NGAP_id_constraint_637 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DownlinkRIMInformationTransferIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_639, memb_ASN_NGAP_criticality_constraint_637 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_640, + select_DownlinkRIMInformationTransferIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_640, memb_ASN_NGAP_value_constraint_637 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DownlinkRIMInformationTransferIEs_tag2el_637[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRIMInformationTransferIEs_specs_637 = { + sizeof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs), + offsetof(struct ASN_NGAP_DownlinkRIMInformationTransferIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DownlinkRIMInformationTransferIEs_tag2el_637, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs = { + "DownlinkRIMInformationTransferIEs", + "DownlinkRIMInformationTransferIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637, + sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637[0]), /* 1 */ + asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637) + /sizeof(asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs_tags_637[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DownlinkRIMInformationTransferIEs_637, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DownlinkRIMInformationTransferIEs_specs_637 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_644[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.EndIndication), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_EndIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "EndIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.S_NSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "S-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.UE_DifferentiationInfo), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_DifferentiationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UE-DifferentiationInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.DL_CP_SecurityInformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DL_CP_SecurityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DL-CP-SecurityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.NB_IoT_UEPriority), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_NB_IoT_UEPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NB-IoT-UEPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.Enhanced_CoverageRestriction), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Enhanced_CoverageRestriction, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Enhanced-CoverageRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.CEmodeBrestricted), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_CEmodeBrestricted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CEmodeBrestricted" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.MaskedIMEISV), + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_MaskedIMEISV, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MaskedIMEISV" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, choice.AMFName), + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFName" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_644[] = { 0, 1, 8, 12, 2, 11, 3, 9, 10, 4, 5, 6, 7, 13 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_644[] = { 0, 1, 4, 6, 9, 10, 11, 12, 2, 7, 8, 5, 3, 13 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_644[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 2 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 1 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 8, -2, 0 }, /* NB-IoT-UEPriority */ + { (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), 12, 0, 0 }, /* MaskedIMEISV */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 11, -1, 0 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 2 }, /* EndIndication */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 9, -1, 1 }, /* Enhanced-CoverageRestriction */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 10, -2, 0 }, /* CEmodeBrestricted */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, 0, 3 }, /* S-NSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -1, 2 }, /* AllowedNSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -2, 1 }, /* UE-DifferentiationInfo */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -3, 0 }, /* DL-CP-SecurityInformation */ + { (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), 13, 0, 0 } /* AMFName */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_644 = { + sizeof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value), + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_644, + 14, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_644, + asn_MAP_ASN_NGAP_value_from_canonical_644, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_644, + 14, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_644 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_ConnectionEstablishmentIndicationIEs_641[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_642, memb_ASN_NGAP_id_constraint_641 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_ConnectionEstablishmentIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_643, memb_ASN_NGAP_criticality_constraint_641 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_644, + select_ConnectionEstablishmentIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_644, memb_ASN_NGAP_value_constraint_641 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tag2el_641[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ConnectionEstablishmentIndicationIEs_specs_641 = { + sizeof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs), + offsetof(struct ASN_NGAP_ConnectionEstablishmentIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tag2el_641, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs = { + "ConnectionEstablishmentIndicationIEs", + "ConnectionEstablishmentIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641, + sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641) + /sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641[0]), /* 1 */ + asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641) + /sizeof(asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs_tags_641[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ConnectionEstablishmentIndicationIEs_641, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ConnectionEstablishmentIndicationIEs_specs_641 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_648[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_648[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 0 } /* UERadioCapabilityID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_648 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_648, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_648 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_645[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_646, memb_ASN_NGAP_id_constraint_645 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityIDMappingRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_647, memb_ASN_NGAP_criticality_constraint_645 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_648, + select_UERadioCapabilityIDMappingRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_648, memb_ASN_NGAP_value_constraint_645 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tag2el_645[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_specs_645 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tag2el_645, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs = { + "UERadioCapabilityIDMappingRequestIEs", + "UERadioCapabilityIDMappingRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_tags_645[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_645, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_specs_645 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_652[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value, choice.UERadioCapabilityID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value, choice.UERadioCapability), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapability, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapability" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_652[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, 0, 1 }, /* UERadioCapabilityID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, -1, 0 }, /* UERadioCapability */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_652 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value, present), + sizeof(((struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_652, + 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_ASN_NGAP_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_ASN_NGAP_value_652, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_652 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_649[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_650, memb_ASN_NGAP_id_constraint_649 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_UERadioCapabilityIDMappingResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_651, memb_ASN_NGAP_criticality_constraint_649 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_652, + select_UERadioCapabilityIDMappingResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_652, memb_ASN_NGAP_value_constraint_649 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tag2el_649[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_specs_649 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tag2el_649, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs = { + "UERadioCapabilityIDMappingResponseIEs", + "UERadioCapabilityIDMappingResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_tags_649[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_649, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_specs_649 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_656[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, choice.AMF_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, choice.RAN_UE_NGAP_ID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RAN-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, choice.S_NSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "S-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, choice.AllowedNSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AllowedNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AllowedNSSAI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_656[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* AMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, -1, 0 }, /* RAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* S-NSSAI */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* AllowedNSSAI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_656 = { + sizeof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value), + offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs__value, present), + sizeof(((struct ASN_NGAP_AMFCPRelocationIndicationIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_656, + 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_ASN_NGAP_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_ASN_NGAP_value_656, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_656 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFCPRelocationIndicationIEs_653[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_654, memb_ASN_NGAP_id_constraint_653 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_AMFCPRelocationIndicationIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_655, memb_ASN_NGAP_criticality_constraint_653 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_656, + select_AMFCPRelocationIndicationIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_656, memb_ASN_NGAP_value_constraint_653 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_AMFCPRelocationIndicationIEs_tag2el_653[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFCPRelocationIndicationIEs_specs_653 = { + sizeof(struct ASN_NGAP_AMFCPRelocationIndicationIEs), + offsetof(struct ASN_NGAP_AMFCPRelocationIndicationIEs, _asn_ctx), + asn_MAP_ASN_NGAP_AMFCPRelocationIndicationIEs_tag2el_653, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs = { + "AMFCPRelocationIndicationIEs", + "AMFCPRelocationIndicationIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653, + sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653) + /sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653[0]), /* 1 */ + asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653) + /sizeof(asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs_tags_653[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFCPRelocationIndicationIEs_653, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFCPRelocationIndicationIEs_specs_653 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_660[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, choice.S_NSSAI), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "S-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, choice.MBS_ServiceArea), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ServiceArea" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constr_646, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constraint_660 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_660[] = { 3, 0, 1, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_660[] = { 1, 2, 3, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_660[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 }, /* S-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_660 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_660, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_660, + asn_MAP_ASN_NGAP_value_from_canonical_660, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_660, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_660 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupRequestIEs_657[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_658, memb_ASN_NGAP_id_constraint_657 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionSetupRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_659, memb_ASN_NGAP_criticality_constraint_657 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_660, + select_BroadcastSessionSetupRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_660, memb_ASN_NGAP_value_constraint_657 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupRequestIEs_tag2el_657[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupRequestIEs_specs_657 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs), + offsetof(struct ASN_NGAP_BroadcastSessionSetupRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupRequestIEs_tag2el_657, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs = { + "BroadcastSessionSetupRequestIEs", + "BroadcastSessionSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs_tags_657[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupRequestIEs_657, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupRequestIEs_specs_657 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_664[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constr_648, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constraint_664 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_664[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_664[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_664[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_664 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_664, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_664, + asn_MAP_ASN_NGAP_value_from_canonical_664, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_664, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_664 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupResponseIEs_661[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_662, memb_ASN_NGAP_id_constraint_661 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionSetupResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_663, memb_ASN_NGAP_criticality_constraint_661 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_664, + select_BroadcastSessionSetupResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_664, memb_ASN_NGAP_value_constraint_661 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupResponseIEs_tag2el_661[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupResponseIEs_specs_661 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs), + offsetof(struct ASN_NGAP_BroadcastSessionSetupResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupResponseIEs_tag2el_661, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs = { + "BroadcastSessionSetupResponseIEs", + "BroadcastSessionSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs_tags_661[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupResponseIEs_661, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupResponseIEs_specs_661 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_668[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constr_651, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constraint_668 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer )" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_668[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_668[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_668[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer ) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_668 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_668, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_668, + asn_MAP_ASN_NGAP_value_from_canonical_668, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_668, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_668 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupFailureIEs_665[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_666, memb_ASN_NGAP_id_constraint_665 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionSetupFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_667, memb_ASN_NGAP_criticality_constraint_665 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_668, + select_BroadcastSessionSetupFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_668, memb_ASN_NGAP_value_constraint_665 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionSetupFailureIEs_tag2el_665[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupFailureIEs_specs_665 = { + sizeof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs), + offsetof(struct ASN_NGAP_BroadcastSessionSetupFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionSetupFailureIEs_tag2el_665, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs = { + "BroadcastSessionSetupFailureIEs", + "BroadcastSessionSetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs_tags_665[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionSetupFailureIEs_665, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionSetupFailureIEs_specs_665 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_672[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value, choice.MBS_ServiceArea), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ServiceArea" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constr_656, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer__constraint_672 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_672[] = { 2, 0, 1 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_672[] = { 1, 2, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_672[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_672 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_672, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_672, + asn_MAP_ASN_NGAP_value_from_canonical_672, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_672, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_672 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationRequestIEs_669[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_670, memb_ASN_NGAP_id_constraint_669 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionModificationRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_671, memb_ASN_NGAP_criticality_constraint_669 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_672, + select_BroadcastSessionModificationRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_672, memb_ASN_NGAP_value_constraint_669 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationRequestIEs_tag2el_669[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationRequestIEs_specs_669 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs), + offsetof(struct ASN_NGAP_BroadcastSessionModificationRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationRequestIEs_tag2el_669, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs = { + "BroadcastSessionModificationRequestIEs", + "BroadcastSessionModificationRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs_tags_669[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationRequestIEs_669, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationRequestIEs_specs_669 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_676[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constr_658, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer__constraint_676 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_676[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_676[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_676[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModResponseTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_676 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_676, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_676, + asn_MAP_ASN_NGAP_value_from_canonical_676, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_676, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_676 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationResponseIEs_673[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_674, memb_ASN_NGAP_id_constraint_673 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionModificationResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_675, memb_ASN_NGAP_criticality_constraint_673 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_676, + select_BroadcastSessionModificationResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_676, memb_ASN_NGAP_value_constraint_673 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationResponseIEs_tag2el_673[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationResponseIEs_specs_673 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs), + offsetof(struct ASN_NGAP_BroadcastSessionModificationResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationResponseIEs_tag2el_673, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs = { + "BroadcastSessionModificationResponseIEs", + "BroadcastSessionModificationResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs_tags_673[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationResponseIEs_673, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationResponseIEs_specs_673 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_680[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constr_661, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer__constraint_680 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_680[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_680[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_680[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionSetupOrModFailureTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_680 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_680, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_680, + asn_MAP_ASN_NGAP_value_from_canonical_680, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_680 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_680, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_680 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationFailureIEs_677[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_678, memb_ASN_NGAP_id_constraint_677 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionModificationFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_679, memb_ASN_NGAP_criticality_constraint_677 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_680, + select_BroadcastSessionModificationFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_680, memb_ASN_NGAP_value_constraint_677 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionModificationFailureIEs_tag2el_677[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationFailureIEs_specs_677 = { + sizeof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs), + offsetof(struct ASN_NGAP_BroadcastSessionModificationFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionModificationFailureIEs_tag2el_677, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs = { + "BroadcastSessionModificationFailureIEs", + "BroadcastSessionModificationFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs_tags_677[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionModificationFailureIEs_677, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionModificationFailureIEs_specs_677 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_684[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_684[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_684 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_684, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_684 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_684, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_684 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequestIEs_681[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_682, memb_ASN_NGAP_id_constraint_681 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionReleaseRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_683, memb_ASN_NGAP_criticality_constraint_681 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_684, + select_BroadcastSessionReleaseRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_684, memb_ASN_NGAP_value_constraint_681 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tag2el_681[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequestIEs_specs_681 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tag2el_681, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs = { + "BroadcastSessionReleaseRequestIEs", + "BroadcastSessionReleaseRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs_tags_681[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequestIEs_681, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequestIEs_specs_681 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_688[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_688[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_688 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_688, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_688 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_688, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_688 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_685[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_686, memb_ASN_NGAP_id_constraint_685 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionReleaseRequiredIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_687, memb_ASN_NGAP_criticality_constraint_685 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_688, + select_BroadcastSessionReleaseRequiredIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_688, memb_ASN_NGAP_value_constraint_685 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tag2el_685[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_specs_685 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tag2el_685, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs = { + "BroadcastSessionReleaseRequiredIEs", + "BroadcastSessionReleaseRequiredIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_tags_685[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_685, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_specs_685 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_692[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value, choice.OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer__constr_669, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer__constraint_692 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBSSessionReleaseResponseTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_692[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_692[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_692[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MBSSessionReleaseResponseTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_692 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value, present), + sizeof(((struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_692, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_692, + asn_MAP_ASN_NGAP_value_from_canonical_692, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_692 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_692, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_692 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponseIEs_689[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_690, memb_ASN_NGAP_id_constraint_689 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_BroadcastSessionReleaseResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_691, memb_ASN_NGAP_criticality_constraint_689 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_692, + select_BroadcastSessionReleaseResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_692, memb_ASN_NGAP_value_constraint_689 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tag2el_689[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponseIEs_specs_689 = { + sizeof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs), + offsetof(struct ASN_NGAP_BroadcastSessionReleaseResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tag2el_689, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs = { + "BroadcastSessionReleaseResponseIEs", + "BroadcastSessionReleaseResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689, + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689[0]), /* 1 */ + asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689) + /sizeof(asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs_tags_689[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponseIEs_689, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponseIEs_specs_689 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_696[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs__value, choice.OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer__constr_673, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer__constraint_696 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBS-DistributionSetupRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_696[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_696[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_696[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MBS-DistributionSetupRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MBS-SessionID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_696 = { + sizeof(struct ASN_NGAP_DistributionSetupRequestIEs__value), + offsetof(struct ASN_NGAP_DistributionSetupRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DistributionSetupRequestIEs__value, present), + sizeof(((struct ASN_NGAP_DistributionSetupRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_696, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_696, + asn_MAP_ASN_NGAP_value_from_canonical_696, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_696 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_696, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_696 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupRequestIEs_693[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_694, memb_ASN_NGAP_id_constraint_693 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DistributionSetupRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_695, memb_ASN_NGAP_criticality_constraint_693 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_696, + select_DistributionSetupRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_696, memb_ASN_NGAP_value_constraint_693 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupRequestIEs_tag2el_693[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupRequestIEs_specs_693 = { + sizeof(struct ASN_NGAP_DistributionSetupRequestIEs), + offsetof(struct ASN_NGAP_DistributionSetupRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupRequestIEs_tag2el_693, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupRequestIEs = { + "DistributionSetupRequestIEs", + "DistributionSetupRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupRequestIEs_tags_693[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupRequestIEs_693, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupRequestIEs_specs_693 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_700[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, choice.OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer__constr_676, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer__constraint_700 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBS-DistributionSetupResponseTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_700[] = { 1, 2, 0, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_700[] = { 2, 0, 1, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_700[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MBS-DistributionSetupResponseTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_700 = { + sizeof(struct ASN_NGAP_DistributionSetupResponseIEs__value), + offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DistributionSetupResponseIEs__value, present), + sizeof(((struct ASN_NGAP_DistributionSetupResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_700, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_700, + asn_MAP_ASN_NGAP_value_from_canonical_700, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_700 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_700, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_700 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupResponseIEs_697[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_698, memb_ASN_NGAP_id_constraint_697 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DistributionSetupResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_699, memb_ASN_NGAP_criticality_constraint_697 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_700, + select_DistributionSetupResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_700, memb_ASN_NGAP_value_constraint_697 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupResponseIEs_tag2el_697[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupResponseIEs_specs_697 = { + sizeof(struct ASN_NGAP_DistributionSetupResponseIEs), + offsetof(struct ASN_NGAP_DistributionSetupResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupResponseIEs_tag2el_697, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupResponseIEs = { + "DistributionSetupResponseIEs", + "DistributionSetupResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupResponseIEs_tags_697[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupResponseIEs_697, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupResponseIEs_specs_697 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_704[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, choice.OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer__constr_680, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer__constraint_704 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBS-DistributionSetupUnsuccessfulTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_704[] = { 1, 2, 0, 4, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_704[] = { 2, 0, 1, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_704[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MBS-DistributionSetupUnsuccessfulTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnostics */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_704 = { + sizeof(struct ASN_NGAP_DistributionSetupFailureIEs__value), + offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DistributionSetupFailureIEs__value, present), + sizeof(((struct ASN_NGAP_DistributionSetupFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_704, + 10, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_704, + asn_MAP_ASN_NGAP_value_from_canonical_704, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_704 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_704, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_704 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupFailureIEs_701[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_702, memb_ASN_NGAP_id_constraint_701 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DistributionSetupFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_703, memb_ASN_NGAP_criticality_constraint_701 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_704, + select_DistributionSetupFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_704, memb_ASN_NGAP_value_constraint_701 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionSetupFailureIEs_tag2el_701[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupFailureIEs_specs_701 = { + sizeof(struct ASN_NGAP_DistributionSetupFailureIEs), + offsetof(struct ASN_NGAP_DistributionSetupFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionSetupFailureIEs_tag2el_701, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupFailureIEs = { + "DistributionSetupFailureIEs", + "DistributionSetupFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701, + sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701) + /sizeof(asn_DEF_ASN_NGAP_DistributionSetupFailureIEs_tags_701[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionSetupFailureIEs_701, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionSetupFailureIEs_specs_701 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_708[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, choice.OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer__constr_685, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer__constraint_708 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MBS-DistributionReleaseRequestTransfer)" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_708[] = { 1, 2, 0, 3 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_708[] = { 2, 0, 1, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_708[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MBS-DistributionReleaseRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_708 = { + sizeof(struct ASN_NGAP_DistributionReleaseRequestIEs__value), + offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs__value, present), + sizeof(((struct ASN_NGAP_DistributionReleaseRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_708, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_708, + asn_MAP_ASN_NGAP_value_from_canonical_708, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_708 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_708, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_708 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseRequestIEs_705[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_706, memb_ASN_NGAP_id_constraint_705 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DistributionReleaseRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_707, memb_ASN_NGAP_criticality_constraint_705 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_708, + select_DistributionReleaseRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_708, memb_ASN_NGAP_value_constraint_705 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionReleaseRequestIEs_tag2el_705[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseRequestIEs_specs_705 = { + sizeof(struct ASN_NGAP_DistributionReleaseRequestIEs), + offsetof(struct ASN_NGAP_DistributionReleaseRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionReleaseRequestIEs_tag2el_705, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs = { + "DistributionReleaseRequestIEs", + "DistributionReleaseRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705, + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs_tags_705[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionReleaseRequestIEs_705, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionReleaseRequestIEs_specs_705 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_712[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_712[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_712[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_712[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_712 = { + sizeof(struct ASN_NGAP_DistributionReleaseResponseIEs__value), + offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs__value, present), + sizeof(((struct ASN_NGAP_DistributionReleaseResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_712, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_712, + asn_MAP_ASN_NGAP_value_from_canonical_712, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_712 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_712, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_712 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseResponseIEs_709[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_710, memb_ASN_NGAP_id_constraint_709 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_DistributionReleaseResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_711, memb_ASN_NGAP_criticality_constraint_709 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_712, + select_DistributionReleaseResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_712, memb_ASN_NGAP_value_constraint_709 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_DistributionReleaseResponseIEs_tag2el_709[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseResponseIEs_specs_709 = { + sizeof(struct ASN_NGAP_DistributionReleaseResponseIEs), + offsetof(struct ASN_NGAP_DistributionReleaseResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_DistributionReleaseResponseIEs_tag2el_709, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs = { + "DistributionReleaseResponseIEs", + "DistributionReleaseResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709, + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709[0]), /* 1 */ + asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709) + /sizeof(asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs_tags_709[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DistributionReleaseResponseIEs_709, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DistributionReleaseResponseIEs_specs_709 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_716[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs__value, choice.OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer__constr_691, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer__constraint_716 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MulticastSessionActivationRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_716[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_716[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_716[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MulticastSessionActivationRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MBS-SessionID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_716 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequestIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionActivationRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_716, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_716, + asn_MAP_ASN_NGAP_value_from_canonical_716, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_716 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_716, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_716 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequestIEs_713[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_714, memb_ASN_NGAP_id_constraint_713 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionActivationRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_715, memb_ASN_NGAP_criticality_constraint_713 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_716, + select_MulticastSessionActivationRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_716, memb_ASN_NGAP_value_constraint_713 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationRequestIEs_tag2el_713[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequestIEs_specs_713 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationRequestIEs), + offsetof(struct ASN_NGAP_MulticastSessionActivationRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationRequestIEs_tag2el_713, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs = { + "MulticastSessionActivationRequestIEs", + "MulticastSessionActivationRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs_tags_713[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationRequestIEs_713, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationRequestIEs_specs_713 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_720[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_720[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_720 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationResponseIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionActivationResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_720, + 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_ASN_NGAP_value_720 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_720, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_720 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationResponseIEs_717[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_718, memb_ASN_NGAP_id_constraint_717 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionActivationResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_719, memb_ASN_NGAP_criticality_constraint_717 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_720, + select_MulticastSessionActivationResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_720, memb_ASN_NGAP_value_constraint_717 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationResponseIEs_tag2el_717[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationResponseIEs_specs_717 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationResponseIEs), + offsetof(struct ASN_NGAP_MulticastSessionActivationResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationResponseIEs_tag2el_717, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs = { + "MulticastSessionActivationResponseIEs", + "MulticastSessionActivationResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs_tags_717[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationResponseIEs_717, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationResponseIEs_specs_717 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_724[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_724[] = { 0, 2, 1 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_724[] = { 0, 2, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_724[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_724 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionActivationFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_724, + 8, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_724, + asn_MAP_ASN_NGAP_value_from_canonical_724, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_724 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_724, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_724 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationFailureIEs_721[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_722, memb_ASN_NGAP_id_constraint_721 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionActivationFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_723, memb_ASN_NGAP_criticality_constraint_721 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_724, + select_MulticastSessionActivationFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_724, memb_ASN_NGAP_value_constraint_721 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionActivationFailureIEs_tag2el_721[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationFailureIEs_specs_721 = { + sizeof(struct ASN_NGAP_MulticastSessionActivationFailureIEs), + offsetof(struct ASN_NGAP_MulticastSessionActivationFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionActivationFailureIEs_tag2el_721, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs = { + "MulticastSessionActivationFailureIEs", + "MulticastSessionActivationFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs_tags_721[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionActivationFailureIEs_721, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionActivationFailureIEs_specs_721 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_728[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value, choice.OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer__constr_698, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer__constraint_728 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MulticastSessionDeactivationRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_728[] = { 1, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_728[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_728[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* OCTET STRING (CONTAINING MulticastSessionDeactivationRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MBS-SessionID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_728 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_728, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_728, + asn_MAP_ASN_NGAP_value_from_canonical_728, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_728 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_728, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_728 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestIEs_725[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_726, memb_ASN_NGAP_id_constraint_725 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionDeactivationRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_727, memb_ASN_NGAP_criticality_constraint_725 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_728, + select_MulticastSessionDeactivationRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_728, memb_ASN_NGAP_value_constraint_725 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tag2el_725[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestIEs_specs_725 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tag2el_725, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs = { + "MulticastSessionDeactivationRequestIEs", + "MulticastSessionDeactivationRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs_tags_725[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestIEs_725, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestIEs_specs_725 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_732[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_732[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_732 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_732, + 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_ASN_NGAP_value_732 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_732, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_732 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponseIEs_729[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_730, memb_ASN_NGAP_id_constraint_729 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionDeactivationResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_731, memb_ASN_NGAP_criticality_constraint_729 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_732, + select_MulticastSessionDeactivationResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_732, memb_ASN_NGAP_value_constraint_729 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tag2el_729[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponseIEs_specs_729 = { + sizeof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs), + offsetof(struct ASN_NGAP_MulticastSessionDeactivationResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tag2el_729, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs = { + "MulticastSessionDeactivationResponseIEs", + "MulticastSessionDeactivationResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs_tags_729[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponseIEs_729, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponseIEs_specs_729 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_736[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value, choice.OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer_), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer__constr_703, memb_ASN_NGAP_OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer__constraint_736 }, + 0, 0, /* No default value */ + "OCTET STRING (CONTAINING MulticastSessionUpdateRequestTransfer)" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_736[] = { 1, 2, 0 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_736[] = { 2, 0, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_736[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 0 }, /* OCTET STRING (CONTAINING MulticastSessionUpdateRequestTransfer) */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MBS-SessionID */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_736 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_736, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_736, + asn_MAP_ASN_NGAP_value_from_canonical_736, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_736 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_736, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_736 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestIEs_733[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_734, memb_ASN_NGAP_id_constraint_733 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionUpdateRequestIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_735, memb_ASN_NGAP_criticality_constraint_733 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_736, + select_MulticastSessionUpdateRequestIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_736, memb_ASN_NGAP_value_constraint_733 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestIEs_tag2el_733[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestIEs_specs_733 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs), + offsetof(struct ASN_NGAP_MulticastSessionUpdateRequestIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateRequestIEs_tag2el_733, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs = { + "MulticastSessionUpdateRequestIEs", + "MulticastSessionUpdateRequestIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs_tags_733[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestIEs_733, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestIEs_specs_733 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_740[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_740[] = { 1, 0, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_740[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_740[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnostics */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_740 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_740, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_740, + asn_MAP_ASN_NGAP_value_from_canonical_740, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_740 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_740, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_740 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateResponseIEs_737[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_738, memb_ASN_NGAP_id_constraint_737 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionUpdateResponseIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_739, memb_ASN_NGAP_criticality_constraint_737 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_740, + select_MulticastSessionUpdateResponseIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_740, memb_ASN_NGAP_value_constraint_737 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateResponseIEs_tag2el_737[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateResponseIEs_specs_737 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs), + offsetof(struct ASN_NGAP_MulticastSessionUpdateResponseIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateResponseIEs_tag2el_737, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs = { + "MulticastSessionUpdateResponseIEs", + "MulticastSessionUpdateResponseIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs_tags_737[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateResponseIEs_737, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateResponseIEs_specs_737 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_744[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, choice.MBS_AreaSessionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_AreaSessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-AreaSessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, choice.Cause), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "Cause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, choice.CriticalityDiagnostics), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_CriticalityDiagnostics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnostics" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_744[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_744[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_744[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* MBS-AreaSessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (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 }, /* nas */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_744 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value), + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_744, + 9, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_744, + asn_MAP_ASN_NGAP_value_from_canonical_744, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_744 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_744, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_744 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateFailureIEs_741[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_742, memb_ASN_NGAP_id_constraint_741 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastSessionUpdateFailureIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_743, memb_ASN_NGAP_criticality_constraint_741 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_744, + select_MulticastSessionUpdateFailureIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_744, memb_ASN_NGAP_value_constraint_741 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastSessionUpdateFailureIEs_tag2el_741[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateFailureIEs_specs_741 = { + sizeof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs), + offsetof(struct ASN_NGAP_MulticastSessionUpdateFailureIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastSessionUpdateFailureIEs_tag2el_741, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs = { + "MulticastSessionUpdateFailureIEs", + "MulticastSessionUpdateFailureIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741, + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741) + /sizeof(asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs_tags_741[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastSessionUpdateFailureIEs_741, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastSessionUpdateFailureIEs_specs_741 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_NGAP_value_748[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs__value, choice.MBS_SessionID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MBS_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-SessionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs__value, choice.MBS_ServiceArea), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_NGAP_MBS_ServiceArea, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MBS-ServiceArea" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs__value, choice.MulticastGroupPagingAreaList), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastGroupPagingAreaList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastGroupPagingAreaList" + }, +}; +static const unsigned asn_MAP_ASN_NGAP_value_to_canonical_748[] = { 0, 2, 1 }; +static const unsigned asn_MAP_ASN_NGAP_value_from_canonical_748[] = { 0, 2, 1 }; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_748[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* MBS-SessionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 }, /* MulticastGroupPagingAreaList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* locationindependent */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* locationdependent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_748 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingIEs__value), + offsetof(struct ASN_NGAP_MulticastGroupPagingIEs__value, _asn_ctx), + offsetof(struct ASN_NGAP_MulticastGroupPagingIEs__value, present), + sizeof(((struct ASN_NGAP_MulticastGroupPagingIEs__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_748, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_value_to_canonical_748, + asn_MAP_ASN_NGAP_value_from_canonical_748, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_value_748 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_ASN_NGAP_value_748, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_748 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingIEs_745[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, id), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_ProtocolIE_ID, + 0, + { 0, &asn_PER_memb_ASN_NGAP_id_constr_746, memb_ASN_NGAP_id_constraint_745 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, criticality), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_NGAP_Criticality, + select_MulticastGroupPagingIEs_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_747, memb_ASN_NGAP_criticality_constraint_745 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, value), + -1 /* Ambiguous tag (ANY?) */, + 0, + &asn_DEF_ASN_NGAP_value_748, + select_MulticastGroupPagingIEs_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_748, memb_ASN_NGAP_value_constraint_745 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_MulticastGroupPagingIEs_tag2el_745[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 } /* criticality */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingIEs_specs_745 = { + sizeof(struct ASN_NGAP_MulticastGroupPagingIEs), + offsetof(struct ASN_NGAP_MulticastGroupPagingIEs, _asn_ctx), + asn_MAP_ASN_NGAP_MulticastGroupPagingIEs_tag2el_745, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingIEs = { + "MulticastGroupPagingIEs", + "MulticastGroupPagingIEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745, + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745[0]), /* 1 */ + asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745) + /sizeof(asn_DEF_ASN_NGAP_MulticastGroupPagingIEs_tags_745[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MulticastGroupPagingIEs_745, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MulticastGroupPagingIEs_specs_745 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.h new file mode 100644 index 0000000..2da78a0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-Field.h @@ -0,0 +1,5682 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_Field_H_ +#define _ASN_NGAP_ProtocolIE_Field_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-ID.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include +#include +#include +#include "ASN_NGAP_EndpointIPAddressAndPort.h" +#include "ASN_NGAP_Presence.h" +#include "ASN_NGAP_GlobalTNGF-ID.h" +#include "ASN_NGAP_GlobalTWIF-ID.h" +#include "ASN_NGAP_GlobalW-AGF-ID.h" +#include "ASN_NGAP_IntersystemSONInformationRequest.h" +#include "ASN_NGAP_IntersystemSONInformationReply.h" +#include "ASN_NGAP_IntersystemCellStateIndication.h" +#include "ASN_NGAP_IntersystemResourceStatusReport.h" +#include "ASN_NGAP_SONInformationReport.h" +#include "ASN_NGAP_SuccessfulHandoverReportList.h" +#include "ASN_NGAP_TargetRNC-ID.h" +#include "ASN_NGAP_TargetHomeENB-ID.h" +#include "ASN_NGAP_UserLocationInformationTNGF.h" +#include "ASN_NGAP_UserLocationInformationTWIF.h" +#include "ASN_NGAP_UserLocationInformationW-AGF.h" +#include "ASN_NGAP_GlobalCable-ID.h" +#include "ASN_NGAP_HFCNode-ID-new.h" +#include "ASN_NGAP_GlobalCable-ID-new.h" +#include "ASN_NGAP_MBS-SessionTNLInfo5GC.h" +#include "ASN_NGAP_MBS-QoSFlowsToBeSetupList.h" +#include "ASN_NGAP_MBS-SessionFSAIDList.h" +#include "ASN_NGAP_MBS-SessionID.h" +#include "ASN_NGAP_MBS-ServiceArea.h" +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_PDUSessionAggregateMaximumBitRate.h" +#include "ASN_NGAP_UL-NGU-UP-TNLModifyList.h" +#include "ASN_NGAP_NetworkInstance.h" +#include "ASN_NGAP_QosFlowAddOrModifyRequestList.h" +#include "ASN_NGAP_UPTransportLayerInformationList.h" +#include "ASN_NGAP_CommonNetworkInstance.h" +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_SecurityIndication.h" +#include "ASN_NGAP_MBSSessionSetuporModifyRequestList.h" +#include "ASN_NGAP_MBSSessionToReleaseList.h" +#include "ASN_NGAP_DataForwardingNotPossible.h" +#include "ASN_NGAP_PDUSessionType.h" +#include "ASN_NGAP_QosFlowSetupRequestList.h" +#include "ASN_NGAP_DirectForwardingPathAvailability.h" +#include "ASN_NGAP_RedundantPDUSessionInformation.h" +#include "ASN_NGAP_MBSSessionSetupRequestList.h" +#include "ASN_NGAP_AMF-UE-NGAP-ID.h" +#include "ASN_NGAP_RAN-UE-NGAP-ID.h" +#include "ASN_NGAP_RANPagingPriority.h" +#include "ASN_NGAP_NAS-PDU.h" +#include "ASN_NGAP_PDUSessionResourceSetupListSUReq.h" +#include "ASN_NGAP_UEAggregateMaximumBitRate.h" +#include "ASN_NGAP_UESliceMaximumBitRateList.h" +#include "ASN_NGAP_PDUSessionResourceSetupListSURes.h" +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListSURes.h" +#include "ASN_NGAP_CriticalityDiagnostics.h" +#include "ASN_NGAP_UserLocationInformation.h" +#include "ASN_NGAP_PDUSessionResourceToReleaseListRelCmd.h" +#include "ASN_NGAP_PDUSessionResourceReleasedListRelRes.h" +#include "ASN_NGAP_PDUSessionResourceModifyListModReq.h" +#include "ASN_NGAP_PDUSessionResourceModifyListModRes.h" +#include "ASN_NGAP_PDUSessionResourceFailedToModifyListModRes.h" +#include "ASN_NGAP_PDUSessionResourceNotifyList.h" +#include "ASN_NGAP_PDUSessionResourceReleasedListNot.h" +#include "ASN_NGAP_PDUSessionResourceModifyListModInd.h" +#include "ASN_NGAP_PDUSessionResourceModifyListModCfm.h" +#include "ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm.h" +#include "ASN_NGAP_AMFName.h" +#include "ASN_NGAP_CoreNetworkAssistanceInformationForInactive.h" +#include "ASN_NGAP_GUAMI.h" +#include "ASN_NGAP_PDUSessionResourceSetupListCxtReq.h" +#include "ASN_NGAP_AllowedNSSAI.h" +#include "ASN_NGAP_UESecurityCapabilities.h" +#include "ASN_NGAP_SecurityKey.h" +#include "ASN_NGAP_TraceActivation.h" +#include "ASN_NGAP_MobilityRestrictionList.h" +#include "ASN_NGAP_UERadioCapability.h" +#include "ASN_NGAP_IndexToRFSP.h" +#include "ASN_NGAP_MaskedIMEISV.h" +#include "ASN_NGAP_EmergencyFallbackIndicator.h" +#include "ASN_NGAP_RRCInactiveTransitionReportRequest.h" +#include "ASN_NGAP_UERadioCapabilityForPaging.h" +#include "ASN_NGAP_RedirectionVoiceFallback.h" +#include "ASN_NGAP_LocationReportingRequestType.h" +#include "ASN_NGAP_CNAssistedRANTuning.h" +#include "ASN_NGAP_SRVCCOperationPossible.h" +#include "ASN_NGAP_IAB-Authorized.h" +#include "ASN_NGAP_Enhanced-CoverageRestriction.h" +#include "ASN_NGAP_Extended-ConnectedTime.h" +#include "ASN_NGAP_UE-DifferentiationInfo.h" +#include "ASN_NGAP_NRV2XServicesAuthorized.h" +#include "ASN_NGAP_LTEV2XServicesAuthorized.h" +#include "ASN_NGAP_NRUESidelinkAggregateMaximumBitrate.h" +#include "ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate.h" +#include "ASN_NGAP_PC5QoSParameters.h" +#include "ASN_NGAP_CEmodeBrestricted.h" +#include "ASN_NGAP_UE-UP-CIoT-Support.h" +#include "ASN_NGAP_RGLevelWirelineAccessCharacteristics.h" +#include "ASN_NGAP_MDTPLMNList.h" +#include "ASN_NGAP_UERadioCapabilityID.h" +#include "ASN_NGAP_TimeSyncAssistanceInfo.h" +#include "ASN_NGAP_QMCConfigInfo.h" +#include "ASN_NGAP_TargetNSSAIInformation.h" +#include "ASN_NGAP_FiveG-ProSeAuthorized.h" +#include "ASN_NGAP_FiveG-ProSePC5QoSParameters.h" +#include "ASN_NGAP_PDUSessionResourceSetupListCxtRes.h" +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes.h" +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail.h" +#include "ASN_NGAP_Cause.h" +#include "ASN_NGAP_PDUSessionResourceListCxtRelReq.h" +#include "ASN_NGAP_UE-NGAP-IDs.h" +#include "ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h" +#include "ASN_NGAP_PDUSessionResourceListCxtRelCpl.h" +#include "ASN_NGAP_PagingAssisDataforCEcapabUE.h" +#include "ASN_NGAP_RRCEstablishmentCause.h" +#include "ASN_NGAP_PDUSessionResourceResumeListRESReq.h" +#include "ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq.h" +#include "ASN_NGAP_Suspend-Request-Indication.h" +#include "ASN_NGAP_PDUSessionResourceResumeListRESRes.h" +#include "ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes.h" +#include "ASN_NGAP_SecurityContext.h" +#include "ASN_NGAP_Suspend-Response-Indication.h" +#include "ASN_NGAP_PDUSessionResourceSuspendListSUSReq.h" +#include "ASN_NGAP_QMCDeactivation.h" +#include "ASN_NGAP_MDTPLMNModificationList.h" +#include "ASN_NGAP_RRCState.h" +#include "ASN_NGAP_FiveG-S-TMSI.h" +#include "ASN_NGAP_NB-IoT-UEPriority.h" +#include "ASN_NGAP_S-NSSAI.h" +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_UL-CP-SecurityInformation.h" +#include "ASN_NGAP_HandoverType.h" +#include "ASN_NGAP_TargetID.h" +#include "ASN_NGAP_PDUSessionResourceListHORqd.h" +#include "ASN_NGAP_SourceToTarget-TransparentContainer.h" +#include "ASN_NGAP_NASSecurityParametersFromNGRAN.h" +#include "ASN_NGAP_PDUSessionResourceHandoverList.h" +#include "ASN_NGAP_PDUSessionResourceToReleaseListHOCmd.h" +#include "ASN_NGAP_TargetToSource-TransparentContainer.h" +#include "ASN_NGAP_TargettoSource-Failure-TransparentContainer.h" +#include "ASN_NGAP_NewSecurityContextInd.h" +#include "ASN_NGAP_PDUSessionResourceSetupListHOReq.h" +#include "ASN_NGAP_PDUSessionResourceAdmittedList.h" +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck.h" +#include "ASN_NGAP_NPN-AccessInformation.h" +#include "ASN_NGAP_RedCapIndication.h" +#include "ASN_NGAP_NotifySourceNGRANNode.h" +#include "ASN_NGAP_PDUSessionResourceToBeSwitchedDLList.h" +#include "ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq.h" +#include "ASN_NGAP_PDUSessionResourceSwitchedList.h" +#include "ASN_NGAP_PDUSessionResourceReleasedListPSAck.h" +#include "ASN_NGAP_PDUSessionResourceReleasedListPSFail.h" +#include "ASN_NGAP_EarlyStatusTransfer-TransparentContainer.h" +#include "ASN_NGAP_RANStatusTransfer-TransparentContainer.h" +#include "ASN_NGAP_UEPagingIdentity.h" +#include "ASN_NGAP_PagingDRX.h" +#include "ASN_NGAP_TAIListForPaging.h" +#include "ASN_NGAP_PagingPriority.h" +#include "ASN_NGAP_PagingOrigin.h" +#include "ASN_NGAP_AssistanceDataForPaging.h" +#include "ASN_NGAP_NB-IoT-Paging-eDRXInfo.h" +#include "ASN_NGAP_NB-IoT-PagingDRX.h" +#include "ASN_NGAP_WUS-Assistance-Information.h" +#include "ASN_NGAP_EUTRA-PagingeDRXInformation.h" +#include "ASN_NGAP_NR-PagingeDRXInformation.h" +#include "ASN_NGAP_PagingCause.h" +#include "ASN_NGAP_PEIPSassistanceInformation.h" +#include "ASN_NGAP_AMFSetID.h" +#include "ASN_NGAP_UEContextRequest.h" +#include "ASN_NGAP_SourceToTarget-AMFInformationReroute.h" +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_IABNodeIndication.h" +#include "ASN_NGAP_CEmodeBSupport-Indicator.h" +#include "ASN_NGAP_LTEM-Indication.h" +#include "ASN_NGAP_EDT-Session.h" +#include "ASN_NGAP_AuthenticatedIndication.h" +#include "ASN_NGAP_UECapabilityInfoRequest.h" +#include "ASN_NGAP_EndIndication.h" +#include +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_RANNodeName.h" +#include "ASN_NGAP_SupportedTAList.h" +#include "ASN_NGAP_UERetentionInformation.h" +#include "ASN_NGAP_NB-IoT-DefaultPagingDRX.h" +#include "ASN_NGAP_Extended-RANNodeName.h" +#include "ASN_NGAP_ServedGUAMIList.h" +#include "ASN_NGAP_RelativeAMFCapacity.h" +#include "ASN_NGAP_PLMNSupportList.h" +#include "ASN_NGAP_IAB-Supported.h" +#include "ASN_NGAP_Extended-AMFName.h" +#include "ASN_NGAP_TimeToWait.h" +#include "ASN_NGAP_NGRAN-TNLAssociationToRemoveList.h" +#include "ASN_NGAP_AMF-TNLAssociationToAddList.h" +#include "ASN_NGAP_AMF-TNLAssociationToRemoveList.h" +#include "ASN_NGAP_AMF-TNLAssociationToUpdateList.h" +#include "ASN_NGAP_AMF-TNLAssociationSetupList.h" +#include "ASN_NGAP_TNLAssociationList.h" +#include "ASN_NGAP_UnavailableGUAMIList.h" +#include "ASN_NGAP_ResetType.h" +#include "ASN_NGAP_UE-associatedLogicalNG-connectionList.h" +#include "ASN_NGAP_OverloadResponse.h" +#include "ASN_NGAP_TrafficLoadReductionIndication.h" +#include "ASN_NGAP_OverloadStartNSSAIList.h" +#include "ASN_NGAP_SONConfigurationTransfer.h" +#include "ASN_NGAP_EN-DCSONConfigurationTransfer.h" +#include "ASN_NGAP_IntersystemSONConfigurationTransfer.h" +#include "ASN_NGAP_MessageIdentifier.h" +#include "ASN_NGAP_SerialNumber.h" +#include "ASN_NGAP_WarningAreaList.h" +#include "ASN_NGAP_RepetitionPeriod.h" +#include "ASN_NGAP_NumberOfBroadcastsRequested.h" +#include "ASN_NGAP_WarningType.h" +#include "ASN_NGAP_WarningSecurityInfo.h" +#include "ASN_NGAP_DataCodingScheme.h" +#include "ASN_NGAP_WarningMessageContents.h" +#include "ASN_NGAP_ConcurrentWarningMessageInd.h" +#include "ASN_NGAP_WarningAreaCoordinates.h" +#include "ASN_NGAP_BroadcastCompletedAreaList.h" +#include "ASN_NGAP_CancelAllWarningMessages.h" +#include "ASN_NGAP_BroadcastCancelledAreaList.h" +#include "ASN_NGAP_CellIDListForRestart.h" +#include "ASN_NGAP_TAIListForRestart.h" +#include "ASN_NGAP_EmergencyAreaIDListForRestart.h" +#include "ASN_NGAP_PWSFailedCellIDList.h" +#include "ASN_NGAP_RoutingID.h" +#include "ASN_NGAP_NRPPa-PDU.h" +#include "ASN_NGAP_NGRANTraceID.h" +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_PrivacyIndicator.h" +#include "ASN_NGAP_URI-address.h" +#include "ASN_NGAP_UEPresenceInAreaOfInterestList.h" +#include "ASN_NGAP_IMSVoiceSupportIndicator.h" +#include "ASN_NGAP_PDUSessionResourceSecondaryRATUsageList.h" +#include "ASN_NGAP_HandoverFlag.h" +#include "ASN_NGAP_RIMInformationTransfer.h" +#include "ASN_NGAP_DL-CP-SecurityInformation.h" +#include "ASN_NGAP_MBS-AreaSessionID.h" +#include "ASN_NGAP_MulticastGroupPagingAreaList.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_AMFPagingTarget_ExtIEs__value_PR { + ASN_NGAP_AMFPagingTarget_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_AMFPagingTarget_ExtIEs__value_PR; +typedef enum ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value_PR { + ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value_PR; +typedef enum ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value_PR { + ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value_PR; +typedef enum ASN_NGAP_AreaScopeOfQMC_ExtIEs__value_PR { + ASN_NGAP_AreaScopeOfQMC_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_AreaScopeOfQMC_ExtIEs__value_PR; +typedef enum ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value_PR { + ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value_PR; +typedef enum ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value_PR { + ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value_PR; +typedef enum ASN_NGAP_CandidateCell_ExtIEs__value_PR { + ASN_NGAP_CandidateCell_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_CandidateCell_ExtIEs__value_PR; +typedef enum ASN_NGAP_Cause_ExtIEs__value_PR { + ASN_NGAP_Cause_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_Cause_ExtIEs__value_PR; +typedef enum ASN_NGAP_CellIDListForRestart_ExtIEs__value_PR { + ASN_NGAP_CellIDListForRestart_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_CellIDListForRestart_ExtIEs__value_PR; +typedef enum ASN_NGAP_CPTransportLayerInformation_ExtIEs__value_PR { + ASN_NGAP_CPTransportLayerInformation_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_CPTransportLayerInformation_ExtIEs__value_PR_EndpointIPAddressAndPort +} ASN_NGAP_CPTransportLayerInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_DRBStatusDL_ExtIEs__value_PR { + ASN_NGAP_DRBStatusDL_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusDL_ExtIEs__value_PR; +typedef enum ASN_NGAP_DRBStatusUL_ExtIEs__value_PR { + ASN_NGAP_DRBStatusUL_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_DRBStatusUL_ExtIEs__value_PR; +typedef enum ASN_NGAP_ProcedureStageChoice_ExtIEs__value_PR { + ASN_NGAP_ProcedureStageChoice_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ProcedureStageChoice_ExtIEs__value_PR; +typedef enum ASN_NGAP_ENB_ID_ExtIEs__value_PR { + ASN_NGAP_ENB_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ENB_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_EventTrigger_ExtIEs__value_PR { + ASN_NGAP_EventTrigger_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_EventTrigger_ExtIEs__value_PR; +typedef enum ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value_PR { + ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value_PR; +typedef enum ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR { + ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR_GlobalTNGF_ID, + ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR_GlobalTWIF_ID, + ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR_GlobalW_AGF_ID +} ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR; +typedef enum ASN_NGAP_GNB_ID_ExtIEs__value_PR { + ASN_NGAP_GNB_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_GNB_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_IntersystemSONTransferType_ExtIEs__value_PR { + ASN_NGAP_IntersystemSONTransferType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONTransferType_ExtIEs__value_PR; +typedef enum ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR { + ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR_IntersystemSONInformationRequest, + ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR_IntersystemSONInformationReply +} ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value_PR { + ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value_PR; +typedef enum ASN_NGAP_ReportingSystem_ExtIEs__value_PR { + ASN_NGAP_ReportingSystem_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ReportingSystem_ExtIEs__value_PR; +typedef enum ASN_NGAP_ReportType_ExtIEs__value_PR { + ASN_NGAP_ReportType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ReportType_ExtIEs__value_PR; +typedef enum ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value_PR { + ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value_PR; +typedef enum ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR { + ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR_IntersystemCellStateIndication, + ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR_IntersystemResourceStatusReport +} ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR; +typedef enum ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value_PR { + ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value_PR; +typedef enum ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value_PR { + ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value_PR; +typedef enum ASN_NGAP_LastVisitedCellInformation_ExtIEs__value_PR { + ASN_NGAP_LastVisitedCellInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_LastVisitedCellInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_LoggedMDTTrigger_ExtIEs__value_PR { + ASN_NGAP_LoggedMDTTrigger_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_LoggedMDTTrigger_ExtIEs__value_PR; +typedef enum ASN_NGAP_MRB_ProgressInformation_ExtIEs__value_PR { + ASN_NGAP_MRB_ProgressInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MRB_ProgressInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_MBS_ServiceArea_ExtIEs__value_PR { + ASN_NGAP_MBS_ServiceArea_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_ServiceArea_ExtIEs__value_PR; +typedef enum ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value_PR { + ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value_PR; +typedef enum ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value_PR { + ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value_PR; +typedef enum ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value_PR { + ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value_PR; +typedef enum ASN_NGAP_MDTModeNr_ExtIEs__value_PR { + ASN_NGAP_MDTModeNr_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_MDTModeNr_ExtIEs__value_PR; +typedef enum ASN_NGAP_M1ThresholdType_ExtIEs__value_PR { + ASN_NGAP_M1ThresholdType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_M1ThresholdType_ExtIEs__value_PR; +typedef enum ASN_NGAP_N3IWF_ID_ExtIEs__value_PR { + ASN_NGAP_N3IWF_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_N3IWF_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_NgENB_ID_ExtIEs__value_PR { + ASN_NGAP_NgENB_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NgENB_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_NGRAN_CGI_ExtIEs__value_PR { + ASN_NGAP_NGRAN_CGI_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NGRAN_CGI_ExtIEs__value_PR; +typedef enum ASN_NGAP_NPN_AccessInformation_ExtIEs__value_PR { + ASN_NGAP_NPN_AccessInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NPN_AccessInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_NPN_MobilityInformation_ExtIEs__value_PR { + ASN_NGAP_NPN_MobilityInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NPN_MobilityInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value_PR { + ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_NPN_Support_ExtIEs__value_PR { + ASN_NGAP_NPN_Support_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_NPN_Support_ExtIEs__value_PR; +typedef enum ASN_NGAP_OverloadResponse_ExtIEs__value_PR { + ASN_NGAP_OverloadResponse_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_OverloadResponse_ExtIEs__value_PR; +typedef enum ASN_NGAP_PWSFailedCellIDList_ExtIEs__value_PR { + ASN_NGAP_PWSFailedCellIDList_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_PWSFailedCellIDList_ExtIEs__value_PR; +typedef enum ASN_NGAP_QosCharacteristics_ExtIEs__value_PR { + ASN_NGAP_QosCharacteristics_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_QosCharacteristics_ExtIEs__value_PR; +typedef enum ASN_NGAP_ResetType_ExtIEs__value_PR { + ASN_NGAP_ResetType_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_ResetType_ExtIEs__value_PR; +typedef enum ASN_NGAP_SensorNameConfig_ExtIEs__value_PR { + ASN_NGAP_SensorNameConfig_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_SensorNameConfig_ExtIEs__value_PR; +typedef enum ASN_NGAP_SONInformation_ExtIEs__value_PR { + ASN_NGAP_SONInformation_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_SONInformation_ExtIEs__value_PR_SONInformationReport +} ASN_NGAP_SONInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_SONInformationReport_ExtIEs__value_PR { + ASN_NGAP_SONInformationReport_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_SONInformationReport_ExtIEs__value_PR_SuccessfulHandoverReportList +} ASN_NGAP_SONInformationReport_ExtIEs__value_PR; +typedef enum ASN_NGAP_SourceNodeID_ExtIEs__value_PR { + ASN_NGAP_SourceNodeID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_SourceNodeID_ExtIEs__value_PR; +typedef enum ASN_NGAP_TargetID_ExtIEs__value_PR { + ASN_NGAP_TargetID_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_TargetID_ExtIEs__value_PR_TargetRNC_ID, + ASN_NGAP_TargetID_ExtIEs__value_PR_TargetHomeENB_ID +} ASN_NGAP_TargetID_ExtIEs__value_PR; +typedef enum ASN_NGAP_TNGF_ID_ExtIEs__value_PR { + ASN_NGAP_TNGF_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_TNGF_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_TWIF_ID_ExtIEs__value_PR { + ASN_NGAP_TWIF_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_TWIF_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value_PR { + ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value_PR; +typedef enum ASN_NGAP_UEIdentityIndexValue_ExtIEs__value_PR { + ASN_NGAP_UEIdentityIndexValue_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEIdentityIndexValue_ExtIEs__value_PR; +typedef enum ASN_NGAP_UE_NGAP_IDs_ExtIEs__value_PR { + ASN_NGAP_UE_NGAP_IDs_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UE_NGAP_IDs_ExtIEs__value_PR; +typedef enum ASN_NGAP_UEPagingIdentity_ExtIEs__value_PR { + ASN_NGAP_UEPagingIdentity_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UEPagingIdentity_ExtIEs__value_PR; +typedef enum ASN_NGAP_UERLFReportContainer_ExtIEs__value_PR { + ASN_NGAP_UERLFReportContainer_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UERLFReportContainer_ExtIEs__value_PR; +typedef enum ASN_NGAP_UPTransportLayerInformation_ExtIEs__value_PR { + ASN_NGAP_UPTransportLayerInformation_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_UPTransportLayerInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_UserLocationInformation_ExtIEs__value_PR { + ASN_NGAP_UserLocationInformation_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformation_ExtIEs__value_PR_UserLocationInformationTNGF, + ASN_NGAP_UserLocationInformation_ExtIEs__value_PR_UserLocationInformationTWIF, + ASN_NGAP_UserLocationInformation_ExtIEs__value_PR_UserLocationInformationW_AGF +} ASN_NGAP_UserLocationInformation_ExtIEs__value_PR; +typedef enum ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR { + ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR_GlobalCable_ID, + ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR_HFCNode_ID_new, + ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR_GlobalCable_ID_new +} ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR; +typedef enum ASN_NGAP_W_AGF_ID_ExtIEs__value_PR { + ASN_NGAP_W_AGF_ID_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_W_AGF_ID_ExtIEs__value_PR; +typedef enum ASN_NGAP_WarningAreaList_ExtIEs__value_PR { + ASN_NGAP_WarningAreaList_ExtIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_WarningAreaList_ExtIEs__value_PR; +typedef enum ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR { + ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR_MBS_SessionTNLInfo5GC, + ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR_MBS_QoSFlowsToBeSetupList, + ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR_MBS_SessionFSAIDList +} ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR { + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_MBS_ServiceArea, + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_MBS_QoSFlowsToBeSetupList, + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_QosFlowListWithCause, + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR_MBS_SessionTNLInfo5GC +} ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR { + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_PDUSessionAggregateMaximumBitRate, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_UL_NGU_UP_TNLModifyList, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_NetworkInstance, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_QosFlowAddOrModifyRequestList, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_QosFlowListWithCause, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_UPTransportLayerInformationList, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_CommonNetworkInstance, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_UPTransportLayerInformationList_1, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_CommonNetworkInstance_1, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_UPTransportLayerInformation, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_SecurityIndication, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_MBSSessionSetuporModifyRequestList, + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR_MBSSessionToReleaseList +} ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR { + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_PDUSessionAggregateMaximumBitRate, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_UPTransportLayerInformation, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_UPTransportLayerInformationList, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_DataForwardingNotPossible, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_PDUSessionType, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_SecurityIndication, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_NetworkInstance, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_QosFlowSetupRequestList, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_CommonNetworkInstance, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_DirectForwardingPathAvailability, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_UPTransportLayerInformation_1, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_UPTransportLayerInformationList_1, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_CommonNetworkInstance_1, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_RedundantPDUSessionInformation, + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_MBSSessionSetupRequestList +} ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR { + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_RANPagingPriority, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_NAS_PDU, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_PDUSessionResourceSetupListSUReq, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_UEAggregateMaximumBitRate, + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR_UESliceMaximumBitRateList +} ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR { + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_PDUSessionResourceSetupListSURes, + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_PDUSessionResourceFailedToSetupListSURes, + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR_UserLocationInformation +} ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR { + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_RANPagingPriority, + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_NAS_PDU, + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR_PDUSessionResourceToReleaseListRelCmd +} ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR { + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_PDUSessionResourceReleasedListRelRes, + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_UserLocationInformation, + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR { + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR_RANPagingPriority, + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR_PDUSessionResourceModifyListModReq +} ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR { + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_PDUSessionResourceModifyListModRes, + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_PDUSessionResourceFailedToModifyListModRes, + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_UserLocationInformation, + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR { + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_PDUSessionResourceNotifyList, + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_PDUSessionResourceReleasedListNot, + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR_UserLocationInformation +} ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR { + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR_PDUSessionResourceModifyListModInd, + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR_UserLocationInformation +} ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR; +typedef enum ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR { + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_PDUSessionResourceModifyListModCfm, + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_PDUSessionResourceFailedToModifyListModCfm, + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR; +typedef enum ASN_NGAP_InitialContextSetupRequestIEs__value_PR { + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_AMFName, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UEAggregateMaximumBitRate, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_CoreNetworkAssistanceInformationForInactive, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_GUAMI, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_PDUSessionResourceSetupListCxtReq, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_AllowedNSSAI, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UESecurityCapabilities, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_SecurityKey, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_TraceActivation, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_MobilityRestrictionList, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UERadioCapability, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_IndexToRFSP, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_MaskedIMEISV, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_NAS_PDU, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_EmergencyFallbackIndicator, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_RRCInactiveTransitionReportRequest, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UERadioCapabilityForPaging, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_RedirectionVoiceFallback, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_LocationReportingRequestType, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_CNAssistedRANTuning, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_SRVCCOperationPossible, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_IAB_Authorized, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_Extended_ConnectedTime, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_NRV2XServicesAuthorized, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_LTEV2XServicesAuthorized, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_LTEUESidelinkAggregateMaximumBitrate, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_PC5QoSParameters, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_CEmodeBrestricted, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UE_UP_CIoT_Support, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_RGLevelWirelineAccessCharacteristics, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_MDTPLMNList, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_TimeSyncAssistanceInfo, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_QMCConfigInfo, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_TargetNSSAIInformation, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_UESliceMaximumBitRateList, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_FiveG_ProSeAuthorized, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate_1, + ASN_NGAP_InitialContextSetupRequestIEs__value_PR_FiveG_ProSePC5QoSParameters +} ASN_NGAP_InitialContextSetupRequestIEs__value_PR; +typedef enum ASN_NGAP_InitialContextSetupResponseIEs__value_PR { + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_PDUSessionResourceSetupListCxtRes, + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_PDUSessionResourceFailedToSetupListCxtRes, + ASN_NGAP_InitialContextSetupResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_InitialContextSetupResponseIEs__value_PR; +typedef enum ASN_NGAP_InitialContextSetupFailureIEs__value_PR { + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_PDUSessionResourceFailedToSetupListCxtFail, + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_Cause, + ASN_NGAP_InitialContextSetupFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_InitialContextSetupFailureIEs__value_PR; +typedef enum ASN_NGAP_UEContextReleaseRequest_IEs__value_PR { + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR_PDUSessionResourceListCxtRelReq, + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR_Cause +} ASN_NGAP_UEContextReleaseRequest_IEs__value_PR; +typedef enum ASN_NGAP_UEContextReleaseCommand_IEs__value_PR { + ASN_NGAP_UEContextReleaseCommand_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextReleaseCommand_IEs__value_PR_UE_NGAP_IDs, + ASN_NGAP_UEContextReleaseCommand_IEs__value_PR_Cause +} ASN_NGAP_UEContextReleaseCommand_IEs__value_PR; +typedef enum ASN_NGAP_UEContextReleaseComplete_IEs__value_PR { + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_UserLocationInformation, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_InfoOnRecommendedCellsAndRANNodesForPaging, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_PDUSessionResourceListCxtRelCpl, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR_PagingAssisDataforCEcapabUE +} ASN_NGAP_UEContextReleaseComplete_IEs__value_PR; +typedef enum ASN_NGAP_UEContextResumeRequestIEs__value_PR { + ASN_NGAP_UEContextResumeRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextResumeRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_RRCEstablishmentCause, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_PDUSessionResourceResumeListRESReq, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_PDUSessionResourceFailedToResumeListRESReq, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_Suspend_Request_Indication, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_InfoOnRecommendedCellsAndRANNodesForPaging, + ASN_NGAP_UEContextResumeRequestIEs__value_PR_PagingAssisDataforCEcapabUE +} ASN_NGAP_UEContextResumeRequestIEs__value_PR; +typedef enum ASN_NGAP_UEContextResumeResponseIEs__value_PR { + ASN_NGAP_UEContextResumeResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextResumeResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_PDUSessionResourceResumeListRESRes, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_PDUSessionResourceFailedToResumeListRESRes, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_SecurityContext, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_Suspend_Response_Indication, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_Extended_ConnectedTime, + ASN_NGAP_UEContextResumeResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextResumeResponseIEs__value_PR; +typedef enum ASN_NGAP_UEContextResumeFailureIEs__value_PR { + ASN_NGAP_UEContextResumeFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextResumeFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextResumeFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextResumeFailureIEs__value_PR_Cause, + ASN_NGAP_UEContextResumeFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextResumeFailureIEs__value_PR; +typedef enum ASN_NGAP_UEContextSuspendRequestIEs__value_PR { + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_InfoOnRecommendedCellsAndRANNodesForPaging, + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_PagingAssisDataforCEcapabUE, + ASN_NGAP_UEContextSuspendRequestIEs__value_PR_PDUSessionResourceSuspendListSUSReq +} ASN_NGAP_UEContextSuspendRequestIEs__value_PR; +typedef enum ASN_NGAP_UEContextSuspendResponseIEs__value_PR { + ASN_NGAP_UEContextSuspendResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextSuspendResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendResponseIEs__value_PR_SecurityContext, + ASN_NGAP_UEContextSuspendResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextSuspendResponseIEs__value_PR; +typedef enum ASN_NGAP_UEContextSuspendFailureIEs__value_PR { + ASN_NGAP_UEContextSuspendFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextSuspendFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextSuspendFailureIEs__value_PR_Cause, + ASN_NGAP_UEContextSuspendFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextSuspendFailureIEs__value_PR; +typedef enum ASN_NGAP_UEContextModificationRequestIEs__value_PR { + ASN_NGAP_UEContextModificationRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextModificationRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_RANPagingPriority, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_SecurityKey, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_IndexToRFSP, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_UEAggregateMaximumBitRate, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_UESecurityCapabilities, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_CoreNetworkAssistanceInformationForInactive, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_EmergencyFallbackIndicator, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_AMF_UE_NGAP_ID_1, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_RRCInactiveTransitionReportRequest, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_GUAMI, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_CNAssistedRANTuning, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_SRVCCOperationPossible, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_IAB_Authorized, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_NRV2XServicesAuthorized, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_LTEV2XServicesAuthorized, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_LTEUESidelinkAggregateMaximumBitrate, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_PC5QoSParameters, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_RGLevelWirelineAccessCharacteristics, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_TimeSyncAssistanceInfo, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_QMCConfigInfo, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_QMCDeactivation, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_UESliceMaximumBitRateList, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_MDTPLMNModificationList, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_FiveG_ProSeAuthorized, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate_1, + ASN_NGAP_UEContextModificationRequestIEs__value_PR_FiveG_ProSePC5QoSParameters +} ASN_NGAP_UEContextModificationRequestIEs__value_PR; +typedef enum ASN_NGAP_UEContextModificationResponseIEs__value_PR { + ASN_NGAP_UEContextModificationResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextModificationResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextModificationResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextModificationResponseIEs__value_PR_RRCState, + ASN_NGAP_UEContextModificationResponseIEs__value_PR_UserLocationInformation, + ASN_NGAP_UEContextModificationResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextModificationResponseIEs__value_PR; +typedef enum ASN_NGAP_UEContextModificationFailureIEs__value_PR { + ASN_NGAP_UEContextModificationFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEContextModificationFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UEContextModificationFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UEContextModificationFailureIEs__value_PR_Cause, + ASN_NGAP_UEContextModificationFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UEContextModificationFailureIEs__value_PR; +typedef enum ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR { + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR_RRCState, + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR_UserLocationInformation +} ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR; +typedef enum ASN_NGAP_RetrieveUEInformationIEs__value_PR { + ASN_NGAP_RetrieveUEInformationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RetrieveUEInformationIEs__value_PR_FiveG_S_TMSI +} ASN_NGAP_RetrieveUEInformationIEs__value_PR; +typedef enum ASN_NGAP_UEInformationTransferIEs__value_PR { + ASN_NGAP_UEInformationTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UEInformationTransferIEs__value_PR_FiveG_S_TMSI, + ASN_NGAP_UEInformationTransferIEs__value_PR_NB_IoT_UEPriority, + ASN_NGAP_UEInformationTransferIEs__value_PR_UERadioCapability, + ASN_NGAP_UEInformationTransferIEs__value_PR_S_NSSAI, + ASN_NGAP_UEInformationTransferIEs__value_PR_AllowedNSSAI, + ASN_NGAP_UEInformationTransferIEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_UEInformationTransferIEs__value_PR_MaskedIMEISV +} ASN_NGAP_UEInformationTransferIEs__value_PR; +typedef enum ASN_NGAP_RANCPRelocationIndicationIEs__value_PR { + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_FiveG_S_TMSI, + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_EUTRA_CGI, + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_TAI, + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR_UL_CP_SecurityInformation +} ASN_NGAP_RANCPRelocationIndicationIEs__value_PR; +typedef enum ASN_NGAP_HandoverRequiredIEs__value_PR { + ASN_NGAP_HandoverRequiredIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverRequiredIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverRequiredIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverRequiredIEs__value_PR_HandoverType, + ASN_NGAP_HandoverRequiredIEs__value_PR_Cause, + ASN_NGAP_HandoverRequiredIEs__value_PR_TargetID, + ASN_NGAP_HandoverRequiredIEs__value_PR_DirectForwardingPathAvailability, + ASN_NGAP_HandoverRequiredIEs__value_PR_PDUSessionResourceListHORqd, + ASN_NGAP_HandoverRequiredIEs__value_PR_SourceToTarget_TransparentContainer +} ASN_NGAP_HandoverRequiredIEs__value_PR; +typedef enum ASN_NGAP_HandoverCommandIEs__value_PR { + ASN_NGAP_HandoverCommandIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverCommandIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverCommandIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverCommandIEs__value_PR_HandoverType, + ASN_NGAP_HandoverCommandIEs__value_PR_NASSecurityParametersFromNGRAN, + ASN_NGAP_HandoverCommandIEs__value_PR_PDUSessionResourceHandoverList, + ASN_NGAP_HandoverCommandIEs__value_PR_PDUSessionResourceToReleaseListHOCmd, + ASN_NGAP_HandoverCommandIEs__value_PR_TargetToSource_TransparentContainer, + ASN_NGAP_HandoverCommandIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_HandoverCommandIEs__value_PR; +typedef enum ASN_NGAP_HandoverPreparationFailureIEs__value_PR { + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_Cause, + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_HandoverPreparationFailureIEs__value_PR_TargettoSource_Failure_TransparentContainer +} ASN_NGAP_HandoverPreparationFailureIEs__value_PR; +typedef enum ASN_NGAP_HandoverRequestIEs__value_PR { + ASN_NGAP_HandoverRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverRequestIEs__value_PR_HandoverType, + ASN_NGAP_HandoverRequestIEs__value_PR_Cause, + ASN_NGAP_HandoverRequestIEs__value_PR_UEAggregateMaximumBitRate, + ASN_NGAP_HandoverRequestIEs__value_PR_CoreNetworkAssistanceInformationForInactive, + ASN_NGAP_HandoverRequestIEs__value_PR_UESecurityCapabilities, + ASN_NGAP_HandoverRequestIEs__value_PR_SecurityContext, + ASN_NGAP_HandoverRequestIEs__value_PR_NewSecurityContextInd, + ASN_NGAP_HandoverRequestIEs__value_PR_NAS_PDU, + ASN_NGAP_HandoverRequestIEs__value_PR_PDUSessionResourceSetupListHOReq, + ASN_NGAP_HandoverRequestIEs__value_PR_AllowedNSSAI, + ASN_NGAP_HandoverRequestIEs__value_PR_TraceActivation, + ASN_NGAP_HandoverRequestIEs__value_PR_MaskedIMEISV, + ASN_NGAP_HandoverRequestIEs__value_PR_SourceToTarget_TransparentContainer, + ASN_NGAP_HandoverRequestIEs__value_PR_MobilityRestrictionList, + ASN_NGAP_HandoverRequestIEs__value_PR_LocationReportingRequestType, + ASN_NGAP_HandoverRequestIEs__value_PR_RRCInactiveTransitionReportRequest, + ASN_NGAP_HandoverRequestIEs__value_PR_GUAMI, + ASN_NGAP_HandoverRequestIEs__value_PR_RedirectionVoiceFallback, + ASN_NGAP_HandoverRequestIEs__value_PR_CNAssistedRANTuning, + ASN_NGAP_HandoverRequestIEs__value_PR_SRVCCOperationPossible, + ASN_NGAP_HandoverRequestIEs__value_PR_IAB_Authorized, + ASN_NGAP_HandoverRequestIEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_HandoverRequestIEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_HandoverRequestIEs__value_PR_NRV2XServicesAuthorized, + ASN_NGAP_HandoverRequestIEs__value_PR_LTEV2XServicesAuthorized, + ASN_NGAP_HandoverRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate, + ASN_NGAP_HandoverRequestIEs__value_PR_LTEUESidelinkAggregateMaximumBitrate, + ASN_NGAP_HandoverRequestIEs__value_PR_PC5QoSParameters, + ASN_NGAP_HandoverRequestIEs__value_PR_CEmodeBrestricted, + ASN_NGAP_HandoverRequestIEs__value_PR_UE_UP_CIoT_Support, + ASN_NGAP_HandoverRequestIEs__value_PR_MDTPLMNList, + ASN_NGAP_HandoverRequestIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_HandoverRequestIEs__value_PR_Extended_ConnectedTime, + ASN_NGAP_HandoverRequestIEs__value_PR_TimeSyncAssistanceInfo, + ASN_NGAP_HandoverRequestIEs__value_PR_UESliceMaximumBitRateList, + ASN_NGAP_HandoverRequestIEs__value_PR_FiveG_ProSeAuthorized, + ASN_NGAP_HandoverRequestIEs__value_PR_NRUESidelinkAggregateMaximumBitrate_1, + ASN_NGAP_HandoverRequestIEs__value_PR_FiveG_ProSePC5QoSParameters +} ASN_NGAP_HandoverRequestIEs__value_PR; +typedef enum ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR { + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_PDUSessionResourceAdmittedList, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_PDUSessionResourceFailedToSetupListHOAck, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_TargetToSource_TransparentContainer, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_NPN_AccessInformation, + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR_RedCapIndication +} ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_HandoverFailureIEs__value_PR { + ASN_NGAP_HandoverFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverFailureIEs__value_PR_Cause, + ASN_NGAP_HandoverFailureIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_HandoverFailureIEs__value_PR_TargettoSource_Failure_TransparentContainer +} ASN_NGAP_HandoverFailureIEs__value_PR; +typedef enum ASN_NGAP_HandoverNotifyIEs__value_PR { + ASN_NGAP_HandoverNotifyIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverNotifyIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverNotifyIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverNotifyIEs__value_PR_UserLocationInformation, + ASN_NGAP_HandoverNotifyIEs__value_PR_NotifySourceNGRANNode +} ASN_NGAP_HandoverNotifyIEs__value_PR; +typedef enum ASN_NGAP_PathSwitchRequestIEs__value_PR { + ASN_NGAP_PathSwitchRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PathSwitchRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestIEs__value_PR_UserLocationInformation, + ASN_NGAP_PathSwitchRequestIEs__value_PR_UESecurityCapabilities, + ASN_NGAP_PathSwitchRequestIEs__value_PR_PDUSessionResourceToBeSwitchedDLList, + ASN_NGAP_PathSwitchRequestIEs__value_PR_PDUSessionResourceFailedToSetupListPSReq, + ASN_NGAP_PathSwitchRequestIEs__value_PR_RRCEstablishmentCause, + ASN_NGAP_PathSwitchRequestIEs__value_PR_RedCapIndication +} ASN_NGAP_PathSwitchRequestIEs__value_PR; +typedef enum ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR { + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_UESecurityCapabilities, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_SecurityContext, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_NewSecurityContextInd, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_PDUSessionResourceSwitchedList, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_PDUSessionResourceReleasedListPSAck, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_AllowedNSSAI, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_CoreNetworkAssistanceInformationForInactive, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_RRCInactiveTransitionReportRequest, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_RedirectionVoiceFallback, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_CNAssistedRANTuning, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_SRVCCOperationPossible, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_Extended_ConnectedTime, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_NRV2XServicesAuthorized, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_LTEV2XServicesAuthorized, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_NRUESidelinkAggregateMaximumBitrate, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_LTEUESidelinkAggregateMaximumBitrate, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_PC5QoSParameters, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_CEmodeBrestricted, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_UE_UP_CIoT_Support, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_MDTPLMNList, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_TimeSyncAssistanceInfo, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_FiveG_ProSeAuthorized, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_NRUESidelinkAggregateMaximumBitrate_1, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_FiveG_ProSePC5QoSParameters, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_MDTPLMNModificationList, + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_IAB_Authorized +} ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_PathSwitchRequestFailureIEs__value_PR { + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR_PDUSessionResourceReleasedListPSFail, + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_PathSwitchRequestFailureIEs__value_PR; +typedef enum ASN_NGAP_HandoverCancelIEs__value_PR { + ASN_NGAP_HandoverCancelIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverCancelIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverCancelIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverCancelIEs__value_PR_Cause +} ASN_NGAP_HandoverCancelIEs__value_PR; +typedef enum ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR { + ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_HandoverSuccessIEs__value_PR { + ASN_NGAP_HandoverSuccessIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_HandoverSuccessIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_HandoverSuccessIEs__value_PR_RAN_UE_NGAP_ID +} ASN_NGAP_HandoverSuccessIEs__value_PR; +typedef enum ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR { + ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR_EarlyStatusTransfer_TransparentContainer +} ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR; +typedef enum ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR { + ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR_EarlyStatusTransfer_TransparentContainer +} ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR; +typedef enum ASN_NGAP_UplinkRANStatusTransferIEs__value_PR { + ASN_NGAP_UplinkRANStatusTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkRANStatusTransferIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UplinkRANStatusTransferIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UplinkRANStatusTransferIEs__value_PR_RANStatusTransfer_TransparentContainer +} ASN_NGAP_UplinkRANStatusTransferIEs__value_PR; +typedef enum ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR { + ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR_RANStatusTransfer_TransparentContainer +} ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR; +typedef enum ASN_NGAP_PagingIEs__value_PR { + ASN_NGAP_PagingIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PagingIEs__value_PR_UEPagingIdentity, + ASN_NGAP_PagingIEs__value_PR_PagingDRX, + ASN_NGAP_PagingIEs__value_PR_TAIListForPaging, + ASN_NGAP_PagingIEs__value_PR_PagingPriority, + ASN_NGAP_PagingIEs__value_PR_UERadioCapabilityForPaging, + ASN_NGAP_PagingIEs__value_PR_PagingOrigin, + ASN_NGAP_PagingIEs__value_PR_AssistanceDataForPaging, + ASN_NGAP_PagingIEs__value_PR_NB_IoT_Paging_eDRXInfo, + ASN_NGAP_PagingIEs__value_PR_NB_IoT_PagingDRX, + ASN_NGAP_PagingIEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_PagingIEs__value_PR_WUS_Assistance_Information, + ASN_NGAP_PagingIEs__value_PR_EUTRA_PagingeDRXInformation, + ASN_NGAP_PagingIEs__value_PR_CEmodeBrestricted, + ASN_NGAP_PagingIEs__value_PR_NR_PagingeDRXInformation, + ASN_NGAP_PagingIEs__value_PR_PagingCause, + ASN_NGAP_PagingIEs__value_PR_PEIPSassistanceInformation +} ASN_NGAP_PagingIEs__value_PR; +typedef enum ASN_NGAP_InitialUEMessage_IEs__value_PR { + ASN_NGAP_InitialUEMessage_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_InitialUEMessage_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_InitialUEMessage_IEs__value_PR_NAS_PDU, + ASN_NGAP_InitialUEMessage_IEs__value_PR_UserLocationInformation, + ASN_NGAP_InitialUEMessage_IEs__value_PR_RRCEstablishmentCause, + ASN_NGAP_InitialUEMessage_IEs__value_PR_FiveG_S_TMSI, + ASN_NGAP_InitialUEMessage_IEs__value_PR_AMFSetID, + ASN_NGAP_InitialUEMessage_IEs__value_PR_UEContextRequest, + ASN_NGAP_InitialUEMessage_IEs__value_PR_AllowedNSSAI, + ASN_NGAP_InitialUEMessage_IEs__value_PR_SourceToTarget_AMFInformationReroute, + ASN_NGAP_InitialUEMessage_IEs__value_PR_PLMNIdentity, + ASN_NGAP_InitialUEMessage_IEs__value_PR_IABNodeIndication, + ASN_NGAP_InitialUEMessage_IEs__value_PR_CEmodeBSupport_Indicator, + ASN_NGAP_InitialUEMessage_IEs__value_PR_LTEM_Indication, + ASN_NGAP_InitialUEMessage_IEs__value_PR_EDT_Session, + ASN_NGAP_InitialUEMessage_IEs__value_PR_AuthenticatedIndication, + ASN_NGAP_InitialUEMessage_IEs__value_PR_NPN_AccessInformation, + ASN_NGAP_InitialUEMessage_IEs__value_PR_RedCapIndication +} ASN_NGAP_InitialUEMessage_IEs__value_PR; +typedef enum ASN_NGAP_DownlinkNASTransport_IEs__value_PR { + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_AMFName, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_RANPagingPriority, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_NAS_PDU, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_MobilityRestrictionList, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_IndexToRFSP, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_UEAggregateMaximumBitRate, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_AllowedNSSAI, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_SRVCCOperationPossible, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_Extended_ConnectedTime, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_CEmodeBrestricted, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_UERadioCapability, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_UECapabilityInfoRequest, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_EndIndication, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_UERadioCapabilityID, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_TargetNSSAIInformation, + ASN_NGAP_DownlinkNASTransport_IEs__value_PR_MaskedIMEISV +} ASN_NGAP_DownlinkNASTransport_IEs__value_PR; +typedef enum ASN_NGAP_UplinkNASTransport_IEs__value_PR { + ASN_NGAP_UplinkNASTransport_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkNASTransport_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_NAS_PDU, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_UserLocationInformation, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_OCTET_STRING, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_OCTET_STRING_1, + ASN_NGAP_UplinkNASTransport_IEs__value_PR_OCTET_STRING_2 +} ASN_NGAP_UplinkNASTransport_IEs__value_PR; +typedef enum ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR { + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR_NAS_PDU, + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR_Cause +} ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR; +typedef enum ASN_NGAP_RerouteNASRequest_IEs__value_PR { + ASN_NGAP_RerouteNASRequest_IEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RerouteNASRequest_IEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_RerouteNASRequest_IEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_RerouteNASRequest_IEs__value_PR_OCTET_STRING, + ASN_NGAP_RerouteNASRequest_IEs__value_PR_AMFSetID, + ASN_NGAP_RerouteNASRequest_IEs__value_PR_AllowedNSSAI, + ASN_NGAP_RerouteNASRequest_IEs__value_PR_SourceToTarget_AMFInformationReroute +} ASN_NGAP_RerouteNASRequest_IEs__value_PR; +typedef enum ASN_NGAP_NGSetupRequestIEs__value_PR { + ASN_NGAP_NGSetupRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NGSetupRequestIEs__value_PR_GlobalRANNodeID, + ASN_NGAP_NGSetupRequestIEs__value_PR_RANNodeName, + ASN_NGAP_NGSetupRequestIEs__value_PR_SupportedTAList, + ASN_NGAP_NGSetupRequestIEs__value_PR_PagingDRX, + ASN_NGAP_NGSetupRequestIEs__value_PR_UERetentionInformation, + ASN_NGAP_NGSetupRequestIEs__value_PR_NB_IoT_DefaultPagingDRX, + ASN_NGAP_NGSetupRequestIEs__value_PR_Extended_RANNodeName +} ASN_NGAP_NGSetupRequestIEs__value_PR; +typedef enum ASN_NGAP_NGSetupResponseIEs__value_PR { + ASN_NGAP_NGSetupResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NGSetupResponseIEs__value_PR_AMFName, + ASN_NGAP_NGSetupResponseIEs__value_PR_ServedGUAMIList, + ASN_NGAP_NGSetupResponseIEs__value_PR_RelativeAMFCapacity, + ASN_NGAP_NGSetupResponseIEs__value_PR_PLMNSupportList, + ASN_NGAP_NGSetupResponseIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_NGSetupResponseIEs__value_PR_UERetentionInformation, + ASN_NGAP_NGSetupResponseIEs__value_PR_IAB_Supported, + ASN_NGAP_NGSetupResponseIEs__value_PR_Extended_AMFName +} ASN_NGAP_NGSetupResponseIEs__value_PR; +typedef enum ASN_NGAP_NGSetupFailureIEs__value_PR { + ASN_NGAP_NGSetupFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NGSetupFailureIEs__value_PR_Cause, + ASN_NGAP_NGSetupFailureIEs__value_PR_TimeToWait, + ASN_NGAP_NGSetupFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_NGSetupFailureIEs__value_PR; +typedef enum ASN_NGAP_RANConfigurationUpdateIEs__value_PR { + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_RANNodeName, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_SupportedTAList, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_PagingDRX, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_GlobalRANNodeID, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_NGRAN_TNLAssociationToRemoveList, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_NB_IoT_DefaultPagingDRX, + ASN_NGAP_RANConfigurationUpdateIEs__value_PR_Extended_RANNodeName +} ASN_NGAP_RANConfigurationUpdateIEs__value_PR; +typedef enum ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value_PR { + ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR { + ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR_Cause, + ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR_TimeToWait, + ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR; +typedef enum ASN_NGAP_AMFConfigurationUpdateIEs__value_PR { + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_AMFName, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_ServedGUAMIList, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_RelativeAMFCapacity, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_PLMNSupportList, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_AMF_TNLAssociationToAddList, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_AMF_TNLAssociationToRemoveList, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_AMF_TNLAssociationToUpdateList, + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR_Extended_AMFName +} ASN_NGAP_AMFConfigurationUpdateIEs__value_PR; +typedef enum ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR { + ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR_AMF_TNLAssociationSetupList, + ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR_TNLAssociationList, + ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR { + ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR_Cause, + ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR_TimeToWait, + ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR; +typedef enum ASN_NGAP_AMFStatusIndicationIEs__value_PR { + ASN_NGAP_AMFStatusIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFStatusIndicationIEs__value_PR_UnavailableGUAMIList +} ASN_NGAP_AMFStatusIndicationIEs__value_PR; +typedef enum ASN_NGAP_NGResetIEs__value_PR { + ASN_NGAP_NGResetIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NGResetIEs__value_PR_Cause, + ASN_NGAP_NGResetIEs__value_PR_ResetType +} ASN_NGAP_NGResetIEs__value_PR; +typedef enum ASN_NGAP_NGResetAcknowledgeIEs__value_PR { + ASN_NGAP_NGResetAcknowledgeIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_NGResetAcknowledgeIEs__value_PR_UE_associatedLogicalNG_connectionList, + ASN_NGAP_NGResetAcknowledgeIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_NGResetAcknowledgeIEs__value_PR; +typedef enum ASN_NGAP_ErrorIndicationIEs__value_PR { + ASN_NGAP_ErrorIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_ErrorIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_ErrorIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_ErrorIndicationIEs__value_PR_Cause, + ASN_NGAP_ErrorIndicationIEs__value_PR_CriticalityDiagnostics, + ASN_NGAP_ErrorIndicationIEs__value_PR_FiveG_S_TMSI +} ASN_NGAP_ErrorIndicationIEs__value_PR; +typedef enum ASN_NGAP_OverloadStartIEs__value_PR { + ASN_NGAP_OverloadStartIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_OverloadStartIEs__value_PR_OverloadResponse, + ASN_NGAP_OverloadStartIEs__value_PR_TrafficLoadReductionIndication, + ASN_NGAP_OverloadStartIEs__value_PR_OverloadStartNSSAIList +} ASN_NGAP_OverloadStartIEs__value_PR; +typedef enum ASN_NGAP_OverloadStopIEs__value_PR { + ASN_NGAP_OverloadStopIEs__value_PR_NOTHING /* No components present */ + +} ASN_NGAP_OverloadStopIEs__value_PR; +typedef enum ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR { + ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR_SONConfigurationTransfer, + ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR_EN_DCSONConfigurationTransfer, + ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR_IntersystemSONConfigurationTransfer +} ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR; +typedef enum ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR { + ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR_SONConfigurationTransfer, + ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR_EN_DCSONConfigurationTransfer, + ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR_IntersystemSONConfigurationTransfer +} ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR; +typedef enum ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR { + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_MessageIdentifier, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_SerialNumber, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_WarningAreaList, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_RepetitionPeriod, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_NumberOfBroadcastsRequested, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_WarningType, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_WarningSecurityInfo, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_DataCodingScheme, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_WarningMessageContents, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_ConcurrentWarningMessageInd, + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR_WarningAreaCoordinates +} ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR; +typedef enum ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR { + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR_MessageIdentifier, + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR_SerialNumber, + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR_BroadcastCompletedAreaList, + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR; +typedef enum ASN_NGAP_PWSCancelRequestIEs__value_PR { + ASN_NGAP_PWSCancelRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PWSCancelRequestIEs__value_PR_MessageIdentifier, + ASN_NGAP_PWSCancelRequestIEs__value_PR_SerialNumber, + ASN_NGAP_PWSCancelRequestIEs__value_PR_WarningAreaList, + ASN_NGAP_PWSCancelRequestIEs__value_PR_CancelAllWarningMessages +} ASN_NGAP_PWSCancelRequestIEs__value_PR; +typedef enum ASN_NGAP_PWSCancelResponseIEs__value_PR { + ASN_NGAP_PWSCancelResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PWSCancelResponseIEs__value_PR_MessageIdentifier, + ASN_NGAP_PWSCancelResponseIEs__value_PR_SerialNumber, + ASN_NGAP_PWSCancelResponseIEs__value_PR_BroadcastCancelledAreaList, + ASN_NGAP_PWSCancelResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_PWSCancelResponseIEs__value_PR; +typedef enum ASN_NGAP_PWSRestartIndicationIEs__value_PR { + ASN_NGAP_PWSRestartIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PWSRestartIndicationIEs__value_PR_CellIDListForRestart, + ASN_NGAP_PWSRestartIndicationIEs__value_PR_GlobalRANNodeID, + ASN_NGAP_PWSRestartIndicationIEs__value_PR_TAIListForRestart, + ASN_NGAP_PWSRestartIndicationIEs__value_PR_EmergencyAreaIDListForRestart +} ASN_NGAP_PWSRestartIndicationIEs__value_PR; +typedef enum ASN_NGAP_PWSFailureIndicationIEs__value_PR { + ASN_NGAP_PWSFailureIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_PWSFailureIndicationIEs__value_PR_PWSFailedCellIDList, + ASN_NGAP_PWSFailureIndicationIEs__value_PR_GlobalRANNodeID +} ASN_NGAP_PWSFailureIndicationIEs__value_PR; +typedef enum ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR { + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR_RoutingID, + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR_NRPPa_PDU +} ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR; +typedef enum ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR { + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR_RoutingID, + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR_NRPPa_PDU +} ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR; +typedef enum ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR { + ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR_RoutingID, + ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR_NRPPa_PDU +} ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR; +typedef enum ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR { + ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR_RoutingID, + ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR_NRPPa_PDU +} ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR; +typedef enum ASN_NGAP_TraceStartIEs__value_PR { + ASN_NGAP_TraceStartIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_TraceStartIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_TraceStartIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_TraceStartIEs__value_PR_TraceActivation +} ASN_NGAP_TraceStartIEs__value_PR; +typedef enum ASN_NGAP_TraceFailureIndicationIEs__value_PR { + ASN_NGAP_TraceFailureIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_TraceFailureIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_TraceFailureIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_TraceFailureIndicationIEs__value_PR_NGRANTraceID, + ASN_NGAP_TraceFailureIndicationIEs__value_PR_Cause +} ASN_NGAP_TraceFailureIndicationIEs__value_PR; +typedef enum ASN_NGAP_DeactivateTraceIEs__value_PR { + ASN_NGAP_DeactivateTraceIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DeactivateTraceIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_DeactivateTraceIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_DeactivateTraceIEs__value_PR_NGRANTraceID +} ASN_NGAP_DeactivateTraceIEs__value_PR; +typedef enum ASN_NGAP_CellTrafficTraceIEs__value_PR { + ASN_NGAP_CellTrafficTraceIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_CellTrafficTraceIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_CellTrafficTraceIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_CellTrafficTraceIEs__value_PR_NGRANTraceID, + ASN_NGAP_CellTrafficTraceIEs__value_PR_NGRAN_CGI, + ASN_NGAP_CellTrafficTraceIEs__value_PR_TransportLayerAddress, + ASN_NGAP_CellTrafficTraceIEs__value_PR_PrivacyIndicator, + ASN_NGAP_CellTrafficTraceIEs__value_PR_URI_address +} ASN_NGAP_CellTrafficTraceIEs__value_PR; +typedef enum ASN_NGAP_LocationReportingControlIEs__value_PR { + ASN_NGAP_LocationReportingControlIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_LocationReportingControlIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_LocationReportingControlIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_LocationReportingControlIEs__value_PR_LocationReportingRequestType +} ASN_NGAP_LocationReportingControlIEs__value_PR; +typedef enum ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR { + ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR_Cause +} ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR; +typedef enum ASN_NGAP_LocationReportIEs__value_PR { + ASN_NGAP_LocationReportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_LocationReportIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_LocationReportIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_LocationReportIEs__value_PR_UserLocationInformation, + ASN_NGAP_LocationReportIEs__value_PR_UEPresenceInAreaOfInterestList, + ASN_NGAP_LocationReportIEs__value_PR_LocationReportingRequestType +} ASN_NGAP_LocationReportIEs__value_PR; +typedef enum ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR { + ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR_RAN_UE_NGAP_ID +} ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR; +typedef enum ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR { + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_UERadioCapability, + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_UERadioCapabilityForPaging, + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR_UERadioCapability_1 +} ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR; +typedef enum ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR { + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR_UERadioCapability, + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR_UERadioCapabilityID +} ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR; +typedef enum ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR { + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR_IMSVoiceSupportIndicator, + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR; +typedef enum ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR { + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_PDUSessionResourceSecondaryRATUsageList, + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_HandoverFlag, + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR_UserLocationInformation +} ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR; +typedef enum ASN_NGAP_UplinkRIMInformationTransferIEs__value_PR { + ASN_NGAP_UplinkRIMInformationTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UplinkRIMInformationTransferIEs__value_PR_RIMInformationTransfer +} ASN_NGAP_UplinkRIMInformationTransferIEs__value_PR; +typedef enum ASN_NGAP_DownlinkRIMInformationTransferIEs__value_PR { + ASN_NGAP_DownlinkRIMInformationTransferIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DownlinkRIMInformationTransferIEs__value_PR_RIMInformationTransfer +} ASN_NGAP_DownlinkRIMInformationTransferIEs__value_PR; +typedef enum ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR { + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_UERadioCapability, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_EndIndication, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_S_NSSAI, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_AllowedNSSAI, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_UE_DifferentiationInfo, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_DL_CP_SecurityInformation, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_NB_IoT_UEPriority, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_Enhanced_CoverageRestriction, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_CEmodeBrestricted, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_MaskedIMEISV, + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR_AMFName +} ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR; +typedef enum ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value_PR { + ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value_PR_UERadioCapabilityID +} ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value_PR; +typedef enum ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR { + ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR_UERadioCapabilityID, + ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR_UERadioCapability, + ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR; +typedef enum ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR { + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR_AMF_UE_NGAP_ID, + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR_RAN_UE_NGAP_ID, + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR_S_NSSAI, + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR_AllowedNSSAI +} ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR { + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR_S_NSSAI, + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR_MBS_ServiceArea, + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_ +} ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR { + ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_, + ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR { + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_, + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR_Cause, + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR { + ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR_MBS_ServiceArea, + ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_ +} ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR { + ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_, + ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR { + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_, + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR_Cause, + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR { + ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR_Cause +} ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR { + ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR_Cause +} ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR; +typedef enum ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR { + ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR_OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer_, + ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR; +typedef enum ASN_NGAP_DistributionSetupRequestIEs__value_PR { + ASN_NGAP_DistributionSetupRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DistributionSetupRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_DistributionSetupRequestIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_DistributionSetupRequestIEs__value_PR_OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer_ +} ASN_NGAP_DistributionSetupRequestIEs__value_PR; +typedef enum ASN_NGAP_DistributionSetupResponseIEs__value_PR { + ASN_NGAP_DistributionSetupResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DistributionSetupResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_DistributionSetupResponseIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_DistributionSetupResponseIEs__value_PR_OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer_, + ASN_NGAP_DistributionSetupResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_DistributionSetupResponseIEs__value_PR; +typedef enum ASN_NGAP_DistributionSetupFailureIEs__value_PR { + ASN_NGAP_DistributionSetupFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DistributionSetupFailureIEs__value_PR_MBS_SessionID, + ASN_NGAP_DistributionSetupFailureIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_DistributionSetupFailureIEs__value_PR_OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer_, + ASN_NGAP_DistributionSetupFailureIEs__value_PR_Cause, + ASN_NGAP_DistributionSetupFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_DistributionSetupFailureIEs__value_PR; +typedef enum ASN_NGAP_DistributionReleaseRequestIEs__value_PR { + ASN_NGAP_DistributionReleaseRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DistributionReleaseRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_DistributionReleaseRequestIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_DistributionReleaseRequestIEs__value_PR_OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer_, + ASN_NGAP_DistributionReleaseRequestIEs__value_PR_Cause +} ASN_NGAP_DistributionReleaseRequestIEs__value_PR; +typedef enum ASN_NGAP_DistributionReleaseResponseIEs__value_PR { + ASN_NGAP_DistributionReleaseResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_DistributionReleaseResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_DistributionReleaseResponseIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_DistributionReleaseResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_DistributionReleaseResponseIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR { + ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR_OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer_ +} ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR { + ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR { + ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR_Cause, + ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR { + ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR_OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer_ +} ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR { + ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR { + ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR_OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer_ +} ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR { + ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR; +typedef enum ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR { + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR_MBS_AreaSessionID, + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR_Cause, + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR_CriticalityDiagnostics +} ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR; +typedef enum ASN_NGAP_MulticastGroupPagingIEs__value_PR { + ASN_NGAP_MulticastGroupPagingIEs__value_PR_NOTHING, /* No components present */ + ASN_NGAP_MulticastGroupPagingIEs__value_PR_MBS_SessionID, + ASN_NGAP_MulticastGroupPagingIEs__value_PR_MBS_ServiceArea, + ASN_NGAP_MulticastGroupPagingIEs__value_PR_MulticastGroupPagingAreaList +} ASN_NGAP_MulticastGroupPagingIEs__value_PR; + +/* ASN_NGAP_ProtocolIE-Field */ +typedef struct ASN_NGAP_AMFPagingTarget_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFPagingTarget_ExtIEs__value { + ASN_NGAP_AMFPagingTarget_ExtIEs__value_PR present; + union ASN_NGAP_AMFPagingTarget_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_AMFPagingTarget_ExtIEs_t; +typedef struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value { + ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__value_PR present; + union ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_t; +typedef struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value { + ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__value_PR present; + union ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_t; +typedef struct ASN_NGAP_AreaScopeOfQMC_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AreaScopeOfQMC_ExtIEs__value { + ASN_NGAP_AreaScopeOfQMC_ExtIEs__value_PR present; + union ASN_NGAP_AreaScopeOfQMC_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_AreaScopeOfQMC_ExtIEs_t; +typedef struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value { + ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__value_PR present; + union ASN_NGAP_BroadcastCancelledAreaList_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_t; +typedef struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value { + ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__value_PR present; + union ASN_NGAP_BroadcastCompletedAreaList_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_t; +typedef struct ASN_NGAP_CandidateCell_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CandidateCell_ExtIEs__value { + ASN_NGAP_CandidateCell_ExtIEs__value_PR present; + union ASN_NGAP_CandidateCell_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_CandidateCell_ExtIEs_t; +typedef struct ASN_NGAP_Cause_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_Cause_ExtIEs__value { + ASN_NGAP_Cause_ExtIEs__value_PR present; + union ASN_NGAP_Cause_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_Cause_ExtIEs_t; +typedef struct ASN_NGAP_CellIDListForRestart_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellIDListForRestart_ExtIEs__value { + ASN_NGAP_CellIDListForRestart_ExtIEs__value_PR present; + union ASN_NGAP_CellIDListForRestart_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_CellIDListForRestart_ExtIEs_t; +typedef struct ASN_NGAP_CPTransportLayerInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CPTransportLayerInformation_ExtIEs__value { + ASN_NGAP_CPTransportLayerInformation_ExtIEs__value_PR present; + union ASN_NGAP_CPTransportLayerInformation_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_EndpointIPAddressAndPort_t EndpointIPAddressAndPort; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CPTransportLayerInformation_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusDL_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusDL_ExtIEs__value { + ASN_NGAP_DRBStatusDL_ExtIEs__value_PR present; + union ASN_NGAP_DRBStatusDL_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_DRBStatusDL_ExtIEs_t; +typedef struct ASN_NGAP_DRBStatusUL_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DRBStatusUL_ExtIEs__value { + ASN_NGAP_DRBStatusUL_ExtIEs__value_PR present; + union ASN_NGAP_DRBStatusUL_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_DRBStatusUL_ExtIEs_t; +typedef struct ASN_NGAP_ProcedureStageChoice_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ProcedureStageChoice_ExtIEs__value { + ASN_NGAP_ProcedureStageChoice_ExtIEs__value_PR present; + union ASN_NGAP_ProcedureStageChoice_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ProcedureStageChoice_ExtIEs_t; +typedef struct ASN_NGAP_ENB_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ENB_ID_ExtIEs__value { + ASN_NGAP_ENB_ID_ExtIEs__value_PR present; + union ASN_NGAP_ENB_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ENB_ID_ExtIEs_t; +typedef struct ASN_NGAP_EventTrigger_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_EventTrigger_ExtIEs__value { + ASN_NGAP_EventTrigger_ExtIEs__value_PR present; + union ASN_NGAP_EventTrigger_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_EventTrigger_ExtIEs_t; +typedef struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value { + ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__value_PR present; + union ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_t; +typedef struct ASN_NGAP_GlobalRANNodeID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GlobalRANNodeID_ExtIEs__value { + ASN_NGAP_GlobalRANNodeID_ExtIEs__value_PR present; + union ASN_NGAP_GlobalRANNodeID_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_GlobalTNGF_ID_t GlobalTNGF_ID; + ASN_NGAP_GlobalTWIF_ID_t GlobalTWIF_ID; + ASN_NGAP_GlobalW_AGF_ID_t GlobalW_AGF_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; +} ASN_NGAP_GlobalRANNodeID_ExtIEs_t; +typedef struct ASN_NGAP_GNB_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_GNB_ID_ExtIEs__value { + ASN_NGAP_GNB_ID_ExtIEs__value_PR present; + union ASN_NGAP_GNB_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_GNB_ID_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONTransferType_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONTransferType_ExtIEs__value { + ASN_NGAP_IntersystemSONTransferType_ExtIEs__value_PR present; + union ASN_NGAP_IntersystemSONTransferType_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_IntersystemSONTransferType_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONInformation_ExtIEs__value { + ASN_NGAP_IntersystemSONInformation_ExtIEs__value_PR present; + union ASN_NGAP_IntersystemSONInformation_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_IntersystemSONInformationRequest_t IntersystemSONInformationRequest; + ASN_NGAP_IntersystemSONInformationReply_t IntersystemSONInformationReply; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformation_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value { + ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__value_PR present; + union ASN_NGAP_IntersystemSONInformationRequest_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_t; +typedef struct ASN_NGAP_ReportingSystem_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ReportingSystem_ExtIEs__value { + ASN_NGAP_ReportingSystem_ExtIEs__value_PR present; + union ASN_NGAP_ReportingSystem_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ReportingSystem_ExtIEs_t; +typedef struct ASN_NGAP_ReportType_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ReportType_ExtIEs__value { + ASN_NGAP_ReportType_ExtIEs__value_PR present; + union ASN_NGAP_ReportType_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ReportType_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value { + ASN_NGAP_IntersystemSONInformationReply_ExtIEs__value_PR present; + union ASN_NGAP_IntersystemSONInformationReply_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_IntersystemSONInformationReply_ExtIEs_t; +typedef struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value { + ASN_NGAP_IntersystemSONInformationReport_ExtIEs__value_PR present; + union ASN_NGAP_IntersystemSONInformationReport_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_IntersystemCellStateIndication_t IntersystemCellStateIndication; + ASN_NGAP_IntersystemResourceStatusReport_t IntersystemResourceStatusReport; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_IntersystemSONInformationReport_ExtIEs_t; +typedef struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value { + ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__value_PR present; + union ASN_NGAP_ResourceStatusReportingSystem_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_t; +typedef struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value { + ASN_NGAP_InterSystemHandoverReportType_ExtIEs__value_PR present; + union ASN_NGAP_InterSystemHandoverReportType_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_InterSystemHandoverReportType_ExtIEs_t; +typedef struct ASN_NGAP_LastVisitedCellInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LastVisitedCellInformation_ExtIEs__value { + ASN_NGAP_LastVisitedCellInformation_ExtIEs__value_PR present; + union ASN_NGAP_LastVisitedCellInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_LastVisitedCellInformation_ExtIEs_t; +typedef struct ASN_NGAP_LoggedMDTTrigger_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LoggedMDTTrigger_ExtIEs__value { + ASN_NGAP_LoggedMDTTrigger_ExtIEs__value_PR present; + union ASN_NGAP_LoggedMDTTrigger_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_LoggedMDTTrigger_ExtIEs_t; +typedef struct ASN_NGAP_MRB_ProgressInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MRB_ProgressInformation_ExtIEs__value { + ASN_NGAP_MRB_ProgressInformation_ExtIEs__value_PR present; + union ASN_NGAP_MRB_ProgressInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MRB_ProgressInformation_ExtIEs_t; +typedef struct ASN_NGAP_MBS_ServiceArea_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_ServiceArea_ExtIEs__value { + ASN_NGAP_MBS_ServiceArea_ExtIEs__value_PR present; + union ASN_NGAP_MBS_ServiceArea_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MBS_ServiceArea_ExtIEs_t; +typedef struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value { + ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__value_PR present; + union ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_t; +typedef struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value { + ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__value_PR present; + union ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_t; +typedef struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value { + ASN_NGAP_MDT_AlignmentInfo_ExtIEs__value_PR present; + union ASN_NGAP_MDT_AlignmentInfo_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MDT_AlignmentInfo_ExtIEs_t; +typedef struct ASN_NGAP_MDTModeNr_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MDTModeNr_ExtIEs__value { + ASN_NGAP_MDTModeNr_ExtIEs__value_PR present; + union ASN_NGAP_MDTModeNr_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_MDTModeNr_ExtIEs_t; +typedef struct ASN_NGAP_M1ThresholdType_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_M1ThresholdType_ExtIEs__value { + ASN_NGAP_M1ThresholdType_ExtIEs__value_PR present; + union ASN_NGAP_M1ThresholdType_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_M1ThresholdType_ExtIEs_t; +typedef struct ASN_NGAP_N3IWF_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_N3IWF_ID_ExtIEs__value { + ASN_NGAP_N3IWF_ID_ExtIEs__value_PR present; + union ASN_NGAP_N3IWF_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_N3IWF_ID_ExtIEs_t; +typedef struct ASN_NGAP_NgENB_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NgENB_ID_ExtIEs__value { + ASN_NGAP_NgENB_ID_ExtIEs__value_PR present; + union ASN_NGAP_NgENB_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NgENB_ID_ExtIEs_t; +typedef struct ASN_NGAP_NGRAN_CGI_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGRAN_CGI_ExtIEs__value { + ASN_NGAP_NGRAN_CGI_ExtIEs__value_PR present; + union ASN_NGAP_NGRAN_CGI_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NGRAN_CGI_ExtIEs_t; +typedef struct ASN_NGAP_NPN_AccessInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NPN_AccessInformation_ExtIEs__value { + ASN_NGAP_NPN_AccessInformation_ExtIEs__value_PR present; + union ASN_NGAP_NPN_AccessInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NPN_AccessInformation_ExtIEs_t; +typedef struct ASN_NGAP_NPN_MobilityInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NPN_MobilityInformation_ExtIEs__value { + ASN_NGAP_NPN_MobilityInformation_ExtIEs__value_PR present; + union ASN_NGAP_NPN_MobilityInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NPN_MobilityInformation_ExtIEs_t; +typedef struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value { + ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__value_PR present; + union ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_t; +typedef struct ASN_NGAP_NPN_Support_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NPN_Support_ExtIEs__value { + ASN_NGAP_NPN_Support_ExtIEs__value_PR present; + union ASN_NGAP_NPN_Support_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_NPN_Support_ExtIEs_t; +typedef struct ASN_NGAP_OverloadResponse_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_OverloadResponse_ExtIEs__value { + ASN_NGAP_OverloadResponse_ExtIEs__value_PR present; + union ASN_NGAP_OverloadResponse_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_OverloadResponse_ExtIEs_t; +typedef struct ASN_NGAP_PWSFailedCellIDList_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PWSFailedCellIDList_ExtIEs__value { + ASN_NGAP_PWSFailedCellIDList_ExtIEs__value_PR present; + union ASN_NGAP_PWSFailedCellIDList_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_PWSFailedCellIDList_ExtIEs_t; +typedef struct ASN_NGAP_QosCharacteristics_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_QosCharacteristics_ExtIEs__value { + ASN_NGAP_QosCharacteristics_ExtIEs__value_PR present; + union ASN_NGAP_QosCharacteristics_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_QosCharacteristics_ExtIEs_t; +typedef struct ASN_NGAP_ResetType_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ResetType_ExtIEs__value { + ASN_NGAP_ResetType_ExtIEs__value_PR present; + union ASN_NGAP_ResetType_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_ResetType_ExtIEs_t; +typedef struct ASN_NGAP_SensorNameConfig_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SensorNameConfig_ExtIEs__value { + ASN_NGAP_SensorNameConfig_ExtIEs__value_PR present; + union ASN_NGAP_SensorNameConfig_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_SensorNameConfig_ExtIEs_t; +typedef struct ASN_NGAP_SONInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SONInformation_ExtIEs__value { + ASN_NGAP_SONInformation_ExtIEs__value_PR present; + union ASN_NGAP_SONInformation_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_SONInformationReport_t SONInformationReport; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformation_ExtIEs_t; +typedef struct ASN_NGAP_SONInformationReport_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SONInformationReport_ExtIEs__value { + ASN_NGAP_SONInformationReport_ExtIEs__value_PR present; + union ASN_NGAP_SONInformationReport_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_SuccessfulHandoverReportList_t SuccessfulHandoverReportList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformationReport_ExtIEs_t; +typedef struct ASN_NGAP_SourceNodeID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SourceNodeID_ExtIEs__value { + ASN_NGAP_SourceNodeID_ExtIEs__value_PR present; + union ASN_NGAP_SourceNodeID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_SourceNodeID_ExtIEs_t; +typedef struct ASN_NGAP_TargetID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TargetID_ExtIEs__value { + ASN_NGAP_TargetID_ExtIEs__value_PR present; + union ASN_NGAP_TargetID_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_TargetRNC_ID_t TargetRNC_ID; + ASN_NGAP_TargetHomeENB_ID_t TargetHomeENB_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; +} ASN_NGAP_TargetID_ExtIEs_t; +typedef struct ASN_NGAP_TNGF_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TNGF_ID_ExtIEs__value { + ASN_NGAP_TNGF_ID_ExtIEs__value_PR present; + union ASN_NGAP_TNGF_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_TNGF_ID_ExtIEs_t; +typedef struct ASN_NGAP_TWIF_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TWIF_ID_ExtIEs__value { + ASN_NGAP_TWIF_ID_ExtIEs__value_PR present; + union ASN_NGAP_TWIF_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_TWIF_ID_ExtIEs_t; +typedef struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value { + ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__value_PR present; + union ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_t; +typedef struct ASN_NGAP_UEIdentityIndexValue_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEIdentityIndexValue_ExtIEs__value { + ASN_NGAP_UEIdentityIndexValue_ExtIEs__value_PR present; + union ASN_NGAP_UEIdentityIndexValue_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UEIdentityIndexValue_ExtIEs_t; +typedef struct ASN_NGAP_UE_NGAP_IDs_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UE_NGAP_IDs_ExtIEs__value { + ASN_NGAP_UE_NGAP_IDs_ExtIEs__value_PR present; + union ASN_NGAP_UE_NGAP_IDs_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UE_NGAP_IDs_ExtIEs_t; +typedef struct ASN_NGAP_UEPagingIdentity_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEPagingIdentity_ExtIEs__value { + ASN_NGAP_UEPagingIdentity_ExtIEs__value_PR present; + union ASN_NGAP_UEPagingIdentity_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UEPagingIdentity_ExtIEs_t; +typedef struct ASN_NGAP_UERLFReportContainer_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERLFReportContainer_ExtIEs__value { + ASN_NGAP_UERLFReportContainer_ExtIEs__value_PR present; + union ASN_NGAP_UERLFReportContainer_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UERLFReportContainer_ExtIEs_t; +typedef struct ASN_NGAP_UPTransportLayerInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UPTransportLayerInformation_ExtIEs__value { + ASN_NGAP_UPTransportLayerInformation_ExtIEs__value_PR present; + union ASN_NGAP_UPTransportLayerInformation_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_UPTransportLayerInformation_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformation_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformation_ExtIEs__value { + ASN_NGAP_UserLocationInformation_ExtIEs__value_PR present; + union ASN_NGAP_UserLocationInformation_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_UserLocationInformationTNGF_t UserLocationInformationTNGF; + ASN_NGAP_UserLocationInformationTWIF_t UserLocationInformationTWIF; + ASN_NGAP_UserLocationInformationW_AGF_t UserLocationInformationW_AGF; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformation_ExtIEs_t; +typedef struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value { + ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__value_PR present; + union ASN_NGAP_UserLocationInformationW_AGF_ExtIEs__ASN_NGAP_value_u { + ASN_NGAP_GlobalCable_ID_t GlobalCable_ID; + ASN_NGAP_HFCNode_ID_new_t HFCNode_ID_new; + ASN_NGAP_GlobalCable_ID_new_t GlobalCable_ID_new; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_t; +typedef struct ASN_NGAP_W_AGF_ID_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_W_AGF_ID_ExtIEs__value { + ASN_NGAP_W_AGF_ID_ExtIEs__value_PR present; + union ASN_NGAP_W_AGF_ID_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_W_AGF_ID_ExtIEs_t; +typedef struct ASN_NGAP_WarningAreaList_ExtIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WarningAreaList_ExtIEs__value { + ASN_NGAP_WarningAreaList_ExtIEs__value_PR present; + union ASN_NGAP_WarningAreaList_ExtIEs__ASN_NGAP_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; +} ASN_NGAP_WarningAreaList_ExtIEs_t; +typedef struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value { + ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__value_PR present; + union ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionTNLInfo5GC_t MBS_SessionTNLInfo5GC; + ASN_NGAP_MBS_QoSFlowsToBeSetupList_t MBS_QoSFlowsToBeSetupList; + ASN_NGAP_MBS_SessionFSAIDList_t MBS_SessionFSAIDList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_t; +typedef struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value { + ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__value_PR present; + union ASN_NGAP_MulticastSessionUpdateRequestTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_ServiceArea_t MBS_ServiceArea; + ASN_NGAP_MBS_QoSFlowsToBeSetupList_t MBS_QoSFlowsToBeSetupList; + ASN_NGAP_QosFlowListWithCause_t QosFlowListWithCause; + ASN_NGAP_MBS_SessionTNLInfo5GC_t MBS_SessionTNLInfo5GC; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value { + ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_PDUSessionAggregateMaximumBitRate_t PDUSessionAggregateMaximumBitRate; + ASN_NGAP_UL_NGU_UP_TNLModifyList_t UL_NGU_UP_TNLModifyList; + ASN_NGAP_NetworkInstance_t NetworkInstance; + ASN_NGAP_QosFlowAddOrModifyRequestList_t QosFlowAddOrModifyRequestList; + ASN_NGAP_QosFlowListWithCause_t QosFlowListWithCause; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList; + ASN_NGAP_CommonNetworkInstance_t CommonNetworkInstance; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList_1; + ASN_NGAP_CommonNetworkInstance_t CommonNetworkInstance_1; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_SecurityIndication_t SecurityIndication; + ASN_NGAP_MBSSessionSetuporModifyRequestList_t MBSSessionSetuporModifyRequestList; + ASN_NGAP_MBSSessionToReleaseList_t MBSSessionToReleaseList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value { + ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_PDUSessionAggregateMaximumBitRate_t PDUSessionAggregateMaximumBitRate; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList; + ASN_NGAP_DataForwardingNotPossible_t DataForwardingNotPossible; + ASN_NGAP_PDUSessionType_t PDUSessionType; + ASN_NGAP_SecurityIndication_t SecurityIndication; + ASN_NGAP_NetworkInstance_t NetworkInstance; + ASN_NGAP_QosFlowSetupRequestList_t QosFlowSetupRequestList; + ASN_NGAP_CommonNetworkInstance_t CommonNetworkInstance; + ASN_NGAP_DirectForwardingPathAvailability_t DirectForwardingPathAvailability; + ASN_NGAP_UPTransportLayerInformation_t UPTransportLayerInformation_1; + ASN_NGAP_UPTransportLayerInformationList_t UPTransportLayerInformationList_1; + ASN_NGAP_CommonNetworkInstance_t CommonNetworkInstance_1; + ASN_NGAP_RedundantPDUSessionInformation_t RedundantPDUSessionInformation; + ASN_NGAP_MBSSessionSetupRequestList_t MBSSessionSetupRequestList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupRequestIEs__value { + ASN_NGAP_PDUSessionResourceSetupRequestIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceSetupRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANPagingPriority_t RANPagingPriority; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_PDUSessionResourceSetupListSUReq_t PDUSessionResourceSetupListSUReq; + ASN_NGAP_UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; + ASN_NGAP_UESliceMaximumBitRateList_t UESliceMaximumBitRateList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupRequestIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceSetupResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceSetupResponseIEs__value { + ASN_NGAP_PDUSessionResourceSetupResponseIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceSetupResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceSetupListSURes_t PDUSessionResourceSetupListSURes; + ASN_NGAP_PDUSessionResourceFailedToSetupListSURes_t PDUSessionResourceFailedToSetupListSURes; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceSetupResponseIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value { + ASN_NGAP_PDUSessionResourceReleaseCommandIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceReleaseCommandIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANPagingPriority_t RANPagingPriority; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_PDUSessionResourceToReleaseListRelCmd_t PDUSessionResourceToReleaseListRelCmd; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceReleaseCommandIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value { + ASN_NGAP_PDUSessionResourceReleaseResponseIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceReleaseResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceReleasedListRelRes_t PDUSessionResourceReleasedListRelRes; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_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; +} ASN_NGAP_PDUSessionResourceReleaseResponseIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyRequestIEs__value { + ASN_NGAP_PDUSessionResourceModifyRequestIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceModifyRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANPagingPriority_t RANPagingPriority; + ASN_NGAP_PDUSessionResourceModifyListModReq_t PDUSessionResourceModifyListModReq; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyRequestIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyResponseIEs__value { + ASN_NGAP_PDUSessionResourceModifyResponseIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceModifyResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceModifyListModRes_t PDUSessionResourceModifyListModRes; + ASN_NGAP_PDUSessionResourceFailedToModifyListModRes_t PDUSessionResourceFailedToModifyListModRes; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_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; +} ASN_NGAP_PDUSessionResourceModifyResponseIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceNotifyIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceNotifyIEs__value { + ASN_NGAP_PDUSessionResourceNotifyIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceNotifyIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceNotifyList_t PDUSessionResourceNotifyList; + ASN_NGAP_PDUSessionResourceReleasedListNot_t PDUSessionResourceReleasedListNot; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceNotifyIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value { + ASN_NGAP_PDUSessionResourceModifyIndicationIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceModifyIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceModifyListModInd_t PDUSessionResourceModifyListModInd; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PDUSessionResourceModifyIndicationIEs_t; +typedef struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value { + ASN_NGAP_PDUSessionResourceModifyConfirmIEs__value_PR present; + union ASN_NGAP_PDUSessionResourceModifyConfirmIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceModifyListModCfm_t PDUSessionResourceModifyListModCfm; + ASN_NGAP_PDUSessionResourceFailedToModifyListModCfm_t PDUSessionResourceFailedToModifyListModCfm; + ASN_NGAP_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; +} ASN_NGAP_PDUSessionResourceModifyConfirmIEs_t; +typedef struct ASN_NGAP_InitialContextSetupRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InitialContextSetupRequestIEs__value { + ASN_NGAP_InitialContextSetupRequestIEs__value_PR present; + union ASN_NGAP_InitialContextSetupRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_AMFName_t AMFName; + ASN_NGAP_UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_t CoreNetworkAssistanceInformationForInactive; + ASN_NGAP_GUAMI_t GUAMI; + ASN_NGAP_PDUSessionResourceSetupListCxtReq_t PDUSessionResourceSetupListCxtReq; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_UESecurityCapabilities_t UESecurityCapabilities; + ASN_NGAP_SecurityKey_t SecurityKey; + ASN_NGAP_TraceActivation_t TraceActivation; + ASN_NGAP_MobilityRestrictionList_t MobilityRestrictionList; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_IndexToRFSP_t IndexToRFSP; + ASN_NGAP_MaskedIMEISV_t MaskedIMEISV; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_EmergencyFallbackIndicator_t EmergencyFallbackIndicator; + ASN_NGAP_RRCInactiveTransitionReportRequest_t RRCInactiveTransitionReportRequest; + ASN_NGAP_UERadioCapabilityForPaging_t UERadioCapabilityForPaging; + ASN_NGAP_RedirectionVoiceFallback_t RedirectionVoiceFallback; + ASN_NGAP_LocationReportingRequestType_t LocationReportingRequestType; + ASN_NGAP_CNAssistedRANTuning_t CNAssistedRANTuning; + ASN_NGAP_SRVCCOperationPossible_t SRVCCOperationPossible; + ASN_NGAP_IAB_Authorized_t IAB_Authorized; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_Extended_ConnectedTime_t Extended_ConnectedTime; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_NRV2XServicesAuthorized_t NRV2XServicesAuthorized; + ASN_NGAP_LTEV2XServicesAuthorized_t LTEV2XServicesAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate; + ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_t LTEUESidelinkAggregateMaximumBitrate; + ASN_NGAP_PC5QoSParameters_t PC5QoSParameters; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_UE_UP_CIoT_Support_t UE_UP_CIoT_Support; + ASN_NGAP_RGLevelWirelineAccessCharacteristics_t RGLevelWirelineAccessCharacteristics; + ASN_NGAP_MDTPLMNList_t MDTPLMNList; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_TimeSyncAssistanceInfo_t TimeSyncAssistanceInfo; + ASN_NGAP_QMCConfigInfo_t QMCConfigInfo; + ASN_NGAP_TargetNSSAIInformation_t TargetNSSAIInformation; + ASN_NGAP_UESliceMaximumBitRateList_t UESliceMaximumBitRateList; + ASN_NGAP_FiveG_ProSeAuthorized_t FiveG_ProSeAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate_1; + ASN_NGAP_FiveG_ProSePC5QoSParameters_t FiveG_ProSePC5QoSParameters; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialContextSetupRequestIEs_t; +typedef struct ASN_NGAP_InitialContextSetupResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InitialContextSetupResponseIEs__value { + ASN_NGAP_InitialContextSetupResponseIEs__value_PR present; + union ASN_NGAP_InitialContextSetupResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceSetupListCxtRes_t PDUSessionResourceSetupListCxtRes; + ASN_NGAP_PDUSessionResourceFailedToSetupListCxtRes_t PDUSessionResourceFailedToSetupListCxtRes; + ASN_NGAP_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; +} ASN_NGAP_InitialContextSetupResponseIEs_t; +typedef struct ASN_NGAP_InitialContextSetupFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InitialContextSetupFailureIEs__value { + ASN_NGAP_InitialContextSetupFailureIEs__value_PR present; + union ASN_NGAP_InitialContextSetupFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceFailedToSetupListCxtFail_t PDUSessionResourceFailedToSetupListCxtFail; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_InitialContextSetupFailureIEs_t; +typedef struct ASN_NGAP_UEContextReleaseRequest_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextReleaseRequest_IEs__value { + ASN_NGAP_UEContextReleaseRequest_IEs__value_PR present; + union ASN_NGAP_UEContextReleaseRequest_IEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceListCxtRelReq_t PDUSessionResourceListCxtRelReq; + ASN_NGAP_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; +} ASN_NGAP_UEContextReleaseRequest_IEs_t; +typedef struct ASN_NGAP_UEContextReleaseCommand_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextReleaseCommand_IEs__value { + ASN_NGAP_UEContextReleaseCommand_IEs__value_PR present; + union ASN_NGAP_UEContextReleaseCommand_IEs__ASN_NGAP_value_u { + ASN_NGAP_UE_NGAP_IDs_t UE_NGAP_IDs; + ASN_NGAP_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; +} ASN_NGAP_UEContextReleaseCommand_IEs_t; +typedef struct ASN_NGAP_UEContextReleaseComplete_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextReleaseComplete_IEs__value { + ASN_NGAP_UEContextReleaseComplete_IEs__value_PR present; + union ASN_NGAP_UEContextReleaseComplete_IEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_t InfoOnRecommendedCellsAndRANNodesForPaging; + ASN_NGAP_PDUSessionResourceListCxtRelCpl_t PDUSessionResourceListCxtRelCpl; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_PagingAssisDataforCEcapabUE_t PagingAssisDataforCEcapabUE; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextReleaseComplete_IEs_t; +typedef struct ASN_NGAP_UEContextResumeRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextResumeRequestIEs__value { + ASN_NGAP_UEContextResumeRequestIEs__value_PR present; + union ASN_NGAP_UEContextResumeRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RRCEstablishmentCause_t RRCEstablishmentCause; + ASN_NGAP_PDUSessionResourceResumeListRESReq_t PDUSessionResourceResumeListRESReq; + ASN_NGAP_PDUSessionResourceFailedToResumeListRESReq_t PDUSessionResourceFailedToResumeListRESReq; + ASN_NGAP_Suspend_Request_Indication_t Suspend_Request_Indication; + ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_t InfoOnRecommendedCellsAndRANNodesForPaging; + ASN_NGAP_PagingAssisDataforCEcapabUE_t PagingAssisDataforCEcapabUE; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeRequestIEs_t; +typedef struct ASN_NGAP_UEContextResumeResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextResumeResponseIEs__value { + ASN_NGAP_UEContextResumeResponseIEs__value_PR present; + union ASN_NGAP_UEContextResumeResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceResumeListRESRes_t PDUSessionResourceResumeListRESRes; + ASN_NGAP_PDUSessionResourceFailedToResumeListRESRes_t PDUSessionResourceFailedToResumeListRESRes; + ASN_NGAP_SecurityContext_t SecurityContext; + ASN_NGAP_Suspend_Response_Indication_t Suspend_Response_Indication; + ASN_NGAP_Extended_ConnectedTime_t Extended_ConnectedTime; + ASN_NGAP_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; +} ASN_NGAP_UEContextResumeResponseIEs_t; +typedef struct ASN_NGAP_UEContextResumeFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextResumeFailureIEs__value { + ASN_NGAP_UEContextResumeFailureIEs__value_PR present; + union ASN_NGAP_UEContextResumeFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_UEContextResumeFailureIEs_t; +typedef struct ASN_NGAP_UEContextSuspendRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextSuspendRequestIEs__value { + ASN_NGAP_UEContextSuspendRequestIEs__value_PR present; + union ASN_NGAP_UEContextSuspendRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_t InfoOnRecommendedCellsAndRANNodesForPaging; + ASN_NGAP_PagingAssisDataforCEcapabUE_t PagingAssisDataforCEcapabUE; + ASN_NGAP_PDUSessionResourceSuspendListSUSReq_t PDUSessionResourceSuspendListSUSReq; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendRequestIEs_t; +typedef struct ASN_NGAP_UEContextSuspendResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextSuspendResponseIEs__value { + ASN_NGAP_UEContextSuspendResponseIEs__value_PR present; + union ASN_NGAP_UEContextSuspendResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_SecurityContext_t SecurityContext; + ASN_NGAP_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; +} ASN_NGAP_UEContextSuspendResponseIEs_t; +typedef struct ASN_NGAP_UEContextSuspendFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextSuspendFailureIEs__value { + ASN_NGAP_UEContextSuspendFailureIEs__value_PR present; + union ASN_NGAP_UEContextSuspendFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_UEContextSuspendFailureIEs_t; +typedef struct ASN_NGAP_UEContextModificationRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextModificationRequestIEs__value { + ASN_NGAP_UEContextModificationRequestIEs__value_PR present; + union ASN_NGAP_UEContextModificationRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANPagingPriority_t RANPagingPriority; + ASN_NGAP_SecurityKey_t SecurityKey; + ASN_NGAP_IndexToRFSP_t IndexToRFSP; + ASN_NGAP_UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; + ASN_NGAP_UESecurityCapabilities_t UESecurityCapabilities; + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_t CoreNetworkAssistanceInformationForInactive; + ASN_NGAP_EmergencyFallbackIndicator_t EmergencyFallbackIndicator; + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID_1; + ASN_NGAP_RRCInactiveTransitionReportRequest_t RRCInactiveTransitionReportRequest; + ASN_NGAP_GUAMI_t GUAMI; + ASN_NGAP_CNAssistedRANTuning_t CNAssistedRANTuning; + ASN_NGAP_SRVCCOperationPossible_t SRVCCOperationPossible; + ASN_NGAP_IAB_Authorized_t IAB_Authorized; + ASN_NGAP_NRV2XServicesAuthorized_t NRV2XServicesAuthorized; + ASN_NGAP_LTEV2XServicesAuthorized_t LTEV2XServicesAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate; + ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_t LTEUESidelinkAggregateMaximumBitrate; + ASN_NGAP_PC5QoSParameters_t PC5QoSParameters; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_RGLevelWirelineAccessCharacteristics_t RGLevelWirelineAccessCharacteristics; + ASN_NGAP_TimeSyncAssistanceInfo_t TimeSyncAssistanceInfo; + ASN_NGAP_QMCConfigInfo_t QMCConfigInfo; + ASN_NGAP_QMCDeactivation_t QMCDeactivation; + ASN_NGAP_UESliceMaximumBitRateList_t UESliceMaximumBitRateList; + ASN_NGAP_MDTPLMNModificationList_t MDTPLMNModificationList; + ASN_NGAP_FiveG_ProSeAuthorized_t FiveG_ProSeAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate_1; + ASN_NGAP_FiveG_ProSePC5QoSParameters_t FiveG_ProSePC5QoSParameters; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextModificationRequestIEs_t; +typedef struct ASN_NGAP_UEContextModificationResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextModificationResponseIEs__value { + ASN_NGAP_UEContextModificationResponseIEs__value_PR present; + union ASN_NGAP_UEContextModificationResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RRCState_t RRCState; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_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; +} ASN_NGAP_UEContextModificationResponseIEs_t; +typedef struct ASN_NGAP_UEContextModificationFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEContextModificationFailureIEs__value { + ASN_NGAP_UEContextModificationFailureIEs__value_PR present; + union ASN_NGAP_UEContextModificationFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_UEContextModificationFailureIEs_t; +typedef struct ASN_NGAP_RRCInactiveTransitionReportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RRCInactiveTransitionReportIEs__value { + ASN_NGAP_RRCInactiveTransitionReportIEs__value_PR present; + union ASN_NGAP_RRCInactiveTransitionReportIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RRCState_t RRCState; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RRCInactiveTransitionReportIEs_t; +typedef struct ASN_NGAP_RetrieveUEInformationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RetrieveUEInformationIEs__value { + ASN_NGAP_RetrieveUEInformationIEs__value_PR present; + union ASN_NGAP_RetrieveUEInformationIEs__ASN_NGAP_value_u { + ASN_NGAP_FiveG_S_TMSI_t FiveG_S_TMSI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RetrieveUEInformationIEs_t; +typedef struct ASN_NGAP_UEInformationTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UEInformationTransferIEs__value { + ASN_NGAP_UEInformationTransferIEs__value_PR present; + union ASN_NGAP_UEInformationTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_FiveG_S_TMSI_t FiveG_S_TMSI; + ASN_NGAP_NB_IoT_UEPriority_t NB_IoT_UEPriority; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_S_NSSAI_t S_NSSAI; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_MaskedIMEISV_t MaskedIMEISV; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEInformationTransferIEs_t; +typedef struct ASN_NGAP_RANCPRelocationIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RANCPRelocationIndicationIEs__value { + ASN_NGAP_RANCPRelocationIndicationIEs__value_PR present; + union ASN_NGAP_RANCPRelocationIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_FiveG_S_TMSI_t FiveG_S_TMSI; + ASN_NGAP_EUTRA_CGI_t EUTRA_CGI; + ASN_NGAP_TAI_t TAI; + ASN_NGAP_UL_CP_SecurityInformation_t UL_CP_SecurityInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANCPRelocationIndicationIEs_t; +typedef struct ASN_NGAP_HandoverRequiredIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverRequiredIEs__value { + ASN_NGAP_HandoverRequiredIEs__value_PR present; + union ASN_NGAP_HandoverRequiredIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_HandoverType_t HandoverType; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_TargetID_t TargetID; + ASN_NGAP_DirectForwardingPathAvailability_t DirectForwardingPathAvailability; + ASN_NGAP_PDUSessionResourceListHORqd_t PDUSessionResourceListHORqd; + ASN_NGAP_SourceToTarget_TransparentContainer_t SourceToTarget_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequiredIEs_t; +typedef struct ASN_NGAP_HandoverCommandIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverCommandIEs__value { + ASN_NGAP_HandoverCommandIEs__value_PR present; + union ASN_NGAP_HandoverCommandIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_HandoverType_t HandoverType; + ASN_NGAP_NASSecurityParametersFromNGRAN_t NASSecurityParametersFromNGRAN; + ASN_NGAP_PDUSessionResourceHandoverList_t PDUSessionResourceHandoverList; + ASN_NGAP_PDUSessionResourceToReleaseListHOCmd_t PDUSessionResourceToReleaseListHOCmd; + ASN_NGAP_TargetToSource_TransparentContainer_t TargetToSource_TransparentContainer; + ASN_NGAP_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; +} ASN_NGAP_HandoverCommandIEs_t; +typedef struct ASN_NGAP_HandoverPreparationFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverPreparationFailureIEs__value { + ASN_NGAP_HandoverPreparationFailureIEs__value_PR present; + union ASN_NGAP_HandoverPreparationFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_TargettoSource_Failure_TransparentContainer_t TargettoSource_Failure_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverPreparationFailureIEs_t; +typedef struct ASN_NGAP_HandoverRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverRequestIEs__value { + ASN_NGAP_HandoverRequestIEs__value_PR present; + union ASN_NGAP_HandoverRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_HandoverType_t HandoverType; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_t CoreNetworkAssistanceInformationForInactive; + ASN_NGAP_UESecurityCapabilities_t UESecurityCapabilities; + ASN_NGAP_SecurityContext_t SecurityContext; + ASN_NGAP_NewSecurityContextInd_t NewSecurityContextInd; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_PDUSessionResourceSetupListHOReq_t PDUSessionResourceSetupListHOReq; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_TraceActivation_t TraceActivation; + ASN_NGAP_MaskedIMEISV_t MaskedIMEISV; + ASN_NGAP_SourceToTarget_TransparentContainer_t SourceToTarget_TransparentContainer; + ASN_NGAP_MobilityRestrictionList_t MobilityRestrictionList; + ASN_NGAP_LocationReportingRequestType_t LocationReportingRequestType; + ASN_NGAP_RRCInactiveTransitionReportRequest_t RRCInactiveTransitionReportRequest; + ASN_NGAP_GUAMI_t GUAMI; + ASN_NGAP_RedirectionVoiceFallback_t RedirectionVoiceFallback; + ASN_NGAP_CNAssistedRANTuning_t CNAssistedRANTuning; + ASN_NGAP_SRVCCOperationPossible_t SRVCCOperationPossible; + ASN_NGAP_IAB_Authorized_t IAB_Authorized; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_NRV2XServicesAuthorized_t NRV2XServicesAuthorized; + ASN_NGAP_LTEV2XServicesAuthorized_t LTEV2XServicesAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate; + ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_t LTEUESidelinkAggregateMaximumBitrate; + ASN_NGAP_PC5QoSParameters_t PC5QoSParameters; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_UE_UP_CIoT_Support_t UE_UP_CIoT_Support; + ASN_NGAP_MDTPLMNList_t MDTPLMNList; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_Extended_ConnectedTime_t Extended_ConnectedTime; + ASN_NGAP_TimeSyncAssistanceInfo_t TimeSyncAssistanceInfo; + ASN_NGAP_UESliceMaximumBitRateList_t UESliceMaximumBitRateList; + ASN_NGAP_FiveG_ProSeAuthorized_t FiveG_ProSeAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate_1; + ASN_NGAP_FiveG_ProSePC5QoSParameters_t FiveG_ProSePC5QoSParameters; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequestIEs_t; +typedef struct ASN_NGAP_HandoverRequestAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverRequestAcknowledgeIEs__value { + ASN_NGAP_HandoverRequestAcknowledgeIEs__value_PR present; + union ASN_NGAP_HandoverRequestAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceAdmittedList_t PDUSessionResourceAdmittedList; + ASN_NGAP_PDUSessionResourceFailedToSetupListHOAck_t PDUSessionResourceFailedToSetupListHOAck; + ASN_NGAP_TargetToSource_TransparentContainer_t TargetToSource_TransparentContainer; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_NPN_AccessInformation_t NPN_AccessInformation; + ASN_NGAP_RedCapIndication_t RedCapIndication; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverRequestAcknowledgeIEs_t; +typedef struct ASN_NGAP_HandoverFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverFailureIEs__value { + ASN_NGAP_HandoverFailureIEs__value_PR present; + union ASN_NGAP_HandoverFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_TargettoSource_Failure_TransparentContainer_t TargettoSource_Failure_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverFailureIEs_t; +typedef struct ASN_NGAP_HandoverNotifyIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverNotifyIEs__value { + ASN_NGAP_HandoverNotifyIEs__value_PR present; + union ASN_NGAP_HandoverNotifyIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_NotifySourceNGRANNode_t NotifySourceNGRANNode; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_HandoverNotifyIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestIEs__value { + ASN_NGAP_PathSwitchRequestIEs__value_PR present; + union ASN_NGAP_PathSwitchRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_UESecurityCapabilities_t UESecurityCapabilities; + ASN_NGAP_PDUSessionResourceToBeSwitchedDLList_t PDUSessionResourceToBeSwitchedDLList; + ASN_NGAP_PDUSessionResourceFailedToSetupListPSReq_t PDUSessionResourceFailedToSetupListPSReq; + ASN_NGAP_RRCEstablishmentCause_t RRCEstablishmentCause; + ASN_NGAP_RedCapIndication_t RedCapIndication; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value { + ASN_NGAP_PathSwitchRequestAcknowledgeIEs__value_PR present; + union ASN_NGAP_PathSwitchRequestAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UESecurityCapabilities_t UESecurityCapabilities; + ASN_NGAP_SecurityContext_t SecurityContext; + ASN_NGAP_NewSecurityContextInd_t NewSecurityContextInd; + ASN_NGAP_PDUSessionResourceSwitchedList_t PDUSessionResourceSwitchedList; + ASN_NGAP_PDUSessionResourceReleasedListPSAck_t PDUSessionResourceReleasedListPSAck; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_CoreNetworkAssistanceInformationForInactive_t CoreNetworkAssistanceInformationForInactive; + ASN_NGAP_RRCInactiveTransitionReportRequest_t RRCInactiveTransitionReportRequest; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_RedirectionVoiceFallback_t RedirectionVoiceFallback; + ASN_NGAP_CNAssistedRANTuning_t CNAssistedRANTuning; + ASN_NGAP_SRVCCOperationPossible_t SRVCCOperationPossible; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_Extended_ConnectedTime_t Extended_ConnectedTime; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_NRV2XServicesAuthorized_t NRV2XServicesAuthorized; + ASN_NGAP_LTEV2XServicesAuthorized_t LTEV2XServicesAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate; + ASN_NGAP_LTEUESidelinkAggregateMaximumBitrate_t LTEUESidelinkAggregateMaximumBitrate; + ASN_NGAP_PC5QoSParameters_t PC5QoSParameters; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_UE_UP_CIoT_Support_t UE_UP_CIoT_Support; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_MDTPLMNList_t MDTPLMNList; + ASN_NGAP_TimeSyncAssistanceInfo_t TimeSyncAssistanceInfo; + ASN_NGAP_FiveG_ProSeAuthorized_t FiveG_ProSeAuthorized; + ASN_NGAP_NRUESidelinkAggregateMaximumBitrate_t NRUESidelinkAggregateMaximumBitrate_1; + ASN_NGAP_FiveG_ProSePC5QoSParameters_t FiveG_ProSePC5QoSParameters; + ASN_NGAP_MDTPLMNModificationList_t MDTPLMNModificationList; + ASN_NGAP_IAB_Authorized_t IAB_Authorized; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PathSwitchRequestAcknowledgeIEs_t; +typedef struct ASN_NGAP_PathSwitchRequestFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PathSwitchRequestFailureIEs__value { + ASN_NGAP_PathSwitchRequestFailureIEs__value_PR present; + union ASN_NGAP_PathSwitchRequestFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceReleasedListPSFail_t PDUSessionResourceReleasedListPSFail; + ASN_NGAP_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; +} ASN_NGAP_PathSwitchRequestFailureIEs_t; +typedef struct ASN_NGAP_HandoverCancelIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverCancelIEs__value { + ASN_NGAP_HandoverCancelIEs__value_PR present; + union ASN_NGAP_HandoverCancelIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_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; +} ASN_NGAP_HandoverCancelIEs_t; +typedef struct ASN_NGAP_HandoverCancelAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverCancelAcknowledgeIEs__value { + ASN_NGAP_HandoverCancelAcknowledgeIEs__value_PR present; + union ASN_NGAP_HandoverCancelAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_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; +} ASN_NGAP_HandoverCancelAcknowledgeIEs_t; +typedef struct ASN_NGAP_HandoverSuccessIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_HandoverSuccessIEs__value { + ASN_NGAP_HandoverSuccessIEs__value_PR present; + union ASN_NGAP_HandoverSuccessIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_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; +} ASN_NGAP_HandoverSuccessIEs_t; +typedef struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value { + ASN_NGAP_UplinkRANEarlyStatusTransferIEs__value_PR present; + union ASN_NGAP_UplinkRANEarlyStatusTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_EarlyStatusTransfer_TransparentContainer_t EarlyStatusTransfer_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANEarlyStatusTransferIEs_t; +typedef struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value { + ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__value_PR present; + union ASN_NGAP_DownlinkRANEarlyStatusTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_EarlyStatusTransfer_TransparentContainer_t EarlyStatusTransfer_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_t; +typedef struct ASN_NGAP_UplinkRANStatusTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkRANStatusTransferIEs__value { + ASN_NGAP_UplinkRANStatusTransferIEs__value_PR present; + union ASN_NGAP_UplinkRANStatusTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANStatusTransfer_TransparentContainer_t RANStatusTransfer_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANStatusTransferIEs_t; +typedef struct ASN_NGAP_DownlinkRANStatusTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkRANStatusTransferIEs__value { + ASN_NGAP_DownlinkRANStatusTransferIEs__value_PR present; + union ASN_NGAP_DownlinkRANStatusTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RANStatusTransfer_TransparentContainer_t RANStatusTransfer_TransparentContainer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANStatusTransferIEs_t; +typedef struct ASN_NGAP_PagingIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PagingIEs__value { + ASN_NGAP_PagingIEs__value_PR present; + union ASN_NGAP_PagingIEs__ASN_NGAP_value_u { + ASN_NGAP_UEPagingIdentity_t UEPagingIdentity; + ASN_NGAP_PagingDRX_t PagingDRX; + ASN_NGAP_TAIListForPaging_t TAIListForPaging; + ASN_NGAP_PagingPriority_t PagingPriority; + ASN_NGAP_UERadioCapabilityForPaging_t UERadioCapabilityForPaging; + ASN_NGAP_PagingOrigin_t PagingOrigin; + ASN_NGAP_AssistanceDataForPaging_t AssistanceDataForPaging; + ASN_NGAP_NB_IoT_Paging_eDRXInfo_t NB_IoT_Paging_eDRXInfo; + ASN_NGAP_NB_IoT_PagingDRX_t NB_IoT_PagingDRX; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_WUS_Assistance_Information_t WUS_Assistance_Information; + ASN_NGAP_EUTRA_PagingeDRXInformation_t EUTRA_PagingeDRXInformation; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_NR_PagingeDRXInformation_t NR_PagingeDRXInformation; + ASN_NGAP_PagingCause_t PagingCause; + ASN_NGAP_PEIPSassistanceInformation_t PEIPSassistanceInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PagingIEs_t; +typedef struct ASN_NGAP_InitialUEMessage_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_InitialUEMessage_IEs__value { + ASN_NGAP_InitialUEMessage_IEs__value_PR present; + union ASN_NGAP_InitialUEMessage_IEs__ASN_NGAP_value_u { + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_RRCEstablishmentCause_t RRCEstablishmentCause; + ASN_NGAP_FiveG_S_TMSI_t FiveG_S_TMSI; + ASN_NGAP_AMFSetID_t AMFSetID; + ASN_NGAP_UEContextRequest_t UEContextRequest; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_SourceToTarget_AMFInformationReroute_t SourceToTarget_AMFInformationReroute; + ASN_NGAP_PLMNIdentity_t PLMNIdentity; + ASN_NGAP_IABNodeIndication_t IABNodeIndication; + ASN_NGAP_CEmodeBSupport_Indicator_t CEmodeBSupport_Indicator; + ASN_NGAP_LTEM_Indication_t LTEM_Indication; + ASN_NGAP_EDT_Session_t EDT_Session; + ASN_NGAP_AuthenticatedIndication_t AuthenticatedIndication; + ASN_NGAP_NPN_AccessInformation_t NPN_AccessInformation; + ASN_NGAP_RedCapIndication_t RedCapIndication; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_InitialUEMessage_IEs_t; +typedef struct ASN_NGAP_DownlinkNASTransport_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkNASTransport_IEs__value { + ASN_NGAP_DownlinkNASTransport_IEs__value_PR present; + union ASN_NGAP_DownlinkNASTransport_IEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_AMFName_t AMFName; + ASN_NGAP_RANPagingPriority_t RANPagingPriority; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_MobilityRestrictionList_t MobilityRestrictionList; + ASN_NGAP_IndexToRFSP_t IndexToRFSP; + ASN_NGAP_UEAggregateMaximumBitRate_t UEAggregateMaximumBitRate; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_SRVCCOperationPossible_t SRVCCOperationPossible; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_Extended_ConnectedTime_t Extended_ConnectedTime; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_UECapabilityInfoRequest_t UECapabilityInfoRequest; + ASN_NGAP_EndIndication_t EndIndication; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_TargetNSSAIInformation_t TargetNSSAIInformation; + ASN_NGAP_MaskedIMEISV_t MaskedIMEISV; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkNASTransport_IEs_t; +typedef struct ASN_NGAP_UplinkNASTransport_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkNASTransport_IEs__value { + ASN_NGAP_UplinkNASTransport_IEs__value_PR present; + union ASN_NGAP_UplinkNASTransport_IEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + OCTET_STRING_t OCTET_STRING; + OCTET_STRING_t OCTET_STRING_1; + OCTET_STRING_t OCTET_STRING_2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkNASTransport_IEs_t; +typedef struct ASN_NGAP_NASNonDeliveryIndication_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NASNonDeliveryIndication_IEs__value { + ASN_NGAP_NASNonDeliveryIndication_IEs__value_PR present; + union ASN_NGAP_NASNonDeliveryIndication_IEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NAS_PDU_t NAS_PDU; + ASN_NGAP_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; +} ASN_NGAP_NASNonDeliveryIndication_IEs_t; +typedef struct ASN_NGAP_RerouteNASRequest_IEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RerouteNASRequest_IEs__value { + ASN_NGAP_RerouteNASRequest_IEs__value_PR present; + union ASN_NGAP_RerouteNASRequest_IEs__ASN_NGAP_value_u { + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + OCTET_STRING_t OCTET_STRING; + ASN_NGAP_AMFSetID_t AMFSetID; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_SourceToTarget_AMFInformationReroute_t SourceToTarget_AMFInformationReroute; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RerouteNASRequest_IEs_t; +typedef struct ASN_NGAP_NGSetupRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGSetupRequestIEs__value { + ASN_NGAP_NGSetupRequestIEs__value_PR present; + union ASN_NGAP_NGSetupRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_RANNodeName_t RANNodeName; + ASN_NGAP_SupportedTAList_t SupportedTAList; + ASN_NGAP_PagingDRX_t PagingDRX; + ASN_NGAP_UERetentionInformation_t UERetentionInformation; + ASN_NGAP_NB_IoT_DefaultPagingDRX_t NB_IoT_DefaultPagingDRX; + ASN_NGAP_Extended_RANNodeName_t Extended_RANNodeName; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGSetupRequestIEs_t; +typedef struct ASN_NGAP_NGSetupResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGSetupResponseIEs__value { + ASN_NGAP_NGSetupResponseIEs__value_PR present; + union ASN_NGAP_NGSetupResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMFName_t AMFName; + ASN_NGAP_ServedGUAMIList_t ServedGUAMIList; + ASN_NGAP_RelativeAMFCapacity_t RelativeAMFCapacity; + ASN_NGAP_PLMNSupportList_t PLMNSupportList; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_UERetentionInformation_t UERetentionInformation; + ASN_NGAP_IAB_Supported_t IAB_Supported; + ASN_NGAP_Extended_AMFName_t Extended_AMFName; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGSetupResponseIEs_t; +typedef struct ASN_NGAP_NGSetupFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGSetupFailureIEs__value { + ASN_NGAP_NGSetupFailureIEs__value_PR present; + union ASN_NGAP_NGSetupFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_Cause_t Cause; + ASN_NGAP_TimeToWait_t TimeToWait; + ASN_NGAP_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; +} ASN_NGAP_NGSetupFailureIEs_t; +typedef struct ASN_NGAP_RANConfigurationUpdateIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RANConfigurationUpdateIEs__value { + ASN_NGAP_RANConfigurationUpdateIEs__value_PR present; + union ASN_NGAP_RANConfigurationUpdateIEs__ASN_NGAP_value_u { + ASN_NGAP_RANNodeName_t RANNodeName; + ASN_NGAP_SupportedTAList_t SupportedTAList; + ASN_NGAP_PagingDRX_t PagingDRX; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_NGRAN_TNLAssociationToRemoveList_t NGRAN_TNLAssociationToRemoveList; + ASN_NGAP_NB_IoT_DefaultPagingDRX_t NB_IoT_DefaultPagingDRX; + ASN_NGAP_Extended_RANNodeName_t Extended_RANNodeName; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANConfigurationUpdateIEs_t; +typedef struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value { + ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__value_PR present; + union ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_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; +} ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_t; +typedef struct ASN_NGAP_RANConfigurationUpdateFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_RANConfigurationUpdateFailureIEs__value { + ASN_NGAP_RANConfigurationUpdateFailureIEs__value_PR present; + union ASN_NGAP_RANConfigurationUpdateFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_Cause_t Cause; + ASN_NGAP_TimeToWait_t TimeToWait; + ASN_NGAP_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; +} ASN_NGAP_RANConfigurationUpdateFailureIEs_t; +typedef struct ASN_NGAP_AMFConfigurationUpdateIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFConfigurationUpdateIEs__value { + ASN_NGAP_AMFConfigurationUpdateIEs__value_PR present; + union ASN_NGAP_AMFConfigurationUpdateIEs__ASN_NGAP_value_u { + ASN_NGAP_AMFName_t AMFName; + ASN_NGAP_ServedGUAMIList_t ServedGUAMIList; + ASN_NGAP_RelativeAMFCapacity_t RelativeAMFCapacity; + ASN_NGAP_PLMNSupportList_t PLMNSupportList; + ASN_NGAP_AMF_TNLAssociationToAddList_t AMF_TNLAssociationToAddList; + ASN_NGAP_AMF_TNLAssociationToRemoveList_t AMF_TNLAssociationToRemoveList; + ASN_NGAP_AMF_TNLAssociationToUpdateList_t AMF_TNLAssociationToUpdateList; + ASN_NGAP_Extended_AMFName_t Extended_AMFName; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFConfigurationUpdateIEs_t; +typedef struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value { + ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__value_PR present; + union ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_TNLAssociationSetupList_t AMF_TNLAssociationSetupList; + ASN_NGAP_TNLAssociationList_t TNLAssociationList; + ASN_NGAP_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; +} ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_t; +typedef struct ASN_NGAP_AMFConfigurationUpdateFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFConfigurationUpdateFailureIEs__value { + ASN_NGAP_AMFConfigurationUpdateFailureIEs__value_PR present; + union ASN_NGAP_AMFConfigurationUpdateFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_Cause_t Cause; + ASN_NGAP_TimeToWait_t TimeToWait; + ASN_NGAP_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; +} ASN_NGAP_AMFConfigurationUpdateFailureIEs_t; +typedef struct ASN_NGAP_AMFStatusIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFStatusIndicationIEs__value { + ASN_NGAP_AMFStatusIndicationIEs__value_PR present; + union ASN_NGAP_AMFStatusIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_UnavailableGUAMIList_t UnavailableGUAMIList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFStatusIndicationIEs_t; +typedef struct ASN_NGAP_NGResetIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGResetIEs__value { + ASN_NGAP_NGResetIEs__value_PR present; + union ASN_NGAP_NGResetIEs__ASN_NGAP_value_u { + ASN_NGAP_Cause_t Cause; + ASN_NGAP_ResetType_t ResetType; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_NGResetIEs_t; +typedef struct ASN_NGAP_NGResetAcknowledgeIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_NGResetAcknowledgeIEs__value { + ASN_NGAP_NGResetAcknowledgeIEs__value_PR present; + union ASN_NGAP_NGResetAcknowledgeIEs__ASN_NGAP_value_u { + ASN_NGAP_UE_associatedLogicalNG_connectionList_t UE_associatedLogicalNG_connectionList; + ASN_NGAP_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; +} ASN_NGAP_NGResetAcknowledgeIEs_t; +typedef struct ASN_NGAP_ErrorIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ErrorIndicationIEs__value { + ASN_NGAP_ErrorIndicationIEs__value_PR present; + union ASN_NGAP_ErrorIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_CriticalityDiagnostics_t CriticalityDiagnostics; + ASN_NGAP_FiveG_S_TMSI_t FiveG_S_TMSI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ErrorIndicationIEs_t; +typedef struct ASN_NGAP_OverloadStartIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_OverloadStartIEs__value { + ASN_NGAP_OverloadStartIEs__value_PR present; + union ASN_NGAP_OverloadStartIEs__ASN_NGAP_value_u { + ASN_NGAP_OverloadResponse_t OverloadResponse; + ASN_NGAP_TrafficLoadReductionIndication_t TrafficLoadReductionIndication; + ASN_NGAP_OverloadStartNSSAIList_t OverloadStartNSSAIList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_OverloadStartIEs_t; +typedef struct ASN_NGAP_OverloadStopIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_OverloadStopIEs__value { + ASN_NGAP_OverloadStopIEs__value_PR present; + union ASN_NGAP_OverloadStopIEs__ASN_NGAP_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; +} ASN_NGAP_OverloadStopIEs_t; +typedef struct ASN_NGAP_UplinkRANConfigurationTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkRANConfigurationTransferIEs__value { + ASN_NGAP_UplinkRANConfigurationTransferIEs__value_PR present; + union ASN_NGAP_UplinkRANConfigurationTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_SONConfigurationTransfer_t SONConfigurationTransfer; + ASN_NGAP_EN_DCSONConfigurationTransfer_t EN_DCSONConfigurationTransfer; + ASN_NGAP_IntersystemSONConfigurationTransfer_t IntersystemSONConfigurationTransfer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANConfigurationTransferIEs_t; +typedef struct ASN_NGAP_DownlinkRANConfigurationTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkRANConfigurationTransferIEs__value { + ASN_NGAP_DownlinkRANConfigurationTransferIEs__value_PR present; + union ASN_NGAP_DownlinkRANConfigurationTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_SONConfigurationTransfer_t SONConfigurationTransfer; + ASN_NGAP_EN_DCSONConfigurationTransfer_t EN_DCSONConfigurationTransfer; + ASN_NGAP_IntersystemSONConfigurationTransfer_t IntersystemSONConfigurationTransfer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRANConfigurationTransferIEs_t; +typedef struct ASN_NGAP_WriteReplaceWarningRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WriteReplaceWarningRequestIEs__value { + ASN_NGAP_WriteReplaceWarningRequestIEs__value_PR present; + union ASN_NGAP_WriteReplaceWarningRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MessageIdentifier_t MessageIdentifier; + ASN_NGAP_SerialNumber_t SerialNumber; + ASN_NGAP_WarningAreaList_t WarningAreaList; + ASN_NGAP_RepetitionPeriod_t RepetitionPeriod; + ASN_NGAP_NumberOfBroadcastsRequested_t NumberOfBroadcastsRequested; + ASN_NGAP_WarningType_t WarningType; + ASN_NGAP_WarningSecurityInfo_t WarningSecurityInfo; + ASN_NGAP_DataCodingScheme_t DataCodingScheme; + ASN_NGAP_WarningMessageContents_t WarningMessageContents; + ASN_NGAP_ConcurrentWarningMessageInd_t ConcurrentWarningMessageInd; + ASN_NGAP_WarningAreaCoordinates_t WarningAreaCoordinates; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WriteReplaceWarningRequestIEs_t; +typedef struct ASN_NGAP_WriteReplaceWarningResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_WriteReplaceWarningResponseIEs__value { + ASN_NGAP_WriteReplaceWarningResponseIEs__value_PR present; + union ASN_NGAP_WriteReplaceWarningResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MessageIdentifier_t MessageIdentifier; + ASN_NGAP_SerialNumber_t SerialNumber; + ASN_NGAP_BroadcastCompletedAreaList_t BroadcastCompletedAreaList; + ASN_NGAP_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; +} ASN_NGAP_WriteReplaceWarningResponseIEs_t; +typedef struct ASN_NGAP_PWSCancelRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PWSCancelRequestIEs__value { + ASN_NGAP_PWSCancelRequestIEs__value_PR present; + union ASN_NGAP_PWSCancelRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MessageIdentifier_t MessageIdentifier; + ASN_NGAP_SerialNumber_t SerialNumber; + ASN_NGAP_WarningAreaList_t WarningAreaList; + ASN_NGAP_CancelAllWarningMessages_t CancelAllWarningMessages; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSCancelRequestIEs_t; +typedef struct ASN_NGAP_PWSCancelResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PWSCancelResponseIEs__value { + ASN_NGAP_PWSCancelResponseIEs__value_PR present; + union ASN_NGAP_PWSCancelResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MessageIdentifier_t MessageIdentifier; + ASN_NGAP_SerialNumber_t SerialNumber; + ASN_NGAP_BroadcastCancelledAreaList_t BroadcastCancelledAreaList; + ASN_NGAP_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; +} ASN_NGAP_PWSCancelResponseIEs_t; +typedef struct ASN_NGAP_PWSRestartIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PWSRestartIndicationIEs__value { + ASN_NGAP_PWSRestartIndicationIEs__value_PR present; + union ASN_NGAP_PWSRestartIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_CellIDListForRestart_t CellIDListForRestart; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + ASN_NGAP_TAIListForRestart_t TAIListForRestart; + ASN_NGAP_EmergencyAreaIDListForRestart_t EmergencyAreaIDListForRestart; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSRestartIndicationIEs_t; +typedef struct ASN_NGAP_PWSFailureIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_PWSFailureIndicationIEs__value { + ASN_NGAP_PWSFailureIndicationIEs__value_PR present; + union ASN_NGAP_PWSFailureIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_PWSFailedCellIDList_t PWSFailedCellIDList; + ASN_NGAP_GlobalRANNodeID_t GlobalRANNodeID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_PWSFailureIndicationIEs_t; +typedef struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value { + ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__value_PR present; + union ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RoutingID_t RoutingID; + ASN_NGAP_NRPPa_PDU_t NRPPa_PDU; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_t; +typedef struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value { + ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__value_PR present; + union ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_RoutingID_t RoutingID; + ASN_NGAP_NRPPa_PDU_t NRPPa_PDU; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_t; +typedef struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value { + ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__value_PR present; + union ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs__ASN_NGAP_value_u { + ASN_NGAP_RoutingID_t RoutingID; + ASN_NGAP_NRPPa_PDU_t NRPPa_PDU; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_t; +typedef struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value { + ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__value_PR present; + union ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs__ASN_NGAP_value_u { + ASN_NGAP_RoutingID_t RoutingID; + ASN_NGAP_NRPPa_PDU_t NRPPa_PDU; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_t; +typedef struct ASN_NGAP_TraceStartIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TraceStartIEs__value { + ASN_NGAP_TraceStartIEs__value_PR present; + union ASN_NGAP_TraceStartIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_TraceActivation_t TraceActivation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TraceStartIEs_t; +typedef struct ASN_NGAP_TraceFailureIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_TraceFailureIndicationIEs__value { + ASN_NGAP_TraceFailureIndicationIEs__value_PR present; + union ASN_NGAP_TraceFailureIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NGRANTraceID_t NGRANTraceID; + ASN_NGAP_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; +} ASN_NGAP_TraceFailureIndicationIEs_t; +typedef struct ASN_NGAP_DeactivateTraceIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DeactivateTraceIEs__value { + ASN_NGAP_DeactivateTraceIEs__value_PR present; + union ASN_NGAP_DeactivateTraceIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NGRANTraceID_t NGRANTraceID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DeactivateTraceIEs_t; +typedef struct ASN_NGAP_CellTrafficTraceIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_CellTrafficTraceIEs__value { + ASN_NGAP_CellTrafficTraceIEs__value_PR present; + union ASN_NGAP_CellTrafficTraceIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_NGRANTraceID_t NGRANTraceID; + ASN_NGAP_NGRAN_CGI_t NGRAN_CGI; + ASN_NGAP_TransportLayerAddress_t TransportLayerAddress; + ASN_NGAP_PrivacyIndicator_t PrivacyIndicator; + ASN_NGAP_URI_address_t URI_address; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_CellTrafficTraceIEs_t; +typedef struct ASN_NGAP_LocationReportingControlIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LocationReportingControlIEs__value { + ASN_NGAP_LocationReportingControlIEs__value_PR present; + union ASN_NGAP_LocationReportingControlIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_LocationReportingRequestType_t LocationReportingRequestType; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportingControlIEs_t; +typedef struct ASN_NGAP_LocationReportingFailureIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LocationReportingFailureIndicationIEs__value { + ASN_NGAP_LocationReportingFailureIndicationIEs__value_PR present; + union ASN_NGAP_LocationReportingFailureIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_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; +} ASN_NGAP_LocationReportingFailureIndicationIEs_t; +typedef struct ASN_NGAP_LocationReportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_LocationReportIEs__value { + ASN_NGAP_LocationReportIEs__value_PR present; + union ASN_NGAP_LocationReportIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + ASN_NGAP_UEPresenceInAreaOfInterestList_t UEPresenceInAreaOfInterestList; + ASN_NGAP_LocationReportingRequestType_t LocationReportingRequestType; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_LocationReportIEs_t; +typedef struct ASN_NGAP_UETNLABindingReleaseRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UETNLABindingReleaseRequestIEs__value { + ASN_NGAP_UETNLABindingReleaseRequestIEs__value_PR present; + union ASN_NGAP_UETNLABindingReleaseRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_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; +} ASN_NGAP_UETNLABindingReleaseRequestIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value { + ASN_NGAP_UERadioCapabilityInfoIndicationIEs__value_PR present; + union ASN_NGAP_UERadioCapabilityInfoIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_UERadioCapabilityForPaging_t UERadioCapabilityForPaging; + ASN_NGAP_UERadioCapability_t UERadioCapability_1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityInfoIndicationIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityCheckRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityCheckRequestIEs__value { + ASN_NGAP_UERadioCapabilityCheckRequestIEs__value_PR present; + union ASN_NGAP_UERadioCapabilityCheckRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityCheckRequestIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityCheckResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityCheckResponseIEs__value { + ASN_NGAP_UERadioCapabilityCheckResponseIEs__value_PR present; + union ASN_NGAP_UERadioCapabilityCheckResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_IMSVoiceSupportIndicator_t IMSVoiceSupportIndicator; + ASN_NGAP_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; +} ASN_NGAP_UERadioCapabilityCheckResponseIEs_t; +typedef struct ASN_NGAP_SecondaryRATDataUsageReportIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SecondaryRATDataUsageReportIEs__value { + ASN_NGAP_SecondaryRATDataUsageReportIEs__value_PR present; + union ASN_NGAP_SecondaryRATDataUsageReportIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_PDUSessionResourceSecondaryRATUsageList_t PDUSessionResourceSecondaryRATUsageList; + ASN_NGAP_HandoverFlag_t HandoverFlag; + ASN_NGAP_UserLocationInformation_t UserLocationInformation; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATDataUsageReportIEs_t; +typedef struct ASN_NGAP_UplinkRIMInformationTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UplinkRIMInformationTransferIEs__value { + ASN_NGAP_UplinkRIMInformationTransferIEs__value_PR present; + union ASN_NGAP_UplinkRIMInformationTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_RIMInformationTransfer_t RIMInformationTransfer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRIMInformationTransferIEs_t; +typedef struct ASN_NGAP_DownlinkRIMInformationTransferIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DownlinkRIMInformationTransferIEs__value { + ASN_NGAP_DownlinkRIMInformationTransferIEs__value_PR present; + union ASN_NGAP_DownlinkRIMInformationTransferIEs__ASN_NGAP_value_u { + ASN_NGAP_RIMInformationTransfer_t RIMInformationTransfer; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DownlinkRIMInformationTransferIEs_t; +typedef struct ASN_NGAP_ConnectionEstablishmentIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_ConnectionEstablishmentIndicationIEs__value { + ASN_NGAP_ConnectionEstablishmentIndicationIEs__value_PR present; + union ASN_NGAP_ConnectionEstablishmentIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_EndIndication_t EndIndication; + ASN_NGAP_S_NSSAI_t S_NSSAI; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + ASN_NGAP_UE_DifferentiationInfo_t UE_DifferentiationInfo; + ASN_NGAP_DL_CP_SecurityInformation_t DL_CP_SecurityInformation; + ASN_NGAP_NB_IoT_UEPriority_t NB_IoT_UEPriority; + ASN_NGAP_Enhanced_CoverageRestriction_t Enhanced_CoverageRestriction; + ASN_NGAP_CEmodeBrestricted_t CEmodeBrestricted; + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_MaskedIMEISV_t MaskedIMEISV; + ASN_NGAP_AMFName_t AMFName; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ConnectionEstablishmentIndicationIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value { + ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__value_PR present; + union ASN_NGAP_UERadioCapabilityIDMappingRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_t; +typedef struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value { + ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__value_PR present; + union ASN_NGAP_UERadioCapabilityIDMappingResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_UERadioCapabilityID_t UERadioCapabilityID; + ASN_NGAP_UERadioCapability_t UERadioCapability; + ASN_NGAP_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; +} ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_t; +typedef struct ASN_NGAP_AMFCPRelocationIndicationIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_AMFCPRelocationIndicationIEs__value { + ASN_NGAP_AMFCPRelocationIndicationIEs__value_PR present; + union ASN_NGAP_AMFCPRelocationIndicationIEs__ASN_NGAP_value_u { + ASN_NGAP_AMF_UE_NGAP_ID_t AMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t RAN_UE_NGAP_ID; + ASN_NGAP_S_NSSAI_t S_NSSAI; + ASN_NGAP_AllowedNSSAI_t AllowedNSSAI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_AMFCPRelocationIndicationIEs_t; +typedef struct ASN_NGAP_BroadcastSessionSetupRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionSetupRequestIEs__value { + ASN_NGAP_BroadcastSessionSetupRequestIEs__value_PR present; + union ASN_NGAP_BroadcastSessionSetupRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_S_NSSAI_t S_NSSAI; + ASN_NGAP_MBS_ServiceArea_t MBS_ServiceArea; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionSetupRequestIEs_t; +typedef struct ASN_NGAP_BroadcastSessionSetupResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionSetupResponseIEs__value { + ASN_NGAP_BroadcastSessionSetupResponseIEs__value_PR present; + union ASN_NGAP_BroadcastSessionSetupResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionSetupResponseIEs_t; +typedef struct ASN_NGAP_BroadcastSessionSetupFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionSetupFailureIEs__value { + ASN_NGAP_BroadcastSessionSetupFailureIEs__value_PR present; + union ASN_NGAP_BroadcastSessionSetupFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionSetupFailureIEs_t; +typedef struct ASN_NGAP_BroadcastSessionModificationRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionModificationRequestIEs__value { + ASN_NGAP_BroadcastSessionModificationRequestIEs__value_PR present; + union ASN_NGAP_BroadcastSessionModificationRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_ServiceArea_t MBS_ServiceArea; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_BroadcastSessionModificationRequestIEs_t; +typedef struct ASN_NGAP_BroadcastSessionModificationResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionModificationResponseIEs__value { + ASN_NGAP_BroadcastSessionModificationResponseIEs__value_PR present; + union ASN_NGAP_BroadcastSessionModificationResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModResponseTransfer_; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionModificationResponseIEs_t; +typedef struct ASN_NGAP_BroadcastSessionModificationFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionModificationFailureIEs__value { + ASN_NGAP_BroadcastSessionModificationFailureIEs__value_PR present; + union ASN_NGAP_BroadcastSessionModificationFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionSetupOrModFailureTransfer_; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionModificationFailureIEs_t; +typedef struct ASN_NGAP_BroadcastSessionReleaseRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionReleaseRequestIEs__value { + ASN_NGAP_BroadcastSessionReleaseRequestIEs__value_PR present; + union ASN_NGAP_BroadcastSessionReleaseRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionReleaseRequestIEs_t; +typedef struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value { + ASN_NGAP_BroadcastSessionReleaseRequiredIEs__value_PR present; + union ASN_NGAP_BroadcastSessionReleaseRequiredIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionReleaseRequiredIEs_t; +typedef struct ASN_NGAP_BroadcastSessionReleaseResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_BroadcastSessionReleaseResponseIEs__value { + ASN_NGAP_BroadcastSessionReleaseResponseIEs__value_PR present; + union ASN_NGAP_BroadcastSessionReleaseResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBSSessionReleaseResponseTransfer_; + ASN_NGAP_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; +} ASN_NGAP_BroadcastSessionReleaseResponseIEs_t; +typedef struct ASN_NGAP_DistributionSetupRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DistributionSetupRequestIEs__value { + ASN_NGAP_DistributionSetupRequestIEs__value_PR present; + union ASN_NGAP_DistributionSetupRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBS_DistributionSetupRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_DistributionSetupRequestIEs_t; +typedef struct ASN_NGAP_DistributionSetupResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DistributionSetupResponseIEs__value { + ASN_NGAP_DistributionSetupResponseIEs__value_PR present; + union ASN_NGAP_DistributionSetupResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBS_DistributionSetupResponseTransfer_; + ASN_NGAP_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; +} ASN_NGAP_DistributionSetupResponseIEs_t; +typedef struct ASN_NGAP_DistributionSetupFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DistributionSetupFailureIEs__value { + ASN_NGAP_DistributionSetupFailureIEs__value_PR present; + union ASN_NGAP_DistributionSetupFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBS_DistributionSetupUnsuccessfulTransfer_; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_DistributionSetupFailureIEs_t; +typedef struct ASN_NGAP_DistributionReleaseRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DistributionReleaseRequestIEs__value { + ASN_NGAP_DistributionReleaseRequestIEs__value_PR present; + union ASN_NGAP_DistributionReleaseRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MBS_DistributionReleaseRequestTransfer_; + ASN_NGAP_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; +} ASN_NGAP_DistributionReleaseRequestIEs_t; +typedef struct ASN_NGAP_DistributionReleaseResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_DistributionReleaseResponseIEs__value { + ASN_NGAP_DistributionReleaseResponseIEs__value_PR present; + union ASN_NGAP_DistributionReleaseResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + ASN_NGAP_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; +} ASN_NGAP_DistributionReleaseResponseIEs_t; +typedef struct ASN_NGAP_MulticastSessionActivationRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionActivationRequestIEs__value { + ASN_NGAP_MulticastSessionActivationRequestIEs__value_PR present; + union ASN_NGAP_MulticastSessionActivationRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MulticastSessionActivationRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionActivationRequestIEs_t; +typedef struct ASN_NGAP_MulticastSessionActivationResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionActivationResponseIEs__value { + ASN_NGAP_MulticastSessionActivationResponseIEs__value_PR present; + union ASN_NGAP_MulticastSessionActivationResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_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; +} ASN_NGAP_MulticastSessionActivationResponseIEs_t; +typedef struct ASN_NGAP_MulticastSessionActivationFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionActivationFailureIEs__value { + ASN_NGAP_MulticastSessionActivationFailureIEs__value_PR present; + union ASN_NGAP_MulticastSessionActivationFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_MulticastSessionActivationFailureIEs_t; +typedef struct ASN_NGAP_MulticastSessionDeactivationRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionDeactivationRequestIEs__value { + ASN_NGAP_MulticastSessionDeactivationRequestIEs__value_PR present; + union ASN_NGAP_MulticastSessionDeactivationRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MulticastSessionDeactivationRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionDeactivationRequestIEs_t; +typedef struct ASN_NGAP_MulticastSessionDeactivationResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionDeactivationResponseIEs__value { + ASN_NGAP_MulticastSessionDeactivationResponseIEs__value_PR present; + union ASN_NGAP_MulticastSessionDeactivationResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_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; +} ASN_NGAP_MulticastSessionDeactivationResponseIEs_t; +typedef struct ASN_NGAP_MulticastSessionUpdateRequestIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionUpdateRequestIEs__value { + ASN_NGAP_MulticastSessionUpdateRequestIEs__value_PR present; + union ASN_NGAP_MulticastSessionUpdateRequestIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + OCTET_STRING_t OCTET_STRING_CONTAINING_MulticastSessionUpdateRequestTransfer_; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastSessionUpdateRequestIEs_t; +typedef struct ASN_NGAP_MulticastSessionUpdateResponseIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionUpdateResponseIEs__value { + ASN_NGAP_MulticastSessionUpdateResponseIEs__value_PR present; + union ASN_NGAP_MulticastSessionUpdateResponseIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + ASN_NGAP_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; +} ASN_NGAP_MulticastSessionUpdateResponseIEs_t; +typedef struct ASN_NGAP_MulticastSessionUpdateFailureIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastSessionUpdateFailureIEs__value { + ASN_NGAP_MulticastSessionUpdateFailureIEs__value_PR present; + union ASN_NGAP_MulticastSessionUpdateFailureIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_AreaSessionID_t MBS_AreaSessionID; + ASN_NGAP_Cause_t Cause; + ASN_NGAP_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; +} ASN_NGAP_MulticastSessionUpdateFailureIEs_t; +typedef struct ASN_NGAP_MulticastGroupPagingIEs { + ASN_NGAP_ProtocolIE_ID_t id; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_MulticastGroupPagingIEs__value { + ASN_NGAP_MulticastGroupPagingIEs__value_PR present; + union ASN_NGAP_MulticastGroupPagingIEs__ASN_NGAP_value_u { + ASN_NGAP_MBS_SessionID_t MBS_SessionID; + ASN_NGAP_MBS_ServiceArea_t MBS_ServiceArea; + ASN_NGAP_MulticastGroupPagingAreaList_t MulticastGroupPagingAreaList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_MulticastGroupPagingIEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFPagingTarget_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFPagingTarget_ExtIEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFPagingTarget_ExtIEs_1[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_specs_5; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_5[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_specs_9; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AreaScopeOfQMC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AreaScopeOfQMC_ExtIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AreaScopeOfQMC_ExtIEs_13[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CandidateCell_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CandidateCell_ExtIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CandidateCell_ExtIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Cause_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_Cause_ExtIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_Cause_ExtIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellIDListForRestart_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellIDListForRestart_ExtIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellIDListForRestart_ExtIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CPTransportLayerInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CPTransportLayerInformation_ExtIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CPTransportLayerInformation_ExtIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusDL_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusDL_ExtIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusDL_ExtIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DRBStatusUL_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DRBStatusUL_ExtIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DRBStatusUL_ExtIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProcedureStageChoice_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ProcedureStageChoice_ExtIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ProcedureStageChoice_ExtIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ENB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ENB_ID_ExtIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ENB_ID_ExtIEs_53[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_EventTrigger_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_EventTrigger_ExtIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_EventTrigger_ExtIEs_57[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_61[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GlobalRANNodeID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GlobalRANNodeID_ExtIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GlobalRANNodeID_ExtIEs_65[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_GNB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_GNB_ID_ExtIEs_specs_69; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_GNB_ID_ExtIEs_69[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONTransferType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONTransferType_ExtIEs_specs_73; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONTransferType_ExtIEs_73[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformation_ExtIEs_specs_77; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformation_ExtIEs_77[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_specs_81; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_81[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingSystem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ReportingSystem_ExtIEs_specs_85; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportingSystem_ExtIEs_85[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ReportType_ExtIEs_specs_89; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportType_ExtIEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReply_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_specs_93; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_93[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_IntersystemSONInformationReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_specs_97; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_97[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_specs_101; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_101[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InterSystemHandoverReportType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_specs_105; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_105[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LastVisitedCellInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LastVisitedCellInformation_ExtIEs_specs_109; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LastVisitedCellInformation_ExtIEs_109[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LoggedMDTTrigger_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LoggedMDTTrigger_ExtIEs_specs_113; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LoggedMDTTrigger_ExtIEs_113[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MRB_ProgressInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MRB_ProgressInformation_ExtIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MRB_ProgressInformation_ExtIEs_117[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_ServiceArea_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_ServiceArea_ExtIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_ServiceArea_ExtIEs_121[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_specs_129; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDT_AlignmentInfo_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_specs_133; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MDTModeNr_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MDTModeNr_ExtIEs_specs_137; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MDTModeNr_ExtIEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_M1ThresholdType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_M1ThresholdType_ExtIEs_specs_141; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_M1ThresholdType_ExtIEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_N3IWF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_N3IWF_ID_ExtIEs_specs_145; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_N3IWF_ID_ExtIEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NgENB_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NgENB_ID_ExtIEs_specs_149; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NgENB_ID_ExtIEs_149[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGRAN_CGI_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGRAN_CGI_ExtIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGRAN_CGI_ExtIEs_153[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_AccessInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_AccessInformation_ExtIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_AccessInformation_ExtIEs_157[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_MobilityInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_MobilityInformation_ExtIEs_specs_161; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_MobilityInformation_ExtIEs_161[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_specs_165; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_165[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NPN_Support_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NPN_Support_ExtIEs_specs_169; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NPN_Support_ExtIEs_169[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadResponse_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadResponse_ExtIEs_specs_173; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadResponse_ExtIEs_173[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailedCellIDList_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailedCellIDList_ExtIEs_specs_177; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailedCellIDList_ExtIEs_177[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosCharacteristics_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosCharacteristics_ExtIEs_specs_181; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosCharacteristics_ExtIEs_181[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetType_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ResetType_ExtIEs_specs_185; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ResetType_ExtIEs_185[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorNameConfig_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorNameConfig_ExtIEs_specs_189; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorNameConfig_ExtIEs_189[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformation_ExtIEs_specs_193; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformation_ExtIEs_193[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReport_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReport_ExtIEs_specs_197; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReport_ExtIEs_197[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNodeID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceNodeID_ExtIEs_specs_201; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNodeID_ExtIEs_201[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetID_ExtIEs_specs_205; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetID_ExtIEs_205[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNGF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNGF_ID_ExtIEs_specs_209; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TNGF_ID_ExtIEs_209[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWIF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TWIF_ID_ExtIEs_specs_213; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TWIF_ID_ExtIEs_213[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_specs_217; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_217[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEIdentityIndexValue_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEIdentityIndexValue_ExtIEs_specs_221; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEIdentityIndexValue_ExtIEs_221[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_IDs_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_IDs_ExtIEs_specs_225; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_IDs_ExtIEs_225[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPagingIdentity_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPagingIdentity_ExtIEs_specs_229; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPagingIdentity_ExtIEs_229[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERLFReportContainer_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERLFReportContainer_ExtIEs_specs_233; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERLFReportContainer_ExtIEs_233[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformation_ExtIEs_specs_237; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformation_ExtIEs_237[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformation_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformation_ExtIEs_specs_241; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformation_ExtIEs_241[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_specs_245; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_245[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_W_AGF_ID_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_W_AGF_ID_ExtIEs_specs_249; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_W_AGF_ID_ExtIEs_249[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaList_ExtIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WarningAreaList_ExtIEs_specs_253; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WarningAreaList_ExtIEs_253[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_specs_257; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MBSSessionSetupOrModRequestTransferIEs_257[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_specs_261; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestTransferIEs_261[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_specs_265; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestTransferIEs_265[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_specs_269; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestTransferIEs_269[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupRequestIEs_specs_273; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupRequestIEs_273[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceSetupResponseIEs_specs_277; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceSetupResponseIEs_277[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommandIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_specs_281; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseCommandIEs_281[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_specs_285; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceReleaseResponseIEs_285[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyRequestIEs_specs_289; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyRequestIEs_289[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyResponseIEs_specs_293; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyResponseIEs_293[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceNotifyIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceNotifyIEs_specs_297; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceNotifyIEs_297[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_specs_301; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyIndicationIEs_301[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirmIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_specs_305; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PDUSessionResourceModifyConfirmIEs_305[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupRequestIEs_specs_309; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupRequestIEs_309[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupResponseIEs_specs_313; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupResponseIEs_313[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialContextSetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialContextSetupFailureIEs_specs_317; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialContextSetupFailureIEs_317[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseRequest_IEs_specs_321; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseRequest_IEs_321[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseCommand_IEs_specs_325; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseCommand_IEs_325[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseComplete_IEs_specs_329; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseComplete_IEs_329[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequestIEs_specs_333; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequestIEs_333[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponseIEs_specs_337; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponseIEs_337[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeFailureIEs_specs_341; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeFailureIEs_341[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequestIEs_specs_345; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequestIEs_345[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendResponseIEs_specs_349; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendResponseIEs_349[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendFailureIEs_specs_353; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendFailureIEs_353[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationRequestIEs_specs_357; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationRequestIEs_357[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationResponseIEs_specs_361; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationResponseIEs_361[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationFailureIEs_specs_365; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationFailureIEs_365[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReportIEs_specs_369; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RRCInactiveTransitionReportIEs_369[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RetrieveUEInformationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RetrieveUEInformationIEs_specs_373; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RetrieveUEInformationIEs_373[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEInformationTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEInformationTransferIEs_specs_377; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEInformationTransferIEs_377[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANCPRelocationIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANCPRelocationIndicationIEs_specs_381; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANCPRelocationIndicationIEs_381[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequiredIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequiredIEs_specs_385; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequiredIEs_385[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCommandIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCommandIEs_specs_389; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCommandIEs_389[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverPreparationFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverPreparationFailureIEs_specs_393; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverPreparationFailureIEs_393[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestIEs_specs_397; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestIEs_397[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverRequestAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverRequestAcknowledgeIEs_specs_401; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverRequestAcknowledgeIEs_401[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverFailureIEs_specs_405; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverFailureIEs_405[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverNotifyIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverNotifyIEs_specs_409; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverNotifyIEs_409[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestIEs_specs_413; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestIEs_413[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_specs_417; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestAcknowledgeIEs_417[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PathSwitchRequestFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PathSwitchRequestFailureIEs_specs_421; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PathSwitchRequestFailureIEs_421[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancelIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelIEs_specs_425; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelIEs_425[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverCancelAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverCancelAcknowledgeIEs_specs_429; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverCancelAcknowledgeIEs_429[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_HandoverSuccessIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_HandoverSuccessIEs_specs_433; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_HandoverSuccessIEs_433[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_specs_437; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransferIEs_437[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_specs_441; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANEarlyStatusTransferIEs_441[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANStatusTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANStatusTransferIEs_specs_445; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANStatusTransferIEs_445[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANStatusTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANStatusTransferIEs_specs_449; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANStatusTransferIEs_449[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PagingIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PagingIEs_specs_453; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PagingIEs_453[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_InitialUEMessage_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_InitialUEMessage_IEs_specs_457; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_InitialUEMessage_IEs_457[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNASTransport_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNASTransport_IEs_specs_461; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNASTransport_IEs_461[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNASTransport_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNASTransport_IEs_specs_465; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNASTransport_IEs_465[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NASNonDeliveryIndication_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NASNonDeliveryIndication_IEs_specs_469; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NASNonDeliveryIndication_IEs_469[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RerouteNASRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RerouteNASRequest_IEs_specs_473; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RerouteNASRequest_IEs_473[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupRequestIEs_specs_477; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupRequestIEs_477[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupResponseIEs_specs_481; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupResponseIEs_481[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGSetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGSetupFailureIEs_specs_485; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGSetupFailureIEs_485[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateIEs_specs_489; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateIEs_489[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_specs_493; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledgeIEs_493[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateFailureIEs_specs_497; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateFailureIEs_497[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateIEs_specs_501; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateIEs_501[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_specs_505; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateAcknowledgeIEs_505[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFConfigurationUpdateFailureIEs_specs_509; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFConfigurationUpdateFailureIEs_509[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFStatusIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFStatusIndicationIEs_specs_513; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFStatusIndicationIEs_513[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGResetIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetIEs_specs_517; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetIEs_517[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_NGResetAcknowledgeIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_NGResetAcknowledgeIEs_specs_521; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_NGResetAcknowledgeIEs_521[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ErrorIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ErrorIndicationIEs_specs_525; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ErrorIndicationIEs_525[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStartIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStartIEs_specs_529; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStartIEs_529[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_OverloadStopIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_OverloadStopIEs_specs_533; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_OverloadStopIEs_533[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANConfigurationTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANConfigurationTransferIEs_specs_537; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANConfigurationTransferIEs_537[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRANConfigurationTransferIEs_specs_541; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRANConfigurationTransferIEs_541[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningRequestIEs_specs_545; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningRequestIEs_545[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningResponseIEs_specs_549; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningResponseIEs_549[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelRequestIEs_specs_553; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelRequestIEs_553[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSCancelResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSCancelResponseIEs_specs_557; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSCancelResponseIEs_557[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSRestartIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSRestartIndicationIEs_specs_561; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSRestartIndicationIEs_561[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_PWSFailureIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_PWSFailureIndicationIEs_specs_565; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_PWSFailureIndicationIEs_565[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_specs_569; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkUEAssociatedNRPPaTransportIEs_569[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_specs_573; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransportIEs_573[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_specs_577; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransportIEs_577[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_specs_581; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransportIEs_581[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceStartIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceStartIEs_specs_585; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceStartIEs_585[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceFailureIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceFailureIndicationIEs_specs_589; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceFailureIndicationIEs_589[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DeactivateTraceIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DeactivateTraceIEs_specs_593; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DeactivateTraceIEs_593[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_CellTrafficTraceIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_CellTrafficTraceIEs_specs_597; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_CellTrafficTraceIEs_597[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingControlIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingControlIEs_specs_601; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingControlIEs_601[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportingFailureIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportingFailureIndicationIEs_specs_605; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportingFailureIndicationIEs_605[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_LocationReportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_LocationReportIEs_specs_609; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_LocationReportIEs_609[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UETNLABindingReleaseRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UETNLABindingReleaseRequestIEs_specs_613; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UETNLABindingReleaseRequestIEs_613[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_specs_617; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndicationIEs_617[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequestIEs_specs_621; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequestIEs_621[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponseIEs_specs_625; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponseIEs_625[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportIEs_specs_629; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportIEs_629[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRIMInformationTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRIMInformationTransferIEs_specs_633; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRIMInformationTransferIEs_633[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DownlinkRIMInformationTransferIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DownlinkRIMInformationTransferIEs_specs_637; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DownlinkRIMInformationTransferIEs_637[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ConnectionEstablishmentIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ConnectionEstablishmentIndicationIEs_specs_641; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ConnectionEstablishmentIndicationIEs_641[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_specs_645; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequestIEs_645[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_specs_649; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponseIEs_649[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_AMFCPRelocationIndicationIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_AMFCPRelocationIndicationIEs_specs_653; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_AMFCPRelocationIndicationIEs_653[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupRequestIEs_specs_657; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupRequestIEs_657[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupResponseIEs_specs_661; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupResponseIEs_661[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionSetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionSetupFailureIEs_specs_665; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionSetupFailureIEs_665[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationRequestIEs_specs_669; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationRequestIEs_669[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationResponseIEs_specs_673; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationResponseIEs_673[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionModificationFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionModificationFailureIEs_specs_677; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionModificationFailureIEs_677[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequestIEs_specs_681; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequestIEs_681[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequiredIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_specs_685; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseRequiredIEs_685[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_BroadcastSessionReleaseResponseIEs_specs_689; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_BroadcastSessionReleaseResponseIEs_689[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupRequestIEs_specs_693; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupRequestIEs_693[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupResponseIEs_specs_697; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupResponseIEs_697[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionSetupFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionSetupFailureIEs_specs_701; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionSetupFailureIEs_701[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseRequestIEs_specs_705; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseRequestIEs_705[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_DistributionReleaseResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_DistributionReleaseResponseIEs_specs_709; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_DistributionReleaseResponseIEs_709[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationRequestIEs_specs_713; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationRequestIEs_713[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationResponseIEs_specs_717; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationResponseIEs_717[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionActivationFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionActivationFailureIEs_specs_721; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionActivationFailureIEs_721[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationRequestIEs_specs_725; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationRequestIEs_725[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionDeactivationResponseIEs_specs_729; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionDeactivationResponseIEs_729[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateRequestIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateRequestIEs_specs_733; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateRequestIEs_733[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateResponseIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateResponseIEs_specs_737; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateResponseIEs_737[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastSessionUpdateFailureIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastSessionUpdateFailureIEs_specs_741; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastSessionUpdateFailureIEs_741[3]; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_MulticastGroupPagingIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_MulticastGroupPagingIEs_specs_745; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_MulticastGroupPagingIEs_745[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_Field_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.c new file mode 100644 index 0000000..c2196a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.c @@ -0,0 +1,9 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-FieldPair.h" + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.h new file mode 100644 index 0000000..4e9eae3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-FieldPair.h @@ -0,0 +1,23 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_FieldPair_H_ +#define _ASN_NGAP_ProtocolIE_FieldPair_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_FieldPair_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.c new file mode 100644 index 0000000..de5e8f9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-ID.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ProtocolIE_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_ID = { + "ProtocolIE-ID", + "ProtocolIE-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ProtocolIE_ID_constr_1, ASN_NGAP_ProtocolIE_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.h new file mode 100644 index 0000000..361ce14 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-ID.h @@ -0,0 +1,405 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_ID_H_ +#define _ASN_NGAP_ProtocolIE_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ProtocolIE-ID */ +typedef long ASN_NGAP_ProtocolIE_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ProtocolIE_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_ID; +asn_struct_free_f ASN_NGAP_ProtocolIE_ID_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_ID_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_ID_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_ID_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_ID_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_ID_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_ID_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_ID_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_ID_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_ID_encode_aper; +#define ASN_NGAP_ProtocolIE_ID_id_AllowedNSSAI ((ASN_NGAP_ProtocolIE_ID_t)0) +#define ASN_NGAP_ProtocolIE_ID_id_AMFName ((ASN_NGAP_ProtocolIE_ID_t)1) +#define ASN_NGAP_ProtocolIE_ID_id_AMFOverloadResponse ((ASN_NGAP_ProtocolIE_ID_t)2) +#define ASN_NGAP_ProtocolIE_ID_id_AMFSetID ((ASN_NGAP_ProtocolIE_ID_t)3) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_TNLAssociationFailedToSetupList ((ASN_NGAP_ProtocolIE_ID_t)4) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_TNLAssociationSetupList ((ASN_NGAP_ProtocolIE_ID_t)5) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_TNLAssociationToAddList ((ASN_NGAP_ProtocolIE_ID_t)6) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_TNLAssociationToRemoveList ((ASN_NGAP_ProtocolIE_ID_t)7) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_TNLAssociationToUpdateList ((ASN_NGAP_ProtocolIE_ID_t)8) +#define ASN_NGAP_ProtocolIE_ID_id_AMFTrafficLoadReductionIndication ((ASN_NGAP_ProtocolIE_ID_t)9) +#define ASN_NGAP_ProtocolIE_ID_id_AMF_UE_NGAP_ID ((ASN_NGAP_ProtocolIE_ID_t)10) +#define ASN_NGAP_ProtocolIE_ID_id_AssistanceDataForPaging ((ASN_NGAP_ProtocolIE_ID_t)11) +#define ASN_NGAP_ProtocolIE_ID_id_BroadcastCancelledAreaList ((ASN_NGAP_ProtocolIE_ID_t)12) +#define ASN_NGAP_ProtocolIE_ID_id_BroadcastCompletedAreaList ((ASN_NGAP_ProtocolIE_ID_t)13) +#define ASN_NGAP_ProtocolIE_ID_id_CancelAllWarningMessages ((ASN_NGAP_ProtocolIE_ID_t)14) +#define ASN_NGAP_ProtocolIE_ID_id_Cause ((ASN_NGAP_ProtocolIE_ID_t)15) +#define ASN_NGAP_ProtocolIE_ID_id_CellIDListForRestart ((ASN_NGAP_ProtocolIE_ID_t)16) +#define ASN_NGAP_ProtocolIE_ID_id_ConcurrentWarningMessageInd ((ASN_NGAP_ProtocolIE_ID_t)17) +#define ASN_NGAP_ProtocolIE_ID_id_CoreNetworkAssistanceInformationForInactive ((ASN_NGAP_ProtocolIE_ID_t)18) +#define ASN_NGAP_ProtocolIE_ID_id_CriticalityDiagnostics ((ASN_NGAP_ProtocolIE_ID_t)19) +#define ASN_NGAP_ProtocolIE_ID_id_DataCodingScheme ((ASN_NGAP_ProtocolIE_ID_t)20) +#define ASN_NGAP_ProtocolIE_ID_id_DefaultPagingDRX ((ASN_NGAP_ProtocolIE_ID_t)21) +#define ASN_NGAP_ProtocolIE_ID_id_DirectForwardingPathAvailability ((ASN_NGAP_ProtocolIE_ID_t)22) +#define ASN_NGAP_ProtocolIE_ID_id_EmergencyAreaIDListForRestart ((ASN_NGAP_ProtocolIE_ID_t)23) +#define ASN_NGAP_ProtocolIE_ID_id_EmergencyFallbackIndicator ((ASN_NGAP_ProtocolIE_ID_t)24) +#define ASN_NGAP_ProtocolIE_ID_id_EUTRA_CGI ((ASN_NGAP_ProtocolIE_ID_t)25) +#define ASN_NGAP_ProtocolIE_ID_id_FiveG_S_TMSI ((ASN_NGAP_ProtocolIE_ID_t)26) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalRANNodeID ((ASN_NGAP_ProtocolIE_ID_t)27) +#define ASN_NGAP_ProtocolIE_ID_id_GUAMI ((ASN_NGAP_ProtocolIE_ID_t)28) +#define ASN_NGAP_ProtocolIE_ID_id_HandoverType ((ASN_NGAP_ProtocolIE_ID_t)29) +#define ASN_NGAP_ProtocolIE_ID_id_IMSVoiceSupportIndicator ((ASN_NGAP_ProtocolIE_ID_t)30) +#define ASN_NGAP_ProtocolIE_ID_id_IndexToRFSP ((ASN_NGAP_ProtocolIE_ID_t)31) +#define ASN_NGAP_ProtocolIE_ID_id_InfoOnRecommendedCellsAndRANNodesForPaging ((ASN_NGAP_ProtocolIE_ID_t)32) +#define ASN_NGAP_ProtocolIE_ID_id_LocationReportingRequestType ((ASN_NGAP_ProtocolIE_ID_t)33) +#define ASN_NGAP_ProtocolIE_ID_id_MaskedIMEISV ((ASN_NGAP_ProtocolIE_ID_t)34) +#define ASN_NGAP_ProtocolIE_ID_id_MessageIdentifier ((ASN_NGAP_ProtocolIE_ID_t)35) +#define ASN_NGAP_ProtocolIE_ID_id_MobilityRestrictionList ((ASN_NGAP_ProtocolIE_ID_t)36) +#define ASN_NGAP_ProtocolIE_ID_id_NASC ((ASN_NGAP_ProtocolIE_ID_t)37) +#define ASN_NGAP_ProtocolIE_ID_id_NAS_PDU ((ASN_NGAP_ProtocolIE_ID_t)38) +#define ASN_NGAP_ProtocolIE_ID_id_NASSecurityParametersFromNGRAN ((ASN_NGAP_ProtocolIE_ID_t)39) +#define ASN_NGAP_ProtocolIE_ID_id_NewAMF_UE_NGAP_ID ((ASN_NGAP_ProtocolIE_ID_t)40) +#define ASN_NGAP_ProtocolIE_ID_id_NewSecurityContextInd ((ASN_NGAP_ProtocolIE_ID_t)41) +#define ASN_NGAP_ProtocolIE_ID_id_NGAP_Message ((ASN_NGAP_ProtocolIE_ID_t)42) +#define ASN_NGAP_ProtocolIE_ID_id_NGRAN_CGI ((ASN_NGAP_ProtocolIE_ID_t)43) +#define ASN_NGAP_ProtocolIE_ID_id_NGRANTraceID ((ASN_NGAP_ProtocolIE_ID_t)44) +#define ASN_NGAP_ProtocolIE_ID_id_NR_CGI ((ASN_NGAP_ProtocolIE_ID_t)45) +#define ASN_NGAP_ProtocolIE_ID_id_NRPPa_PDU ((ASN_NGAP_ProtocolIE_ID_t)46) +#define ASN_NGAP_ProtocolIE_ID_id_NumberOfBroadcastsRequested ((ASN_NGAP_ProtocolIE_ID_t)47) +#define ASN_NGAP_ProtocolIE_ID_id_OldAMF ((ASN_NGAP_ProtocolIE_ID_t)48) +#define ASN_NGAP_ProtocolIE_ID_id_OverloadStartNSSAIList ((ASN_NGAP_ProtocolIE_ID_t)49) +#define ASN_NGAP_ProtocolIE_ID_id_PagingDRX ((ASN_NGAP_ProtocolIE_ID_t)50) +#define ASN_NGAP_ProtocolIE_ID_id_PagingOrigin ((ASN_NGAP_ProtocolIE_ID_t)51) +#define ASN_NGAP_ProtocolIE_ID_id_PagingPriority ((ASN_NGAP_ProtocolIE_ID_t)52) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceAdmittedList ((ASN_NGAP_ProtocolIE_ID_t)53) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToModifyListModRes ((ASN_NGAP_ProtocolIE_ID_t)54) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToSetupListCxtRes ((ASN_NGAP_ProtocolIE_ID_t)55) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToSetupListHOAck ((ASN_NGAP_ProtocolIE_ID_t)56) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToSetupListPSReq ((ASN_NGAP_ProtocolIE_ID_t)57) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToSetupListSURes ((ASN_NGAP_ProtocolIE_ID_t)58) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceHandoverList ((ASN_NGAP_ProtocolIE_ID_t)59) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceListCxtRelCpl ((ASN_NGAP_ProtocolIE_ID_t)60) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceListHORqd ((ASN_NGAP_ProtocolIE_ID_t)61) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceModifyListModCfm ((ASN_NGAP_ProtocolIE_ID_t)62) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceModifyListModInd ((ASN_NGAP_ProtocolIE_ID_t)63) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceModifyListModReq ((ASN_NGAP_ProtocolIE_ID_t)64) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceModifyListModRes ((ASN_NGAP_ProtocolIE_ID_t)65) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceNotifyList ((ASN_NGAP_ProtocolIE_ID_t)66) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceReleasedListNot ((ASN_NGAP_ProtocolIE_ID_t)67) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceReleasedListPSAck ((ASN_NGAP_ProtocolIE_ID_t)68) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceReleasedListPSFail ((ASN_NGAP_ProtocolIE_ID_t)69) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceReleasedListRelRes ((ASN_NGAP_ProtocolIE_ID_t)70) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSetupListCxtReq ((ASN_NGAP_ProtocolIE_ID_t)71) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSetupListCxtRes ((ASN_NGAP_ProtocolIE_ID_t)72) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSetupListHOReq ((ASN_NGAP_ProtocolIE_ID_t)73) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSetupListSUReq ((ASN_NGAP_ProtocolIE_ID_t)74) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSetupListSURes ((ASN_NGAP_ProtocolIE_ID_t)75) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceToBeSwitchedDLList ((ASN_NGAP_ProtocolIE_ID_t)76) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSwitchedList ((ASN_NGAP_ProtocolIE_ID_t)77) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceToReleaseListHOCmd ((ASN_NGAP_ProtocolIE_ID_t)78) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceToReleaseListRelCmd ((ASN_NGAP_ProtocolIE_ID_t)79) +#define ASN_NGAP_ProtocolIE_ID_id_PLMNSupportList ((ASN_NGAP_ProtocolIE_ID_t)80) +#define ASN_NGAP_ProtocolIE_ID_id_PWSFailedCellIDList ((ASN_NGAP_ProtocolIE_ID_t)81) +#define ASN_NGAP_ProtocolIE_ID_id_RANNodeName ((ASN_NGAP_ProtocolIE_ID_t)82) +#define ASN_NGAP_ProtocolIE_ID_id_RANPagingPriority ((ASN_NGAP_ProtocolIE_ID_t)83) +#define ASN_NGAP_ProtocolIE_ID_id_RANStatusTransfer_TransparentContainer ((ASN_NGAP_ProtocolIE_ID_t)84) +#define ASN_NGAP_ProtocolIE_ID_id_RAN_UE_NGAP_ID ((ASN_NGAP_ProtocolIE_ID_t)85) +#define ASN_NGAP_ProtocolIE_ID_id_RelativeAMFCapacity ((ASN_NGAP_ProtocolIE_ID_t)86) +#define ASN_NGAP_ProtocolIE_ID_id_RepetitionPeriod ((ASN_NGAP_ProtocolIE_ID_t)87) +#define ASN_NGAP_ProtocolIE_ID_id_ResetType ((ASN_NGAP_ProtocolIE_ID_t)88) +#define ASN_NGAP_ProtocolIE_ID_id_RoutingID ((ASN_NGAP_ProtocolIE_ID_t)89) +#define ASN_NGAP_ProtocolIE_ID_id_RRCEstablishmentCause ((ASN_NGAP_ProtocolIE_ID_t)90) +#define ASN_NGAP_ProtocolIE_ID_id_RRCInactiveTransitionReportRequest ((ASN_NGAP_ProtocolIE_ID_t)91) +#define ASN_NGAP_ProtocolIE_ID_id_RRCState ((ASN_NGAP_ProtocolIE_ID_t)92) +#define ASN_NGAP_ProtocolIE_ID_id_SecurityContext ((ASN_NGAP_ProtocolIE_ID_t)93) +#define ASN_NGAP_ProtocolIE_ID_id_SecurityKey ((ASN_NGAP_ProtocolIE_ID_t)94) +#define ASN_NGAP_ProtocolIE_ID_id_SerialNumber ((ASN_NGAP_ProtocolIE_ID_t)95) +#define ASN_NGAP_ProtocolIE_ID_id_ServedGUAMIList ((ASN_NGAP_ProtocolIE_ID_t)96) +#define ASN_NGAP_ProtocolIE_ID_id_SliceSupportList ((ASN_NGAP_ProtocolIE_ID_t)97) +#define ASN_NGAP_ProtocolIE_ID_id_SONConfigurationTransferDL ((ASN_NGAP_ProtocolIE_ID_t)98) +#define ASN_NGAP_ProtocolIE_ID_id_SONConfigurationTransferUL ((ASN_NGAP_ProtocolIE_ID_t)99) +#define ASN_NGAP_ProtocolIE_ID_id_SourceAMF_UE_NGAP_ID ((ASN_NGAP_ProtocolIE_ID_t)100) +#define ASN_NGAP_ProtocolIE_ID_id_SourceToTarget_TransparentContainer ((ASN_NGAP_ProtocolIE_ID_t)101) +#define ASN_NGAP_ProtocolIE_ID_id_SupportedTAList ((ASN_NGAP_ProtocolIE_ID_t)102) +#define ASN_NGAP_ProtocolIE_ID_id_TAIListForPaging ((ASN_NGAP_ProtocolIE_ID_t)103) +#define ASN_NGAP_ProtocolIE_ID_id_TAIListForRestart ((ASN_NGAP_ProtocolIE_ID_t)104) +#define ASN_NGAP_ProtocolIE_ID_id_TargetID ((ASN_NGAP_ProtocolIE_ID_t)105) +#define ASN_NGAP_ProtocolIE_ID_id_TargetToSource_TransparentContainer ((ASN_NGAP_ProtocolIE_ID_t)106) +#define ASN_NGAP_ProtocolIE_ID_id_TimeToWait ((ASN_NGAP_ProtocolIE_ID_t)107) +#define ASN_NGAP_ProtocolIE_ID_id_TraceActivation ((ASN_NGAP_ProtocolIE_ID_t)108) +#define ASN_NGAP_ProtocolIE_ID_id_TraceCollectionEntityIPAddress ((ASN_NGAP_ProtocolIE_ID_t)109) +#define ASN_NGAP_ProtocolIE_ID_id_UEAggregateMaximumBitRate ((ASN_NGAP_ProtocolIE_ID_t)110) +#define ASN_NGAP_ProtocolIE_ID_id_UE_associatedLogicalNG_connectionList ((ASN_NGAP_ProtocolIE_ID_t)111) +#define ASN_NGAP_ProtocolIE_ID_id_UEContextRequest ((ASN_NGAP_ProtocolIE_ID_t)112) +#define ASN_NGAP_ProtocolIE_ID_id_UE_NGAP_IDs ((ASN_NGAP_ProtocolIE_ID_t)114) +#define ASN_NGAP_ProtocolIE_ID_id_UEPagingIdentity ((ASN_NGAP_ProtocolIE_ID_t)115) +#define ASN_NGAP_ProtocolIE_ID_id_UEPresenceInAreaOfInterestList ((ASN_NGAP_ProtocolIE_ID_t)116) +#define ASN_NGAP_ProtocolIE_ID_id_UERadioCapability ((ASN_NGAP_ProtocolIE_ID_t)117) +#define ASN_NGAP_ProtocolIE_ID_id_UERadioCapabilityForPaging ((ASN_NGAP_ProtocolIE_ID_t)118) +#define ASN_NGAP_ProtocolIE_ID_id_UESecurityCapabilities ((ASN_NGAP_ProtocolIE_ID_t)119) +#define ASN_NGAP_ProtocolIE_ID_id_UnavailableGUAMIList ((ASN_NGAP_ProtocolIE_ID_t)120) +#define ASN_NGAP_ProtocolIE_ID_id_UserLocationInformation ((ASN_NGAP_ProtocolIE_ID_t)121) +#define ASN_NGAP_ProtocolIE_ID_id_WarningAreaList ((ASN_NGAP_ProtocolIE_ID_t)122) +#define ASN_NGAP_ProtocolIE_ID_id_WarningMessageContents ((ASN_NGAP_ProtocolIE_ID_t)123) +#define ASN_NGAP_ProtocolIE_ID_id_WarningSecurityInfo ((ASN_NGAP_ProtocolIE_ID_t)124) +#define ASN_NGAP_ProtocolIE_ID_id_WarningType ((ASN_NGAP_ProtocolIE_ID_t)125) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalUL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)126) +#define ASN_NGAP_ProtocolIE_ID_id_DataForwardingNotPossible ((ASN_NGAP_ProtocolIE_ID_t)127) +#define ASN_NGAP_ProtocolIE_ID_id_DL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)128) +#define ASN_NGAP_ProtocolIE_ID_id_NetworkInstance ((ASN_NGAP_ProtocolIE_ID_t)129) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionAggregateMaximumBitRate ((ASN_NGAP_ProtocolIE_ID_t)130) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToModifyListModCfm ((ASN_NGAP_ProtocolIE_ID_t)131) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToSetupListCxtFail ((ASN_NGAP_ProtocolIE_ID_t)132) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceListCxtRelReq ((ASN_NGAP_ProtocolIE_ID_t)133) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionType ((ASN_NGAP_ProtocolIE_ID_t)134) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowAddOrModifyRequestList ((ASN_NGAP_ProtocolIE_ID_t)135) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowSetupRequestList ((ASN_NGAP_ProtocolIE_ID_t)136) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowToReleaseList ((ASN_NGAP_ProtocolIE_ID_t)137) +#define ASN_NGAP_ProtocolIE_ID_id_SecurityIndication ((ASN_NGAP_ProtocolIE_ID_t)138) +#define ASN_NGAP_ProtocolIE_ID_id_UL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)139) +#define ASN_NGAP_ProtocolIE_ID_id_UL_NGU_UP_TNLModifyList ((ASN_NGAP_ProtocolIE_ID_t)140) +#define ASN_NGAP_ProtocolIE_ID_id_WarningAreaCoordinates ((ASN_NGAP_ProtocolIE_ID_t)141) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSecondaryRATUsageList ((ASN_NGAP_ProtocolIE_ID_t)142) +#define ASN_NGAP_ProtocolIE_ID_id_HandoverFlag ((ASN_NGAP_ProtocolIE_ID_t)143) +#define ASN_NGAP_ProtocolIE_ID_id_SecondaryRATUsageInformation ((ASN_NGAP_ProtocolIE_ID_t)144) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceReleaseResponseTransfer ((ASN_NGAP_ProtocolIE_ID_t)145) +#define ASN_NGAP_ProtocolIE_ID_id_RedirectionVoiceFallback ((ASN_NGAP_ProtocolIE_ID_t)146) +#define ASN_NGAP_ProtocolIE_ID_id_UERetentionInformation ((ASN_NGAP_ProtocolIE_ID_t)147) +#define ASN_NGAP_ProtocolIE_ID_id_S_NSSAI ((ASN_NGAP_ProtocolIE_ID_t)148) +#define ASN_NGAP_ProtocolIE_ID_id_PSCellInformation ((ASN_NGAP_ProtocolIE_ID_t)149) +#define ASN_NGAP_ProtocolIE_ID_id_LastEUTRAN_PLMNIdentity ((ASN_NGAP_ProtocolIE_ID_t)150) +#define ASN_NGAP_ProtocolIE_ID_id_MaximumIntegrityProtectedDataRate_DL ((ASN_NGAP_ProtocolIE_ID_t)151) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalDLForwardingUPTNLInformation ((ASN_NGAP_ProtocolIE_ID_t)152) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalDLUPTNLInformationForHOList ((ASN_NGAP_ProtocolIE_ID_t)153) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalNGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)154) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalDLQosFlowPerTNLInformation ((ASN_NGAP_ProtocolIE_ID_t)155) +#define ASN_NGAP_ProtocolIE_ID_id_SecurityResult ((ASN_NGAP_ProtocolIE_ID_t)156) +#define ASN_NGAP_ProtocolIE_ID_id_ENDC_SONConfigurationTransferDL ((ASN_NGAP_ProtocolIE_ID_t)157) +#define ASN_NGAP_ProtocolIE_ID_id_ENDC_SONConfigurationTransferUL ((ASN_NGAP_ProtocolIE_ID_t)158) +#define ASN_NGAP_ProtocolIE_ID_id_OldAssociatedQosFlowList_ULendmarkerexpected ((ASN_NGAP_ProtocolIE_ID_t)159) +#define ASN_NGAP_ProtocolIE_ID_id_CNTypeRestrictionsForEquivalent ((ASN_NGAP_ProtocolIE_ID_t)160) +#define ASN_NGAP_ProtocolIE_ID_id_CNTypeRestrictionsForServing ((ASN_NGAP_ProtocolIE_ID_t)161) +#define ASN_NGAP_ProtocolIE_ID_id_NewGUAMI ((ASN_NGAP_ProtocolIE_ID_t)162) +#define ASN_NGAP_ProtocolIE_ID_id_ULForwarding ((ASN_NGAP_ProtocolIE_ID_t)163) +#define ASN_NGAP_ProtocolIE_ID_id_ULForwardingUP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)164) +#define ASN_NGAP_ProtocolIE_ID_id_CNAssistedRANTuning ((ASN_NGAP_ProtocolIE_ID_t)165) +#define ASN_NGAP_ProtocolIE_ID_id_CommonNetworkInstance ((ASN_NGAP_ProtocolIE_ID_t)166) +#define ASN_NGAP_ProtocolIE_ID_id_NGRAN_TNLAssociationToRemoveList ((ASN_NGAP_ProtocolIE_ID_t)167) +#define ASN_NGAP_ProtocolIE_ID_id_TNLAssociationTransportLayerAddressNGRAN ((ASN_NGAP_ProtocolIE_ID_t)168) +#define ASN_NGAP_ProtocolIE_ID_id_EndpointIPAddressAndPort ((ASN_NGAP_ProtocolIE_ID_t)169) +#define ASN_NGAP_ProtocolIE_ID_id_LocationReportingAdditionalInfo ((ASN_NGAP_ProtocolIE_ID_t)170) +#define ASN_NGAP_ProtocolIE_ID_id_SourceToTarget_AMFInformationReroute ((ASN_NGAP_ProtocolIE_ID_t)171) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalULForwardingUPTNLInformation ((ASN_NGAP_ProtocolIE_ID_t)172) +#define ASN_NGAP_ProtocolIE_ID_id_SCTP_TLAs ((ASN_NGAP_ProtocolIE_ID_t)173) +#define ASN_NGAP_ProtocolIE_ID_id_SelectedPLMNIdentity ((ASN_NGAP_ProtocolIE_ID_t)174) +#define ASN_NGAP_ProtocolIE_ID_id_RIMInformationTransfer ((ASN_NGAP_ProtocolIE_ID_t)175) +#define ASN_NGAP_ProtocolIE_ID_id_GUAMIType ((ASN_NGAP_ProtocolIE_ID_t)176) +#define ASN_NGAP_ProtocolIE_ID_id_SRVCCOperationPossible ((ASN_NGAP_ProtocolIE_ID_t)177) +#define ASN_NGAP_ProtocolIE_ID_id_TargetRNC_ID ((ASN_NGAP_ProtocolIE_ID_t)178) +#define ASN_NGAP_ProtocolIE_ID_id_RAT_Information ((ASN_NGAP_ProtocolIE_ID_t)179) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedRATRestrictionInformation ((ASN_NGAP_ProtocolIE_ID_t)180) +#define ASN_NGAP_ProtocolIE_ID_id_QosMonitoringRequest ((ASN_NGAP_ProtocolIE_ID_t)181) +#define ASN_NGAP_ProtocolIE_ID_id_SgNB_UE_X2AP_ID ((ASN_NGAP_ProtocolIE_ID_t)182) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalRedundantDL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)183) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalRedundantDLQosFlowPerTNLInformation ((ASN_NGAP_ProtocolIE_ID_t)184) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalRedundantNGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)185) +#define ASN_NGAP_ProtocolIE_ID_id_AdditionalRedundantUL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)186) +#define ASN_NGAP_ProtocolIE_ID_id_CNPacketDelayBudgetDL ((ASN_NGAP_ProtocolIE_ID_t)187) +#define ASN_NGAP_ProtocolIE_ID_id_CNPacketDelayBudgetUL ((ASN_NGAP_ProtocolIE_ID_t)188) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedPacketDelayBudget ((ASN_NGAP_ProtocolIE_ID_t)189) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantCommonNetworkInstance ((ASN_NGAP_ProtocolIE_ID_t)190) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantDL_NGU_TNLInformationReused ((ASN_NGAP_ProtocolIE_ID_t)191) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantDL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)192) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantDLQosFlowPerTNLInformation ((ASN_NGAP_ProtocolIE_ID_t)193) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantQosFlowIndicator ((ASN_NGAP_ProtocolIE_ID_t)194) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantUL_NGU_UP_TNLInformation ((ASN_NGAP_ProtocolIE_ID_t)195) +#define ASN_NGAP_ProtocolIE_ID_id_TSCTrafficCharacteristics ((ASN_NGAP_ProtocolIE_ID_t)196) +#define ASN_NGAP_ProtocolIE_ID_id_RedundantPDUSessionInformation ((ASN_NGAP_ProtocolIE_ID_t)197) +#define ASN_NGAP_ProtocolIE_ID_id_UsedRSNInformation ((ASN_NGAP_ProtocolIE_ID_t)198) +#define ASN_NGAP_ProtocolIE_ID_id_IAB_Authorized ((ASN_NGAP_ProtocolIE_ID_t)199) +#define ASN_NGAP_ProtocolIE_ID_id_IAB_Supported ((ASN_NGAP_ProtocolIE_ID_t)200) +#define ASN_NGAP_ProtocolIE_ID_id_IABNodeIndication ((ASN_NGAP_ProtocolIE_ID_t)201) +#define ASN_NGAP_ProtocolIE_ID_id_NB_IoT_PagingDRX ((ASN_NGAP_ProtocolIE_ID_t)202) +#define ASN_NGAP_ProtocolIE_ID_id_NB_IoT_Paging_eDRXInfo ((ASN_NGAP_ProtocolIE_ID_t)203) +#define ASN_NGAP_ProtocolIE_ID_id_NB_IoT_DefaultPagingDRX ((ASN_NGAP_ProtocolIE_ID_t)204) +#define ASN_NGAP_ProtocolIE_ID_id_Enhanced_CoverageRestriction ((ASN_NGAP_ProtocolIE_ID_t)205) +#define ASN_NGAP_ProtocolIE_ID_id_Extended_ConnectedTime ((ASN_NGAP_ProtocolIE_ID_t)206) +#define ASN_NGAP_ProtocolIE_ID_id_PagingAssisDataforCEcapabUE ((ASN_NGAP_ProtocolIE_ID_t)207) +#define ASN_NGAP_ProtocolIE_ID_id_WUS_Assistance_Information ((ASN_NGAP_ProtocolIE_ID_t)208) +#define ASN_NGAP_ProtocolIE_ID_id_UE_DifferentiationInfo ((ASN_NGAP_ProtocolIE_ID_t)209) +#define ASN_NGAP_ProtocolIE_ID_id_NB_IoT_UEPriority ((ASN_NGAP_ProtocolIE_ID_t)210) +#define ASN_NGAP_ProtocolIE_ID_id_UL_CP_SecurityInformation ((ASN_NGAP_ProtocolIE_ID_t)211) +#define ASN_NGAP_ProtocolIE_ID_id_DL_CP_SecurityInformation ((ASN_NGAP_ProtocolIE_ID_t)212) +#define ASN_NGAP_ProtocolIE_ID_id_TAI ((ASN_NGAP_ProtocolIE_ID_t)213) +#define ASN_NGAP_ProtocolIE_ID_id_UERadioCapabilityForPagingOfNB_IoT ((ASN_NGAP_ProtocolIE_ID_t)214) +#define ASN_NGAP_ProtocolIE_ID_id_LTEV2XServicesAuthorized ((ASN_NGAP_ProtocolIE_ID_t)215) +#define ASN_NGAP_ProtocolIE_ID_id_NRV2XServicesAuthorized ((ASN_NGAP_ProtocolIE_ID_t)216) +#define ASN_NGAP_ProtocolIE_ID_id_LTEUESidelinkAggregateMaximumBitrate ((ASN_NGAP_ProtocolIE_ID_t)217) +#define ASN_NGAP_ProtocolIE_ID_id_NRUESidelinkAggregateMaximumBitrate ((ASN_NGAP_ProtocolIE_ID_t)218) +#define ASN_NGAP_ProtocolIE_ID_id_PC5QoSParameters ((ASN_NGAP_ProtocolIE_ID_t)219) +#define ASN_NGAP_ProtocolIE_ID_id_AlternativeQoSParaSetList ((ASN_NGAP_ProtocolIE_ID_t)220) +#define ASN_NGAP_ProtocolIE_ID_id_CurrentQoSParaSetIndex ((ASN_NGAP_ProtocolIE_ID_t)221) +#define ASN_NGAP_ProtocolIE_ID_id_CEmodeBrestricted ((ASN_NGAP_ProtocolIE_ID_t)222) +#define ASN_NGAP_ProtocolIE_ID_id_EUTRA_PagingeDRXInformation ((ASN_NGAP_ProtocolIE_ID_t)223) +#define ASN_NGAP_ProtocolIE_ID_id_CEmodeBSupport_Indicator ((ASN_NGAP_ProtocolIE_ID_t)224) +#define ASN_NGAP_ProtocolIE_ID_id_LTEM_Indication ((ASN_NGAP_ProtocolIE_ID_t)225) +#define ASN_NGAP_ProtocolIE_ID_id_EndIndication ((ASN_NGAP_ProtocolIE_ID_t)226) +#define ASN_NGAP_ProtocolIE_ID_id_EDT_Session ((ASN_NGAP_ProtocolIE_ID_t)227) +#define ASN_NGAP_ProtocolIE_ID_id_UECapabilityInfoRequest ((ASN_NGAP_ProtocolIE_ID_t)228) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToResumeListRESReq ((ASN_NGAP_ProtocolIE_ID_t)229) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceFailedToResumeListRESRes ((ASN_NGAP_ProtocolIE_ID_t)230) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceSuspendListSUSReq ((ASN_NGAP_ProtocolIE_ID_t)231) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceResumeListRESReq ((ASN_NGAP_ProtocolIE_ID_t)232) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionResourceResumeListRESRes ((ASN_NGAP_ProtocolIE_ID_t)233) +#define ASN_NGAP_ProtocolIE_ID_id_UE_UP_CIoT_Support ((ASN_NGAP_ProtocolIE_ID_t)234) +#define ASN_NGAP_ProtocolIE_ID_id_Suspend_Request_Indication ((ASN_NGAP_ProtocolIE_ID_t)235) +#define ASN_NGAP_ProtocolIE_ID_id_Suspend_Response_Indication ((ASN_NGAP_ProtocolIE_ID_t)236) +#define ASN_NGAP_ProtocolIE_ID_id_RRC_Resume_Cause ((ASN_NGAP_ProtocolIE_ID_t)237) +#define ASN_NGAP_ProtocolIE_ID_id_RGLevelWirelineAccessCharacteristics ((ASN_NGAP_ProtocolIE_ID_t)238) +#define ASN_NGAP_ProtocolIE_ID_id_W_AGFIdentityInformation ((ASN_NGAP_ProtocolIE_ID_t)239) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalTNGF_ID ((ASN_NGAP_ProtocolIE_ID_t)240) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalTWIF_ID ((ASN_NGAP_ProtocolIE_ID_t)241) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalW_AGF_ID ((ASN_NGAP_ProtocolIE_ID_t)242) +#define ASN_NGAP_ProtocolIE_ID_id_UserLocationInformationW_AGF ((ASN_NGAP_ProtocolIE_ID_t)243) +#define ASN_NGAP_ProtocolIE_ID_id_UserLocationInformationTNGF ((ASN_NGAP_ProtocolIE_ID_t)244) +#define ASN_NGAP_ProtocolIE_ID_id_AuthenticatedIndication ((ASN_NGAP_ProtocolIE_ID_t)245) +#define ASN_NGAP_ProtocolIE_ID_id_TNGFIdentityInformation ((ASN_NGAP_ProtocolIE_ID_t)246) +#define ASN_NGAP_ProtocolIE_ID_id_TWIFIdentityInformation ((ASN_NGAP_ProtocolIE_ID_t)247) +#define ASN_NGAP_ProtocolIE_ID_id_UserLocationInformationTWIF ((ASN_NGAP_ProtocolIE_ID_t)248) +#define ASN_NGAP_ProtocolIE_ID_id_DataForwardingResponseERABList ((ASN_NGAP_ProtocolIE_ID_t)249) +#define ASN_NGAP_ProtocolIE_ID_id_IntersystemSONConfigurationTransferDL ((ASN_NGAP_ProtocolIE_ID_t)250) +#define ASN_NGAP_ProtocolIE_ID_id_IntersystemSONConfigurationTransferUL ((ASN_NGAP_ProtocolIE_ID_t)251) +#define ASN_NGAP_ProtocolIE_ID_id_SONInformationReport ((ASN_NGAP_ProtocolIE_ID_t)252) +#define ASN_NGAP_ProtocolIE_ID_id_UEHistoryInformationFromTheUE ((ASN_NGAP_ProtocolIE_ID_t)253) +#define ASN_NGAP_ProtocolIE_ID_id_ManagementBasedMDTPLMNList ((ASN_NGAP_ProtocolIE_ID_t)254) +#define ASN_NGAP_ProtocolIE_ID_id_MDTConfiguration ((ASN_NGAP_ProtocolIE_ID_t)255) +#define ASN_NGAP_ProtocolIE_ID_id_PrivacyIndicator ((ASN_NGAP_ProtocolIE_ID_t)256) +#define ASN_NGAP_ProtocolIE_ID_id_TraceCollectionEntityURI ((ASN_NGAP_ProtocolIE_ID_t)257) +#define ASN_NGAP_ProtocolIE_ID_id_NPN_Support ((ASN_NGAP_ProtocolIE_ID_t)258) +#define ASN_NGAP_ProtocolIE_ID_id_NPN_AccessInformation ((ASN_NGAP_ProtocolIE_ID_t)259) +#define ASN_NGAP_ProtocolIE_ID_id_NPN_PagingAssistanceInformation ((ASN_NGAP_ProtocolIE_ID_t)260) +#define ASN_NGAP_ProtocolIE_ID_id_NPN_MobilityInformation ((ASN_NGAP_ProtocolIE_ID_t)261) +#define ASN_NGAP_ProtocolIE_ID_id_TargettoSource_Failure_TransparentContainer ((ASN_NGAP_ProtocolIE_ID_t)262) +#define ASN_NGAP_ProtocolIE_ID_id_NID ((ASN_NGAP_ProtocolIE_ID_t)263) +#define ASN_NGAP_ProtocolIE_ID_id_UERadioCapabilityID ((ASN_NGAP_ProtocolIE_ID_t)264) +#define ASN_NGAP_ProtocolIE_ID_id_UERadioCapability_EUTRA_Format ((ASN_NGAP_ProtocolIE_ID_t)265) +#define ASN_NGAP_ProtocolIE_ID_id_DAPSRequestInfo ((ASN_NGAP_ProtocolIE_ID_t)266) +#define ASN_NGAP_ProtocolIE_ID_id_DAPSResponseInfoList ((ASN_NGAP_ProtocolIE_ID_t)267) +#define ASN_NGAP_ProtocolIE_ID_id_EarlyStatusTransfer_TransparentContainer ((ASN_NGAP_ProtocolIE_ID_t)268) +#define ASN_NGAP_ProtocolIE_ID_id_NotifySourceNGRANNode ((ASN_NGAP_ProtocolIE_ID_t)269) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedSliceSupportList ((ASN_NGAP_ProtocolIE_ID_t)270) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedTAISliceSupportList ((ASN_NGAP_ProtocolIE_ID_t)271) +#define ASN_NGAP_ProtocolIE_ID_id_ConfiguredTACIndication ((ASN_NGAP_ProtocolIE_ID_t)272) +#define ASN_NGAP_ProtocolIE_ID_id_Extended_RANNodeName ((ASN_NGAP_ProtocolIE_ID_t)273) +#define ASN_NGAP_ProtocolIE_ID_id_Extended_AMFName ((ASN_NGAP_ProtocolIE_ID_t)274) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalCable_ID ((ASN_NGAP_ProtocolIE_ID_t)275) +#define ASN_NGAP_ProtocolIE_ID_id_QosMonitoringReportingFrequency ((ASN_NGAP_ProtocolIE_ID_t)276) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowParametersList ((ASN_NGAP_ProtocolIE_ID_t)277) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowFeedbackList ((ASN_NGAP_ProtocolIE_ID_t)278) +#define ASN_NGAP_ProtocolIE_ID_id_BurstArrivalTimeDownlink ((ASN_NGAP_ProtocolIE_ID_t)279) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedUEIdentityIndexValue ((ASN_NGAP_ProtocolIE_ID_t)280) +#define ASN_NGAP_ProtocolIE_ID_id_PduSessionExpectedUEActivityBehaviour ((ASN_NGAP_ProtocolIE_ID_t)281) +#define ASN_NGAP_ProtocolIE_ID_id_MicoAllPLMN ((ASN_NGAP_ProtocolIE_ID_t)282) +#define ASN_NGAP_ProtocolIE_ID_id_QosFlowFailedToSetupList ((ASN_NGAP_ProtocolIE_ID_t)283) +#define ASN_NGAP_ProtocolIE_ID_id_SourceTNLAddrInfo ((ASN_NGAP_ProtocolIE_ID_t)284) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedReportIntervalMDT ((ASN_NGAP_ProtocolIE_ID_t)285) +#define ASN_NGAP_ProtocolIE_ID_id_SourceNodeID ((ASN_NGAP_ProtocolIE_ID_t)286) +#define ASN_NGAP_ProtocolIE_ID_id_NRNTNTAIInformation ((ASN_NGAP_ProtocolIE_ID_t)287) +#define ASN_NGAP_ProtocolIE_ID_id_UEContextReferenceAtSource ((ASN_NGAP_ProtocolIE_ID_t)288) +#define ASN_NGAP_ProtocolIE_ID_id_LastVisitedPSCellList ((ASN_NGAP_ProtocolIE_ID_t)289) +#define ASN_NGAP_ProtocolIE_ID_id_IntersystemSONInformationRequest ((ASN_NGAP_ProtocolIE_ID_t)290) +#define ASN_NGAP_ProtocolIE_ID_id_IntersystemSONInformationReply ((ASN_NGAP_ProtocolIE_ID_t)291) +#define ASN_NGAP_ProtocolIE_ID_id_EnergySavingIndication ((ASN_NGAP_ProtocolIE_ID_t)292) +#define ASN_NGAP_ProtocolIE_ID_id_IntersystemResourceStatusUpdate ((ASN_NGAP_ProtocolIE_ID_t)293) +#define ASN_NGAP_ProtocolIE_ID_id_SuccessfulHandoverReportList ((ASN_NGAP_ProtocolIE_ID_t)294) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_AreaSessionID ((ASN_NGAP_ProtocolIE_ID_t)295) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_QoSFlowsToBeSetupList ((ASN_NGAP_ProtocolIE_ID_t)296) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_QoSFlowsToBeSetupModList ((ASN_NGAP_ProtocolIE_ID_t)297) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_ServiceArea ((ASN_NGAP_ProtocolIE_ID_t)298) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_SessionID ((ASN_NGAP_ProtocolIE_ID_t)299) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_DistributionReleaseRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)300) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_DistributionSetupRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)301) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_DistributionSetupResponseTransfer ((ASN_NGAP_ProtocolIE_ID_t)302) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_DistributionSetupUnsuccessfulTransfer ((ASN_NGAP_ProtocolIE_ID_t)303) +#define ASN_NGAP_ProtocolIE_ID_id_MulticastSessionActivationRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)304) +#define ASN_NGAP_ProtocolIE_ID_id_MulticastSessionDeactivationRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)305) +#define ASN_NGAP_ProtocolIE_ID_id_MulticastSessionUpdateRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)306) +#define ASN_NGAP_ProtocolIE_ID_id_MulticastGroupPagingAreaList ((ASN_NGAP_ProtocolIE_ID_t)307) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_SupportIndicator ((ASN_NGAP_ProtocolIE_ID_t)309) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionFailedtoSetupList ((ASN_NGAP_ProtocolIE_ID_t)310) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionFailedtoSetuporModifyList ((ASN_NGAP_ProtocolIE_ID_t)311) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetupResponseList ((ASN_NGAP_ProtocolIE_ID_t)312) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetuporModifyResponseList ((ASN_NGAP_ProtocolIE_ID_t)313) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetupFailureTransfer ((ASN_NGAP_ProtocolIE_ID_t)314) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetupRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)315) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetupResponseTransfer ((ASN_NGAP_ProtocolIE_ID_t)316) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionToReleaseList ((ASN_NGAP_ProtocolIE_ID_t)317) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetupRequestList ((ASN_NGAP_ProtocolIE_ID_t)318) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionSetuporModifyRequestList ((ASN_NGAP_ProtocolIE_ID_t)319) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_ActiveSessionInformation_SourcetoTargetList ((ASN_NGAP_ProtocolIE_ID_t)323) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_ActiveSessionInformation_TargettoSourceList ((ASN_NGAP_ProtocolIE_ID_t)324) +#define ASN_NGAP_ProtocolIE_ID_id_OnboardingSupport ((ASN_NGAP_ProtocolIE_ID_t)325) +#define ASN_NGAP_ProtocolIE_ID_id_TimeSyncAssistanceInfo ((ASN_NGAP_ProtocolIE_ID_t)326) +#define ASN_NGAP_ProtocolIE_ID_id_SurvivalTime ((ASN_NGAP_ProtocolIE_ID_t)327) +#define ASN_NGAP_ProtocolIE_ID_id_QMCConfigInfo ((ASN_NGAP_ProtocolIE_ID_t)328) +#define ASN_NGAP_ProtocolIE_ID_id_QMCDeactivation ((ASN_NGAP_ProtocolIE_ID_t)329) +#define ASN_NGAP_ProtocolIE_ID_id_PDUSessionPairID ((ASN_NGAP_ProtocolIE_ID_t)331) +#define ASN_NGAP_ProtocolIE_ID_id_NR_PagingeDRXInformation ((ASN_NGAP_ProtocolIE_ID_t)332) +#define ASN_NGAP_ProtocolIE_ID_id_RedCapIndication ((ASN_NGAP_ProtocolIE_ID_t)333) +#define ASN_NGAP_ProtocolIE_ID_id_TargetNSSAIInformation ((ASN_NGAP_ProtocolIE_ID_t)334) +#define ASN_NGAP_ProtocolIE_ID_id_UESliceMaximumBitRateList ((ASN_NGAP_ProtocolIE_ID_t)335) +#define ASN_NGAP_ProtocolIE_ID_id_M4ReportAmount ((ASN_NGAP_ProtocolIE_ID_t)336) +#define ASN_NGAP_ProtocolIE_ID_id_M5ReportAmount ((ASN_NGAP_ProtocolIE_ID_t)337) +#define ASN_NGAP_ProtocolIE_ID_id_M6ReportAmount ((ASN_NGAP_ProtocolIE_ID_t)338) +#define ASN_NGAP_ProtocolIE_ID_id_M7ReportAmount ((ASN_NGAP_ProtocolIE_ID_t)339) +#define ASN_NGAP_ProtocolIE_ID_id_IncludeBeamMeasurementsIndication ((ASN_NGAP_ProtocolIE_ID_t)340) +#define ASN_NGAP_ProtocolIE_ID_id_ExcessPacketDelayThresholdConfiguration ((ASN_NGAP_ProtocolIE_ID_t)341) +#define ASN_NGAP_ProtocolIE_ID_id_PagingCause ((ASN_NGAP_ProtocolIE_ID_t)342) +#define ASN_NGAP_ProtocolIE_ID_id_PagingCauseIndicationForVoiceService ((ASN_NGAP_ProtocolIE_ID_t)343) +#define ASN_NGAP_ProtocolIE_ID_id_PEIPSassistanceInformation ((ASN_NGAP_ProtocolIE_ID_t)344) +#define ASN_NGAP_ProtocolIE_ID_id_FiveG_ProSeAuthorized ((ASN_NGAP_ProtocolIE_ID_t)345) +#define ASN_NGAP_ProtocolIE_ID_id_FiveG_ProSeUEPC5AggregateMaximumBitRate ((ASN_NGAP_ProtocolIE_ID_t)346) +#define ASN_NGAP_ProtocolIE_ID_id_FiveG_ProSePC5QoSParameters ((ASN_NGAP_ProtocolIE_ID_t)347) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionModificationFailureTransfer ((ASN_NGAP_ProtocolIE_ID_t)348) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionModificationRequestTransfer ((ASN_NGAP_ProtocolIE_ID_t)349) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionModificationResponseTransfer ((ASN_NGAP_ProtocolIE_ID_t)350) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_QoSFlowToReleaseList ((ASN_NGAP_ProtocolIE_ID_t)351) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_SessionTNLInfo5GC ((ASN_NGAP_ProtocolIE_ID_t)352) +#define ASN_NGAP_ProtocolIE_ID_id_TAINSAGSupportList ((ASN_NGAP_ProtocolIE_ID_t)353) +#define ASN_NGAP_ProtocolIE_ID_id_SourceNodeTNLAddrInfo ((ASN_NGAP_ProtocolIE_ID_t)354) +#define ASN_NGAP_ProtocolIE_ID_id_NGAPIESupportInformationRequestList ((ASN_NGAP_ProtocolIE_ID_t)355) +#define ASN_NGAP_ProtocolIE_ID_id_NGAPIESupportInformationResponseList ((ASN_NGAP_ProtocolIE_ID_t)356) +#define ASN_NGAP_ProtocolIE_ID_id_MBS_SessionFSAIDList ((ASN_NGAP_ProtocolIE_ID_t)357) +#define ASN_NGAP_ProtocolIE_ID_id_MBSSessionReleaseResponseTransfer ((ASN_NGAP_ProtocolIE_ID_t)358) +#define ASN_NGAP_ProtocolIE_ID_id_ManagementBasedMDTPLMNModificationList ((ASN_NGAP_ProtocolIE_ID_t)359) +#define ASN_NGAP_ProtocolIE_ID_id_EarlyMeasurement ((ASN_NGAP_ProtocolIE_ID_t)360) +#define ASN_NGAP_ProtocolIE_ID_id_BeamMeasurementsReportConfiguration ((ASN_NGAP_ProtocolIE_ID_t)361) +#define ASN_NGAP_ProtocolIE_ID_id_HFCNode_ID_new ((ASN_NGAP_ProtocolIE_ID_t)362) +#define ASN_NGAP_ProtocolIE_ID_id_GlobalCable_ID_new ((ASN_NGAP_ProtocolIE_ID_t)363) +#define ASN_NGAP_ProtocolIE_ID_id_TargetHomeENB_ID ((ASN_NGAP_ProtocolIE_ID_t)364) +#define ASN_NGAP_ProtocolIE_ID_id_HashedUEIdentityIndexValue ((ASN_NGAP_ProtocolIE_ID_t)365) +#define ASN_NGAP_ProtocolIE_ID_id_ExtendedMobilityInformation ((ASN_NGAP_ProtocolIE_ID_t)366) + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.c b/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.c new file mode 100644 index 0000000..266080a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.c @@ -0,0 +1,1481 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" + +/* + * This type is implemented using ASN_NGAP_AMFPagingTarget_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_AreaScopeOfQMC_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_BroadcastCancelledAreaList_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_BroadcastCompletedAreaList_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_CandidateCell_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_Cause_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_CellIDListForRestart_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_CPTransportLayerInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_DRBStatusDL_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_DRBStatusUL_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ProcedureStageChoice_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ENB_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_EventTrigger_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_GlobalRANNodeID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_GNB_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_IntersystemSONTransferType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_IntersystemSONInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_IntersystemSONInformationRequest_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ReportingSystem_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ReportType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_IntersystemSONInformationReply_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_IntersystemSONInformationReport_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ResourceStatusReportingSystem_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_InterSystemHandoverReportType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_LastVisitedCellInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_LoggedMDTTrigger_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MRB_ProgressInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MBS_ServiceArea_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MDT_AlignmentInfo_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_MDTModeNr_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_M1ThresholdType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_N3IWF_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NgENB_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NGRAN_CGI_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NPN_AccessInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NPN_MobilityInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_NPN_Support_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_OverloadResponse_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_PWSFailedCellIDList_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_QosCharacteristics_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_ResetType_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_SensorNameConfig_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_SONInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_SONInformationReport_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_SourceNodeID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_TargetID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_TNGF_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_TWIF_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UEIdentityIndexValue_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UE_NGAP_IDs_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UEPagingIdentity_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UERLFReportContainer_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UPTransportLayerInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UserLocationInformation_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_UserLocationInformationW_AGF_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_W_AGF_ID_ExtIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using ASN_NGAP_WarningAreaList_ExtIEs, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AMFPagingTarget_ExtIEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AMFPagingTarget_ExtIEs_specs_1 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1_tags_2[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_5, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_specs_5 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2_tags_3[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_9, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_specs_9 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_AreaScopeOfQMC_ExtIEs_13, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_AreaScopeOfQMC_ExtIEs_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_17, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5_tags_6[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_21, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CandidateCell_ExtIEs_25, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CandidateCell_ExtIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7_tags_8[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_Cause_ExtIEs_29, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_Cause_ExtIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CellIDListForRestart_ExtIEs_33, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CellIDListForRestart_ExtIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_CPTransportLayerInformation_ExtIEs_37, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_CPTransportLayerInformation_ExtIEs_specs_37 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10_tags_11[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusDL_ExtIEs_41, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusDL_ExtIEs_specs_41 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11_tags_12[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_DRBStatusUL_ExtIEs_45, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_DRBStatusUL_ExtIEs_specs_45 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ProcedureStageChoice_ExtIEs_49, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ProcedureStageChoice_ExtIEs_specs_49 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13_tags_14[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ENB_ID_ExtIEs_53, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ENB_ID_ExtIEs_specs_53 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14_tags_15[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_EventTrigger_ExtIEs_57, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_EventTrigger_ExtIEs_specs_57 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15_tags_16[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_61, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_specs_61 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GlobalRANNodeID_ExtIEs_65, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GlobalRANNodeID_ExtIEs_specs_65 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17_tags_18[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_GNB_ID_ExtIEs_69, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_GNB_ID_ExtIEs_specs_69 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18_tags_19[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONTransferType_ExtIEs_73, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONTransferType_ExtIEs_specs_73 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19_tags_20[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformation_ExtIEs_77, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformation_ExtIEs_specs_77 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_81, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_specs_81 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21_tags_22[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ReportingSystem_ExtIEs_85, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportingSystem_ExtIEs_specs_85 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22_tags_23[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ReportType_ExtIEs_89, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportType_ExtIEs_specs_89 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23_tags_24[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_93, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReply_ExtIEs_specs_93 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_97, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_IntersystemSONInformationReport_ExtIEs_specs_97 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25_tags_26[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_101, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_specs_101 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26_tags_27[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_105, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_InterSystemHandoverReportType_ExtIEs_specs_105 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27_tags_28[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LastVisitedCellInformation_ExtIEs_109, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LastVisitedCellInformation_ExtIEs_specs_109 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_LoggedMDTTrigger_ExtIEs_113, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_LoggedMDTTrigger_ExtIEs_specs_113 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29_tags_30[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MRB_ProgressInformation_ExtIEs_117, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MRB_ProgressInformation_ExtIEs_specs_117 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30_tags_31[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_ServiceArea_ExtIEs_121, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_ServiceArea_ExtIEs_specs_121 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31_tags_32[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_125, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_specs_125 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_129, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_specs_129 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33_tags_34[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_133, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDT_AlignmentInfo_ExtIEs_specs_133 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34_tags_35[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_MDTModeNr_ExtIEs_137, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_MDTModeNr_ExtIEs_specs_137 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35_tags_36[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_M1ThresholdType_ExtIEs_141, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_M1ThresholdType_ExtIEs_specs_141 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_N3IWF_ID_ExtIEs_145, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_N3IWF_ID_ExtIEs_specs_145 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37_tags_38[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NgENB_ID_ExtIEs_149, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NgENB_ID_ExtIEs_specs_149 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38_tags_39[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NGRAN_CGI_ExtIEs_153, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NGRAN_CGI_ExtIEs_specs_153 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39_tags_40[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_AccessInformation_ExtIEs_157, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_AccessInformation_ExtIEs_specs_157 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_MobilityInformation_ExtIEs_161, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_MobilityInformation_ExtIEs_specs_161 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41_tags_42[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_165, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_specs_165 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42_tags_43[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_NPN_Support_ExtIEs_169, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_NPN_Support_ExtIEs_specs_169 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43_tags_44[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_OverloadResponse_ExtIEs_173, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_OverloadResponse_ExtIEs_specs_173 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_PWSFailedCellIDList_ExtIEs_177, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_PWSFailedCellIDList_ExtIEs_specs_177 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45_tags_46[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosCharacteristics_ExtIEs_181, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosCharacteristics_ExtIEs_specs_181 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46_tags_47[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ResetType_ExtIEs_185, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResetType_ExtIEs_specs_185 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47_tags_48[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorNameConfig_ExtIEs_189, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorNameConfig_ExtIEs_specs_189 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformation_ExtIEs_193, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformation_ExtIEs_specs_193 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49_tags_50[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformationReport_ExtIEs_197, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformationReport_ExtIEs_specs_197 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50_tags_51[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceNodeID_ExtIEs_201, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceNodeID_ExtIEs_specs_201 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51_tags_52[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetID_ExtIEs_205, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetID_ExtIEs_specs_205 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TNGF_ID_ExtIEs_209, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TNGF_ID_ExtIEs_specs_209 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53_tags_54[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TWIF_ID_ExtIEs_213, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TWIF_ID_ExtIEs_specs_213 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54_tags_55[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_217, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_specs_217 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55_tags_56[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEIdentityIndexValue_ExtIEs_221, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEIdentityIndexValue_ExtIEs_specs_221 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_NGAP_IDs_ExtIEs_225, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_NGAP_IDs_ExtIEs_specs_225 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57_tags_58[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEPagingIdentity_ExtIEs_229, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEPagingIdentity_ExtIEs_specs_229 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58_tags_59[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERLFReportContainer_ExtIEs_233, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERLFReportContainer_ExtIEs_specs_233 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59_tags_60[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformation_ExtIEs_237, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformation_ExtIEs_specs_237 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformation_ExtIEs_241, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformation_ExtIEs_specs_241 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61_tags_62[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_245, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_specs_245 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62_tags_63[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_W_AGF_ID_ExtIEs_249, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_W_AGF_ID_ExtIEs_specs_249 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63 = { + "ProtocolIE-SingleContainer", + "ProtocolIE-SingleContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64, + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64[0]), /* 1 */ + asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64) + /sizeof(asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63_tags_64[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WarningAreaList_ExtIEs_253, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_WarningAreaList_ExtIEs_specs_253 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.h b/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.h new file mode 100644 index 0000000..120a12d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ProtocolIE-SingleContainer.h @@ -0,0 +1,862 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-Containers" + * found in "NGAP-Containers.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ProtocolIE_SingleContainer_H_ +#define _ASN_NGAP_ProtocolIE_SingleContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Field.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ProtocolIE-SingleContainer */ +typedef ASN_NGAP_AMFPagingTarget_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P0_t; +typedef ASN_NGAP_AreaScopeOfMDT_NR_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P1_t; +typedef ASN_NGAP_AreaScopeOfMDT_EUTRA_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P2_t; +typedef ASN_NGAP_AreaScopeOfQMC_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P3_t; +typedef ASN_NGAP_BroadcastCancelledAreaList_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P4_t; +typedef ASN_NGAP_BroadcastCompletedAreaList_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P5_t; +typedef ASN_NGAP_CandidateCell_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P6_t; +typedef ASN_NGAP_Cause_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P7_t; +typedef ASN_NGAP_CellIDListForRestart_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P8_t; +typedef ASN_NGAP_CPTransportLayerInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P9_t; +typedef ASN_NGAP_DRBStatusDL_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P10_t; +typedef ASN_NGAP_DRBStatusUL_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P11_t; +typedef ASN_NGAP_ProcedureStageChoice_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P12_t; +typedef ASN_NGAP_ENB_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P13_t; +typedef ASN_NGAP_EventTrigger_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P14_t; +typedef ASN_NGAP_MeasurementThresholdL1LoggedMDT_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P15_t; +typedef ASN_NGAP_GlobalRANNodeID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P16_t; +typedef ASN_NGAP_GNB_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P17_t; +typedef ASN_NGAP_IntersystemSONTransferType_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P18_t; +typedef ASN_NGAP_IntersystemSONInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P19_t; +typedef ASN_NGAP_IntersystemSONInformationRequest_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P20_t; +typedef ASN_NGAP_ReportingSystem_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P21_t; +typedef ASN_NGAP_ReportType_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P22_t; +typedef ASN_NGAP_IntersystemSONInformationReply_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P23_t; +typedef ASN_NGAP_IntersystemSONInformationReport_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P24_t; +typedef ASN_NGAP_ResourceStatusReportingSystem_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P25_t; +typedef ASN_NGAP_InterSystemHandoverReportType_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P26_t; +typedef ASN_NGAP_LastVisitedCellInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P27_t; +typedef ASN_NGAP_LoggedMDTTrigger_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P28_t; +typedef ASN_NGAP_MRB_ProgressInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P29_t; +typedef ASN_NGAP_MBS_ServiceArea_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P30_t; +typedef ASN_NGAP_MBS_SessionTNLInfo5GC_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P31_t; +typedef ASN_NGAP_MBS_SessionTNLInfoNGRAN_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P32_t; +typedef ASN_NGAP_MDT_AlignmentInfo_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P33_t; +typedef ASN_NGAP_MDTModeNr_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P34_t; +typedef ASN_NGAP_M1ThresholdType_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P35_t; +typedef ASN_NGAP_N3IWF_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P36_t; +typedef ASN_NGAP_NgENB_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P37_t; +typedef ASN_NGAP_NGRAN_CGI_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P38_t; +typedef ASN_NGAP_NPN_AccessInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P39_t; +typedef ASN_NGAP_NPN_MobilityInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P40_t; +typedef ASN_NGAP_NPN_PagingAssistanceInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P41_t; +typedef ASN_NGAP_NPN_Support_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P42_t; +typedef ASN_NGAP_OverloadResponse_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P43_t; +typedef ASN_NGAP_PWSFailedCellIDList_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P44_t; +typedef ASN_NGAP_QosCharacteristics_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P45_t; +typedef ASN_NGAP_ResetType_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P46_t; +typedef ASN_NGAP_SensorNameConfig_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P47_t; +typedef ASN_NGAP_SONInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P48_t; +typedef ASN_NGAP_SONInformationReport_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P49_t; +typedef ASN_NGAP_SourceNodeID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P50_t; +typedef ASN_NGAP_TargetID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P51_t; +typedef ASN_NGAP_TNGF_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P52_t; +typedef ASN_NGAP_TWIF_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P53_t; +typedef ASN_NGAP_UEHistoryInformationFromTheUE_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P54_t; +typedef ASN_NGAP_UEIdentityIndexValue_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P55_t; +typedef ASN_NGAP_UE_NGAP_IDs_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P56_t; +typedef ASN_NGAP_UEPagingIdentity_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P57_t; +typedef ASN_NGAP_UERLFReportContainer_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P58_t; +typedef ASN_NGAP_UPTransportLayerInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P59_t; +typedef ASN_NGAP_UserLocationInformation_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P60_t; +typedef ASN_NGAP_UserLocationInformationW_AGF_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P61_t; +typedef ASN_NGAP_W_AGF_ID_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P62_t; +typedef ASN_NGAP_WarningAreaList_ExtIEs_t ASN_NGAP_ProtocolIE_SingleContainer_126P63_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P0; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P1; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P2; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P3; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P4; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P5; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P6; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P7; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P8; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P9; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P10; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P11; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P12; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P13; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P14; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P15; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P16; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P16_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P17; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P17_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P18; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P18_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P19; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P19_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P20; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P20_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P21_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P22_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P23; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P23_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P24; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P24_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P25_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P26; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P26_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P27; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P27_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P28; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P28_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P29; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P29_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P30; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P30_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P31; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P31_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P32; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P32_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P33; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P33_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P34; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P34_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P35; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P35_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P36; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P36_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P37; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P37_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P38; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P38_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P39; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P39_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P40; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P40_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P41; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P41_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P42; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P42_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P43; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P43_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P44; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P44_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P45_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P46_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P47_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P48_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P49_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P50_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P51_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P52_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P53_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P54_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P55_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P56_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P57_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P58_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P59_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P60_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P61_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P62_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63; +asn_struct_free_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_free; +asn_struct_print_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_print; +asn_constr_check_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_constraint; +ber_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_decode_ber; +der_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_encode_der; +xer_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_decode_xer; +xer_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_encode_xer; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_decode_uper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_encode_uper; +per_type_decoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_decode_aper; +per_type_encoder_f ASN_NGAP_ProtocolIE_SingleContainer_126P63_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ProtocolIE_SingleContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QMCConfigInfo.c b/src/asn/ngap/ASN_NGAP_QMCConfigInfo.c new file mode 100644 index 0000000..4dbe29c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QMCConfigInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QMCConfigInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCConfigInfo, uEAppLayerMeasInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEAppLayerMeasInfoList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QMCConfigInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P268, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QMCConfigInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QMCConfigInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEAppLayerMeasInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCConfigInfo_specs_1 = { + sizeof(struct ASN_NGAP_QMCConfigInfo), + offsetof(struct ASN_NGAP_QMCConfigInfo, _asn_ctx), + asn_MAP_ASN_NGAP_QMCConfigInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QMCConfigInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCConfigInfo = { + "QMCConfigInfo", + "QMCConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QMCConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QMCConfigInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QMCConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QMCConfigInfo.h b/src/asn/ngap/ASN_NGAP_QMCConfigInfo.h new file mode 100644 index 0000000..62a10db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QMCConfigInfo.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QMCConfigInfo_H_ +#define _ASN_NGAP_QMCConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UEAppLayerMeasInfoList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QMCConfigInfo */ +typedef struct ASN_NGAP_QMCConfigInfo { + ASN_NGAP_UEAppLayerMeasInfoList_t uEAppLayerMeasInfoList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QMCConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCConfigInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCConfigInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCConfigInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QMCConfigInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QMCDeactivation.c b/src/asn/ngap/ASN_NGAP_QMCDeactivation.c new file mode 100644 index 0000000..09e5365 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QMCDeactivation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QMCDeactivation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCDeactivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QMCDeactivation, qoEReferenceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QoEReferenceList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoEReferenceList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QMCDeactivation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P269, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QMCDeactivation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QMCDeactivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QMCDeactivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qoEReferenceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCDeactivation_specs_1 = { + sizeof(struct ASN_NGAP_QMCDeactivation), + offsetof(struct ASN_NGAP_QMCDeactivation, _asn_ctx), + asn_MAP_ASN_NGAP_QMCDeactivation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QMCDeactivation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCDeactivation = { + "QMCDeactivation", + "QMCDeactivation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QMCDeactivation_tags_1, + sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QMCDeactivation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QMCDeactivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QMCDeactivation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QMCDeactivation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QMCDeactivation.h b/src/asn/ngap/ASN_NGAP_QMCDeactivation.h new file mode 100644 index 0000000..f8c8b6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QMCDeactivation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QMCDeactivation_H_ +#define _ASN_NGAP_QMCDeactivation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QoEReferenceList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QMCDeactivation */ +typedef struct ASN_NGAP_QMCDeactivation { + ASN_NGAP_QoEReferenceList_t qoEReferenceList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QMCDeactivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QMCDeactivation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QMCDeactivation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QMCDeactivation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QMCDeactivation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QoEReference.c b/src/asn/ngap/ASN_NGAP_QoEReference.c new file mode 100644 index 0000000..bea9d2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoEReference.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QoEReference.h" + +int +ASN_NGAP_QoEReference_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 == 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_QoEReference_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_ASN_NGAP_QoEReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoEReference = { + "QoEReference", + "QoEReference", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_QoEReference_tags_1, + sizeof(asn_DEF_ASN_NGAP_QoEReference_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoEReference_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoEReference_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoEReference_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoEReference_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QoEReference_constr_1, ASN_NGAP_QoEReference_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QoEReference.h b/src/asn/ngap/ASN_NGAP_QoEReference.h new file mode 100644 index 0000000..dcd16b4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoEReference.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QoEReference_H_ +#define _ASN_NGAP_QoEReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_QoEReference */ +typedef OCTET_STRING_t ASN_NGAP_QoEReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QoEReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoEReference; +asn_struct_free_f ASN_NGAP_QoEReference_free; +asn_struct_print_f ASN_NGAP_QoEReference_print; +asn_constr_check_f ASN_NGAP_QoEReference_constraint; +ber_type_decoder_f ASN_NGAP_QoEReference_decode_ber; +der_type_encoder_f ASN_NGAP_QoEReference_encode_der; +xer_type_decoder_f ASN_NGAP_QoEReference_decode_xer; +xer_type_encoder_f ASN_NGAP_QoEReference_encode_xer; +per_type_decoder_f ASN_NGAP_QoEReference_decode_uper; +per_type_encoder_f ASN_NGAP_QoEReference_encode_uper; +per_type_decoder_f ASN_NGAP_QoEReference_decode_aper; +per_type_encoder_f ASN_NGAP_QoEReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QoEReference_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QoEReferenceList.c b/src/asn/ngap/ASN_NGAP_QoEReferenceList.c new file mode 100644 index 0000000..7d9adeb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoEReferenceList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QoEReferenceList.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_QoEReferenceList_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_ASN_NGAP_QoEReferenceList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_QoEReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QoEReferenceList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QoEReferenceList_specs_1 = { + sizeof(struct ASN_NGAP_QoEReferenceList), + offsetof(struct ASN_NGAP_QoEReferenceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoEReferenceList = { + "QoEReferenceList", + "QoEReferenceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QoEReferenceList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QoEReferenceList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoEReferenceList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoEReferenceList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoEReferenceList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoEReferenceList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QoEReferenceList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QoEReferenceList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QoEReferenceList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QoEReferenceList.h b/src/asn/ngap/ASN_NGAP_QoEReferenceList.h new file mode 100644 index 0000000..525ecac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoEReferenceList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QoEReferenceList_H_ +#define _ASN_NGAP_QoEReferenceList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QoEReference.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_QoEReferenceList */ +typedef struct ASN_NGAP_QoEReferenceList { + A_SEQUENCE_OF(ASN_NGAP_QoEReference_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QoEReferenceList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoEReferenceList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QoEReferenceList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QoEReferenceList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QoEReferenceList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QoEReferenceList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowList.c b/src/asn/ngap/ASN_NGAP_QoSFlowList.c new file mode 100644 index 0000000..4f6ce73 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QoSFlowList.h" + +static asn_per_constraints_t asn_PER_type_ASN_NGAP_QoSFlowList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QoSFlowList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QoSFlowList_specs_1 = { + sizeof(struct ASN_NGAP_QoSFlowList), + offsetof(struct ASN_NGAP_QoSFlowList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowList = { + "QoSFlowList", + "QoSFlowList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QoSFlowList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoSFlowList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoSFlowList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QoSFlowList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QoSFlowList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QoSFlowList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowList.h b/src/asn/ngap/ASN_NGAP_QoSFlowList.h new file mode 100644 index 0000000..9fb35db --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowList.h @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QoSFlowList_H_ +#define _ASN_NGAP_QoSFlowList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_QoSFlowList */ +typedef struct ASN_NGAP_QoSFlowList { + A_SEQUENCE_OF(ASN_NGAP_QosFlowIdentifier_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QoSFlowList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowList; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QoSFlowList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c new file mode 100644 index 0000000..dfccd9f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QoSFlowsUsageReport-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_rATType_constr_3 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_ASN_NGAP_rATType_value2enum_3[] = { + { 0, 2, "nr" }, + { 1, 5, "eutra" }, + { 2, 13, "nr-unlicensed" }, + { 3, 17, "e-utra-unlicensed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_rATType_enum2value_3[] = { + 3, /* e-utra-unlicensed(3) */ + 1, /* eutra(1) */ + 0, /* nr(0) */ + 2 /* nr-unlicensed(2) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_rATType_specs_3 = { + asn_MAP_ASN_NGAP_rATType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_rATType_enum2value_3, /* 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_ASN_NGAP_rATType_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_ASN_NGAP_rATType_3 = { + "rATType", + "rATType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_rATType_tags_3, + sizeof(asn_DEF_ASN_NGAP_rATType_tags_3) + /sizeof(asn_DEF_ASN_NGAP_rATType_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_rATType_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_rATType_tags_3) + /sizeof(asn_DEF_ASN_NGAP_rATType_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_rATType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_rATType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item, rATType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_rATType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rATType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item, qoSFlowsTimedReportList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_VolumeTimedReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoSFlowsTimedReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P285, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rATType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* qoSFlowsTimedReportList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_specs_1 = { + sizeof(struct ASN_NGAP_QoSFlowsUsageReport_Item), + offsetof(struct ASN_NGAP_QoSFlowsUsageReport_Item, _asn_ctx), + asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QoSFlowsUsageReport_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item = { + "QoSFlowsUsageReport-Item", + "QoSFlowsUsageReport-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h new file mode 100644 index 0000000..8f240c6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReport-Item.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QoSFlowsUsageReport_Item_H_ +#define _ASN_NGAP_QoSFlowsUsageReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include +#include "ASN_NGAP_VolumeTimedReportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_QoSFlowsUsageReport_Item__rATType { + ASN_NGAP_QoSFlowsUsageReport_Item__rATType_nr = 0, + ASN_NGAP_QoSFlowsUsageReport_Item__rATType_eutra = 1, + /* + * Enumeration is extensible + */ + ASN_NGAP_QoSFlowsUsageReport_Item__rATType_nr_unlicensed = 2, + ASN_NGAP_QoSFlowsUsageReport_Item__rATType_e_utra_unlicensed = 3 +} e_ASN_NGAP_QoSFlowsUsageReport_Item__rATType; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QoSFlowsUsageReport-Item */ +typedef struct ASN_NGAP_QoSFlowsUsageReport_Item { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + long rATType; + ASN_NGAP_VolumeTimedReportList_t qoSFlowsTimedReportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QoSFlowsUsageReport_Item_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_rATType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReport_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReport_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QoSFlowsUsageReport_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.c b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.c new file mode 100644 index 0000000..ff48723 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QoSFlowsUsageReportList.h" + +#include "ASN_NGAP_QoSFlowsUsageReport-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QoSFlowsUsageReportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QoSFlowsUsageReport_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReportList_specs_1 = { + sizeof(struct ASN_NGAP_QoSFlowsUsageReportList), + offsetof(struct ASN_NGAP_QoSFlowsUsageReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReportList = { + "QoSFlowsUsageReportList", + "QoSFlowsUsageReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QoSFlowsUsageReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QoSFlowsUsageReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QoSFlowsUsageReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QoSFlowsUsageReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.h b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.h new file mode 100644 index 0000000..913cae3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QoSFlowsUsageReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QoSFlowsUsageReportList_H_ +#define _ASN_NGAP_QoSFlowsUsageReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QoSFlowsUsageReport_Item; + +/* ASN_NGAP_QoSFlowsUsageReportList */ +typedef struct ASN_NGAP_QoSFlowsUsageReportList { + A_SEQUENCE_OF(struct ASN_NGAP_QoSFlowsUsageReport_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QoSFlowsUsageReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QoSFlowsUsageReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QoSFlowsUsageReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QoSFlowsUsageReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QoSFlowsUsageReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QoSFlowsUsageReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosCharacteristics.c b/src/asn/ngap/ASN_NGAP_QosCharacteristics.c new file mode 100644 index 0000000..dba798a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosCharacteristics.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosCharacteristics.h" + +#include "ASN_NGAP_NonDynamic5QIDescriptor.h" +#include "ASN_NGAP_Dynamic5QIDescriptor.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosCharacteristics_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosCharacteristics_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_QosCharacteristics, choice.nonDynamic5QI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NonDynamic5QIDescriptor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonDynamic5QI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_QosCharacteristics, choice.dynamic5QI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Dynamic5QIDescriptor, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamic5QI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_QosCharacteristics, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nonDynamic5QI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dynamic5QI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_QosCharacteristics_specs_1 = { + sizeof(struct ASN_NGAP_QosCharacteristics), + offsetof(struct ASN_NGAP_QosCharacteristics, _asn_ctx), + offsetof(struct ASN_NGAP_QosCharacteristics, present), + sizeof(((struct ASN_NGAP_QosCharacteristics *)0)->present), + asn_MAP_ASN_NGAP_QosCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosCharacteristics = { + "QosCharacteristics", + "QosCharacteristics", + &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_ASN_NGAP_QosCharacteristics_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_QosCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosCharacteristics.h b/src/asn/ngap/ASN_NGAP_QosCharacteristics.h new file mode 100644 index 0000000..8850b4d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosCharacteristics.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosCharacteristics_H_ +#define _ASN_NGAP_QosCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_QosCharacteristics_PR { + ASN_NGAP_QosCharacteristics_PR_NOTHING, /* No components present */ + ASN_NGAP_QosCharacteristics_PR_nonDynamic5QI, + ASN_NGAP_QosCharacteristics_PR_dynamic5QI, + ASN_NGAP_QosCharacteristics_PR_choice_Extensions +} ASN_NGAP_QosCharacteristics_PR; + +/* Forward declarations */ +struct ASN_NGAP_NonDynamic5QIDescriptor; +struct ASN_NGAP_Dynamic5QIDescriptor; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_QosCharacteristics */ +typedef struct ASN_NGAP_QosCharacteristics { + ASN_NGAP_QosCharacteristics_PR present; + union ASN_NGAP_QosCharacteristics_u { + struct ASN_NGAP_NonDynamic5QIDescriptor *nonDynamic5QI; + struct ASN_NGAP_Dynamic5QIDescriptor *dynamic5QI; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosCharacteristics; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_QosCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosCharacteristics_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosCharacteristics_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosCharacteristics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.c b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.c new file mode 100644 index 0000000..35f09c0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAcceptedItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAcceptedItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowAcceptedItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P270, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowAcceptedItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAcceptedItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAcceptedItem), + offsetof(struct ASN_NGAP_QosFlowAcceptedItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAcceptedItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowAcceptedItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem = { + "QosFlowAcceptedItem", + "QosFlowAcceptedItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAcceptedItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAcceptedItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.h b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.h new file mode 100644 index 0000000..51cf692 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAcceptedItem_H_ +#define _ASN_NGAP_QosFlowAcceptedItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowAcceptedItem */ +typedef struct ASN_NGAP_QosFlowAcceptedItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAcceptedItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAcceptedItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.c b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.c new file mode 100644 index 0000000..bacd2dd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAcceptedList.h" + +#include "ASN_NGAP_QosFlowAcceptedItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAcceptedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAcceptedItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAcceptedList), + offsetof(struct ASN_NGAP_QosFlowAcceptedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedList = { + "QosFlowAcceptedList", + "QosFlowAcceptedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAcceptedList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowAcceptedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowAcceptedList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowAcceptedList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.h b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.h new file mode 100644 index 0000000..2a40d18 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAcceptedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAcceptedList_H_ +#define _ASN_NGAP_QosFlowAcceptedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowAcceptedItem; + +/* ASN_NGAP_QosFlowAcceptedList */ +typedef struct ASN_NGAP_QosFlowAcceptedList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAcceptedItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAcceptedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAcceptedList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAcceptedList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAcceptedList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAcceptedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAcceptedList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.c b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.c new file mode 100644 index 0000000..fa8adb7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAddOrModifyRequestItem.h" + +#include "ASN_NGAP_QosFlowLevelQosParameters.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem, qosFlowLevelQosParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowLevelQosParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowLevelQosParameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem, e_RAB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_E_RAB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P271, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowLevelQosParameters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RAB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowAddOrModifyRequestItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem = { + "QosFlowAddOrModifyRequestItem", + "QosFlowAddOrModifyRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.h b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.h new file mode 100644 index 0000000..d788ed1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAddOrModifyRequestItem_H_ +#define _ASN_NGAP_QosFlowAddOrModifyRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_E-RAB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowLevelQosParameters; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowAddOrModifyRequestItem */ +typedef struct ASN_NGAP_QosFlowAddOrModifyRequestItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_QosFlowLevelQosParameters *qosFlowLevelQosParameters; /* OPTIONAL */ + ASN_NGAP_E_RAB_ID_t *e_RAB_ID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAddOrModifyRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.c b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.c new file mode 100644 index 0000000..cb8ec23 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAddOrModifyRequestList.h" + +#include "ASN_NGAP_QosFlowAddOrModifyRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAddOrModifyRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyRequestList), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList = { + "QosFlowAddOrModifyRequestList", + "QosFlowAddOrModifyRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowAddOrModifyRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.h b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.h new file mode 100644 index 0000000..27b8dd4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAddOrModifyRequestList_H_ +#define _ASN_NGAP_QosFlowAddOrModifyRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowAddOrModifyRequestItem; + +/* ASN_NGAP_QosFlowAddOrModifyRequestList */ +typedef struct ASN_NGAP_QosFlowAddOrModifyRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAddOrModifyRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAddOrModifyRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAddOrModifyRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.c b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.c new file mode 100644 index 0000000..c715f26 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAddOrModifyResponseItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P272, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowAddOrModifyResponseItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem = { + "QosFlowAddOrModifyResponseItem", + "QosFlowAddOrModifyResponseItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.h b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.h new file mode 100644 index 0000000..acc120b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAddOrModifyResponseItem_H_ +#define _ASN_NGAP_QosFlowAddOrModifyResponseItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowAddOrModifyResponseItem */ +typedef struct ASN_NGAP_QosFlowAddOrModifyResponseItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyResponseItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAddOrModifyResponseItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.c b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.c new file mode 100644 index 0000000..fca49c2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowAddOrModifyResponseList.h" + +#include "ASN_NGAP_QosFlowAddOrModifyResponseItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAddOrModifyResponseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowAddOrModifyResponseList), + offsetof(struct ASN_NGAP_QosFlowAddOrModifyResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList = { + "QosFlowAddOrModifyResponseList", + "QosFlowAddOrModifyResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowAddOrModifyResponseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.h b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.h new file mode 100644 index 0000000..78dc075 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowAddOrModifyResponseList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowAddOrModifyResponseList_H_ +#define _ASN_NGAP_QosFlowAddOrModifyResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowAddOrModifyResponseItem; + +/* ASN_NGAP_QosFlowAddOrModifyResponseList */ +typedef struct ASN_NGAP_QosFlowAddOrModifyResponseList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowAddOrModifyResponseItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowAddOrModifyResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowAddOrModifyResponseList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowAddOrModifyResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowAddOrModifyResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowAddOrModifyResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowAddOrModifyResponseList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.c b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.c new file mode 100644 index 0000000..aec0ead --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowFeedbackItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowFeedbackItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_QosFlowFeedbackItem, updateFeedback), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UpdateFeedback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "updateFeedback" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_QosFlowFeedbackItem, cNpacketDelayBudgetDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cNpacketDelayBudgetDL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowFeedbackItem, cNpacketDelayBudgetUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExtendedPacketDelayBudget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cNpacketDelayBudgetUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowFeedbackItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P273, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowFeedbackItem_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowFeedbackItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* updateFeedback */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cNpacketDelayBudgetDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cNpacketDelayBudgetUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowFeedbackItem), + offsetof(struct ASN_NGAP_QosFlowFeedbackItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowFeedbackItem_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowFeedbackItem_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem = { + "QosFlowFeedbackItem", + "QosFlowFeedbackItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowFeedbackItem_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowFeedbackItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.h b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.h new file mode 100644 index 0000000..9056123 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackItem.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowFeedbackItem_H_ +#define _ASN_NGAP_QosFlowFeedbackItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_UpdateFeedback.h" +#include "ASN_NGAP_ExtendedPacketDelayBudget.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowFeedbackItem */ +typedef struct ASN_NGAP_QosFlowFeedbackItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_UpdateFeedback_t *updateFeedback; /* OPTIONAL */ + ASN_NGAP_ExtendedPacketDelayBudget_t *cNpacketDelayBudgetDL; /* OPTIONAL */ + ASN_NGAP_ExtendedPacketDelayBudget_t *cNpacketDelayBudgetUL; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowFeedbackItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackItem_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowFeedbackItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.c b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.c new file mode 100644 index 0000000..0ca9c39 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowFeedbackList.h" + +#include "ASN_NGAP_QosFlowFeedbackItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowFeedbackList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowFeedbackItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowFeedbackList), + offsetof(struct ASN_NGAP_QosFlowFeedbackList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackList = { + "QosFlowFeedbackList", + "QosFlowFeedbackList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowFeedbackList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowFeedbackList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowFeedbackList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowFeedbackList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.h b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.h new file mode 100644 index 0000000..3505cf6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowFeedbackList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowFeedbackList_H_ +#define _ASN_NGAP_QosFlowFeedbackList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowFeedbackItem; + +/* ASN_NGAP_QosFlowFeedbackList */ +typedef struct ASN_NGAP_QosFlowFeedbackList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowFeedbackItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowFeedbackList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowFeedbackList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowFeedbackList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowFeedbackList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowFeedbackList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowFeedbackList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.c b/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.c new file mode 100644 index 0000000..b074fe6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowIdentifier.h" + +int +ASN_NGAP_QosFlowIdentifier_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_QosFlowIdentifier_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 6, 6, 0, 63 } /* (0..63,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowIdentifier = { + "QosFlowIdentifier", + "QosFlowIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowIdentifier_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowIdentifier_constr_1, ASN_NGAP_QosFlowIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.h b/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.h new file mode 100644 index 0000000..fbbb213 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowIdentifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowIdentifier_H_ +#define _ASN_NGAP_QosFlowIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_QosFlowIdentifier */ +typedef long ASN_NGAP_QosFlowIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowIdentifier; +asn_struct_free_f ASN_NGAP_QosFlowIdentifier_free; +asn_struct_print_f ASN_NGAP_QosFlowIdentifier_print; +asn_constr_check_f ASN_NGAP_QosFlowIdentifier_constraint; +ber_type_decoder_f ASN_NGAP_QosFlowIdentifier_decode_ber; +der_type_encoder_f ASN_NGAP_QosFlowIdentifier_encode_der; +xer_type_decoder_f ASN_NGAP_QosFlowIdentifier_decode_xer; +xer_type_encoder_f ASN_NGAP_QosFlowIdentifier_encode_xer; +per_type_decoder_f ASN_NGAP_QosFlowIdentifier_decode_uper; +per_type_encoder_f ASN_NGAP_QosFlowIdentifier_encode_uper; +per_type_decoder_f ASN_NGAP_QosFlowIdentifier_decode_aper; +per_type_encoder_f ASN_NGAP_QosFlowIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowIdentifier_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.c b/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.c new file mode 100644 index 0000000..7a5a243 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowInformationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowInformationItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowInformationItem, dLForwarding), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DLForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dLForwarding" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P274, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowInformationItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dLForwarding */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowInformationItem), + offsetof(struct ASN_NGAP_QosFlowInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowInformationItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowInformationItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationItem = { + "QosFlowInformationItem", + "QosFlowInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowInformationItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.h b/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.h new file mode 100644 index 0000000..414e120 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowInformationItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowInformationItem_H_ +#define _ASN_NGAP_QosFlowInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_DLForwarding.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowInformationItem */ +typedef struct ASN_NGAP_QosFlowInformationItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_DLForwarding_t *dLForwarding; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowInformationList.c b/src/asn/ngap/ASN_NGAP_QosFlowInformationList.c new file mode 100644 index 0000000..8e6b324 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowInformationList.h" + +#include "ASN_NGAP_QosFlowInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowInformationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowInformationList), + offsetof(struct ASN_NGAP_QosFlowInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationList = { + "QosFlowInformationList", + "QosFlowInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowInformationList.h b/src/asn/ngap/ASN_NGAP_QosFlowInformationList.h new file mode 100644 index 0000000..d5e3f35 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowInformationList_H_ +#define _ASN_NGAP_QosFlowInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowInformationItem; + +/* ASN_NGAP_QosFlowInformationList */ +typedef struct ASN_NGAP_QosFlowInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.c b/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.c new file mode 100644 index 0000000..5ddbb9f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowItemWithDataForwarding.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding, dataForwardingAccepted), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DataForwardingAccepted, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataForwardingAccepted" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P283, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dataForwardingAccepted */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowItemWithDataForwarding), + offsetof(struct ASN_NGAP_QosFlowItemWithDataForwarding, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowItemWithDataForwarding_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding = { + "QosFlowItemWithDataForwarding", + "QosFlowItemWithDataForwarding", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.h b/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.h new file mode 100644 index 0000000..30dd20d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowItemWithDataForwarding.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowItemWithDataForwarding_H_ +#define _ASN_NGAP_QosFlowItemWithDataForwarding_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_DataForwardingAccepted.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowItemWithDataForwarding */ +typedef struct ASN_NGAP_QosFlowItemWithDataForwarding { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_DataForwardingAccepted_t *dataForwardingAccepted; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowItemWithDataForwarding_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowItemWithDataForwarding_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowItemWithDataForwarding_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowItemWithDataForwarding_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.c b/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.c new file mode 100644 index 0000000..c3a90f6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.c @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowLevelQosParameters.h" + +#include "ASN_NGAP_GBR-QosInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, qosCharacteristics), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosCharacteristics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosCharacteristics" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, allocationAndRetentionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AllocationAndRetentionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allocationAndRetentionPriority" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, gBR_QosInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GBR_QosInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gBR-QosInformation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, reflectiveQosAttribute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ReflectiveQosAttribute, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reflectiveQosAttribute" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, additionalQosFlowInformation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AdditionalQosFlowInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalQosFlowInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P275, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosCharacteristics */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allocationAndRetentionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gBR-QosInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reflectiveQosAttribute */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* additionalQosFlowInformation */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowLevelQosParameters), + offsetof(struct ASN_NGAP_QosFlowLevelQosParameters, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowLevelQosParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters = { + "QosFlowLevelQosParameters", + "QosFlowLevelQosParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowLevelQosParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_1, + 6, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.h b/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.h new file mode 100644 index 0000000..7044f65 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowLevelQosParameters.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowLevelQosParameters_H_ +#define _ASN_NGAP_QosFlowLevelQosParameters_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosCharacteristics.h" +#include "ASN_NGAP_AllocationAndRetentionPriority.h" +#include "ASN_NGAP_ReflectiveQosAttribute.h" +#include "ASN_NGAP_AdditionalQosFlowInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_GBR_QosInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowLevelQosParameters */ +typedef struct ASN_NGAP_QosFlowLevelQosParameters { + ASN_NGAP_QosCharacteristics_t qosCharacteristics; + ASN_NGAP_AllocationAndRetentionPriority_t allocationAndRetentionPriority; + struct ASN_NGAP_GBR_QosInformation *gBR_QosInformation; /* OPTIONAL */ + ASN_NGAP_ReflectiveQosAttribute_t *reflectiveQosAttribute; /* OPTIONAL */ + ASN_NGAP_AdditionalQosFlowInformation_t *additionalQosFlowInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowLevelQosParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowLevelQosParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowLevelQosParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowLevelQosParameters_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowLevelQosParameters_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.c b/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.c new file mode 100644 index 0000000..0023f4e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowListWithCause.h" + +#include "ASN_NGAP_QosFlowWithCauseItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowListWithCause_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowListWithCause_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowWithCauseItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowListWithCause_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowListWithCause), + offsetof(struct ASN_NGAP_QosFlowListWithCause, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowListWithCause = { + "QosFlowListWithCause", + "QosFlowListWithCause", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowListWithCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowListWithCause_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowListWithCause_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowListWithCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.h b/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.h new file mode 100644 index 0000000..8645f88 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowListWithCause.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowListWithCause_H_ +#define _ASN_NGAP_QosFlowListWithCause_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowWithCauseItem; + +/* ASN_NGAP_QosFlowListWithCause */ +typedef struct ASN_NGAP_QosFlowListWithCause { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowWithCauseItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowListWithCause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowListWithCause; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowListWithCause_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowListWithCause_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowListWithCause_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowListWithCause_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.c b/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.c new file mode 100644 index 0000000..429b256 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowListWithDataForwarding.h" + +#include "ASN_NGAP_QosFlowItemWithDataForwarding.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowListWithDataForwarding_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowListWithDataForwarding_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowItemWithDataForwarding, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowListWithDataForwarding_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowListWithDataForwarding), + offsetof(struct ASN_NGAP_QosFlowListWithDataForwarding, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding = { + "QosFlowListWithDataForwarding", + "QosFlowListWithDataForwarding", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowListWithDataForwarding_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowListWithDataForwarding_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowListWithDataForwarding_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.h b/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.h new file mode 100644 index 0000000..1761baa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowListWithDataForwarding.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowListWithDataForwarding_H_ +#define _ASN_NGAP_QosFlowListWithDataForwarding_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowItemWithDataForwarding; + +/* ASN_NGAP_QosFlowListWithDataForwarding */ +typedef struct ASN_NGAP_QosFlowListWithDataForwarding { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowItemWithDataForwarding) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowListWithDataForwarding_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowListWithDataForwarding; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowListWithDataForwarding_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowListWithDataForwarding_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowListWithDataForwarding_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowListWithDataForwarding_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.c b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.c new file mode 100644 index 0000000..bf05aaf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowModifyConfirmItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P277, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowModifyConfirmItem), + offsetof(struct ASN_NGAP_QosFlowModifyConfirmItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowModifyConfirmItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem = { + "QosFlowModifyConfirmItem", + "QosFlowModifyConfirmItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.h b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.h new file mode 100644 index 0000000..b5cfb6e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowModifyConfirmItem_H_ +#define _ASN_NGAP_QosFlowModifyConfirmItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowModifyConfirmItem */ +typedef struct ASN_NGAP_QosFlowModifyConfirmItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowModifyConfirmItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowModifyConfirmItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.c b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.c new file mode 100644 index 0000000..f1593ad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowModifyConfirmList.h" + +#include "ASN_NGAP_QosFlowModifyConfirmItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowModifyConfirmList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowModifyConfirmItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowModifyConfirmList), + offsetof(struct ASN_NGAP_QosFlowModifyConfirmList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmList = { + "QosFlowModifyConfirmList", + "QosFlowModifyConfirmList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowModifyConfirmList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowModifyConfirmList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowModifyConfirmList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowModifyConfirmList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.h b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.h new file mode 100644 index 0000000..6572c9d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowModifyConfirmList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowModifyConfirmList_H_ +#define _ASN_NGAP_QosFlowModifyConfirmList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowModifyConfirmItem; + +/* ASN_NGAP_QosFlowModifyConfirmList */ +typedef struct ASN_NGAP_QosFlowModifyConfirmList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowModifyConfirmItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowModifyConfirmList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowModifyConfirmList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowModifyConfirmList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowModifyConfirmList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowModifyConfirmList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowModifyConfirmList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.c b/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.c new file mode 100644 index 0000000..2ebfc8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowNotifyItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowNotifyItem, notificationCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NotificationCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notificationCause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowNotifyItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P278, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowNotifyItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowNotifyItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notificationCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowNotifyItem), + offsetof(struct ASN_NGAP_QosFlowNotifyItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowNotifyItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowNotifyItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyItem = { + "QosFlowNotifyItem", + "QosFlowNotifyItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowNotifyItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowNotifyItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.h b/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.h new file mode 100644 index 0000000..866508b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowNotifyItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowNotifyItem_H_ +#define _ASN_NGAP_QosFlowNotifyItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_NotificationCause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowNotifyItem */ +typedef struct ASN_NGAP_QosFlowNotifyItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_NotificationCause_t notificationCause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowNotifyItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowNotifyItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.c b/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.c new file mode 100644 index 0000000..f81663b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowNotifyList.h" + +#include "ASN_NGAP_QosFlowNotifyItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowNotifyList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowNotifyItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowNotifyList), + offsetof(struct ASN_NGAP_QosFlowNotifyList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyList = { + "QosFlowNotifyList", + "QosFlowNotifyList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowNotifyList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowNotifyList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowNotifyList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowNotifyList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.h b/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.h new file mode 100644 index 0000000..86b8024 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowNotifyList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowNotifyList_H_ +#define _ASN_NGAP_QosFlowNotifyList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowNotifyItem; + +/* ASN_NGAP_QosFlowNotifyList */ +typedef struct ASN_NGAP_QosFlowNotifyList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowNotifyItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowNotifyList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowNotifyList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowNotifyList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowNotifyList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowNotifyList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowNotifyList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.c b/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.c new file mode 100644 index 0000000..102e36d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowParametersItem.h" + +#include "ASN_NGAP_AlternativeQoSParaSetList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowParametersItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowParametersItem, alternativeQoSParaSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AlternativeQoSParaSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alternativeQoSParaSetList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowParametersItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P279, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowParametersItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowParametersItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* alternativeQoSParaSetList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowParametersItem), + offsetof(struct ASN_NGAP_QosFlowParametersItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowParametersItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowParametersItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersItem = { + "QosFlowParametersItem", + "QosFlowParametersItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowParametersItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowParametersItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.h b/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.h new file mode 100644 index 0000000..ca8a361 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowParametersItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowParametersItem_H_ +#define _ASN_NGAP_QosFlowParametersItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AlternativeQoSParaSetList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowParametersItem */ +typedef struct ASN_NGAP_QosFlowParametersItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_AlternativeQoSParaSetList *alternativeQoSParaSetList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowParametersItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowParametersItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowParametersList.c b/src/asn/ngap/ASN_NGAP_QosFlowParametersList.c new file mode 100644 index 0000000..4f10210 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowParametersList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowParametersList.h" + +#include "ASN_NGAP_QosFlowParametersItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowParametersList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowParametersItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowParametersList), + offsetof(struct ASN_NGAP_QosFlowParametersList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersList = { + "QosFlowParametersList", + "QosFlowParametersList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowParametersList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowParametersList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowParametersList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowParametersList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowParametersList.h b/src/asn/ngap/ASN_NGAP_QosFlowParametersList.h new file mode 100644 index 0000000..c49a634 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowParametersList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowParametersList_H_ +#define _ASN_NGAP_QosFlowParametersList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowParametersItem; + +/* ASN_NGAP_QosFlowParametersList */ +typedef struct ASN_NGAP_QosFlowParametersList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowParametersItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowParametersList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowParametersList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowParametersList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowParametersList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowParametersList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowParametersList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.c b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.c new file mode 100644 index 0000000..e347571 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowPerTNLInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation, uPTransportLayerInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uPTransportLayerInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation, associatedQosFlowList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AssociatedQosFlowList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedQosFlowList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowPerTNLInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P280, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uPTransportLayerInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* associatedQosFlowList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformation), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformation, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowPerTNLInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation = { + "QosFlowPerTNLInformation", + "QosFlowPerTNLInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.h b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.h new file mode 100644 index 0000000..96212a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowPerTNLInformation_H_ +#define _ASN_NGAP_QosFlowPerTNLInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include "ASN_NGAP_AssociatedQosFlowList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowPerTNLInformation */ +typedef struct ASN_NGAP_QosFlowPerTNLInformation { + ASN_NGAP_UPTransportLayerInformation_t uPTransportLayerInformation; + ASN_NGAP_AssociatedQosFlowList_t associatedQosFlowList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowPerTNLInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowPerTNLInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.c b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.c new file mode 100644 index 0000000..3923cfa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowPerTNLInformationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem, qosFlowPerTNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowPerTNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P281, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowPerTNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformationItem), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowPerTNLInformationItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem = { + "QosFlowPerTNLInformationItem", + "QosFlowPerTNLInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.h b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.h new file mode 100644 index 0000000..cfac1fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowPerTNLInformationItem_H_ +#define _ASN_NGAP_QosFlowPerTNLInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowPerTNLInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowPerTNLInformationItem */ +typedef struct ASN_NGAP_QosFlowPerTNLInformationItem { + ASN_NGAP_QosFlowPerTNLInformation_t qosFlowPerTNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowPerTNLInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowPerTNLInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.c b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.c new file mode 100644 index 0000000..5c8ea82 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowPerTNLInformationList.h" + +#include "ASN_NGAP_QosFlowPerTNLInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowPerTNLInformationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowPerTNLInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowPerTNLInformationList), + offsetof(struct ASN_NGAP_QosFlowPerTNLInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList = { + "QosFlowPerTNLInformationList", + "QosFlowPerTNLInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowPerTNLInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowPerTNLInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowPerTNLInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.h b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.h new file mode 100644 index 0000000..8c5da47 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowPerTNLInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowPerTNLInformationList_H_ +#define _ASN_NGAP_QosFlowPerTNLInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowPerTNLInformationItem; + +/* ASN_NGAP_QosFlowPerTNLInformationList */ +typedef struct ASN_NGAP_QosFlowPerTNLInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowPerTNLInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowPerTNLInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowPerTNLInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowPerTNLInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowPerTNLInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowPerTNLInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowPerTNLInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.c b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.c new file mode 100644 index 0000000..a4fe25a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowSetupRequestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem, qosFlowLevelQosParameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowLevelQosParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowLevelQosParameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem, e_RAB_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_E_RAB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RAB-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowSetupRequestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P282, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowLevelQosParameters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RAB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowSetupRequestItem), + offsetof(struct ASN_NGAP_QosFlowSetupRequestItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowSetupRequestItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem = { + "QosFlowSetupRequestItem", + "QosFlowSetupRequestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.h b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.h new file mode 100644 index 0000000..9beb603 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowSetupRequestItem_H_ +#define _ASN_NGAP_QosFlowSetupRequestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_QosFlowLevelQosParameters.h" +#include "ASN_NGAP_E-RAB-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowSetupRequestItem */ +typedef struct ASN_NGAP_QosFlowSetupRequestItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_QosFlowLevelQosParameters_t qosFlowLevelQosParameters; + ASN_NGAP_E_RAB_ID_t *e_RAB_ID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowSetupRequestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowSetupRequestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.c b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.c new file mode 100644 index 0000000..f3fe44e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowSetupRequestList.h" + +#include "ASN_NGAP_QosFlowSetupRequestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowSetupRequestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowSetupRequestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowSetupRequestList), + offsetof(struct ASN_NGAP_QosFlowSetupRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestList = { + "QosFlowSetupRequestList", + "QosFlowSetupRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowSetupRequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowSetupRequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowSetupRequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowSetupRequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.h b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.h new file mode 100644 index 0000000..9f29e15 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowSetupRequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowSetupRequestList_H_ +#define _ASN_NGAP_QosFlowSetupRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowSetupRequestItem; + +/* ASN_NGAP_QosFlowSetupRequestList */ +typedef struct ASN_NGAP_QosFlowSetupRequestList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowSetupRequestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowSetupRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowSetupRequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowSetupRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowSetupRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowSetupRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowSetupRequestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.c b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.c new file mode 100644 index 0000000..ad0e7b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowToBeForwardedItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P284, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowToBeForwardedItem), + offsetof(struct ASN_NGAP_QosFlowToBeForwardedItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowToBeForwardedItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem = { + "QosFlowToBeForwardedItem", + "QosFlowToBeForwardedItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.h b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.h new file mode 100644 index 0000000..a24bd57 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowToBeForwardedItem_H_ +#define _ASN_NGAP_QosFlowToBeForwardedItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowToBeForwardedItem */ +typedef struct ASN_NGAP_QosFlowToBeForwardedItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowToBeForwardedItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowToBeForwardedItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.c b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.c new file mode 100644 index 0000000..a713384 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowToBeForwardedList.h" + +#include "ASN_NGAP_QosFlowToBeForwardedItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowToBeForwardedList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_QosFlowToBeForwardedItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedList_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowToBeForwardedList), + offsetof(struct ASN_NGAP_QosFlowToBeForwardedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedList = { + "QosFlowToBeForwardedList", + "QosFlowToBeForwardedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowToBeForwardedList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosFlowToBeForwardedList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_QosFlowToBeForwardedList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_QosFlowToBeForwardedList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.h b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.h new file mode 100644 index 0000000..8ee731f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowToBeForwardedList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowToBeForwardedList_H_ +#define _ASN_NGAP_QosFlowToBeForwardedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowToBeForwardedItem; + +/* ASN_NGAP_QosFlowToBeForwardedList */ +typedef struct ASN_NGAP_QosFlowToBeForwardedList { + A_SEQUENCE_OF(struct ASN_NGAP_QosFlowToBeForwardedItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowToBeForwardedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowToBeForwardedList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_QosFlowToBeForwardedList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowToBeForwardedList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosFlowToBeForwardedList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowToBeForwardedList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.c b/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.c new file mode 100644 index 0000000..c1995c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosFlowWithCauseItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowWithCauseItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowWithCauseItem, qosFlowIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_QosFlowWithCauseItem, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_QosFlowWithCauseItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P276, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_QosFlowWithCauseItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_QosFlowWithCauseItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowWithCauseItem_specs_1 = { + sizeof(struct ASN_NGAP_QosFlowWithCauseItem), + offsetof(struct ASN_NGAP_QosFlowWithCauseItem, _asn_ctx), + asn_MAP_ASN_NGAP_QosFlowWithCauseItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_QosFlowWithCauseItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem = { + "QosFlowWithCauseItem", + "QosFlowWithCauseItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosFlowWithCauseItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_QosFlowWithCauseItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_QosFlowWithCauseItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.h b/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.h new file mode 100644 index 0000000..1761c56 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosFlowWithCauseItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosFlowWithCauseItem_H_ +#define _ASN_NGAP_QosFlowWithCauseItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QosFlowIdentifier.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_QosFlowWithCauseItem */ +typedef struct ASN_NGAP_QosFlowWithCauseItem { + ASN_NGAP_QosFlowIdentifier_t qosFlowIdentifier; + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_QosFlowWithCauseItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosFlowWithCauseItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_QosFlowWithCauseItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_QosFlowWithCauseItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosFlowWithCauseItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.c b/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.c new file mode 100644 index 0000000..79856c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosMonitoringReportingFrequency.h" + +int +ASN_NGAP_QosMonitoringReportingFrequency_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 <= 1800)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_QosMonitoringReportingFrequency_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 11, 11, 1, 1800 } /* (1..1800,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency = { + "QosMonitoringReportingFrequency", + "QosMonitoringReportingFrequency", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosMonitoringReportingFrequency_constr_1, ASN_NGAP_QosMonitoringReportingFrequency_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.h b/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.h new file mode 100644 index 0000000..a6a07bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosMonitoringReportingFrequency.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosMonitoringReportingFrequency_H_ +#define _ASN_NGAP_QosMonitoringReportingFrequency_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_QosMonitoringReportingFrequency */ +typedef long ASN_NGAP_QosMonitoringReportingFrequency_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosMonitoringReportingFrequency_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosMonitoringReportingFrequency; +asn_struct_free_f ASN_NGAP_QosMonitoringReportingFrequency_free; +asn_struct_print_f ASN_NGAP_QosMonitoringReportingFrequency_print; +asn_constr_check_f ASN_NGAP_QosMonitoringReportingFrequency_constraint; +ber_type_decoder_f ASN_NGAP_QosMonitoringReportingFrequency_decode_ber; +der_type_encoder_f ASN_NGAP_QosMonitoringReportingFrequency_encode_der; +xer_type_decoder_f ASN_NGAP_QosMonitoringReportingFrequency_decode_xer; +xer_type_encoder_f ASN_NGAP_QosMonitoringReportingFrequency_encode_xer; +per_type_decoder_f ASN_NGAP_QosMonitoringReportingFrequency_decode_uper; +per_type_encoder_f ASN_NGAP_QosMonitoringReportingFrequency_encode_uper; +per_type_decoder_f ASN_NGAP_QosMonitoringReportingFrequency_decode_aper; +per_type_encoder_f ASN_NGAP_QosMonitoringReportingFrequency_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosMonitoringReportingFrequency_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.c b/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.c new file mode 100644 index 0000000..350ae65 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_QosMonitoringRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_QosMonitoringRequest_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_ASN_NGAP_QosMonitoringRequest_value2enum_1[] = { + { 0, 2, "ul" }, + { 1, 2, "dl" }, + { 2, 4, "both" }, + { 3, 4, "stop" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_QosMonitoringRequest_enum2value_1[] = { + 2, /* both(2) */ + 1, /* dl(1) */ + 3, /* stop(3) */ + 0 /* ul(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_QosMonitoringRequest_specs_1 = { + asn_MAP_ASN_NGAP_QosMonitoringRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_QosMonitoringRequest_enum2value_1, /* N => "tag"; sorted by N */ + 4, /* 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_ASN_NGAP_QosMonitoringRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosMonitoringRequest = { + "QosMonitoringRequest", + "QosMonitoringRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_QosMonitoringRequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_QosMonitoringRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_QosMonitoringRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.h b/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.h new file mode 100644 index 0000000..0f462d9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_QosMonitoringRequest.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_QosMonitoringRequest_H_ +#define _ASN_NGAP_QosMonitoringRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_QosMonitoringRequest { + ASN_NGAP_QosMonitoringRequest_ul = 0, + ASN_NGAP_QosMonitoringRequest_dl = 1, + ASN_NGAP_QosMonitoringRequest_both = 2, + /* + * Enumeration is extensible + */ + ASN_NGAP_QosMonitoringRequest_stop = 3 +} e_ASN_NGAP_QosMonitoringRequest; + +/* ASN_NGAP_QosMonitoringRequest */ +typedef long ASN_NGAP_QosMonitoringRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_QosMonitoringRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_QosMonitoringRequest; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_QosMonitoringRequest_specs_1; +asn_struct_free_f ASN_NGAP_QosMonitoringRequest_free; +asn_struct_print_f ASN_NGAP_QosMonitoringRequest_print; +asn_constr_check_f ASN_NGAP_QosMonitoringRequest_constraint; +ber_type_decoder_f ASN_NGAP_QosMonitoringRequest_decode_ber; +der_type_encoder_f ASN_NGAP_QosMonitoringRequest_encode_der; +xer_type_decoder_f ASN_NGAP_QosMonitoringRequest_decode_xer; +xer_type_encoder_f ASN_NGAP_QosMonitoringRequest_encode_xer; +per_type_decoder_f ASN_NGAP_QosMonitoringRequest_decode_uper; +per_type_encoder_f ASN_NGAP_QosMonitoringRequest_encode_uper; +per_type_decoder_f ASN_NGAP_QosMonitoringRequest_decode_aper; +per_type_encoder_f ASN_NGAP_QosMonitoringRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_QosMonitoringRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.c b/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.c new file mode 100644 index 0000000..8032bde --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RAN-UE-NGAP-ID.h" + +int +ASN_NGAP_RAN_UE_NGAP_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_ASN_NGAP_RAN_UE_NGAP_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_ASN_NGAP_RAN_UE_NGAP_ID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID = { + "RAN-UE-NGAP-ID", + "RAN-UE-NGAP-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RAN_UE_NGAP_ID_constr_1, ASN_NGAP_RAN_UE_NGAP_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_RAN_UE_NGAP_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.h b/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.h new file mode 100644 index 0000000..27f9529 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RAN-UE-NGAP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RAN_UE_NGAP_ID_H_ +#define _ASN_NGAP_RAN_UE_NGAP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RAN-UE-NGAP-ID */ +typedef unsigned long ASN_NGAP_RAN_UE_NGAP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RAN_UE_NGAP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RAN_UE_NGAP_ID_specs_1; +asn_struct_free_f ASN_NGAP_RAN_UE_NGAP_ID_free; +asn_struct_print_f ASN_NGAP_RAN_UE_NGAP_ID_print; +asn_constr_check_f ASN_NGAP_RAN_UE_NGAP_ID_constraint; +ber_type_decoder_f ASN_NGAP_RAN_UE_NGAP_ID_decode_ber; +der_type_encoder_f ASN_NGAP_RAN_UE_NGAP_ID_encode_der; +xer_type_decoder_f ASN_NGAP_RAN_UE_NGAP_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_RAN_UE_NGAP_ID_encode_xer; +per_type_decoder_f ASN_NGAP_RAN_UE_NGAP_ID_decode_uper; +per_type_encoder_f ASN_NGAP_RAN_UE_NGAP_ID_encode_uper; +per_type_decoder_f ASN_NGAP_RAN_UE_NGAP_ID_decode_aper; +per_type_encoder_f ASN_NGAP_RAN_UE_NGAP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RAN_UE_NGAP_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.c b/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.c new file mode 100644 index 0000000..4db3c28 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANCPRelocationIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANCPRelocationIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANCPRelocationIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANCPRelocationIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANCPRelocationIndication_specs_1 = { + sizeof(struct ASN_NGAP_RANCPRelocationIndication), + offsetof(struct ASN_NGAP_RANCPRelocationIndication, _asn_ctx), + asn_MAP_ASN_NGAP_RANCPRelocationIndication_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_ASN_NGAP_RANCPRelocationIndication = { + "RANCPRelocationIndication", + "RANCPRelocationIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANCPRelocationIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANCPRelocationIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RANCPRelocationIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.h b/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.h new file mode 100644 index 0000000..92508e5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANCPRelocationIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANCPRelocationIndication_H_ +#define _ASN_NGAP_RANCPRelocationIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANCPRelocationIndication */ +typedef struct ASN_NGAP_RANCPRelocationIndication { + ASN_NGAP_ProtocolIE_Container_123P31_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANCPRelocationIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANCPRelocationIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANCPRelocationIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANCPRelocationIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANCPRelocationIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.c b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.c new file mode 100644 index 0000000..2d4ee1f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANConfigurationUpdate.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdate_specs_1 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdate), + offsetof(struct ASN_NGAP_RANConfigurationUpdate, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdate_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_ASN_NGAP_RANConfigurationUpdate = { + "RANConfigurationUpdate", + "RANConfigurationUpdate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.h b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.h new file mode 100644 index 0000000..4b6fafb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANConfigurationUpdate_H_ +#define _ASN_NGAP_RANConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANConfigurationUpdate */ +typedef struct ASN_NGAP_RANConfigurationUpdate { + ASN_NGAP_ProtocolIE_Container_123P58_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANConfigurationUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANConfigurationUpdate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.c b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.c new file mode 100644 index 0000000..ae72c52 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANConfigurationUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledge_specs_1 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateAcknowledge), + offsetof(struct ASN_NGAP_RANConfigurationUpdateAcknowledge, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdateAcknowledge_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_ASN_NGAP_RANConfigurationUpdateAcknowledge = { + "RANConfigurationUpdateAcknowledge", + "RANConfigurationUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.h b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.h new file mode 100644 index 0000000..3ac80cc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANConfigurationUpdateAcknowledge_H_ +#define _ASN_NGAP_RANConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANConfigurationUpdateAcknowledge */ +typedef struct ASN_NGAP_RANConfigurationUpdateAcknowledge { + ASN_NGAP_ProtocolIE_Container_123P59_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANConfigurationUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANConfigurationUpdateAcknowledge_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.c b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.c new file mode 100644 index 0000000..89142eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANConfigurationUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANConfigurationUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANConfigurationUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateFailure_specs_1 = { + sizeof(struct ASN_NGAP_RANConfigurationUpdateFailure), + offsetof(struct ASN_NGAP_RANConfigurationUpdateFailure, _asn_ctx), + asn_MAP_ASN_NGAP_RANConfigurationUpdateFailure_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_ASN_NGAP_RANConfigurationUpdateFailure = { + "RANConfigurationUpdateFailure", + "RANConfigurationUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RANConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.h b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.h new file mode 100644 index 0000000..859809a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANConfigurationUpdateFailure_H_ +#define _ASN_NGAP_RANConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANConfigurationUpdateFailure */ +typedef struct ASN_NGAP_RANConfigurationUpdateFailure { + ASN_NGAP_ProtocolIE_Container_123P60_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANConfigurationUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANConfigurationUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANConfigurationUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANConfigurationUpdateFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANNodeName.c b/src/asn/ngap/ASN_NGAP_RANNodeName.c new file mode 100644 index 0000000..91f26ad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeName.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANNodeName.h" + +static const int permitted_alphabet_table_1[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 permitted_alphabet_code2value_1[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,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +ASN_NGAP_RANNodeName_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; + 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 <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_ASN_NGAP_RANNodeName_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_ASN_NGAP_RANNodeName_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_ASN_NGAP_RANNodeName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_ASN_NGAP_RANNodeName_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANNodeName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeName = { + "RANNodeName", + "RANNodeName", + &asn_OP_PrintableString, + asn_DEF_ASN_NGAP_RANNodeName_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANNodeName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANNodeName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANNodeName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeName_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RANNodeName_constr_1, ASN_NGAP_RANNodeName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANNodeName.h b/src/asn/ngap/ASN_NGAP_RANNodeName.h new file mode 100644 index 0000000..b1097a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANNodeName_H_ +#define _ASN_NGAP_RANNodeName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANNodeName */ +typedef PrintableString_t ASN_NGAP_RANNodeName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeName; +asn_struct_free_f ASN_NGAP_RANNodeName_free; +asn_struct_print_f ASN_NGAP_RANNodeName_print; +asn_constr_check_f ASN_NGAP_RANNodeName_constraint; +ber_type_decoder_f ASN_NGAP_RANNodeName_decode_ber; +der_type_encoder_f ASN_NGAP_RANNodeName_encode_der; +xer_type_decoder_f ASN_NGAP_RANNodeName_decode_xer; +xer_type_encoder_f ASN_NGAP_RANNodeName_encode_xer; +per_type_decoder_f ASN_NGAP_RANNodeName_decode_uper; +per_type_encoder_f ASN_NGAP_RANNodeName_encode_uper; +per_type_decoder_f ASN_NGAP_RANNodeName_decode_aper; +per_type_encoder_f ASN_NGAP_RANNodeName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANNodeName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.c b/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.c new file mode 100644 index 0000000..a1040ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANNodeNameUTF8String.h" + +int +ASN_NGAP_RANNodeNameUTF8String_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const UTF8String_t *st = (const UTF8String_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 = UTF8String_length(st); + if((ssize_t)size < 0) { + ASN__CTFAIL(app_key, td, sptr, + "%s: UTF-8: broken encoding (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((size >= 1 && size <= 150)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeNameUTF8String_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeNameUTF8String = { + "RANNodeNameUTF8String", + "RANNodeNameUTF8String", + &asn_OP_UTF8String, + asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeNameUTF8String_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RANNodeNameUTF8String_constr_1, ASN_NGAP_RANNodeNameUTF8String_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.h b/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.h new file mode 100644 index 0000000..98d79cd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeNameUTF8String.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANNodeNameUTF8String_H_ +#define _ASN_NGAP_RANNodeNameUTF8String_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANNodeNameUTF8String */ +typedef UTF8String_t ASN_NGAP_RANNodeNameUTF8String_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeNameUTF8String_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeNameUTF8String; +asn_struct_free_f ASN_NGAP_RANNodeNameUTF8String_free; +asn_struct_print_f ASN_NGAP_RANNodeNameUTF8String_print; +asn_constr_check_f ASN_NGAP_RANNodeNameUTF8String_constraint; +ber_type_decoder_f ASN_NGAP_RANNodeNameUTF8String_decode_ber; +der_type_encoder_f ASN_NGAP_RANNodeNameUTF8String_encode_der; +xer_type_decoder_f ASN_NGAP_RANNodeNameUTF8String_decode_xer; +xer_type_encoder_f ASN_NGAP_RANNodeNameUTF8String_encode_xer; +per_type_decoder_f ASN_NGAP_RANNodeNameUTF8String_decode_uper; +per_type_encoder_f ASN_NGAP_RANNodeNameUTF8String_encode_uper; +per_type_decoder_f ASN_NGAP_RANNodeNameUTF8String_decode_aper; +per_type_encoder_f ASN_NGAP_RANNodeNameUTF8String_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANNodeNameUTF8String_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.c b/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.c new file mode 100644 index 0000000..212f232 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANNodeNameVisibleString.h" + +static int check_permitted_alphabet_1(const void *sptr) { + /* The underlying type is VisibleString */ + const VisibleString_t *st = (const VisibleString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!(cv >= 32 && cv <= 126)) return -1; + } + return 0; +} + +int +ASN_NGAP_RANNodeNameVisibleString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const VisibleString_t *st = (const VisibleString_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 <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using VisibleString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeNameVisibleString_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 126 } /* (32..126) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeNameVisibleString = { + "RANNodeNameVisibleString", + "RANNodeNameVisibleString", + &asn_OP_VisibleString, + asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANNodeNameVisibleString_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RANNodeNameVisibleString_constr_1, ASN_NGAP_RANNodeNameVisibleString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.h b/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.h new file mode 100644 index 0000000..cc7de37 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANNodeNameVisibleString.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANNodeNameVisibleString_H_ +#define _ASN_NGAP_RANNodeNameVisibleString_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANNodeNameVisibleString */ +typedef VisibleString_t ASN_NGAP_RANNodeNameVisibleString_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RANNodeNameVisibleString_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANNodeNameVisibleString; +asn_struct_free_f ASN_NGAP_RANNodeNameVisibleString_free; +asn_struct_print_f ASN_NGAP_RANNodeNameVisibleString_print; +asn_constr_check_f ASN_NGAP_RANNodeNameVisibleString_constraint; +ber_type_decoder_f ASN_NGAP_RANNodeNameVisibleString_decode_ber; +der_type_encoder_f ASN_NGAP_RANNodeNameVisibleString_encode_der; +xer_type_decoder_f ASN_NGAP_RANNodeNameVisibleString_decode_xer; +xer_type_encoder_f ASN_NGAP_RANNodeNameVisibleString_encode_xer; +per_type_decoder_f ASN_NGAP_RANNodeNameVisibleString_decode_uper; +per_type_encoder_f ASN_NGAP_RANNodeNameVisibleString_encode_uper; +per_type_decoder_f ASN_NGAP_RANNodeNameVisibleString_decode_aper; +per_type_encoder_f ASN_NGAP_RANNodeNameVisibleString_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANNodeNameVisibleString_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANPagingPriority.c b/src/asn/ngap/ASN_NGAP_RANPagingPriority.c new file mode 100644 index 0000000..aee903c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANPagingPriority.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANPagingPriority.h" + +int +ASN_NGAP_RANPagingPriority_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_ASN_NGAP_RANPagingPriority_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_ASN_NGAP_RANPagingPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANPagingPriority = { + "RANPagingPriority", + "RANPagingPriority", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_RANPagingPriority_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANPagingPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANPagingPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANPagingPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANPagingPriority_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANPagingPriority_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RANPagingPriority_constr_1, ASN_NGAP_RANPagingPriority_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANPagingPriority.h b/src/asn/ngap/ASN_NGAP_RANPagingPriority.h new file mode 100644 index 0000000..0973cb1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANPagingPriority.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANPagingPriority_H_ +#define _ASN_NGAP_RANPagingPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RANPagingPriority */ +typedef long ASN_NGAP_RANPagingPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RANPagingPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANPagingPriority; +asn_struct_free_f ASN_NGAP_RANPagingPriority_free; +asn_struct_print_f ASN_NGAP_RANPagingPriority_print; +asn_constr_check_f ASN_NGAP_RANPagingPriority_constraint; +ber_type_decoder_f ASN_NGAP_RANPagingPriority_decode_ber; +der_type_encoder_f ASN_NGAP_RANPagingPriority_encode_der; +xer_type_decoder_f ASN_NGAP_RANPagingPriority_decode_xer; +xer_type_encoder_f ASN_NGAP_RANPagingPriority_encode_xer; +per_type_decoder_f ASN_NGAP_RANPagingPriority_decode_uper; +per_type_encoder_f ASN_NGAP_RANPagingPriority_encode_uper; +per_type_decoder_f ASN_NGAP_RANPagingPriority_decode_aper; +per_type_encoder_f ASN_NGAP_RANPagingPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANPagingPriority_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.c new file mode 100644 index 0000000..f3e1a4b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RANStatusTransfer-TransparentContainer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer, dRBsSubjectToStatusTransferList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_DRBsSubjectToStatusTransferList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dRBsSubjectToStatusTransferList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P286, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dRBsSubjectToStatusTransferList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_specs_1 = { + sizeof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer), + offsetof(struct ASN_NGAP_RANStatusTransfer_TransparentContainer, _asn_ctx), + asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RANStatusTransfer_TransparentContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer = { + "RANStatusTransfer-TransparentContainer", + "RANStatusTransfer-TransparentContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.h new file mode 100644 index 0000000..848d5ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RANStatusTransfer-TransparentContainer.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RANStatusTransfer_TransparentContainer_H_ +#define _ASN_NGAP_RANStatusTransfer_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_DRBsSubjectToStatusTransferList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RANStatusTransfer-TransparentContainer */ +typedef struct ASN_NGAP_RANStatusTransfer_TransparentContainer { + ASN_NGAP_DRBsSubjectToStatusTransferList_t dRBsSubjectToStatusTransferList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RANStatusTransfer_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RANStatusTransfer_TransparentContainer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RANStatusTransfer_TransparentContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RANStatusTransfer_TransparentContainer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RANStatusTransfer_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RAT-Information.c b/src/asn/ngap/ASN_NGAP_RAT-Information.c new file mode 100644 index 0000000..703454b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RAT-Information.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RAT-Information.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RAT_Information_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_ASN_NGAP_RAT_Information_value2enum_1[] = { + { 0, 10, "unlicensed" }, + { 1, 6, "nb-IoT" }, + { 2, 6, "nR-LEO" }, + { 3, 6, "nR-MEO" }, + { 4, 6, "nR-GEO" }, + { 5, 11, "nR-OTHERSAT" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RAT_Information_enum2value_1[] = { + 4, /* nR-GEO(4) */ + 2, /* nR-LEO(2) */ + 3, /* nR-MEO(3) */ + 5, /* nR-OTHERSAT(5) */ + 1, /* nb-IoT(1) */ + 0 /* unlicensed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RAT_Information_specs_1 = { + asn_MAP_ASN_NGAP_RAT_Information_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RAT_Information_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* 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_ASN_NGAP_RAT_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RAT_Information = { + "RAT-Information", + "RAT-Information", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RAT_Information_tags_1, + sizeof(asn_DEF_ASN_NGAP_RAT_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RAT_Information_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RAT_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RAT_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RAT_Information_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RAT_Information_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RAT_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RAT-Information.h b/src/asn/ngap/ASN_NGAP_RAT-Information.h new file mode 100644 index 0000000..98ee20b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RAT-Information.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RAT_Information_H_ +#define _ASN_NGAP_RAT_Information_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RAT_Information { + ASN_NGAP_RAT_Information_unlicensed = 0, + ASN_NGAP_RAT_Information_nb_IoT = 1, + /* + * Enumeration is extensible + */ + ASN_NGAP_RAT_Information_nR_LEO = 2, + ASN_NGAP_RAT_Information_nR_MEO = 3, + ASN_NGAP_RAT_Information_nR_GEO = 4, + ASN_NGAP_RAT_Information_nR_OTHERSAT = 5 +} e_ASN_NGAP_RAT_Information; + +/* ASN_NGAP_RAT-Information */ +typedef long ASN_NGAP_RAT_Information_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RAT_Information_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RAT_Information; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RAT_Information_specs_1; +asn_struct_free_f ASN_NGAP_RAT_Information_free; +asn_struct_print_f ASN_NGAP_RAT_Information_print; +asn_constr_check_f ASN_NGAP_RAT_Information_constraint; +ber_type_decoder_f ASN_NGAP_RAT_Information_decode_ber; +der_type_encoder_f ASN_NGAP_RAT_Information_encode_der; +xer_type_decoder_f ASN_NGAP_RAT_Information_decode_xer; +xer_type_encoder_f ASN_NGAP_RAT_Information_encode_xer; +per_type_decoder_f ASN_NGAP_RAT_Information_decode_uper; +per_type_encoder_f ASN_NGAP_RAT_Information_encode_uper; +per_type_decoder_f ASN_NGAP_RAT_Information_decode_aper; +per_type_encoder_f ASN_NGAP_RAT_Information_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RAT_Information_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.c b/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.c new file mode 100644 index 0000000..e9237d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RATRestrictionInformation.h" + +int +ASN_NGAP_RATRestrictionInformation_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_ASN_NGAP_RATRestrictionInformation_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictionInformation = { + "RATRestrictionInformation", + "RATRestrictionInformation", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictionInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RATRestrictionInformation_constr_1, ASN_NGAP_RATRestrictionInformation_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.h b/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.h new file mode 100644 index 0000000..b5af1e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictionInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RATRestrictionInformation_H_ +#define _ASN_NGAP_RATRestrictionInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RATRestrictionInformation */ +typedef BIT_STRING_t ASN_NGAP_RATRestrictionInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RATRestrictionInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictionInformation; +asn_struct_free_f ASN_NGAP_RATRestrictionInformation_free; +asn_struct_print_f ASN_NGAP_RATRestrictionInformation_print; +asn_constr_check_f ASN_NGAP_RATRestrictionInformation_constraint; +ber_type_decoder_f ASN_NGAP_RATRestrictionInformation_decode_ber; +der_type_encoder_f ASN_NGAP_RATRestrictionInformation_encode_der; +xer_type_decoder_f ASN_NGAP_RATRestrictionInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_RATRestrictionInformation_encode_xer; +per_type_decoder_f ASN_NGAP_RATRestrictionInformation_decode_uper; +per_type_encoder_f ASN_NGAP_RATRestrictionInformation_encode_uper; +per_type_decoder_f ASN_NGAP_RATRestrictionInformation_decode_aper; +per_type_encoder_f ASN_NGAP_RATRestrictionInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RATRestrictionInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.c b/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.c new file mode 100644 index 0000000..b4ecc32 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RATRestrictions-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RATRestrictions_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RATRestrictions_Item, rATRestrictionInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RATRestrictionInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rATRestrictionInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RATRestrictions_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P287, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RATRestrictions_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RATRestrictions_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rATRestrictionInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_Item_specs_1 = { + sizeof(struct ASN_NGAP_RATRestrictions_Item), + offsetof(struct ASN_NGAP_RATRestrictions_Item, _asn_ctx), + asn_MAP_ASN_NGAP_RATRestrictions_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RATRestrictions_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions_Item = { + "RATRestrictions-Item", + "RATRestrictions-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RATRestrictions_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RATRestrictions_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.h b/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.h new file mode 100644 index 0000000..9312508 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictions-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RATRestrictions_Item_H_ +#define _ASN_NGAP_RATRestrictions_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_RATRestrictionInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RATRestrictions-Item */ +typedef struct ASN_NGAP_RATRestrictions_Item { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_RATRestrictionInformation_t rATRestrictionInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RATRestrictions_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RATRestrictions_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RATRestrictions_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictions.c b/src/asn/ngap/ASN_NGAP_RATRestrictions.c new file mode 100644 index 0000000..da2bab9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictions.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RATRestrictions.h" + +#include "ASN_NGAP_RATRestrictions-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_RATRestrictions_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_ASN_NGAP_RATRestrictions_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RATRestrictions_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RATRestrictions_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_specs_1 = { + sizeof(struct ASN_NGAP_RATRestrictions), + offsetof(struct ASN_NGAP_RATRestrictions, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions = { + "RATRestrictions", + "RATRestrictions", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_RATRestrictions_tags_1, + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RATRestrictions_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RATRestrictions_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RATRestrictions_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RATRestrictions_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_RATRestrictions_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_RATRestrictions_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RATRestrictions.h b/src/asn/ngap/ASN_NGAP_RATRestrictions.h new file mode 100644 index 0000000..f69165f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RATRestrictions.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RATRestrictions_H_ +#define _ASN_NGAP_RATRestrictions_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_RATRestrictions_Item; + +/* ASN_NGAP_RATRestrictions */ +typedef struct ASN_NGAP_RATRestrictions { + A_SEQUENCE_OF(struct ASN_NGAP_RATRestrictions_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RATRestrictions_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RATRestrictions; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RATRestrictions_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RATRestrictions_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RATRestrictions_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RATRestrictions_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.c b/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.c new file mode 100644 index 0000000..7200537 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RGLevelWirelineAccessCharacteristics.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics = { + "RGLevelWirelineAccessCharacteristics", + "RGLevelWirelineAccessCharacteristics", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1, + sizeof(asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.h b/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.h new file mode 100644 index 0000000..98b11c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RGLevelWirelineAccessCharacteristics.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RGLevelWirelineAccessCharacteristics_H_ +#define _ASN_NGAP_RGLevelWirelineAccessCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RGLevelWirelineAccessCharacteristics */ +typedef OCTET_STRING_t ASN_NGAP_RGLevelWirelineAccessCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RGLevelWirelineAccessCharacteristics; +asn_struct_free_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_free; +asn_struct_print_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_print; +asn_constr_check_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_constraint; +ber_type_decoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_decode_ber; +der_type_encoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_encode_der; +xer_type_decoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_decode_xer; +xer_type_encoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_encode_xer; +per_type_decoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_decode_uper; +per_type_encoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_encode_uper; +per_type_decoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_decode_aper; +per_type_encoder_f ASN_NGAP_RGLevelWirelineAccessCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RGLevelWirelineAccessCharacteristics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RIMInformation.c b/src/asn/ngap/ASN_NGAP_RIMInformation.c new file mode 100644 index 0000000..06752c9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RIMInformation.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RIMInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_NGAP_rIM_RSDetection_constr_3 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_ASN_NGAP_rIM_RSDetection_value2enum_3[] = { + { 0, 11, "rs-detected" }, + { 1, 14, "rs-disappeared" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_rIM_RSDetection_enum2value_3[] = { + 0, /* rs-detected(0) */ + 1 /* rs-disappeared(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_rIM_RSDetection_specs_3 = { + asn_MAP_ASN_NGAP_rIM_RSDetection_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_rIM_RSDetection_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_rIM_RSDetection_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_ASN_NGAP_rIM_RSDetection_3 = { + "rIM-RSDetection", + "rIM-RSDetection", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3, + sizeof(asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3) + /sizeof(asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3) + /sizeof(asn_DEF_ASN_NGAP_rIM_RSDetection_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_rIM_RSDetection_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_rIM_RSDetection_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformation, targetgNBSetID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GNBSetID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetgNBSetID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformation, rIM_RSDetection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_rIM_RSDetection_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rIM-RSDetection" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RIMInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P294, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RIMInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RIMInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RIMInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetgNBSetID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rIM-RSDetection */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformation_specs_1 = { + sizeof(struct ASN_NGAP_RIMInformation), + offsetof(struct ASN_NGAP_RIMInformation, _asn_ctx), + asn_MAP_ASN_NGAP_RIMInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RIMInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformation = { + "RIMInformation", + "RIMInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RIMInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_RIMInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RIMInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RIMInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RIMInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RIMInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RIMInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RIMInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RIMInformation.h b/src/asn/ngap/ASN_NGAP_RIMInformation.h new file mode 100644 index 0000000..25106b4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RIMInformation.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RIMInformation_H_ +#define _ASN_NGAP_RIMInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GNBSetID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RIMInformation__rIM_RSDetection { + ASN_NGAP_RIMInformation__rIM_RSDetection_rs_detected = 0, + ASN_NGAP_RIMInformation__rIM_RSDetection_rs_disappeared = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RIMInformation__rIM_RSDetection; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RIMInformation */ +typedef struct ASN_NGAP_RIMInformation { + ASN_NGAP_GNBSetID_t targetgNBSetID; + long rIM_RSDetection; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RIMInformation_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_rIM_RSDetection_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RIMInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.c b/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.c new file mode 100644 index 0000000..748ca6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RIMInformationTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer, targetRANNodeID_RIM), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TargetRANNodeID_RIM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRANNodeID-RIM" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer, sourceRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SourceRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RIMInformationTransfer, rIMInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RIMInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rIMInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RIMInformationTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P293, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RIMInformationTransfer_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RIMInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRANNodeID-RIM */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sourceRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rIMInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_RIMInformationTransfer), + offsetof(struct ASN_NGAP_RIMInformationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_RIMInformationTransfer_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RIMInformationTransfer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformationTransfer = { + "RIMInformationTransfer", + "RIMInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RIMInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RIMInformationTransfer_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_RIMInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.h b/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.h new file mode 100644 index 0000000..1e69194 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RIMInformationTransfer.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RIMInformationTransfer_H_ +#define _ASN_NGAP_RIMInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TargetRANNodeID-RIM.h" +#include "ASN_NGAP_SourceRANNodeID.h" +#include "ASN_NGAP_RIMInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RIMInformationTransfer */ +typedef struct ASN_NGAP_RIMInformationTransfer { + ASN_NGAP_TargetRANNodeID_RIM_t targetRANNodeID_RIM; + ASN_NGAP_SourceRANNodeID_t sourceRANNodeID; + ASN_NGAP_RIMInformation_t rIMInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RIMInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RIMInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RIMInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RIMInformationTransfer_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RIMInformationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RNC-ID.c b/src/asn/ngap/ASN_NGAP_RNC-ID.c new file mode 100644 index 0000000..99bb0bc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RNC-ID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RNC-ID.h" + +int +ASN_NGAP_RNC_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_ASN_NGAP_RNC_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_ASN_NGAP_RNC_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RNC_ID = { + "RNC-ID", + "RNC-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_RNC_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_RNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RNC_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RNC_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RNC_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RNC_ID_constr_1, ASN_NGAP_RNC_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RNC-ID.h b/src/asn/ngap/ASN_NGAP_RNC-ID.h new file mode 100644 index 0000000..fa72271 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RNC-ID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RNC_ID_H_ +#define _ASN_NGAP_RNC_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RNC-ID */ +typedef long ASN_NGAP_RNC_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RNC_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RNC_ID; +asn_struct_free_f ASN_NGAP_RNC_ID_free; +asn_struct_print_f ASN_NGAP_RNC_ID_print; +asn_constr_check_f ASN_NGAP_RNC_ID_constraint; +ber_type_decoder_f ASN_NGAP_RNC_ID_decode_ber; +der_type_encoder_f ASN_NGAP_RNC_ID_encode_der; +xer_type_decoder_f ASN_NGAP_RNC_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_RNC_ID_encode_xer; +per_type_decoder_f ASN_NGAP_RNC_ID_decode_uper; +per_type_encoder_f ASN_NGAP_RNC_ID_encode_uper; +per_type_decoder_f ASN_NGAP_RNC_ID_decode_aper; +per_type_encoder_f ASN_NGAP_RNC_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RNC_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RRCContainer.c b/src/asn/ngap/ASN_NGAP_RRCContainer.c new file mode 100644 index 0000000..10b3727 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RRCContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RRCContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCContainer = { + "RRCContainer", + "RRCContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_RRCContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_RRCContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RRCContainer.h b/src/asn/ngap/ASN_NGAP_RRCContainer.h new file mode 100644 index 0000000..4e73347 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RRCContainer_H_ +#define _ASN_NGAP_RRCContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RRCContainer */ +typedef OCTET_STRING_t ASN_NGAP_RRCContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCContainer; +asn_struct_free_f ASN_NGAP_RRCContainer_free; +asn_struct_print_f ASN_NGAP_RRCContainer_print; +asn_constr_check_f ASN_NGAP_RRCContainer_constraint; +ber_type_decoder_f ASN_NGAP_RRCContainer_decode_ber; +der_type_encoder_f ASN_NGAP_RRCContainer_encode_der; +xer_type_decoder_f ASN_NGAP_RRCContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_RRCContainer_encode_xer; +per_type_decoder_f ASN_NGAP_RRCContainer_decode_uper; +per_type_encoder_f ASN_NGAP_RRCContainer_encode_uper; +per_type_decoder_f ASN_NGAP_RRCContainer_decode_aper; +per_type_encoder_f ASN_NGAP_RRCContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RRCContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.c b/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.c new file mode 100644 index 0000000..ed267bb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RRCEstablishmentCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCEstablishmentCause_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_ASN_NGAP_RRCEstablishmentCause_value2enum_1[] = { + { 0, 9, "emergency" }, + { 1, 18, "highPriorityAccess" }, + { 2, 9, "mt-Access" }, + { 3, 13, "mo-Signalling" }, + { 4, 7, "mo-Data" }, + { 5, 12, "mo-VoiceCall" }, + { 6, 12, "mo-VideoCall" }, + { 7, 6, "mo-SMS" }, + { 8, 18, "mps-PriorityAccess" }, + { 9, 18, "mcs-PriorityAccess" }, + { 10, 12, "notAvailable" }, + { 11, 16, "mo-ExceptionData" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RRCEstablishmentCause_enum2value_1[] = { + 0, /* emergency(0) */ + 1, /* highPriorityAccess(1) */ + 9, /* mcs-PriorityAccess(9) */ + 4, /* mo-Data(4) */ + 11, /* mo-ExceptionData(11) */ + 7, /* mo-SMS(7) */ + 3, /* mo-Signalling(3) */ + 6, /* mo-VideoCall(6) */ + 5, /* mo-VoiceCall(5) */ + 8, /* mps-PriorityAccess(8) */ + 2, /* mt-Access(2) */ + 10 /* notAvailable(10) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCEstablishmentCause_specs_1 = { + asn_MAP_ASN_NGAP_RRCEstablishmentCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RRCEstablishmentCause_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* 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_ASN_NGAP_RRCEstablishmentCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCEstablishmentCause = { + "RRCEstablishmentCause", + "RRCEstablishmentCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1, + sizeof(asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCEstablishmentCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RRCEstablishmentCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RRCEstablishmentCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.h b/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.h new file mode 100644 index 0000000..6f9e552 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCEstablishmentCause.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RRCEstablishmentCause_H_ +#define _ASN_NGAP_RRCEstablishmentCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RRCEstablishmentCause { + ASN_NGAP_RRCEstablishmentCause_emergency = 0, + ASN_NGAP_RRCEstablishmentCause_highPriorityAccess = 1, + ASN_NGAP_RRCEstablishmentCause_mt_Access = 2, + ASN_NGAP_RRCEstablishmentCause_mo_Signalling = 3, + ASN_NGAP_RRCEstablishmentCause_mo_Data = 4, + ASN_NGAP_RRCEstablishmentCause_mo_VoiceCall = 5, + ASN_NGAP_RRCEstablishmentCause_mo_VideoCall = 6, + ASN_NGAP_RRCEstablishmentCause_mo_SMS = 7, + ASN_NGAP_RRCEstablishmentCause_mps_PriorityAccess = 8, + ASN_NGAP_RRCEstablishmentCause_mcs_PriorityAccess = 9, + /* + * Enumeration is extensible + */ + ASN_NGAP_RRCEstablishmentCause_notAvailable = 10, + ASN_NGAP_RRCEstablishmentCause_mo_ExceptionData = 11 +} e_ASN_NGAP_RRCEstablishmentCause; + +/* ASN_NGAP_RRCEstablishmentCause */ +typedef long ASN_NGAP_RRCEstablishmentCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCEstablishmentCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCEstablishmentCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCEstablishmentCause_specs_1; +asn_struct_free_f ASN_NGAP_RRCEstablishmentCause_free; +asn_struct_print_f ASN_NGAP_RRCEstablishmentCause_print; +asn_constr_check_f ASN_NGAP_RRCEstablishmentCause_constraint; +ber_type_decoder_f ASN_NGAP_RRCEstablishmentCause_decode_ber; +der_type_encoder_f ASN_NGAP_RRCEstablishmentCause_encode_der; +xer_type_decoder_f ASN_NGAP_RRCEstablishmentCause_decode_xer; +xer_type_encoder_f ASN_NGAP_RRCEstablishmentCause_encode_xer; +per_type_decoder_f ASN_NGAP_RRCEstablishmentCause_decode_uper; +per_type_encoder_f ASN_NGAP_RRCEstablishmentCause_encode_uper; +per_type_decoder_f ASN_NGAP_RRCEstablishmentCause_decode_aper; +per_type_encoder_f ASN_NGAP_RRCEstablishmentCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RRCEstablishmentCause_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.c b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.c new file mode 100644 index 0000000..ff273ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RRCInactiveTransitionReport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RRCInactiveTransitionReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RRCInactiveTransitionReport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RRCInactiveTransitionReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReport_specs_1 = { + sizeof(struct ASN_NGAP_RRCInactiveTransitionReport), + offsetof(struct ASN_NGAP_RRCInactiveTransitionReport, _asn_ctx), + asn_MAP_ASN_NGAP_RRCInactiveTransitionReport_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_ASN_NGAP_RRCInactiveTransitionReport = { + "RRCInactiveTransitionReport", + "RRCInactiveTransitionReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RRCInactiveTransitionReport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RRCInactiveTransitionReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.h b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.h new file mode 100644 index 0000000..de582d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RRCInactiveTransitionReport_H_ +#define _ASN_NGAP_RRCInactiveTransitionReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RRCInactiveTransitionReport */ +typedef struct ASN_NGAP_RRCInactiveTransitionReport { + ASN_NGAP_ProtocolIE_Container_123P28_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RRCInactiveTransitionReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RRCInactiveTransitionReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RRCInactiveTransitionReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.c b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.c new file mode 100644 index 0000000..54d6c0a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RRCInactiveTransitionReportRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCInactiveTransitionReportRequest_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_ASN_NGAP_RRCInactiveTransitionReportRequest_value2enum_1[] = { + { 0, 34, "subsequent-state-transition-report" }, + { 1, 33, "single-rrc-connected-state-report" }, + { 2, 13, "cancel-report" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RRCInactiveTransitionReportRequest_enum2value_1[] = { + 2, /* cancel-report(2) */ + 1, /* single-rrc-connected-state-report(1) */ + 0 /* subsequent-state-transition-report(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReportRequest_specs_1 = { + asn_MAP_ASN_NGAP_RRCInactiveTransitionReportRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RRCInactiveTransitionReportRequest_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_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest = { + "RRCInactiveTransitionReportRequest", + "RRCInactiveTransitionReportRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RRCInactiveTransitionReportRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RRCInactiveTransitionReportRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.h b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.h new file mode 100644 index 0000000..71ed6c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCInactiveTransitionReportRequest.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RRCInactiveTransitionReportRequest_H_ +#define _ASN_NGAP_RRCInactiveTransitionReportRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RRCInactiveTransitionReportRequest { + ASN_NGAP_RRCInactiveTransitionReportRequest_subsequent_state_transition_report = 0, + ASN_NGAP_RRCInactiveTransitionReportRequest_single_rrc_connected_state_report = 1, + ASN_NGAP_RRCInactiveTransitionReportRequest_cancel_report = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RRCInactiveTransitionReportRequest; + +/* ASN_NGAP_RRCInactiveTransitionReportRequest */ +typedef long ASN_NGAP_RRCInactiveTransitionReportRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCInactiveTransitionReportRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCInactiveTransitionReportRequest; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCInactiveTransitionReportRequest_specs_1; +asn_struct_free_f ASN_NGAP_RRCInactiveTransitionReportRequest_free; +asn_struct_print_f ASN_NGAP_RRCInactiveTransitionReportRequest_print; +asn_constr_check_f ASN_NGAP_RRCInactiveTransitionReportRequest_constraint; +ber_type_decoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_decode_ber; +der_type_encoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_encode_der; +xer_type_decoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_decode_xer; +xer_type_encoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_encode_xer; +per_type_decoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_decode_uper; +per_type_encoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_encode_uper; +per_type_decoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_decode_aper; +per_type_encoder_f ASN_NGAP_RRCInactiveTransitionReportRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RRCInactiveTransitionReportRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RRCState.c b/src/asn/ngap/ASN_NGAP_RRCState.c new file mode 100644 index 0000000..f706f22 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCState.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RRCState.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCState_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_ASN_NGAP_RRCState_value2enum_1[] = { + { 0, 8, "inactive" }, + { 1, 9, "connected" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RRCState_enum2value_1[] = { + 1, /* connected(1) */ + 0 /* inactive(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCState_specs_1 = { + asn_MAP_ASN_NGAP_RRCState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RRCState_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_ASN_NGAP_RRCState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCState = { + "RRCState", + "RRCState", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RRCState_tags_1, + sizeof(asn_DEF_ASN_NGAP_RRCState_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCState_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RRCState_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RRCState_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RRCState_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RRCState_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RRCState_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RRCState.h b/src/asn/ngap/ASN_NGAP_RRCState.h new file mode 100644 index 0000000..1bae510 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RRCState.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RRCState_H_ +#define _ASN_NGAP_RRCState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RRCState { + ASN_NGAP_RRCState_inactive = 0, + ASN_NGAP_RRCState_connected = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RRCState; + +/* ASN_NGAP_RRCState */ +typedef long ASN_NGAP_RRCState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RRCState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RRCState; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RRCState_specs_1; +asn_struct_free_f ASN_NGAP_RRCState_free; +asn_struct_print_f ASN_NGAP_RRCState_print; +asn_constr_check_f ASN_NGAP_RRCState_constraint; +ber_type_decoder_f ASN_NGAP_RRCState_decode_ber; +der_type_encoder_f ASN_NGAP_RRCState_encode_der; +xer_type_decoder_f ASN_NGAP_RRCState_decode_xer; +xer_type_encoder_f ASN_NGAP_RRCState_encode_xer; +per_type_decoder_f ASN_NGAP_RRCState_decode_uper; +per_type_encoder_f ASN_NGAP_RRCState_encode_uper; +per_type_decoder_f ASN_NGAP_RRCState_decode_aper; +per_type_encoder_f ASN_NGAP_RRCState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RRCState_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RSN.c b/src/asn/ngap/ASN_NGAP_RSN.c new file mode 100644 index 0000000..9bf2531 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RSN.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RSN.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RSN_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_ASN_NGAP_RSN_value2enum_1[] = { + { 0, 2, "v1" }, + { 1, 2, "v2" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RSN_enum2value_1[] = { + 0, /* v1(0) */ + 1 /* v2(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RSN_specs_1 = { + asn_MAP_ASN_NGAP_RSN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RSN_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_ASN_NGAP_RSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RSN = { + "RSN", + "RSN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RSN_tags_1, + sizeof(asn_DEF_ASN_NGAP_RSN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RSN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RSN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RSN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RSN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RSN_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RSN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RSN.h b/src/asn/ngap/ASN_NGAP_RSN.h new file mode 100644 index 0000000..257483d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RSN.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RSN_H_ +#define _ASN_NGAP_RSN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RSN { + ASN_NGAP_RSN_v1 = 0, + ASN_NGAP_RSN_v2 = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RSN; + +/* ASN_NGAP_RSN */ +typedef long ASN_NGAP_RSN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RSN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RSN; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RSN_specs_1; +asn_struct_free_f ASN_NGAP_RSN_free; +asn_struct_print_f ASN_NGAP_RSN_print; +asn_constr_check_f ASN_NGAP_RSN_constraint; +ber_type_decoder_f ASN_NGAP_RSN_decode_ber; +der_type_encoder_f ASN_NGAP_RSN_encode_der; +xer_type_decoder_f ASN_NGAP_RSN_decode_xer; +xer_type_encoder_f ASN_NGAP_RSN_encode_xer; +per_type_decoder_f ASN_NGAP_RSN_decode_uper; +per_type_encoder_f ASN_NGAP_RSN_encode_uper; +per_type_decoder_f ASN_NGAP_RSN_decode_aper; +per_type_encoder_f ASN_NGAP_RSN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RSN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Range.c b/src/asn/ngap/ASN_NGAP_Range.c new file mode 100644 index 0000000..4de5f5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Range.c @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Range.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Range_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_ASN_NGAP_Range_value2enum_1[] = { + { 0, 3, "m50" }, + { 1, 3, "m80" }, + { 2, 4, "m180" }, + { 3, 4, "m200" }, + { 4, 4, "m350" }, + { 5, 4, "m400" }, + { 6, 4, "m500" }, + { 7, 4, "m700" }, + { 8, 5, "m1000" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Range_enum2value_1[] = { + 8, /* m1000(8) */ + 2, /* m180(2) */ + 3, /* m200(3) */ + 4, /* m350(4) */ + 5, /* m400(5) */ + 0, /* m50(0) */ + 6, /* m500(6) */ + 7, /* m700(7) */ + 1 /* m80(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Range_specs_1 = { + asn_MAP_ASN_NGAP_Range_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Range_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_ASN_NGAP_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Range = { + "Range", + "Range", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Range_tags_1, + sizeof(asn_DEF_ASN_NGAP_Range_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Range_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Range_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Range_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Range_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Range_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Range.h b/src/asn/ngap/ASN_NGAP_Range.h new file mode 100644 index 0000000..dba8cba --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Range.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Range_H_ +#define _ASN_NGAP_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Range { + ASN_NGAP_Range_m50 = 0, + ASN_NGAP_Range_m80 = 1, + ASN_NGAP_Range_m180 = 2, + ASN_NGAP_Range_m200 = 3, + ASN_NGAP_Range_m350 = 4, + ASN_NGAP_Range_m400 = 5, + ASN_NGAP_Range_m500 = 6, + ASN_NGAP_Range_m700 = 7, + ASN_NGAP_Range_m1000 = 8 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Range; + +/* ASN_NGAP_Range */ +typedef long ASN_NGAP_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Range; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Range_specs_1; +asn_struct_free_f ASN_NGAP_Range_free; +asn_struct_print_f ASN_NGAP_Range_print; +asn_constr_check_f ASN_NGAP_Range_constraint; +ber_type_decoder_f ASN_NGAP_Range_decode_ber; +der_type_encoder_f ASN_NGAP_Range_encode_der; +xer_type_decoder_f ASN_NGAP_Range_decode_xer; +xer_type_encoder_f ASN_NGAP_Range_encode_xer; +per_type_decoder_f ASN_NGAP_Range_decode_uper; +per_type_encoder_f ASN_NGAP_Range_encode_uper; +per_type_decoder_f ASN_NGAP_Range_decode_aper; +per_type_encoder_f ASN_NGAP_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Range_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellItem.c b/src/asn/ngap/ASN_NGAP_RecommendedCellItem.c new file mode 100644 index 0000000..184fb5b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellItem.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedCellItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_timeStayedInCell_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_ASN_NGAP_timeStayedInCell_constr_3 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_ASN_NGAP_RecommendedCellItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellItem, nGRAN_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-CGI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_RecommendedCellItem, timeStayedInCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_timeStayedInCell_constr_3, memb_ASN_NGAP_timeStayedInCell_constraint_1 }, + 0, 0, /* No default value */ + "timeStayedInCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RecommendedCellItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P289, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RecommendedCellItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedCellItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRAN-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeStayedInCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellItem_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedCellItem), + offsetof(struct ASN_NGAP_RecommendedCellItem, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedCellItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RecommendedCellItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellItem = { + "RecommendedCellItem", + "RecommendedCellItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedCellItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedCellItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellItem.h b/src/asn/ngap/ASN_NGAP_RecommendedCellItem.h new file mode 100644 index 0000000..5781523 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedCellItem_H_ +#define _ASN_NGAP_RecommendedCellItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRAN-CGI.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RecommendedCellItem */ +typedef struct ASN_NGAP_RecommendedCellItem { + ASN_NGAP_NGRAN_CGI_t nGRAN_CGI; + long *timeStayedInCell; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedCellItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedCellItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellList.c b/src/asn/ngap/ASN_NGAP_RecommendedCellList.c new file mode 100644 index 0000000..9a9aede --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedCellList.h" + +#include "ASN_NGAP_RecommendedCellItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_RecommendedCellList_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_ASN_NGAP_RecommendedCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedCellItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RecommendedCellList_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedCellList), + offsetof(struct ASN_NGAP_RecommendedCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellList = { + "RecommendedCellList", + "RecommendedCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_RecommendedCellList_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedCellList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RecommendedCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_RecommendedCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_RecommendedCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellList.h b/src/asn/ngap/ASN_NGAP_RecommendedCellList.h new file mode 100644 index 0000000..b6940be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedCellList_H_ +#define _ASN_NGAP_RecommendedCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_RecommendedCellItem; + +/* ASN_NGAP_RecommendedCellList */ +typedef struct ASN_NGAP_RecommendedCellList { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedCellItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RecommendedCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RecommendedCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedCellList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.c b/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.c new file mode 100644 index 0000000..ee03236 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedCellsForPaging.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellsForPaging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedCellsForPaging, recommendedCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RecommendedCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RecommendedCellsForPaging, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P288, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RecommendedCellsForPaging_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedCellsForPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* recommendedCellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellsForPaging_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedCellsForPaging), + offsetof(struct ASN_NGAP_RecommendedCellsForPaging, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedCellsForPaging_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RecommendedCellsForPaging_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging = { + "RecommendedCellsForPaging", + "RecommendedCellsForPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedCellsForPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedCellsForPaging_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedCellsForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.h b/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.h new file mode 100644 index 0000000..eaf29a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedCellsForPaging.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedCellsForPaging_H_ +#define _ASN_NGAP_RecommendedCellsForPaging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RecommendedCellList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RecommendedCellsForPaging */ +typedef struct ASN_NGAP_RecommendedCellsForPaging { + ASN_NGAP_RecommendedCellList_t recommendedCellList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedCellsForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedCellsForPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedCellsForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedCellsForPaging_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedCellsForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.c b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.c new file mode 100644 index 0000000..893379d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedRANNodeItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodeItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodeItem, aMFPagingTarget), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFPagingTarget, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMFPagingTarget" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RecommendedRANNodeItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P291, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RecommendedRANNodeItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedRANNodeItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMFPagingTarget */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeItem_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedRANNodeItem), + offsetof(struct ASN_NGAP_RecommendedRANNodeItem, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedRANNodeItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RecommendedRANNodeItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem = { + "RecommendedRANNodeItem", + "RecommendedRANNodeItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedRANNodeItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedRANNodeItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.h b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.h new file mode 100644 index 0000000..3fdf80b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedRANNodeItem_H_ +#define _ASN_NGAP_RecommendedRANNodeItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMFPagingTarget.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RecommendedRANNodeItem */ +typedef struct ASN_NGAP_RecommendedRANNodeItem { + ASN_NGAP_AMFPagingTarget_t aMFPagingTarget; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedRANNodeItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodeItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedRANNodeItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.c b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.c new file mode 100644 index 0000000..1affbaf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedRANNodeList.h" + +#include "ASN_NGAP_RecommendedRANNodeItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_RecommendedRANNodeList_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_ASN_NGAP_RecommendedRANNodeList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RecommendedRANNodeItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeList_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedRANNodeList), + offsetof(struct ASN_NGAP_RecommendedRANNodeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeList = { + "RecommendedRANNodeList", + "RecommendedRANNodeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodeList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RecommendedRANNodeList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_RecommendedRANNodeList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_RecommendedRANNodeList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.h b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.h new file mode 100644 index 0000000..4d7850b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodeList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedRANNodeList_H_ +#define _ASN_NGAP_RecommendedRANNodeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_RecommendedRANNodeItem; + +/* ASN_NGAP_RecommendedRANNodeList */ +typedef struct ASN_NGAP_RecommendedRANNodeList { + A_SEQUENCE_OF(struct ASN_NGAP_RecommendedRANNodeItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedRANNodeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodeList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodeList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodeList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RecommendedRANNodeList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedRANNodeList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.c b/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.c new file mode 100644 index 0000000..035892b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RecommendedRANNodesForPaging.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging, recommendedRANNodeList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RecommendedRANNodeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedRANNodeList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P290, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* recommendedRANNodeList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_specs_1 = { + sizeof(struct ASN_NGAP_RecommendedRANNodesForPaging), + offsetof(struct ASN_NGAP_RecommendedRANNodesForPaging, _asn_ctx), + asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RecommendedRANNodesForPaging_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging = { + "RecommendedRANNodesForPaging", + "RecommendedRANNodesForPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.h b/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.h new file mode 100644 index 0000000..4ce27b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RecommendedRANNodesForPaging.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RecommendedRANNodesForPaging_H_ +#define _ASN_NGAP_RecommendedRANNodesForPaging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RecommendedRANNodeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RecommendedRANNodesForPaging */ +typedef struct ASN_NGAP_RecommendedRANNodesForPaging { + ASN_NGAP_RecommendedRANNodeList_t recommendedRANNodeList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RecommendedRANNodesForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RecommendedRANNodesForPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RecommendedRANNodesForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RecommendedRANNodesForPaging_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RecommendedRANNodesForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RedCapIndication.c b/src/asn/ngap/ASN_NGAP_RedCapIndication.c new file mode 100644 index 0000000..ce3a40c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedCapIndication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RedCapIndication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RedCapIndication_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_ASN_NGAP_RedCapIndication_value2enum_1[] = { + { 0, 6, "redcap" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RedCapIndication_enum2value_1[] = { + 0 /* redcap(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedCapIndication_specs_1 = { + asn_MAP_ASN_NGAP_RedCapIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RedCapIndication_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_ASN_NGAP_RedCapIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedCapIndication = { + "RedCapIndication", + "RedCapIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RedCapIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_RedCapIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedCapIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RedCapIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RedCapIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedCapIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RedCapIndication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RedCapIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RedCapIndication.h b/src/asn/ngap/ASN_NGAP_RedCapIndication.h new file mode 100644 index 0000000..c527b96 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedCapIndication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RedCapIndication_H_ +#define _ASN_NGAP_RedCapIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RedCapIndication { + ASN_NGAP_RedCapIndication_redcap = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RedCapIndication; + +/* ASN_NGAP_RedCapIndication */ +typedef long ASN_NGAP_RedCapIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RedCapIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedCapIndication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedCapIndication_specs_1; +asn_struct_free_f ASN_NGAP_RedCapIndication_free; +asn_struct_print_f ASN_NGAP_RedCapIndication_print; +asn_constr_check_f ASN_NGAP_RedCapIndication_constraint; +ber_type_decoder_f ASN_NGAP_RedCapIndication_decode_ber; +der_type_encoder_f ASN_NGAP_RedCapIndication_encode_der; +xer_type_decoder_f ASN_NGAP_RedCapIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_RedCapIndication_encode_xer; +per_type_decoder_f ASN_NGAP_RedCapIndication_decode_uper; +per_type_encoder_f ASN_NGAP_RedCapIndication_encode_uper; +per_type_decoder_f ASN_NGAP_RedCapIndication_decode_aper; +per_type_encoder_f ASN_NGAP_RedCapIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RedCapIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.c b/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.c new file mode 100644 index 0000000..64ac153 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RedirectionVoiceFallback.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RedirectionVoiceFallback_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_ASN_NGAP_RedirectionVoiceFallback_value2enum_1[] = { + { 0, 8, "possible" }, + { 1, 12, "not-possible" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_RedirectionVoiceFallback_enum2value_1[] = { + 1, /* not-possible(1) */ + 0 /* possible(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedirectionVoiceFallback_specs_1 = { + asn_MAP_ASN_NGAP_RedirectionVoiceFallback_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RedirectionVoiceFallback_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_ASN_NGAP_RedirectionVoiceFallback_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedirectionVoiceFallback = { + "RedirectionVoiceFallback", + "RedirectionVoiceFallback", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1, + sizeof(asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedirectionVoiceFallback_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RedirectionVoiceFallback_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RedirectionVoiceFallback_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.h b/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.h new file mode 100644 index 0000000..6d02491 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedirectionVoiceFallback.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RedirectionVoiceFallback_H_ +#define _ASN_NGAP_RedirectionVoiceFallback_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RedirectionVoiceFallback { + ASN_NGAP_RedirectionVoiceFallback_possible = 0, + ASN_NGAP_RedirectionVoiceFallback_not_possible = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_RedirectionVoiceFallback; + +/* ASN_NGAP_RedirectionVoiceFallback */ +typedef long ASN_NGAP_RedirectionVoiceFallback_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RedirectionVoiceFallback_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedirectionVoiceFallback; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedirectionVoiceFallback_specs_1; +asn_struct_free_f ASN_NGAP_RedirectionVoiceFallback_free; +asn_struct_print_f ASN_NGAP_RedirectionVoiceFallback_print; +asn_constr_check_f ASN_NGAP_RedirectionVoiceFallback_constraint; +ber_type_decoder_f ASN_NGAP_RedirectionVoiceFallback_decode_ber; +der_type_encoder_f ASN_NGAP_RedirectionVoiceFallback_encode_der; +xer_type_decoder_f ASN_NGAP_RedirectionVoiceFallback_decode_xer; +xer_type_encoder_f ASN_NGAP_RedirectionVoiceFallback_encode_xer; +per_type_decoder_f ASN_NGAP_RedirectionVoiceFallback_decode_uper; +per_type_encoder_f ASN_NGAP_RedirectionVoiceFallback_encode_uper; +per_type_decoder_f ASN_NGAP_RedirectionVoiceFallback_decode_aper; +per_type_encoder_f ASN_NGAP_RedirectionVoiceFallback_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RedirectionVoiceFallback_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.c b/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.c new file mode 100644 index 0000000..8bd7b91 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RedundantPDUSessionInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation, rSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rSN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_RedundantPDUSessionInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P292, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rSN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_specs_1 = { + sizeof(struct ASN_NGAP_RedundantPDUSessionInformation), + offsetof(struct ASN_NGAP_RedundantPDUSessionInformation, _asn_ctx), + asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_RedundantPDUSessionInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation = { + "RedundantPDUSessionInformation", + "RedundantPDUSessionInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedundantPDUSessionInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.h b/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.h new file mode 100644 index 0000000..ce12730 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedundantPDUSessionInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RedundantPDUSessionInformation_H_ +#define _ASN_NGAP_RedundantPDUSessionInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RSN.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_RedundantPDUSessionInformation */ +typedef struct ASN_NGAP_RedundantPDUSessionInformation { + ASN_NGAP_RSN_t rSN; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RedundantPDUSessionInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantPDUSessionInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RedundantPDUSessionInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RedundantPDUSessionInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RedundantPDUSessionInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.c b/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.c new file mode 100644 index 0000000..8d7c979 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RedundantQosFlowIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_RedundantQosFlowIndicator_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_ASN_NGAP_RedundantQosFlowIndicator_value2enum_1[] = { + { 0, 4, "true" }, + { 1, 5, "false" } +}; +static const unsigned int asn_MAP_ASN_NGAP_RedundantQosFlowIndicator_enum2value_1[] = { + 1, /* false(1) */ + 0 /* true(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedundantQosFlowIndicator_specs_1 = { + asn_MAP_ASN_NGAP_RedundantQosFlowIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_RedundantQosFlowIndicator_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_ASN_NGAP_RedundantQosFlowIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantQosFlowIndicator = { + "RedundantQosFlowIndicator", + "RedundantQosFlowIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RedundantQosFlowIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RedundantQosFlowIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_RedundantQosFlowIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.h b/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.h new file mode 100644 index 0000000..c4cecc8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RedundantQosFlowIndicator.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RedundantQosFlowIndicator_H_ +#define _ASN_NGAP_RedundantQosFlowIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_RedundantQosFlowIndicator { + ASN_NGAP_RedundantQosFlowIndicator_true = 0, + ASN_NGAP_RedundantQosFlowIndicator_false = 1 +} e_ASN_NGAP_RedundantQosFlowIndicator; + +/* ASN_NGAP_RedundantQosFlowIndicator */ +typedef long ASN_NGAP_RedundantQosFlowIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RedundantQosFlowIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RedundantQosFlowIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_RedundantQosFlowIndicator_specs_1; +asn_struct_free_f ASN_NGAP_RedundantQosFlowIndicator_free; +asn_struct_print_f ASN_NGAP_RedundantQosFlowIndicator_print; +asn_constr_check_f ASN_NGAP_RedundantQosFlowIndicator_constraint; +ber_type_decoder_f ASN_NGAP_RedundantQosFlowIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_RedundantQosFlowIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_RedundantQosFlowIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_RedundantQosFlowIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_RedundantQosFlowIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_RedundantQosFlowIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_RedundantQosFlowIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_RedundantQosFlowIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RedundantQosFlowIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.c b/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.c new file mode 100644 index 0000000..4949791 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReflectiveQosAttribute.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ReflectiveQosAttribute_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_ASN_NGAP_ReflectiveQosAttribute_value2enum_1[] = { + { 0, 10, "subject-to" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ReflectiveQosAttribute_enum2value_1[] = { + 0 /* subject-to(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReflectiveQosAttribute_specs_1 = { + asn_MAP_ASN_NGAP_ReflectiveQosAttribute_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ReflectiveQosAttribute_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_ASN_NGAP_ReflectiveQosAttribute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReflectiveQosAttribute = { + "ReflectiveQosAttribute", + "ReflectiveQosAttribute", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReflectiveQosAttribute_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReflectiveQosAttribute_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ReflectiveQosAttribute_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.h b/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.h new file mode 100644 index 0000000..5994cbe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReflectiveQosAttribute.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReflectiveQosAttribute_H_ +#define _ASN_NGAP_ReflectiveQosAttribute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReflectiveQosAttribute { + ASN_NGAP_ReflectiveQosAttribute_subject_to = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ReflectiveQosAttribute; + +/* ASN_NGAP_ReflectiveQosAttribute */ +typedef long ASN_NGAP_ReflectiveQosAttribute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReflectiveQosAttribute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReflectiveQosAttribute; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReflectiveQosAttribute_specs_1; +asn_struct_free_f ASN_NGAP_ReflectiveQosAttribute_free; +asn_struct_print_f ASN_NGAP_ReflectiveQosAttribute_print; +asn_constr_check_f ASN_NGAP_ReflectiveQosAttribute_constraint; +ber_type_decoder_f ASN_NGAP_ReflectiveQosAttribute_decode_ber; +der_type_encoder_f ASN_NGAP_ReflectiveQosAttribute_encode_der; +xer_type_decoder_f ASN_NGAP_ReflectiveQosAttribute_decode_xer; +xer_type_encoder_f ASN_NGAP_ReflectiveQosAttribute_encode_xer; +per_type_decoder_f ASN_NGAP_ReflectiveQosAttribute_decode_uper; +per_type_encoder_f ASN_NGAP_ReflectiveQosAttribute_encode_uper; +per_type_decoder_f ASN_NGAP_ReflectiveQosAttribute_decode_aper; +per_type_encoder_f ASN_NGAP_ReflectiveQosAttribute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReflectiveQosAttribute_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.c b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.c new file mode 100644 index 0000000..c5078a9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RejectedNSSAIinPLMN.h" + +int +ASN_NGAP_RejectedNSSAIinPLMN_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)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_RejectedNSSAIinPLMN_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_ASN_NGAP_RejectedNSSAIinPLMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN = { + "RejectedNSSAIinPLMN", + "RejectedNSSAIinPLMN", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1, + sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RejectedNSSAIinPLMN_constr_1, ASN_NGAP_RejectedNSSAIinPLMN_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.h b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.h new file mode 100644 index 0000000..2474f75 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinPLMN.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RejectedNSSAIinPLMN_H_ +#define _ASN_NGAP_RejectedNSSAIinPLMN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RejectedNSSAIinPLMN */ +typedef OCTET_STRING_t ASN_NGAP_RejectedNSSAIinPLMN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RejectedNSSAIinPLMN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN; +asn_struct_free_f ASN_NGAP_RejectedNSSAIinPLMN_free; +asn_struct_print_f ASN_NGAP_RejectedNSSAIinPLMN_print; +asn_constr_check_f ASN_NGAP_RejectedNSSAIinPLMN_constraint; +ber_type_decoder_f ASN_NGAP_RejectedNSSAIinPLMN_decode_ber; +der_type_encoder_f ASN_NGAP_RejectedNSSAIinPLMN_encode_der; +xer_type_decoder_f ASN_NGAP_RejectedNSSAIinPLMN_decode_xer; +xer_type_encoder_f ASN_NGAP_RejectedNSSAIinPLMN_encode_xer; +per_type_decoder_f ASN_NGAP_RejectedNSSAIinPLMN_decode_uper; +per_type_encoder_f ASN_NGAP_RejectedNSSAIinPLMN_encode_uper; +per_type_decoder_f ASN_NGAP_RejectedNSSAIinPLMN_decode_aper; +per_type_encoder_f ASN_NGAP_RejectedNSSAIinPLMN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RejectedNSSAIinPLMN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.c b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.c new file mode 100644 index 0000000..05e9ba4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RejectedNSSAIinTA.h" + +int +ASN_NGAP_RejectedNSSAIinTA_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)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_RejectedNSSAIinTA_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_ASN_NGAP_RejectedNSSAIinTA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RejectedNSSAIinTA = { + "RejectedNSSAIinTA", + "RejectedNSSAIinTA", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1, + sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RejectedNSSAIinTA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RejectedNSSAIinTA_constr_1, ASN_NGAP_RejectedNSSAIinTA_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.h b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.h new file mode 100644 index 0000000..1a4b5d8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RejectedNSSAIinTA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RejectedNSSAIinTA_H_ +#define _ASN_NGAP_RejectedNSSAIinTA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RejectedNSSAIinTA */ +typedef OCTET_STRING_t ASN_NGAP_RejectedNSSAIinTA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RejectedNSSAIinTA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RejectedNSSAIinTA; +asn_struct_free_f ASN_NGAP_RejectedNSSAIinTA_free; +asn_struct_print_f ASN_NGAP_RejectedNSSAIinTA_print; +asn_constr_check_f ASN_NGAP_RejectedNSSAIinTA_constraint; +ber_type_decoder_f ASN_NGAP_RejectedNSSAIinTA_decode_ber; +der_type_encoder_f ASN_NGAP_RejectedNSSAIinTA_encode_der; +xer_type_decoder_f ASN_NGAP_RejectedNSSAIinTA_decode_xer; +xer_type_encoder_f ASN_NGAP_RejectedNSSAIinTA_encode_xer; +per_type_decoder_f ASN_NGAP_RejectedNSSAIinTA_decode_uper; +per_type_encoder_f ASN_NGAP_RejectedNSSAIinTA_encode_uper; +per_type_decoder_f ASN_NGAP_RejectedNSSAIinTA_decode_aper; +per_type_encoder_f ASN_NGAP_RejectedNSSAIinTA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RejectedNSSAIinTA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.c b/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.c new file mode 100644 index 0000000..b3bb3d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RelativeAMFCapacity.h" + +int +ASN_NGAP_RelativeAMFCapacity_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_ASN_NGAP_RelativeAMFCapacity_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_ASN_NGAP_RelativeAMFCapacity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RelativeAMFCapacity = { + "RelativeAMFCapacity", + "RelativeAMFCapacity", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1, + sizeof(asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RelativeAMFCapacity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RelativeAMFCapacity_constr_1, ASN_NGAP_RelativeAMFCapacity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.h b/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.h new file mode 100644 index 0000000..544cf81 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RelativeAMFCapacity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RelativeAMFCapacity_H_ +#define _ASN_NGAP_RelativeAMFCapacity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RelativeAMFCapacity */ +typedef long ASN_NGAP_RelativeAMFCapacity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RelativeAMFCapacity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RelativeAMFCapacity; +asn_struct_free_f ASN_NGAP_RelativeAMFCapacity_free; +asn_struct_print_f ASN_NGAP_RelativeAMFCapacity_print; +asn_constr_check_f ASN_NGAP_RelativeAMFCapacity_constraint; +ber_type_decoder_f ASN_NGAP_RelativeAMFCapacity_decode_ber; +der_type_encoder_f ASN_NGAP_RelativeAMFCapacity_encode_der; +xer_type_decoder_f ASN_NGAP_RelativeAMFCapacity_decode_xer; +xer_type_encoder_f ASN_NGAP_RelativeAMFCapacity_encode_xer; +per_type_decoder_f ASN_NGAP_RelativeAMFCapacity_decode_uper; +per_type_encoder_f ASN_NGAP_RelativeAMFCapacity_encode_uper; +per_type_decoder_f ASN_NGAP_RelativeAMFCapacity_decode_aper; +per_type_encoder_f ASN_NGAP_RelativeAMFCapacity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RelativeAMFCapacity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RepetitionPeriod.c b/src/asn/ngap/ASN_NGAP_RepetitionPeriod.c new file mode 100644 index 0000000..3c0d3ab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RepetitionPeriod.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RepetitionPeriod.h" + +int +ASN_NGAP_RepetitionPeriod_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_ASN_NGAP_RepetitionPeriod_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_ASN_NGAP_RepetitionPeriod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RepetitionPeriod = { + "RepetitionPeriod", + "RepetitionPeriod", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1, + sizeof(asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RepetitionPeriod_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_RepetitionPeriod_constr_1, ASN_NGAP_RepetitionPeriod_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RepetitionPeriod.h b/src/asn/ngap/ASN_NGAP_RepetitionPeriod.h new file mode 100644 index 0000000..62070f6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RepetitionPeriod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RepetitionPeriod_H_ +#define _ASN_NGAP_RepetitionPeriod_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RepetitionPeriod */ +typedef long ASN_NGAP_RepetitionPeriod_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_RepetitionPeriod_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RepetitionPeriod; +asn_struct_free_f ASN_NGAP_RepetitionPeriod_free; +asn_struct_print_f ASN_NGAP_RepetitionPeriod_print; +asn_constr_check_f ASN_NGAP_RepetitionPeriod_constraint; +ber_type_decoder_f ASN_NGAP_RepetitionPeriod_decode_ber; +der_type_encoder_f ASN_NGAP_RepetitionPeriod_encode_der; +xer_type_decoder_f ASN_NGAP_RepetitionPeriod_decode_xer; +xer_type_encoder_f ASN_NGAP_RepetitionPeriod_encode_xer; +per_type_decoder_f ASN_NGAP_RepetitionPeriod_decode_uper; +per_type_encoder_f ASN_NGAP_RepetitionPeriod_encode_uper; +per_type_decoder_f ASN_NGAP_RepetitionPeriod_decode_aper; +per_type_encoder_f ASN_NGAP_RepetitionPeriod_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RepetitionPeriod_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportAmountMDT.c b/src/asn/ngap/ASN_NGAP_ReportAmountMDT.c new file mode 100644 index 0000000..be25a13 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportAmountMDT.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportAmountMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ReportAmountMDT_specs_1 = { + asn_MAP_ASN_NGAP_ReportAmountMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_ReportAmountMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportAmountMDT = { + "ReportAmountMDT", + "ReportAmountMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportAmountMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReportAmountMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ReportAmountMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportAmountMDT.h b/src/asn/ngap/ASN_NGAP_ReportAmountMDT.h new file mode 100644 index 0000000..e80fbeb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportAmountMDT.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportAmountMDT_H_ +#define _ASN_NGAP_ReportAmountMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportAmountMDT { + ASN_NGAP_ReportAmountMDT_r1 = 0, + ASN_NGAP_ReportAmountMDT_r2 = 1, + ASN_NGAP_ReportAmountMDT_r4 = 2, + ASN_NGAP_ReportAmountMDT_r8 = 3, + ASN_NGAP_ReportAmountMDT_r16 = 4, + ASN_NGAP_ReportAmountMDT_r32 = 5, + ASN_NGAP_ReportAmountMDT_r64 = 6, + ASN_NGAP_ReportAmountMDT_rinfinity = 7 +} e_ASN_NGAP_ReportAmountMDT; + +/* ASN_NGAP_ReportAmountMDT */ +typedef long ASN_NGAP_ReportAmountMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportAmountMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportAmountMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportAmountMDT_specs_1; +asn_struct_free_f ASN_NGAP_ReportAmountMDT_free; +asn_struct_print_f ASN_NGAP_ReportAmountMDT_print; +asn_constr_check_f ASN_NGAP_ReportAmountMDT_constraint; +ber_type_decoder_f ASN_NGAP_ReportAmountMDT_decode_ber; +der_type_encoder_f ASN_NGAP_ReportAmountMDT_encode_der; +xer_type_decoder_f ASN_NGAP_ReportAmountMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_ReportAmountMDT_encode_xer; +per_type_decoder_f ASN_NGAP_ReportAmountMDT_decode_uper; +per_type_encoder_f ASN_NGAP_ReportAmountMDT_encode_uper; +per_type_decoder_f ASN_NGAP_ReportAmountMDT_decode_aper; +per_type_encoder_f ASN_NGAP_ReportAmountMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportAmountMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportArea.c b/src/asn/ngap/ASN_NGAP_ReportArea.c new file mode 100644 index 0000000..b1df923 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportArea.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportArea.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_ReportArea_value2enum_1[] = { + { 0, 4, "cell" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ReportArea_enum2value_1[] = { + 0 /* cell(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportArea_specs_1 = { + asn_MAP_ASN_NGAP_ReportArea_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_ReportArea_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportArea = { + "ReportArea", + "ReportArea", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ReportArea_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReportArea_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportArea_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportArea_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportArea_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportArea_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReportArea_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ReportArea_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportArea.h b/src/asn/ngap/ASN_NGAP_ReportArea.h new file mode 100644 index 0000000..558408b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportArea.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportArea_H_ +#define _ASN_NGAP_ReportArea_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportArea { + ASN_NGAP_ReportArea_cell = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ReportArea; + +/* ASN_NGAP_ReportArea */ +typedef long ASN_NGAP_ReportArea_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportArea_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportArea; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportArea_specs_1; +asn_struct_free_f ASN_NGAP_ReportArea_free; +asn_struct_print_f ASN_NGAP_ReportArea_print; +asn_constr_check_f ASN_NGAP_ReportArea_constraint; +ber_type_decoder_f ASN_NGAP_ReportArea_decode_ber; +der_type_encoder_f ASN_NGAP_ReportArea_encode_der; +xer_type_decoder_f ASN_NGAP_ReportArea_decode_xer; +xer_type_encoder_f ASN_NGAP_ReportArea_encode_xer; +per_type_decoder_f ASN_NGAP_ReportArea_decode_uper; +per_type_encoder_f ASN_NGAP_ReportArea_encode_uper; +per_type_decoder_f ASN_NGAP_ReportArea_decode_aper; +per_type_encoder_f ASN_NGAP_ReportArea_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportArea_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportCharacteristics.c b/src/asn/ngap/ASN_NGAP_ReportCharacteristics.c new file mode 100644 index 0000000..a99053b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportCharacteristics.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportCharacteristics.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ReportCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportCharacteristics = { + "ReportCharacteristics", + "ReportCharacteristics", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportCharacteristics_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReportCharacteristics_constr_1, ASN_NGAP_ReportCharacteristics_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportCharacteristics.h b/src/asn/ngap/ASN_NGAP_ReportCharacteristics.h new file mode 100644 index 0000000..2c67fd2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportCharacteristics.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportCharacteristics_H_ +#define _ASN_NGAP_ReportCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_ReportCharacteristics */ +typedef BIT_STRING_t ASN_NGAP_ReportCharacteristics_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportCharacteristics_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportCharacteristics; +asn_struct_free_f ASN_NGAP_ReportCharacteristics_free; +asn_struct_print_f ASN_NGAP_ReportCharacteristics_print; +asn_constr_check_f ASN_NGAP_ReportCharacteristics_constraint; +ber_type_decoder_f ASN_NGAP_ReportCharacteristics_decode_ber; +der_type_encoder_f ASN_NGAP_ReportCharacteristics_encode_der; +xer_type_decoder_f ASN_NGAP_ReportCharacteristics_decode_xer; +xer_type_encoder_f ASN_NGAP_ReportCharacteristics_encode_xer; +per_type_decoder_f ASN_NGAP_ReportCharacteristics_decode_uper; +per_type_encoder_f ASN_NGAP_ReportCharacteristics_encode_uper; +per_type_decoder_f ASN_NGAP_ReportCharacteristics_decode_aper; +per_type_encoder_f ASN_NGAP_ReportCharacteristics_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportCharacteristics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.c b/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.c new file mode 100644 index 0000000..6046724 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportIntervalMDT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ReportIntervalMDT_specs_1 = { + asn_MAP_ASN_NGAP_ReportIntervalMDT_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_ReportIntervalMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportIntervalMDT = { + "ReportIntervalMDT", + "ReportIntervalMDT", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportIntervalMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReportIntervalMDT_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ReportIntervalMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.h b/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.h new file mode 100644 index 0000000..a2c4298 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportIntervalMDT.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportIntervalMDT_H_ +#define _ASN_NGAP_ReportIntervalMDT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportIntervalMDT { + ASN_NGAP_ReportIntervalMDT_ms120 = 0, + ASN_NGAP_ReportIntervalMDT_ms240 = 1, + ASN_NGAP_ReportIntervalMDT_ms480 = 2, + ASN_NGAP_ReportIntervalMDT_ms640 = 3, + ASN_NGAP_ReportIntervalMDT_ms1024 = 4, + ASN_NGAP_ReportIntervalMDT_ms2048 = 5, + ASN_NGAP_ReportIntervalMDT_ms5120 = 6, + ASN_NGAP_ReportIntervalMDT_ms10240 = 7, + ASN_NGAP_ReportIntervalMDT_min1 = 8, + ASN_NGAP_ReportIntervalMDT_min6 = 9, + ASN_NGAP_ReportIntervalMDT_min12 = 10, + ASN_NGAP_ReportIntervalMDT_min30 = 11, + ASN_NGAP_ReportIntervalMDT_min60 = 12 +} e_ASN_NGAP_ReportIntervalMDT; + +/* ASN_NGAP_ReportIntervalMDT */ +typedef long ASN_NGAP_ReportIntervalMDT_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportIntervalMDT_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportIntervalMDT; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportIntervalMDT_specs_1; +asn_struct_free_f ASN_NGAP_ReportIntervalMDT_free; +asn_struct_print_f ASN_NGAP_ReportIntervalMDT_print; +asn_constr_check_f ASN_NGAP_ReportIntervalMDT_constraint; +ber_type_decoder_f ASN_NGAP_ReportIntervalMDT_decode_ber; +der_type_encoder_f ASN_NGAP_ReportIntervalMDT_encode_der; +xer_type_decoder_f ASN_NGAP_ReportIntervalMDT_decode_xer; +xer_type_encoder_f ASN_NGAP_ReportIntervalMDT_encode_xer; +per_type_decoder_f ASN_NGAP_ReportIntervalMDT_decode_uper; +per_type_encoder_f ASN_NGAP_ReportIntervalMDT_encode_uper; +per_type_decoder_f ASN_NGAP_ReportIntervalMDT_decode_aper; +per_type_encoder_f ASN_NGAP_ReportIntervalMDT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportIntervalMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportType.c b/src/asn/ngap/ASN_NGAP_ReportType.c new file mode 100644 index 0000000..847f359 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportType.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportType.h" + +#include "ASN_NGAP_EventBasedReportingIEs.h" +#include "ASN_NGAP_PeriodicReportingIEs.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportType, choice.eventBasedReporting), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EventBasedReportingIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventBasedReporting" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportType, choice.periodicReporting), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PeriodicReportingIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicReporting" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportType, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ReportType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventBasedReporting */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicReporting */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ReportType_specs_1 = { + sizeof(struct ASN_NGAP_ReportType), + offsetof(struct ASN_NGAP_ReportType, _asn_ctx), + offsetof(struct ASN_NGAP_ReportType, present), + sizeof(((struct ASN_NGAP_ReportType *)0)->present), + asn_MAP_ASN_NGAP_ReportType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportType = { + "ReportType", + "ReportType", + &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_ASN_NGAP_ReportType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ReportType_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportType.h b/src/asn/ngap/ASN_NGAP_ReportType.h new file mode 100644 index 0000000..9d4e458 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportType_H_ +#define _ASN_NGAP_ReportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportType_PR { + ASN_NGAP_ReportType_PR_NOTHING, /* No components present */ + ASN_NGAP_ReportType_PR_eventBasedReporting, + ASN_NGAP_ReportType_PR_periodicReporting, + ASN_NGAP_ReportType_PR_choice_Extensions +} ASN_NGAP_ReportType_PR; + +/* Forward declarations */ +struct ASN_NGAP_EventBasedReportingIEs; +struct ASN_NGAP_PeriodicReportingIEs; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ReportType */ +typedef struct ASN_NGAP_ReportType { + ASN_NGAP_ReportType_PR present; + union ASN_NGAP_ReportType_u { + struct ASN_NGAP_EventBasedReportingIEs *eventBasedReporting; + struct ASN_NGAP_PeriodicReportingIEs *periodicReporting; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ReportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ReportType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportType_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.c b/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.c new file mode 100644 index 0000000..7adf5f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportingPeriodicity.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportingPeriodicity_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_ASN_NGAP_ReportingPeriodicity_value2enum_1[] = { + { 0, 4, "stop" }, + { 1, 6, "single" }, + { 2, 6, "ms1000" }, + { 3, 6, "ms2000" }, + { 4, 6, "ms5000" }, + { 5, 7, "ms10000" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ReportingPeriodicity_enum2value_1[] = { + 2, /* ms1000(2) */ + 5, /* ms10000(5) */ + 3, /* ms2000(3) */ + 4, /* ms5000(4) */ + 1, /* single(1) */ + 0 /* stop(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportingPeriodicity_specs_1 = { + asn_MAP_ASN_NGAP_ReportingPeriodicity_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ReportingPeriodicity_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_ASN_NGAP_ReportingPeriodicity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingPeriodicity = { + "ReportingPeriodicity", + "ReportingPeriodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1, + sizeof(asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ReportingPeriodicity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ReportingPeriodicity_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ReportingPeriodicity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.h b/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.h new file mode 100644 index 0000000..a7d89df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportingPeriodicity.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportingPeriodicity_H_ +#define _ASN_NGAP_ReportingPeriodicity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportingPeriodicity { + ASN_NGAP_ReportingPeriodicity_stop = 0, + ASN_NGAP_ReportingPeriodicity_single = 1, + ASN_NGAP_ReportingPeriodicity_ms1000 = 2, + ASN_NGAP_ReportingPeriodicity_ms2000 = 3, + ASN_NGAP_ReportingPeriodicity_ms5000 = 4, + ASN_NGAP_ReportingPeriodicity_ms10000 = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ReportingPeriodicity; + +/* ASN_NGAP_ReportingPeriodicity */ +typedef long ASN_NGAP_ReportingPeriodicity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportingPeriodicity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingPeriodicity; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ReportingPeriodicity_specs_1; +asn_struct_free_f ASN_NGAP_ReportingPeriodicity_free; +asn_struct_print_f ASN_NGAP_ReportingPeriodicity_print; +asn_constr_check_f ASN_NGAP_ReportingPeriodicity_constraint; +ber_type_decoder_f ASN_NGAP_ReportingPeriodicity_decode_ber; +der_type_encoder_f ASN_NGAP_ReportingPeriodicity_encode_der; +xer_type_decoder_f ASN_NGAP_ReportingPeriodicity_decode_xer; +xer_type_encoder_f ASN_NGAP_ReportingPeriodicity_encode_xer; +per_type_decoder_f ASN_NGAP_ReportingPeriodicity_decode_uper; +per_type_encoder_f ASN_NGAP_ReportingPeriodicity_encode_uper; +per_type_decoder_f ASN_NGAP_ReportingPeriodicity_decode_aper; +per_type_encoder_f ASN_NGAP_ReportingPeriodicity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportingPeriodicity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ReportingSystem.c b/src/asn/ngap/ASN_NGAP_ReportingSystem.c new file mode 100644 index 0000000..59914e7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportingSystem.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ReportingSystem.h" + +#include "ASN_NGAP_EUTRAN-ReportingSystemIEs.h" +#include "ASN_NGAP_NGRAN-ReportingSystemIEs.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportingSystem_constr_1 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_ASN_NGAP_ReportingSystem_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportingSystem, choice.eUTRAN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_ReportingSystemIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportingSystem, choice.nGRAN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_ReportingSystemIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ReportingSystem, choice.noReporting), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "noReporting" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ReportingSystem, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ReportingSystem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nGRAN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* noReporting */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ReportingSystem_specs_1 = { + sizeof(struct ASN_NGAP_ReportingSystem), + offsetof(struct ASN_NGAP_ReportingSystem, _asn_ctx), + offsetof(struct ASN_NGAP_ReportingSystem, present), + sizeof(((struct ASN_NGAP_ReportingSystem *)0)->present), + asn_MAP_ASN_NGAP_ReportingSystem_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingSystem = { + "ReportingSystem", + "ReportingSystem", + &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_ASN_NGAP_ReportingSystem_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ReportingSystem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_ReportingSystem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ReportingSystem.h b/src/asn/ngap/ASN_NGAP_ReportingSystem.h new file mode 100644 index 0000000..cfeaac0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ReportingSystem.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ReportingSystem_H_ +#define _ASN_NGAP_ReportingSystem_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ReportingSystem_PR { + ASN_NGAP_ReportingSystem_PR_NOTHING, /* No components present */ + ASN_NGAP_ReportingSystem_PR_eUTRAN, + ASN_NGAP_ReportingSystem_PR_nGRAN, + ASN_NGAP_ReportingSystem_PR_noReporting, + ASN_NGAP_ReportingSystem_PR_choice_Extensions +} ASN_NGAP_ReportingSystem_PR; + +/* Forward declarations */ +struct ASN_NGAP_EUTRAN_ReportingSystemIEs; +struct ASN_NGAP_NGRAN_ReportingSystemIEs; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ReportingSystem */ +typedef struct ASN_NGAP_ReportingSystem { + ASN_NGAP_ReportingSystem_PR present; + union ASN_NGAP_ReportingSystem_u { + struct ASN_NGAP_EUTRAN_ReportingSystemIEs *eUTRAN; + struct ASN_NGAP_NGRAN_ReportingSystemIEs *nGRAN; + NULL_t noReporting; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ReportingSystem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ReportingSystem; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ReportingSystem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ReportingSystem_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ReportingSystem_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ReportingSystem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RerouteNASRequest.c b/src/asn/ngap/ASN_NGAP_RerouteNASRequest.c new file mode 100644 index 0000000..d0850a3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RerouteNASRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RerouteNASRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RerouteNASRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RerouteNASRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RerouteNASRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RerouteNASRequest_specs_1 = { + sizeof(struct ASN_NGAP_RerouteNASRequest), + offsetof(struct ASN_NGAP_RerouteNASRequest, _asn_ctx), + asn_MAP_ASN_NGAP_RerouteNASRequest_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_ASN_NGAP_RerouteNASRequest = { + "RerouteNASRequest", + "RerouteNASRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RerouteNASRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RerouteNASRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RerouteNASRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RerouteNASRequest.h b/src/asn/ngap/ASN_NGAP_RerouteNASRequest.h new file mode 100644 index 0000000..69ded34 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RerouteNASRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RerouteNASRequest_H_ +#define _ASN_NGAP_RerouteNASRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RerouteNASRequest */ +typedef struct ASN_NGAP_RerouteNASRequest { + ASN_NGAP_ProtocolIE_Container_123P54_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RerouteNASRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RerouteNASRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RerouteNASRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RerouteNASRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RerouteNASRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ResetAll.c b/src/asn/ngap/ASN_NGAP_ResetAll.c new file mode 100644 index 0000000..65540d3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResetAll.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ResetAll.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ResetAll_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_ASN_NGAP_ResetAll_value2enum_1[] = { + { 0, 9, "reset-all" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ResetAll_enum2value_1[] = { + 0 /* reset-all(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ResetAll_specs_1 = { + asn_MAP_ASN_NGAP_ResetAll_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ResetAll_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_ASN_NGAP_ResetAll_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetAll = { + "ResetAll", + "ResetAll", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ResetAll_tags_1, + sizeof(asn_DEF_ASN_NGAP_ResetAll_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ResetAll_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ResetAll_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ResetAll_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ResetAll_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ResetAll_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ResetAll_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ResetAll.h b/src/asn/ngap/ASN_NGAP_ResetAll.h new file mode 100644 index 0000000..f8c4d70 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResetAll.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ResetAll_H_ +#define _ASN_NGAP_ResetAll_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ResetAll { + ASN_NGAP_ResetAll_reset_all = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ResetAll; + +/* ASN_NGAP_ResetAll */ +typedef long ASN_NGAP_ResetAll_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ResetAll_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetAll; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ResetAll_specs_1; +asn_struct_free_f ASN_NGAP_ResetAll_free; +asn_struct_print_f ASN_NGAP_ResetAll_print; +asn_constr_check_f ASN_NGAP_ResetAll_constraint; +ber_type_decoder_f ASN_NGAP_ResetAll_decode_ber; +der_type_encoder_f ASN_NGAP_ResetAll_encode_der; +xer_type_decoder_f ASN_NGAP_ResetAll_decode_xer; +xer_type_encoder_f ASN_NGAP_ResetAll_encode_xer; +per_type_decoder_f ASN_NGAP_ResetAll_decode_uper; +per_type_encoder_f ASN_NGAP_ResetAll_encode_uper; +per_type_decoder_f ASN_NGAP_ResetAll_decode_aper; +per_type_encoder_f ASN_NGAP_ResetAll_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ResetAll_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ResetType.c b/src/asn/ngap/ASN_NGAP_ResetType.c new file mode 100644 index 0000000..7f5f7d6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResetType.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ResetType.h" + +#include "ASN_NGAP_UE-associatedLogicalNG-connectionList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ResetType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ResetType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ResetType, choice.nG_Interface), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ResetAll, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nG-Interface" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ResetType, choice.partOfNG_Interface), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "partOfNG-Interface" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ResetType, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ResetType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nG-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* partOfNG-Interface */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ResetType_specs_1 = { + sizeof(struct ASN_NGAP_ResetType), + offsetof(struct ASN_NGAP_ResetType, _asn_ctx), + offsetof(struct ASN_NGAP_ResetType, present), + sizeof(((struct ASN_NGAP_ResetType *)0)->present), + asn_MAP_ASN_NGAP_ResetType_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetType = { + "ResetType", + "ResetType", + &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_ASN_NGAP_ResetType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ResetType_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResetType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ResetType.h b/src/asn/ngap/ASN_NGAP_ResetType.h new file mode 100644 index 0000000..840b20d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResetType.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ResetType_H_ +#define _ASN_NGAP_ResetType_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ResetAll.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ResetType_PR { + ASN_NGAP_ResetType_PR_NOTHING, /* No components present */ + ASN_NGAP_ResetType_PR_nG_Interface, + ASN_NGAP_ResetType_PR_partOfNG_Interface, + ASN_NGAP_ResetType_PR_choice_Extensions +} ASN_NGAP_ResetType_PR; + +/* Forward declarations */ +struct ASN_NGAP_UE_associatedLogicalNG_connectionList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ResetType */ +typedef struct ASN_NGAP_ResetType { + ASN_NGAP_ResetType_PR present; + union ASN_NGAP_ResetType_u { + ASN_NGAP_ResetAll_t nG_Interface; + struct ASN_NGAP_UE_associatedLogicalNG_connectionList *partOfNG_Interface; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ResetType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResetType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ResetType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ResetType_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ResetType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ResetType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.c b/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.c new file mode 100644 index 0000000..0a6f387 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ResourceStatusReportingSystem.h" + +#include "ASN_NGAP_EUTRAN-ReportingStatusIEs.h" +#include "ASN_NGAP_NGRAN-ReportingStatusIEs.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ResourceStatusReportingSystem_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem, choice.eUTRAN_ReportingStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAN_ReportingStatusIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAN-ReportingStatus" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem, choice.nGRAN_ReportingStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_ReportingStatusIEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRAN-ReportingStatus" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_ResourceStatusReportingSystem, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ResourceStatusReportingSystem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRAN-ReportingStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nGRAN-ReportingStatus */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_specs_1 = { + sizeof(struct ASN_NGAP_ResourceStatusReportingSystem), + offsetof(struct ASN_NGAP_ResourceStatusReportingSystem, _asn_ctx), + offsetof(struct ASN_NGAP_ResourceStatusReportingSystem, present), + sizeof(((struct ASN_NGAP_ResourceStatusReportingSystem *)0)->present), + asn_MAP_ASN_NGAP_ResourceStatusReportingSystem_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResourceStatusReportingSystem = { + "ResourceStatusReportingSystem", + "ResourceStatusReportingSystem", + &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_ASN_NGAP_ResourceStatusReportingSystem_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.h b/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.h new file mode 100644 index 0000000..0774dea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ResourceStatusReportingSystem.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ResourceStatusReportingSystem_H_ +#define _ASN_NGAP_ResourceStatusReportingSystem_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ResourceStatusReportingSystem_PR { + ASN_NGAP_ResourceStatusReportingSystem_PR_NOTHING, /* No components present */ + ASN_NGAP_ResourceStatusReportingSystem_PR_eUTRAN_ReportingStatus, + ASN_NGAP_ResourceStatusReportingSystem_PR_nGRAN_ReportingStatus, + ASN_NGAP_ResourceStatusReportingSystem_PR_choice_Extensions +} ASN_NGAP_ResourceStatusReportingSystem_PR; + +/* Forward declarations */ +struct ASN_NGAP_EUTRAN_ReportingStatusIEs; +struct ASN_NGAP_NGRAN_ReportingStatusIEs; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_ResourceStatusReportingSystem */ +typedef struct ASN_NGAP_ResourceStatusReportingSystem { + ASN_NGAP_ResourceStatusReportingSystem_PR present; + union ASN_NGAP_ResourceStatusReportingSystem_u { + struct ASN_NGAP_EUTRAN_ReportingStatusIEs *eUTRAN_ReportingStatus; + struct ASN_NGAP_NGRAN_ReportingStatusIEs *nGRAN_ReportingStatus; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ResourceStatusReportingSystem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ResourceStatusReportingSystem; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_ResourceStatusReportingSystem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ResourceStatusReportingSystem_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ResourceStatusReportingSystem_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ResourceStatusReportingSystem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.c b/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.c new file mode 100644 index 0000000..1589f4f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RetrieveUEInformation.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_RetrieveUEInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_RetrieveUEInformation, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_RetrieveUEInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RetrieveUEInformation_specs_1 = { + sizeof(struct ASN_NGAP_RetrieveUEInformation), + offsetof(struct ASN_NGAP_RetrieveUEInformation, _asn_ctx), + asn_MAP_ASN_NGAP_RetrieveUEInformation_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_ASN_NGAP_RetrieveUEInformation = { + "RetrieveUEInformation", + "RetrieveUEInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RetrieveUEInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_RetrieveUEInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_RetrieveUEInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.h b/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.h new file mode 100644 index 0000000..e740ff8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RetrieveUEInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RetrieveUEInformation_H_ +#define _ASN_NGAP_RetrieveUEInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RetrieveUEInformation */ +typedef struct ASN_NGAP_RetrieveUEInformation { + ASN_NGAP_ProtocolIE_Container_123P29_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_RetrieveUEInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RetrieveUEInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_RetrieveUEInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_RetrieveUEInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RetrieveUEInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_RoutingID.c b/src/asn/ngap/ASN_NGAP_RoutingID.c new file mode 100644 index 0000000..8614a6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RoutingID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_RoutingID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_RoutingID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RoutingID = { + "RoutingID", + "RoutingID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_RoutingID_tags_1, + sizeof(asn_DEF_ASN_NGAP_RoutingID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RoutingID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_RoutingID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_RoutingID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_RoutingID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_RoutingID.h b/src/asn/ngap/ASN_NGAP_RoutingID.h new file mode 100644 index 0000000..22d88e9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_RoutingID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_RoutingID_H_ +#define _ASN_NGAP_RoutingID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_RoutingID */ +typedef OCTET_STRING_t ASN_NGAP_RoutingID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_RoutingID; +asn_struct_free_f ASN_NGAP_RoutingID_free; +asn_struct_print_f ASN_NGAP_RoutingID_print; +asn_constr_check_f ASN_NGAP_RoutingID_constraint; +ber_type_decoder_f ASN_NGAP_RoutingID_decode_ber; +der_type_encoder_f ASN_NGAP_RoutingID_encode_der; +xer_type_decoder_f ASN_NGAP_RoutingID_decode_xer; +xer_type_encoder_f ASN_NGAP_RoutingID_encode_xer; +per_type_decoder_f ASN_NGAP_RoutingID_decode_uper; +per_type_encoder_f ASN_NGAP_RoutingID_encode_uper; +per_type_decoder_f ASN_NGAP_RoutingID_decode_aper; +per_type_encoder_f ASN_NGAP_RoutingID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_RoutingID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_S-NSSAI.c b/src/asn/ngap/ASN_NGAP_S-NSSAI.c new file mode 100644 index 0000000..9e74c0a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_S-NSSAI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_S-NSSAI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_S_NSSAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_S_NSSAI, sST), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SST, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sST" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_S_NSSAI, sD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SD, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sD" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_S_NSSAI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P310, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_S_NSSAI_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_S_NSSAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_S_NSSAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sST */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sD */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_S_NSSAI_specs_1 = { + sizeof(struct ASN_NGAP_S_NSSAI), + offsetof(struct ASN_NGAP_S_NSSAI, _asn_ctx), + asn_MAP_ASN_NGAP_S_NSSAI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_S_NSSAI_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_S_NSSAI = { + "S-NSSAI", + "S-NSSAI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_S_NSSAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_S_NSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_S_NSSAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_S_NSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_S_NSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_S_NSSAI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_S_NSSAI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_S_NSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_S-NSSAI.h b/src/asn/ngap/ASN_NGAP_S-NSSAI.h new file mode 100644 index 0000000..398feab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_S-NSSAI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_S_NSSAI_H_ +#define _ASN_NGAP_S_NSSAI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SST.h" +#include "ASN_NGAP_SD.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_S-NSSAI */ +typedef struct ASN_NGAP_S_NSSAI { + ASN_NGAP_SST_t sST; + ASN_NGAP_SD_t *sD; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_S_NSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_S_NSSAI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_S_NSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_S_NSSAI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_S_NSSAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SCTP-TLAs.c b/src/asn/ngap/ASN_NGAP_SCTP-TLAs.c new file mode 100644 index 0000000..d3ff8b1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SCTP-TLAs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SCTP-TLAs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_SCTP_TLAs_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_ASN_NGAP_SCTP_TLAs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SCTP_TLAs_specs_1 = { + sizeof(struct ASN_NGAP_SCTP_TLAs), + offsetof(struct ASN_NGAP_SCTP_TLAs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SCTP_TLAs = { + "SCTP-TLAs", + "SCTP-TLAs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1, + sizeof(asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SCTP_TLAs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SCTP_TLAs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SCTP_TLAs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SCTP_TLAs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SCTP-TLAs.h b/src/asn/ngap/ASN_NGAP_SCTP-TLAs.h new file mode 100644 index 0000000..217bff0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SCTP-TLAs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SCTP_TLAs_H_ +#define _ASN_NGAP_SCTP_TLAs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SCTP-TLAs */ +typedef struct ASN_NGAP_SCTP_TLAs { + A_SEQUENCE_OF(ASN_NGAP_TransportLayerAddress_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SCTP_TLAs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SCTP_TLAs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SCTP_TLAs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SCTP_TLAs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SCTP_TLAs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SCTP_TLAs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SD.c b/src/asn/ngap/ASN_NGAP_SD.c new file mode 100644 index 0000000..5835ca0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SD.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SD.h" + +int +ASN_NGAP_SD_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_ASN_NGAP_SD_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_ASN_NGAP_SD_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SD = { + "SD", + "SD", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_SD_tags_1, + sizeof(asn_DEF_ASN_NGAP_SD_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SD_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SD_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SD_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SD_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SD_constr_1, ASN_NGAP_SD_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SD.h b/src/asn/ngap/ASN_NGAP_SD.h new file mode 100644 index 0000000..920267b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SD.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SD_H_ +#define _ASN_NGAP_SD_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SD */ +typedef OCTET_STRING_t ASN_NGAP_SD_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SD_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SD; +asn_struct_free_f ASN_NGAP_SD_free; +asn_struct_print_f ASN_NGAP_SD_print; +asn_constr_check_f ASN_NGAP_SD_constraint; +ber_type_decoder_f ASN_NGAP_SD_decode_ber; +der_type_encoder_f ASN_NGAP_SD_encode_der; +xer_type_decoder_f ASN_NGAP_SD_decode_xer; +xer_type_encoder_f ASN_NGAP_SD_encode_xer; +per_type_decoder_f ASN_NGAP_SD_decode_uper; +per_type_encoder_f ASN_NGAP_SD_encode_uper; +per_type_decoder_f ASN_NGAP_SD_decode_aper; +per_type_encoder_f ASN_NGAP_SD_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SD_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.c b/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.c new file mode 100644 index 0000000..aa75dde --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SNPN-MobilityInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SNPN_MobilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SNPN_MobilityInformation, serving_NID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serving-NID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SNPN_MobilityInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P309, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SNPN_MobilityInformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SNPN_MobilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* serving-NID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SNPN_MobilityInformation_specs_1 = { + sizeof(struct ASN_NGAP_SNPN_MobilityInformation), + offsetof(struct ASN_NGAP_SNPN_MobilityInformation, _asn_ctx), + asn_MAP_ASN_NGAP_SNPN_MobilityInformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SNPN_MobilityInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation = { + "SNPN-MobilityInformation", + "SNPN-MobilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SNPN_MobilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SNPN_MobilityInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SNPN_MobilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.h b/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.h new file mode 100644 index 0000000..ac296c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SNPN-MobilityInformation.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SNPN_MobilityInformation_H_ +#define _ASN_NGAP_SNPN_MobilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SNPN-MobilityInformation */ +typedef struct ASN_NGAP_SNPN_MobilityInformation { + ASN_NGAP_NID_t serving_NID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SNPN_MobilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SNPN_MobilityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SNPN_MobilityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SNPN_MobilityInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SNPN_MobilityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.c b/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.c new file mode 100644 index 0000000..b21bb8d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SONConfigurationTransfer.h" + +#include "ASN_NGAP_XnTNLConfigurationInfo.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONConfigurationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer, targetRANNodeID_SON), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TargetRANNodeID_SON, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRANNodeID-SON" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer, sourceRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SourceRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONConfigurationTransfer, sONInformation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SONInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sONInformation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SONConfigurationTransfer, xnTNLConfigurationInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_XnTNLConfigurationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xnTNLConfigurationInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SONConfigurationTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P311, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SONConfigurationTransfer_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONConfigurationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRANNodeID-SON */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sourceRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sONInformation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* xnTNLConfigurationInfo */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONConfigurationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_SONConfigurationTransfer), + offsetof(struct ASN_NGAP_SONConfigurationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_SONConfigurationTransfer_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SONConfigurationTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONConfigurationTransfer = { + "SONConfigurationTransfer", + "SONConfigurationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONConfigurationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONConfigurationTransfer_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_SONConfigurationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.h b/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.h new file mode 100644 index 0000000..8598d09 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONConfigurationTransfer.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SONConfigurationTransfer_H_ +#define _ASN_NGAP_SONConfigurationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TargetRANNodeID-SON.h" +#include "ASN_NGAP_SourceRANNodeID.h" +#include "ASN_NGAP_SONInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_XnTNLConfigurationInfo; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SONConfigurationTransfer */ +typedef struct ASN_NGAP_SONConfigurationTransfer { + ASN_NGAP_TargetRANNodeID_SON_t targetRANNodeID_SON; + ASN_NGAP_SourceRANNodeID_t sourceRANNodeID; + ASN_NGAP_SONInformation_t sONInformation; + struct ASN_NGAP_XnTNLConfigurationInfo *xnTNLConfigurationInfo; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONConfigurationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONConfigurationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONConfigurationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONConfigurationTransfer_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SONConfigurationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SONInformation.c b/src/asn/ngap/ASN_NGAP_SONInformation.c new file mode 100644 index 0000000..0fb1115 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformation.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SONInformation.h" + +#include "ASN_NGAP_SONInformationReply.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformation_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SONInformation, choice.sONInformationRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SONInformationRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sONInformationRequest" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SONInformation, choice.sONInformationReply), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SONInformationReply, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sONInformationReply" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SONInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sONInformationRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sONInformationReply */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SONInformation_specs_1 = { + sizeof(struct ASN_NGAP_SONInformation), + offsetof(struct ASN_NGAP_SONInformation, _asn_ctx), + offsetof(struct ASN_NGAP_SONInformation, present), + sizeof(((struct ASN_NGAP_SONInformation *)0)->present), + asn_MAP_ASN_NGAP_SONInformation_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformation = { + "SONInformation", + "SONInformation", + &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_ASN_NGAP_SONInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_SONInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SONInformation.h b/src/asn/ngap/ASN_NGAP_SONInformation.h new file mode 100644 index 0000000..50ca412 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformation.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SONInformation_H_ +#define _ASN_NGAP_SONInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SONInformationRequest.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SONInformation_PR { + ASN_NGAP_SONInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_SONInformation_PR_sONInformationRequest, + ASN_NGAP_SONInformation_PR_sONInformationReply, + ASN_NGAP_SONInformation_PR_choice_Extensions +} ASN_NGAP_SONInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_SONInformationReply; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_SONInformation */ +typedef struct ASN_NGAP_SONInformation { + ASN_NGAP_SONInformation_PR present; + union ASN_NGAP_SONInformation_u { + ASN_NGAP_SONInformationRequest_t sONInformationRequest; + struct ASN_NGAP_SONInformationReply *sONInformationReply; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SONInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformation_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SONInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SONInformationReply.c b/src/asn/ngap/ASN_NGAP_SONInformationReply.c new file mode 100644 index 0000000..3e41859 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationReply.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SONInformationReply.h" + +#include "ASN_NGAP_XnTNLConfigurationInfo.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReply_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SONInformationReply, xnTNLConfigurationInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_XnTNLConfigurationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xnTNLConfigurationInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SONInformationReply, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P312, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SONInformationReply_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SONInformationReply_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformationReply_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xnTNLConfigurationInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReply_specs_1 = { + sizeof(struct ASN_NGAP_SONInformationReply), + offsetof(struct ASN_NGAP_SONInformationReply, _asn_ctx), + asn_MAP_ASN_NGAP_SONInformationReply_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SONInformationReply_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReply = { + "SONInformationReply", + "SONInformationReply", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SONInformationReply_tags_1, + sizeof(asn_DEF_ASN_NGAP_SONInformationReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReply_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONInformationReply_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONInformationReply_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONInformationReply_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SONInformationReply_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformationReply_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SONInformationReply.h b/src/asn/ngap/ASN_NGAP_SONInformationReply.h new file mode 100644 index 0000000..1a471e3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationReply.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SONInformationReply_H_ +#define _ASN_NGAP_SONInformationReply_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_XnTNLConfigurationInfo; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SONInformationReply */ +typedef struct ASN_NGAP_SONInformationReply { + struct ASN_NGAP_XnTNLConfigurationInfo *xnTNLConfigurationInfo; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformationReply_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReply; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SONInformationReply_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReply_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SONInformationReply_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SONInformationReport.c b/src/asn/ngap/ASN_NGAP_SONInformationReport.c new file mode 100644 index 0000000..c3a2c08 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationReport.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SONInformationReport.h" + +#include "ASN_NGAP_FailureIndication.h" +#include "ASN_NGAP_HOReport.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformationReport_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReport_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SONInformationReport, choice.failureIndicationInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FailureIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureIndicationInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SONInformationReport, choice.hOReportInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_HOReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hOReportInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SONInformationReport, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SONInformationReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureIndicationInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hOReportInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SONInformationReport_specs_1 = { + sizeof(struct ASN_NGAP_SONInformationReport), + offsetof(struct ASN_NGAP_SONInformationReport, _asn_ctx), + offsetof(struct ASN_NGAP_SONInformationReport, present), + sizeof(((struct ASN_NGAP_SONInformationReport *)0)->present), + asn_MAP_ASN_NGAP_SONInformationReport_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReport = { + "SONInformationReport", + "SONInformationReport", + &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_ASN_NGAP_SONInformationReport_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_SONInformationReport_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SONInformationReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SONInformationReport.h b/src/asn/ngap/ASN_NGAP_SONInformationReport.h new file mode 100644 index 0000000..9c8002b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationReport.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SONInformationReport_H_ +#define _ASN_NGAP_SONInformationReport_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SONInformationReport_PR { + ASN_NGAP_SONInformationReport_PR_NOTHING, /* No components present */ + ASN_NGAP_SONInformationReport_PR_failureIndicationInformation, + ASN_NGAP_SONInformationReport_PR_hOReportInformation, + ASN_NGAP_SONInformationReport_PR_choice_Extensions +} ASN_NGAP_SONInformationReport_PR; + +/* Forward declarations */ +struct ASN_NGAP_FailureIndication; +struct ASN_NGAP_HOReport; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_SONInformationReport */ +typedef struct ASN_NGAP_SONInformationReport { + ASN_NGAP_SONInformationReport_PR present; + union ASN_NGAP_SONInformationReport_u { + struct ASN_NGAP_FailureIndication *failureIndicationInformation; + struct ASN_NGAP_HOReport *hOReportInformation; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SONInformationReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationReport; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SONInformationReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SONInformationReport_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformationReport_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SONInformationReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SONInformationRequest.c b/src/asn/ngap/ASN_NGAP_SONInformationRequest.c new file mode 100644 index 0000000..1a19672 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationRequest.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SONInformationRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformationRequest_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_ASN_NGAP_SONInformationRequest_value2enum_1[] = { + { 0, 25, "xn-TNL-configuration-info" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_SONInformationRequest_enum2value_1[] = { + 0 /* xn-TNL-configuration-info(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SONInformationRequest_specs_1 = { + asn_MAP_ASN_NGAP_SONInformationRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_SONInformationRequest_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_ASN_NGAP_SONInformationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationRequest = { + "SONInformationRequest", + "SONInformationRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_SONInformationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_SONInformationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONInformationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SONInformationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SONInformationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SONInformationRequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SONInformationRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_SONInformationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SONInformationRequest.h b/src/asn/ngap/ASN_NGAP_SONInformationRequest.h new file mode 100644 index 0000000..4a6b343 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SONInformationRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SONInformationRequest_H_ +#define _ASN_NGAP_SONInformationRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SONInformationRequest { + ASN_NGAP_SONInformationRequest_xn_TNL_configuration_info = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SONInformationRequest; + +/* ASN_NGAP_SONInformationRequest */ +typedef long ASN_NGAP_SONInformationRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SONInformationRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SONInformationRequest; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SONInformationRequest_specs_1; +asn_struct_free_f ASN_NGAP_SONInformationRequest_free; +asn_struct_print_f ASN_NGAP_SONInformationRequest_print; +asn_constr_check_f ASN_NGAP_SONInformationRequest_constraint; +ber_type_decoder_f ASN_NGAP_SONInformationRequest_decode_ber; +der_type_encoder_f ASN_NGAP_SONInformationRequest_encode_der; +xer_type_decoder_f ASN_NGAP_SONInformationRequest_decode_xer; +xer_type_encoder_f ASN_NGAP_SONInformationRequest_encode_xer; +per_type_decoder_f ASN_NGAP_SONInformationRequest_decode_uper; +per_type_encoder_f ASN_NGAP_SONInformationRequest_encode_uper; +per_type_decoder_f ASN_NGAP_SONInformationRequest_decode_aper; +per_type_encoder_f ASN_NGAP_SONInformationRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SONInformationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.c b/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.c new file mode 100644 index 0000000..6fcfd13 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SRVCCOperationPossible.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_SRVCCOperationPossible_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_ASN_NGAP_SRVCCOperationPossible_value2enum_1[] = { + { 0, 8, "possible" }, + { 1, 11, "notPossible" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_SRVCCOperationPossible_enum2value_1[] = { + 1, /* notPossible(1) */ + 0 /* possible(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SRVCCOperationPossible_specs_1 = { + asn_MAP_ASN_NGAP_SRVCCOperationPossible_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_SRVCCOperationPossible_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_ASN_NGAP_SRVCCOperationPossible_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SRVCCOperationPossible = { + "SRVCCOperationPossible", + "SRVCCOperationPossible", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1, + sizeof(asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SRVCCOperationPossible_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SRVCCOperationPossible_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_SRVCCOperationPossible_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.h b/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.h new file mode 100644 index 0000000..7ef9fd2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SRVCCOperationPossible.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SRVCCOperationPossible_H_ +#define _ASN_NGAP_SRVCCOperationPossible_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SRVCCOperationPossible { + ASN_NGAP_SRVCCOperationPossible_possible = 0, + ASN_NGAP_SRVCCOperationPossible_notPossible = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SRVCCOperationPossible; + +/* ASN_NGAP_SRVCCOperationPossible */ +typedef long ASN_NGAP_SRVCCOperationPossible_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SRVCCOperationPossible_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SRVCCOperationPossible; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SRVCCOperationPossible_specs_1; +asn_struct_free_f ASN_NGAP_SRVCCOperationPossible_free; +asn_struct_print_f ASN_NGAP_SRVCCOperationPossible_print; +asn_constr_check_f ASN_NGAP_SRVCCOperationPossible_constraint; +ber_type_decoder_f ASN_NGAP_SRVCCOperationPossible_decode_ber; +der_type_encoder_f ASN_NGAP_SRVCCOperationPossible_encode_der; +xer_type_decoder_f ASN_NGAP_SRVCCOperationPossible_decode_xer; +xer_type_encoder_f ASN_NGAP_SRVCCOperationPossible_encode_xer; +per_type_decoder_f ASN_NGAP_SRVCCOperationPossible_decode_uper; +per_type_encoder_f ASN_NGAP_SRVCCOperationPossible_encode_uper; +per_type_decoder_f ASN_NGAP_SRVCCOperationPossible_decode_aper; +per_type_encoder_f ASN_NGAP_SRVCCOperationPossible_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SRVCCOperationPossible_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SST.c b/src/asn/ngap/ASN_NGAP_SST.c new file mode 100644 index 0000000..6260ae0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SST.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SST.h" + +int +ASN_NGAP_SST_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_ASN_NGAP_SST_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_ASN_NGAP_SST_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SST = { + "SST", + "SST", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_SST_tags_1, + sizeof(asn_DEF_ASN_NGAP_SST_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SST_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SST_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SST_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SST_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SST_constr_1, ASN_NGAP_SST_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SST.h b/src/asn/ngap/ASN_NGAP_SST.h new file mode 100644 index 0000000..b467ec7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SST.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SST_H_ +#define _ASN_NGAP_SST_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SST */ +typedef OCTET_STRING_t ASN_NGAP_SST_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SST_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SST; +asn_struct_free_f ASN_NGAP_SST_free; +asn_struct_print_f ASN_NGAP_SST_print; +asn_constr_check_f ASN_NGAP_SST_constraint; +ber_type_decoder_f ASN_NGAP_SST_decode_ber; +der_type_encoder_f ASN_NGAP_SST_encode_der; +xer_type_decoder_f ASN_NGAP_SST_decode_xer; +xer_type_encoder_f ASN_NGAP_SST_encode_xer; +per_type_decoder_f ASN_NGAP_SST_decode_uper; +per_type_encoder_f ASN_NGAP_SST_encode_uper; +per_type_decoder_f ASN_NGAP_SST_decode_aper; +per_type_encoder_f ASN_NGAP_SST_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SST_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.c b/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.c new file mode 100644 index 0000000..e570b75 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ScheduledCommunicationTime.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_ScheduledCommunicationTime_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_ScheduledCommunicationTime, dayofWeek), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_dayofWeek_constr_2, memb_ASN_NGAP_dayofWeek_constraint_1 }, + 0, 0, /* No default value */ + "dayofWeek" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_ScheduledCommunicationTime, timeofDayStart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_timeofDayStart_constr_3, memb_ASN_NGAP_timeofDayStart_constraint_1 }, + 0, 0, /* No default value */ + "timeofDayStart" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ScheduledCommunicationTime, timeofDayEnd), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_timeofDayEnd_constr_4, memb_ASN_NGAP_timeofDayEnd_constraint_1 }, + 0, 0, /* No default value */ + "timeofDayEnd" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ScheduledCommunicationTime, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P295, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ScheduledCommunicationTime_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_ScheduledCommunicationTime_specs_1 = { + sizeof(struct ASN_NGAP_ScheduledCommunicationTime), + offsetof(struct ASN_NGAP_ScheduledCommunicationTime, _asn_ctx), + asn_MAP_ASN_NGAP_ScheduledCommunicationTime_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ScheduledCommunicationTime_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime = { + "ScheduledCommunicationTime", + "ScheduledCommunicationTime", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1, + sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ScheduledCommunicationTime_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ScheduledCommunicationTime_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_ScheduledCommunicationTime_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.h b/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.h new file mode 100644 index 0000000..a78602a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ScheduledCommunicationTime.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ScheduledCommunicationTime_H_ +#define _ASN_NGAP_ScheduledCommunicationTime_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ScheduledCommunicationTime */ +typedef struct ASN_NGAP_ScheduledCommunicationTime { + BIT_STRING_t *dayofWeek; /* OPTIONAL */ + long *timeofDayStart; /* OPTIONAL */ + long *timeofDayEnd; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ScheduledCommunicationTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ScheduledCommunicationTime; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ScheduledCommunicationTime_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ScheduledCommunicationTime_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ScheduledCommunicationTime_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.c b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.c new file mode 100644 index 0000000..c4e06bf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecondaryRATDataUsageReport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P93, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATDataUsageReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReport_specs_1 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReport), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReport, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_SecondaryRATDataUsageReport = { + "SecondaryRATDataUsageReport", + "SecondaryRATDataUsageReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATDataUsageReport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATDataUsageReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.h b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.h new file mode 100644 index 0000000..546ea31 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecondaryRATDataUsageReport_H_ +#define _ASN_NGAP_SecondaryRATDataUsageReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SecondaryRATDataUsageReport */ +typedef struct ASN_NGAP_SecondaryRATDataUsageReport { + ASN_NGAP_ProtocolIE_Container_123P93_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATDataUsageReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecondaryRATDataUsageReport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.c b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.c new file mode 100644 index 0000000..87a4e96 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecondaryRATDataUsageReportTransfer.h" + +#include "ASN_NGAP_SecondaryRATUsageInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer, secondaryRATUsageInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecondaryRATUsageInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "secondaryRATUsageInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P297, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* secondaryRATUsageInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportTransfer_specs_1 = { + sizeof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer), + offsetof(struct ASN_NGAP_SecondaryRATDataUsageReportTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SecondaryRATDataUsageReportTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer = { + "SecondaryRATDataUsageReportTransfer", + "SecondaryRATDataUsageReportTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATDataUsageReportTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATDataUsageReportTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.h b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.h new file mode 100644 index 0000000..d171669 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATDataUsageReportTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecondaryRATDataUsageReportTransfer_H_ +#define _ASN_NGAP_SecondaryRATDataUsageReportTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SecondaryRATUsageInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SecondaryRATDataUsageReportTransfer */ +typedef struct ASN_NGAP_SecondaryRATDataUsageReportTransfer { + struct ASN_NGAP_SecondaryRATUsageInformation *secondaryRATUsageInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATDataUsageReportTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATDataUsageReportTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecondaryRATDataUsageReportTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.c b/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.c new file mode 100644 index 0000000..da79f25 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecondaryRATUsageInformation.h" + +#include "ASN_NGAP_PDUSessionUsageReport.h" +#include "ASN_NGAP_QoSFlowsUsageReportList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation, pDUSessionUsageReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionUsageReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionUsageReport" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation, qosFlowsUsageReportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QoSFlowsUsageReportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowsUsageReportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SecondaryRATUsageInformation, iE_Extension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P296, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extension" + }, +}; +static const int asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pDUSessionUsageReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qosFlowsUsageReportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_specs_1 = { + sizeof(struct ASN_NGAP_SecondaryRATUsageInformation), + offsetof(struct ASN_NGAP_SecondaryRATUsageInformation, _asn_ctx), + asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SecondaryRATUsageInformation_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation = { + "SecondaryRATUsageInformation", + "SecondaryRATUsageInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecondaryRATUsageInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.h b/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.h new file mode 100644 index 0000000..bbb2584 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecondaryRATUsageInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecondaryRATUsageInformation_H_ +#define _ASN_NGAP_SecondaryRATUsageInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionUsageReport; +struct ASN_NGAP_QoSFlowsUsageReportList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SecondaryRATUsageInformation */ +typedef struct ASN_NGAP_SecondaryRATUsageInformation { + struct ASN_NGAP_PDUSessionUsageReport *pDUSessionUsageReport; /* OPTIONAL */ + struct ASN_NGAP_QoSFlowsUsageReportList *qosFlowsUsageReportList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecondaryRATUsageInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecondaryRATUsageInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecondaryRATUsageInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecondaryRATUsageInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecondaryRATUsageInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecurityContext.c b/src/asn/ngap/ASN_NGAP_SecurityContext.c new file mode 100644 index 0000000..796758f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityContext.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecurityContext.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityContext_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityContext, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityContext, nextHopNH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityKey, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopNH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SecurityContext, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P298, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SecurityContext_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityContext_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityContext_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nextHopChainingCount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nextHopNH */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityContext_specs_1 = { + sizeof(struct ASN_NGAP_SecurityContext), + offsetof(struct ASN_NGAP_SecurityContext, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityContext_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SecurityContext_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityContext = { + "SecurityContext", + "SecurityContext", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityContext_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecurityContext_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityContext_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityContext_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityContext_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityContext_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityContext_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityContext_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecurityContext.h b/src/asn/ngap/ASN_NGAP_SecurityContext.h new file mode 100644 index 0000000..f79ac0b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityContext.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecurityContext_H_ +#define _ASN_NGAP_SecurityContext_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NextHopChainingCount.h" +#include "ASN_NGAP_SecurityKey.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SecurityContext */ +typedef struct ASN_NGAP_SecurityContext { + ASN_NGAP_NextHopChainingCount_t nextHopChainingCount; + ASN_NGAP_SecurityKey_t nextHopNH; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityContext_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityContext; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityContext_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityContext_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecurityContext_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecurityIndication.c b/src/asn/ngap/ASN_NGAP_SecurityIndication.c new file mode 100644 index 0000000..775bce2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityIndication.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecurityIndication.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication, integrityProtectionIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntegrityProtectionIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtectionIndication" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityIndication, confidentialityProtectionIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ConfidentialityProtectionIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidentialityProtectionIndication" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SecurityIndication, maximumIntegrityProtectedDataRate_UL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MaximumIntegrityProtectedDataRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maximumIntegrityProtectedDataRate-UL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SecurityIndication, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P299, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SecurityIndication_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integrityProtectionIndication */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* confidentialityProtectionIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maximumIntegrityProtectedDataRate-UL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityIndication_specs_1 = { + sizeof(struct ASN_NGAP_SecurityIndication), + offsetof(struct ASN_NGAP_SecurityIndication, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityIndication_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SecurityIndication_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityIndication = { + "SecurityIndication", + "SecurityIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecurityIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityIndication_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecurityIndication.h b/src/asn/ngap/ASN_NGAP_SecurityIndication.h new file mode 100644 index 0000000..2ddae9f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityIndication.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecurityIndication_H_ +#define _ASN_NGAP_SecurityIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntegrityProtectionIndication.h" +#include "ASN_NGAP_ConfidentialityProtectionIndication.h" +#include "ASN_NGAP_MaximumIntegrityProtectedDataRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SecurityIndication */ +typedef struct ASN_NGAP_SecurityIndication { + ASN_NGAP_IntegrityProtectionIndication_t integrityProtectionIndication; + ASN_NGAP_ConfidentialityProtectionIndication_t confidentialityProtectionIndication; + ASN_NGAP_MaximumIntegrityProtectedDataRate_t *maximumIntegrityProtectedDataRate_UL; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityIndication_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecurityIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecurityKey.c b/src/asn/ngap/ASN_NGAP_SecurityKey.c new file mode 100644 index 0000000..4052c37 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityKey.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecurityKey.h" + +int +ASN_NGAP_SecurityKey_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_ASN_NGAP_SecurityKey_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_ASN_NGAP_SecurityKey_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityKey = { + "SecurityKey", + "SecurityKey", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_SecurityKey_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecurityKey_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityKey_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityKey_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityKey_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityKey_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SecurityKey_constr_1, ASN_NGAP_SecurityKey_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecurityKey.h b/src/asn/ngap/ASN_NGAP_SecurityKey.h new file mode 100644 index 0000000..f342237 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityKey.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecurityKey_H_ +#define _ASN_NGAP_SecurityKey_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SecurityKey */ +typedef BIT_STRING_t ASN_NGAP_SecurityKey_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SecurityKey_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityKey; +asn_struct_free_f ASN_NGAP_SecurityKey_free; +asn_struct_print_f ASN_NGAP_SecurityKey_print; +asn_constr_check_f ASN_NGAP_SecurityKey_constraint; +ber_type_decoder_f ASN_NGAP_SecurityKey_decode_ber; +der_type_encoder_f ASN_NGAP_SecurityKey_encode_der; +xer_type_decoder_f ASN_NGAP_SecurityKey_decode_xer; +xer_type_encoder_f ASN_NGAP_SecurityKey_encode_xer; +per_type_decoder_f ASN_NGAP_SecurityKey_decode_uper; +per_type_encoder_f ASN_NGAP_SecurityKey_encode_uper; +per_type_decoder_f ASN_NGAP_SecurityKey_decode_aper; +per_type_encoder_f ASN_NGAP_SecurityKey_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecurityKey_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SecurityResult.c b/src/asn/ngap/ASN_NGAP_SecurityResult.c new file mode 100644 index 0000000..ea6302e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityResult.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SecurityResult.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityResult_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityResult, integrityProtectionResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IntegrityProtectionResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtectionResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SecurityResult, confidentialityProtectionResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ConfidentialityProtectionResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "confidentialityProtectionResult" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SecurityResult, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P300, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SecurityResult_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SecurityResult_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SecurityResult_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* integrityProtectionResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* confidentialityProtectionResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityResult_specs_1 = { + sizeof(struct ASN_NGAP_SecurityResult), + offsetof(struct ASN_NGAP_SecurityResult, _asn_ctx), + asn_MAP_ASN_NGAP_SecurityResult_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SecurityResult_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityResult = { + "SecurityResult", + "SecurityResult", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SecurityResult_tags_1, + sizeof(asn_DEF_ASN_NGAP_SecurityResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityResult_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SecurityResult_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SecurityResult_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SecurityResult_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SecurityResult_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SecurityResult_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SecurityResult.h b/src/asn/ngap/ASN_NGAP_SecurityResult.h new file mode 100644 index 0000000..d97c919 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SecurityResult.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SecurityResult_H_ +#define _ASN_NGAP_SecurityResult_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_IntegrityProtectionResult.h" +#include "ASN_NGAP_ConfidentialityProtectionResult.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SecurityResult */ +typedef struct ASN_NGAP_SecurityResult { + ASN_NGAP_IntegrityProtectionResult_t integrityProtectionResult; + ASN_NGAP_ConfidentialityProtectionResult_t confidentialityProtectionResult; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SecurityResult_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SecurityResult; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SecurityResult_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SecurityResult_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SecurityResult_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfig.c b/src/asn/ngap/ASN_NGAP_SensorMeasConfig.c new file mode 100644 index 0000000..b1942ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SensorMeasConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_SensorMeasConfig_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_ASN_NGAP_SensorMeasConfig_value2enum_1[] = { + { 0, 5, "setup" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_SensorMeasConfig_enum2value_1[] = { + 0 /* setup(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfig_specs_1 = { + asn_MAP_ASN_NGAP_SensorMeasConfig_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_SensorMeasConfig_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_ASN_NGAP_SensorMeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfig = { + "SensorMeasConfig", + "SensorMeasConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1, + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfig_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SensorMeasConfig_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_SensorMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfig.h b/src/asn/ngap/ASN_NGAP_SensorMeasConfig.h new file mode 100644 index 0000000..082d6e8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SensorMeasConfig_H_ +#define _ASN_NGAP_SensorMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SensorMeasConfig { + ASN_NGAP_SensorMeasConfig_setup = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SensorMeasConfig; + +/* ASN_NGAP_SensorMeasConfig */ +typedef long ASN_NGAP_SensorMeasConfig_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SensorMeasConfig_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfig; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfig_specs_1; +asn_struct_free_f ASN_NGAP_SensorMeasConfig_free; +asn_struct_print_f ASN_NGAP_SensorMeasConfig_print; +asn_constr_check_f ASN_NGAP_SensorMeasConfig_constraint; +ber_type_decoder_f ASN_NGAP_SensorMeasConfig_decode_ber; +der_type_encoder_f ASN_NGAP_SensorMeasConfig_encode_der; +xer_type_decoder_f ASN_NGAP_SensorMeasConfig_decode_xer; +xer_type_encoder_f ASN_NGAP_SensorMeasConfig_encode_xer; +per_type_decoder_f ASN_NGAP_SensorMeasConfig_decode_uper; +per_type_encoder_f ASN_NGAP_SensorMeasConfig_encode_uper; +per_type_decoder_f ASN_NGAP_SensorMeasConfig_decode_aper; +per_type_encoder_f ASN_NGAP_SensorMeasConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SensorMeasConfig_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.c b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.c new file mode 100644 index 0000000..6e574ab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SensorMeasConfigNameItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasConfigNameItem, sensorNameConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SensorNameConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorNameConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SensorMeasConfigNameItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P302, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sensorNameConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_specs_1 = { + sizeof(struct ASN_NGAP_SensorMeasConfigNameItem), + offsetof(struct ASN_NGAP_SensorMeasConfigNameItem, _asn_ctx), + asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SensorMeasConfigNameItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem = { + "SensorMeasConfigNameItem", + "SensorMeasConfigNameItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.h b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.h new file mode 100644 index 0000000..5295e5f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SensorMeasConfigNameItem_H_ +#define _ASN_NGAP_SensorMeasConfigNameItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SensorNameConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SensorMeasConfigNameItem */ +typedef struct ASN_NGAP_SensorMeasConfigNameItem { + ASN_NGAP_SensorNameConfig_t sensorNameConfig; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorMeasConfigNameItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SensorMeasConfigNameItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.c b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.c new file mode 100644 index 0000000..ab04f8f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SensorMeasConfigNameList.h" + +#include "ASN_NGAP_SensorMeasConfigNameItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SensorMeasConfigNameList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SensorMeasConfigNameItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameList_specs_1 = { + sizeof(struct ASN_NGAP_SensorMeasConfigNameList), + offsetof(struct ASN_NGAP_SensorMeasConfigNameList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameList = { + "SensorMeasConfigNameList", + "SensorMeasConfigNameList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1, + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasConfigNameList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SensorMeasConfigNameList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SensorMeasConfigNameList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SensorMeasConfigNameList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.h b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.h new file mode 100644 index 0000000..4eaa2ba --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasConfigNameList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SensorMeasConfigNameList_H_ +#define _ASN_NGAP_SensorMeasConfigNameList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SensorMeasConfigNameItem; + +/* ASN_NGAP_SensorMeasConfigNameList */ +typedef struct ASN_NGAP_SensorMeasConfigNameList { + A_SEQUENCE_OF(struct ASN_NGAP_SensorMeasConfigNameItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorMeasConfigNameList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasConfigNameList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SensorMeasConfigNameList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasConfigNameList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SensorMeasConfigNameList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SensorMeasConfigNameList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.c b/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.c new file mode 100644 index 0000000..1a0d9c0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SensorMeasurementConfiguration.h" + +#include "ASN_NGAP_SensorMeasConfigNameList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration, sensorMeasConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SensorMeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorMeasConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration, sensorMeasConfigNameList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SensorMeasConfigNameList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sensorMeasConfigNameList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SensorMeasurementConfiguration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P301, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sensorMeasConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sensorMeasConfigNameList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_specs_1 = { + sizeof(struct ASN_NGAP_SensorMeasurementConfiguration), + offsetof(struct ASN_NGAP_SensorMeasurementConfiguration, _asn_ctx), + asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SensorMeasurementConfiguration_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration = { + "SensorMeasurementConfiguration", + "SensorMeasurementConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1, + sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SensorMeasurementConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.h b/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.h new file mode 100644 index 0000000..f80fec0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorMeasurementConfiguration.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SensorMeasurementConfiguration_H_ +#define _ASN_NGAP_SensorMeasurementConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SensorMeasConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SensorMeasConfigNameList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SensorMeasurementConfiguration */ +typedef struct ASN_NGAP_SensorMeasurementConfiguration { + ASN_NGAP_SensorMeasConfig_t sensorMeasConfig; + struct ASN_NGAP_SensorMeasConfigNameList *sensorMeasConfigNameList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorMeasurementConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorMeasurementConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SensorMeasurementConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorMeasurementConfiguration_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SensorMeasurementConfiguration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SensorNameConfig.c b/src/asn/ngap/ASN_NGAP_SensorNameConfig.c new file mode 100644 index 0000000..b042f47 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorNameConfig.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SensorNameConfig.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.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_ASN_NGAP_uncompensatedBarometricConfig_constr_2 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_ASN_NGAP_ueSpeedConfig_constr_5 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_ASN_NGAP_ueOrientationConfig_constr_8 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_per_constraints_t asn_PER_type_ASN_NGAP_SensorNameConfig_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_ASN_NGAP_uncompensatedBarometricConfig_value2enum_2[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_uncompensatedBarometricConfig_enum2value_2[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_uncompensatedBarometricConfig_specs_2 = { + asn_MAP_ASN_NGAP_uncompensatedBarometricConfig_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_uncompensatedBarometricConfig_enum2value_2, /* 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_ASN_NGAP_uncompensatedBarometricConfig_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_ASN_NGAP_uncompensatedBarometricConfig_2 = { + "uncompensatedBarometricConfig", + "uncompensatedBarometricConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2, + sizeof(asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2) + /sizeof(asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2) + /sizeof(asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_uncompensatedBarometricConfig_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_uncompensatedBarometricConfig_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_ueSpeedConfig_value2enum_5[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ueSpeedConfig_enum2value_5[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ueSpeedConfig_specs_5 = { + asn_MAP_ASN_NGAP_ueSpeedConfig_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ueSpeedConfig_enum2value_5, /* 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_ASN_NGAP_ueSpeedConfig_tags_5[] = { + (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_ASN_NGAP_ueSpeedConfig_5 = { + "ueSpeedConfig", + "ueSpeedConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5, + sizeof(asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5) + /sizeof(asn_DEF_ASN_NGAP_ueSpeedConfig_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_ueSpeedConfig_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ueSpeedConfig_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_ueOrientationConfig_value2enum_8[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ueOrientationConfig_enum2value_8[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ueOrientationConfig_specs_8 = { + asn_MAP_ASN_NGAP_ueOrientationConfig_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ueOrientationConfig_enum2value_8, /* 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_ASN_NGAP_ueOrientationConfig_tags_8[] = { + (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_ASN_NGAP_ueOrientationConfig_8 = { + "ueOrientationConfig", + "ueOrientationConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8, + sizeof(asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8) + /sizeof(asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8) + /sizeof(asn_DEF_ASN_NGAP_ueOrientationConfig_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_ueOrientationConfig_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ueOrientationConfig_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorNameConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig, choice.uncompensatedBarometricConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uncompensatedBarometricConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig, choice.ueSpeedConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ueSpeedConfig_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueSpeedConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SensorNameConfig, choice.ueOrientationConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ueOrientationConfig_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueOrientationConfig" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SensorNameConfig, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SensorNameConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uncompensatedBarometricConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ueSpeedConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ueOrientationConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SensorNameConfig_specs_1 = { + sizeof(struct ASN_NGAP_SensorNameConfig), + offsetof(struct ASN_NGAP_SensorNameConfig, _asn_ctx), + offsetof(struct ASN_NGAP_SensorNameConfig, present), + sizeof(((struct ASN_NGAP_SensorNameConfig *)0)->present), + asn_MAP_ASN_NGAP_SensorNameConfig_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorNameConfig = { + "SensorNameConfig", + "SensorNameConfig", + &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_ASN_NGAP_SensorNameConfig_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_SensorNameConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_SensorNameConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SensorNameConfig.h b/src/asn/ngap/ASN_NGAP_SensorNameConfig.h new file mode 100644 index 0000000..af2dc17 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SensorNameConfig.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SensorNameConfig_H_ +#define _ASN_NGAP_SensorNameConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SensorNameConfig_PR { + ASN_NGAP_SensorNameConfig_PR_NOTHING, /* No components present */ + ASN_NGAP_SensorNameConfig_PR_uncompensatedBarometricConfig, + ASN_NGAP_SensorNameConfig_PR_ueSpeedConfig, + ASN_NGAP_SensorNameConfig_PR_ueOrientationConfig, + ASN_NGAP_SensorNameConfig_PR_choice_Extensions +} ASN_NGAP_SensorNameConfig_PR; +typedef enum ASN_NGAP_SensorNameConfig__uncompensatedBarometricConfig { + ASN_NGAP_SensorNameConfig__uncompensatedBarometricConfig_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SensorNameConfig__uncompensatedBarometricConfig; +typedef enum ASN_NGAP_SensorNameConfig__ueSpeedConfig { + ASN_NGAP_SensorNameConfig__ueSpeedConfig_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SensorNameConfig__ueSpeedConfig; +typedef enum ASN_NGAP_SensorNameConfig__ueOrientationConfig { + ASN_NGAP_SensorNameConfig__ueOrientationConfig_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SensorNameConfig__ueOrientationConfig; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_SensorNameConfig */ +typedef struct ASN_NGAP_SensorNameConfig { + ASN_NGAP_SensorNameConfig_PR present; + union ASN_NGAP_SensorNameConfig_u { + long uncompensatedBarometricConfig; + long ueSpeedConfig; + long ueOrientationConfig; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SensorNameConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_uncompensatedBarometricConfig_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ueSpeedConfig_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ueOrientationConfig_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SensorNameConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SensorNameConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SensorNameConfig_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SensorNameConfig_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SensorNameConfig_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SerialNumber.c b/src/asn/ngap/ASN_NGAP_SerialNumber.c new file mode 100644 index 0000000..8ddd00c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SerialNumber.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SerialNumber.h" + +int +ASN_NGAP_SerialNumber_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_ASN_NGAP_SerialNumber_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_ASN_NGAP_SerialNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SerialNumber = { + "SerialNumber", + "SerialNumber", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_SerialNumber_tags_1, + sizeof(asn_DEF_ASN_NGAP_SerialNumber_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SerialNumber_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SerialNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SerialNumber_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SerialNumber_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SerialNumber_constr_1, ASN_NGAP_SerialNumber_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SerialNumber.h b/src/asn/ngap/ASN_NGAP_SerialNumber.h new file mode 100644 index 0000000..25b3122 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SerialNumber.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SerialNumber_H_ +#define _ASN_NGAP_SerialNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SerialNumber */ +typedef BIT_STRING_t ASN_NGAP_SerialNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SerialNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SerialNumber; +asn_struct_free_f ASN_NGAP_SerialNumber_free; +asn_struct_print_f ASN_NGAP_SerialNumber_print; +asn_constr_check_f ASN_NGAP_SerialNumber_constraint; +ber_type_decoder_f ASN_NGAP_SerialNumber_decode_ber; +der_type_encoder_f ASN_NGAP_SerialNumber_encode_der; +xer_type_decoder_f ASN_NGAP_SerialNumber_decode_xer; +xer_type_encoder_f ASN_NGAP_SerialNumber_encode_xer; +per_type_decoder_f ASN_NGAP_SerialNumber_decode_uper; +per_type_encoder_f ASN_NGAP_SerialNumber_encode_uper; +per_type_decoder_f ASN_NGAP_SerialNumber_decode_aper; +per_type_encoder_f ASN_NGAP_SerialNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SerialNumber_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.c b/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.c new file mode 100644 index 0000000..26cdc47 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ServedGUAMIItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ServedGUAMIItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServedGUAMIItem, gUAMI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GUAMI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gUAMI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ServedGUAMIItem, backupAMFName), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "backupAMFName" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ServedGUAMIItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P303, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ServedGUAMIItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ServedGUAMIItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gUAMI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* backupAMFName */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIItem_specs_1 = { + sizeof(struct ASN_NGAP_ServedGUAMIItem), + offsetof(struct ASN_NGAP_ServedGUAMIItem, _asn_ctx), + asn_MAP_ASN_NGAP_ServedGUAMIItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ServedGUAMIItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIItem = { + "ServedGUAMIItem", + "ServedGUAMIItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ServedGUAMIItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_ServedGUAMIItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.h b/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.h new file mode 100644 index 0000000..a7ec9c9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServedGUAMIItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ServedGUAMIItem_H_ +#define _ASN_NGAP_ServedGUAMIItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GUAMI.h" +#include "ASN_NGAP_AMFName.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ServedGUAMIItem */ +typedef struct ASN_NGAP_ServedGUAMIItem { + ASN_NGAP_GUAMI_t gUAMI; + ASN_NGAP_AMFName_t *backupAMFName; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServedGUAMIItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServedGUAMIItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ServedGUAMIItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ServedGUAMIList.c b/src/asn/ngap/ASN_NGAP_ServedGUAMIList.c new file mode 100644 index 0000000..03b78fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServedGUAMIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ServedGUAMIList.h" + +#include "ASN_NGAP_ServedGUAMIItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ServedGUAMIList_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_ASN_NGAP_ServedGUAMIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServedGUAMIItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIList_specs_1 = { + sizeof(struct ASN_NGAP_ServedGUAMIList), + offsetof(struct ASN_NGAP_ServedGUAMIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIList = { + "ServedGUAMIList", + "ServedGUAMIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServedGUAMIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ServedGUAMIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ServedGUAMIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ServedGUAMIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ServedGUAMIList.h b/src/asn/ngap/ASN_NGAP_ServedGUAMIList.h new file mode 100644 index 0000000..3006f1a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServedGUAMIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ServedGUAMIList_H_ +#define _ASN_NGAP_ServedGUAMIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ServedGUAMIItem; + +/* ASN_NGAP_ServedGUAMIList */ +typedef struct ASN_NGAP_ServedGUAMIList { + A_SEQUENCE_OF(struct ASN_NGAP_ServedGUAMIItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServedGUAMIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServedGUAMIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ServedGUAMIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServedGUAMIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ServedGUAMIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ServedGUAMIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.c b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.c new file mode 100644 index 0000000..2bf2bd0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ServiceAreaInformation-Item.h" + +#include "ASN_NGAP_AllowedTACs.h" +#include "ASN_NGAP_NotAllowedTACs.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item, allowedTACs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AllowedTACs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedTACs" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item, notAllowedTACs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NotAllowedTACs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notAllowedTACs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_ServiceAreaInformation_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P304, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedTACs */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* notAllowedTACs */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_specs_1 = { + sizeof(struct ASN_NGAP_ServiceAreaInformation_Item), + offsetof(struct ASN_NGAP_ServiceAreaInformation_Item, _asn_ctx), + asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_ServiceAreaInformation_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item = { + "ServiceAreaInformation-Item", + "ServiceAreaInformation-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.h b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.h new file mode 100644 index 0000000..bd35fe7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ServiceAreaInformation_Item_H_ +#define _ASN_NGAP_ServiceAreaInformation_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_AllowedTACs; +struct ASN_NGAP_NotAllowedTACs; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_ServiceAreaInformation-Item */ +typedef struct ASN_NGAP_ServiceAreaInformation_Item { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + struct ASN_NGAP_AllowedTACs *allowedTACs; /* OPTIONAL */ + struct ASN_NGAP_NotAllowedTACs *notAllowedTACs; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServiceAreaInformation_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServiceAreaInformation_Item_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ServiceAreaInformation_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.c b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.c new file mode 100644 index 0000000..56f8005 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ServiceAreaInformation.h" + +#include "ASN_NGAP_ServiceAreaInformation-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_ServiceAreaInformation_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_ASN_NGAP_ServiceAreaInformation_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_ServiceAreaInformation_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_specs_1 = { + sizeof(struct ASN_NGAP_ServiceAreaInformation), + offsetof(struct ASN_NGAP_ServiceAreaInformation, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation = { + "ServiceAreaInformation", + "ServiceAreaInformation", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceAreaInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ServiceAreaInformation_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_ServiceAreaInformation_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_ServiceAreaInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.h b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.h new file mode 100644 index 0000000..58391b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceAreaInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ServiceAreaInformation_H_ +#define _ASN_NGAP_ServiceAreaInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ServiceAreaInformation_Item; + +/* ASN_NGAP_ServiceAreaInformation */ +typedef struct ASN_NGAP_ServiceAreaInformation { + A_SEQUENCE_OF(struct ASN_NGAP_ServiceAreaInformation_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_ServiceAreaInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceAreaInformation; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_ServiceAreaInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_ServiceAreaInformation_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ServiceAreaInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ServiceAreaInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ServiceType.c b/src/asn/ngap/ASN_NGAP_ServiceType.c new file mode 100644 index 0000000..075fd4e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceType.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ServiceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ServiceType_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_ASN_NGAP_ServiceType_value2enum_1[] = { + { 0, 9, "streaming" }, + { 1, 4, "mTSI" }, + { 2, 2, "vR" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ServiceType_enum2value_1[] = { + 1, /* mTSI(1) */ + 0, /* streaming(0) */ + 2 /* vR(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ServiceType_specs_1 = { + asn_MAP_ASN_NGAP_ServiceType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ServiceType_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_ASN_NGAP_ServiceType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceType = { + "ServiceType", + "ServiceType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ServiceType_tags_1, + sizeof(asn_DEF_ASN_NGAP_ServiceType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ServiceType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ServiceType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ServiceType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ServiceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ServiceType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ServiceType.h b/src/asn/ngap/ASN_NGAP_ServiceType.h new file mode 100644 index 0000000..082d4a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ServiceType.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ServiceType_H_ +#define _ASN_NGAP_ServiceType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ServiceType { + ASN_NGAP_ServiceType_streaming = 0, + ASN_NGAP_ServiceType_mTSI = 1, + ASN_NGAP_ServiceType_vR = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ServiceType; + +/* ASN_NGAP_ServiceType */ +typedef long ASN_NGAP_ServiceType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ServiceType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ServiceType; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ServiceType_specs_1; +asn_struct_free_f ASN_NGAP_ServiceType_free; +asn_struct_print_f ASN_NGAP_ServiceType_print; +asn_constr_check_f ASN_NGAP_ServiceType_constraint; +ber_type_decoder_f ASN_NGAP_ServiceType_decode_ber; +der_type_encoder_f ASN_NGAP_ServiceType_encode_der; +xer_type_decoder_f ASN_NGAP_ServiceType_decode_xer; +xer_type_encoder_f ASN_NGAP_ServiceType_encode_xer; +per_type_decoder_f ASN_NGAP_ServiceType_decode_uper; +per_type_encoder_f ASN_NGAP_ServiceType_encode_uper; +per_type_decoder_f ASN_NGAP_ServiceType_decode_aper; +per_type_encoder_f ASN_NGAP_ServiceType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ServiceType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c b/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c new file mode 100644 index 0000000..4cf2a54 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SgNB-UE-X2AP-ID.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID = { + "SgNB-UE-X2AP-ID", + "SgNB-UE-X2AP-ID", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SgNB_UE_X2AP_ID_constr_1, ASN_NGAP_SgNB_UE_X2AP_ID_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_NGAP_SgNB_UE_X2AP_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h b/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h new file mode 100644 index 0000000..cb709c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SgNB-UE-X2AP-ID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SgNB_UE_X2AP_ID_H_ +#define _ASN_NGAP_SgNB_UE_X2AP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SgNB-UE-X2AP-ID */ +typedef unsigned long ASN_NGAP_SgNB_UE_X2AP_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SgNB_UE_X2AP_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SgNB_UE_X2AP_ID; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SgNB_UE_X2AP_ID_specs_1; +asn_struct_free_f ASN_NGAP_SgNB_UE_X2AP_ID_free; +asn_struct_print_f ASN_NGAP_SgNB_UE_X2AP_ID_print; +asn_constr_check_f ASN_NGAP_SgNB_UE_X2AP_ID_constraint; +ber_type_decoder_f ASN_NGAP_SgNB_UE_X2AP_ID_decode_ber; +der_type_encoder_f ASN_NGAP_SgNB_UE_X2AP_ID_encode_der; +xer_type_decoder_f ASN_NGAP_SgNB_UE_X2AP_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_SgNB_UE_X2AP_ID_encode_xer; +per_type_decoder_f ASN_NGAP_SgNB_UE_X2AP_ID_decode_uper; +per_type_encoder_f ASN_NGAP_SgNB_UE_X2AP_ID_encode_uper; +per_type_decoder_f ASN_NGAP_SgNB_UE_X2AP_ID_decode_aper; +per_type_encoder_f ASN_NGAP_SgNB_UE_X2AP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SgNB_UE_X2AP_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.c b/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.c new file mode 100644 index 0000000..985be3e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SharedNGU-MulticastTNLInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation, iP_MulticastAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iP-MulticastAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation, iP_SourceAddress), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iP-SourceAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation, gTP_TEID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GTP_TEID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTP-TEID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P305, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iP-MulticastAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iP-SourceAddress */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gTP-TEID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_specs_1 = { + sizeof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation), + offsetof(struct ASN_NGAP_SharedNGU_MulticastTNLInformation, _asn_ctx), + asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SharedNGU_MulticastTNLInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation = { + "SharedNGU-MulticastTNLInformation", + "SharedNGU-MulticastTNLInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.h b/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.h new file mode 100644 index 0000000..782a86a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SharedNGU-MulticastTNLInformation.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SharedNGU_MulticastTNLInformation_H_ +#define _ASN_NGAP_SharedNGU_MulticastTNLInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_GTP-TEID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SharedNGU-MulticastTNLInformation */ +typedef struct ASN_NGAP_SharedNGU_MulticastTNLInformation { + ASN_NGAP_TransportLayerAddress_t iP_MulticastAddress; + ASN_NGAP_TransportLayerAddress_t iP_SourceAddress; + ASN_NGAP_GTP_TEID_t gTP_TEID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SharedNGU_MulticastTNLInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SharedNGU_MulticastTNLInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SharedNGU_MulticastTNLInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SharedNGU_MulticastTNLInformation_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SharedNGU_MulticastTNLInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceOverloadItem.c b/src/asn/ngap/ASN_NGAP_SliceOverloadItem.c new file mode 100644 index 0000000..817c92c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceOverloadItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceOverloadItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceOverloadItem, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SliceOverloadItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P306, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SliceOverloadItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceOverloadItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceOverloadItem_specs_1 = { + sizeof(struct ASN_NGAP_SliceOverloadItem), + offsetof(struct ASN_NGAP_SliceOverloadItem, _asn_ctx), + asn_MAP_ASN_NGAP_SliceOverloadItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SliceOverloadItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadItem = { + "SliceOverloadItem", + "SliceOverloadItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceOverloadItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceOverloadItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceOverloadItem.h b/src/asn/ngap/ASN_NGAP_SliceOverloadItem.h new file mode 100644 index 0000000..21faa78 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceOverloadItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceOverloadItem_H_ +#define _ASN_NGAP_SliceOverloadItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SliceOverloadItem */ +typedef struct ASN_NGAP_SliceOverloadItem { + ASN_NGAP_S_NSSAI_t s_NSSAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceOverloadItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceOverloadItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceOverloadItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceOverloadList.c b/src/asn/ngap/ASN_NGAP_SliceOverloadList.c new file mode 100644 index 0000000..e4fd59f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceOverloadList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceOverloadList.h" + +#include "ASN_NGAP_SliceOverloadItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceOverloadList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceOverloadItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceOverloadList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceOverloadList_specs_1 = { + sizeof(struct ASN_NGAP_SliceOverloadList), + offsetof(struct ASN_NGAP_SliceOverloadList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadList = { + "SliceOverloadList", + "SliceOverloadList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SliceOverloadList_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceOverloadList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceOverloadList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceOverloadList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceOverloadList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SliceOverloadList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SliceOverloadList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SliceOverloadList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceOverloadList.h b/src/asn/ngap/ASN_NGAP_SliceOverloadList.h new file mode 100644 index 0000000..8b84c94 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceOverloadList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceOverloadList_H_ +#define _ASN_NGAP_SliceOverloadList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SliceOverloadItem; + +/* ASN_NGAP_SliceOverloadList */ +typedef struct ASN_NGAP_SliceOverloadList { + A_SEQUENCE_OF(struct ASN_NGAP_SliceOverloadItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceOverloadList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceOverloadList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceOverloadList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceOverloadList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceOverloadList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceOverloadList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportItem.c b/src/asn/ngap/ASN_NGAP_SliceSupportItem.c new file mode 100644 index 0000000..14f0a1c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceSupportItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportItem, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SliceSupportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P307, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SliceSupportItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceSupportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportItem_specs_1 = { + sizeof(struct ASN_NGAP_SliceSupportItem), + offsetof(struct ASN_NGAP_SliceSupportItem, _asn_ctx), + asn_MAP_ASN_NGAP_SliceSupportItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SliceSupportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportItem = { + "SliceSupportItem", + "SliceSupportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceSupportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceSupportItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceSupportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportItem.h b/src/asn/ngap/ASN_NGAP_SliceSupportItem.h new file mode 100644 index 0000000..75aed9b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceSupportItem_H_ +#define _ASN_NGAP_SliceSupportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SliceSupportItem */ +typedef struct ASN_NGAP_SliceSupportItem { + ASN_NGAP_S_NSSAI_t s_NSSAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceSupportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportList.c b/src/asn/ngap/ASN_NGAP_SliceSupportList.c new file mode 100644 index 0000000..f6d5baa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceSupportList.h" + +#include "ASN_NGAP_SliceSupportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceSupportList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceSupportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceSupportList_specs_1 = { + sizeof(struct ASN_NGAP_SliceSupportList), + offsetof(struct ASN_NGAP_SliceSupportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportList = { + "SliceSupportList", + "SliceSupportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SliceSupportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SliceSupportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SliceSupportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SliceSupportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportList.h b/src/asn/ngap/ASN_NGAP_SliceSupportList.h new file mode 100644 index 0000000..1c3bc41 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceSupportList_H_ +#define _ASN_NGAP_SliceSupportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SliceSupportItem; + +/* ASN_NGAP_SliceSupportList */ +typedef struct ASN_NGAP_SliceSupportList { + A_SEQUENCE_OF(struct ASN_NGAP_SliceSupportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceSupportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceSupportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceSupportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.c b/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.c new file mode 100644 index 0000000..63452cc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceSupportListQMC.h" + +#include "ASN_NGAP_SliceSupportQMC-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceSupportListQMC_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_ASN_NGAP_SliceSupportListQMC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SliceSupportQMC_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceSupportListQMC_specs_1 = { + sizeof(struct ASN_NGAP_SliceSupportListQMC), + offsetof(struct ASN_NGAP_SliceSupportListQMC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportListQMC = { + "SliceSupportListQMC", + "SliceSupportListQMC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportListQMC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SliceSupportListQMC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SliceSupportListQMC_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SliceSupportListQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.h b/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.h new file mode 100644 index 0000000..d39fefa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportListQMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceSupportListQMC_H_ +#define _ASN_NGAP_SliceSupportListQMC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SliceSupportQMC_Item; + +/* ASN_NGAP_SliceSupportListQMC */ +typedef struct ASN_NGAP_SliceSupportListQMC { + A_SEQUENCE_OF(struct ASN_NGAP_SliceSupportQMC_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportListQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportListQMC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SliceSupportListQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportListQMC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SliceSupportListQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceSupportListQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.c b/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.c new file mode 100644 index 0000000..b9c1691 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SliceSupportQMC-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportQMC_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SliceSupportQMC_Item, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SliceSupportQMC_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P308, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SliceSupportQMC_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SliceSupportQMC_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportQMC_Item_specs_1 = { + sizeof(struct ASN_NGAP_SliceSupportQMC_Item), + offsetof(struct ASN_NGAP_SliceSupportQMC_Item, _asn_ctx), + asn_MAP_ASN_NGAP_SliceSupportQMC_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SliceSupportQMC_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item = { + "SliceSupportQMC-Item", + "SliceSupportQMC-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SliceSupportQMC_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SliceSupportQMC_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SliceSupportQMC_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.h b/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.h new file mode 100644 index 0000000..f7d7683 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SliceSupportQMC-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SliceSupportQMC_Item_H_ +#define _ASN_NGAP_SliceSupportQMC_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SliceSupportQMC-Item */ +typedef struct ASN_NGAP_SliceSupportQMC_Item { + ASN_NGAP_S_NSSAI_t s_NSSAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SliceSupportQMC_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SliceSupportQMC_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SliceSupportQMC_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SliceSupportQMC_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SliceSupportQMC_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c new file mode 100644 index 0000000..ff47f9b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h" + +#include "ASN_NGAP_PDUSessionResourceInformationList.h" +#include "ASN_NGAP_E-RABInformationList.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, rRCContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rRCContainer" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, pDUSessionResourceInformationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PDUSessionResourceInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pDUSessionResourceInformationList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, e_RABInformationList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_E_RABInformationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e-RABInformationList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, targetCell_ID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCell-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, indexToRFSP), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IndexToRFSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "indexToRFSP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, uEHistoryInformation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEHistoryInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEHistoryInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P314, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_oms_1[] = { 1, 2, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rRCContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pDUSessionResourceInformationList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e-RABInformationList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* targetCell-ID */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* indexToRFSP */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* uEHistoryInformation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_specs_1 = { + sizeof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer), + offsetof(struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer, _asn_ctx), + asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer = { + "SourceNGRANNode-ToTargetNGRANNode-TransparentContainer", + "SourceNGRANNode-ToTargetNGRANNode-TransparentContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h new file mode 100644 index 0000000..682c4a2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_H_ +#define _ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RRCContainer.h" +#include "ASN_NGAP_NGRAN-CGI.h" +#include "ASN_NGAP_IndexToRFSP.h" +#include "ASN_NGAP_UEHistoryInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_PDUSessionResourceInformationList; +struct ASN_NGAP_E_RABInformationList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer */ +typedef struct ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer { + ASN_NGAP_RRCContainer_t rRCContainer; + struct ASN_NGAP_PDUSessionResourceInformationList *pDUSessionResourceInformationList; /* OPTIONAL */ + struct ASN_NGAP_E_RABInformationList *e_RABInformationList; /* OPTIONAL */ + ASN_NGAP_NGRAN_CGI_t targetCell_ID; + ASN_NGAP_IndexToRFSP_t *indexToRFSP; /* OPTIONAL */ + ASN_NGAP_UEHistoryInformation_t uEHistoryInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceNodeID.c b/src/asn/ngap/ASN_NGAP_SourceNodeID.c new file mode 100644 index 0000000..be13450 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceNodeID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceNodeID.h" + +#include "ASN_NGAP_GlobalGNB-ID.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SourceNodeID_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_ASN_NGAP_SourceNodeID_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SourceNodeID, choice.sourceengNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceengNB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_SourceNodeID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceNodeID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceengNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SourceNodeID_specs_1 = { + sizeof(struct ASN_NGAP_SourceNodeID), + offsetof(struct ASN_NGAP_SourceNodeID, _asn_ctx), + offsetof(struct ASN_NGAP_SourceNodeID, present), + sizeof(((struct ASN_NGAP_SourceNodeID *)0)->present), + asn_MAP_ASN_NGAP_SourceNodeID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNodeID = { + "SourceNodeID", + "SourceNodeID", + &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_ASN_NGAP_SourceNodeID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_SourceNodeID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceNodeID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceNodeID.h b/src/asn/ngap/ASN_NGAP_SourceNodeID.h new file mode 100644 index 0000000..1e6f992 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceNodeID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceNodeID_H_ +#define _ASN_NGAP_SourceNodeID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SourceNodeID_PR { + ASN_NGAP_SourceNodeID_PR_NOTHING, /* No components present */ + ASN_NGAP_SourceNodeID_PR_sourceengNB_ID, + ASN_NGAP_SourceNodeID_PR_choice_Extensions +} ASN_NGAP_SourceNodeID_PR; + +/* Forward declarations */ +struct ASN_NGAP_GlobalGNB_ID; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_SourceNodeID */ +typedef struct ASN_NGAP_SourceNodeID { + ASN_NGAP_SourceNodeID_PR present; + union ASN_NGAP_SourceNodeID_u { + struct ASN_NGAP_GlobalGNB_ID *sourceengNB_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceNodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceNodeID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_SourceNodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceNodeID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SourceNodeID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceNodeID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.c b/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.c new file mode 100644 index 0000000..3778c6b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceOfUEActivityBehaviourInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_SourceOfUEActivityBehaviourInformation_value2enum_1[] = { + { 0, 24, "subscription-information" }, + { 1, 10, "statistics" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_SourceOfUEActivityBehaviourInformation_enum2value_1[] = { + 1, /* statistics(1) */ + 0 /* subscription-information(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SourceOfUEActivityBehaviourInformation_specs_1 = { + asn_MAP_ASN_NGAP_SourceOfUEActivityBehaviourInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation = { + "SourceOfUEActivityBehaviourInformation", + "SourceOfUEActivityBehaviourInformation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SourceOfUEActivityBehaviourInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_SourceOfUEActivityBehaviourInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.h b/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.h new file mode 100644 index 0000000..3ca3660 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceOfUEActivityBehaviourInformation.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceOfUEActivityBehaviourInformation_H_ +#define _ASN_NGAP_SourceOfUEActivityBehaviourInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SourceOfUEActivityBehaviourInformation { + ASN_NGAP_SourceOfUEActivityBehaviourInformation_subscription_information = 0, + ASN_NGAP_SourceOfUEActivityBehaviourInformation_statistics = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SourceOfUEActivityBehaviourInformation; + +/* ASN_NGAP_SourceOfUEActivityBehaviourInformation */ +typedef long ASN_NGAP_SourceOfUEActivityBehaviourInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SourceOfUEActivityBehaviourInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceOfUEActivityBehaviourInformation; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SourceOfUEActivityBehaviourInformation_specs_1; +asn_struct_free_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_free; +asn_struct_print_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_print; +asn_constr_check_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_constraint; +ber_type_decoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_decode_ber; +der_type_encoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_encode_der; +xer_type_decoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_encode_xer; +per_type_decoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_decode_uper; +per_type_encoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_encode_uper; +per_type_decoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_decode_aper; +per_type_encoder_f ASN_NGAP_SourceOfUEActivityBehaviourInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceOfUEActivityBehaviourInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceRANNodeID.c b/src/asn/ngap/ASN_NGAP_SourceRANNodeID.c new file mode 100644 index 0000000..e2ce8fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceRANNodeID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceRANNodeID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceRANNodeID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceRANNodeID, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SourceRANNodeID, selectedTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SourceRANNodeID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P315, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SourceRANNodeID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceRANNodeID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceRANNodeID_specs_1 = { + sizeof(struct ASN_NGAP_SourceRANNodeID), + offsetof(struct ASN_NGAP_SourceRANNodeID, _asn_ctx), + asn_MAP_ASN_NGAP_SourceRANNodeID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SourceRANNodeID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceRANNodeID = { + "SourceRANNodeID", + "SourceRANNodeID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1, + sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceRANNodeID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceRANNodeID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceRANNodeID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceRANNodeID.h b/src/asn/ngap/ASN_NGAP_SourceRANNodeID.h new file mode 100644 index 0000000..c8a00fc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceRANNodeID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceRANNodeID_H_ +#define _ASN_NGAP_SourceRANNodeID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SourceRANNodeID */ +typedef struct ASN_NGAP_SourceRANNodeID { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + ASN_NGAP_TAI_t selectedTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceRANNodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceRANNodeID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceRANNodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceRANNodeID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceRANNodeID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.c b/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.c new file mode 100644 index 0000000..02cead0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceToTarget-AMFInformationReroute.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute, configuredNSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ConfiguredNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredNSSAI" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute, rejectedNSSAIinPLMN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RejectedNSSAIinPLMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedNSSAIinPLMN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute, rejectedNSSAIinTA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RejectedNSSAIinTA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rejectedNSSAIinTA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P316, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* configuredNSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rejectedNSSAIinPLMN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rejectedNSSAIinTA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_specs_1 = { + sizeof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute), + offsetof(struct ASN_NGAP_SourceToTarget_AMFInformationReroute, _asn_ctx), + asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SourceToTarget_AMFInformationReroute_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute = { + "SourceToTarget-AMFInformationReroute", + "SourceToTarget-AMFInformationReroute", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1, + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.h b/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.h new file mode 100644 index 0000000..8ea323a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceToTarget-AMFInformationReroute.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceToTarget_AMFInformationReroute_H_ +#define _ASN_NGAP_SourceToTarget_AMFInformationReroute_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ConfiguredNSSAI.h" +#include "ASN_NGAP_RejectedNSSAIinPLMN.h" +#include "ASN_NGAP_RejectedNSSAIinTA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SourceToTarget-AMFInformationReroute */ +typedef struct ASN_NGAP_SourceToTarget_AMFInformationReroute { + ASN_NGAP_ConfiguredNSSAI_t *configuredNSSAI; /* OPTIONAL */ + ASN_NGAP_RejectedNSSAIinPLMN_t *rejectedNSSAIinPLMN; /* OPTIONAL */ + ASN_NGAP_RejectedNSSAIinTA_t *rejectedNSSAIinTA; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SourceToTarget_AMFInformationReroute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_AMFInformationReroute; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SourceToTarget_AMFInformationReroute_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SourceToTarget_AMFInformationReroute_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceToTarget_AMFInformationReroute_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.c new file mode 100644 index 0000000..7bad9d6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SourceToTarget-TransparentContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer = { + "SourceToTarget-TransparentContainer", + "SourceToTarget-TransparentContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.h new file mode 100644 index 0000000..0daa6ab --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SourceToTarget-TransparentContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SourceToTarget_TransparentContainer_H_ +#define _ASN_NGAP_SourceToTarget_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SourceToTarget-TransparentContainer */ +typedef OCTET_STRING_t ASN_NGAP_SourceToTarget_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SourceToTarget_TransparentContainer; +asn_struct_free_f ASN_NGAP_SourceToTarget_TransparentContainer_free; +asn_struct_print_f ASN_NGAP_SourceToTarget_TransparentContainer_print; +asn_constr_check_f ASN_NGAP_SourceToTarget_TransparentContainer_constraint; +ber_type_decoder_f ASN_NGAP_SourceToTarget_TransparentContainer_decode_ber; +der_type_encoder_f ASN_NGAP_SourceToTarget_TransparentContainer_encode_der; +xer_type_decoder_f ASN_NGAP_SourceToTarget_TransparentContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_SourceToTarget_TransparentContainer_encode_xer; +per_type_decoder_f ASN_NGAP_SourceToTarget_TransparentContainer_decode_uper; +per_type_encoder_f ASN_NGAP_SourceToTarget_TransparentContainer_encode_uper; +per_type_decoder_f ASN_NGAP_SourceToTarget_TransparentContainer_decode_aper; +per_type_encoder_f ASN_NGAP_SourceToTarget_TransparentContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SourceToTarget_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.c b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.c new file mode 100644 index 0000000..a818ac3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SuccessfulHandoverReport-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item, successfulHOReportContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "successfulHOReportContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P313, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* successfulHOReportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_specs_1 = { + sizeof(struct ASN_NGAP_SuccessfulHandoverReport_Item), + offsetof(struct ASN_NGAP_SuccessfulHandoverReport_Item, _asn_ctx), + asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SuccessfulHandoverReport_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item = { + "SuccessfulHandoverReport-Item", + "SuccessfulHandoverReport-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.h b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.h new file mode 100644 index 0000000..2a38244 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReport-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SuccessfulHandoverReport_Item_H_ +#define _ASN_NGAP_SuccessfulHandoverReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SuccessfulHandoverReport-Item */ +typedef struct ASN_NGAP_SuccessfulHandoverReport_Item { + OCTET_STRING_t successfulHOReportContainer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SuccessfulHandoverReport_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReport_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReport_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SuccessfulHandoverReport_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.c b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.c new file mode 100644 index 0000000..95ea54f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SuccessfulHandoverReportList.h" + +#include "ASN_NGAP_SuccessfulHandoverReport-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SuccessfulHandoverReportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SuccessfulHandoverReport_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReportList_specs_1 = { + sizeof(struct ASN_NGAP_SuccessfulHandoverReportList), + offsetof(struct ASN_NGAP_SuccessfulHandoverReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReportList = { + "SuccessfulHandoverReportList", + "SuccessfulHandoverReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulHandoverReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SuccessfulHandoverReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SuccessfulHandoverReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SuccessfulHandoverReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.h b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.h new file mode 100644 index 0000000..53d6076 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulHandoverReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SuccessfulHandoverReportList_H_ +#define _ASN_NGAP_SuccessfulHandoverReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SuccessfulHandoverReport_Item; + +/* ASN_NGAP_SuccessfulHandoverReportList */ +typedef struct ASN_NGAP_SuccessfulHandoverReportList { + A_SEQUENCE_OF(struct ASN_NGAP_SuccessfulHandoverReport_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SuccessfulHandoverReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulHandoverReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SuccessfulHandoverReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulHandoverReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SuccessfulHandoverReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SuccessfulHandoverReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.c b/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.c new file mode 100644 index 0000000..7bbee92 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.c @@ -0,0 +1,1058 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SuccessfulOutcome.h" + +static const long asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate = 0; +static const long asn_VAL_1_ASN_NGAP_reject = 0; +static const long asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification = 66; +static const long asn_VAL_2_ASN_NGAP_reject = 0; +static const long asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease = 67; +static const long asn_VAL_3_ASN_NGAP_reject = 0; +static const long asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup = 68; +static const long asn_VAL_4_ASN_NGAP_reject = 0; +static const long asn_VAL_5_ASN_NGAP_id_DistributionSetup = 69; +static const long asn_VAL_5_ASN_NGAP_reject = 0; +static const long asn_VAL_6_ASN_NGAP_id_DistributionRelease = 70; +static const long asn_VAL_6_ASN_NGAP_reject = 0; +static const long asn_VAL_7_ASN_NGAP_id_HandoverCancel = 10; +static const long asn_VAL_7_ASN_NGAP_reject = 0; +static const long asn_VAL_8_ASN_NGAP_id_HandoverPreparation = 12; +static const long asn_VAL_8_ASN_NGAP_reject = 0; +static const long asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation = 13; +static const long asn_VAL_9_ASN_NGAP_reject = 0; +static const long asn_VAL_10_ASN_NGAP_id_InitialContextSetup = 14; +static const long asn_VAL_10_ASN_NGAP_reject = 0; +static const long asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation = 71; +static const long asn_VAL_11_ASN_NGAP_reject = 0; +static const long asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation = 72; +static const long asn_VAL_12_ASN_NGAP_reject = 0; +static const long asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate = 73; +static const long asn_VAL_13_ASN_NGAP_reject = 0; +static const long asn_VAL_14_ASN_NGAP_id_NGReset = 20; +static const long asn_VAL_14_ASN_NGAP_reject = 0; +static const long asn_VAL_15_ASN_NGAP_id_NGSetup = 21; +static const long asn_VAL_15_ASN_NGAP_reject = 0; +static const long asn_VAL_16_ASN_NGAP_id_PathSwitchRequest = 25; +static const long asn_VAL_16_ASN_NGAP_reject = 0; +static const long asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify = 26; +static const long asn_VAL_17_ASN_NGAP_reject = 0; +static const long asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication = 27; +static const long asn_VAL_18_ASN_NGAP_reject = 0; +static const long asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease = 28; +static const long asn_VAL_19_ASN_NGAP_reject = 0; +static const long asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup = 29; +static const long asn_VAL_20_ASN_NGAP_reject = 0; +static const long asn_VAL_21_ASN_NGAP_id_PWSCancel = 32; +static const long asn_VAL_21_ASN_NGAP_reject = 0; +static const long asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate = 35; +static const long asn_VAL_22_ASN_NGAP_reject = 0; +static const long asn_VAL_23_ASN_NGAP_id_UEContextModification = 40; +static const long asn_VAL_23_ASN_NGAP_reject = 0; +static const long asn_VAL_24_ASN_NGAP_id_UEContextRelease = 41; +static const long asn_VAL_24_ASN_NGAP_reject = 0; +static const long asn_VAL_25_ASN_NGAP_id_UEContextResume = 58; +static const long asn_VAL_25_ASN_NGAP_reject = 0; +static const long asn_VAL_26_ASN_NGAP_id_UEContextSuspend = 59; +static const long asn_VAL_26_ASN_NGAP_reject = 0; +static const long asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck = 43; +static const long asn_VAL_27_ASN_NGAP_reject = 0; +static const long asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping = 60; +static const long asn_VAL_28_ASN_NGAP_reject = 0; +static const long asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning = 51; +static const long asn_VAL_29_ASN_NGAP_reject = 0; +static const long asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication = 64; +static const long asn_VAL_30_ASN_NGAP_reject = 0; +static const long asn_VAL_31_ASN_NGAP_id_AMFStatusIndication = 1; +static const long asn_VAL_31_ASN_NGAP_ignore = 1; +static const long asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired = 75; +static const long asn_VAL_32_ASN_NGAP_reject = 0; +static const long asn_VAL_33_ASN_NGAP_id_CellTrafficTrace = 2; +static const long asn_VAL_33_ASN_NGAP_ignore = 1; +static const long asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication = 65; +static const long asn_VAL_34_ASN_NGAP_reject = 0; +static const long asn_VAL_35_ASN_NGAP_id_DeactivateTrace = 3; +static const long asn_VAL_35_ASN_NGAP_ignore = 1; +static const long asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport = 4; +static const long asn_VAL_36_ASN_NGAP_ignore = 1; +static const long asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport = 5; +static const long asn_VAL_37_ASN_NGAP_ignore = 1; +static const long asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer = 6; +static const long asn_VAL_38_ASN_NGAP_ignore = 1; +static const long asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer = 63; +static const long asn_VAL_39_ASN_NGAP_ignore = 1; +static const long asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer = 7; +static const long asn_VAL_40_ASN_NGAP_ignore = 1; +static const long asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer = 54; +static const long asn_VAL_41_ASN_NGAP_ignore = 1; +static const long asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport = 8; +static const long asn_VAL_42_ASN_NGAP_ignore = 1; +static const long asn_VAL_43_ASN_NGAP_id_ErrorIndication = 9; +static const long asn_VAL_43_ASN_NGAP_ignore = 1; +static const long asn_VAL_44_ASN_NGAP_id_HandoverNotification = 11; +static const long asn_VAL_44_ASN_NGAP_ignore = 1; +static const long asn_VAL_45_ASN_NGAP_id_HandoverSuccess = 61; +static const long asn_VAL_45_ASN_NGAP_ignore = 1; +static const long asn_VAL_46_ASN_NGAP_id_InitialUEMessage = 15; +static const long asn_VAL_46_ASN_NGAP_ignore = 1; +static const long asn_VAL_47_ASN_NGAP_id_LocationReport = 18; +static const long asn_VAL_47_ASN_NGAP_ignore = 1; +static const long asn_VAL_48_ASN_NGAP_id_LocationReportingControl = 16; +static const long asn_VAL_48_ASN_NGAP_ignore = 1; +static const long asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication = 17; +static const long asn_VAL_49_ASN_NGAP_ignore = 1; +static const long asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging = 74; +static const long asn_VAL_50_ASN_NGAP_ignore = 1; +static const long asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication = 19; +static const long asn_VAL_51_ASN_NGAP_ignore = 1; +static const long asn_VAL_52_ASN_NGAP_id_OverloadStart = 22; +static const long asn_VAL_52_ASN_NGAP_ignore = 1; +static const long asn_VAL_53_ASN_NGAP_id_OverloadStop = 23; +static const long asn_VAL_53_ASN_NGAP_reject = 0; +static const long asn_VAL_54_ASN_NGAP_id_Paging = 24; +static const long asn_VAL_54_ASN_NGAP_ignore = 1; +static const long asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify = 30; +static const long asn_VAL_55_ASN_NGAP_ignore = 1; +static const long asn_VAL_56_ASN_NGAP_id_PrivateMessage = 31; +static const long asn_VAL_56_ASN_NGAP_ignore = 1; +static const long asn_VAL_57_ASN_NGAP_id_PWSFailureIndication = 33; +static const long asn_VAL_57_ASN_NGAP_ignore = 1; +static const long asn_VAL_58_ASN_NGAP_id_PWSRestartIndication = 34; +static const long asn_VAL_58_ASN_NGAP_ignore = 1; +static const long asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication = 57; +static const long asn_VAL_59_ASN_NGAP_reject = 0; +static const long asn_VAL_60_ASN_NGAP_id_RerouteNASRequest = 36; +static const long asn_VAL_60_ASN_NGAP_reject = 0; +static const long asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation = 55; +static const long asn_VAL_61_ASN_NGAP_reject = 0; +static const long asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport = 37; +static const long asn_VAL_62_ASN_NGAP_ignore = 1; +static const long asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport = 52; +static const long asn_VAL_63_ASN_NGAP_ignore = 1; +static const long asn_VAL_64_ASN_NGAP_id_TraceFailureIndication = 38; +static const long asn_VAL_64_ASN_NGAP_ignore = 1; +static const long asn_VAL_65_ASN_NGAP_id_TraceStart = 39; +static const long asn_VAL_65_ASN_NGAP_ignore = 1; +static const long asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest = 42; +static const long asn_VAL_66_ASN_NGAP_ignore = 1; +static const long asn_VAL_67_ASN_NGAP_id_UEInformationTransfer = 56; +static const long asn_VAL_67_ASN_NGAP_reject = 0; +static const long asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication = 44; +static const long asn_VAL_68_ASN_NGAP_ignore = 1; +static const long asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease = 45; +static const long asn_VAL_69_ASN_NGAP_ignore = 1; +static const long asn_VAL_70_ASN_NGAP_id_UplinkNASTransport = 46; +static const long asn_VAL_70_ASN_NGAP_ignore = 1; +static const long asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport = 47; +static const long asn_VAL_71_ASN_NGAP_ignore = 1; +static const long asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer = 48; +static const long asn_VAL_72_ASN_NGAP_ignore = 1; +static const long asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer = 62; +static const long asn_VAL_73_ASN_NGAP_reject = 0; +static const long asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer = 49; +static const long asn_VAL_74_ASN_NGAP_ignore = 1; +static const long asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer = 53; +static const long asn_VAL_75_ASN_NGAP_ignore = 1; +static const long asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport = 50; +static const long asn_VAL_76_ASN_NGAP_ignore = 1; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_1_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_2_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_3_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_4_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_5_ASN_NGAP_id_DistributionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_5_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_6_ASN_NGAP_id_DistributionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_6_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancel }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancelAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_7_ASN_NGAP_id_HandoverCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_7_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCommand }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverPreparationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_8_ASN_NGAP_id_HandoverPreparation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_8_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_9_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_10_ASN_NGAP_id_InitialContextSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_10_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_11_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_12_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_13_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGReset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_14_ASN_NGAP_id_NGReset }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_14_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_15_ASN_NGAP_id_NGSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_15_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_16_ASN_NGAP_id_PathSwitchRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_16_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_17_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_18_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_19_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_20_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_21_ASN_NGAP_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_21_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_22_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_23_ASN_NGAP_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_23_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_24_ASN_NGAP_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_24_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_25_ASN_NGAP_id_UEContextResume }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_25_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_26_ASN_NGAP_id_UEContextSuspend }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_26_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_27_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_28_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_29_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_30_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_31_ASN_NGAP_id_AMFStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_31_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_32_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_CellTrafficTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_33_ASN_NGAP_id_CellTrafficTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_33_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_34_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DeactivateTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_35_ASN_NGAP_id_DeactivateTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_35_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_36_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_37_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_38_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_39_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_40_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_41_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_42_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_43_ASN_NGAP_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_43_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_44_ASN_NGAP_id_HandoverNotification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_44_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverSuccess }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_45_ASN_NGAP_id_HandoverSuccess }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_45_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialUEMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_46_ASN_NGAP_id_InitialUEMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_46_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_47_ASN_NGAP_id_LocationReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_47_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingControl }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_48_ASN_NGAP_id_LocationReportingControl }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_48_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_49_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastGroupPaging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_50_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NASNonDeliveryIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_51_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_52_ASN_NGAP_id_OverloadStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_52_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStop }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_53_ASN_NGAP_id_OverloadStop }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_53_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_54_ASN_NGAP_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_54_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_55_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_56_ASN_NGAP_id_PrivateMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_56_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_57_ASN_NGAP_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_57_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_58_ASN_NGAP_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_58_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_59_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RerouteNASRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_60_ASN_NGAP_id_RerouteNASRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_60_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RetrieveUEInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_61_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_62_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_63_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_64_ASN_NGAP_id_TraceFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_64_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_65_ASN_NGAP_id_TraceStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_65_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_66_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_67_ASN_NGAP_id_UEInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_67_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_68_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_69_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_70_ASN_NGAP_id_UplinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_70_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_71_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_72_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_73_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_74_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_75_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_76_ASN_NGAP_ignore } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1[] = { + { 76, 5, asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_ASN_NGAP_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_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.AMFConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.BroadcastSessionModificationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionModificationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.BroadcastSessionReleaseResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionReleaseResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.BroadcastSessionSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.DistributionSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DistributionSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.DistributionReleaseResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionReleaseResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DistributionReleaseResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.HandoverCancelAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCancelAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverCancelAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.HandoverCommand), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.HandoverRequestAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverRequestAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverRequestAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.InitialContextSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InitialContextSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.MulticastSessionActivationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionActivationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.MulticastSessionDeactivationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionDeactivationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.MulticastSessionUpdateResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionUpdateResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.NGResetAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGResetAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGResetAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.NGSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PathSwitchRequestAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PathSwitchRequestAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PDUSessionResourceModifyResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PDUSessionResourceModifyConfirm), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceModifyConfirm" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PDUSessionResourceReleaseResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceReleaseResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PDUSessionResourceSetupResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PDUSessionResourceSetupResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.PWSCancelResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PWSCancelResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PWSCancelResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.RANConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UEContextModificationResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UEContextReleaseComplete), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextReleaseComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextReleaseComplete" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UEContextResumeResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextResumeResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UEContextSuspendResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSuspendResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UERadioCapabilityCheckResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityCheckResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.UERadioCapabilityIDMappingResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UERadioCapabilityIDMappingResponse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome__value, choice.WriteReplaceWarningResponse), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WriteReplaceWarningResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "WriteReplaceWarningResponse" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 28 }, /* AMFConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 27 }, /* BroadcastSessionModificationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 26 }, /* BroadcastSessionReleaseResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 25 }, /* BroadcastSessionSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 24 }, /* DistributionSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 23 }, /* DistributionReleaseResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 22 }, /* HandoverCancelAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 21 }, /* HandoverCommand */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 20 }, /* HandoverRequestAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 19 }, /* InitialContextSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 18 }, /* MulticastSessionActivationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 17 }, /* MulticastSessionDeactivationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 16 }, /* MulticastSessionUpdateResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 15 }, /* NGResetAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 14 }, /* NGSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 15, -15, 13 }, /* PathSwitchRequestAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 16, -16, 12 }, /* PDUSessionResourceModifyResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 17, -17, 11 }, /* PDUSessionResourceModifyConfirm */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 18, -18, 10 }, /* PDUSessionResourceReleaseResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 19, -19, 9 }, /* PDUSessionResourceSetupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 20, -20, 8 }, /* PWSCancelResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 21, -21, 7 }, /* RANConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 22, -22, 6 }, /* UEContextModificationResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 23, -23, 5 }, /* UEContextReleaseComplete */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 24, -24, 4 }, /* UEContextResumeResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 25, -25, 3 }, /* UEContextSuspendResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 26, -26, 2 }, /* UERadioCapabilityCheckResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 27, -27, 1 }, /* UERadioCapabilityIDMappingResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 28, -28, 0 } /* WriteReplaceWarningResponse */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_4 = { + sizeof(struct ASN_NGAP_SuccessfulOutcome__value), + offsetof(struct ASN_NGAP_SuccessfulOutcome__value, _asn_ctx), + offsetof(struct ASN_NGAP_SuccessfulOutcome__value, present), + sizeof(((struct ASN_NGAP_SuccessfulOutcome__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_4, + 29, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_4, + 29, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProcedureCode, + 0, + { 0, &asn_PER_memb_ASN_NGAP_procedureCode_constr_2, memb_ASN_NGAP_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Criticality, + select_SuccessfulOutcome_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_value_4, + select_SuccessfulOutcome_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_4, memb_ASN_NGAP_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_SuccessfulOutcome_specs_1 = { + sizeof(struct ASN_NGAP_SuccessfulOutcome), + offsetof(struct ASN_NGAP_SuccessfulOutcome, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_SuccessfulOutcome = { + "SuccessfulOutcome", + "SuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1, + sizeof(asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.h b/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.h new file mode 100644 index 0000000..9134ab2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuccessfulOutcome.h @@ -0,0 +1,237 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SuccessfulOutcome_H_ +#define _ASN_NGAP_SuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProcedureCode.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include "ASN_NGAP_AMFConfigurationUpdate.h" +#include "ASN_NGAP_AMFConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_AMFConfigurationUpdateFailure.h" +#include "ASN_NGAP_BroadcastSessionModificationRequest.h" +#include "ASN_NGAP_BroadcastSessionModificationResponse.h" +#include "ASN_NGAP_BroadcastSessionModificationFailure.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequest.h" +#include "ASN_NGAP_BroadcastSessionReleaseResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupRequest.h" +#include "ASN_NGAP_BroadcastSessionSetupResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupFailure.h" +#include "ASN_NGAP_DistributionSetupRequest.h" +#include "ASN_NGAP_DistributionSetupResponse.h" +#include "ASN_NGAP_DistributionSetupFailure.h" +#include "ASN_NGAP_DistributionReleaseRequest.h" +#include "ASN_NGAP_DistributionReleaseResponse.h" +#include "ASN_NGAP_HandoverCancel.h" +#include "ASN_NGAP_HandoverCancelAcknowledge.h" +#include "ASN_NGAP_HandoverRequired.h" +#include "ASN_NGAP_HandoverCommand.h" +#include "ASN_NGAP_HandoverPreparationFailure.h" +#include "ASN_NGAP_HandoverRequest.h" +#include "ASN_NGAP_HandoverRequestAcknowledge.h" +#include "ASN_NGAP_HandoverFailure.h" +#include "ASN_NGAP_InitialContextSetupRequest.h" +#include "ASN_NGAP_InitialContextSetupResponse.h" +#include "ASN_NGAP_InitialContextSetupFailure.h" +#include "ASN_NGAP_MulticastSessionActivationRequest.h" +#include "ASN_NGAP_MulticastSessionActivationResponse.h" +#include "ASN_NGAP_MulticastSessionActivationFailure.h" +#include "ASN_NGAP_MulticastSessionDeactivationRequest.h" +#include "ASN_NGAP_MulticastSessionDeactivationResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateRequest.h" +#include "ASN_NGAP_MulticastSessionUpdateResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateFailure.h" +#include "ASN_NGAP_NGReset.h" +#include "ASN_NGAP_NGResetAcknowledge.h" +#include "ASN_NGAP_NGSetupRequest.h" +#include "ASN_NGAP_NGSetupResponse.h" +#include "ASN_NGAP_NGSetupFailure.h" +#include "ASN_NGAP_PathSwitchRequest.h" +#include "ASN_NGAP_PathSwitchRequestAcknowledge.h" +#include "ASN_NGAP_PathSwitchRequestFailure.h" +#include "ASN_NGAP_PDUSessionResourceModifyRequest.h" +#include "ASN_NGAP_PDUSessionResourceModifyResponse.h" +#include "ASN_NGAP_PDUSessionResourceModifyIndication.h" +#include "ASN_NGAP_PDUSessionResourceModifyConfirm.h" +#include "ASN_NGAP_PDUSessionResourceReleaseCommand.h" +#include "ASN_NGAP_PDUSessionResourceReleaseResponse.h" +#include "ASN_NGAP_PDUSessionResourceSetupRequest.h" +#include "ASN_NGAP_PDUSessionResourceSetupResponse.h" +#include "ASN_NGAP_PWSCancelRequest.h" +#include "ASN_NGAP_PWSCancelResponse.h" +#include "ASN_NGAP_RANConfigurationUpdate.h" +#include "ASN_NGAP_RANConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_RANConfigurationUpdateFailure.h" +#include "ASN_NGAP_UEContextModificationRequest.h" +#include "ASN_NGAP_UEContextModificationResponse.h" +#include "ASN_NGAP_UEContextModificationFailure.h" +#include "ASN_NGAP_UEContextReleaseCommand.h" +#include "ASN_NGAP_UEContextReleaseComplete.h" +#include "ASN_NGAP_UEContextResumeRequest.h" +#include "ASN_NGAP_UEContextResumeResponse.h" +#include "ASN_NGAP_UEContextResumeFailure.h" +#include "ASN_NGAP_UEContextSuspendRequest.h" +#include "ASN_NGAP_UEContextSuspendResponse.h" +#include "ASN_NGAP_UEContextSuspendFailure.h" +#include "ASN_NGAP_UERadioCapabilityCheckRequest.h" +#include "ASN_NGAP_UERadioCapabilityCheckResponse.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingRequest.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingResponse.h" +#include "ASN_NGAP_WriteReplaceWarningRequest.h" +#include "ASN_NGAP_WriteReplaceWarningResponse.h" +#include "ASN_NGAP_AMFCPRelocationIndication.h" +#include "ASN_NGAP_AMFStatusIndication.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequired.h" +#include "ASN_NGAP_CellTrafficTrace.h" +#include "ASN_NGAP_ConnectionEstablishmentIndication.h" +#include "ASN_NGAP_DeactivateTrace.h" +#include "ASN_NGAP_DownlinkNASTransport.h" +#include "ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_DownlinkRANConfigurationTransfer.h" +#include "ASN_NGAP_DownlinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_DownlinkRANStatusTransfer.h" +#include "ASN_NGAP_DownlinkRIMInformationTransfer.h" +#include "ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_ErrorIndication.h" +#include "ASN_NGAP_HandoverNotify.h" +#include "ASN_NGAP_HandoverSuccess.h" +#include "ASN_NGAP_InitialUEMessage.h" +#include "ASN_NGAP_LocationReport.h" +#include "ASN_NGAP_LocationReportingControl.h" +#include "ASN_NGAP_LocationReportingFailureIndication.h" +#include "ASN_NGAP_MulticastGroupPaging.h" +#include "ASN_NGAP_NASNonDeliveryIndication.h" +#include "ASN_NGAP_OverloadStart.h" +#include "ASN_NGAP_OverloadStop.h" +#include "ASN_NGAP_Paging.h" +#include "ASN_NGAP_PDUSessionResourceNotify.h" +#include "ASN_NGAP_PrivateMessage.h" +#include "ASN_NGAP_PWSFailureIndication.h" +#include "ASN_NGAP_PWSRestartIndication.h" +#include "ASN_NGAP_RANCPRelocationIndication.h" +#include "ASN_NGAP_RerouteNASRequest.h" +#include "ASN_NGAP_RetrieveUEInformation.h" +#include "ASN_NGAP_RRCInactiveTransitionReport.h" +#include "ASN_NGAP_SecondaryRATDataUsageReport.h" +#include "ASN_NGAP_TraceFailureIndication.h" +#include "ASN_NGAP_TraceStart.h" +#include "ASN_NGAP_UEContextReleaseRequest.h" +#include "ASN_NGAP_UEInformationTransfer.h" +#include "ASN_NGAP_UERadioCapabilityInfoIndication.h" +#include "ASN_NGAP_UETNLABindingReleaseRequest.h" +#include "ASN_NGAP_UplinkNASTransport.h" +#include "ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_UplinkRANConfigurationTransfer.h" +#include "ASN_NGAP_UplinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_UplinkRANStatusTransfer.h" +#include "ASN_NGAP_UplinkRIMInformationTransfer.h" +#include "ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SuccessfulOutcome__value_PR { + ASN_NGAP_SuccessfulOutcome__value_PR_NOTHING, /* No components present */ + ASN_NGAP_SuccessfulOutcome__value_PR_AMFConfigurationUpdateAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_BroadcastSessionModificationResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_BroadcastSessionReleaseResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_BroadcastSessionSetupResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_DistributionSetupResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_DistributionReleaseResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_HandoverCancelAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_HandoverCommand, + ASN_NGAP_SuccessfulOutcome__value_PR_HandoverRequestAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_InitialContextSetupResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_MulticastSessionActivationResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_MulticastSessionDeactivationResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_MulticastSessionUpdateResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_NGResetAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_NGSetupResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_PathSwitchRequestAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_PDUSessionResourceModifyResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_PDUSessionResourceModifyConfirm, + ASN_NGAP_SuccessfulOutcome__value_PR_PDUSessionResourceReleaseResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_PDUSessionResourceSetupResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_PWSCancelResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_RANConfigurationUpdateAcknowledge, + ASN_NGAP_SuccessfulOutcome__value_PR_UEContextModificationResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_UEContextReleaseComplete, + ASN_NGAP_SuccessfulOutcome__value_PR_UEContextResumeResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_UEContextSuspendResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_UERadioCapabilityCheckResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_UERadioCapabilityIDMappingResponse, + ASN_NGAP_SuccessfulOutcome__value_PR_WriteReplaceWarningResponse +} ASN_NGAP_SuccessfulOutcome__value_PR; + +/* ASN_NGAP_SuccessfulOutcome */ +typedef struct ASN_NGAP_SuccessfulOutcome { + ASN_NGAP_ProcedureCode_t procedureCode; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_SuccessfulOutcome__value { + ASN_NGAP_SuccessfulOutcome__value_PR present; + union ASN_NGAP_SuccessfulOutcome__ASN_NGAP_value_u { + ASN_NGAP_AMFConfigurationUpdateAcknowledge_t AMFConfigurationUpdateAcknowledge; + ASN_NGAP_BroadcastSessionModificationResponse_t BroadcastSessionModificationResponse; + ASN_NGAP_BroadcastSessionReleaseResponse_t BroadcastSessionReleaseResponse; + ASN_NGAP_BroadcastSessionSetupResponse_t BroadcastSessionSetupResponse; + ASN_NGAP_DistributionSetupResponse_t DistributionSetupResponse; + ASN_NGAP_DistributionReleaseResponse_t DistributionReleaseResponse; + ASN_NGAP_HandoverCancelAcknowledge_t HandoverCancelAcknowledge; + ASN_NGAP_HandoverCommand_t HandoverCommand; + ASN_NGAP_HandoverRequestAcknowledge_t HandoverRequestAcknowledge; + ASN_NGAP_InitialContextSetupResponse_t InitialContextSetupResponse; + ASN_NGAP_MulticastSessionActivationResponse_t MulticastSessionActivationResponse; + ASN_NGAP_MulticastSessionDeactivationResponse_t MulticastSessionDeactivationResponse; + ASN_NGAP_MulticastSessionUpdateResponse_t MulticastSessionUpdateResponse; + ASN_NGAP_NGResetAcknowledge_t NGResetAcknowledge; + ASN_NGAP_NGSetupResponse_t NGSetupResponse; + ASN_NGAP_PathSwitchRequestAcknowledge_t PathSwitchRequestAcknowledge; + ASN_NGAP_PDUSessionResourceModifyResponse_t PDUSessionResourceModifyResponse; + ASN_NGAP_PDUSessionResourceModifyConfirm_t PDUSessionResourceModifyConfirm; + ASN_NGAP_PDUSessionResourceReleaseResponse_t PDUSessionResourceReleaseResponse; + ASN_NGAP_PDUSessionResourceSetupResponse_t PDUSessionResourceSetupResponse; + ASN_NGAP_PWSCancelResponse_t PWSCancelResponse; + ASN_NGAP_RANConfigurationUpdateAcknowledge_t RANConfigurationUpdateAcknowledge; + ASN_NGAP_UEContextModificationResponse_t UEContextModificationResponse; + ASN_NGAP_UEContextReleaseComplete_t UEContextReleaseComplete; + ASN_NGAP_UEContextResumeResponse_t UEContextResumeResponse; + ASN_NGAP_UEContextSuspendResponse_t UEContextSuspendResponse; + ASN_NGAP_UERadioCapabilityCheckResponse_t UERadioCapabilityCheckResponse; + ASN_NGAP_UERadioCapabilityIDMappingResponse_t UERadioCapabilityIDMappingResponse; + ASN_NGAP_WriteReplaceWarningResponse_t WriteReplaceWarningResponse; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SuccessfulOutcome_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SupportedTAItem.c b/src/asn/ngap/ASN_NGAP_SupportedTAItem.c new file mode 100644 index 0000000..70e53fd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SupportedTAItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SupportedTAItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_SupportedTAItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem, tAC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_SupportedTAItem, broadcastPLMNList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BroadcastPLMNList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "broadcastPLMNList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_SupportedTAItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P317, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_SupportedTAItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SupportedTAItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_SupportedTAItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* broadcastPLMNList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SupportedTAItem_specs_1 = { + sizeof(struct ASN_NGAP_SupportedTAItem), + offsetof(struct ASN_NGAP_SupportedTAItem, _asn_ctx), + asn_MAP_ASN_NGAP_SupportedTAItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_SupportedTAItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAItem = { + "SupportedTAItem", + "SupportedTAItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_SupportedTAItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SupportedTAItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_SupportedTAItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_SupportedTAItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SupportedTAItem.h b/src/asn/ngap/ASN_NGAP_SupportedTAItem.h new file mode 100644 index 0000000..c3a4938 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SupportedTAItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SupportedTAItem_H_ +#define _ASN_NGAP_SupportedTAItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include "ASN_NGAP_BroadcastPLMNList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_SupportedTAItem */ +typedef struct ASN_NGAP_SupportedTAItem { + ASN_NGAP_TAC_t tAC; + ASN_NGAP_BroadcastPLMNList_t broadcastPLMNList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SupportedTAItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_SupportedTAItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SupportedTAItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SupportedTAItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SupportedTAList.c b/src/asn/ngap/ASN_NGAP_SupportedTAList.c new file mode 100644 index 0000000..c06cd68 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SupportedTAList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SupportedTAList.h" + +#include "ASN_NGAP_SupportedTAItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_SupportedTAList_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_ASN_NGAP_SupportedTAList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_SupportedTAItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SupportedTAList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SupportedTAList_specs_1 = { + sizeof(struct ASN_NGAP_SupportedTAList), + offsetof(struct ASN_NGAP_SupportedTAList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAList = { + "SupportedTAList", + "SupportedTAList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_SupportedTAList_tags_1, + sizeof(asn_DEF_ASN_NGAP_SupportedTAList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SupportedTAList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SupportedTAList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SupportedTAList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SupportedTAList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_SupportedTAList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_SupportedTAList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SupportedTAList.h b/src/asn/ngap/ASN_NGAP_SupportedTAList.h new file mode 100644 index 0000000..8017718 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SupportedTAList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SupportedTAList_H_ +#define _ASN_NGAP_SupportedTAList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_SupportedTAItem; + +/* ASN_NGAP_SupportedTAList */ +typedef struct ASN_NGAP_SupportedTAList { + A_SEQUENCE_OF(struct ASN_NGAP_SupportedTAItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_SupportedTAList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SupportedTAList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_SupportedTAList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_SupportedTAList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SupportedTAList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SupportedTAList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SurvivalTime.c b/src/asn/ngap/ASN_NGAP_SurvivalTime.c new file mode 100644 index 0000000..453d0a7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SurvivalTime.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SurvivalTime.h" + +int +ASN_NGAP_SurvivalTime_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 <= 1920000)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_SurvivalTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 21, -1, 0, 1920000 } /* (0..1920000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_SurvivalTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SurvivalTime = { + "SurvivalTime", + "SurvivalTime", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_SurvivalTime_tags_1, + sizeof(asn_DEF_ASN_NGAP_SurvivalTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SurvivalTime_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SurvivalTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SurvivalTime_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SurvivalTime_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SurvivalTime_constr_1, ASN_NGAP_SurvivalTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SurvivalTime.h b/src/asn/ngap/ASN_NGAP_SurvivalTime.h new file mode 100644 index 0000000..94c54ea --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SurvivalTime.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SurvivalTime_H_ +#define _ASN_NGAP_SurvivalTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_SurvivalTime */ +typedef long ASN_NGAP_SurvivalTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SurvivalTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SurvivalTime; +asn_struct_free_f ASN_NGAP_SurvivalTime_free; +asn_struct_print_f ASN_NGAP_SurvivalTime_print; +asn_constr_check_f ASN_NGAP_SurvivalTime_constraint; +ber_type_decoder_f ASN_NGAP_SurvivalTime_decode_ber; +der_type_encoder_f ASN_NGAP_SurvivalTime_encode_der; +xer_type_decoder_f ASN_NGAP_SurvivalTime_decode_xer; +xer_type_encoder_f ASN_NGAP_SurvivalTime_encode_xer; +per_type_decoder_f ASN_NGAP_SurvivalTime_decode_uper; +per_type_encoder_f ASN_NGAP_SurvivalTime_encode_uper; +per_type_decoder_f ASN_NGAP_SurvivalTime_decode_aper; +per_type_encoder_f ASN_NGAP_SurvivalTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SurvivalTime_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.c b/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.c new file mode 100644 index 0000000..2babc2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Suspend-Request-Indication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Suspend_Request_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_ASN_NGAP_Suspend_Request_Indication_value2enum_1[] = { + { 0, 17, "suspend-requested" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Suspend_Request_Indication_enum2value_1[] = { + 0 /* suspend-requested(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Suspend_Request_Indication_specs_1 = { + asn_MAP_ASN_NGAP_Suspend_Request_Indication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Suspend_Request_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_ASN_NGAP_Suspend_Request_Indication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Suspend_Request_Indication = { + "Suspend-Request-Indication", + "Suspend-Request-Indication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1, + sizeof(asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Suspend_Request_Indication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Suspend_Request_Indication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Suspend_Request_Indication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.h b/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.h new file mode 100644 index 0000000..7d17f54 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Suspend-Request-Indication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Suspend_Request_Indication_H_ +#define _ASN_NGAP_Suspend_Request_Indication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Suspend_Request_Indication { + ASN_NGAP_Suspend_Request_Indication_suspend_requested = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Suspend_Request_Indication; + +/* ASN_NGAP_Suspend-Request-Indication */ +typedef long ASN_NGAP_Suspend_Request_Indication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Suspend_Request_Indication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Suspend_Request_Indication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Suspend_Request_Indication_specs_1; +asn_struct_free_f ASN_NGAP_Suspend_Request_Indication_free; +asn_struct_print_f ASN_NGAP_Suspend_Request_Indication_print; +asn_constr_check_f ASN_NGAP_Suspend_Request_Indication_constraint; +ber_type_decoder_f ASN_NGAP_Suspend_Request_Indication_decode_ber; +der_type_encoder_f ASN_NGAP_Suspend_Request_Indication_encode_der; +xer_type_decoder_f ASN_NGAP_Suspend_Request_Indication_decode_xer; +xer_type_encoder_f ASN_NGAP_Suspend_Request_Indication_encode_xer; +per_type_decoder_f ASN_NGAP_Suspend_Request_Indication_decode_uper; +per_type_encoder_f ASN_NGAP_Suspend_Request_Indication_encode_uper; +per_type_decoder_f ASN_NGAP_Suspend_Request_Indication_decode_aper; +per_type_encoder_f ASN_NGAP_Suspend_Request_Indication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Suspend_Request_Indication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.c b/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.c new file mode 100644 index 0000000..27d3ab5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Suspend-Response-Indication.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_Suspend_Response_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_ASN_NGAP_Suspend_Response_Indication_value2enum_1[] = { + { 0, 17, "suspend-indicated" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_Suspend_Response_Indication_enum2value_1[] = { + 0 /* suspend-indicated(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Suspend_Response_Indication_specs_1 = { + asn_MAP_ASN_NGAP_Suspend_Response_Indication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_Suspend_Response_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_ASN_NGAP_Suspend_Response_Indication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Suspend_Response_Indication = { + "Suspend-Response-Indication", + "Suspend-Response-Indication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1, + sizeof(asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Suspend_Response_Indication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Suspend_Response_Indication_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_Suspend_Response_Indication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.h b/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.h new file mode 100644 index 0000000..ce934b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Suspend-Response-Indication.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Suspend_Response_Indication_H_ +#define _ASN_NGAP_Suspend_Response_Indication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_Suspend_Response_Indication { + ASN_NGAP_Suspend_Response_Indication_suspend_indicated = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_Suspend_Response_Indication; + +/* ASN_NGAP_Suspend-Response-Indication */ +typedef long ASN_NGAP_Suspend_Response_Indication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Suspend_Response_Indication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Suspend_Response_Indication; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_Suspend_Response_Indication_specs_1; +asn_struct_free_f ASN_NGAP_Suspend_Response_Indication_free; +asn_struct_print_f ASN_NGAP_Suspend_Response_Indication_print; +asn_constr_check_f ASN_NGAP_Suspend_Response_Indication_constraint; +ber_type_decoder_f ASN_NGAP_Suspend_Response_Indication_decode_ber; +der_type_encoder_f ASN_NGAP_Suspend_Response_Indication_encode_der; +xer_type_decoder_f ASN_NGAP_Suspend_Response_Indication_decode_xer; +xer_type_encoder_f ASN_NGAP_Suspend_Response_Indication_encode_xer; +per_type_decoder_f ASN_NGAP_Suspend_Response_Indication_decode_uper; +per_type_encoder_f ASN_NGAP_Suspend_Response_Indication_encode_uper; +per_type_decoder_f ASN_NGAP_Suspend_Response_Indication_decode_aper; +per_type_encoder_f ASN_NGAP_Suspend_Response_Indication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Suspend_Response_Indication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_SuspendIndicator.c b/src/asn/ngap/ASN_NGAP_SuspendIndicator.c new file mode 100644 index 0000000..18ea263 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuspendIndicator.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_SuspendIndicator.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_SuspendIndicator_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_ASN_NGAP_SuspendIndicator_value2enum_1[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_SuspendIndicator_enum2value_1[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SuspendIndicator_specs_1 = { + asn_MAP_ASN_NGAP_SuspendIndicator_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_SuspendIndicator_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_ASN_NGAP_SuspendIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuspendIndicator = { + "SuspendIndicator", + "SuspendIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_SuspendIndicator_tags_1, + sizeof(asn_DEF_ASN_NGAP_SuspendIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuspendIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_SuspendIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_SuspendIndicator_tags_1) + /sizeof(asn_DEF_ASN_NGAP_SuspendIndicator_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_SuspendIndicator_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_SuspendIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_SuspendIndicator.h b/src/asn/ngap/ASN_NGAP_SuspendIndicator.h new file mode 100644 index 0000000..64c9f4c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_SuspendIndicator.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_SuspendIndicator_H_ +#define _ASN_NGAP_SuspendIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_SuspendIndicator { + ASN_NGAP_SuspendIndicator_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_SuspendIndicator; + +/* ASN_NGAP_SuspendIndicator */ +typedef long ASN_NGAP_SuspendIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_SuspendIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_SuspendIndicator; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_SuspendIndicator_specs_1; +asn_struct_free_f ASN_NGAP_SuspendIndicator_free; +asn_struct_print_f ASN_NGAP_SuspendIndicator_print; +asn_constr_check_f ASN_NGAP_SuspendIndicator_constraint; +ber_type_decoder_f ASN_NGAP_SuspendIndicator_decode_ber; +der_type_encoder_f ASN_NGAP_SuspendIndicator_encode_der; +xer_type_decoder_f ASN_NGAP_SuspendIndicator_decode_xer; +xer_type_encoder_f ASN_NGAP_SuspendIndicator_encode_xer; +per_type_decoder_f ASN_NGAP_SuspendIndicator_decode_uper; +per_type_encoder_f ASN_NGAP_SuspendIndicator_encode_uper; +per_type_decoder_f ASN_NGAP_SuspendIndicator_decode_aper; +per_type_encoder_f ASN_NGAP_SuspendIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_SuspendIndicator_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TABasedMDT.c b/src/asn/ngap/ASN_NGAP_TABasedMDT.c new file mode 100644 index 0000000..e786893 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TABasedMDT.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TABasedMDT.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedMDT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedMDT, tAListforMDT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAListforMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAListforMDT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TABasedMDT, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P343, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TABasedMDT_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TABasedMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_TABasedMDT_specs_1 = { + sizeof(struct ASN_NGAP_TABasedMDT), + offsetof(struct ASN_NGAP_TABasedMDT, _asn_ctx), + asn_MAP_ASN_NGAP_TABasedMDT_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TABasedMDT_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedMDT = { + "TABasedMDT", + "TABasedMDT", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TABasedMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_TABasedMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TABasedMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TABasedMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TABasedMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TABasedMDT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TABasedMDT_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TABasedMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TABasedMDT.h b/src/asn/ngap/ASN_NGAP_TABasedMDT.h new file mode 100644 index 0000000..b63576a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TABasedMDT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TABasedMDT_H_ +#define _ASN_NGAP_TABasedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAListforMDT.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TABasedMDT */ +typedef struct ASN_NGAP_TABasedMDT { + ASN_NGAP_TAListforMDT_t tAListforMDT; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TABasedMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedMDT; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedMDT_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TABasedMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TABasedQMC.c b/src/asn/ngap/ASN_NGAP_TABasedQMC.c new file mode 100644 index 0000000..5a743c4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TABasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TABasedQMC.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedQMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TABasedQMC, tAListforQMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAListforQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAListforQMC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TABasedQMC, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P342, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TABasedQMC_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TABasedQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_TABasedQMC_specs_1 = { + sizeof(struct ASN_NGAP_TABasedQMC), + offsetof(struct ASN_NGAP_TABasedQMC, _asn_ctx), + asn_MAP_ASN_NGAP_TABasedQMC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TABasedQMC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedQMC = { + "TABasedQMC", + "TABasedQMC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TABasedQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_TABasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TABasedQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TABasedQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TABasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TABasedQMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TABasedQMC_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TABasedQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TABasedQMC.h b/src/asn/ngap/ASN_NGAP_TABasedQMC.h new file mode 100644 index 0000000..222c219 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TABasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TABasedQMC_H_ +#define _ASN_NGAP_TABasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAListforQMC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TABasedQMC */ +typedef struct ASN_NGAP_TABasedQMC { + ASN_NGAP_TAListforQMC_t tAListforQMC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TABasedQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TABasedQMC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TABasedQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TABasedQMC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TABasedQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAC.c b/src/asn/ngap/ASN_NGAP_TAC.c new file mode 100644 index 0000000..9aff6be --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAC.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_TAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAC = { + "TAC", + "TAC", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TAC_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAC_constr_1, ASN_NGAP_TAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAC.h b/src/asn/ngap/ASN_NGAP_TAC.h new file mode 100644 index 0000000..1c9845b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAC_H_ +#define _ASN_NGAP_TAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TAC */ +typedef OCTET_STRING_t ASN_NGAP_TAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAC; +asn_struct_free_f ASN_NGAP_TAC_free; +asn_struct_print_f ASN_NGAP_TAC_print; +asn_constr_check_f ASN_NGAP_TAC_constraint; +ber_type_decoder_f ASN_NGAP_TAC_decode_ber; +der_type_encoder_f ASN_NGAP_TAC_encode_der; +xer_type_decoder_f ASN_NGAP_TAC_decode_xer; +xer_type_encoder_f ASN_NGAP_TAC_encode_xer; +per_type_decoder_f ASN_NGAP_TAC_decode_uper; +per_type_encoder_f ASN_NGAP_TAC_encode_uper; +per_type_decoder_f ASN_NGAP_TAC_decode_aper; +per_type_encoder_f ASN_NGAP_TAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TACListInNRNTN.c b/src/asn/ngap/ASN_NGAP_TACListInNRNTN.c new file mode 100644 index 0000000..eaad4ec --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TACListInNRNTN.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TACListInNRNTN.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_TACListInNRNTN_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_TACListInNRNTN_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TACListInNRNTN_specs_1 = { + sizeof(struct ASN_NGAP_TACListInNRNTN), + offsetof(struct ASN_NGAP_TACListInNRNTN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TACListInNRNTN = { + "TACListInNRNTN", + "TACListInNRNTN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1, + sizeof(asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TACListInNRNTN_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TACListInNRNTN_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TACListInNRNTN_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TACListInNRNTN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TACListInNRNTN.h b/src/asn/ngap/ASN_NGAP_TACListInNRNTN.h new file mode 100644 index 0000000..ba36463 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TACListInNRNTN.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TACListInNRNTN_H_ +#define _ASN_NGAP_TACListInNRNTN_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TACListInNRNTN */ +typedef struct ASN_NGAP_TACListInNRNTN { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TACListInNRNTN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TACListInNRNTN; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TACListInNRNTN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TACListInNRNTN_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TACListInNRNTN_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TACListInNRNTN_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAI.c b/src/asn/ngap/ASN_NGAP_TAI.c new file mode 100644 index 0000000..413a41a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAI.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAI.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAI, pLMNIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAI, tAC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAI, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P318, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAI_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAI_specs_1 = { + sizeof(struct ASN_NGAP_TAI), + offsetof(struct ASN_NGAP_TAI, _asn_ctx), + asn_MAP_ASN_NGAP_TAI_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAI = { + "TAI", + "TAI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAI_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAI.h b/src/asn/ngap/ASN_NGAP_TAI.h new file mode 100644 index 0000000..8744a61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAI.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAI_H_ +#define _ASN_NGAP_TAI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include "ASN_NGAP_TAC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAI */ +typedef struct ASN_NGAP_TAI { + ASN_NGAP_PLMNIdentity_t pLMNIdentity; + ASN_NGAP_TAC_t tAC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAI_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBasedMDT.c b/src/asn/ngap/ASN_NGAP_TAIBasedMDT.c new file mode 100644 index 0000000..19134b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBasedMDT.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBasedMDT.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedMDT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedMDT, tAIListforMDT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIListforMDT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIListforMDT" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIBasedMDT, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P340, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIBasedMDT_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_TAIBasedMDT_specs_1 = { + sizeof(struct ASN_NGAP_TAIBasedMDT), + offsetof(struct ASN_NGAP_TAIBasedMDT, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBasedMDT_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIBasedMDT_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedMDT = { + "TAIBasedMDT", + "TAIBasedMDT", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedMDT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBasedMDT_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBasedMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBasedMDT.h b/src/asn/ngap/ASN_NGAP_TAIBasedMDT.h new file mode 100644 index 0000000..8ecba9c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBasedMDT.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBasedMDT_H_ +#define _ASN_NGAP_TAIBasedMDT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAIListforMDT.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIBasedMDT */ +typedef struct ASN_NGAP_TAIBasedMDT { + ASN_NGAP_TAIListforMDT_t tAIListforMDT; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBasedMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedMDT; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedMDT_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBasedMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBasedQMC.c b/src/asn/ngap/ASN_NGAP_TAIBasedQMC.c new file mode 100644 index 0000000..ce3e7e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBasedQMC.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBasedQMC.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedQMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBasedQMC, tAIListforQMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIListforQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIListforQMC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIBasedQMC, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P341, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIBasedQMC_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_TAIBasedQMC_specs_1 = { + sizeof(struct ASN_NGAP_TAIBasedQMC), + offsetof(struct ASN_NGAP_TAIBasedQMC, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBasedQMC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIBasedQMC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedQMC = { + "TAIBasedQMC", + "TAIBasedQMC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBasedQMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBasedQMC_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBasedQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBasedQMC.h b/src/asn/ngap/ASN_NGAP_TAIBasedQMC.h new file mode 100644 index 0000000..2e65634 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBasedQMC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBasedQMC_H_ +#define _ASN_NGAP_TAIBasedQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAIListforQMC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIBasedQMC */ +typedef struct ASN_NGAP_TAIBasedQMC { + ASN_NGAP_TAIListforQMC_t tAIListforQMC; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBasedQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBasedQMC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBasedQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBasedQMC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBasedQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c new file mode 100644 index 0000000..3c99cb7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBroadcastEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item, completedCellsInTAI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "completedCellsInTAI-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P319, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* completedCellsInTAI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_TAIBroadcastEUTRA_Item), + offsetof(struct ASN_NGAP_TAIBroadcastEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIBroadcastEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item = { + "TAIBroadcastEUTRA-Item", + "TAIBroadcastEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h new file mode 100644 index 0000000..711e2ac --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBroadcastEUTRA_Item_H_ +#define _ASN_NGAP_TAIBroadcastEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_CompletedCellsInTAI-EUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIBroadcastEUTRA-Item */ +typedef struct ASN_NGAP_TAIBroadcastEUTRA_Item { + ASN_NGAP_TAI_t tAI; + ASN_NGAP_CompletedCellsInTAI_EUTRA_t completedCellsInTAI_EUTRA; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBroadcastEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.c b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.c new file mode 100644 index 0000000..0c8ab2d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBroadcastEUTRA.h" + +#include "ASN_NGAP_TAIBroadcastEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIBroadcastEUTRA_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_ASN_NGAP_TAIBroadcastEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_TAIBroadcastEUTRA), + offsetof(struct ASN_NGAP_TAIBroadcastEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA = { + "TAIBroadcastEUTRA", + "TAIBroadcastEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIBroadcastEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.h b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.h new file mode 100644 index 0000000..3add31c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBroadcastEUTRA_H_ +#define _ASN_NGAP_TAIBroadcastEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAIBroadcastEUTRA_Item; + +/* ASN_NGAP_TAIBroadcastEUTRA */ +typedef struct ASN_NGAP_TAIBroadcastEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBroadcastEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIBroadcastEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBroadcastEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.c b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.c new file mode 100644 index 0000000..50b6c1e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBroadcastNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item, completedCellsInTAI_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CompletedCellsInTAI_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "completedCellsInTAI-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIBroadcastNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P320, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* completedCellsInTAI-NR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_TAIBroadcastNR_Item), + offsetof(struct ASN_NGAP_TAIBroadcastNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIBroadcastNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item = { + "TAIBroadcastNR-Item", + "TAIBroadcastNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.h b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.h new file mode 100644 index 0000000..8eac7c1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBroadcastNR_Item_H_ +#define _ASN_NGAP_TAIBroadcastNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_CompletedCellsInTAI-NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIBroadcastNR-Item */ +typedef struct ASN_NGAP_TAIBroadcastNR_Item { + ASN_NGAP_TAI_t tAI; + ASN_NGAP_CompletedCellsInTAI_NR_t completedCellsInTAI_NR; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastNR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBroadcastNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.c b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.c new file mode 100644 index 0000000..cadb361 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIBroadcastNR.h" + +#include "ASN_NGAP_TAIBroadcastNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIBroadcastNR_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_ASN_NGAP_TAIBroadcastNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIBroadcastNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_specs_1 = { + sizeof(struct ASN_NGAP_TAIBroadcastNR), + offsetof(struct ASN_NGAP_TAIBroadcastNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR = { + "TAIBroadcastNR", + "TAIBroadcastNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIBroadcastNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIBroadcastNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIBroadcastNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIBroadcastNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.h b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.h new file mode 100644 index 0000000..56e3d24 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIBroadcastNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIBroadcastNR_H_ +#define _ASN_NGAP_TAIBroadcastNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAIBroadcastNR_Item; + +/* ASN_NGAP_TAIBroadcastNR */ +typedef struct ASN_NGAP_TAIBroadcastNR { + A_SEQUENCE_OF(struct ASN_NGAP_TAIBroadcastNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIBroadcastNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIBroadcastNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIBroadcastNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIBroadcastNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIBroadcastNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIBroadcastNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.c b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.c new file mode 100644 index 0000000..60a2ea7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAICancelledEUTRA-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item, cancelledCellsInTAI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cancelledCellsInTAI-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P321, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cancelledCellsInTAI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_specs_1 = { + sizeof(struct ASN_NGAP_TAICancelledEUTRA_Item), + offsetof(struct ASN_NGAP_TAICancelledEUTRA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAICancelledEUTRA_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item = { + "TAICancelledEUTRA-Item", + "TAICancelledEUTRA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.h b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.h new file mode 100644 index 0000000..7c5345d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAICancelledEUTRA_Item_H_ +#define _ASN_NGAP_TAICancelledEUTRA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_CancelledCellsInTAI-EUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAICancelledEUTRA-Item */ +typedef struct ASN_NGAP_TAICancelledEUTRA_Item { + ASN_NGAP_TAI_t tAI; + ASN_NGAP_CancelledCellsInTAI_EUTRA_t cancelledCellsInTAI_EUTRA; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledEUTRA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledEUTRA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAICancelledEUTRA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.c b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.c new file mode 100644 index 0000000..b3fd756 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAICancelledEUTRA.h" + +#include "ASN_NGAP_TAICancelledEUTRA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAICancelledEUTRA_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_ASN_NGAP_TAICancelledEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAICancelledEUTRA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_TAICancelledEUTRA), + offsetof(struct ASN_NGAP_TAICancelledEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA = { + "TAICancelledEUTRA", + "TAICancelledEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAICancelledEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAICancelledEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAICancelledEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.h b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.h new file mode 100644 index 0000000..1400b20 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAICancelledEUTRA_H_ +#define _ASN_NGAP_TAICancelledEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAICancelledEUTRA_Item; + +/* ASN_NGAP_TAICancelledEUTRA */ +typedef struct ASN_NGAP_TAICancelledEUTRA { + A_SEQUENCE_OF(struct ASN_NGAP_TAICancelledEUTRA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAICancelledEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAICancelledEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAICancelledEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.c b/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.c new file mode 100644 index 0000000..ca83384 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAICancelledNR-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledNR_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledNR_Item, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAICancelledNR_Item, cancelledCellsInTAI_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CancelledCellsInTAI_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cancelledCellsInTAI-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAICancelledNR_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P322, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAICancelledNR_Item_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAICancelledNR_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cancelledCellsInTAI-NR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_Item_specs_1 = { + sizeof(struct ASN_NGAP_TAICancelledNR_Item), + offsetof(struct ASN_NGAP_TAICancelledNR_Item, _asn_ctx), + asn_MAP_ASN_NGAP_TAICancelledNR_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAICancelledNR_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR_Item = { + "TAICancelledNR-Item", + "TAICancelledNR-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAICancelledNR_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAICancelledNR_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.h b/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.h new file mode 100644 index 0000000..64f0674 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledNR-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAICancelledNR_Item_H_ +#define _ASN_NGAP_TAICancelledNR_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_CancelledCellsInTAI-NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAICancelledNR-Item */ +typedef struct ASN_NGAP_TAICancelledNR_Item { + ASN_NGAP_TAI_t tAI; + ASN_NGAP_CancelledCellsInTAI_NR_t cancelledCellsInTAI_NR; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledNR_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledNR_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAICancelledNR_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledNR.c b/src/asn/ngap/ASN_NGAP_TAICancelledNR.c new file mode 100644 index 0000000..3b31d70 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAICancelledNR.h" + +#include "ASN_NGAP_TAICancelledNR-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAICancelledNR_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_ASN_NGAP_TAICancelledNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAICancelledNR_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAICancelledNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_specs_1 = { + sizeof(struct ASN_NGAP_TAICancelledNR), + offsetof(struct ASN_NGAP_TAICancelledNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR = { + "TAICancelledNR", + "TAICancelledNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAICancelledNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAICancelledNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAICancelledNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAICancelledNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAICancelledNR_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAICancelledNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAICancelledNR.h b/src/asn/ngap/ASN_NGAP_TAICancelledNR.h new file mode 100644 index 0000000..46902e4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAICancelledNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAICancelledNR_H_ +#define _ASN_NGAP_TAICancelledNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAICancelledNR_Item; + +/* ASN_NGAP_TAICancelledNR */ +typedef struct ASN_NGAP_TAICancelledNR { + A_SEQUENCE_OF(struct ASN_NGAP_TAICancelledNR_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAICancelledNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAICancelledNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAICancelledNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAICancelledNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAICancelledNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAICancelledNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForInactive.c b/src/asn/ngap/ASN_NGAP_TAIListForInactive.c new file mode 100644 index 0000000..3f6a4d2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForInactive.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForInactive.h" + +#include "ASN_NGAP_TAIListForInactiveItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForInactive_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_ASN_NGAP_TAIListForInactive_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForInactiveItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForInactive_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForInactive_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForInactive), + offsetof(struct ASN_NGAP_TAIListForInactive, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactive = { + "TAIListForInactive", + "TAIListForInactive", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListForInactive_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForInactive_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactive_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForInactive_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForInactive_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactive_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListForInactive_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListForInactive_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListForInactive_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForInactive.h b/src/asn/ngap/ASN_NGAP_TAIListForInactive.h new file mode 100644 index 0000000..66bc496 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForInactive.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForInactive_H_ +#define _ASN_NGAP_TAIListForInactive_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAIListForInactiveItem; + +/* ASN_NGAP_TAIListForInactive */ +typedef struct ASN_NGAP_TAIListForInactive { + A_SEQUENCE_OF(struct ASN_NGAP_TAIListForInactiveItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForInactive_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactive; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForInactive_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForInactive_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForInactive_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForInactive_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.c b/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.c new file mode 100644 index 0000000..f17aa04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForInactiveItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForInactiveItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForInactiveItem, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIListForInactiveItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P323, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIListForInactiveItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIListForInactiveItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForInactiveItem_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForInactiveItem), + offsetof(struct ASN_NGAP_TAIListForInactiveItem, _asn_ctx), + asn_MAP_ASN_NGAP_TAIListForInactiveItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIListForInactiveItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactiveItem = { + "TAIListForInactiveItem", + "TAIListForInactiveItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForInactiveItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIListForInactiveItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIListForInactiveItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.h b/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.h new file mode 100644 index 0000000..1685b3c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForInactiveItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForInactiveItem_H_ +#define _ASN_NGAP_TAIListForInactiveItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIListForInactiveItem */ +typedef struct ASN_NGAP_TAIListForInactiveItem { + ASN_NGAP_TAI_t tAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForInactiveItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForInactiveItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForInactiveItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForInactiveItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForInactiveItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForPaging.c b/src/asn/ngap/ASN_NGAP_TAIListForPaging.c new file mode 100644 index 0000000..b3655d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForPaging.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForPaging.h" + +#include "ASN_NGAP_TAIListForPagingItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForPaging_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_ASN_NGAP_TAIListForPaging_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAIListForPagingItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForPaging_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForPaging), + offsetof(struct ASN_NGAP_TAIListForPaging, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPaging = { + "TAIListForPaging", + "TAIListForPaging", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPaging_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListForPaging_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListForPaging_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForPaging.h b/src/asn/ngap/ASN_NGAP_TAIListForPaging.h new file mode 100644 index 0000000..aa7d2ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForPaging.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForPaging_H_ +#define _ASN_NGAP_TAIListForPaging_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAIListForPagingItem; + +/* ASN_NGAP_TAIListForPaging */ +typedef struct ASN_NGAP_TAIListForPaging { + A_SEQUENCE_OF(struct ASN_NGAP_TAIListForPagingItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPaging; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForPaging_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForPaging_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.c b/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.c new file mode 100644 index 0000000..617b85e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForPagingItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForPagingItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAIListForPagingItem, tAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAIListForPagingItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P324, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAIListForPagingItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAIListForPagingItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForPagingItem_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForPagingItem), + offsetof(struct ASN_NGAP_TAIListForPagingItem, _asn_ctx), + asn_MAP_ASN_NGAP_TAIListForPagingItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAIListForPagingItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPagingItem = { + "TAIListForPagingItem", + "TAIListForPagingItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForPagingItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAIListForPagingItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TAIListForPagingItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.h b/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.h new file mode 100644 index 0000000..587b47e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForPagingItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForPagingItem_H_ +#define _ASN_NGAP_TAIListForPagingItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAIListForPagingItem */ +typedef struct ASN_NGAP_TAIListForPagingItem { + ASN_NGAP_TAI_t tAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForPagingItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForPagingItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAIListForPagingItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForPagingItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForPagingItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForRestart.c b/src/asn/ngap/ASN_NGAP_TAIListForRestart.c new file mode 100644 index 0000000..c1eb097 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForRestart.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForRestart.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForRestart_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 2048 } /* (SIZE(1..2048)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForRestart_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForRestart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForRestart_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForRestart), + offsetof(struct ASN_NGAP_TAIListForRestart, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForRestart = { + "TAIListForRestart", + "TAIListForRestart", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListForRestart_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForRestart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForRestart_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForRestart_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForRestart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForRestart_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListForRestart_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListForRestart_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListForRestart_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForRestart.h b/src/asn/ngap/ASN_NGAP_TAIListForRestart.h new file mode 100644 index 0000000..7fa32a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForRestart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForRestart_H_ +#define _ASN_NGAP_TAIListForRestart_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_TAIListForRestart */ +typedef struct ASN_NGAP_TAIListForRestart { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForRestart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForRestart; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForRestart_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForRestart_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForRestart_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForRestart_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListForWarning.c b/src/asn/ngap/ASN_NGAP_TAIListForWarning.c new file mode 100644 index 0000000..2eb308f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForWarning.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListForWarning.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForWarning_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_ASN_NGAP_TAIListForWarning_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListForWarning_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForWarning_specs_1 = { + sizeof(struct ASN_NGAP_TAIListForWarning), + offsetof(struct ASN_NGAP_TAIListForWarning, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForWarning = { + "TAIListForWarning", + "TAIListForWarning", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListForWarning_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForWarning_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListForWarning_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListForWarning_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListForWarning_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListForWarning_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListForWarning_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListForWarning_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListForWarning.h b/src/asn/ngap/ASN_NGAP_TAIListForWarning.h new file mode 100644 index 0000000..25f342c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListForWarning.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListForWarning_H_ +#define _ASN_NGAP_TAIListForWarning_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_TAIListForWarning */ +typedef struct ASN_NGAP_TAIListForWarning { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListForWarning_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListForWarning; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListForWarning_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListForWarning_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListForWarning_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListForWarning_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListforMDT.c b/src/asn/ngap/ASN_NGAP_TAIListforMDT.c new file mode 100644 index 0000000..735a11a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListforMDT.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListforMDT.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TAIListforMDT_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListforMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListforMDT_specs_1 = { + sizeof(struct ASN_NGAP_TAIListforMDT), + offsetof(struct ASN_NGAP_TAIListforMDT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListforMDT = { + "TAIListforMDT", + "TAIListforMDT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListforMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListforMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListforMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListforMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListforMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListforMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListforMDT_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListforMDT_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListforMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListforMDT.h b/src/asn/ngap/ASN_NGAP_TAIListforMDT.h new file mode 100644 index 0000000..17cd38d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListforMDT.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListforMDT_H_ +#define _ASN_NGAP_TAIListforMDT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_TAIListforMDT */ +typedef struct ASN_NGAP_TAIListforMDT { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListforMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListforMDT; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListforMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListforMDT_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListforMDT_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListforMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAIListforQMC.c b/src/asn/ngap/ASN_NGAP_TAIListforQMC.c new file mode 100644 index 0000000..8d0d8d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListforQMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAIListforQMC.h" + +#include "ASN_NGAP_TAI.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TAIListforQMC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAIListforQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListforQMC_specs_1 = { + sizeof(struct ASN_NGAP_TAIListforQMC), + offsetof(struct ASN_NGAP_TAIListforQMC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListforQMC = { + "TAIListforQMC", + "TAIListforQMC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAIListforQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAIListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListforQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAIListforQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAIListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAIListforQMC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAIListforQMC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAIListforQMC_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAIListforQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAIListforQMC.h b/src/asn/ngap/ASN_NGAP_TAIListforQMC.h new file mode 100644 index 0000000..2bad818 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAIListforQMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAIListforQMC_H_ +#define _ASN_NGAP_TAIListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAI; + +/* ASN_NGAP_TAIListforQMC */ +typedef struct ASN_NGAP_TAIListforQMC { + A_SEQUENCE_OF(struct ASN_NGAP_TAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAIListforQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAIListforQMC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAIListforQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAIListforQMC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAIListforQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAIListforQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.c b/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.c new file mode 100644 index 0000000..44bbc5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAINSAGSupportItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TAINSAGSupportItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAINSAGSupportItem, nSAG_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NSAG_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nSAG-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TAINSAGSupportItem, nSAGSliceSupportList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExtendedSliceSupportList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nSAGSliceSupportList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TAINSAGSupportItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P325, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TAINSAGSupportItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TAINSAGSupportItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nSAG-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nSAGSliceSupportList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportItem_specs_1 = { + sizeof(struct ASN_NGAP_TAINSAGSupportItem), + offsetof(struct ASN_NGAP_TAINSAGSupportItem, _asn_ctx), + asn_MAP_ASN_NGAP_TAINSAGSupportItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TAINSAGSupportItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportItem = { + "TAINSAGSupportItem", + "TAINSAGSupportItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TAINSAGSupportItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TAINSAGSupportItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.h b/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.h new file mode 100644 index 0000000..45ead21 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAINSAGSupportItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAINSAGSupportItem_H_ +#define _ASN_NGAP_TAINSAGSupportItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NSAG-ID.h" +#include "ASN_NGAP_ExtendedSliceSupportList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TAINSAGSupportItem */ +typedef struct ASN_NGAP_TAINSAGSupportItem { + ASN_NGAP_NSAG_ID_t nSAG_ID; + ASN_NGAP_ExtendedSliceSupportList_t nSAGSliceSupportList; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAINSAGSupportItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAINSAGSupportItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAINSAGSupportItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.c b/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.c new file mode 100644 index 0000000..90dda65 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAINSAGSupportList.h" + +#include "ASN_NGAP_TAINSAGSupportItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TAINSAGSupportList_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_ASN_NGAP_TAINSAGSupportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAINSAGSupportItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportList_specs_1 = { + sizeof(struct ASN_NGAP_TAINSAGSupportList), + offsetof(struct ASN_NGAP_TAINSAGSupportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportList = { + "TAINSAGSupportList", + "TAINSAGSupportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAINSAGSupportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAINSAGSupportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAINSAGSupportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAINSAGSupportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.h b/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.h new file mode 100644 index 0000000..2562bdb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAINSAGSupportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAINSAGSupportList_H_ +#define _ASN_NGAP_TAINSAGSupportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TAINSAGSupportItem; + +/* ASN_NGAP_TAINSAGSupportList */ +typedef struct ASN_NGAP_TAINSAGSupportList { + A_SEQUENCE_OF(struct ASN_NGAP_TAINSAGSupportItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAINSAGSupportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAINSAGSupportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAINSAGSupportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAINSAGSupportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAINSAGSupportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAINSAGSupportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAListforMDT.c b/src/asn/ngap/ASN_NGAP_TAListforMDT.c new file mode 100644 index 0000000..3ac5bb8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAListforMDT.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAListforMDT.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TAListforMDT_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAListforMDT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAListforMDT_specs_1 = { + sizeof(struct ASN_NGAP_TAListforMDT), + offsetof(struct ASN_NGAP_TAListforMDT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAListforMDT = { + "TAListforMDT", + "TAListforMDT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAListforMDT_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAListforMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAListforMDT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAListforMDT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAListforMDT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAListforMDT_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAListforMDT_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAListforMDT_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAListforMDT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAListforMDT.h b/src/asn/ngap/ASN_NGAP_TAListforMDT.h new file mode 100644 index 0000000..47c48ad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAListforMDT.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAListforMDT_H_ +#define _ASN_NGAP_TAListforMDT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TAListforMDT */ +typedef struct ASN_NGAP_TAListforMDT { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAListforMDT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAListforMDT; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAListforMDT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAListforMDT_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAListforMDT_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAListforMDT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TAListforQMC.c b/src/asn/ngap/ASN_NGAP_TAListforQMC.c new file mode 100644 index 0000000..3324264 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAListforQMC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TAListforQMC.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TAListforQMC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_NGAP_TAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TAListforQMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAListforQMC_specs_1 = { + sizeof(struct ASN_NGAP_TAListforQMC), + offsetof(struct ASN_NGAP_TAListforQMC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAListforQMC = { + "TAListforQMC", + "TAListforQMC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TAListforQMC_tags_1, + sizeof(asn_DEF_ASN_NGAP_TAListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAListforQMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TAListforQMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TAListforQMC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TAListforQMC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TAListforQMC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TAListforQMC_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TAListforQMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TAListforQMC.h b/src/asn/ngap/ASN_NGAP_TAListforQMC.h new file mode 100644 index 0000000..6675df0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TAListforQMC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TAListforQMC_H_ +#define _ASN_NGAP_TAListforQMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TAC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TAListforQMC */ +typedef struct ASN_NGAP_TAListforQMC { + A_SEQUENCE_OF(ASN_NGAP_TAC_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TAListforQMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TAListforQMC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TAListforQMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TAListforQMC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TAListforQMC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TAListforQMC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TMGI.c b/src/asn/ngap/ASN_NGAP_TMGI.c new file mode 100644 index 0000000..202fc5c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TMGI.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TMGI.h" + +int +ASN_NGAP_TMGI_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 == 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 OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_TMGI_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_ASN_NGAP_TMGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TMGI = { + "TMGI", + "TMGI", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TMGI_tags_1, + sizeof(asn_DEF_ASN_NGAP_TMGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TMGI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TMGI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TMGI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TMGI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TMGI_constr_1, ASN_NGAP_TMGI_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TMGI.h b/src/asn/ngap/ASN_NGAP_TMGI.h new file mode 100644 index 0000000..92ca078 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TMGI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TMGI_H_ +#define _ASN_NGAP_TMGI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TMGI */ +typedef OCTET_STRING_t ASN_NGAP_TMGI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TMGI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TMGI; +asn_struct_free_f ASN_NGAP_TMGI_free; +asn_struct_print_f ASN_NGAP_TMGI_print; +asn_constr_check_f ASN_NGAP_TMGI_constraint; +ber_type_decoder_f ASN_NGAP_TMGI_decode_ber; +der_type_encoder_f ASN_NGAP_TMGI_encode_der; +xer_type_decoder_f ASN_NGAP_TMGI_decode_xer; +xer_type_encoder_f ASN_NGAP_TMGI_encode_xer; +per_type_decoder_f ASN_NGAP_TMGI_decode_uper; +per_type_encoder_f ASN_NGAP_TMGI_encode_uper; +per_type_decoder_f ASN_NGAP_TMGI_decode_aper; +per_type_encoder_f ASN_NGAP_TMGI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TMGI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNAP-ID.c b/src/asn/ngap/ASN_NGAP_TNAP-ID.c new file mode 100644 index 0000000..2e23bcb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNAP-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNAP-ID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TNAP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNAP_ID = { + "TNAP-ID", + "TNAP-ID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TNAP_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TNAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNAP_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNAP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNAP_ID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNAP-ID.h b/src/asn/ngap/ASN_NGAP_TNAP-ID.h new file mode 100644 index 0000000..66d943c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNAP-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNAP_ID_H_ +#define _ASN_NGAP_TNAP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TNAP-ID */ +typedef OCTET_STRING_t ASN_NGAP_TNAP_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNAP_ID; +asn_struct_free_f ASN_NGAP_TNAP_ID_free; +asn_struct_print_f ASN_NGAP_TNAP_ID_print; +asn_constr_check_f ASN_NGAP_TNAP_ID_constraint; +ber_type_decoder_f ASN_NGAP_TNAP_ID_decode_ber; +der_type_encoder_f ASN_NGAP_TNAP_ID_encode_der; +xer_type_decoder_f ASN_NGAP_TNAP_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_TNAP_ID_encode_xer; +per_type_decoder_f ASN_NGAP_TNAP_ID_decode_uper; +per_type_encoder_f ASN_NGAP_TNAP_ID_encode_uper; +per_type_decoder_f ASN_NGAP_TNAP_ID_decode_aper; +per_type_encoder_f ASN_NGAP_TNAP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNAP_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNGF-ID.c b/src/asn/ngap/ASN_NGAP_TNGF-ID.c new file mode 100644 index 0000000..e57f2dc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNGF-ID.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNGF-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_tNGF_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 == 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_ASN_NGAP_tNGF_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 32, 32 } /* (SIZE(32..32,...)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_TNGF_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_ASN_NGAP_TNGF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNGF_ID, choice.tNGF_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_tNGF_ID_constr_2, memb_ASN_NGAP_tNGF_ID_constraint_1 }, + 0, 0, /* No default value */ + "tNGF-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_TNGF_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TNGF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNGF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TNGF_ID_specs_1 = { + sizeof(struct ASN_NGAP_TNGF_ID), + offsetof(struct ASN_NGAP_TNGF_ID, _asn_ctx), + offsetof(struct ASN_NGAP_TNGF_ID, present), + sizeof(((struct ASN_NGAP_TNGF_ID *)0)->present), + asn_MAP_ASN_NGAP_TNGF_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNGF_ID = { + "TNGF-ID", + "TNGF-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_ASN_NGAP_TNGF_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_TNGF_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TNGF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNGF-ID.h b/src/asn/ngap/ASN_NGAP_TNGF-ID.h new file mode 100644 index 0000000..782c3d4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNGF-ID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNGF_ID_H_ +#define _ASN_NGAP_TNGF_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TNGF_ID_PR { + ASN_NGAP_TNGF_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_TNGF_ID_PR_tNGF_ID, + ASN_NGAP_TNGF_ID_PR_choice_Extensions +} ASN_NGAP_TNGF_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_TNGF-ID */ +typedef struct ASN_NGAP_TNGF_ID { + ASN_NGAP_TNGF_ID_PR present; + union ASN_NGAP_TNGF_ID_u { + BIT_STRING_t tNGF_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TNGF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNGF_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TNGF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TNGF_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TNGF_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNGF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.c b/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.c new file mode 100644 index 0000000..dd64365 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNLAddressWeightFactor.h" + +int +ASN_NGAP_TNLAddressWeightFactor_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_ASN_NGAP_TNLAddressWeightFactor_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_ASN_NGAP_TNLAddressWeightFactor_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAddressWeightFactor = { + "TNLAddressWeightFactor", + "TNLAddressWeightFactor", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1, + sizeof(asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAddressWeightFactor_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TNLAddressWeightFactor_constr_1, ASN_NGAP_TNLAddressWeightFactor_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.h b/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.h new file mode 100644 index 0000000..81e8206 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAddressWeightFactor.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNLAddressWeightFactor_H_ +#define _ASN_NGAP_TNLAddressWeightFactor_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TNLAddressWeightFactor */ +typedef long ASN_NGAP_TNLAddressWeightFactor_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TNLAddressWeightFactor_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAddressWeightFactor; +asn_struct_free_f ASN_NGAP_TNLAddressWeightFactor_free; +asn_struct_print_f ASN_NGAP_TNLAddressWeightFactor_print; +asn_constr_check_f ASN_NGAP_TNLAddressWeightFactor_constraint; +ber_type_decoder_f ASN_NGAP_TNLAddressWeightFactor_decode_ber; +der_type_encoder_f ASN_NGAP_TNLAddressWeightFactor_encode_der; +xer_type_decoder_f ASN_NGAP_TNLAddressWeightFactor_decode_xer; +xer_type_encoder_f ASN_NGAP_TNLAddressWeightFactor_encode_xer; +per_type_decoder_f ASN_NGAP_TNLAddressWeightFactor_decode_uper; +per_type_encoder_f ASN_NGAP_TNLAddressWeightFactor_encode_uper; +per_type_decoder_f ASN_NGAP_TNLAddressWeightFactor_decode_aper; +per_type_encoder_f ASN_NGAP_TNLAddressWeightFactor_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNLAddressWeightFactor_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationItem.c b/src/asn/ngap/ASN_NGAP_TNLAssociationItem.c new file mode 100644 index 0000000..ba39064 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNLAssociationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TNLAssociationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNLAssociationItem, tNLAssociationAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_CPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNLAssociationAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TNLAssociationItem, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TNLAssociationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P337, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TNLAssociationItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TNLAssociationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNLAssociationAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNLAssociationItem_specs_1 = { + sizeof(struct ASN_NGAP_TNLAssociationItem), + offsetof(struct ASN_NGAP_TNLAssociationItem, _asn_ctx), + asn_MAP_ASN_NGAP_TNLAssociationItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TNLAssociationItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationItem = { + "TNLAssociationItem", + "TNLAssociationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TNLAssociationItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TNLAssociationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationItem.h b/src/asn/ngap/ASN_NGAP_TNLAssociationItem.h new file mode 100644 index 0000000..ed35fb3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNLAssociationItem_H_ +#define _ASN_NGAP_TNLAssociationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_CPTransportLayerInformation.h" +#include "ASN_NGAP_Cause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TNLAssociationItem */ +typedef struct ASN_NGAP_TNLAssociationItem { + ASN_NGAP_CPTransportLayerInformation_t tNLAssociationAddress; + ASN_NGAP_Cause_t cause; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TNLAssociationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TNLAssociationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TNLAssociationItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNLAssociationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationList.c b/src/asn/ngap/ASN_NGAP_TNLAssociationList.c new file mode 100644 index 0000000..fb46c13 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNLAssociationList.h" + +#include "ASN_NGAP_TNLAssociationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TNLAssociationList_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_ASN_NGAP_TNLAssociationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TNLAssociationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TNLAssociationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TNLAssociationList_specs_1 = { + sizeof(struct ASN_NGAP_TNLAssociationList), + offsetof(struct ASN_NGAP_TNLAssociationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationList = { + "TNLAssociationList", + "TNLAssociationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TNLAssociationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_TNLAssociationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNLAssociationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNLAssociationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TNLAssociationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TNLAssociationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TNLAssociationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationList.h b/src/asn/ngap/ASN_NGAP_TNLAssociationList.h new file mode 100644 index 0000000..9f09f64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNLAssociationList_H_ +#define _ASN_NGAP_TNLAssociationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TNLAssociationItem; + +/* ASN_NGAP_TNLAssociationList */ +typedef struct ASN_NGAP_TNLAssociationList { + A_SEQUENCE_OF(struct ASN_NGAP_TNLAssociationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TNLAssociationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TNLAssociationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TNLAssociationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TNLAssociationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNLAssociationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.c b/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.c new file mode 100644 index 0000000..cc16459 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TNLAssociationUsage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_TNLAssociationUsage_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_ASN_NGAP_TNLAssociationUsage_value2enum_1[] = { + { 0, 2, "ue" }, + { 1, 6, "non-ue" }, + { 2, 4, "both" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_TNLAssociationUsage_enum2value_1[] = { + 2, /* both(2) */ + 1, /* non-ue(1) */ + 0 /* ue(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TNLAssociationUsage_specs_1 = { + asn_MAP_ASN_NGAP_TNLAssociationUsage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_TNLAssociationUsage_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_ASN_NGAP_TNLAssociationUsage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationUsage = { + "TNLAssociationUsage", + "TNLAssociationUsage", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1, + sizeof(asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TNLAssociationUsage_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TNLAssociationUsage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TNLAssociationUsage_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.h b/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.h new file mode 100644 index 0000000..7e17fc8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TNLAssociationUsage.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TNLAssociationUsage_H_ +#define _ASN_NGAP_TNLAssociationUsage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TNLAssociationUsage { + ASN_NGAP_TNLAssociationUsage_ue = 0, + ASN_NGAP_TNLAssociationUsage_non_ue = 1, + ASN_NGAP_TNLAssociationUsage_both = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TNLAssociationUsage; + +/* ASN_NGAP_TNLAssociationUsage */ +typedef long ASN_NGAP_TNLAssociationUsage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TNLAssociationUsage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TNLAssociationUsage; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TNLAssociationUsage_specs_1; +asn_struct_free_f ASN_NGAP_TNLAssociationUsage_free; +asn_struct_print_f ASN_NGAP_TNLAssociationUsage_print; +asn_constr_check_f ASN_NGAP_TNLAssociationUsage_constraint; +ber_type_decoder_f ASN_NGAP_TNLAssociationUsage_decode_ber; +der_type_encoder_f ASN_NGAP_TNLAssociationUsage_encode_der; +xer_type_decoder_f ASN_NGAP_TNLAssociationUsage_decode_xer; +xer_type_encoder_f ASN_NGAP_TNLAssociationUsage_encode_xer; +per_type_decoder_f ASN_NGAP_TNLAssociationUsage_decode_uper; +per_type_encoder_f ASN_NGAP_TNLAssociationUsage_encode_uper; +per_type_decoder_f ASN_NGAP_TNLAssociationUsage_decode_aper; +per_type_encoder_f ASN_NGAP_TNLAssociationUsage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TNLAssociationUsage_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.c b/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.c new file mode 100644 index 0000000..23c2b78 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TSCAssistanceInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCAssistanceInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TSCAssistanceInformation, periodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Periodicity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TSCAssistanceInformation, burstArrivalTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BurstArrivalTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "burstArrivalTime" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TSCAssistanceInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P344, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TSCAssistanceInformation_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TSCAssistanceInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* burstArrivalTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCAssistanceInformation_specs_1 = { + sizeof(struct ASN_NGAP_TSCAssistanceInformation), + offsetof(struct ASN_NGAP_TSCAssistanceInformation, _asn_ctx), + asn_MAP_ASN_NGAP_TSCAssistanceInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TSCAssistanceInformation_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCAssistanceInformation = { + "TSCAssistanceInformation", + "TSCAssistanceInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TSCAssistanceInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TSCAssistanceInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TSCAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.h b/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.h new file mode 100644 index 0000000..c4879cb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TSCAssistanceInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TSCAssistanceInformation_H_ +#define _ASN_NGAP_TSCAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_Periodicity.h" +#include "ASN_NGAP_BurstArrivalTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TSCAssistanceInformation */ +typedef struct ASN_NGAP_TSCAssistanceInformation { + ASN_NGAP_Periodicity_t periodicity; + ASN_NGAP_BurstArrivalTime_t *burstArrivalTime; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TSCAssistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCAssistanceInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCAssistanceInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCAssistanceInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TSCAssistanceInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.c b/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.c new file mode 100644 index 0000000..8f615fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TSCTrafficCharacteristics.h" + +#include "ASN_NGAP_TSCAssistanceInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics, tSCAssistanceInformationDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TSCAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tSCAssistanceInformationDL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics, tSCAssistanceInformationUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TSCAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tSCAssistanceInformationUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TSCTrafficCharacteristics, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P345, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tSCAssistanceInformationDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tSCAssistanceInformationUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_specs_1 = { + sizeof(struct ASN_NGAP_TSCTrafficCharacteristics), + offsetof(struct ASN_NGAP_TSCTrafficCharacteristics, _asn_ctx), + asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TSCTrafficCharacteristics_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics = { + "TSCTrafficCharacteristics", + "TSCTrafficCharacteristics", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1, + sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TSCTrafficCharacteristics_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.h b/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.h new file mode 100644 index 0000000..121061b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TSCTrafficCharacteristics.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TSCTrafficCharacteristics_H_ +#define _ASN_NGAP_TSCTrafficCharacteristics_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TSCAssistanceInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TSCTrafficCharacteristics */ +typedef struct ASN_NGAP_TSCTrafficCharacteristics { + struct ASN_NGAP_TSCAssistanceInformation *tSCAssistanceInformationDL; /* OPTIONAL */ + struct ASN_NGAP_TSCAssistanceInformation *tSCAssistanceInformationUL; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TSCTrafficCharacteristics_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TSCTrafficCharacteristics; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TSCTrafficCharacteristics_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TSCTrafficCharacteristics_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TSCTrafficCharacteristics_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TWAP-ID.c b/src/asn/ngap/ASN_NGAP_TWAP-ID.c new file mode 100644 index 0000000..368843f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TWAP-ID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TWAP-ID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TWAP_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWAP_ID = { + "TWAP-ID", + "TWAP-ID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TWAP_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TWAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TWAP_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TWAP_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TWAP_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TWAP_ID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TWAP-ID.h b/src/asn/ngap/ASN_NGAP_TWAP-ID.h new file mode 100644 index 0000000..0e8d264 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TWAP-ID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TWAP_ID_H_ +#define _ASN_NGAP_TWAP_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TWAP-ID */ +typedef OCTET_STRING_t ASN_NGAP_TWAP_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWAP_ID; +asn_struct_free_f ASN_NGAP_TWAP_ID_free; +asn_struct_print_f ASN_NGAP_TWAP_ID_print; +asn_constr_check_f ASN_NGAP_TWAP_ID_constraint; +ber_type_decoder_f ASN_NGAP_TWAP_ID_decode_ber; +der_type_encoder_f ASN_NGAP_TWAP_ID_encode_der; +xer_type_decoder_f ASN_NGAP_TWAP_ID_decode_xer; +xer_type_encoder_f ASN_NGAP_TWAP_ID_encode_xer; +per_type_decoder_f ASN_NGAP_TWAP_ID_decode_uper; +per_type_encoder_f ASN_NGAP_TWAP_ID_encode_uper; +per_type_decoder_f ASN_NGAP_TWAP_ID_decode_aper; +per_type_encoder_f ASN_NGAP_TWAP_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TWAP_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TWIF-ID.c b/src/asn/ngap/ASN_NGAP_TWIF-ID.c new file mode 100644 index 0000000..3486836 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TWIF-ID.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TWIF-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_tWIF_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 == 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_ASN_NGAP_tWIF_ID_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 32, 32 } /* (SIZE(32..32,...)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_TWIF_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_ASN_NGAP_TWIF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TWIF_ID, choice.tWIF_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_tWIF_ID_constr_2, memb_ASN_NGAP_tWIF_ID_constraint_1 }, + 0, 0, /* No default value */ + "tWIF-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_TWIF_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TWIF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tWIF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TWIF_ID_specs_1 = { + sizeof(struct ASN_NGAP_TWIF_ID), + offsetof(struct ASN_NGAP_TWIF_ID, _asn_ctx), + offsetof(struct ASN_NGAP_TWIF_ID, present), + sizeof(((struct ASN_NGAP_TWIF_ID *)0)->present), + asn_MAP_ASN_NGAP_TWIF_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWIF_ID = { + "TWIF-ID", + "TWIF-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_ASN_NGAP_TWIF_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_TWIF_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TWIF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TWIF-ID.h b/src/asn/ngap/ASN_NGAP_TWIF-ID.h new file mode 100644 index 0000000..e563aad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TWIF-ID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TWIF_ID_H_ +#define _ASN_NGAP_TWIF_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TWIF_ID_PR { + ASN_NGAP_TWIF_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_TWIF_ID_PR_tWIF_ID, + ASN_NGAP_TWIF_ID_PR_choice_Extensions +} ASN_NGAP_TWIF_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_TWIF-ID */ +typedef struct ASN_NGAP_TWIF_ID { + ASN_NGAP_TWIF_ID_PR present; + union ASN_NGAP_TWIF_ID_u { + BIT_STRING_t tWIF_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TWIF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TWIF_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TWIF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TWIF_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TWIF_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TWIF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.c b/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.c new file mode 100644 index 0000000..e41588b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetHomeENB-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_homeENB_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 asn_per_constraints_t asn_PER_memb_ASN_NGAP_homeENB_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetHomeENB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID, pLMNidentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PLMNIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pLMNidentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID, homeENB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_homeENB_ID_constr_3, memb_ASN_NGAP_homeENB_ID_constraint_1 }, + 0, 0, /* No default value */ + "homeENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetHomeENB_ID, selected_EPS_TAI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EPS_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selected-EPS-TAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetHomeENB_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P327, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetHomeENB_ID_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetHomeENB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* homeENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* selected-EPS-TAI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetHomeENB_ID_specs_1 = { + sizeof(struct ASN_NGAP_TargetHomeENB_ID), + offsetof(struct ASN_NGAP_TargetHomeENB_ID, _asn_ctx), + asn_MAP_ASN_NGAP_TargetHomeENB_ID_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetHomeENB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetHomeENB_ID = { + "TargetHomeENB-ID", + "TargetHomeENB-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetHomeENB_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetHomeENB_ID_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetHomeENB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.h b/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.h new file mode 100644 index 0000000..f462b5e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetHomeENB-ID.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetHomeENB_ID_H_ +#define _ASN_NGAP_TargetHomeENB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PLMNIdentity.h" +#include +#include "ASN_NGAP_EPS-TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetHomeENB-ID */ +typedef struct ASN_NGAP_TargetHomeENB_ID { + ASN_NGAP_PLMNIdentity_t pLMNidentity; + BIT_STRING_t homeENB_ID; + ASN_NGAP_EPS_TAI_t selected_EPS_TAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetHomeENB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetHomeENB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetHomeENB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetHomeENB_ID_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetHomeENB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetID.c b/src/asn/ngap/ASN_NGAP_TargetID.c new file mode 100644 index 0000000..46f7827 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetID.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetID.h" + +#include "ASN_NGAP_TargetRANNodeID.h" +#include "ASN_NGAP_TargeteNB-ID.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TargetID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetID_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_TargetID, choice.targetRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TargetRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRANNodeID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_TargetID, choice.targeteNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TargeteNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targeteNB-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_TargetID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targeteNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TargetID_specs_1 = { + sizeof(struct ASN_NGAP_TargetID), + offsetof(struct ASN_NGAP_TargetID, _asn_ctx), + offsetof(struct ASN_NGAP_TargetID, present), + sizeof(((struct ASN_NGAP_TargetID *)0)->present), + asn_MAP_ASN_NGAP_TargetID_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetID = { + "TargetID", + "TargetID", + &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_ASN_NGAP_TargetID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_TargetID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetID.h b/src/asn/ngap/ASN_NGAP_TargetID.h new file mode 100644 index 0000000..3d62e29 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetID.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetID_H_ +#define _ASN_NGAP_TargetID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TargetID_PR { + ASN_NGAP_TargetID_PR_NOTHING, /* No components present */ + ASN_NGAP_TargetID_PR_targetRANNodeID, + ASN_NGAP_TargetID_PR_targeteNB_ID, + ASN_NGAP_TargetID_PR_choice_Extensions +} ASN_NGAP_TargetID_PR; + +/* Forward declarations */ +struct ASN_NGAP_TargetRANNodeID; +struct ASN_NGAP_TargeteNB_ID; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_TargetID */ +typedef struct ASN_NGAP_TargetID { + ASN_NGAP_TargetID_PR present; + union ASN_NGAP_TargetID_u { + struct ASN_NGAP_TargetRANNodeID *targetRANNodeID; + struct ASN_NGAP_TargeteNB_ID *targeteNB_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_TargetID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetID_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TargetID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c new file mode 100644 index 0000000..7c8d355 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h" + +#include "ASN_NGAP_Cell-CAGInformation.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer, cell_CAGInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Cell_CAGInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cell-CAGInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P329, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell-CAGInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_specs_1 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer = { + "TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer", + "TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h new file mode 100644 index 0000000..1d8a869 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_H_ +#define _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_Cell_CAGInformation; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer */ +typedef struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer { + struct ASN_NGAP_Cell_CAGInformation *cell_CAGInformation; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c new file mode 100644 index 0000000..04e9307 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer, rRCContainer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RRCContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rRCContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P328, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rRCContainer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_specs_1 = { + sizeof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer), + offsetof(struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer = { + "TargetNGRANNode-ToSourceNGRANNode-TransparentContainer", + "TargetNGRANNode-ToSourceNGRANNode-TransparentContainer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h new file mode 100644 index 0000000..6dd52b9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_H_ +#define _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_RRCContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer */ +typedef struct ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer { + ASN_NGAP_RRCContainer_t rRCContainer; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.c b/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.c new file mode 100644 index 0000000..f716f87 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetNSSAI-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAI_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAI_Item, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetNSSAI_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P330, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetNSSAI_Item_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNSSAI_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_Item_specs_1 = { + sizeof(struct ASN_NGAP_TargetNSSAI_Item), + offsetof(struct ASN_NGAP_TargetNSSAI_Item, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNSSAI_Item_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetNSSAI_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI_Item = { + "TargetNSSAI-Item", + "TargetNSSAI-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNSSAI_Item_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNSSAI_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.h b/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.h new file mode 100644 index 0000000..cf7569b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAI-Item.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetNSSAI_Item_H_ +#define _ASN_NGAP_TargetNSSAI_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetNSSAI-Item */ +typedef struct ASN_NGAP_TargetNSSAI_Item { + ASN_NGAP_S_NSSAI_t s_NSSAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNSSAI_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAI_Item_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetNSSAI_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAI.c b/src/asn/ngap/ASN_NGAP_TargetNSSAI.c new file mode 100644 index 0000000..39de795 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAI.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetNSSAI.h" + +#include "ASN_NGAP_TargetNSSAI-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_TargetNSSAI_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_ASN_NGAP_TargetNSSAI_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_TargetNSSAI_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNSSAI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_specs_1 = { + sizeof(struct ASN_NGAP_TargetNSSAI), + offsetof(struct ASN_NGAP_TargetNSSAI, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI = { + "TargetNSSAI", + "TargetNSSAI", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_TargetNSSAI_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNSSAI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TargetNSSAI_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_TargetNSSAI_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_TargetNSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAI.h b/src/asn/ngap/ASN_NGAP_TargetNSSAI.h new file mode 100644 index 0000000..d135f3b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetNSSAI_H_ +#define _ASN_NGAP_TargetNSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_TargetNSSAI_Item; + +/* ASN_NGAP_TargetNSSAI */ +typedef struct ASN_NGAP_TargetNSSAI { + A_SEQUENCE_OF(struct ASN_NGAP_TargetNSSAI_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAI; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_TargetNSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAI_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TargetNSSAI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetNSSAI_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.c b/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.c new file mode 100644 index 0000000..81b3935 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetNSSAIInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAIInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAIInformation, targetNSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TargetNSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetNSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetNSSAIInformation, indexToRFSP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_IndexToRFSP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "indexToRFSP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetNSSAIInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P331, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetNSSAIInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetNSSAIInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetNSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* indexToRFSP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAIInformation_specs_1 = { + sizeof(struct ASN_NGAP_TargetNSSAIInformation), + offsetof(struct ASN_NGAP_TargetNSSAIInformation, _asn_ctx), + asn_MAP_ASN_NGAP_TargetNSSAIInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetNSSAIInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAIInformation = { + "TargetNSSAIInformation", + "TargetNSSAIInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetNSSAIInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetNSSAIInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetNSSAIInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.h b/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.h new file mode 100644 index 0000000..58aa352 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetNSSAIInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetNSSAIInformation_H_ +#define _ASN_NGAP_TargetNSSAIInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TargetNSSAI.h" +#include "ASN_NGAP_IndexToRFSP.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetNSSAIInformation */ +typedef struct ASN_NGAP_TargetNSSAIInformation { + ASN_NGAP_TargetNSSAI_t targetNSSAI; + ASN_NGAP_IndexToRFSP_t indexToRFSP; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetNSSAIInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetNSSAIInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetNSSAIInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetNSSAIInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetNSSAIInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.c b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.c new file mode 100644 index 0000000..9d271dc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetRANNodeID-RIM.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM, selectedTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetRANNodeID_RIM, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P333, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_specs_1 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_RIM), + offsetof(struct ASN_NGAP_TargetRANNodeID_RIM, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetRANNodeID_RIM_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM = { + "TargetRANNodeID-RIM", + "TargetRANNodeID-RIM", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_RIM_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.h b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.h new file mode 100644 index 0000000..5696381 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-RIM.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetRANNodeID_RIM_H_ +#define _ASN_NGAP_TargetRANNodeID_RIM_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetRANNodeID-RIM */ +typedef struct ASN_NGAP_TargetRANNodeID_RIM { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + ASN_NGAP_TAI_t selectedTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_RIM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_RIM; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_RIM_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_RIM_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetRANNodeID_RIM_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.c b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.c new file mode 100644 index 0000000..eb677ad --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetRANNodeID-SON.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_SON_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID_SON, selectedTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetRANNodeID_SON, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P334, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetRANNodeID_SON_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_SON_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_SON_specs_1 = { + sizeof(struct ASN_NGAP_TargetRANNodeID_SON), + offsetof(struct ASN_NGAP_TargetRANNodeID_SON, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_SON_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetRANNodeID_SON_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON = { + "TargetRANNodeID-SON", + "TargetRANNodeID-SON", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_SON_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_SON_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_SON_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.h b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.h new file mode 100644 index 0000000..1ce0299 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID-SON.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetRANNodeID_SON_H_ +#define _ASN_NGAP_TargetRANNodeID_SON_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetRANNodeID-SON */ +typedef struct ASN_NGAP_TargetRANNodeID_SON { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + ASN_NGAP_TAI_t selectedTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_SON_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID_SON; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_SON_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_SON_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetRANNodeID_SON_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID.c b/src/asn/ngap/ASN_NGAP_TargetRANNodeID.c new file mode 100644 index 0000000..c459a53 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetRANNodeID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID, globalRANNodeID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalRANNodeID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalRANNodeID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRANNodeID, selectedTAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedTAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetRANNodeID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P332, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetRANNodeID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRANNodeID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalRANNodeID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedTAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_specs_1 = { + sizeof(struct ASN_NGAP_TargetRANNodeID), + offsetof(struct ASN_NGAP_TargetRANNodeID, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRANNodeID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetRANNodeID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID = { + "TargetRANNodeID", + "TargetRANNodeID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRANNodeID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRANNodeID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRANNodeID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetRANNodeID.h b/src/asn/ngap/ASN_NGAP_TargetRANNodeID.h new file mode 100644 index 0000000..f39ab84 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRANNodeID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetRANNodeID_H_ +#define _ASN_NGAP_TargetRANNodeID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalRANNodeID.h" +#include "ASN_NGAP_TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetRANNodeID */ +typedef struct ASN_NGAP_TargetRANNodeID { + ASN_NGAP_GlobalRANNodeID_t globalRANNodeID; + ASN_NGAP_TAI_t selectedTAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRANNodeID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRANNodeID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRANNodeID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRANNodeID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetRANNodeID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetRNC-ID.c b/src/asn/ngap/ASN_NGAP_TargetRNC-ID.c new file mode 100644 index 0000000..f6bbd5c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRNC-ID.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetRNC-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRNC_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRNC_ID, lAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargetRNC_ID, rNC_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RNC_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rNC-ID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TargetRNC_ID, extendedRNC_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ExtendedRNC_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extendedRNC-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargetRNC_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P335, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargetRNC_ID_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargetRNC_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rNC-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* extendedRNC-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRNC_ID_specs_1 = { + sizeof(struct ASN_NGAP_TargetRNC_ID), + offsetof(struct ASN_NGAP_TargetRNC_ID, _asn_ctx), + asn_MAP_ASN_NGAP_TargetRNC_ID_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargetRNC_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRNC_ID = { + "TargetRNC-ID", + "TargetRNC-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetRNC_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargetRNC_ID_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_TargetRNC_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetRNC-ID.h b/src/asn/ngap/ASN_NGAP_TargetRNC-ID.h new file mode 100644 index 0000000..344c60b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetRNC-ID.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetRNC_ID_H_ +#define _ASN_NGAP_TargetRNC_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_LAI.h" +#include "ASN_NGAP_RNC-ID.h" +#include "ASN_NGAP_ExtendedRNC-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargetRNC-ID */ +typedef struct ASN_NGAP_TargetRNC_ID { + ASN_NGAP_LAI_t lAI; + ASN_NGAP_RNC_ID_t rNC_ID; + ASN_NGAP_ExtendedRNC_ID_t *extendedRNC_ID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargetRNC_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetRNC_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargetRNC_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargetRNC_ID_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetRNC_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.c new file mode 100644 index 0000000..92b7a6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargetToSource-TransparentContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer = { + "TargetToSource-TransparentContainer", + "TargetToSource-TransparentContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.h new file mode 100644 index 0000000..a676395 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargetToSource-TransparentContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargetToSource_TransparentContainer_H_ +#define _ASN_NGAP_TargetToSource_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TargetToSource-TransparentContainer */ +typedef OCTET_STRING_t ASN_NGAP_TargetToSource_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargetToSource_TransparentContainer; +asn_struct_free_f ASN_NGAP_TargetToSource_TransparentContainer_free; +asn_struct_print_f ASN_NGAP_TargetToSource_TransparentContainer_print; +asn_constr_check_f ASN_NGAP_TargetToSource_TransparentContainer_constraint; +ber_type_decoder_f ASN_NGAP_TargetToSource_TransparentContainer_decode_ber; +der_type_encoder_f ASN_NGAP_TargetToSource_TransparentContainer_encode_der; +xer_type_decoder_f ASN_NGAP_TargetToSource_TransparentContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_TargetToSource_TransparentContainer_encode_xer; +per_type_decoder_f ASN_NGAP_TargetToSource_TransparentContainer_decode_uper; +per_type_encoder_f ASN_NGAP_TargetToSource_TransparentContainer_encode_uper; +per_type_decoder_f ASN_NGAP_TargetToSource_TransparentContainer_decode_aper; +per_type_encoder_f ASN_NGAP_TargetToSource_TransparentContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargetToSource_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargeteNB-ID.c b/src/asn/ngap/ASN_NGAP_TargeteNB-ID.c new file mode 100644 index 0000000..0808ebb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargeteNB-ID.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargeteNB-ID.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TargeteNB_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargeteNB_ID, globalENB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalNgENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalENB-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TargeteNB_ID, selected_EPS_TAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EPS_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selected-EPS-TAI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TargeteNB_ID, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P326, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TargeteNB_ID_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TargeteNB_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalENB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selected-EPS-TAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargeteNB_ID_specs_1 = { + sizeof(struct ASN_NGAP_TargeteNB_ID), + offsetof(struct ASN_NGAP_TargeteNB_ID, _asn_ctx), + asn_MAP_ASN_NGAP_TargeteNB_ID_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TargeteNB_ID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargeteNB_ID = { + "TargeteNB-ID", + "TargeteNB-ID", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargeteNB_ID_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TargeteNB_ID_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TargeteNB_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargeteNB-ID.h b/src/asn/ngap/ASN_NGAP_TargeteNB-ID.h new file mode 100644 index 0000000..b1d7aa3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargeteNB-ID.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargeteNB_ID_H_ +#define _ASN_NGAP_TargeteNB_ID_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GlobalNgENB-ID.h" +#include "ASN_NGAP_EPS-TAI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TargeteNB-ID */ +typedef struct ASN_NGAP_TargeteNB_ID { + ASN_NGAP_GlobalNgENB_ID_t globalENB_ID; + ASN_NGAP_EPS_TAI_t selected_EPS_TAI; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TargeteNB_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargeteNB_ID; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TargeteNB_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TargeteNB_ID_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargeteNB_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.c b/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.c new file mode 100644 index 0000000..dfba608 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TargettoSource-Failure-TransparentContainer.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer = { + "TargettoSource-Failure-TransparentContainer", + "TargettoSource-Failure-TransparentContainer", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1, + sizeof(asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.h b/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.h new file mode 100644 index 0000000..213a4f5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TargettoSource-Failure-TransparentContainer.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TargettoSource_Failure_TransparentContainer_H_ +#define _ASN_NGAP_TargettoSource_Failure_TransparentContainer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TargettoSource-Failure-TransparentContainer */ +typedef OCTET_STRING_t ASN_NGAP_TargettoSource_Failure_TransparentContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TargettoSource_Failure_TransparentContainer; +asn_struct_free_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_free; +asn_struct_print_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_print; +asn_constr_check_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_constraint; +ber_type_decoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_decode_ber; +der_type_encoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_encode_der; +xer_type_decoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_decode_xer; +xer_type_encoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_encode_xer; +per_type_decoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_decode_uper; +per_type_encoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_encode_uper; +per_type_decoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_decode_aper; +per_type_encoder_f ASN_NGAP_TargettoSource_Failure_TransparentContainer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TargettoSource_Failure_TransparentContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Threshold-RSRP.c b/src/asn/ngap/ASN_NGAP_Threshold-RSRP.c new file mode 100644 index 0000000..6184ca1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-RSRP.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Threshold-RSRP.h" + +int +ASN_NGAP_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_Threshold_RSRP_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_RSRP = { + "Threshold-RSRP", + "Threshold-RSRP", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1, + sizeof(asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_RSRP_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Threshold_RSRP_constr_1, ASN_NGAP_Threshold_RSRP_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Threshold-RSRP.h b/src/asn/ngap/ASN_NGAP_Threshold-RSRP.h new file mode 100644 index 0000000..e9250d9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-RSRP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Threshold_RSRP_H_ +#define _ASN_NGAP_Threshold_RSRP_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Threshold-RSRP */ +typedef long ASN_NGAP_Threshold_RSRP_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Threshold_RSRP_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_RSRP; +asn_struct_free_f ASN_NGAP_Threshold_RSRP_free; +asn_struct_print_f ASN_NGAP_Threshold_RSRP_print; +asn_constr_check_f ASN_NGAP_Threshold_RSRP_constraint; +ber_type_decoder_f ASN_NGAP_Threshold_RSRP_decode_ber; +der_type_encoder_f ASN_NGAP_Threshold_RSRP_encode_der; +xer_type_decoder_f ASN_NGAP_Threshold_RSRP_decode_xer; +xer_type_encoder_f ASN_NGAP_Threshold_RSRP_encode_xer; +per_type_decoder_f ASN_NGAP_Threshold_RSRP_decode_uper; +per_type_encoder_f ASN_NGAP_Threshold_RSRP_encode_uper; +per_type_decoder_f ASN_NGAP_Threshold_RSRP_decode_aper; +per_type_encoder_f ASN_NGAP_Threshold_RSRP_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Threshold_RSRP_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.c b/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.c new file mode 100644 index 0000000..731c012 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Threshold-RSRQ.h" + +int +ASN_NGAP_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_Threshold_RSRQ_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_RSRQ = { + "Threshold-RSRQ", + "Threshold-RSRQ", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1, + sizeof(asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_RSRQ_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Threshold_RSRQ_constr_1, ASN_NGAP_Threshold_RSRQ_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.h b/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.h new file mode 100644 index 0000000..390e658 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-RSRQ.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Threshold_RSRQ_H_ +#define _ASN_NGAP_Threshold_RSRQ_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Threshold-RSRQ */ +typedef long ASN_NGAP_Threshold_RSRQ_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Threshold_RSRQ_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_RSRQ; +asn_struct_free_f ASN_NGAP_Threshold_RSRQ_free; +asn_struct_print_f ASN_NGAP_Threshold_RSRQ_print; +asn_constr_check_f ASN_NGAP_Threshold_RSRQ_constraint; +ber_type_decoder_f ASN_NGAP_Threshold_RSRQ_decode_ber; +der_type_encoder_f ASN_NGAP_Threshold_RSRQ_encode_der; +xer_type_decoder_f ASN_NGAP_Threshold_RSRQ_decode_xer; +xer_type_encoder_f ASN_NGAP_Threshold_RSRQ_encode_xer; +per_type_decoder_f ASN_NGAP_Threshold_RSRQ_decode_uper; +per_type_encoder_f ASN_NGAP_Threshold_RSRQ_encode_uper; +per_type_decoder_f ASN_NGAP_Threshold_RSRQ_decode_aper; +per_type_encoder_f ASN_NGAP_Threshold_RSRQ_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Threshold_RSRQ_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_Threshold-SINR.c b/src/asn/ngap/ASN_NGAP_Threshold-SINR.c new file mode 100644 index 0000000..cadd4c2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-SINR.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_Threshold-SINR.h" + +int +ASN_NGAP_Threshold_SINR_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_Threshold_SINR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_Threshold_SINR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_SINR = { + "Threshold-SINR", + "Threshold-SINR", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_Threshold_SINR_tags_1, + sizeof(asn_DEF_ASN_NGAP_Threshold_SINR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_SINR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_Threshold_SINR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_Threshold_SINR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_Threshold_SINR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_Threshold_SINR_constr_1, ASN_NGAP_Threshold_SINR_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_Threshold-SINR.h b/src/asn/ngap/ASN_NGAP_Threshold-SINR.h new file mode 100644 index 0000000..1508d69 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_Threshold-SINR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_Threshold_SINR_H_ +#define _ASN_NGAP_Threshold_SINR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_Threshold-SINR */ +typedef long ASN_NGAP_Threshold_SINR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_Threshold_SINR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_Threshold_SINR; +asn_struct_free_f ASN_NGAP_Threshold_SINR_free; +asn_struct_print_f ASN_NGAP_Threshold_SINR_print; +asn_constr_check_f ASN_NGAP_Threshold_SINR_constraint; +ber_type_decoder_f ASN_NGAP_Threshold_SINR_decode_ber; +der_type_encoder_f ASN_NGAP_Threshold_SINR_encode_der; +xer_type_decoder_f ASN_NGAP_Threshold_SINR_decode_xer; +xer_type_encoder_f ASN_NGAP_Threshold_SINR_encode_xer; +per_type_decoder_f ASN_NGAP_Threshold_SINR_decode_uper; +per_type_encoder_f ASN_NGAP_Threshold_SINR_encode_uper; +per_type_decoder_f ASN_NGAP_Threshold_SINR_decode_aper; +per_type_encoder_f ASN_NGAP_Threshold_SINR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_Threshold_SINR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeStamp.c b/src/asn/ngap/ASN_NGAP_TimeStamp.c new file mode 100644 index 0000000..185046b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeStamp.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeStamp.h" + +int +ASN_NGAP_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 == 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_ASN_NGAP_TimeStamp_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_ASN_NGAP_TimeStamp_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeStamp = { + "TimeStamp", + "TimeStamp", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_TimeStamp_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeStamp_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeStamp_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeStamp_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeStamp_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeStamp_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimeStamp_constr_1, ASN_NGAP_TimeStamp_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeStamp.h b/src/asn/ngap/ASN_NGAP_TimeStamp.h new file mode 100644 index 0000000..9ee4571 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeStamp.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeStamp_H_ +#define _ASN_NGAP_TimeStamp_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TimeStamp */ +typedef OCTET_STRING_t ASN_NGAP_TimeStamp_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeStamp_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeStamp; +asn_struct_free_f ASN_NGAP_TimeStamp_free; +asn_struct_print_f ASN_NGAP_TimeStamp_print; +asn_constr_check_f ASN_NGAP_TimeStamp_constraint; +ber_type_decoder_f ASN_NGAP_TimeStamp_decode_ber; +der_type_encoder_f ASN_NGAP_TimeStamp_encode_der; +xer_type_decoder_f ASN_NGAP_TimeStamp_decode_xer; +xer_type_encoder_f ASN_NGAP_TimeStamp_encode_xer; +per_type_decoder_f ASN_NGAP_TimeStamp_decode_uper; +per_type_encoder_f ASN_NGAP_TimeStamp_encode_uper; +per_type_decoder_f ASN_NGAP_TimeStamp_decode_aper; +per_type_encoder_f ASN_NGAP_TimeStamp_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeStamp_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.c b/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.c new file mode 100644 index 0000000..5efce08 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.c @@ -0,0 +1,151 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeSyncAssistanceInfo.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_NGAP_uUTimeSyncErrorBudget_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 <= 1000000)) { + /* Constraint 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_ASN_NGAP_timeDistributionIndication_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_memb_ASN_NGAP_uUTimeSyncErrorBudget_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 20, -1, 1, 1000000 } /* (1..1000000,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_timeDistributionIndication_value2enum_2[] = { + { 0, 7, "enabled" }, + { 1, 8, "disabled" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_timeDistributionIndication_enum2value_2[] = { + 1, /* disabled(1) */ + 0 /* enabled(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_timeDistributionIndication_specs_2 = { + asn_MAP_ASN_NGAP_timeDistributionIndication_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_timeDistributionIndication_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_ASN_NGAP_timeDistributionIndication_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_ASN_NGAP_timeDistributionIndication_2 = { + "timeDistributionIndication", + "timeDistributionIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2, + sizeof(asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2) + /sizeof(asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2) + /sizeof(asn_DEF_ASN_NGAP_timeDistributionIndication_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_timeDistributionIndication_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_timeDistributionIndication_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo, timeDistributionIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_timeDistributionIndication_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDistributionIndication" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo, uUTimeSyncErrorBudget), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_uUTimeSyncErrorBudget_constr_6, memb_ASN_NGAP_uUTimeSyncErrorBudget_constraint_1 }, + 0, 0, /* No default value */ + "uUTimeSyncErrorBudget" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P336, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeDistributionIndication */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uUTimeSyncErrorBudget */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_specs_1 = { + sizeof(struct ASN_NGAP_TimeSyncAssistanceInfo), + offsetof(struct ASN_NGAP_TimeSyncAssistanceInfo, _asn_ctx), + asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TimeSyncAssistanceInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo = { + "TimeSyncAssistanceInfo", + "TimeSyncAssistanceInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.h b/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.h new file mode 100644 index 0000000..3168874 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeSyncAssistanceInfo.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeSyncAssistanceInfo_H_ +#define _ASN_NGAP_TimeSyncAssistanceInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TimeSyncAssistanceInfo__timeDistributionIndication { + ASN_NGAP_TimeSyncAssistanceInfo__timeDistributionIndication_enabled = 0, + ASN_NGAP_TimeSyncAssistanceInfo__timeDistributionIndication_disabled = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TimeSyncAssistanceInfo__timeDistributionIndication; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TimeSyncAssistanceInfo */ +typedef struct ASN_NGAP_TimeSyncAssistanceInfo { + long timeDistributionIndication; + long *uUTimeSyncErrorBudget; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TimeSyncAssistanceInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_timeDistributionIndication_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeSyncAssistanceInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TimeSyncAssistanceInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TimeSyncAssistanceInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeSyncAssistanceInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeToTrigger.c b/src/asn/ngap/ASN_NGAP_TimeToTrigger.c new file mode 100644 index 0000000..87732a0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeToTrigger.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeToTrigger.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeToTrigger_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 asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_TimeToTrigger_value2enum_1[] = { + { 0, 3, "ms0" }, + { 1, 4, "ms40" }, + { 2, 4, "ms64" }, + { 3, 4, "ms80" }, + { 4, 5, "ms100" }, + { 5, 5, "ms128" }, + { 6, 5, "ms160" }, + { 7, 5, "ms256" }, + { 8, 5, "ms320" }, + { 9, 5, "ms480" }, + { 10, 5, "ms512" }, + { 11, 5, "ms640" }, + { 12, 6, "ms1024" }, + { 13, 6, "ms1280" }, + { 14, 6, "ms2560" }, + { 15, 6, "ms5120" } +}; +static const unsigned int asn_MAP_ASN_NGAP_TimeToTrigger_enum2value_1[] = { + 0, /* ms0(0) */ + 4, /* ms100(4) */ + 12, /* ms1024(12) */ + 5, /* ms128(5) */ + 13, /* ms1280(13) */ + 6, /* ms160(6) */ + 7, /* ms256(7) */ + 14, /* ms2560(14) */ + 8, /* ms320(8) */ + 1, /* ms40(1) */ + 9, /* ms480(9) */ + 10, /* ms512(10) */ + 15, /* ms5120(15) */ + 2, /* ms64(2) */ + 11, /* ms640(11) */ + 3 /* ms80(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimeToTrigger_specs_1 = { + asn_MAP_ASN_NGAP_TimeToTrigger_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_TimeToTrigger_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_NGAP_TimeToTrigger_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeToTrigger = { + "TimeToTrigger", + "TimeToTrigger", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TimeToTrigger_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeToTrigger_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeToTrigger_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeToTrigger_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeToTrigger_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeToTrigger_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimeToTrigger_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TimeToTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeToTrigger.h b/src/asn/ngap/ASN_NGAP_TimeToTrigger.h new file mode 100644 index 0000000..060030d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeToTrigger.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeToTrigger_H_ +#define _ASN_NGAP_TimeToTrigger_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TimeToTrigger { + ASN_NGAP_TimeToTrigger_ms0 = 0, + ASN_NGAP_TimeToTrigger_ms40 = 1, + ASN_NGAP_TimeToTrigger_ms64 = 2, + ASN_NGAP_TimeToTrigger_ms80 = 3, + ASN_NGAP_TimeToTrigger_ms100 = 4, + ASN_NGAP_TimeToTrigger_ms128 = 5, + ASN_NGAP_TimeToTrigger_ms160 = 6, + ASN_NGAP_TimeToTrigger_ms256 = 7, + ASN_NGAP_TimeToTrigger_ms320 = 8, + ASN_NGAP_TimeToTrigger_ms480 = 9, + ASN_NGAP_TimeToTrigger_ms512 = 10, + ASN_NGAP_TimeToTrigger_ms640 = 11, + ASN_NGAP_TimeToTrigger_ms1024 = 12, + ASN_NGAP_TimeToTrigger_ms1280 = 13, + ASN_NGAP_TimeToTrigger_ms2560 = 14, + ASN_NGAP_TimeToTrigger_ms5120 = 15 +} e_ASN_NGAP_TimeToTrigger; + +/* ASN_NGAP_TimeToTrigger */ +typedef long ASN_NGAP_TimeToTrigger_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeToTrigger_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeToTrigger; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimeToTrigger_specs_1; +asn_struct_free_f ASN_NGAP_TimeToTrigger_free; +asn_struct_print_f ASN_NGAP_TimeToTrigger_print; +asn_constr_check_f ASN_NGAP_TimeToTrigger_constraint; +ber_type_decoder_f ASN_NGAP_TimeToTrigger_decode_ber; +der_type_encoder_f ASN_NGAP_TimeToTrigger_encode_der; +xer_type_decoder_f ASN_NGAP_TimeToTrigger_decode_xer; +xer_type_encoder_f ASN_NGAP_TimeToTrigger_encode_xer; +per_type_decoder_f ASN_NGAP_TimeToTrigger_decode_uper; +per_type_encoder_f ASN_NGAP_TimeToTrigger_encode_uper; +per_type_decoder_f ASN_NGAP_TimeToTrigger_decode_aper; +per_type_encoder_f ASN_NGAP_TimeToTrigger_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeToTrigger_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeToWait.c b/src/asn/ngap/ASN_NGAP_TimeToWait.c new file mode 100644 index 0000000..56ee3b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeToWait.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeToWait.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimeToWait_specs_1 = { + asn_MAP_ASN_NGAP_TimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_TimeToWait_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeToWait = { + "TimeToWait", + "TimeToWait", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TimeToWait_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeToWait_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeToWait_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeToWait_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeToWait_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeToWait_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimeToWait_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TimeToWait_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeToWait.h b/src/asn/ngap/ASN_NGAP_TimeToWait.h new file mode 100644 index 0000000..34b883a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeToWait.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeToWait_H_ +#define _ASN_NGAP_TimeToWait_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TimeToWait { + ASN_NGAP_TimeToWait_v1s = 0, + ASN_NGAP_TimeToWait_v2s = 1, + ASN_NGAP_TimeToWait_v5s = 2, + ASN_NGAP_TimeToWait_v10s = 3, + ASN_NGAP_TimeToWait_v20s = 4, + ASN_NGAP_TimeToWait_v60s = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TimeToWait; + +/* ASN_NGAP_TimeToWait */ +typedef long ASN_NGAP_TimeToWait_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeToWait_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeToWait; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimeToWait_specs_1; +asn_struct_free_f ASN_NGAP_TimeToWait_free; +asn_struct_print_f ASN_NGAP_TimeToWait_print; +asn_constr_check_f ASN_NGAP_TimeToWait_constraint; +ber_type_decoder_f ASN_NGAP_TimeToWait_decode_ber; +der_type_encoder_f ASN_NGAP_TimeToWait_encode_der; +xer_type_decoder_f ASN_NGAP_TimeToWait_decode_xer; +xer_type_encoder_f ASN_NGAP_TimeToWait_encode_xer; +per_type_decoder_f ASN_NGAP_TimeToWait_decode_uper; +per_type_encoder_f ASN_NGAP_TimeToWait_encode_uper; +per_type_decoder_f ASN_NGAP_TimeToWait_decode_aper; +per_type_encoder_f ASN_NGAP_TimeToWait_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeToWait_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.c b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.c new file mode 100644 index 0000000..a26dbd8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeUEStayedInCell.h" + +int +ASN_NGAP_TimeUEStayedInCell_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_ASN_NGAP_TimeUEStayedInCell_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_ASN_NGAP_TimeUEStayedInCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeUEStayedInCell = { + "TimeUEStayedInCell", + "TimeUEStayedInCell", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCell_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimeUEStayedInCell_constr_1, ASN_NGAP_TimeUEStayedInCell_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.h b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.h new file mode 100644 index 0000000..c4294ef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCell.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeUEStayedInCell_H_ +#define _ASN_NGAP_TimeUEStayedInCell_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TimeUEStayedInCell */ +typedef long ASN_NGAP_TimeUEStayedInCell_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeUEStayedInCell_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeUEStayedInCell; +asn_struct_free_f ASN_NGAP_TimeUEStayedInCell_free; +asn_struct_print_f ASN_NGAP_TimeUEStayedInCell_print; +asn_constr_check_f ASN_NGAP_TimeUEStayedInCell_constraint; +ber_type_decoder_f ASN_NGAP_TimeUEStayedInCell_decode_ber; +der_type_encoder_f ASN_NGAP_TimeUEStayedInCell_encode_der; +xer_type_decoder_f ASN_NGAP_TimeUEStayedInCell_decode_xer; +xer_type_encoder_f ASN_NGAP_TimeUEStayedInCell_encode_xer; +per_type_decoder_f ASN_NGAP_TimeUEStayedInCell_decode_uper; +per_type_encoder_f ASN_NGAP_TimeUEStayedInCell_encode_uper; +per_type_decoder_f ASN_NGAP_TimeUEStayedInCell_decode_aper; +per_type_encoder_f ASN_NGAP_TimeUEStayedInCell_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeUEStayedInCell_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.c b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.c new file mode 100644 index 0000000..0040a5c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h" + +int +ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_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. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_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_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity = { + "TimeUEStayedInCellEnhancedGranularity", + "TimeUEStayedInCellEnhancedGranularity", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_constr_1, ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h new file mode 100644 index 0000000..e129cc6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimeUEStayedInCellEnhancedGranularity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_H_ +#define _ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TimeUEStayedInCellEnhancedGranularity */ +typedef long ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity; +asn_struct_free_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_free; +asn_struct_print_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_print; +asn_constr_check_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_constraint; +ber_type_decoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_decode_ber; +der_type_encoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_encode_der; +xer_type_decoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_decode_xer; +xer_type_encoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_encode_xer; +per_type_decoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_decode_uper; +per_type_encoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_encode_uper; +per_type_decoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_decode_aper; +per_type_encoder_f ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimeUEStayedInCellEnhancedGranularity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.c b/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.c new file mode 100644 index 0000000..323b3cb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TimerApproachForGUAMIRemoval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_TimerApproachForGUAMIRemoval_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_ASN_NGAP_TimerApproachForGUAMIRemoval_value2enum_1[] = { + { 0, 11, "apply-timer" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_TimerApproachForGUAMIRemoval_enum2value_1[] = { + 0 /* apply-timer(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimerApproachForGUAMIRemoval_specs_1 = { + asn_MAP_ASN_NGAP_TimerApproachForGUAMIRemoval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_TimerApproachForGUAMIRemoval_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_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval = { + "TimerApproachForGUAMIRemoval", + "TimerApproachForGUAMIRemoval", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1, + sizeof(asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TimerApproachForGUAMIRemoval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TimerApproachForGUAMIRemoval_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.h b/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.h new file mode 100644 index 0000000..4f9aff3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TimerApproachForGUAMIRemoval.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TimerApproachForGUAMIRemoval_H_ +#define _ASN_NGAP_TimerApproachForGUAMIRemoval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TimerApproachForGUAMIRemoval { + ASN_NGAP_TimerApproachForGUAMIRemoval_apply_timer = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TimerApproachForGUAMIRemoval; + +/* ASN_NGAP_TimerApproachForGUAMIRemoval */ +typedef long ASN_NGAP_TimerApproachForGUAMIRemoval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TimerApproachForGUAMIRemoval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TimerApproachForGUAMIRemoval_specs_1; +asn_struct_free_f ASN_NGAP_TimerApproachForGUAMIRemoval_free; +asn_struct_print_f ASN_NGAP_TimerApproachForGUAMIRemoval_print; +asn_constr_check_f ASN_NGAP_TimerApproachForGUAMIRemoval_constraint; +ber_type_decoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_decode_ber; +der_type_encoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_encode_der; +xer_type_decoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_decode_xer; +xer_type_encoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_encode_xer; +per_type_decoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_decode_uper; +per_type_encoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_encode_uper; +per_type_decoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_decode_aper; +per_type_encoder_f ASN_NGAP_TimerApproachForGUAMIRemoval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TimerApproachForGUAMIRemoval_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.c b/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.c new file mode 100644 index 0000000..6201a51 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TooearlyIntersystemHO.h" + +#include "ASN_NGAP_UERLFReportContainer.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TooearlyIntersystemHO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TooearlyIntersystemHO, sourcecellID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcecellID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TooearlyIntersystemHO, failurecellID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRAN_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failurecellID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_TooearlyIntersystemHO, uERLFReportContainer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERLFReportContainer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TooearlyIntersystemHO, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P338, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TooearlyIntersystemHO_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TooearlyIntersystemHO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourcecellID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* failurecellID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uERLFReportContainer */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TooearlyIntersystemHO_specs_1 = { + sizeof(struct ASN_NGAP_TooearlyIntersystemHO), + offsetof(struct ASN_NGAP_TooearlyIntersystemHO, _asn_ctx), + asn_MAP_ASN_NGAP_TooearlyIntersystemHO_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TooearlyIntersystemHO_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO = { + "TooearlyIntersystemHO", + "TooearlyIntersystemHO", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1, + sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TooearlyIntersystemHO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TooearlyIntersystemHO_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_TooearlyIntersystemHO_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.h b/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.h new file mode 100644 index 0000000..d19a2fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TooearlyIntersystemHO.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TooearlyIntersystemHO_H_ +#define _ASN_NGAP_TooearlyIntersystemHO_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_NGRAN-CGI.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UERLFReportContainer; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TooearlyIntersystemHO */ +typedef struct ASN_NGAP_TooearlyIntersystemHO { + ASN_NGAP_EUTRA_CGI_t sourcecellID; + ASN_NGAP_NGRAN_CGI_t failurecellID; + struct ASN_NGAP_UERLFReportContainer *uERLFReportContainer; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TooearlyIntersystemHO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TooearlyIntersystemHO; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TooearlyIntersystemHO_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TooearlyIntersystemHO_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TooearlyIntersystemHO_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TraceActivation.c b/src/asn/ngap/ASN_NGAP_TraceActivation.c new file mode 100644 index 0000000..5caffe1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceActivation.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TraceActivation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation, nGRANTraceID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NGRANTraceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGRANTraceID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation, interfacesToTrace), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_InterfacesToTrace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interfacesToTrace" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation, traceDepth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TraceDepth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "traceDepth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceActivation, traceCollectionEntityIPAddress), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "traceCollectionEntityIPAddress" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_TraceActivation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P339, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_TraceActivation_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceActivation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGRANTraceID */ + { (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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceActivation_specs_1 = { + sizeof(struct ASN_NGAP_TraceActivation), + offsetof(struct ASN_NGAP_TraceActivation, _asn_ctx), + asn_MAP_ASN_NGAP_TraceActivation_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_TraceActivation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceActivation = { + "TraceActivation", + "TraceActivation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceActivation_tags_1, + sizeof(asn_DEF_ASN_NGAP_TraceActivation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceActivation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceActivation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceActivation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceActivation_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceActivation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TraceActivation.h b/src/asn/ngap/ASN_NGAP_TraceActivation.h new file mode 100644 index 0000000..f751de6 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceActivation.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TraceActivation_H_ +#define _ASN_NGAP_TraceActivation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NGRANTraceID.h" +#include "ASN_NGAP_InterfacesToTrace.h" +#include "ASN_NGAP_TraceDepth.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_TraceActivation */ +typedef struct ASN_NGAP_TraceActivation { + ASN_NGAP_NGRANTraceID_t nGRANTraceID; + ASN_NGAP_InterfacesToTrace_t interfacesToTrace; + ASN_NGAP_TraceDepth_t traceDepth; + ASN_NGAP_TransportLayerAddress_t traceCollectionEntityIPAddress; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TraceActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceActivation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceActivation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceActivation_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TraceActivation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TraceDepth.c b/src/asn/ngap/ASN_NGAP_TraceDepth.c new file mode 100644 index 0000000..0e916f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceDepth.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TraceDepth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_TraceDepth_specs_1 = { + asn_MAP_ASN_NGAP_TraceDepth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_TraceDepth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceDepth = { + "TraceDepth", + "TraceDepth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TraceDepth_tags_1, + sizeof(asn_DEF_ASN_NGAP_TraceDepth_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceDepth_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceDepth_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceDepth_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceDepth_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TraceDepth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TraceDepth_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TraceDepth.h b/src/asn/ngap/ASN_NGAP_TraceDepth.h new file mode 100644 index 0000000..6046cf9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceDepth.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TraceDepth_H_ +#define _ASN_NGAP_TraceDepth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TraceDepth { + ASN_NGAP_TraceDepth_minimum = 0, + ASN_NGAP_TraceDepth_medium = 1, + ASN_NGAP_TraceDepth_maximum = 2, + ASN_NGAP_TraceDepth_minimumWithoutVendorSpecificExtension = 3, + ASN_NGAP_TraceDepth_mediumWithoutVendorSpecificExtension = 4, + ASN_NGAP_TraceDepth_maximumWithoutVendorSpecificExtension = 5 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TraceDepth; + +/* ASN_NGAP_TraceDepth */ +typedef long ASN_NGAP_TraceDepth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TraceDepth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceDepth; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TraceDepth_specs_1; +asn_struct_free_f ASN_NGAP_TraceDepth_free; +asn_struct_print_f ASN_NGAP_TraceDepth_print; +asn_constr_check_f ASN_NGAP_TraceDepth_constraint; +ber_type_decoder_f ASN_NGAP_TraceDepth_decode_ber; +der_type_encoder_f ASN_NGAP_TraceDepth_encode_der; +xer_type_decoder_f ASN_NGAP_TraceDepth_decode_xer; +xer_type_encoder_f ASN_NGAP_TraceDepth_encode_xer; +per_type_decoder_f ASN_NGAP_TraceDepth_decode_uper; +per_type_encoder_f ASN_NGAP_TraceDepth_encode_uper; +per_type_decoder_f ASN_NGAP_TraceDepth_decode_aper; +per_type_encoder_f ASN_NGAP_TraceDepth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TraceDepth_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TraceFailureIndication.c b/src/asn/ngap/ASN_NGAP_TraceFailureIndication.c new file mode 100644 index 0000000..45c6055 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceFailureIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TraceFailureIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceFailureIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceFailureIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceFailureIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceFailureIndication_specs_1 = { + sizeof(struct ASN_NGAP_TraceFailureIndication), + offsetof(struct ASN_NGAP_TraceFailureIndication, _asn_ctx), + asn_MAP_ASN_NGAP_TraceFailureIndication_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_ASN_NGAP_TraceFailureIndication = { + "TraceFailureIndication", + "TraceFailureIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceFailureIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceFailureIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceFailureIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TraceFailureIndication.h b/src/asn/ngap/ASN_NGAP_TraceFailureIndication.h new file mode 100644 index 0000000..61f99f5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceFailureIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TraceFailureIndication_H_ +#define _ASN_NGAP_TraceFailureIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TraceFailureIndication */ +typedef struct ASN_NGAP_TraceFailureIndication { + ASN_NGAP_ProtocolIE_Container_123P83_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TraceFailureIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceFailureIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceFailureIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceFailureIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TraceFailureIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TraceStart.c b/src/asn/ngap/ASN_NGAP_TraceStart.c new file mode 100644 index 0000000..455c50e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceStart.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TraceStart.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceStart_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_TraceStart, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TraceStart_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_TraceStart_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceStart_specs_1 = { + sizeof(struct ASN_NGAP_TraceStart), + offsetof(struct ASN_NGAP_TraceStart, _asn_ctx), + asn_MAP_ASN_NGAP_TraceStart_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_ASN_NGAP_TraceStart = { + "TraceStart", + "TraceStart", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_TraceStart_tags_1, + sizeof(asn_DEF_ASN_NGAP_TraceStart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceStart_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TraceStart_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TraceStart_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TraceStart_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_TraceStart_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_TraceStart_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TraceStart.h b/src/asn/ngap/ASN_NGAP_TraceStart.h new file mode 100644 index 0000000..2e97055 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TraceStart.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TraceStart_H_ +#define _ASN_NGAP_TraceStart_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TraceStart */ +typedef struct ASN_NGAP_TraceStart { + ASN_NGAP_ProtocolIE_Container_123P82_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_TraceStart_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TraceStart; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_TraceStart_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_TraceStart_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TraceStart_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.c b/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.c new file mode 100644 index 0000000..0566762 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TrafficLoadReductionIndication.h" + +int +ASN_NGAP_TrafficLoadReductionIndication_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 <= 99)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_TrafficLoadReductionIndication_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 99 } /* (1..99) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TrafficLoadReductionIndication = { + "TrafficLoadReductionIndication", + "TrafficLoadReductionIndication", + &asn_OP_NativeInteger, + asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TrafficLoadReductionIndication_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TrafficLoadReductionIndication_constr_1, ASN_NGAP_TrafficLoadReductionIndication_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.h b/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.h new file mode 100644 index 0000000..29abe4d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TrafficLoadReductionIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TrafficLoadReductionIndication_H_ +#define _ASN_NGAP_TrafficLoadReductionIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TrafficLoadReductionIndication */ +typedef long ASN_NGAP_TrafficLoadReductionIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TrafficLoadReductionIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TrafficLoadReductionIndication; +asn_struct_free_f ASN_NGAP_TrafficLoadReductionIndication_free; +asn_struct_print_f ASN_NGAP_TrafficLoadReductionIndication_print; +asn_constr_check_f ASN_NGAP_TrafficLoadReductionIndication_constraint; +ber_type_decoder_f ASN_NGAP_TrafficLoadReductionIndication_decode_ber; +der_type_encoder_f ASN_NGAP_TrafficLoadReductionIndication_encode_der; +xer_type_decoder_f ASN_NGAP_TrafficLoadReductionIndication_decode_xer; +xer_type_encoder_f ASN_NGAP_TrafficLoadReductionIndication_encode_xer; +per_type_decoder_f ASN_NGAP_TrafficLoadReductionIndication_decode_uper; +per_type_encoder_f ASN_NGAP_TrafficLoadReductionIndication_encode_uper; +per_type_decoder_f ASN_NGAP_TrafficLoadReductionIndication_decode_aper; +per_type_encoder_f ASN_NGAP_TrafficLoadReductionIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TrafficLoadReductionIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TransportLayerAddress.c b/src/asn/ngap/ASN_NGAP_TransportLayerAddress.c new file mode 100644 index 0000000..858c012 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TransportLayerAddress.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TransportLayerAddress.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_TransportLayerAddress_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TransportLayerAddress = { + "TransportLayerAddress", + "TransportLayerAddress", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1, + sizeof(asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TransportLayerAddress_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TransportLayerAddress_constr_1, ASN_NGAP_TransportLayerAddress_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TransportLayerAddress.h b/src/asn/ngap/ASN_NGAP_TransportLayerAddress.h new file mode 100644 index 0000000..d184d14 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TransportLayerAddress.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TransportLayerAddress_H_ +#define _ASN_NGAP_TransportLayerAddress_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_TransportLayerAddress */ +typedef BIT_STRING_t ASN_NGAP_TransportLayerAddress_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TransportLayerAddress_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TransportLayerAddress; +asn_struct_free_f ASN_NGAP_TransportLayerAddress_free; +asn_struct_print_f ASN_NGAP_TransportLayerAddress_print; +asn_constr_check_f ASN_NGAP_TransportLayerAddress_constraint; +ber_type_decoder_f ASN_NGAP_TransportLayerAddress_decode_ber; +der_type_encoder_f ASN_NGAP_TransportLayerAddress_encode_der; +xer_type_decoder_f ASN_NGAP_TransportLayerAddress_decode_xer; +xer_type_encoder_f ASN_NGAP_TransportLayerAddress_encode_xer; +per_type_decoder_f ASN_NGAP_TransportLayerAddress_decode_uper; +per_type_encoder_f ASN_NGAP_TransportLayerAddress_encode_uper; +per_type_decoder_f ASN_NGAP_TransportLayerAddress_decode_aper; +per_type_encoder_f ASN_NGAP_TransportLayerAddress_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TransportLayerAddress_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TriggeringMessage.c b/src/asn/ngap/ASN_NGAP_TriggeringMessage.c new file mode 100644 index 0000000..db8f70c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TriggeringMessage.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TriggeringMessage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TriggeringMessage_value2enum_1[] = { + { 0, 18, "initiating-message" }, + { 1, 18, "successful-outcome" }, + { 2, 20, "unsuccessful-outcome" } +}; +static const unsigned int asn_MAP_ASN_NGAP_TriggeringMessage_enum2value_1[] = { + 0, /* initiating-message(0) */ + 1, /* successful-outcome(1) */ + 2 /* unsuccessful-outcome(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TriggeringMessage_specs_1 = { + asn_MAP_ASN_NGAP_TriggeringMessage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_TriggeringMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TriggeringMessage = { + "TriggeringMessage", + "TriggeringMessage", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TriggeringMessage_tags_1, + sizeof(asn_DEF_ASN_NGAP_TriggeringMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TriggeringMessage_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TriggeringMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TriggeringMessage_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TriggeringMessage_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TriggeringMessage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TriggeringMessage_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TriggeringMessage.h b/src/asn/ngap/ASN_NGAP_TriggeringMessage.h new file mode 100644 index 0000000..b189575 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TriggeringMessage.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-CommonDataTypes" + * found in "NGAP-CommonDataTypes.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TriggeringMessage_H_ +#define _ASN_NGAP_TriggeringMessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TriggeringMessage { + ASN_NGAP_TriggeringMessage_initiating_message = 0, + ASN_NGAP_TriggeringMessage_successful_outcome = 1, + ASN_NGAP_TriggeringMessage_unsuccessful_outcome = 2 +} e_ASN_NGAP_TriggeringMessage; + +/* ASN_NGAP_TriggeringMessage */ +typedef long ASN_NGAP_TriggeringMessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TriggeringMessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TriggeringMessage; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TriggeringMessage_specs_1; +asn_struct_free_f ASN_NGAP_TriggeringMessage_free; +asn_struct_print_f ASN_NGAP_TriggeringMessage_print; +asn_constr_check_f ASN_NGAP_TriggeringMessage_constraint; +ber_type_decoder_f ASN_NGAP_TriggeringMessage_decode_ber; +der_type_encoder_f ASN_NGAP_TriggeringMessage_encode_der; +xer_type_decoder_f ASN_NGAP_TriggeringMessage_decode_xer; +xer_type_encoder_f ASN_NGAP_TriggeringMessage_encode_xer; +per_type_decoder_f ASN_NGAP_TriggeringMessage_decode_uper; +per_type_encoder_f ASN_NGAP_TriggeringMessage_encode_uper; +per_type_decoder_f ASN_NGAP_TriggeringMessage_decode_aper; +per_type_encoder_f ASN_NGAP_TriggeringMessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TriggeringMessage_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_TypeOfError.c b/src/asn/ngap/ASN_NGAP_TypeOfError.c new file mode 100644 index 0000000..c8ffb61 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TypeOfError.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_TypeOfError.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_TypeOfError_value2enum_1[] = { + { 0, 14, "not-understood" }, + { 1, 7, "missing" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_TypeOfError_enum2value_1[] = { + 1, /* missing(1) */ + 0 /* not-understood(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TypeOfError_specs_1 = { + asn_MAP_ASN_NGAP_TypeOfError_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_TypeOfError_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TypeOfError = { + "TypeOfError", + "TypeOfError", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_TypeOfError_tags_1, + sizeof(asn_DEF_ASN_NGAP_TypeOfError_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TypeOfError_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_TypeOfError_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_TypeOfError_tags_1) + /sizeof(asn_DEF_ASN_NGAP_TypeOfError_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_TypeOfError_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_TypeOfError_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_TypeOfError.h b/src/asn/ngap/ASN_NGAP_TypeOfError.h new file mode 100644 index 0000000..8151e6a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_TypeOfError.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_TypeOfError_H_ +#define _ASN_NGAP_TypeOfError_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_TypeOfError { + ASN_NGAP_TypeOfError_not_understood = 0, + ASN_NGAP_TypeOfError_missing = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_TypeOfError; + +/* ASN_NGAP_TypeOfError */ +typedef long ASN_NGAP_TypeOfError_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_TypeOfError_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_TypeOfError; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_TypeOfError_specs_1; +asn_struct_free_f ASN_NGAP_TypeOfError_free; +asn_struct_print_f ASN_NGAP_TypeOfError_print; +asn_constr_check_f ASN_NGAP_TypeOfError_constraint; +ber_type_decoder_f ASN_NGAP_TypeOfError_decode_ber; +der_type_encoder_f ASN_NGAP_TypeOfError_encode_der; +xer_type_decoder_f ASN_NGAP_TypeOfError_decode_xer; +xer_type_encoder_f ASN_NGAP_TypeOfError_encode_xer; +per_type_decoder_f ASN_NGAP_TypeOfError_decode_uper; +per_type_encoder_f ASN_NGAP_TypeOfError_encode_uper; +per_type_decoder_f ASN_NGAP_TypeOfError_decode_aper; +per_type_encoder_f ASN_NGAP_TypeOfError_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_TypeOfError_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.c b/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.c new file mode 100644 index 0000000..38219c9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.c @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-DifferentiationInfo.h" + +#include "ASN_NGAP_ScheduledCommunicationTime.h" +#include "ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_periodicCommunicationIndicator_value2enum_2[] = { + { 0, 12, "periodically" }, + { 1, 8, "ondemand" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_periodicCommunicationIndicator_enum2value_2[] = { + 1, /* ondemand(1) */ + 0 /* periodically(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_periodicCommunicationIndicator_specs_2 = { + asn_MAP_ASN_NGAP_periodicCommunicationIndicator_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_periodicCommunicationIndicator_2 = { + "periodicCommunicationIndicator", + "periodicCommunicationIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2, + sizeof(asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2) + /sizeof(asn_DEF_ASN_NGAP_periodicCommunicationIndicator_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_periodicCommunicationIndicator_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_periodicCommunicationIndicator_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_stationaryIndication_value2enum_8[] = { + { 0, 10, "stationary" }, + { 1, 6, "mobile" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_stationaryIndication_enum2value_8[] = { + 1, /* mobile(1) */ + 0 /* stationary(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_stationaryIndication_specs_8 = { + asn_MAP_ASN_NGAP_stationaryIndication_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_stationaryIndication_8 = { + "stationaryIndication", + "stationaryIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_stationaryIndication_tags_8, + sizeof(asn_DEF_ASN_NGAP_stationaryIndication_tags_8) + /sizeof(asn_DEF_ASN_NGAP_stationaryIndication_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_stationaryIndication_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_stationaryIndication_tags_8) + /sizeof(asn_DEF_ASN_NGAP_stationaryIndication_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_stationaryIndication_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_stationaryIndication_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_trafficProfile_specs_12 = { + asn_MAP_ASN_NGAP_trafficProfile_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_trafficProfile_12 = { + "trafficProfile", + "trafficProfile", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_trafficProfile_tags_12, + sizeof(asn_DEF_ASN_NGAP_trafficProfile_tags_12) + /sizeof(asn_DEF_ASN_NGAP_trafficProfile_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_trafficProfile_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_trafficProfile_tags_12) + /sizeof(asn_DEF_ASN_NGAP_trafficProfile_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_trafficProfile_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_trafficProfile_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_batteryIndication_specs_17 = { + asn_MAP_ASN_NGAP_batteryIndication_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_batteryIndication_17 = { + "batteryIndication", + "batteryIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_batteryIndication_tags_17, + sizeof(asn_DEF_ASN_NGAP_batteryIndication_tags_17) + /sizeof(asn_DEF_ASN_NGAP_batteryIndication_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_batteryIndication_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_batteryIndication_tags_17) + /sizeof(asn_DEF_ASN_NGAP_batteryIndication_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_batteryIndication_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_batteryIndication_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_DifferentiationInfo_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, periodicCommunicationIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_periodicCommunicationIndicator_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicCommunicationIndicator" + }, + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, periodicTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_periodicTime_constr_6, memb_ASN_NGAP_periodicTime_constraint_1 }, + 0, 0, /* No default value */ + "periodicTime" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, scheduledCommunicationTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ScheduledCommunicationTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scheduledCommunicationTime" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, stationaryIndication), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_stationaryIndication_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "stationaryIndication" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, trafficProfile), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_trafficProfile_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trafficProfile" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, batteryIndication), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_batteryIndication_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "batteryIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UE_DifferentiationInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P353, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UE_DifferentiationInfo_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_DifferentiationInfo_specs_1 = { + sizeof(struct ASN_NGAP_UE_DifferentiationInfo), + offsetof(struct ASN_NGAP_UE_DifferentiationInfo, _asn_ctx), + asn_MAP_ASN_NGAP_UE_DifferentiationInfo_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UE_DifferentiationInfo_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo = { + "UE-DifferentiationInfo", + "UE-DifferentiationInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_DifferentiationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_DifferentiationInfo_1, + 7, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_DifferentiationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.h b/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.h new file mode 100644 index 0000000..4f37286 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-DifferentiationInfo.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_DifferentiationInfo_H_ +#define _ASN_NGAP_UE_DifferentiationInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UE_DifferentiationInfo__periodicCommunicationIndicator { + ASN_NGAP_UE_DifferentiationInfo__periodicCommunicationIndicator_periodically = 0, + ASN_NGAP_UE_DifferentiationInfo__periodicCommunicationIndicator_ondemand = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UE_DifferentiationInfo__periodicCommunicationIndicator; +typedef enum ASN_NGAP_UE_DifferentiationInfo__stationaryIndication { + ASN_NGAP_UE_DifferentiationInfo__stationaryIndication_stationary = 0, + ASN_NGAP_UE_DifferentiationInfo__stationaryIndication_mobile = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UE_DifferentiationInfo__stationaryIndication; +typedef enum ASN_NGAP_UE_DifferentiationInfo__trafficProfile { + ASN_NGAP_UE_DifferentiationInfo__trafficProfile_single_packet = 0, + ASN_NGAP_UE_DifferentiationInfo__trafficProfile_dual_packets = 1, + ASN_NGAP_UE_DifferentiationInfo__trafficProfile_multiple_packets = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UE_DifferentiationInfo__trafficProfile; +typedef enum ASN_NGAP_UE_DifferentiationInfo__batteryIndication { + ASN_NGAP_UE_DifferentiationInfo__batteryIndication_battery_powered = 0, + ASN_NGAP_UE_DifferentiationInfo__batteryIndication_battery_powered_not_rechargeable_or_replaceable = 1, + ASN_NGAP_UE_DifferentiationInfo__batteryIndication_not_battery_powered = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UE_DifferentiationInfo__batteryIndication; + +/* Forward declarations */ +struct ASN_NGAP_ScheduledCommunicationTime; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UE-DifferentiationInfo */ +typedef struct ASN_NGAP_UE_DifferentiationInfo { + long *periodicCommunicationIndicator; /* OPTIONAL */ + long *periodicTime; /* OPTIONAL */ + struct ASN_NGAP_ScheduledCommunicationTime *scheduledCommunicationTime; /* OPTIONAL */ + long *stationaryIndication; /* OPTIONAL */ + long *trafficProfile; /* OPTIONAL */ + long *batteryIndication; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_DifferentiationInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_periodicCommunicationIndicator_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_stationaryIndication_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_trafficProfile_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_batteryIndication_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_DifferentiationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_DifferentiationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_DifferentiationInfo_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_DifferentiationInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.c b/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.c new file mode 100644 index 0000000..b361824 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-NGAP-ID-pair.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair, aMF_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-UE-NGAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair, rAN_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rAN-UE-NGAP-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UE_NGAP_ID_pair, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P354, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_specs_1 = { + sizeof(struct ASN_NGAP_UE_NGAP_ID_pair), + offsetof(struct ASN_NGAP_UE_NGAP_ID_pair, _asn_ctx), + asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UE_NGAP_ID_pair_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair = { + "UE-NGAP-ID-pair", + "UE-NGAP-ID-pair", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_NGAP_ID_pair_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.h b/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.h new file mode 100644 index 0000000..292d78f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-NGAP-ID-pair.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_NGAP_ID_pair_H_ +#define _ASN_NGAP_UE_NGAP_ID_pair_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMF-UE-NGAP-ID.h" +#include "ASN_NGAP_RAN-UE-NGAP-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UE-NGAP-ID-pair */ +typedef struct ASN_NGAP_UE_NGAP_ID_pair { + ASN_NGAP_AMF_UE_NGAP_ID_t aMF_UE_NGAP_ID; + ASN_NGAP_RAN_UE_NGAP_ID_t rAN_UE_NGAP_ID; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_NGAP_ID_pair_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_ID_pair; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_ID_pair_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_ID_pair_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_NGAP_ID_pair_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.c b/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.c new file mode 100644 index 0000000..b6fd928 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-NGAP-IDs.h" + +#include "ASN_NGAP_UE-NGAP-ID-pair.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_NGAP_IDs_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_IDs_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs, choice.uE_NGAP_ID_pair), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UE_NGAP_ID_pair, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uE-NGAP-ID-pair" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs, choice.aMF_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-UE-NGAP-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UE_NGAP_IDs, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_NGAP_IDs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uE-NGAP-ID-pair */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_IDs_specs_1 = { + sizeof(struct ASN_NGAP_UE_NGAP_IDs), + offsetof(struct ASN_NGAP_UE_NGAP_IDs, _asn_ctx), + offsetof(struct ASN_NGAP_UE_NGAP_IDs, present), + sizeof(((struct ASN_NGAP_UE_NGAP_IDs *)0)->present), + asn_MAP_ASN_NGAP_UE_NGAP_IDs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_IDs = { + "UE-NGAP-IDs", + "UE-NGAP-IDs", + &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_ASN_NGAP_UE_NGAP_IDs_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UE_NGAP_IDs_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_NGAP_IDs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.h b/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.h new file mode 100644 index 0000000..b22091f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-NGAP-IDs.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_NGAP_IDs_H_ +#define _ASN_NGAP_UE_NGAP_IDs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMF-UE-NGAP-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UE_NGAP_IDs_PR { + ASN_NGAP_UE_NGAP_IDs_PR_NOTHING, /* No components present */ + ASN_NGAP_UE_NGAP_IDs_PR_uE_NGAP_ID_pair, + ASN_NGAP_UE_NGAP_IDs_PR_aMF_UE_NGAP_ID, + ASN_NGAP_UE_NGAP_IDs_PR_choice_Extensions +} ASN_NGAP_UE_NGAP_IDs_PR; + +/* Forward declarations */ +struct ASN_NGAP_UE_NGAP_ID_pair; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UE-NGAP-IDs */ +typedef struct ASN_NGAP_UE_NGAP_IDs { + ASN_NGAP_UE_NGAP_IDs_PR present; + union ASN_NGAP_UE_NGAP_IDs_u { + struct ASN_NGAP_UE_NGAP_ID_pair *uE_NGAP_ID_pair; + ASN_NGAP_AMF_UE_NGAP_ID_t aMF_UE_NGAP_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_NGAP_IDs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_NGAP_IDs; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UE_NGAP_IDs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_NGAP_IDs_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_NGAP_IDs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_NGAP_IDs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-PagingItem.c b/src/asn/ngap/ASN_NGAP_UE-PagingItem.c new file mode 100644 index 0000000..03d3d1c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-PagingItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-PagingItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_PagingItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UE_PagingItem, uEIdentityIndexValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEIdentityIndexValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEIdentityIndexValue" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UE_PagingItem, pagingDRX), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PagingDRX, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingDRX" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UE_PagingItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P182, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UE_PagingItem_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_PagingItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_PagingItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEIdentityIndexValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pagingDRX */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_PagingItem_specs_1 = { + sizeof(struct ASN_NGAP_UE_PagingItem), + offsetof(struct ASN_NGAP_UE_PagingItem, _asn_ctx), + asn_MAP_ASN_NGAP_UE_PagingItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UE_PagingItem_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingItem = { + "UE-PagingItem", + "UE-PagingItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_PagingItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_PagingItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_PagingItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_PagingItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-PagingItem.h b/src/asn/ngap/ASN_NGAP_UE-PagingItem.h new file mode 100644 index 0000000..c30d590 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-PagingItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_PagingItem_H_ +#define _ASN_NGAP_UE_PagingItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UEIdentityIndexValue.h" +#include "ASN_NGAP_PagingDRX.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UE-PagingItem */ +typedef struct ASN_NGAP_UE_PagingItem { + ASN_NGAP_UEIdentityIndexValue_t uEIdentityIndexValue; + ASN_NGAP_PagingDRX_t *pagingDRX; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_PagingItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_PagingItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_PagingItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_PagingItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-PagingList.c b/src/asn/ngap/ASN_NGAP_UE-PagingList.c new file mode 100644 index 0000000..5586489 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-PagingList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-PagingList.h" + +#include "ASN_NGAP_UE-PagingItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_PagingList_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_ASN_NGAP_UE_PagingList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_PagingItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_PagingList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UE_PagingList_specs_1 = { + sizeof(struct ASN_NGAP_UE_PagingList), + offsetof(struct ASN_NGAP_UE_PagingList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingList = { + "UE-PagingList", + "UE-PagingList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UE_PagingList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_PagingList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_PagingList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_PagingList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_PagingList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UE_PagingList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UE_PagingList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UE_PagingList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-PagingList.h b/src/asn/ngap/ASN_NGAP_UE-PagingList.h new file mode 100644 index 0000000..83ebcf2 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-PagingList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_PagingList_H_ +#define _ASN_NGAP_UE_PagingList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UE_PagingItem; + +/* ASN_NGAP_UE-PagingList */ +typedef struct ASN_NGAP_UE_PagingList { + A_SEQUENCE_OF(struct ASN_NGAP_UE_PagingItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_PagingList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_PagingList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UE_PagingList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_PagingList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_PagingList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_PagingList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.c b/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.c new file mode 100644 index 0000000..9268e35 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-UP-CIoT-Support.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_UP_CIoT_Support_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_ASN_NGAP_UE_UP_CIoT_Support_value2enum_1[] = { + { 0, 9, "supported" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_UE_UP_CIoT_Support_enum2value_1[] = { + 0 /* supported(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UE_UP_CIoT_Support_specs_1 = { + asn_MAP_ASN_NGAP_UE_UP_CIoT_Support_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_UE_UP_CIoT_Support_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_ASN_NGAP_UE_UP_CIoT_Support_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_UP_CIoT_Support = { + "UE-UP-CIoT-Support", + "UE-UP-CIoT-Support", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_UP_CIoT_Support_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UE_UP_CIoT_Support_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_UE_UP_CIoT_Support_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.h b/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.h new file mode 100644 index 0000000..93088f3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-UP-CIoT-Support.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_UP_CIoT_Support_H_ +#define _ASN_NGAP_UE_UP_CIoT_Support_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UE_UP_CIoT_Support { + ASN_NGAP_UE_UP_CIoT_Support_supported = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UE_UP_CIoT_Support; + +/* ASN_NGAP_UE-UP-CIoT-Support */ +typedef long ASN_NGAP_UE_UP_CIoT_Support_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_UP_CIoT_Support_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_UP_CIoT_Support; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UE_UP_CIoT_Support_specs_1; +asn_struct_free_f ASN_NGAP_UE_UP_CIoT_Support_free; +asn_struct_print_f ASN_NGAP_UE_UP_CIoT_Support_print; +asn_constr_check_f ASN_NGAP_UE_UP_CIoT_Support_constraint; +ber_type_decoder_f ASN_NGAP_UE_UP_CIoT_Support_decode_ber; +der_type_encoder_f ASN_NGAP_UE_UP_CIoT_Support_encode_der; +xer_type_decoder_f ASN_NGAP_UE_UP_CIoT_Support_decode_xer; +xer_type_encoder_f ASN_NGAP_UE_UP_CIoT_Support_encode_xer; +per_type_decoder_f ASN_NGAP_UE_UP_CIoT_Support_decode_uper; +per_type_encoder_f ASN_NGAP_UE_UP_CIoT_Support_encode_uper; +per_type_decoder_f ASN_NGAP_UE_UP_CIoT_Support_decode_aper; +per_type_encoder_f ASN_NGAP_UE_UP_CIoT_Support_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_UP_CIoT_Support_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.c b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.c new file mode 100644 index 0000000..78bde6f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-associatedLogicalNG-connectionItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem, aMF_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMF_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aMF-UE-NGAP-ID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem, rAN_UE_NGAP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_RAN_UE_NGAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rAN-UE-NGAP-ID" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P349, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aMF-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rAN-UE-NGAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_specs_1 = { + sizeof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem), + offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem, _asn_ctx), + asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UE_associatedLogicalNG_connectionItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem = { + "UE-associatedLogicalNG-connectionItem", + "UE-associatedLogicalNG-connectionItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.h b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.h new file mode 100644 index 0000000..b915f3c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_associatedLogicalNG_connectionItem_H_ +#define _ASN_NGAP_UE_associatedLogicalNG_connectionItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_AMF-UE-NGAP-ID.h" +#include "ASN_NGAP_RAN-UE-NGAP-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UE-associatedLogicalNG-connectionItem */ +typedef struct ASN_NGAP_UE_associatedLogicalNG_connectionItem { + ASN_NGAP_AMF_UE_NGAP_ID_t *aMF_UE_NGAP_ID; /* OPTIONAL */ + ASN_NGAP_RAN_UE_NGAP_ID_t *rAN_UE_NGAP_ID; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_associatedLogicalNG_connectionItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_associatedLogicalNG_connectionItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.c b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.c new file mode 100644 index 0000000..0bea59a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UE-associatedLogicalNG-connectionList.h" + +#include "ASN_NGAP_UE-associatedLogicalNG-connectionItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_associatedLogicalNG_connectionList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionList_specs_1 = { + sizeof(struct ASN_NGAP_UE_associatedLogicalNG_connectionList), + offsetof(struct ASN_NGAP_UE_associatedLogicalNG_connectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList = { + "UE-associatedLogicalNG-connectionList", + "UE-associatedLogicalNG-connectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UE_associatedLogicalNG_connectionList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.h b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.h new file mode 100644 index 0000000..e7b967d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UE-associatedLogicalNG-connectionList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UE_associatedLogicalNG_connectionList_H_ +#define _ASN_NGAP_UE_associatedLogicalNG_connectionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UE_associatedLogicalNG_connectionItem; + +/* ASN_NGAP_UE-associatedLogicalNG-connectionList */ +typedef struct ASN_NGAP_UE_associatedLogicalNG_connectionList { + A_SEQUENCE_OF(struct ASN_NGAP_UE_associatedLogicalNG_connectionItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UE_associatedLogicalNG_connectionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UE_associatedLogicalNG_connectionList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UE_associatedLogicalNG_connectionList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UE_associatedLogicalNG_connectionList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UE_associatedLogicalNG_connectionList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UE_associatedLogicalNG_connectionList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.c b/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.c new file mode 100644 index 0000000..4f036d0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEAggregateMaximumBitRate.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate, uEAggregateMaximumBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEAggregateMaximumBitRateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate, uEAggregateMaximumBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEAggregateMaximumBitRateUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P346, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEAggregateMaximumBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEAggregateMaximumBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_specs_1 = { + sizeof(struct ASN_NGAP_UEAggregateMaximumBitRate), + offsetof(struct ASN_NGAP_UEAggregateMaximumBitRate, _asn_ctx), + asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEAggregateMaximumBitRate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate = { + "UEAggregateMaximumBitRate", + "UEAggregateMaximumBitRate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.h b/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.h new file mode 100644 index 0000000..8109259 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAggregateMaximumBitRate.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEAggregateMaximumBitRate_H_ +#define _ASN_NGAP_UEAggregateMaximumBitRate_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEAggregateMaximumBitRate */ +typedef struct ASN_NGAP_UEAggregateMaximumBitRate { + ASN_NGAP_BitRate_t uEAggregateMaximumBitRateDL; + ASN_NGAP_BitRate_t uEAggregateMaximumBitRateUL; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAggregateMaximumBitRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAggregateMaximumBitRate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAggregateMaximumBitRate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAggregateMaximumBitRate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEAggregateMaximumBitRate_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c new file mode 100644 index 0000000..91dd541 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.c @@ -0,0 +1,264 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEAppLayerMeasConfigInfo.h" + +#include "ASN_NGAP_AreaScopeOfQMC.h" +#include "ASN_NGAP_SliceSupportListQMC.h" +#include "ASN_NGAP_MDT-AlignmentInfo.h" +#include "ASN_NGAP_AvailableRANVisibleQoEMetrics.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_NGAP_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 <= 8000)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_measConfigAppLayerID_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_type_ASN_NGAP_qoEMeasurementStatus_constr_6 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_memb_ASN_NGAP_containerForAppLayerMeasConfig_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 13, 13, 1, 8000 } /* (SIZE(1..8000)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_measConfigAppLayerID_constr_10 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_ASN_NGAP_qoEMeasurementStatus_value2enum_6[] = { + { 0, 7, "ongoing" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_qoEMeasurementStatus_enum2value_6[] = { + 0 /* ongoing(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_qoEMeasurementStatus_specs_6 = { + asn_MAP_ASN_NGAP_qoEMeasurementStatus_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_qoEMeasurementStatus_enum2value_6, /* 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_ASN_NGAP_qoEMeasurementStatus_tags_6[] = { + (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_ASN_NGAP_qoEMeasurementStatus_6 = { + "qoEMeasurementStatus", + "qoEMeasurementStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6, + sizeof(asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6) + /sizeof(asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6) + /sizeof(asn_DEF_ASN_NGAP_qoEMeasurementStatus_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_qoEMeasurementStatus_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_qoEMeasurementStatus_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, qoEReference), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QoEReference, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoEReference" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, serviceType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ServiceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serviceType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, areaScopeOfQMC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AreaScopeOfQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScopeOfQMC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, measCollEntityIPAddress), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measCollEntityIPAddress" + }, + { ATF_POINTER, 7, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, qoEMeasurementStatus), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_qoEMeasurementStatus_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qoEMeasurementStatus" + }, + { ATF_POINTER, 6, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, containerForAppLayerMeasConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_containerForAppLayerMeasConfig_constr_9, memb_ASN_NGAP_containerForAppLayerMeasConfig_constraint_1 }, + 0, 0, /* No default value */ + "containerForAppLayerMeasConfig" + }, + { ATF_POINTER, 5, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, measConfigAppLayerID), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_NGAP_measConfigAppLayerID_constr_10, memb_ASN_NGAP_measConfigAppLayerID_constraint_1 }, + 0, 0, /* No default value */ + "measConfigAppLayerID" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, sliceSupportListQMC), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SliceSupportListQMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sliceSupportListQMC" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, mDT_AlignmentInfo), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_MDT_AlignmentInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mDT-AlignmentInfo" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, availableRANVisibleQoEMetrics), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AvailableRANVisibleQoEMetrics, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "availableRANVisibleQoEMetrics" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P348, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_oms_1[] = { 2, 4, 5, 6, 7, 8, 9, 10 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qoEReference */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* areaScopeOfQMC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* measCollEntityIPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qoEMeasurementStatus */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* containerForAppLayerMeasConfig */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measConfigAppLayerID */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sliceSupportListQMC */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* mDT-AlignmentInfo */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* availableRANVisibleQoEMetrics */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_specs_1 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasConfigInfo), + offsetof(struct ASN_NGAP_UEAppLayerMeasConfigInfo, _asn_ctx), + asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEAppLayerMeasConfigInfo_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo = { + "UEAppLayerMeasConfigInfo", + "UEAppLayerMeasConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_1, + 11, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h new file mode 100644 index 0000000..f3534df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasConfigInfo.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEAppLayerMeasConfigInfo_H_ +#define _ASN_NGAP_UEAppLayerMeasConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_QoEReference.h" +#include "ASN_NGAP_ServiceType.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEAppLayerMeasConfigInfo__qoEMeasurementStatus { + ASN_NGAP_UEAppLayerMeasConfigInfo__qoEMeasurementStatus_ongoing = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UEAppLayerMeasConfigInfo__qoEMeasurementStatus; + +/* Forward declarations */ +struct ASN_NGAP_AreaScopeOfQMC; +struct ASN_NGAP_SliceSupportListQMC; +struct ASN_NGAP_MDT_AlignmentInfo; +struct ASN_NGAP_AvailableRANVisibleQoEMetrics; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEAppLayerMeasConfigInfo */ +typedef struct ASN_NGAP_UEAppLayerMeasConfigInfo { + ASN_NGAP_QoEReference_t qoEReference; + ASN_NGAP_ServiceType_t serviceType; + struct ASN_NGAP_AreaScopeOfQMC *areaScopeOfQMC; /* OPTIONAL */ + ASN_NGAP_TransportLayerAddress_t measCollEntityIPAddress; + long *qoEMeasurementStatus; /* OPTIONAL */ + OCTET_STRING_t *containerForAppLayerMeasConfig; /* OPTIONAL */ + long *measConfigAppLayerID; /* OPTIONAL */ + struct ASN_NGAP_SliceSupportListQMC *sliceSupportListQMC; /* OPTIONAL */ + struct ASN_NGAP_MDT_AlignmentInfo *mDT_AlignmentInfo; /* OPTIONAL */ + struct ASN_NGAP_AvailableRANVisibleQoEMetrics *availableRANVisibleQoEMetrics; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAppLayerMeasConfigInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_qoEMeasurementStatus_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasConfigInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasConfigInfo_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEAppLayerMeasConfigInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c new file mode 100644 index 0000000..dc789ff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEAppLayerMeasInfoItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem, uEAppLayerMeasConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEAppLayerMeasConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEAppLayerMeasConfigInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P347, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uEAppLayerMeasConfigInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_specs_1 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasInfoItem), + offsetof(struct ASN_NGAP_UEAppLayerMeasInfoItem, _asn_ctx), + asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEAppLayerMeasInfoItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem = { + "UEAppLayerMeasInfoItem", + "UEAppLayerMeasInfoItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h new file mode 100644 index 0000000..fa559fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEAppLayerMeasInfoItem_H_ +#define _ASN_NGAP_UEAppLayerMeasInfoItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UEAppLayerMeasConfigInfo.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEAppLayerMeasInfoItem */ +typedef struct ASN_NGAP_UEAppLayerMeasInfoItem { + ASN_NGAP_UEAppLayerMeasConfigInfo_t uEAppLayerMeasConfigInfo; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAppLayerMeasInfoItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasInfoItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEAppLayerMeasInfoItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.c b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.c new file mode 100644 index 0000000..84fbccd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEAppLayerMeasInfoList.h" + +#include "ASN_NGAP_UEAppLayerMeasInfoItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEAppLayerMeasInfoList_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_ASN_NGAP_UEAppLayerMeasInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEAppLayerMeasInfoItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoList_specs_1 = { + sizeof(struct ASN_NGAP_UEAppLayerMeasInfoList), + offsetof(struct ASN_NGAP_UEAppLayerMeasInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList = { + "UEAppLayerMeasInfoList", + "UEAppLayerMeasInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UEAppLayerMeasInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UEAppLayerMeasInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UEAppLayerMeasInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.h b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.h new file mode 100644 index 0000000..41477b3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEAppLayerMeasInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEAppLayerMeasInfoList_H_ +#define _ASN_NGAP_UEAppLayerMeasInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UEAppLayerMeasInfoItem; + +/* ASN_NGAP_UEAppLayerMeasInfoList */ +typedef struct ASN_NGAP_UEAppLayerMeasInfoList { + A_SEQUENCE_OF(struct ASN_NGAP_UEAppLayerMeasInfoItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEAppLayerMeasInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEAppLayerMeasInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEAppLayerMeasInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEAppLayerMeasInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEAppLayerMeasInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEAppLayerMeasInfoList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.c b/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.c new file mode 100644 index 0000000..3881d10 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UECapabilityInfoRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_UECapabilityInfoRequest_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_ASN_NGAP_UECapabilityInfoRequest_value2enum_1[] = { + { 0, 9, "requested" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_UECapabilityInfoRequest_enum2value_1[] = { + 0 /* requested(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UECapabilityInfoRequest_specs_1 = { + asn_MAP_ASN_NGAP_UECapabilityInfoRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_UECapabilityInfoRequest_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_ASN_NGAP_UECapabilityInfoRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UECapabilityInfoRequest = { + "UECapabilityInfoRequest", + "UECapabilityInfoRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UECapabilityInfoRequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UECapabilityInfoRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_UECapabilityInfoRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.h b/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.h new file mode 100644 index 0000000..96de59a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UECapabilityInfoRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UECapabilityInfoRequest_H_ +#define _ASN_NGAP_UECapabilityInfoRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UECapabilityInfoRequest { + ASN_NGAP_UECapabilityInfoRequest_requested = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UECapabilityInfoRequest; + +/* ASN_NGAP_UECapabilityInfoRequest */ +typedef long ASN_NGAP_UECapabilityInfoRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UECapabilityInfoRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UECapabilityInfoRequest; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UECapabilityInfoRequest_specs_1; +asn_struct_free_f ASN_NGAP_UECapabilityInfoRequest_free; +asn_struct_print_f ASN_NGAP_UECapabilityInfoRequest_print; +asn_constr_check_f ASN_NGAP_UECapabilityInfoRequest_constraint; +ber_type_decoder_f ASN_NGAP_UECapabilityInfoRequest_decode_ber; +der_type_encoder_f ASN_NGAP_UECapabilityInfoRequest_encode_der; +xer_type_decoder_f ASN_NGAP_UECapabilityInfoRequest_decode_xer; +xer_type_encoder_f ASN_NGAP_UECapabilityInfoRequest_encode_xer; +per_type_decoder_f ASN_NGAP_UECapabilityInfoRequest_decode_uper; +per_type_encoder_f ASN_NGAP_UECapabilityInfoRequest_encode_uper; +per_type_decoder_f ASN_NGAP_UECapabilityInfoRequest_decode_aper; +per_type_encoder_f ASN_NGAP_UECapabilityInfoRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UECapabilityInfoRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.c b/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.c new file mode 100644 index 0000000..5ef3470 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextModificationFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationFailure_specs_1 = { + sizeof(struct ASN_NGAP_UEContextModificationFailure), + offsetof(struct ASN_NGAP_UEContextModificationFailure, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationFailure_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_ASN_NGAP_UEContextModificationFailure = { + "UEContextModificationFailure", + "UEContextModificationFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.h b/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.h new file mode 100644 index 0000000..5fb2554 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextModificationFailure_H_ +#define _ASN_NGAP_UEContextModificationFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextModificationFailure */ +typedef struct ASN_NGAP_UEContextModificationFailure { + ASN_NGAP_ProtocolIE_Container_123P27_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextModificationFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextModificationFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.c b/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.c new file mode 100644 index 0000000..c738cf1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextModificationRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationRequest_specs_1 = { + sizeof(struct ASN_NGAP_UEContextModificationRequest), + offsetof(struct ASN_NGAP_UEContextModificationRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationRequest_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_ASN_NGAP_UEContextModificationRequest = { + "UEContextModificationRequest", + "UEContextModificationRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.h b/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.h new file mode 100644 index 0000000..7aa9cc8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextModificationRequest_H_ +#define _ASN_NGAP_UEContextModificationRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextModificationRequest */ +typedef struct ASN_NGAP_UEContextModificationRequest { + ASN_NGAP_ProtocolIE_Container_123P25_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextModificationRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextModificationRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.c b/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.c new file mode 100644 index 0000000..f04d801 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextModificationResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextModificationResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextModificationResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationResponse_specs_1 = { + sizeof(struct ASN_NGAP_UEContextModificationResponse), + offsetof(struct ASN_NGAP_UEContextModificationResponse, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextModificationResponse_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_ASN_NGAP_UEContextModificationResponse = { + "UEContextModificationResponse", + "UEContextModificationResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextModificationResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextModificationResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextModificationResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.h b/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.h new file mode 100644 index 0000000..c2c647f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextModificationResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextModificationResponse_H_ +#define _ASN_NGAP_UEContextModificationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextModificationResponse */ +typedef struct ASN_NGAP_UEContextModificationResponse { + ASN_NGAP_ProtocolIE_Container_123P26_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextModificationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextModificationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextModificationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextModificationResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextModificationResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.c b/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.c new file mode 100644 index 0000000..d42ae7c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextReleaseCommand.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseCommand, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseCommand_specs_1 = { + sizeof(struct ASN_NGAP_UEContextReleaseCommand), + offsetof(struct ASN_NGAP_UEContextReleaseCommand, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseCommand_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_ASN_NGAP_UEContextReleaseCommand = { + "UEContextReleaseCommand", + "UEContextReleaseCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseCommand_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.h b/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.h new file mode 100644 index 0000000..670d8af --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseCommand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextReleaseCommand_H_ +#define _ASN_NGAP_UEContextReleaseCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextReleaseCommand */ +typedef struct ASN_NGAP_UEContextReleaseCommand { + ASN_NGAP_ProtocolIE_Container_123P17_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextReleaseCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseCommand_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextReleaseCommand_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.c b/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.c new file mode 100644 index 0000000..ad2da8c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextReleaseComplete.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseComplete, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseComplete_specs_1 = { + sizeof(struct ASN_NGAP_UEContextReleaseComplete), + offsetof(struct ASN_NGAP_UEContextReleaseComplete, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseComplete_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_ASN_NGAP_UEContextReleaseComplete = { + "UEContextReleaseComplete", + "UEContextReleaseComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseComplete_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.h b/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.h new file mode 100644 index 0000000..8811c65 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseComplete.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextReleaseComplete_H_ +#define _ASN_NGAP_UEContextReleaseComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextReleaseComplete */ +typedef struct ASN_NGAP_UEContextReleaseComplete { + ASN_NGAP_ProtocolIE_Container_123P18_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextReleaseComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseComplete_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextReleaseComplete_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.c b/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.c new file mode 100644 index 0000000..3ea7907 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextReleaseRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextReleaseRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextReleaseRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseRequest_specs_1 = { + sizeof(struct ASN_NGAP_UEContextReleaseRequest), + offsetof(struct ASN_NGAP_UEContextReleaseRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextReleaseRequest_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_ASN_NGAP_UEContextReleaseRequest = { + "UEContextReleaseRequest", + "UEContextReleaseRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextReleaseRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextReleaseRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextReleaseRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.h b/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.h new file mode 100644 index 0000000..dde3b8f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextReleaseRequest_H_ +#define _ASN_NGAP_UEContextReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextReleaseRequest */ +typedef struct ASN_NGAP_UEContextReleaseRequest { + ASN_NGAP_ProtocolIE_Container_123P16_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextReleaseRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextReleaseRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextReleaseRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextReleaseRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextReleaseRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextRequest.c b/src/asn/ngap/ASN_NGAP_UEContextRequest.c new file mode 100644 index 0000000..9ac7b5f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextRequest.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextRequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEContextRequest_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_ASN_NGAP_UEContextRequest_value2enum_1[] = { + { 0, 9, "requested" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_UEContextRequest_enum2value_1[] = { + 0 /* requested(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UEContextRequest_specs_1 = { + asn_MAP_ASN_NGAP_UEContextRequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_UEContextRequest_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_ASN_NGAP_UEContextRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextRequest = { + "UEContextRequest", + "UEContextRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_UEContextRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextRequest_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UEContextRequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_UEContextRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextRequest.h b/src/asn/ngap/ASN_NGAP_UEContextRequest.h new file mode 100644 index 0000000..04c6263 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextRequest.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextRequest_H_ +#define _ASN_NGAP_UEContextRequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEContextRequest { + ASN_NGAP_UEContextRequest_requested = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UEContextRequest; + +/* ASN_NGAP_UEContextRequest */ +typedef long ASN_NGAP_UEContextRequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEContextRequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextRequest; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UEContextRequest_specs_1; +asn_struct_free_f ASN_NGAP_UEContextRequest_free; +asn_struct_print_f ASN_NGAP_UEContextRequest_print; +asn_constr_check_f ASN_NGAP_UEContextRequest_constraint; +ber_type_decoder_f ASN_NGAP_UEContextRequest_decode_ber; +der_type_encoder_f ASN_NGAP_UEContextRequest_encode_der; +xer_type_decoder_f ASN_NGAP_UEContextRequest_decode_xer; +xer_type_encoder_f ASN_NGAP_UEContextRequest_encode_xer; +per_type_decoder_f ASN_NGAP_UEContextRequest_decode_uper; +per_type_encoder_f ASN_NGAP_UEContextRequest_encode_uper; +per_type_decoder_f ASN_NGAP_UEContextRequest_decode_aper; +per_type_encoder_f ASN_NGAP_UEContextRequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.c b/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.c new file mode 100644 index 0000000..32df267 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextResumeFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeFailure_specs_1 = { + sizeof(struct ASN_NGAP_UEContextResumeFailure), + offsetof(struct ASN_NGAP_UEContextResumeFailure, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeFailure_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_ASN_NGAP_UEContextResumeFailure = { + "UEContextResumeFailure", + "UEContextResumeFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.h b/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.h new file mode 100644 index 0000000..5c011d4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextResumeFailure_H_ +#define _ASN_NGAP_UEContextResumeFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextResumeFailure */ +typedef struct ASN_NGAP_UEContextResumeFailure { + ASN_NGAP_ProtocolIE_Container_123P21_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextResumeFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.c b/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.c new file mode 100644 index 0000000..8e8a9a8 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextResumeRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequest_specs_1 = { + sizeof(struct ASN_NGAP_UEContextResumeRequest), + offsetof(struct ASN_NGAP_UEContextResumeRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeRequest_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_ASN_NGAP_UEContextResumeRequest = { + "UEContextResumeRequest", + "UEContextResumeRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.h b/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.h new file mode 100644 index 0000000..84b8d12 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextResumeRequest_H_ +#define _ASN_NGAP_UEContextResumeRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextResumeRequest */ +typedef struct ASN_NGAP_UEContextResumeRequest { + ASN_NGAP_ProtocolIE_Container_123P19_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextResumeRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.c b/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.c new file mode 100644 index 0000000..1eef37f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextResumeRequestTransfer.h" + +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeRequestTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer, qosFlowFailedToResumeList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToResumeList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P350, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowFailedToResumeList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UEContextResumeRequestTransfer), + offsetof(struct ASN_NGAP_UEContextResumeRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEContextResumeRequestTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer = { + "UEContextResumeRequestTransfer", + "UEContextResumeRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeRequestTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.h b/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.h new file mode 100644 index 0000000..6e88301 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeRequestTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextResumeRequestTransfer_H_ +#define _ASN_NGAP_UEContextResumeRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEContextResumeRequestTransfer */ +typedef struct ASN_NGAP_UEContextResumeRequestTransfer { + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToResumeList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextResumeRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.c b/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.c new file mode 100644 index 0000000..45cba6d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextResumeResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextResumeResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponse_specs_1 = { + sizeof(struct ASN_NGAP_UEContextResumeResponse), + offsetof(struct ASN_NGAP_UEContextResumeResponse, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeResponse_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_ASN_NGAP_UEContextResumeResponse = { + "UEContextResumeResponse", + "UEContextResumeResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.h b/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.h new file mode 100644 index 0000000..2e77090 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextResumeResponse_H_ +#define _ASN_NGAP_UEContextResumeResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextResumeResponse */ +typedef struct ASN_NGAP_UEContextResumeResponse { + ASN_NGAP_ProtocolIE_Container_123P20_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextResumeResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.c b/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.c new file mode 100644 index 0000000..d918a4c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextResumeResponseTransfer.h" + +#include "ASN_NGAP_QosFlowListWithCause.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextResumeResponseTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer, qosFlowFailedToResumeList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_QosFlowListWithCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qosFlowFailedToResumeList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P351, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* qosFlowFailedToResumeList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextResumeResponseTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UEContextResumeResponseTransfer), + offsetof(struct ASN_NGAP_UEContextResumeResponseTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEContextResumeResponseTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer = { + "UEContextResumeResponseTransfer", + "UEContextResumeResponseTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextResumeResponseTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextResumeResponseTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.h b/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.h new file mode 100644 index 0000000..9bdada3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextResumeResponseTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextResumeResponseTransfer_H_ +#define _ASN_NGAP_UEContextResumeResponseTransfer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_QosFlowListWithCause; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEContextResumeResponseTransfer */ +typedef struct ASN_NGAP_UEContextResumeResponseTransfer { + struct ASN_NGAP_QosFlowListWithCause *qosFlowFailedToResumeList; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextResumeResponseTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextResumeResponseTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextResumeResponseTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.c b/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.c new file mode 100644 index 0000000..f516849 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextSuspendFailure.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendFailure_specs_1 = { + sizeof(struct ASN_NGAP_UEContextSuspendFailure), + offsetof(struct ASN_NGAP_UEContextSuspendFailure, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendFailure_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_ASN_NGAP_UEContextSuspendFailure = { + "UEContextSuspendFailure", + "UEContextSuspendFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendFailure_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.h b/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.h new file mode 100644 index 0000000..0f1be74 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextSuspendFailure_H_ +#define _ASN_NGAP_UEContextSuspendFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextSuspendFailure */ +typedef struct ASN_NGAP_UEContextSuspendFailure { + ASN_NGAP_ProtocolIE_Container_123P24_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextSuspendFailure_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.c b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.c new file mode 100644 index 0000000..8dac883 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextSuspendRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequest_specs_1 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequest), + offsetof(struct ASN_NGAP_UEContextSuspendRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendRequest_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_ASN_NGAP_UEContextSuspendRequest = { + "UEContextSuspendRequest", + "UEContextSuspendRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.h b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.h new file mode 100644 index 0000000..a61773c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextSuspendRequest_H_ +#define _ASN_NGAP_UEContextSuspendRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextSuspendRequest */ +typedef struct ASN_NGAP_UEContextSuspendRequest { + ASN_NGAP_ProtocolIE_Container_123P22_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextSuspendRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.c b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.c new file mode 100644 index 0000000..e1af5e7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextSuspendRequestTransfer.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendRequestTransfer_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer, suspendIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SuspendIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "suspendIndicator" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P352, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* suspendIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendRequestTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UEContextSuspendRequestTransfer), + offsetof(struct ASN_NGAP_UEContextSuspendRequestTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEContextSuspendRequestTransfer_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer = { + "UEContextSuspendRequestTransfer", + "UEContextSuspendRequestTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendRequestTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendRequestTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.h b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.h new file mode 100644 index 0000000..0e4c6c0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendRequestTransfer.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextSuspendRequestTransfer_H_ +#define _ASN_NGAP_UEContextSuspendRequestTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SuspendIndicator.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEContextSuspendRequestTransfer */ +typedef struct ASN_NGAP_UEContextSuspendRequestTransfer { + ASN_NGAP_SuspendIndicator_t *suspendIndicator; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendRequestTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendRequestTransfer; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextSuspendRequestTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.c b/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.c new file mode 100644 index 0000000..ce60a8b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEContextSuspendResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEContextSuspendResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEContextSuspendResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendResponse_specs_1 = { + sizeof(struct ASN_NGAP_UEContextSuspendResponse), + offsetof(struct ASN_NGAP_UEContextSuspendResponse, _asn_ctx), + asn_MAP_ASN_NGAP_UEContextSuspendResponse_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_ASN_NGAP_UEContextSuspendResponse = { + "UEContextSuspendResponse", + "UEContextSuspendResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEContextSuspendResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEContextSuspendResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEContextSuspendResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.h b/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.h new file mode 100644 index 0000000..207a867 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEContextSuspendResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEContextSuspendResponse_H_ +#define _ASN_NGAP_UEContextSuspendResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEContextSuspendResponse */ +typedef struct ASN_NGAP_UEContextSuspendResponse { + ASN_NGAP_ProtocolIE_Container_123P23_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEContextSuspendResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEContextSuspendResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEContextSuspendResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEContextSuspendResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEContextSuspendResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEHistoryInformation.c b/src/asn/ngap/ASN_NGAP_UEHistoryInformation.c new file mode 100644 index 0000000..09822eb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEHistoryInformation.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEHistoryInformation.h" + +#include "ASN_NGAP_LastVisitedCellItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEHistoryInformation_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_ASN_NGAP_UEHistoryInformation_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_LastVisitedCellItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformation_specs_1 = { + sizeof(struct ASN_NGAP_UEHistoryInformation), + offsetof(struct ASN_NGAP_UEHistoryInformation, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformation = { + "UEHistoryInformation", + "UEHistoryInformation", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEHistoryInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UEHistoryInformation_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UEHistoryInformation_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UEHistoryInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEHistoryInformation.h b/src/asn/ngap/ASN_NGAP_UEHistoryInformation.h new file mode 100644 index 0000000..4413111 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEHistoryInformation.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEHistoryInformation_H_ +#define _ASN_NGAP_UEHistoryInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_LastVisitedCellItem; + +/* ASN_NGAP_UEHistoryInformation */ +typedef struct ASN_NGAP_UEHistoryInformation { + A_SEQUENCE_OF(struct ASN_NGAP_LastVisitedCellItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEHistoryInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformation; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEHistoryInformation_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEHistoryInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEHistoryInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.c b/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.c new file mode 100644 index 0000000..a1266ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEHistoryInformationFromTheUE.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEHistoryInformationFromTheUE_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_ASN_NGAP_UEHistoryInformationFromTheUE_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE, choice.nR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRMobilityHistoryReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEHistoryInformationFromTheUE_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_specs_1 = { + sizeof(struct ASN_NGAP_UEHistoryInformationFromTheUE), + offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE, _asn_ctx), + offsetof(struct ASN_NGAP_UEHistoryInformationFromTheUE, present), + sizeof(((struct ASN_NGAP_UEHistoryInformationFromTheUE *)0)->present), + asn_MAP_ASN_NGAP_UEHistoryInformationFromTheUE_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE = { + "UEHistoryInformationFromTheUE", + "UEHistoryInformationFromTheUE", + &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_ASN_NGAP_UEHistoryInformationFromTheUE_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.h b/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.h new file mode 100644 index 0000000..09ae720 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEHistoryInformationFromTheUE.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEHistoryInformationFromTheUE_H_ +#define _ASN_NGAP_UEHistoryInformationFromTheUE_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRMobilityHistoryReport.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEHistoryInformationFromTheUE_PR { + ASN_NGAP_UEHistoryInformationFromTheUE_PR_NOTHING, /* No components present */ + ASN_NGAP_UEHistoryInformationFromTheUE_PR_nR, + ASN_NGAP_UEHistoryInformationFromTheUE_PR_choice_Extensions +} ASN_NGAP_UEHistoryInformationFromTheUE_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UEHistoryInformationFromTheUE */ +typedef struct ASN_NGAP_UEHistoryInformationFromTheUE { + ASN_NGAP_UEHistoryInformationFromTheUE_PR present; + union ASN_NGAP_UEHistoryInformationFromTheUE_u { + ASN_NGAP_NRMobilityHistoryReport_t nR; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEHistoryInformationFromTheUE_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEHistoryInformationFromTheUE; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEHistoryInformationFromTheUE_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEHistoryInformationFromTheUE_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEHistoryInformationFromTheUE_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEHistoryInformationFromTheUE_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.c b/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.c new file mode 100644 index 0000000..590775d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEIdentityIndexValue.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_indexLength10_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)) { + /* Constraint 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_ASN_NGAP_indexLength10_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEIdentityIndexValue_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_ASN_NGAP_UEIdentityIndexValue_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEIdentityIndexValue, choice.indexLength10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_indexLength10_constr_2, memb_ASN_NGAP_indexLength10_constraint_1 }, + 0, 0, /* No default value */ + "indexLength10" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UEIdentityIndexValue, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEIdentityIndexValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* indexLength10 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEIdentityIndexValue_specs_1 = { + sizeof(struct ASN_NGAP_UEIdentityIndexValue), + offsetof(struct ASN_NGAP_UEIdentityIndexValue, _asn_ctx), + offsetof(struct ASN_NGAP_UEIdentityIndexValue, present), + sizeof(((struct ASN_NGAP_UEIdentityIndexValue *)0)->present), + asn_MAP_ASN_NGAP_UEIdentityIndexValue_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEIdentityIndexValue = { + "UEIdentityIndexValue", + "UEIdentityIndexValue", + &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_ASN_NGAP_UEIdentityIndexValue_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UEIdentityIndexValue_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEIdentityIndexValue_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.h b/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.h new file mode 100644 index 0000000..ee27e14 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEIdentityIndexValue.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEIdentityIndexValue_H_ +#define _ASN_NGAP_UEIdentityIndexValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEIdentityIndexValue_PR { + ASN_NGAP_UEIdentityIndexValue_PR_NOTHING, /* No components present */ + ASN_NGAP_UEIdentityIndexValue_PR_indexLength10, + ASN_NGAP_UEIdentityIndexValue_PR_choice_Extensions +} ASN_NGAP_UEIdentityIndexValue_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UEIdentityIndexValue */ +typedef struct ASN_NGAP_UEIdentityIndexValue { + ASN_NGAP_UEIdentityIndexValue_PR present; + union ASN_NGAP_UEIdentityIndexValue_u { + BIT_STRING_t indexLength10; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEIdentityIndexValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEIdentityIndexValue; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEIdentityIndexValue_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEIdentityIndexValue_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEIdentityIndexValue_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEIdentityIndexValue_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEInformationTransfer.c b/src/asn/ngap/ASN_NGAP_UEInformationTransfer.c new file mode 100644 index 0000000..4709bff --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEInformationTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEInformationTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEInformationTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEInformationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UEInformationTransfer), + offsetof(struct ASN_NGAP_UEInformationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UEInformationTransfer_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_ASN_NGAP_UEInformationTransfer = { + "UEInformationTransfer", + "UEInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEInformationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UEInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEInformationTransfer.h b/src/asn/ngap/ASN_NGAP_UEInformationTransfer.h new file mode 100644 index 0000000..1d61711 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEInformationTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEInformationTransfer_H_ +#define _ASN_NGAP_UEInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UEInformationTransfer */ +typedef struct ASN_NGAP_UEInformationTransfer { + ASN_NGAP_ProtocolIE_Container_123P30_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEInformationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEInformationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEPagingIdentity.c b/src/asn/ngap/ASN_NGAP_UEPagingIdentity.c new file mode 100644 index 0000000..93e3ba3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPagingIdentity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEPagingIdentity.h" + +#include "ASN_NGAP_FiveG-S-TMSI.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPagingIdentity_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_ASN_NGAP_UEPagingIdentity_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UEPagingIdentity, choice.fiveG_S_TMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_FiveG_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fiveG-S-TMSI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UEPagingIdentity, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEPagingIdentity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fiveG-S-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEPagingIdentity_specs_1 = { + sizeof(struct ASN_NGAP_UEPagingIdentity), + offsetof(struct ASN_NGAP_UEPagingIdentity, _asn_ctx), + offsetof(struct ASN_NGAP_UEPagingIdentity, present), + sizeof(((struct ASN_NGAP_UEPagingIdentity *)0)->present), + asn_MAP_ASN_NGAP_UEPagingIdentity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPagingIdentity = { + "UEPagingIdentity", + "UEPagingIdentity", + &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_ASN_NGAP_UEPagingIdentity_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UEPagingIdentity_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UEPagingIdentity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEPagingIdentity.h b/src/asn/ngap/ASN_NGAP_UEPagingIdentity.h new file mode 100644 index 0000000..73311bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPagingIdentity.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEPagingIdentity_H_ +#define _ASN_NGAP_UEPagingIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEPagingIdentity_PR { + ASN_NGAP_UEPagingIdentity_PR_NOTHING, /* No components present */ + ASN_NGAP_UEPagingIdentity_PR_fiveG_S_TMSI, + ASN_NGAP_UEPagingIdentity_PR_choice_Extensions +} ASN_NGAP_UEPagingIdentity_PR; + +/* Forward declarations */ +struct ASN_NGAP_FiveG_S_TMSI; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UEPagingIdentity */ +typedef struct ASN_NGAP_UEPagingIdentity { + ASN_NGAP_UEPagingIdentity_PR present; + union ASN_NGAP_UEPagingIdentity_u { + struct ASN_NGAP_FiveG_S_TMSI *fiveG_S_TMSI; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEPagingIdentity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPagingIdentity; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UEPagingIdentity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPagingIdentity_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPagingIdentity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEPagingIdentity_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEPresence.c b/src/asn/ngap/ASN_NGAP_UEPresence.c new file mode 100644 index 0000000..6c71550 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresence.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEPresence.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPresence_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_ASN_NGAP_UEPresence_value2enum_1[] = { + { 0, 2, "in" }, + { 1, 3, "out" }, + { 2, 7, "unknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_UEPresence_enum2value_1[] = { + 0, /* in(0) */ + 1, /* out(1) */ + 2 /* unknown(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UEPresence_specs_1 = { + asn_MAP_ASN_NGAP_UEPresence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_UEPresence_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_ASN_NGAP_UEPresence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresence = { + "UEPresence", + "UEPresence", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_UEPresence_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEPresence_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresence_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEPresence_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEPresence_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresence_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UEPresence_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_UEPresence_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEPresence.h b/src/asn/ngap/ASN_NGAP_UEPresence.h new file mode 100644 index 0000000..3996542 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresence.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEPresence_H_ +#define _ASN_NGAP_UEPresence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UEPresence { + ASN_NGAP_UEPresence_in = 0, + ASN_NGAP_UEPresence_out = 1, + ASN_NGAP_UEPresence_unknown = 2 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UEPresence; + +/* ASN_NGAP_UEPresence */ +typedef long ASN_NGAP_UEPresence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPresence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresence; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UEPresence_specs_1; +asn_struct_free_f ASN_NGAP_UEPresence_free; +asn_struct_print_f ASN_NGAP_UEPresence_print; +asn_constr_check_f ASN_NGAP_UEPresence_constraint; +ber_type_decoder_f ASN_NGAP_UEPresence_decode_ber; +der_type_encoder_f ASN_NGAP_UEPresence_encode_der; +xer_type_decoder_f ASN_NGAP_UEPresence_decode_xer; +xer_type_encoder_f ASN_NGAP_UEPresence_encode_xer; +per_type_decoder_f ASN_NGAP_UEPresence_decode_uper; +per_type_encoder_f ASN_NGAP_UEPresence_encode_uper; +per_type_decoder_f ASN_NGAP_UEPresence_decode_aper; +per_type_encoder_f ASN_NGAP_UEPresence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEPresence_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.c b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.c new file mode 100644 index 0000000..9b5cd79 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEPresenceInAreaOfInterestItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem, locationReportingReferenceID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LocationReportingReferenceID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationReportingReferenceID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem, uEPresence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UEPresence, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uEPresence" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P355, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationReportingReferenceID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uEPresence */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_specs_1 = { + sizeof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem), + offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestItem, _asn_ctx), + asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UEPresenceInAreaOfInterestItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem = { + "UEPresenceInAreaOfInterestItem", + "UEPresenceInAreaOfInterestItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.h b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.h new file mode 100644 index 0000000..c6a8642 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestItem.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEPresenceInAreaOfInterestItem_H_ +#define _ASN_NGAP_UEPresenceInAreaOfInterestItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_LocationReportingReferenceID.h" +#include "ASN_NGAP_UEPresence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UEPresenceInAreaOfInterestItem */ +typedef struct ASN_NGAP_UEPresenceInAreaOfInterestItem { + ASN_NGAP_LocationReportingReferenceID_t locationReportingReferenceID; + ASN_NGAP_UEPresence_t uEPresence; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEPresenceInAreaOfInterestItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEPresenceInAreaOfInterestItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.c b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.c new file mode 100644 index 0000000..17633c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UEPresenceInAreaOfInterestList.h" + +#include "ASN_NGAP_UEPresenceInAreaOfInterestItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPresenceInAreaOfInterestList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestList_specs_1 = { + sizeof(struct ASN_NGAP_UEPresenceInAreaOfInterestList), + offsetof(struct ASN_NGAP_UEPresenceInAreaOfInterestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList = { + "UEPresenceInAreaOfInterestList", + "UEPresenceInAreaOfInterestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UEPresenceInAreaOfInterestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.h b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.h new file mode 100644 index 0000000..020012d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UEPresenceInAreaOfInterestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UEPresenceInAreaOfInterestList_H_ +#define _ASN_NGAP_UEPresenceInAreaOfInterestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UEPresenceInAreaOfInterestItem; + +/* ASN_NGAP_UEPresenceInAreaOfInterestList */ +typedef struct ASN_NGAP_UEPresenceInAreaOfInterestList { + A_SEQUENCE_OF(struct ASN_NGAP_UEPresenceInAreaOfInterestItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UEPresenceInAreaOfInterestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UEPresenceInAreaOfInterestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UEPresenceInAreaOfInterestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UEPresenceInAreaOfInterestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UEPresenceInAreaOfInterestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UEPresenceInAreaOfInterestList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERLFReportContainer.c b/src/asn/ngap/ASN_NGAP_UERLFReportContainer.c new file mode 100644 index 0000000..d96ed06 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERLFReportContainer.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERLFReportContainer.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UERLFReportContainer_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERLFReportContainer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERLFReportContainer, choice.nR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRUERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERLFReportContainer, choice.lTE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_LTEUERLFReportContainer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lTE" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UERLFReportContainer, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERLFReportContainer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lTE */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UERLFReportContainer_specs_1 = { + sizeof(struct ASN_NGAP_UERLFReportContainer), + offsetof(struct ASN_NGAP_UERLFReportContainer, _asn_ctx), + offsetof(struct ASN_NGAP_UERLFReportContainer, present), + sizeof(((struct ASN_NGAP_UERLFReportContainer *)0)->present), + asn_MAP_ASN_NGAP_UERLFReportContainer_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERLFReportContainer = { + "UERLFReportContainer", + "UERLFReportContainer", + &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_ASN_NGAP_UERLFReportContainer_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UERLFReportContainer_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERLFReportContainer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERLFReportContainer.h b/src/asn/ngap/ASN_NGAP_UERLFReportContainer.h new file mode 100644 index 0000000..0735383 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERLFReportContainer.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERLFReportContainer_H_ +#define _ASN_NGAP_UERLFReportContainer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRUERLFReportContainer.h" +#include "ASN_NGAP_LTEUERLFReportContainer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UERLFReportContainer_PR { + ASN_NGAP_UERLFReportContainer_PR_NOTHING, /* No components present */ + ASN_NGAP_UERLFReportContainer_PR_nR, + ASN_NGAP_UERLFReportContainer_PR_lTE, + ASN_NGAP_UERLFReportContainer_PR_choice_Extensions +} ASN_NGAP_UERLFReportContainer_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UERLFReportContainer */ +typedef struct ASN_NGAP_UERLFReportContainer { + ASN_NGAP_UERLFReportContainer_PR present; + union ASN_NGAP_UERLFReportContainer_u { + ASN_NGAP_NRUERLFReportContainer_t nR; + ASN_NGAP_LTEUERLFReportContainer_t lTE; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERLFReportContainer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERLFReportContainer; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UERLFReportContainer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERLFReportContainer_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UERLFReportContainer_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERLFReportContainer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapability.c b/src/asn/ngap/ASN_NGAP_UERadioCapability.c new file mode 100644 index 0000000..8919a26 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapability.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapability.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapability = { + "UERadioCapability", + "UERadioCapability", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_UERadioCapability_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapability_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapability_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapability_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapability.h b/src/asn/ngap/ASN_NGAP_UERadioCapability.h new file mode 100644 index 0000000..2334967 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapability.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapability_H_ +#define _ASN_NGAP_UERadioCapability_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapability */ +typedef OCTET_STRING_t ASN_NGAP_UERadioCapability_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapability; +asn_struct_free_f ASN_NGAP_UERadioCapability_free; +asn_struct_print_f ASN_NGAP_UERadioCapability_print; +asn_constr_check_f ASN_NGAP_UERadioCapability_constraint; +ber_type_decoder_f ASN_NGAP_UERadioCapability_decode_ber; +der_type_encoder_f ASN_NGAP_UERadioCapability_encode_der; +xer_type_decoder_f ASN_NGAP_UERadioCapability_decode_xer; +xer_type_encoder_f ASN_NGAP_UERadioCapability_encode_xer; +per_type_decoder_f ASN_NGAP_UERadioCapability_decode_uper; +per_type_encoder_f ASN_NGAP_UERadioCapability_encode_uper; +per_type_decoder_f ASN_NGAP_UERadioCapability_decode_aper; +per_type_encoder_f ASN_NGAP_UERadioCapability_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapability_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.c new file mode 100644 index 0000000..4308455 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityCheckRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P91, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityCheckRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequest_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckRequest), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityCheckRequest_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_ASN_NGAP_UERadioCapabilityCheckRequest = { + "UERadioCapabilityCheckRequest", + "UERadioCapabilityCheckRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.h new file mode 100644 index 0000000..c94c87b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityCheckRequest_H_ +#define _ASN_NGAP_UERadioCapabilityCheckRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityCheckRequest */ +typedef struct ASN_NGAP_UERadioCapabilityCheckRequest { + ASN_NGAP_ProtocolIE_Container_123P91_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityCheckRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityCheckRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.c new file mode 100644 index 0000000..63d679e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityCheckResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityCheckResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponse_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityCheckResponse), + offsetof(struct ASN_NGAP_UERadioCapabilityCheckResponse, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityCheckResponse_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_ASN_NGAP_UERadioCapabilityCheckResponse = { + "UERadioCapabilityCheckResponse", + "UERadioCapabilityCheckResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.h new file mode 100644 index 0000000..43bf5bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityCheckResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityCheckResponse_H_ +#define _ASN_NGAP_UERadioCapabilityCheckResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityCheckResponse */ +typedef struct ASN_NGAP_UERadioCapabilityCheckResponse { + ASN_NGAP_ProtocolIE_Container_123P92_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityCheckResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityCheckResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityCheckResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityCheckResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.c new file mode 100644 index 0000000..c6efb18 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityForPaging.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging, uERadioCapabilityForPagingOfNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERadioCapabilityForPagingOfNR" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging, uERadioCapabilityForPagingOfEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uERadioCapabilityForPagingOfEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UERadioCapabilityForPaging, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P356, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uERadioCapabilityForPagingOfNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uERadioCapabilityForPagingOfEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityForPaging), + offsetof(struct ASN_NGAP_UERadioCapabilityForPaging, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UERadioCapabilityForPaging_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging = { + "UERadioCapabilityForPaging", + "UERadioCapabilityForPaging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPaging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.h new file mode 100644 index 0000000..55f03da --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPaging.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityForPaging_H_ +#define _ASN_NGAP_UERadioCapabilityForPaging_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UERadioCapabilityForPagingOfNR.h" +#include "ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UERadioCapabilityForPaging */ +typedef struct ASN_NGAP_UERadioCapabilityForPaging { + ASN_NGAP_UERadioCapabilityForPagingOfNR_t *uERadioCapabilityForPagingOfNR; /* OPTIONAL */ + ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_t *uERadioCapabilityForPagingOfEUTRA; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityForPaging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPaging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityForPaging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityForPaging_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityForPaging_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.c new file mode 100644 index 0000000..a6b3e2e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA = { + "UERadioCapabilityForPagingOfEUTRA", + "UERadioCapabilityForPagingOfEUTRA", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h new file mode 100644 index 0000000..512561f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfEUTRA.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_H_ +#define _ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityForPagingOfEUTRA */ +typedef OCTET_STRING_t ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfEUTRA; +asn_struct_free_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_free; +asn_struct_print_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_print; +asn_constr_check_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_constraint; +ber_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_decode_ber; +der_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_encode_der; +xer_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_decode_xer; +xer_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_encode_xer; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_decode_uper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_encode_uper; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_decode_aper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityForPagingOfEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.c new file mode 100644 index 0000000..8b7e677 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT = { + "UERadioCapabilityForPagingOfNB-IoT", + "UERadioCapabilityForPagingOfNB-IoT", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h new file mode 100644 index 0000000..c841207 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_H_ +#define _ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityForPagingOfNB-IoT */ +typedef OCTET_STRING_t ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT; +asn_struct_free_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_free; +asn_struct_print_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_print; +asn_constr_check_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_constraint; +ber_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_decode_ber; +der_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_der; +xer_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_decode_xer; +xer_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_xer; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_decode_uper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_uper; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_decode_aper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityForPagingOfNB_IoT_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.c new file mode 100644 index 0000000..9e34ebc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityForPagingOfNR.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR = { + "UERadioCapabilityForPagingOfNR", + "UERadioCapabilityForPagingOfNR", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.h new file mode 100644 index 0000000..d258ae4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityForPagingOfNR.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityForPagingOfNR_H_ +#define _ASN_NGAP_UERadioCapabilityForPagingOfNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityForPagingOfNR */ +typedef OCTET_STRING_t ASN_NGAP_UERadioCapabilityForPagingOfNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityForPagingOfNR; +asn_struct_free_f ASN_NGAP_UERadioCapabilityForPagingOfNR_free; +asn_struct_print_f ASN_NGAP_UERadioCapabilityForPagingOfNR_print; +asn_constr_check_f ASN_NGAP_UERadioCapabilityForPagingOfNR_constraint; +ber_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_decode_ber; +der_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_encode_der; +xer_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_decode_xer; +xer_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_encode_xer; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_decode_uper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_encode_uper; +per_type_decoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_decode_aper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityForPagingOfNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityForPagingOfNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.c new file mode 100644 index 0000000..8dead03 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityID.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityID = { + "UERadioCapabilityID", + "UERadioCapabilityID", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityID_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.h new file mode 100644 index 0000000..430d3f1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityID.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityID_H_ +#define _ASN_NGAP_UERadioCapabilityID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityID */ +typedef OCTET_STRING_t ASN_NGAP_UERadioCapabilityID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityID; +asn_struct_free_f ASN_NGAP_UERadioCapabilityID_free; +asn_struct_print_f ASN_NGAP_UERadioCapabilityID_print; +asn_constr_check_f ASN_NGAP_UERadioCapabilityID_constraint; +ber_type_decoder_f ASN_NGAP_UERadioCapabilityID_decode_ber; +der_type_encoder_f ASN_NGAP_UERadioCapabilityID_encode_der; +xer_type_decoder_f ASN_NGAP_UERadioCapabilityID_decode_xer; +xer_type_encoder_f ASN_NGAP_UERadioCapabilityID_encode_xer; +per_type_decoder_f ASN_NGAP_UERadioCapabilityID_decode_uper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityID_encode_uper; +per_type_decoder_f ASN_NGAP_UERadioCapabilityID_decode_aper; +per_type_encoder_f ASN_NGAP_UERadioCapabilityID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.c new file mode 100644 index 0000000..eae7828 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityIDMappingRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P97, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequest_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingRequest), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingRequest_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_ASN_NGAP_UERadioCapabilityIDMappingRequest = { + "UERadioCapabilityIDMappingRequest", + "UERadioCapabilityIDMappingRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.h new file mode 100644 index 0000000..f6da762 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityIDMappingRequest_H_ +#define _ASN_NGAP_UERadioCapabilityIDMappingRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityIDMappingRequest */ +typedef struct ASN_NGAP_UERadioCapabilityIDMappingRequest { + ASN_NGAP_ProtocolIE_Container_123P97_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityIDMappingRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityIDMappingRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.c new file mode 100644 index 0000000..4945684 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityIDMappingResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponse_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityIDMappingResponse), + offsetof(struct ASN_NGAP_UERadioCapabilityIDMappingResponse, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityIDMappingResponse_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_ASN_NGAP_UERadioCapabilityIDMappingResponse = { + "UERadioCapabilityIDMappingResponse", + "UERadioCapabilityIDMappingResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.h new file mode 100644 index 0000000..1ac01ee --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityIDMappingResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityIDMappingResponse_H_ +#define _ASN_NGAP_UERadioCapabilityIDMappingResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityIDMappingResponse */ +typedef struct ASN_NGAP_UERadioCapabilityIDMappingResponse { + ASN_NGAP_ProtocolIE_Container_123P98_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityIDMappingResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityIDMappingResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityIDMappingResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityIDMappingResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.c b/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.c new file mode 100644 index 0000000..e4cbaae --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERadioCapabilityInfoIndication.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndication, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UERadioCapabilityInfoIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndication_specs_1 = { + sizeof(struct ASN_NGAP_UERadioCapabilityInfoIndication), + offsetof(struct ASN_NGAP_UERadioCapabilityInfoIndication, _asn_ctx), + asn_MAP_ASN_NGAP_UERadioCapabilityInfoIndication_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_ASN_NGAP_UERadioCapabilityInfoIndication = { + "UERadioCapabilityInfoIndication", + "UERadioCapabilityInfoIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.h b/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.h new file mode 100644 index 0000000..4ad04bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERadioCapabilityInfoIndication.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERadioCapabilityInfoIndication_H_ +#define _ASN_NGAP_UERadioCapabilityInfoIndication_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UERadioCapabilityInfoIndication */ +typedef struct ASN_NGAP_UERadioCapabilityInfoIndication { + ASN_NGAP_ProtocolIE_Container_123P90_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UERadioCapabilityInfoIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UERadioCapabilityInfoIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UERadioCapabilityInfoIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERadioCapabilityInfoIndication_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UERetentionInformation.c b/src/asn/ngap/ASN_NGAP_UERetentionInformation.c new file mode 100644 index 0000000..afa6938 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERetentionInformation.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UERetentionInformation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_UERetentionInformation_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_ASN_NGAP_UERetentionInformation_value2enum_1[] = { + { 0, 12, "ues-retained" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_UERetentionInformation_enum2value_1[] = { + 0 /* ues-retained(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UERetentionInformation_specs_1 = { + asn_MAP_ASN_NGAP_UERetentionInformation_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_UERetentionInformation_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_ASN_NGAP_UERetentionInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERetentionInformation = { + "UERetentionInformation", + "UERetentionInformation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_UERetentionInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_UERetentionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERetentionInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UERetentionInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UERetentionInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UERetentionInformation_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UERetentionInformation_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_UERetentionInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UERetentionInformation.h b/src/asn/ngap/ASN_NGAP_UERetentionInformation.h new file mode 100644 index 0000000..ca9b92b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UERetentionInformation.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UERetentionInformation_H_ +#define _ASN_NGAP_UERetentionInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UERetentionInformation { + ASN_NGAP_UERetentionInformation_ues_retained = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_UERetentionInformation; + +/* ASN_NGAP_UERetentionInformation */ +typedef long ASN_NGAP_UERetentionInformation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UERetentionInformation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UERetentionInformation; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_UERetentionInformation_specs_1; +asn_struct_free_f ASN_NGAP_UERetentionInformation_free; +asn_struct_print_f ASN_NGAP_UERetentionInformation_print; +asn_constr_check_f ASN_NGAP_UERetentionInformation_constraint; +ber_type_decoder_f ASN_NGAP_UERetentionInformation_decode_ber; +der_type_encoder_f ASN_NGAP_UERetentionInformation_encode_der; +xer_type_decoder_f ASN_NGAP_UERetentionInformation_decode_xer; +xer_type_encoder_f ASN_NGAP_UERetentionInformation_encode_xer; +per_type_decoder_f ASN_NGAP_UERetentionInformation_decode_uper; +per_type_encoder_f ASN_NGAP_UERetentionInformation_encode_uper; +per_type_decoder_f ASN_NGAP_UERetentionInformation_decode_aper; +per_type_encoder_f ASN_NGAP_UERetentionInformation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UERetentionInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.c b/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.c new file mode 100644 index 0000000..f8e71ce --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UESecurityCapabilities.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UESecurityCapabilities_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities, nRencryptionAlgorithms), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRencryptionAlgorithms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRencryptionAlgorithms" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities, nRintegrityProtectionAlgorithms), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NRintegrityProtectionAlgorithms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nRintegrityProtectionAlgorithms" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities, eUTRAencryptionAlgorithms), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAencryptionAlgorithms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAencryptionAlgorithms" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESecurityCapabilities, eUTRAintegrityProtectionAlgorithms), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRAintegrityProtectionAlgorithms, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRAintegrityProtectionAlgorithms" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UESecurityCapabilities, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P357, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UESecurityCapabilities_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UESecurityCapabilities_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 }, /* eUTRAencryptionAlgorithms */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eUTRAintegrityProtectionAlgorithms */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESecurityCapabilities_specs_1 = { + sizeof(struct ASN_NGAP_UESecurityCapabilities), + offsetof(struct ASN_NGAP_UESecurityCapabilities, _asn_ctx), + asn_MAP_ASN_NGAP_UESecurityCapabilities_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UESecurityCapabilities_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESecurityCapabilities = { + "UESecurityCapabilities", + "UESecurityCapabilities", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1, + sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESecurityCapabilities_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UESecurityCapabilities_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_UESecurityCapabilities_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.h b/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.h new file mode 100644 index 0000000..20ea8b7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESecurityCapabilities.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UESecurityCapabilities_H_ +#define _ASN_NGAP_UESecurityCapabilities_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NRencryptionAlgorithms.h" +#include "ASN_NGAP_NRintegrityProtectionAlgorithms.h" +#include "ASN_NGAP_EUTRAencryptionAlgorithms.h" +#include "ASN_NGAP_EUTRAintegrityProtectionAlgorithms.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UESecurityCapabilities */ +typedef struct ASN_NGAP_UESecurityCapabilities { + ASN_NGAP_NRencryptionAlgorithms_t nRencryptionAlgorithms; + ASN_NGAP_NRintegrityProtectionAlgorithms_t nRintegrityProtectionAlgorithms; + ASN_NGAP_EUTRAencryptionAlgorithms_t eUTRAencryptionAlgorithms; + ASN_NGAP_EUTRAintegrityProtectionAlgorithms_t eUTRAintegrityProtectionAlgorithms; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UESecurityCapabilities_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESecurityCapabilities; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESecurityCapabilities_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UESecurityCapabilities_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UESecurityCapabilities_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.c b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.c new file mode 100644 index 0000000..ac48e9b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UESliceMaximumBitRateItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem, s_NSSAI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NSSAI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem, uESliceMaximumBitRateDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uESliceMaximumBitRateDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem, uESliceMaximumBitRateUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_BitRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uESliceMaximumBitRateUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P358, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NSSAI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uESliceMaximumBitRateDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uESliceMaximumBitRateUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_specs_1 = { + sizeof(struct ASN_NGAP_UESliceMaximumBitRateItem), + offsetof(struct ASN_NGAP_UESliceMaximumBitRateItem, _asn_ctx), + asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UESliceMaximumBitRateItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem = { + "UESliceMaximumBitRateItem", + "UESliceMaximumBitRateItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.h b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.h new file mode 100644 index 0000000..ea6341b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateItem.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UESliceMaximumBitRateItem_H_ +#define _ASN_NGAP_UESliceMaximumBitRateItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_S-NSSAI.h" +#include "ASN_NGAP_BitRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UESliceMaximumBitRateItem */ +typedef struct ASN_NGAP_UESliceMaximumBitRateItem { + ASN_NGAP_S_NSSAI_t s_NSSAI; + ASN_NGAP_BitRate_t uESliceMaximumBitRateDL; + ASN_NGAP_BitRate_t uESliceMaximumBitRateUL; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UESliceMaximumBitRateItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UESliceMaximumBitRateItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UESliceMaximumBitRateItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.c b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.c new file mode 100644 index 0000000..b0206df --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UESliceMaximumBitRateList.h" + +#include "ASN_NGAP_UESliceMaximumBitRateItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UESliceMaximumBitRateList_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_ASN_NGAP_UESliceMaximumBitRateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UESliceMaximumBitRateItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateList_specs_1 = { + sizeof(struct ASN_NGAP_UESliceMaximumBitRateList), + offsetof(struct ASN_NGAP_UESliceMaximumBitRateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateList = { + "UESliceMaximumBitRateList", + "UESliceMaximumBitRateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UESliceMaximumBitRateList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UESliceMaximumBitRateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UESliceMaximumBitRateList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UESliceMaximumBitRateList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.h b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.h new file mode 100644 index 0000000..678c44b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UESliceMaximumBitRateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UESliceMaximumBitRateList_H_ +#define _ASN_NGAP_UESliceMaximumBitRateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UESliceMaximumBitRateItem; + +/* ASN_NGAP_UESliceMaximumBitRateList */ +typedef struct ASN_NGAP_UESliceMaximumBitRateList { + A_SEQUENCE_OF(struct ASN_NGAP_UESliceMaximumBitRateItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UESliceMaximumBitRateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UESliceMaximumBitRateList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UESliceMaximumBitRateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UESliceMaximumBitRateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UESliceMaximumBitRateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UESliceMaximumBitRateList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.c b/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.c new file mode 100644 index 0000000..a63ad53 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UETNLABindingReleaseRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UETNLABindingReleaseRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UETNLABindingReleaseRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P89, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UETNLABindingReleaseRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UETNLABindingReleaseRequest_specs_1 = { + sizeof(struct ASN_NGAP_UETNLABindingReleaseRequest), + offsetof(struct ASN_NGAP_UETNLABindingReleaseRequest, _asn_ctx), + asn_MAP_ASN_NGAP_UETNLABindingReleaseRequest_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_ASN_NGAP_UETNLABindingReleaseRequest = { + "UETNLABindingReleaseRequest", + "UETNLABindingReleaseRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UETNLABindingReleaseRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UETNLABindingReleaseRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.h b/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.h new file mode 100644 index 0000000..2bd741b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UETNLABindingReleaseRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UETNLABindingReleaseRequest_H_ +#define _ASN_NGAP_UETNLABindingReleaseRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UETNLABindingReleaseRequest */ +typedef struct ASN_NGAP_UETNLABindingReleaseRequest { + ASN_NGAP_ProtocolIE_Container_123P89_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UETNLABindingReleaseRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UETNLABindingReleaseRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UETNLABindingReleaseRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UETNLABindingReleaseRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.c b/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.c new file mode 100644 index 0000000..c01b707 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UL-CP-SecurityInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation, ul_NAS_MAC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UL_NAS_MAC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-NAS-MAC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation, ul_NAS_Count), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UL_NAS_Count, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-NAS-Count" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UL_CP_SecurityInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P359, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-NAS-MAC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-NAS-Count */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_specs_1 = { + sizeof(struct ASN_NGAP_UL_CP_SecurityInformation), + offsetof(struct ASN_NGAP_UL_CP_SecurityInformation, _asn_ctx), + asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UL_CP_SecurityInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation = { + "UL-CP-SecurityInformation", + "UL-CP-SecurityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_CP_SecurityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.h b/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.h new file mode 100644 index 0000000..a594c07 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-CP-SecurityInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UL_CP_SecurityInformation_H_ +#define _ASN_NGAP_UL_CP_SecurityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UL-NAS-MAC.h" +#include "ASN_NGAP_UL-NAS-Count.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UL-CP-SecurityInformation */ +typedef struct ASN_NGAP_UL_CP_SecurityInformation { + ASN_NGAP_UL_NAS_MAC_t ul_NAS_MAC; + ASN_NGAP_UL_NAS_Count_t ul_NAS_Count; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UL_CP_SecurityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_CP_SecurityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_CP_SecurityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_CP_SecurityInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UL_CP_SecurityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UL-NAS-Count.c b/src/asn/ngap/ASN_NGAP_UL-NAS-Count.c new file mode 100644 index 0000000..b7f7022 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NAS-Count.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UL-NAS-Count.h" + +int +ASN_NGAP_UL_NAS_Count_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 == 5)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_UL_NAS_Count_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 5, 5 } /* (SIZE(5..5)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NAS_Count = { + "UL-NAS-Count", + "UL-NAS-Count", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1, + sizeof(asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NAS_Count_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UL_NAS_Count_constr_1, ASN_NGAP_UL_NAS_Count_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UL-NAS-Count.h b/src/asn/ngap/ASN_NGAP_UL-NAS-Count.h new file mode 100644 index 0000000..baabba7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NAS-Count.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UL_NAS_Count_H_ +#define _ASN_NGAP_UL_NAS_Count_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UL-NAS-Count */ +typedef BIT_STRING_t ASN_NGAP_UL_NAS_Count_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UL_NAS_Count_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NAS_Count; +asn_struct_free_f ASN_NGAP_UL_NAS_Count_free; +asn_struct_print_f ASN_NGAP_UL_NAS_Count_print; +asn_constr_check_f ASN_NGAP_UL_NAS_Count_constraint; +ber_type_decoder_f ASN_NGAP_UL_NAS_Count_decode_ber; +der_type_encoder_f ASN_NGAP_UL_NAS_Count_encode_der; +xer_type_decoder_f ASN_NGAP_UL_NAS_Count_decode_xer; +xer_type_encoder_f ASN_NGAP_UL_NAS_Count_encode_xer; +per_type_decoder_f ASN_NGAP_UL_NAS_Count_decode_uper; +per_type_encoder_f ASN_NGAP_UL_NAS_Count_encode_uper; +per_type_decoder_f ASN_NGAP_UL_NAS_Count_decode_aper; +per_type_encoder_f ASN_NGAP_UL_NAS_Count_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UL_NAS_Count_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.c b/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.c new file mode 100644 index 0000000..0962c36 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UL-NAS-MAC.h" + +int +ASN_NGAP_UL_NAS_MAC_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_ASN_NGAP_UL_NAS_MAC_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_ASN_NGAP_UL_NAS_MAC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NAS_MAC = { + "UL-NAS-MAC", + "UL-NAS-MAC", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1, + sizeof(asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NAS_MAC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UL_NAS_MAC_constr_1, ASN_NGAP_UL_NAS_MAC_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.h b/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.h new file mode 100644 index 0000000..64b4760 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NAS-MAC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UL_NAS_MAC_H_ +#define _ASN_NGAP_UL_NAS_MAC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UL-NAS-MAC */ +typedef BIT_STRING_t ASN_NGAP_UL_NAS_MAC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UL_NAS_MAC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NAS_MAC; +asn_struct_free_f ASN_NGAP_UL_NAS_MAC_free; +asn_struct_print_f ASN_NGAP_UL_NAS_MAC_print; +asn_constr_check_f ASN_NGAP_UL_NAS_MAC_constraint; +ber_type_decoder_f ASN_NGAP_UL_NAS_MAC_decode_ber; +der_type_encoder_f ASN_NGAP_UL_NAS_MAC_encode_der; +xer_type_decoder_f ASN_NGAP_UL_NAS_MAC_decode_xer; +xer_type_encoder_f ASN_NGAP_UL_NAS_MAC_encode_xer; +per_type_decoder_f ASN_NGAP_UL_NAS_MAC_decode_uper; +per_type_encoder_f ASN_NGAP_UL_NAS_MAC_encode_uper; +per_type_decoder_f ASN_NGAP_UL_NAS_MAC_decode_aper; +per_type_encoder_f ASN_NGAP_UL_NAS_MAC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UL_NAS_MAC_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c new file mode 100644 index 0000000..fd53c8f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UL-NGU-UP-TNLModifyItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem, uL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-NGU-UP-TNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem, dL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P360, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_specs_1 = { + sizeof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem), + offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem, _asn_ctx), + asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UL_NGU_UP_TNLModifyItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem = { + "UL-NGU-UP-TNLModifyItem", + "UL-NGU-UP-TNLModifyItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h new file mode 100644 index 0000000..9842a2a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyItem.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UL_NGU_UP_TNLModifyItem_H_ +#define _ASN_NGAP_UL_NGU_UP_TNLModifyItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UL-NGU-UP-TNLModifyItem */ +typedef struct ASN_NGAP_UL_NGU_UP_TNLModifyItem { + ASN_NGAP_UPTransportLayerInformation_t uL_NGU_UP_TNLInformation; + ASN_NGAP_UPTransportLayerInformation_t dL_NGU_UP_TNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UL_NGU_UP_TNLModifyItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UL_NGU_UP_TNLModifyItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c new file mode 100644 index 0000000..259e1fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UL-NGU-UP-TNLModifyList.h" + +#include "ASN_NGAP_UL-NGU-UP-TNLModifyItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UL_NGU_UP_TNLModifyList_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_ASN_NGAP_UL_NGU_UP_TNLModifyList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyList_specs_1 = { + sizeof(struct ASN_NGAP_UL_NGU_UP_TNLModifyList), + offsetof(struct ASN_NGAP_UL_NGU_UP_TNLModifyList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList = { + "UL-NGU-UP-TNLModifyList", + "UL-NGU-UP-TNLModifyList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UL_NGU_UP_TNLModifyList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h new file mode 100644 index 0000000..20aee26 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UL-NGU-UP-TNLModifyList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UL_NGU_UP_TNLModifyList_H_ +#define _ASN_NGAP_UL_NGU_UP_TNLModifyList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UL_NGU_UP_TNLModifyItem; + +/* ASN_NGAP_UL-NGU-UP-TNLModifyList */ +typedef struct ASN_NGAP_UL_NGU_UP_TNLModifyList { + A_SEQUENCE_OF(struct ASN_NGAP_UL_NGU_UP_TNLModifyItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UL_NGU_UP_TNLModifyList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UL_NGU_UP_TNLModifyList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UL_NGU_UP_TNLModifyList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UL_NGU_UP_TNLModifyList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UL_NGU_UP_TNLModifyList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UL_NGU_UP_TNLModifyList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_ULForwarding.c b/src/asn/ngap/ASN_NGAP_ULForwarding.c new file mode 100644 index 0000000..d5cac05 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ULForwarding.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_ULForwarding.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_ULForwarding_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_ASN_NGAP_ULForwarding_value2enum_1[] = { + { 0, 22, "ul-forwarding-proposed" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_ULForwarding_enum2value_1[] = { + 0 /* ul-forwarding-proposed(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ULForwarding_specs_1 = { + asn_MAP_ASN_NGAP_ULForwarding_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_ULForwarding_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_ASN_NGAP_ULForwarding_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ULForwarding = { + "ULForwarding", + "ULForwarding", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_ULForwarding_tags_1, + sizeof(asn_DEF_ASN_NGAP_ULForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ULForwarding_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_ULForwarding_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_ULForwarding_tags_1) + /sizeof(asn_DEF_ASN_NGAP_ULForwarding_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_ULForwarding_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_ULForwarding_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_ULForwarding.h b/src/asn/ngap/ASN_NGAP_ULForwarding.h new file mode 100644 index 0000000..f6e3293 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_ULForwarding.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_ULForwarding_H_ +#define _ASN_NGAP_ULForwarding_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_ULForwarding { + ASN_NGAP_ULForwarding_ul_forwarding_proposed = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_ULForwarding; + +/* ASN_NGAP_ULForwarding */ +typedef long ASN_NGAP_ULForwarding_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_ULForwarding_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_ULForwarding; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_ULForwarding_specs_1; +asn_struct_free_f ASN_NGAP_ULForwarding_free; +asn_struct_print_f ASN_NGAP_ULForwarding_print; +asn_constr_check_f ASN_NGAP_ULForwarding_constraint; +ber_type_decoder_f ASN_NGAP_ULForwarding_decode_ber; +der_type_encoder_f ASN_NGAP_ULForwarding_encode_der; +xer_type_decoder_f ASN_NGAP_ULForwarding_decode_xer; +xer_type_encoder_f ASN_NGAP_ULForwarding_encode_xer; +per_type_decoder_f ASN_NGAP_ULForwarding_decode_uper; +per_type_encoder_f ASN_NGAP_ULForwarding_encode_uper; +per_type_decoder_f ASN_NGAP_ULForwarding_decode_aper; +per_type_encoder_f ASN_NGAP_ULForwarding_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ULForwarding_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.c b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.c new file mode 100644 index 0000000..ad7849b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UPTransportLayerInformation.h" + +#include "ASN_NGAP_GTPTunnel.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformation_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_ASN_NGAP_UPTransportLayerInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformation, choice.gTPTunnel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GTPTunnel, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTPTunnel" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gTPTunnel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformation_specs_1 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformation), + offsetof(struct ASN_NGAP_UPTransportLayerInformation, _asn_ctx), + offsetof(struct ASN_NGAP_UPTransportLayerInformation, present), + sizeof(((struct ASN_NGAP_UPTransportLayerInformation *)0)->present), + asn_MAP_ASN_NGAP_UPTransportLayerInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformation = { + "UPTransportLayerInformation", + "UPTransportLayerInformation", + &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_ASN_NGAP_UPTransportLayerInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.h b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.h new file mode 100644 index 0000000..36ba318 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UPTransportLayerInformation_H_ +#define _ASN_NGAP_UPTransportLayerInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UPTransportLayerInformation_PR { + ASN_NGAP_UPTransportLayerInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_UPTransportLayerInformation_PR_gTPTunnel, + ASN_NGAP_UPTransportLayerInformation_PR_choice_Extensions +} ASN_NGAP_UPTransportLayerInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_GTPTunnel; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UPTransportLayerInformation */ +typedef struct ASN_NGAP_UPTransportLayerInformation { + ASN_NGAP_UPTransportLayerInformation_PR present; + union ASN_NGAP_UPTransportLayerInformation_u { + struct ASN_NGAP_GTPTunnel *gTPTunnel; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UPTransportLayerInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.c b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.c new file mode 100644 index 0000000..7bf6917 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UPTransportLayerInformationItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem, nGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nGU-UP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UPTransportLayerInformationItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P362, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_specs_1 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationItem), + offsetof(struct ASN_NGAP_UPTransportLayerInformationItem, _asn_ctx), + asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UPTransportLayerInformationItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem = { + "UPTransportLayerInformationItem", + "UPTransportLayerInformationItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.h b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.h new file mode 100644 index 0000000..9b05629 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UPTransportLayerInformationItem_H_ +#define _ASN_NGAP_UPTransportLayerInformationItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UPTransportLayerInformationItem */ +typedef struct ASN_NGAP_UPTransportLayerInformationItem { + ASN_NGAP_UPTransportLayerInformation_t nGU_UP_TNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UPTransportLayerInformationItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.c b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.c new file mode 100644 index 0000000..ff63b64 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UPTransportLayerInformationList.h" + +#include "ASN_NGAP_UPTransportLayerInformationItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationList_specs_1 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationList), + offsetof(struct ASN_NGAP_UPTransportLayerInformationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationList = { + "UPTransportLayerInformationList", + "UPTransportLayerInformationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UPTransportLayerInformationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.h b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.h new file mode 100644 index 0000000..037f8bd --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UPTransportLayerInformationList_H_ +#define _ASN_NGAP_UPTransportLayerInformationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformationItem; + +/* ASN_NGAP_UPTransportLayerInformationList */ +typedef struct ASN_NGAP_UPTransportLayerInformationList { + A_SEQUENCE_OF(struct ASN_NGAP_UPTransportLayerInformationItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UPTransportLayerInformationList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.c b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.c new file mode 100644 index 0000000..f8a2e2f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UPTransportLayerInformationPairItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem, uL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uL-NGU-UP-TNLInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem, dL_NGU_UP_TNLInformation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UPTransportLayerInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dL-NGU-UP-TNLInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P363, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dL-NGU-UP-TNLInformation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_specs_1 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationPairItem), + offsetof(struct ASN_NGAP_UPTransportLayerInformationPairItem, _asn_ctx), + asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UPTransportLayerInformationPairItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem = { + "UPTransportLayerInformationPairItem", + "UPTransportLayerInformationPairItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.h b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.h new file mode 100644 index 0000000..325cf89 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairItem.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UPTransportLayerInformationPairItem_H_ +#define _ASN_NGAP_UPTransportLayerInformationPairItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_UPTransportLayerInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UPTransportLayerInformationPairItem */ +typedef struct ASN_NGAP_UPTransportLayerInformationPairItem { + ASN_NGAP_UPTransportLayerInformation_t uL_NGU_UP_TNLInformation; + ASN_NGAP_UPTransportLayerInformation_t dL_NGU_UP_TNLInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationPairItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairItem_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UPTransportLayerInformationPairItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.c b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.c new file mode 100644 index 0000000..1f6ab0a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UPTransportLayerInformationPairList.h" + +#include "ASN_NGAP_UPTransportLayerInformationPairItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformationPairList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UPTransportLayerInformationPairItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairList_specs_1 = { + sizeof(struct ASN_NGAP_UPTransportLayerInformationPairList), + offsetof(struct ASN_NGAP_UPTransportLayerInformationPairList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList = { + "UPTransportLayerInformationPairList", + "UPTransportLayerInformationPairList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UPTransportLayerInformationPairList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UPTransportLayerInformationPairList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UPTransportLayerInformationPairList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.h b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.h new file mode 100644 index 0000000..eb4753d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UPTransportLayerInformationPairList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UPTransportLayerInformationPairList_H_ +#define _ASN_NGAP_UPTransportLayerInformationPairList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UPTransportLayerInformationPairItem; + +/* ASN_NGAP_UPTransportLayerInformationPairList */ +typedef struct ASN_NGAP_UPTransportLayerInformationPairList { + A_SEQUENCE_OF(struct ASN_NGAP_UPTransportLayerInformationPairItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UPTransportLayerInformationPairList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UPTransportLayerInformationPairList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UPTransportLayerInformationPairList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UPTransportLayerInformationPairList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UPTransportLayerInformationPairList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UPTransportLayerInformationPairList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_URI-address.c b/src/asn/ngap/ASN_NGAP_URI-address.c new file mode 100644 index 0000000..e0a8af3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_URI-address.c @@ -0,0 +1,36 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_URI-address.h" + +/* + * This type is implemented using VisibleString, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_URI_address_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 126 } /* (32..126) */, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER character map necessary */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_URI_address_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (26 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_URI_address = { + "URI-address", + "URI-address", + &asn_OP_VisibleString, + asn_DEF_ASN_NGAP_URI_address_tags_1, + sizeof(asn_DEF_ASN_NGAP_URI_address_tags_1) + /sizeof(asn_DEF_ASN_NGAP_URI_address_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_URI_address_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_URI_address_tags_1) + /sizeof(asn_DEF_ASN_NGAP_URI_address_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_URI_address_constr_1, VisibleString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_URI-address.h b/src/asn/ngap/ASN_NGAP_URI-address.h new file mode 100644 index 0000000..d456939 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_URI-address.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_URI_address_H_ +#define _ASN_NGAP_URI_address_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_URI-address */ +typedef VisibleString_t ASN_NGAP_URI_address_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_URI_address_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_URI_address; +asn_struct_free_f ASN_NGAP_URI_address_free; +asn_struct_print_f ASN_NGAP_URI_address_print; +asn_constr_check_f ASN_NGAP_URI_address_constraint; +ber_type_decoder_f ASN_NGAP_URI_address_decode_ber; +der_type_encoder_f ASN_NGAP_URI_address_encode_der; +xer_type_decoder_f ASN_NGAP_URI_address_decode_xer; +xer_type_encoder_f ASN_NGAP_URI_address_encode_xer; +per_type_decoder_f ASN_NGAP_URI_address_decode_uper; +per_type_encoder_f ASN_NGAP_URI_address_encode_uper; +per_type_decoder_f ASN_NGAP_URI_address_decode_aper; +per_type_encoder_f ASN_NGAP_URI_address_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_URI_address_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.c b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.c new file mode 100644 index 0000000..c410022 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UnavailableGUAMIItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UnavailableGUAMIItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnavailableGUAMIItem, gUAMI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GUAMI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gUAMI" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_UnavailableGUAMIItem, timerApproachForGUAMIRemoval), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimerApproachForGUAMIRemoval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timerApproachForGUAMIRemoval" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UnavailableGUAMIItem, backupAMFName), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "backupAMFName" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UnavailableGUAMIItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P361, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UnavailableGUAMIItem_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UnavailableGUAMIItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gUAMI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timerApproachForGUAMIRemoval */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* backupAMFName */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIItem_specs_1 = { + sizeof(struct ASN_NGAP_UnavailableGUAMIItem), + offsetof(struct ASN_NGAP_UnavailableGUAMIItem, _asn_ctx), + asn_MAP_ASN_NGAP_UnavailableGUAMIItem_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UnavailableGUAMIItem_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem = { + "UnavailableGUAMIItem", + "UnavailableGUAMIItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UnavailableGUAMIItem_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UnavailableGUAMIItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.h b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.h new file mode 100644 index 0000000..e16e8e0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIItem.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UnavailableGUAMIItem_H_ +#define _ASN_NGAP_UnavailableGUAMIItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_GUAMI.h" +#include "ASN_NGAP_TimerApproachForGUAMIRemoval.h" +#include "ASN_NGAP_AMFName.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UnavailableGUAMIItem */ +typedef struct ASN_NGAP_UnavailableGUAMIItem { + ASN_NGAP_GUAMI_t gUAMI; + ASN_NGAP_TimerApproachForGUAMIRemoval_t *timerApproachForGUAMIRemoval; /* OPTIONAL */ + ASN_NGAP_AMFName_t *backupAMFName; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UnavailableGUAMIItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UnavailableGUAMIItem_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UnavailableGUAMIItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.c b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.c new file mode 100644 index 0000000..07896a3 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UnavailableGUAMIList.h" + +#include "ASN_NGAP_UnavailableGUAMIItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UnavailableGUAMIList_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_ASN_NGAP_UnavailableGUAMIList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UnavailableGUAMIItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIList_specs_1 = { + sizeof(struct ASN_NGAP_UnavailableGUAMIList), + offsetof(struct ASN_NGAP_UnavailableGUAMIList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIList = { + "UnavailableGUAMIList", + "UnavailableGUAMIList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1, + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnavailableGUAMIList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UnavailableGUAMIList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_UnavailableGUAMIList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_UnavailableGUAMIList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.h b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.h new file mode 100644 index 0000000..1f0de19 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnavailableGUAMIList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UnavailableGUAMIList_H_ +#define _ASN_NGAP_UnavailableGUAMIList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_UnavailableGUAMIItem; + +/* ASN_NGAP_UnavailableGUAMIList */ +typedef struct ASN_NGAP_UnavailableGUAMIList { + A_SEQUENCE_OF(struct ASN_NGAP_UnavailableGUAMIItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UnavailableGUAMIList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnavailableGUAMIList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_UnavailableGUAMIList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UnavailableGUAMIList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UnavailableGUAMIList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UnavailableGUAMIList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.c b/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.c new file mode 100644 index 0000000..3ba178b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.c @@ -0,0 +1,918 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UnsuccessfulOutcome.h" + +static const long asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate = 0; +static const long asn_VAL_1_ASN_NGAP_reject = 0; +static const long asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification = 66; +static const long asn_VAL_2_ASN_NGAP_reject = 0; +static const long asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease = 67; +static const long asn_VAL_3_ASN_NGAP_reject = 0; +static const long asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup = 68; +static const long asn_VAL_4_ASN_NGAP_reject = 0; +static const long asn_VAL_5_ASN_NGAP_id_DistributionSetup = 69; +static const long asn_VAL_5_ASN_NGAP_reject = 0; +static const long asn_VAL_6_ASN_NGAP_id_DistributionRelease = 70; +static const long asn_VAL_6_ASN_NGAP_reject = 0; +static const long asn_VAL_7_ASN_NGAP_id_HandoverCancel = 10; +static const long asn_VAL_7_ASN_NGAP_reject = 0; +static const long asn_VAL_8_ASN_NGAP_id_HandoverPreparation = 12; +static const long asn_VAL_8_ASN_NGAP_reject = 0; +static const long asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation = 13; +static const long asn_VAL_9_ASN_NGAP_reject = 0; +static const long asn_VAL_10_ASN_NGAP_id_InitialContextSetup = 14; +static const long asn_VAL_10_ASN_NGAP_reject = 0; +static const long asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation = 71; +static const long asn_VAL_11_ASN_NGAP_reject = 0; +static const long asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation = 72; +static const long asn_VAL_12_ASN_NGAP_reject = 0; +static const long asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate = 73; +static const long asn_VAL_13_ASN_NGAP_reject = 0; +static const long asn_VAL_14_ASN_NGAP_id_NGReset = 20; +static const long asn_VAL_14_ASN_NGAP_reject = 0; +static const long asn_VAL_15_ASN_NGAP_id_NGSetup = 21; +static const long asn_VAL_15_ASN_NGAP_reject = 0; +static const long asn_VAL_16_ASN_NGAP_id_PathSwitchRequest = 25; +static const long asn_VAL_16_ASN_NGAP_reject = 0; +static const long asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify = 26; +static const long asn_VAL_17_ASN_NGAP_reject = 0; +static const long asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication = 27; +static const long asn_VAL_18_ASN_NGAP_reject = 0; +static const long asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease = 28; +static const long asn_VAL_19_ASN_NGAP_reject = 0; +static const long asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup = 29; +static const long asn_VAL_20_ASN_NGAP_reject = 0; +static const long asn_VAL_21_ASN_NGAP_id_PWSCancel = 32; +static const long asn_VAL_21_ASN_NGAP_reject = 0; +static const long asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate = 35; +static const long asn_VAL_22_ASN_NGAP_reject = 0; +static const long asn_VAL_23_ASN_NGAP_id_UEContextModification = 40; +static const long asn_VAL_23_ASN_NGAP_reject = 0; +static const long asn_VAL_24_ASN_NGAP_id_UEContextRelease = 41; +static const long asn_VAL_24_ASN_NGAP_reject = 0; +static const long asn_VAL_25_ASN_NGAP_id_UEContextResume = 58; +static const long asn_VAL_25_ASN_NGAP_reject = 0; +static const long asn_VAL_26_ASN_NGAP_id_UEContextSuspend = 59; +static const long asn_VAL_26_ASN_NGAP_reject = 0; +static const long asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck = 43; +static const long asn_VAL_27_ASN_NGAP_reject = 0; +static const long asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping = 60; +static const long asn_VAL_28_ASN_NGAP_reject = 0; +static const long asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning = 51; +static const long asn_VAL_29_ASN_NGAP_reject = 0; +static const long asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication = 64; +static const long asn_VAL_30_ASN_NGAP_reject = 0; +static const long asn_VAL_31_ASN_NGAP_id_AMFStatusIndication = 1; +static const long asn_VAL_31_ASN_NGAP_ignore = 1; +static const long asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired = 75; +static const long asn_VAL_32_ASN_NGAP_reject = 0; +static const long asn_VAL_33_ASN_NGAP_id_CellTrafficTrace = 2; +static const long asn_VAL_33_ASN_NGAP_ignore = 1; +static const long asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication = 65; +static const long asn_VAL_34_ASN_NGAP_reject = 0; +static const long asn_VAL_35_ASN_NGAP_id_DeactivateTrace = 3; +static const long asn_VAL_35_ASN_NGAP_ignore = 1; +static const long asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport = 4; +static const long asn_VAL_36_ASN_NGAP_ignore = 1; +static const long asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport = 5; +static const long asn_VAL_37_ASN_NGAP_ignore = 1; +static const long asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer = 6; +static const long asn_VAL_38_ASN_NGAP_ignore = 1; +static const long asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer = 63; +static const long asn_VAL_39_ASN_NGAP_ignore = 1; +static const long asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer = 7; +static const long asn_VAL_40_ASN_NGAP_ignore = 1; +static const long asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer = 54; +static const long asn_VAL_41_ASN_NGAP_ignore = 1; +static const long asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport = 8; +static const long asn_VAL_42_ASN_NGAP_ignore = 1; +static const long asn_VAL_43_ASN_NGAP_id_ErrorIndication = 9; +static const long asn_VAL_43_ASN_NGAP_ignore = 1; +static const long asn_VAL_44_ASN_NGAP_id_HandoverNotification = 11; +static const long asn_VAL_44_ASN_NGAP_ignore = 1; +static const long asn_VAL_45_ASN_NGAP_id_HandoverSuccess = 61; +static const long asn_VAL_45_ASN_NGAP_ignore = 1; +static const long asn_VAL_46_ASN_NGAP_id_InitialUEMessage = 15; +static const long asn_VAL_46_ASN_NGAP_ignore = 1; +static const long asn_VAL_47_ASN_NGAP_id_LocationReport = 18; +static const long asn_VAL_47_ASN_NGAP_ignore = 1; +static const long asn_VAL_48_ASN_NGAP_id_LocationReportingControl = 16; +static const long asn_VAL_48_ASN_NGAP_ignore = 1; +static const long asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication = 17; +static const long asn_VAL_49_ASN_NGAP_ignore = 1; +static const long asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging = 74; +static const long asn_VAL_50_ASN_NGAP_ignore = 1; +static const long asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication = 19; +static const long asn_VAL_51_ASN_NGAP_ignore = 1; +static const long asn_VAL_52_ASN_NGAP_id_OverloadStart = 22; +static const long asn_VAL_52_ASN_NGAP_ignore = 1; +static const long asn_VAL_53_ASN_NGAP_id_OverloadStop = 23; +static const long asn_VAL_53_ASN_NGAP_reject = 0; +static const long asn_VAL_54_ASN_NGAP_id_Paging = 24; +static const long asn_VAL_54_ASN_NGAP_ignore = 1; +static const long asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify = 30; +static const long asn_VAL_55_ASN_NGAP_ignore = 1; +static const long asn_VAL_56_ASN_NGAP_id_PrivateMessage = 31; +static const long asn_VAL_56_ASN_NGAP_ignore = 1; +static const long asn_VAL_57_ASN_NGAP_id_PWSFailureIndication = 33; +static const long asn_VAL_57_ASN_NGAP_ignore = 1; +static const long asn_VAL_58_ASN_NGAP_id_PWSRestartIndication = 34; +static const long asn_VAL_58_ASN_NGAP_ignore = 1; +static const long asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication = 57; +static const long asn_VAL_59_ASN_NGAP_reject = 0; +static const long asn_VAL_60_ASN_NGAP_id_RerouteNASRequest = 36; +static const long asn_VAL_60_ASN_NGAP_reject = 0; +static const long asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation = 55; +static const long asn_VAL_61_ASN_NGAP_reject = 0; +static const long asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport = 37; +static const long asn_VAL_62_ASN_NGAP_ignore = 1; +static const long asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport = 52; +static const long asn_VAL_63_ASN_NGAP_ignore = 1; +static const long asn_VAL_64_ASN_NGAP_id_TraceFailureIndication = 38; +static const long asn_VAL_64_ASN_NGAP_ignore = 1; +static const long asn_VAL_65_ASN_NGAP_id_TraceStart = 39; +static const long asn_VAL_65_ASN_NGAP_ignore = 1; +static const long asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest = 42; +static const long asn_VAL_66_ASN_NGAP_ignore = 1; +static const long asn_VAL_67_ASN_NGAP_id_UEInformationTransfer = 56; +static const long asn_VAL_67_ASN_NGAP_reject = 0; +static const long asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication = 44; +static const long asn_VAL_68_ASN_NGAP_ignore = 1; +static const long asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease = 45; +static const long asn_VAL_69_ASN_NGAP_ignore = 1; +static const long asn_VAL_70_ASN_NGAP_id_UplinkNASTransport = 46; +static const long asn_VAL_70_ASN_NGAP_ignore = 1; +static const long asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport = 47; +static const long asn_VAL_71_ASN_NGAP_ignore = 1; +static const long asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer = 48; +static const long asn_VAL_72_ASN_NGAP_ignore = 1; +static const long asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer = 62; +static const long asn_VAL_73_ASN_NGAP_reject = 0; +static const long asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer = 49; +static const long asn_VAL_74_ASN_NGAP_ignore = 1; +static const long asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer = 53; +static const long asn_VAL_75_ASN_NGAP_ignore = 1; +static const long asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport = 50; +static const long asn_VAL_76_ASN_NGAP_ignore = 1; +static const asn_ioc_cell_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows[] = { + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_1_ASN_NGAP_id_AMFConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_1_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_2_ASN_NGAP_id_BroadcastSessionModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_2_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_3_ASN_NGAP_id_BroadcastSessionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_3_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_4_ASN_NGAP_id_BroadcastSessionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_4_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_5_ASN_NGAP_id_DistributionSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_5_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_DistributionReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_6_ASN_NGAP_id_DistributionRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_6_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancel }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCancelAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_7_ASN_NGAP_id_HandoverCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_7_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequired }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverCommand }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverPreparationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_8_ASN_NGAP_id_HandoverPreparation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_8_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_HandoverFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_9_ASN_NGAP_id_HandoverResourceAllocation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_9_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_InitialContextSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_10_ASN_NGAP_id_InitialContextSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_10_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionActivationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_11_ASN_NGAP_id_MulticastSessionActivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_11_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionDeactivationResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_12_ASN_NGAP_id_MulticastSessionDeactivation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_12_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_13_ASN_NGAP_id_MulticastSessionUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_13_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGReset }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGResetAcknowledge }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_14_ASN_NGAP_id_NGReset }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_14_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NGSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_NGSetupFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_15_ASN_NGAP_id_NGSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_15_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PathSwitchRequestFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_16_ASN_NGAP_id_PathSwitchRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_16_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_17_ASN_NGAP_id_PDUSessionResourceModify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_17_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyIndication }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceModifyConfirm }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_18_ASN_NGAP_id_PDUSessionResourceModifyIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_18_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceReleaseResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_19_ASN_NGAP_id_PDUSessionResourceRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_19_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceSetupResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_20_ASN_NGAP_id_PDUSessionResourceSetup }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_20_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_PWSCancelResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_21_ASN_NGAP_id_PWSCancel }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_21_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdate }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_22_ASN_NGAP_id_RANConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_22_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextModificationFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_23_ASN_NGAP_id_UEContextModification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_23_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseCommand }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseComplete }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_24_ASN_NGAP_id_UEContextRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_24_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextResumeFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_25_ASN_NGAP_id_UEContextResume }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_25_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendResponse }, + { "&UnsuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UEContextSuspendFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_26_ASN_NGAP_id_UEContextSuspend }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_26_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityCheckResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_27_ASN_NGAP_id_UERadioCapabilityCheck }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_27_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityIDMappingResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_28_ASN_NGAP_id_UERadioCapabilityIDMapping }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_28_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningRequest }, + { "&SuccessfulOutcome", aioc__type, &asn_DEF_ASN_NGAP_WriteReplaceWarningResponse }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_29_ASN_NGAP_id_WriteReplaceWarning }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_29_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_30_ASN_NGAP_id_AMFCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_30_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_AMFStatusIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_31_ASN_NGAP_id_AMFStatusIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_31_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_BroadcastSessionReleaseRequired }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_32_ASN_NGAP_id_BroadcastSessionReleaseRequired }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_32_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_CellTrafficTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_33_ASN_NGAP_id_CellTrafficTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_33_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ConnectionEstablishmentIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_34_ASN_NGAP_id_ConnectionEstablishmentIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_34_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DeactivateTrace }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_35_ASN_NGAP_id_DeactivateTrace }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_35_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_36_ASN_NGAP_id_DownlinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_36_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_37_ASN_NGAP_id_DownlinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_37_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_38_ASN_NGAP_id_DownlinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_38_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_39_ASN_NGAP_id_DownlinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_39_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_40_ASN_NGAP_id_DownlinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_40_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_41_ASN_NGAP_id_DownlinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_41_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_DownlinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_42_ASN_NGAP_id_DownlinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_42_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_ErrorIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_43_ASN_NGAP_id_ErrorIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_43_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_44_ASN_NGAP_id_HandoverNotification }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_44_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_HandoverSuccess }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_45_ASN_NGAP_id_HandoverSuccess }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_45_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_InitialUEMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_46_ASN_NGAP_id_InitialUEMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_46_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_47_ASN_NGAP_id_LocationReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_47_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingControl }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_48_ASN_NGAP_id_LocationReportingControl }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_48_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_LocationReportingFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_49_ASN_NGAP_id_LocationReportingFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_49_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_MulticastGroupPaging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_50_ASN_NGAP_id_MulticastGroupPaging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_50_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_NASNonDeliveryIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_51_ASN_NGAP_id_NASNonDeliveryIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_51_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_52_ASN_NGAP_id_OverloadStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_52_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_OverloadStop }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_53_ASN_NGAP_id_OverloadStop }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_53_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_Paging }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_54_ASN_NGAP_id_Paging }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_54_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PDUSessionResourceNotify }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_55_ASN_NGAP_id_PDUSessionResourceNotify }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_55_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PrivateMessage }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_56_ASN_NGAP_id_PrivateMessage }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_56_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_57_ASN_NGAP_id_PWSFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_57_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_PWSRestartIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_58_ASN_NGAP_id_PWSRestartIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_58_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RANCPRelocationIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_59_ASN_NGAP_id_RANCPRelocationIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_59_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RerouteNASRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_60_ASN_NGAP_id_RerouteNASRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_60_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RetrieveUEInformation }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_61_ASN_NGAP_id_RetrieveUEInformation }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_61_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_RRCInactiveTransitionReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_62_ASN_NGAP_id_RRCInactiveTransitionReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_62_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_SecondaryRATDataUsageReport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_63_ASN_NGAP_id_SecondaryRATDataUsageReport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_63_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceFailureIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_64_ASN_NGAP_id_TraceFailureIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_64_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_TraceStart }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_65_ASN_NGAP_id_TraceStart }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_65_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEContextReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_66_ASN_NGAP_id_UEContextReleaseRequest }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_66_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UEInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_67_ASN_NGAP_id_UEInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_67_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UERadioCapabilityInfoIndication }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_68_ASN_NGAP_id_UERadioCapabilityInfoIndication }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_68_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UETNLABindingReleaseRequest }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_69_ASN_NGAP_id_UETNLABindingRelease }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_69_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNASTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_70_ASN_NGAP_id_UplinkNASTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_70_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_71_ASN_NGAP_id_UplinkNonUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_71_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_72_ASN_NGAP_id_UplinkRANConfigurationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_72_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_73_ASN_NGAP_id_UplinkRANEarlyStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_73_ASN_NGAP_reject }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRANStatusTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_74_ASN_NGAP_id_UplinkRANStatusTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_74_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_75_ASN_NGAP_id_UplinkRIMInformationTransfer }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_75_ASN_NGAP_ignore }, + { "&InitiatingMessage", aioc__type, &asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport }, + { "&SuccessfulOutcome", }, + { "&UnsuccessfulOutcome", }, + { "&procedureCode", aioc__value, &asn_DEF_ASN_NGAP_ProcedureCode, &asn_VAL_76_ASN_NGAP_id_UplinkUEAssociatedNRPPaTransport }, + { "&criticality", aioc__value, &asn_DEF_ASN_NGAP_Criticality, &asn_VAL_76_ASN_NGAP_ignore } +}; +static const asn_ioc_set_t asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1[] = { + { 76, 5, asn_IOS_ASN_NGAP_NGAP_ELEMENTARY_PROCEDURES_1_rows } +}; +static int +memb_ASN_NGAP_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_ASN_NGAP_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ASN_NGAP_NGAP_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 ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.AMFConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_AMFConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "AMFConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.BroadcastSessionModificationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionModificationFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionModificationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.BroadcastSessionSetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_BroadcastSessionSetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "BroadcastSessionSetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.DistributionSetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_DistributionSetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "DistributionSetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.HandoverPreparationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverPreparationFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverPreparationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.HandoverFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_HandoverFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "HandoverFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.InitialContextSetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_InitialContextSetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "InitialContextSetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.MulticastSessionActivationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionActivationFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionActivationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.MulticastSessionUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_MulticastSessionUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "MulticastSessionUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.NGSetupFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_NGSetupFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "NGSetupFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.PathSwitchRequestFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_PathSwitchRequestFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "PathSwitchRequestFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.RANConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_RANConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.UEContextModificationFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextModificationFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextModificationFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.UEContextResumeFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextResumeFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextResumeFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, choice.UEContextSuspendFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_UEContextSuspendFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "UEContextSuspendFailure" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 14 }, /* AMFConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 13 }, /* BroadcastSessionModificationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 12 }, /* BroadcastSessionSetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 11 }, /* DistributionSetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 10 }, /* HandoverPreparationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 9 }, /* HandoverFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 8 }, /* InitialContextSetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 7 }, /* MulticastSessionActivationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 6 }, /* MulticastSessionUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 5 }, /* NGSetupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 4 }, /* PathSwitchRequestFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 3 }, /* RANConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 12, -12, 2 }, /* UEContextModificationFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 13, -13, 1 }, /* UEContextResumeFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 14, -14, 0 } /* UEContextSuspendFailure */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_value_specs_4 = { + sizeof(struct ASN_NGAP_UnsuccessfulOutcome__value), + offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, _asn_ctx), + offsetof(struct ASN_NGAP_UnsuccessfulOutcome__value, present), + sizeof(((struct ASN_NGAP_UnsuccessfulOutcome__value *)0)->present), + asn_MAP_ASN_NGAP_value_tag2el_4, + 15, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_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_ASN_NGAP_value_4, + 15, /* Elements count */ + &asn_SPC_ASN_NGAP_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UnsuccessfulOutcome_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome, procedureCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProcedureCode, + 0, + { 0, &asn_PER_memb_ASN_NGAP_procedureCode_constr_2, memb_ASN_NGAP_procedureCode_constraint_1 }, + 0, 0, /* No default value */ + "procedureCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_Criticality, + select_UnsuccessfulOutcome_ASN_NGAP_criticality_type, + { 0, &asn_PER_memb_ASN_NGAP_criticality_constr_3, memb_ASN_NGAP_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UnsuccessfulOutcome, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_value_4, + select_UnsuccessfulOutcome_ASN_NGAP_value_type, + { 0, &asn_PER_memb_ASN_NGAP_value_constr_4, memb_ASN_NGAP_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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_ASN_NGAP_UnsuccessfulOutcome_specs_1 = { + sizeof(struct ASN_NGAP_UnsuccessfulOutcome), + offsetof(struct ASN_NGAP_UnsuccessfulOutcome, _asn_ctx), + asn_MAP_ASN_NGAP_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_ASN_NGAP_UnsuccessfulOutcome = { + "UnsuccessfulOutcome", + "UnsuccessfulOutcome", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1, + sizeof(asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UnsuccessfulOutcome_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UnsuccessfulOutcome_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UnsuccessfulOutcome_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.h b/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.h new file mode 100644 index 0000000..f707a6c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UnsuccessfulOutcome.h @@ -0,0 +1,209 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Descriptions" + * found in "NGAP-PDU-Descriptions.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UnsuccessfulOutcome_H_ +#define _ASN_NGAP_UnsuccessfulOutcome_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProcedureCode.h" +#include "ASN_NGAP_Criticality.h" +#include +#include +#include "ASN_NGAP_AMFConfigurationUpdate.h" +#include "ASN_NGAP_AMFConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_AMFConfigurationUpdateFailure.h" +#include "ASN_NGAP_BroadcastSessionModificationRequest.h" +#include "ASN_NGAP_BroadcastSessionModificationResponse.h" +#include "ASN_NGAP_BroadcastSessionModificationFailure.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequest.h" +#include "ASN_NGAP_BroadcastSessionReleaseResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupRequest.h" +#include "ASN_NGAP_BroadcastSessionSetupResponse.h" +#include "ASN_NGAP_BroadcastSessionSetupFailure.h" +#include "ASN_NGAP_DistributionSetupRequest.h" +#include "ASN_NGAP_DistributionSetupResponse.h" +#include "ASN_NGAP_DistributionSetupFailure.h" +#include "ASN_NGAP_DistributionReleaseRequest.h" +#include "ASN_NGAP_DistributionReleaseResponse.h" +#include "ASN_NGAP_HandoverCancel.h" +#include "ASN_NGAP_HandoverCancelAcknowledge.h" +#include "ASN_NGAP_HandoverRequired.h" +#include "ASN_NGAP_HandoverCommand.h" +#include "ASN_NGAP_HandoverPreparationFailure.h" +#include "ASN_NGAP_HandoverRequest.h" +#include "ASN_NGAP_HandoverRequestAcknowledge.h" +#include "ASN_NGAP_HandoverFailure.h" +#include "ASN_NGAP_InitialContextSetupRequest.h" +#include "ASN_NGAP_InitialContextSetupResponse.h" +#include "ASN_NGAP_InitialContextSetupFailure.h" +#include "ASN_NGAP_MulticastSessionActivationRequest.h" +#include "ASN_NGAP_MulticastSessionActivationResponse.h" +#include "ASN_NGAP_MulticastSessionActivationFailure.h" +#include "ASN_NGAP_MulticastSessionDeactivationRequest.h" +#include "ASN_NGAP_MulticastSessionDeactivationResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateRequest.h" +#include "ASN_NGAP_MulticastSessionUpdateResponse.h" +#include "ASN_NGAP_MulticastSessionUpdateFailure.h" +#include "ASN_NGAP_NGReset.h" +#include "ASN_NGAP_NGResetAcknowledge.h" +#include "ASN_NGAP_NGSetupRequest.h" +#include "ASN_NGAP_NGSetupResponse.h" +#include "ASN_NGAP_NGSetupFailure.h" +#include "ASN_NGAP_PathSwitchRequest.h" +#include "ASN_NGAP_PathSwitchRequestAcknowledge.h" +#include "ASN_NGAP_PathSwitchRequestFailure.h" +#include "ASN_NGAP_PDUSessionResourceModifyRequest.h" +#include "ASN_NGAP_PDUSessionResourceModifyResponse.h" +#include "ASN_NGAP_PDUSessionResourceModifyIndication.h" +#include "ASN_NGAP_PDUSessionResourceModifyConfirm.h" +#include "ASN_NGAP_PDUSessionResourceReleaseCommand.h" +#include "ASN_NGAP_PDUSessionResourceReleaseResponse.h" +#include "ASN_NGAP_PDUSessionResourceSetupRequest.h" +#include "ASN_NGAP_PDUSessionResourceSetupResponse.h" +#include "ASN_NGAP_PWSCancelRequest.h" +#include "ASN_NGAP_PWSCancelResponse.h" +#include "ASN_NGAP_RANConfigurationUpdate.h" +#include "ASN_NGAP_RANConfigurationUpdateAcknowledge.h" +#include "ASN_NGAP_RANConfigurationUpdateFailure.h" +#include "ASN_NGAP_UEContextModificationRequest.h" +#include "ASN_NGAP_UEContextModificationResponse.h" +#include "ASN_NGAP_UEContextModificationFailure.h" +#include "ASN_NGAP_UEContextReleaseCommand.h" +#include "ASN_NGAP_UEContextReleaseComplete.h" +#include "ASN_NGAP_UEContextResumeRequest.h" +#include "ASN_NGAP_UEContextResumeResponse.h" +#include "ASN_NGAP_UEContextResumeFailure.h" +#include "ASN_NGAP_UEContextSuspendRequest.h" +#include "ASN_NGAP_UEContextSuspendResponse.h" +#include "ASN_NGAP_UEContextSuspendFailure.h" +#include "ASN_NGAP_UERadioCapabilityCheckRequest.h" +#include "ASN_NGAP_UERadioCapabilityCheckResponse.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingRequest.h" +#include "ASN_NGAP_UERadioCapabilityIDMappingResponse.h" +#include "ASN_NGAP_WriteReplaceWarningRequest.h" +#include "ASN_NGAP_WriteReplaceWarningResponse.h" +#include "ASN_NGAP_AMFCPRelocationIndication.h" +#include "ASN_NGAP_AMFStatusIndication.h" +#include "ASN_NGAP_BroadcastSessionReleaseRequired.h" +#include "ASN_NGAP_CellTrafficTrace.h" +#include "ASN_NGAP_ConnectionEstablishmentIndication.h" +#include "ASN_NGAP_DeactivateTrace.h" +#include "ASN_NGAP_DownlinkNASTransport.h" +#include "ASN_NGAP_DownlinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_DownlinkRANConfigurationTransfer.h" +#include "ASN_NGAP_DownlinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_DownlinkRANStatusTransfer.h" +#include "ASN_NGAP_DownlinkRIMInformationTransfer.h" +#include "ASN_NGAP_DownlinkUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_ErrorIndication.h" +#include "ASN_NGAP_HandoverNotify.h" +#include "ASN_NGAP_HandoverSuccess.h" +#include "ASN_NGAP_InitialUEMessage.h" +#include "ASN_NGAP_LocationReport.h" +#include "ASN_NGAP_LocationReportingControl.h" +#include "ASN_NGAP_LocationReportingFailureIndication.h" +#include "ASN_NGAP_MulticastGroupPaging.h" +#include "ASN_NGAP_NASNonDeliveryIndication.h" +#include "ASN_NGAP_OverloadStart.h" +#include "ASN_NGAP_OverloadStop.h" +#include "ASN_NGAP_Paging.h" +#include "ASN_NGAP_PDUSessionResourceNotify.h" +#include "ASN_NGAP_PrivateMessage.h" +#include "ASN_NGAP_PWSFailureIndication.h" +#include "ASN_NGAP_PWSRestartIndication.h" +#include "ASN_NGAP_RANCPRelocationIndication.h" +#include "ASN_NGAP_RerouteNASRequest.h" +#include "ASN_NGAP_RetrieveUEInformation.h" +#include "ASN_NGAP_RRCInactiveTransitionReport.h" +#include "ASN_NGAP_SecondaryRATDataUsageReport.h" +#include "ASN_NGAP_TraceFailureIndication.h" +#include "ASN_NGAP_TraceStart.h" +#include "ASN_NGAP_UEContextReleaseRequest.h" +#include "ASN_NGAP_UEInformationTransfer.h" +#include "ASN_NGAP_UERadioCapabilityInfoIndication.h" +#include "ASN_NGAP_UETNLABindingReleaseRequest.h" +#include "ASN_NGAP_UplinkNASTransport.h" +#include "ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h" +#include "ASN_NGAP_UplinkRANConfigurationTransfer.h" +#include "ASN_NGAP_UplinkRANEarlyStatusTransfer.h" +#include "ASN_NGAP_UplinkRANStatusTransfer.h" +#include "ASN_NGAP_UplinkRIMInformationTransfer.h" +#include "ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UnsuccessfulOutcome__value_PR { + ASN_NGAP_UnsuccessfulOutcome__value_PR_NOTHING, /* No components present */ + ASN_NGAP_UnsuccessfulOutcome__value_PR_AMFConfigurationUpdateFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_BroadcastSessionModificationFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_BroadcastSessionSetupFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_DistributionSetupFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_HandoverPreparationFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_HandoverFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_InitialContextSetupFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_MulticastSessionActivationFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_MulticastSessionUpdateFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_NGSetupFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_PathSwitchRequestFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_RANConfigurationUpdateFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_UEContextModificationFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_UEContextResumeFailure, + ASN_NGAP_UnsuccessfulOutcome__value_PR_UEContextSuspendFailure +} ASN_NGAP_UnsuccessfulOutcome__value_PR; + +/* ASN_NGAP_UnsuccessfulOutcome */ +typedef struct ASN_NGAP_UnsuccessfulOutcome { + ASN_NGAP_ProcedureCode_t procedureCode; + ASN_NGAP_Criticality_t criticality; + struct ASN_NGAP_UnsuccessfulOutcome__value { + ASN_NGAP_UnsuccessfulOutcome__value_PR present; + union ASN_NGAP_UnsuccessfulOutcome__ASN_NGAP_value_u { + ASN_NGAP_AMFConfigurationUpdateFailure_t AMFConfigurationUpdateFailure; + ASN_NGAP_BroadcastSessionModificationFailure_t BroadcastSessionModificationFailure; + ASN_NGAP_BroadcastSessionSetupFailure_t BroadcastSessionSetupFailure; + ASN_NGAP_DistributionSetupFailure_t DistributionSetupFailure; + ASN_NGAP_HandoverPreparationFailure_t HandoverPreparationFailure; + ASN_NGAP_HandoverFailure_t HandoverFailure; + ASN_NGAP_InitialContextSetupFailure_t InitialContextSetupFailure; + ASN_NGAP_MulticastSessionActivationFailure_t MulticastSessionActivationFailure; + ASN_NGAP_MulticastSessionUpdateFailure_t MulticastSessionUpdateFailure; + ASN_NGAP_NGSetupFailure_t NGSetupFailure; + ASN_NGAP_PathSwitchRequestFailure_t PathSwitchRequestFailure; + ASN_NGAP_RANConfigurationUpdateFailure_t RANConfigurationUpdateFailure; + ASN_NGAP_UEContextModificationFailure_t UEContextModificationFailure; + ASN_NGAP_UEContextResumeFailure_t UEContextResumeFailure; + ASN_NGAP_UEContextSuspendFailure_t UEContextSuspendFailure; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UnsuccessfulOutcome_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UnsuccessfulOutcome; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UnsuccessfulOutcome_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UnsuccessfulOutcome_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UnsuccessfulOutcome_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UpdateFeedback.c b/src/asn/ngap/ASN_NGAP_UpdateFeedback.c new file mode 100644 index 0000000..42aa113 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UpdateFeedback.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UpdateFeedback.h" + +int +ASN_NGAP_UpdateFeedback_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_ASN_NGAP_UpdateFeedback_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 8, 8 } /* (SIZE(8..8,...)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UpdateFeedback_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UpdateFeedback = { + "UpdateFeedback", + "UpdateFeedback", + &asn_OP_BIT_STRING, + asn_DEF_ASN_NGAP_UpdateFeedback_tags_1, + sizeof(asn_DEF_ASN_NGAP_UpdateFeedback_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UpdateFeedback_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UpdateFeedback_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UpdateFeedback_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UpdateFeedback_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_UpdateFeedback_constr_1, ASN_NGAP_UpdateFeedback_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UpdateFeedback.h b/src/asn/ngap/ASN_NGAP_UpdateFeedback.h new file mode 100644 index 0000000..7c1db57 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UpdateFeedback.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UpdateFeedback_H_ +#define _ASN_NGAP_UpdateFeedback_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UpdateFeedback */ +typedef BIT_STRING_t ASN_NGAP_UpdateFeedback_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UpdateFeedback_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UpdateFeedback; +asn_struct_free_f ASN_NGAP_UpdateFeedback_free; +asn_struct_print_f ASN_NGAP_UpdateFeedback_print; +asn_constr_check_f ASN_NGAP_UpdateFeedback_constraint; +ber_type_decoder_f ASN_NGAP_UpdateFeedback_decode_ber; +der_type_encoder_f ASN_NGAP_UpdateFeedback_encode_der; +xer_type_decoder_f ASN_NGAP_UpdateFeedback_decode_xer; +xer_type_encoder_f ASN_NGAP_UpdateFeedback_encode_xer; +per_type_decoder_f ASN_NGAP_UpdateFeedback_decode_uper; +per_type_encoder_f ASN_NGAP_UpdateFeedback_encode_uper; +per_type_decoder_f ASN_NGAP_UpdateFeedback_decode_aper; +per_type_encoder_f ASN_NGAP_UpdateFeedback_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UpdateFeedback_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkNASTransport.c b/src/asn/ngap/ASN_NGAP_UplinkNASTransport.c new file mode 100644 index 0000000..7e300cb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkNASTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkNASTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNASTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNASTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkNASTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNASTransport_specs_1 = { + sizeof(struct ASN_NGAP_UplinkNASTransport), + offsetof(struct ASN_NGAP_UplinkNASTransport, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkNASTransport_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_ASN_NGAP_UplinkNASTransport = { + "UplinkNASTransport", + "UplinkNASTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkNASTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkNASTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkNASTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkNASTransport.h b/src/asn/ngap/ASN_NGAP_UplinkNASTransport.h new file mode 100644 index 0000000..d41aa86 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkNASTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkNASTransport_H_ +#define _ASN_NGAP_UplinkNASTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkNASTransport */ +typedef struct ASN_NGAP_UplinkNASTransport { + ASN_NGAP_ProtocolIE_Container_123P52_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkNASTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNASTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNASTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNASTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkNASTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.c b/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.c new file mode 100644 index 0000000..ecfc822 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_specs_1 = { + sizeof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport), + offsetof(struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_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_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport = { + "UplinkNonUEAssociatedNRPPaTransport", + "UplinkNonUEAssociatedNRPPaTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h b/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h new file mode 100644 index 0000000..1c0c80f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_H_ +#define _ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport */ +typedef struct ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport { + ASN_NGAP_ProtocolIE_Container_123P81_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkNonUEAssociatedNRPPaTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.c b/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.c new file mode 100644 index 0000000..4857eef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkRANConfigurationTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANConfigurationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANConfigurationTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANConfigurationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANConfigurationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UplinkRANConfigurationTransfer), + offsetof(struct ASN_NGAP_UplinkRANConfigurationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANConfigurationTransfer_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_ASN_NGAP_UplinkRANConfigurationTransfer = { + "UplinkRANConfigurationTransfer", + "UplinkRANConfigurationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANConfigurationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANConfigurationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.h b/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.h new file mode 100644 index 0000000..464facc --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANConfigurationTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkRANConfigurationTransfer_H_ +#define _ASN_NGAP_UplinkRANConfigurationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkRANConfigurationTransfer */ +typedef struct ASN_NGAP_UplinkRANConfigurationTransfer { + ASN_NGAP_ProtocolIE_Container_123P70_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANConfigurationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANConfigurationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANConfigurationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANConfigurationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkRANConfigurationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.c b/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.c new file mode 100644 index 0000000..f42a8bb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkRANEarlyStatusTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANEarlyStatusTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UplinkRANEarlyStatusTransfer), + offsetof(struct ASN_NGAP_UplinkRANEarlyStatusTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANEarlyStatusTransfer_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_ASN_NGAP_UplinkRANEarlyStatusTransfer = { + "UplinkRANEarlyStatusTransfer", + "UplinkRANEarlyStatusTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.h b/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.h new file mode 100644 index 0000000..6da758b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANEarlyStatusTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkRANEarlyStatusTransfer_H_ +#define _ASN_NGAP_UplinkRANEarlyStatusTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkRANEarlyStatusTransfer */ +typedef struct ASN_NGAP_UplinkRANEarlyStatusTransfer { + ASN_NGAP_ProtocolIE_Container_123P45_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANEarlyStatusTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANEarlyStatusTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANEarlyStatusTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANEarlyStatusTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkRANEarlyStatusTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.c b/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.c new file mode 100644 index 0000000..676893c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkRANStatusTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANStatusTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRANStatusTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRANStatusTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANStatusTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UplinkRANStatusTransfer), + offsetof(struct ASN_NGAP_UplinkRANStatusTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRANStatusTransfer_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_ASN_NGAP_UplinkRANStatusTransfer = { + "UplinkRANStatusTransfer", + "UplinkRANStatusTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRANStatusTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRANStatusTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRANStatusTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.h b/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.h new file mode 100644 index 0000000..7ae9508 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRANStatusTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkRANStatusTransfer_H_ +#define _ASN_NGAP_UplinkRANStatusTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkRANStatusTransfer */ +typedef struct ASN_NGAP_UplinkRANStatusTransfer { + ASN_NGAP_ProtocolIE_Container_123P47_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRANStatusTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRANStatusTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRANStatusTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRANStatusTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkRANStatusTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.c b/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.c new file mode 100644 index 0000000..9d13a7f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkRIMInformationTransfer.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRIMInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkRIMInformationTransfer, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkRIMInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRIMInformationTransfer_specs_1 = { + sizeof(struct ASN_NGAP_UplinkRIMInformationTransfer), + offsetof(struct ASN_NGAP_UplinkRIMInformationTransfer, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkRIMInformationTransfer_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_ASN_NGAP_UplinkRIMInformationTransfer = { + "UplinkRIMInformationTransfer", + "UplinkRIMInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkRIMInformationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkRIMInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.h b/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.h new file mode 100644 index 0000000..615c750 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkRIMInformationTransfer.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkRIMInformationTransfer_H_ +#define _ASN_NGAP_UplinkRIMInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkRIMInformationTransfer */ +typedef struct ASN_NGAP_UplinkRIMInformationTransfer { + ASN_NGAP_ProtocolIE_Container_123P94_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkRIMInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkRIMInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkRIMInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkRIMInformationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkRIMInformationTransfer_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.c b/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.c new file mode 100644 index 0000000..c1eb355 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransport, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_specs_1 = { + sizeof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransport), + offsetof(struct ASN_NGAP_UplinkUEAssociatedNRPPaTransport, _asn_ctx), + asn_MAP_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_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_ASN_NGAP_UplinkUEAssociatedNRPPaTransport = { + "UplinkUEAssociatedNRPPaTransport", + "UplinkUEAssociatedNRPPaTransport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1, + sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h b/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h new file mode 100644 index 0000000..c1abfe0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UplinkUEAssociatedNRPPaTransport.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UplinkUEAssociatedNRPPaTransport_H_ +#define _ASN_NGAP_UplinkUEAssociatedNRPPaTransport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_UplinkUEAssociatedNRPPaTransport */ +typedef struct ASN_NGAP_UplinkUEAssociatedNRPPaTransport { + ASN_NGAP_ProtocolIE_Container_123P79_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UplinkUEAssociatedNRPPaTransport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UplinkUEAssociatedNRPPaTransport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UplinkUEAssociatedNRPPaTransport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UplinkUEAssociatedNRPPaTransport_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformation.c b/src/asn/ngap/ASN_NGAP_UserLocationInformation.c new file mode 100644 index 0000000..49d7d99 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformation.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformation.h" + +#include "ASN_NGAP_UserLocationInformationEUTRA.h" +#include "ASN_NGAP_UserLocationInformationNR.h" +#include "ASN_NGAP_UserLocationInformationN3IWF.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UserLocationInformation_constr_1 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_ASN_NGAP_UserLocationInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformation, choice.userLocationInformationEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UserLocationInformationEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userLocationInformationEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformation, choice.userLocationInformationNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UserLocationInformationNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userLocationInformationNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformation, choice.userLocationInformationN3IWF), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_UserLocationInformationN3IWF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "userLocationInformationN3IWF" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformation, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* userLocationInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* userLocationInformationNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* userLocationInformationN3IWF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformation_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformation), + offsetof(struct ASN_NGAP_UserLocationInformation, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformation, present), + sizeof(((struct ASN_NGAP_UserLocationInformation *)0)->present), + asn_MAP_ASN_NGAP_UserLocationInformation_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformation = { + "UserLocationInformation", + "UserLocationInformation", + &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_ASN_NGAP_UserLocationInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformation_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformation.h b/src/asn/ngap/ASN_NGAP_UserLocationInformation.h new file mode 100644 index 0000000..fb38090 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformation.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformation_H_ +#define _ASN_NGAP_UserLocationInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UserLocationInformation_PR { + ASN_NGAP_UserLocationInformation_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformation_PR_userLocationInformationEUTRA, + ASN_NGAP_UserLocationInformation_PR_userLocationInformationNR, + ASN_NGAP_UserLocationInformation_PR_userLocationInformationN3IWF, + ASN_NGAP_UserLocationInformation_PR_choice_Extensions +} ASN_NGAP_UserLocationInformation_PR; + +/* Forward declarations */ +struct ASN_NGAP_UserLocationInformationEUTRA; +struct ASN_NGAP_UserLocationInformationNR; +struct ASN_NGAP_UserLocationInformationN3IWF; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UserLocationInformation */ +typedef struct ASN_NGAP_UserLocationInformation { + ASN_NGAP_UserLocationInformation_PR present; + union ASN_NGAP_UserLocationInformation_u { + struct ASN_NGAP_UserLocationInformationEUTRA *userLocationInformationEUTRA; + struct ASN_NGAP_UserLocationInformationNR *userLocationInformationNR; + struct ASN_NGAP_UserLocationInformationN3IWF *userLocationInformationN3IWF; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformation_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UserLocationInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.c new file mode 100644 index 0000000..dc12d38 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationEUTRA.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA, eUTRA_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA, tAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimeStamp, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserLocationInformationEUTRA, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P364, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationEUTRA), + offsetof(struct ASN_NGAP_UserLocationInformationEUTRA, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserLocationInformationEUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA = { + "UserLocationInformationEUTRA", + "UserLocationInformationEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.h new file mode 100644 index 0000000..79e59e1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationEUTRA.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationEUTRA_H_ +#define _ASN_NGAP_UserLocationInformationEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_EUTRA-CGI.h" +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_TimeStamp.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserLocationInformationEUTRA */ +typedef struct ASN_NGAP_UserLocationInformationEUTRA { + ASN_NGAP_EUTRA_CGI_t eUTRA_CGI; + ASN_NGAP_TAI_t tAI; + ASN_NGAP_TimeStamp_t *timeStamp; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationEUTRA_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationEUTRA_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.c new file mode 100644 index 0000000..50eaded --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationN3IWF.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF, iPAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iPAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF, portNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PortNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portNumber" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserLocationInformationN3IWF, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P365, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* portNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationN3IWF), + offsetof(struct ASN_NGAP_UserLocationInformationN3IWF, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserLocationInformationN3IWF_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF = { + "UserLocationInformationN3IWF", + "UserLocationInformationN3IWF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationN3IWF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.h new file mode 100644 index 0000000..dce9194 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationN3IWF.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationN3IWF_H_ +#define _ASN_NGAP_UserLocationInformationN3IWF_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_PortNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserLocationInformationN3IWF */ +typedef struct ASN_NGAP_UserLocationInformationN3IWF { + ASN_NGAP_TransportLayerAddress_t iPAddress; + ASN_NGAP_PortNumber_t portNumber; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationN3IWF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationN3IWF; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationN3IWF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationN3IWF_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationN3IWF_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.c new file mode 100644 index 0000000..fb84ee9 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationNR.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR, nR_CGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationNR, tAI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAI" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UserLocationInformationNR, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TimeStamp, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeStamp" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserLocationInformationNR, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P368, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserLocationInformationNR_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tAI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeStamp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationNR_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationNR), + offsetof(struct ASN_NGAP_UserLocationInformationNR, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationNR_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserLocationInformationNR_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationNR = { + "UserLocationInformationNR", + "UserLocationInformationNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationNR_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.h new file mode 100644 index 0000000..f9089a1 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationNR.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationNR_H_ +#define _ASN_NGAP_UserLocationInformationNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_NR-CGI.h" +#include "ASN_NGAP_TAI.h" +#include "ASN_NGAP_TimeStamp.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserLocationInformationNR */ +typedef struct ASN_NGAP_UserLocationInformationNR { + ASN_NGAP_NR_CGI_t nR_CGI; + ASN_NGAP_TAI_t tAI; + ASN_NGAP_TimeStamp_t *timeStamp; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationNR_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationNR_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.c new file mode 100644 index 0000000..97c0328 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationTNGF.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTNGF_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF, tNAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TNAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tNAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTNGF, iPAddress), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iPAddress" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UserLocationInformationTNGF, portNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PortNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portNumber" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserLocationInformationTNGF, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P366, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserLocationInformationTNGF_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationTNGF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tNAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* portNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTNGF_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationTNGF), + offsetof(struct ASN_NGAP_UserLocationInformationTNGF, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationTNGF_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserLocationInformationTNGF_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF = { + "UserLocationInformationTNGF", + "UserLocationInformationTNGF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTNGF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationTNGF_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationTNGF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.h new file mode 100644 index 0000000..696538a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationTNGF.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationTNGF_H_ +#define _ASN_NGAP_UserLocationInformationTNGF_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TNAP-ID.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_PortNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserLocationInformationTNGF */ +typedef struct ASN_NGAP_UserLocationInformationTNGF { + ASN_NGAP_TNAP_ID_t tNAP_ID; + ASN_NGAP_TransportLayerAddress_t iPAddress; + ASN_NGAP_PortNumber_t *portNumber; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationTNGF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTNGF; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTNGF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTNGF_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationTNGF_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.c new file mode 100644 index 0000000..6aafdb4 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationTWIF.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTWIF_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF, tWAP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TWAP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tWAP-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationTWIF, iPAddress), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iPAddress" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_UserLocationInformationTWIF, portNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PortNumber, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portNumber" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserLocationInformationTWIF, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P367, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserLocationInformationTWIF_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationTWIF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tWAP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iPAddress */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* portNumber */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTWIF_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationTWIF), + offsetof(struct ASN_NGAP_UserLocationInformationTWIF, _asn_ctx), + asn_MAP_ASN_NGAP_UserLocationInformationTWIF_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserLocationInformationTWIF_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF = { + "UserLocationInformationTWIF", + "UserLocationInformationTWIF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserLocationInformationTWIF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationTWIF_1, + 4, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationTWIF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.h new file mode 100644 index 0000000..5f2453d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationTWIF.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationTWIF_H_ +#define _ASN_NGAP_UserLocationInformationTWIF_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TWAP-ID.h" +#include "ASN_NGAP_TransportLayerAddress.h" +#include "ASN_NGAP_PortNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserLocationInformationTWIF */ +typedef struct ASN_NGAP_UserLocationInformationTWIF { + ASN_NGAP_TWAP_ID_t tWAP_ID; + ASN_NGAP_TransportLayerAddress_t iPAddress; + ASN_NGAP_PortNumber_t *portNumber; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationTWIF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationTWIF; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationTWIF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationTWIF_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationTWIF_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.c b/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.c new file mode 100644 index 0000000..cca37b0 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserLocationInformationW-AGF.h" + +#include "ASN_NGAP_GlobalLine-ID.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_UserLocationInformationW_AGF_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF, choice.globalLine_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_GlobalLine_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "globalLine-ID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF, choice.hFCNode_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_HFCNode_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hFCNode-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_UserLocationInformationW_AGF, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserLocationInformationW_AGF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* globalLine-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* hFCNode-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_specs_1 = { + sizeof(struct ASN_NGAP_UserLocationInformationW_AGF), + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF, _asn_ctx), + offsetof(struct ASN_NGAP_UserLocationInformationW_AGF, present), + sizeof(((struct ASN_NGAP_UserLocationInformationW_AGF *)0)->present), + asn_MAP_ASN_NGAP_UserLocationInformationW_AGF_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationW_AGF = { + "UserLocationInformationW-AGF", + "UserLocationInformationW-AGF", + &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_ASN_NGAP_UserLocationInformationW_AGF_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.h b/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.h new file mode 100644 index 0000000..f7dfe5f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserLocationInformationW-AGF.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserLocationInformationW_AGF_H_ +#define _ASN_NGAP_UserLocationInformationW_AGF_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_HFCNode-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_UserLocationInformationW_AGF_PR { + ASN_NGAP_UserLocationInformationW_AGF_PR_NOTHING, /* No components present */ + ASN_NGAP_UserLocationInformationW_AGF_PR_globalLine_ID, + ASN_NGAP_UserLocationInformationW_AGF_PR_hFCNode_ID, + ASN_NGAP_UserLocationInformationW_AGF_PR_choice_Extensions +} ASN_NGAP_UserLocationInformationW_AGF_PR; + +/* Forward declarations */ +struct ASN_NGAP_GlobalLine_ID; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_UserLocationInformationW-AGF */ +typedef struct ASN_NGAP_UserLocationInformationW_AGF { + ASN_NGAP_UserLocationInformationW_AGF_PR present; + union ASN_NGAP_UserLocationInformationW_AGF_u { + struct ASN_NGAP_GlobalLine_ID *globalLine_ID; + ASN_NGAP_HFCNode_ID_t hFCNode_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserLocationInformationW_AGF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserLocationInformationW_AGF; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_UserLocationInformationW_AGF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserLocationInformationW_AGF_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_UserLocationInformationW_AGF_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserLocationInformationW_AGF_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.c b/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.c new file mode 100644 index 0000000..068d331 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_UserPlaneSecurityInformation.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation, securityResult), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityResult, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation, securityIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_SecurityIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_UserPlaneSecurityInformation, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P369, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityResult */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* securityIndication */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_specs_1 = { + sizeof(struct ASN_NGAP_UserPlaneSecurityInformation), + offsetof(struct ASN_NGAP_UserPlaneSecurityInformation, _asn_ctx), + asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_UserPlaneSecurityInformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation = { + "UserPlaneSecurityInformation", + "UserPlaneSecurityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1, + sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1) + /sizeof(asn_DEF_ASN_NGAP_UserPlaneSecurityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.h b/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.h new file mode 100644 index 0000000..73209ca --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_UserPlaneSecurityInformation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_UserPlaneSecurityInformation_H_ +#define _ASN_NGAP_UserPlaneSecurityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_SecurityResult.h" +#include "ASN_NGAP_SecurityIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_UserPlaneSecurityInformation */ +typedef struct ASN_NGAP_UserPlaneSecurityInformation { + ASN_NGAP_SecurityResult_t securityResult; + ASN_NGAP_SecurityIndication_t securityIndication; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_UserPlaneSecurityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_UserPlaneSecurityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_UserPlaneSecurityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_UserPlaneSecurityInformation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_UserPlaneSecurityInformation_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_VehicleUE.c b/src/asn/ngap/ASN_NGAP_VehicleUE.c new file mode 100644 index 0000000..fbf624e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VehicleUE.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_VehicleUE.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_VehicleUE_value2enum_1[] = { + { 0, 10, "authorized" }, + { 1, 14, "not-authorized" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_VehicleUE_enum2value_1[] = { + 0, /* authorized(0) */ + 1 /* not-authorized(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_VehicleUE_specs_1 = { + asn_MAP_ASN_NGAP_VehicleUE_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_VehicleUE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VehicleUE = { + "VehicleUE", + "VehicleUE", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_VehicleUE_tags_1, + sizeof(asn_DEF_ASN_NGAP_VehicleUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VehicleUE_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_VehicleUE_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_VehicleUE_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VehicleUE_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_VehicleUE_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_VehicleUE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_VehicleUE.h b/src/asn/ngap/ASN_NGAP_VehicleUE.h new file mode 100644 index 0000000..46af2fa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VehicleUE.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_VehicleUE_H_ +#define _ASN_NGAP_VehicleUE_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_VehicleUE { + ASN_NGAP_VehicleUE_authorized = 0, + ASN_NGAP_VehicleUE_not_authorized = 1 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_VehicleUE; + +/* ASN_NGAP_VehicleUE */ +typedef long ASN_NGAP_VehicleUE_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_VehicleUE_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VehicleUE; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_VehicleUE_specs_1; +asn_struct_free_f ASN_NGAP_VehicleUE_free; +asn_struct_print_f ASN_NGAP_VehicleUE_print; +asn_constr_check_f ASN_NGAP_VehicleUE_constraint; +ber_type_decoder_f ASN_NGAP_VehicleUE_decode_ber; +der_type_encoder_f ASN_NGAP_VehicleUE_encode_der; +xer_type_decoder_f ASN_NGAP_VehicleUE_decode_xer; +xer_type_encoder_f ASN_NGAP_VehicleUE_encode_xer; +per_type_decoder_f ASN_NGAP_VehicleUE_decode_uper; +per_type_encoder_f ASN_NGAP_VehicleUE_encode_uper; +per_type_decoder_f ASN_NGAP_VehicleUE_decode_aper; +per_type_encoder_f ASN_NGAP_VehicleUE_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_VehicleUE_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.c b/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.c new file mode 100644 index 0000000..d32bfef --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.c @@ -0,0 +1,227 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_VolumeTimedReport-Item.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +static int +memb_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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 <= 18446744073709551615ULL)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_NGAP_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 <= 18446744073709551615ULL)) { + /* Constraint 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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_usageCountUL_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 64, -1, 0, 18446744073709551615ULL } /* (0..18446744073709551615ULL) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_NGAP_usageCountDL_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 64, -1, 0, 18446744073709551615ULL } /* (0..18446744073709551615ULL) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_VolumeTimedReport_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item, startTimeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_startTimeStamp_constr_2, memb_ASN_NGAP_startTimeStamp_constraint_1 }, + 0, 0, /* No default value */ + "startTimeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item, endTimeStamp), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_endTimeStamp_constr_3, memb_ASN_NGAP_endTimeStamp_constraint_1 }, + 0, 0, /* No default value */ + "endTimeStamp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item, usageCountUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_INTEGER, + 0, + { 0, &asn_PER_memb_ASN_NGAP_usageCountUL_constr_4, memb_ASN_NGAP_usageCountUL_constraint_1 }, + 0, 0, /* No default value */ + "usageCountUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_VolumeTimedReport_Item, usageCountDL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_INTEGER, + 0, + { 0, &asn_PER_memb_ASN_NGAP_usageCountDL_constr_5, memb_ASN_NGAP_usageCountDL_constraint_1 }, + 0, 0, /* No default value */ + "usageCountDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_VolumeTimedReport_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P370, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_VolumeTimedReport_Item_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_VolumeTimedReport_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReport_Item_specs_1 = { + sizeof(struct ASN_NGAP_VolumeTimedReport_Item), + offsetof(struct ASN_NGAP_VolumeTimedReport_Item, _asn_ctx), + asn_MAP_ASN_NGAP_VolumeTimedReport_Item_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_VolumeTimedReport_Item_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item = { + "VolumeTimedReport-Item", + "VolumeTimedReport-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReport_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_VolumeTimedReport_Item_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_VolumeTimedReport_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.h b/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.h new file mode 100644 index 0000000..e86f20a --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VolumeTimedReport-Item.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_VolumeTimedReport_Item_H_ +#define _ASN_NGAP_VolumeTimedReport_Item_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_VolumeTimedReport-Item */ +typedef struct ASN_NGAP_VolumeTimedReport_Item { + OCTET_STRING_t startTimeStamp; + OCTET_STRING_t endTimeStamp; + INTEGER_t usageCountUL; + INTEGER_t usageCountDL; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_VolumeTimedReport_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReport_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReport_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_VolumeTimedReport_Item_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_VolumeTimedReport_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.c b/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.c new file mode 100644 index 0000000..67732d5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_VolumeTimedReportList.h" + +#include "ASN_NGAP_VolumeTimedReport-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_VolumeTimedReportList_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_ASN_NGAP_VolumeTimedReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_VolumeTimedReport_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReportList_specs_1 = { + sizeof(struct ASN_NGAP_VolumeTimedReportList), + offsetof(struct ASN_NGAP_VolumeTimedReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReportList = { + "VolumeTimedReportList", + "VolumeTimedReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1, + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_VolumeTimedReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_VolumeTimedReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_VolumeTimedReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_VolumeTimedReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.h b/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.h new file mode 100644 index 0000000..ccd2559 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_VolumeTimedReportList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_VolumeTimedReportList_H_ +#define _ASN_NGAP_VolumeTimedReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_VolumeTimedReport_Item; + +/* ASN_NGAP_VolumeTimedReportList */ +typedef struct ASN_NGAP_VolumeTimedReportList { + A_SEQUENCE_OF(struct ASN_NGAP_VolumeTimedReport_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_VolumeTimedReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_VolumeTimedReportList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_VolumeTimedReportList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_VolumeTimedReportList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_VolumeTimedReportList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_VolumeTimedReportList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_W-AGF-ID.c b/src/asn/ngap/ASN_NGAP_W-AGF-ID.c new file mode 100644 index 0000000..7b85995 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_W-AGF-ID.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_W-AGF-ID.h" + +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +static int +memb_ASN_NGAP_w_AGF_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 == 16)) { + /* Constraint 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_ASN_NGAP_w_AGF_ID_constr_2 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 */ +}; +asn_per_constraints_t asn_PER_type_ASN_NGAP_W_AGF_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_ASN_NGAP_W_AGF_ID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_W_AGF_ID, choice.w_AGF_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_NGAP_w_AGF_ID_constr_2, memb_ASN_NGAP_w_AGF_ID_constraint_1 }, + 0, 0, /* No default value */ + "w-AGF-ID" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_W_AGF_ID, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_W_AGF_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* w-AGF-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_W_AGF_ID_specs_1 = { + sizeof(struct ASN_NGAP_W_AGF_ID), + offsetof(struct ASN_NGAP_W_AGF_ID, _asn_ctx), + offsetof(struct ASN_NGAP_W_AGF_ID, present), + sizeof(((struct ASN_NGAP_W_AGF_ID *)0)->present), + asn_MAP_ASN_NGAP_W_AGF_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_W_AGF_ID = { + "W-AGF-ID", + "W-AGF-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_ASN_NGAP_W_AGF_ID_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_W_AGF_ID_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_W_AGF_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_W-AGF-ID.h b/src/asn/ngap/ASN_NGAP_W-AGF-ID.h new file mode 100644 index 0000000..9bc5e6b --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_W-AGF-ID.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_W_AGF_ID_H_ +#define _ASN_NGAP_W_AGF_ID_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_W_AGF_ID_PR { + ASN_NGAP_W_AGF_ID_PR_NOTHING, /* No components present */ + ASN_NGAP_W_AGF_ID_PR_w_AGF_ID, + ASN_NGAP_W_AGF_ID_PR_choice_Extensions +} ASN_NGAP_W_AGF_ID_PR; + +/* Forward declarations */ +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_W-AGF-ID */ +typedef struct ASN_NGAP_W_AGF_ID { + ASN_NGAP_W_AGF_ID_PR present; + union ASN_NGAP_W_AGF_ID_u { + BIT_STRING_t w_AGF_ID; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_W_AGF_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_W_AGF_ID; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_W_AGF_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_W_AGF_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_W_AGF_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_W_AGF_ID_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfig.c b/src/asn/ngap/ASN_NGAP_WLANMeasConfig.c new file mode 100644 index 0000000..db706c7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WLANMeasConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_WLANMeasConfig_value2enum_1[] = { + { 0, 5, "setup" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_WLANMeasConfig_enum2value_1[] = { + 0 /* setup(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfig_specs_1 = { + asn_MAP_ASN_NGAP_WLANMeasConfig_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_WLANMeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfig = { + "WLANMeasConfig", + "WLANMeasConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1, + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfig_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WLANMeasConfig_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_WLANMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfig.h b/src/asn/ngap/ASN_NGAP_WLANMeasConfig.h new file mode 100644 index 0000000..18cea2c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WLANMeasConfig_H_ +#define _ASN_NGAP_WLANMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_WLANMeasConfig { + ASN_NGAP_WLANMeasConfig_setup = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_WLANMeasConfig; + +/* ASN_NGAP_WLANMeasConfig */ +typedef long ASN_NGAP_WLANMeasConfig_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WLANMeasConfig_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfig; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfig_specs_1; +asn_struct_free_f ASN_NGAP_WLANMeasConfig_free; +asn_struct_print_f ASN_NGAP_WLANMeasConfig_print; +asn_constr_check_f ASN_NGAP_WLANMeasConfig_constraint; +ber_type_decoder_f ASN_NGAP_WLANMeasConfig_decode_ber; +der_type_encoder_f ASN_NGAP_WLANMeasConfig_encode_der; +xer_type_decoder_f ASN_NGAP_WLANMeasConfig_decode_xer; +xer_type_encoder_f ASN_NGAP_WLANMeasConfig_encode_xer; +per_type_decoder_f ASN_NGAP_WLANMeasConfig_decode_uper; +per_type_encoder_f ASN_NGAP_WLANMeasConfig_encode_uper; +per_type_decoder_f ASN_NGAP_WLANMeasConfig_decode_aper; +per_type_encoder_f ASN_NGAP_WLANMeasConfig_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WLANMeasConfig_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.c b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.c new file mode 100644 index 0000000..f69c57d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WLANMeasConfigNameItem.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasConfigNameItem, wLANName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_WLANName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wLANName" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_WLANMeasConfigNameItem, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P372, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* wLANName */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_specs_1 = { + sizeof(struct ASN_NGAP_WLANMeasConfigNameItem), + offsetof(struct ASN_NGAP_WLANMeasConfigNameItem, _asn_ctx), + asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_WLANMeasConfigNameItem_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem = { + "WLANMeasConfigNameItem", + "WLANMeasConfigNameItem", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1, + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameItem_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.h b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.h new file mode 100644 index 0000000..1c3ddcf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameItem.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WLANMeasConfigNameItem_H_ +#define _ASN_NGAP_WLANMeasConfigNameItem_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_WLANName.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_WLANMeasConfigNameItem */ +typedef struct ASN_NGAP_WLANMeasConfigNameItem { + ASN_NGAP_WLANName_t wLANName; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WLANMeasConfigNameItem_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameItem; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameItem_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasConfigNameItem_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WLANMeasConfigNameItem_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.c b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.c new file mode 100644 index 0000000..8dacc04 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WLANMeasConfigNameList.h" + +#include "ASN_NGAP_WLANMeasConfigNameItem.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_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_ASN_NGAP_WLANMeasConfigNameList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_WLANMeasConfigNameItem, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameList_specs_1 = { + sizeof(struct ASN_NGAP_WLANMeasConfigNameList), + offsetof(struct ASN_NGAP_WLANMeasConfigNameList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameList = { + "WLANMeasConfigNameList", + "WLANMeasConfigNameList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1, + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasConfigNameList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WLANMeasConfigNameList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_WLANMeasConfigNameList_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_WLANMeasConfigNameList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.h b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.h new file mode 100644 index 0000000..a8406aa --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasConfigNameList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WLANMeasConfigNameList_H_ +#define _ASN_NGAP_WLANMeasConfigNameList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_WLANMeasConfigNameItem; + +/* ASN_NGAP_WLANMeasConfigNameList */ +typedef struct ASN_NGAP_WLANMeasConfigNameList { + A_SEQUENCE_OF(struct ASN_NGAP_WLANMeasConfigNameItem) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WLANMeasConfigNameList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasConfigNameList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_WLANMeasConfigNameList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasConfigNameList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WLANMeasConfigNameList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WLANMeasConfigNameList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.c b/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.c new file mode 100644 index 0000000..b998d6d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WLANMeasurementConfiguration.h" + +#include "ASN_NGAP_WLANMeasConfigNameList.h" +#include "ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_wlan_rssi_value2enum_4[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_wlan_rssi_enum2value_4[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_wlan_rssi_specs_4 = { + asn_MAP_ASN_NGAP_wlan_rssi_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_wlan_rssi_4 = { + "wlan-rssi", + "wlan-rssi", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_wlan_rssi_tags_4, + sizeof(asn_DEF_ASN_NGAP_wlan_rssi_tags_4) + /sizeof(asn_DEF_ASN_NGAP_wlan_rssi_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_wlan_rssi_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_wlan_rssi_tags_4) + /sizeof(asn_DEF_ASN_NGAP_wlan_rssi_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_wlan_rssi_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_wlan_rssi_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_NGAP_wlan_rtt_value2enum_7[] = { + { 0, 4, "true" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_NGAP_wlan_rtt_enum2value_7[] = { + 0 /* true(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_NGAP_wlan_rtt_specs_7 = { + asn_MAP_ASN_NGAP_wlan_rtt_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_wlan_rtt_7 = { + "wlan-rtt", + "wlan-rtt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_NGAP_wlan_rtt_tags_7, + sizeof(asn_DEF_ASN_NGAP_wlan_rtt_tags_7) + /sizeof(asn_DEF_ASN_NGAP_wlan_rtt_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_NGAP_wlan_rtt_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_wlan_rtt_tags_7) + /sizeof(asn_DEF_ASN_NGAP_wlan_rtt_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_NGAP_wlan_rtt_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_NGAP_wlan_rtt_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, wlanMeasConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_WLANMeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlanMeasConfig" + }, + { ATF_POINTER, 4, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, wlanMeasConfigNameList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_WLANMeasConfigNameList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlanMeasConfigNameList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, wlan_rssi), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_wlan_rssi_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlan-rssi" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, wlan_rtt), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_wlan_rtt_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlan-rtt" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P371, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_WLANMeasurementConfiguration_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_specs_1 = { + sizeof(struct ASN_NGAP_WLANMeasurementConfiguration), + offsetof(struct ASN_NGAP_WLANMeasurementConfiguration, _asn_ctx), + asn_MAP_ASN_NGAP_WLANMeasurementConfiguration_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_WLANMeasurementConfiguration_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration = { + "WLANMeasurementConfiguration", + "WLANMeasurementConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1, + sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANMeasurementConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.h b/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.h new file mode 100644 index 0000000..0aed006 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANMeasurementConfiguration.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WLANMeasurementConfiguration_H_ +#define _ASN_NGAP_WLANMeasurementConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_WLANMeasConfig.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_WLANMeasurementConfiguration__wlan_rssi { + ASN_NGAP_WLANMeasurementConfiguration__wlan_rssi_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_WLANMeasurementConfiguration__wlan_rssi; +typedef enum ASN_NGAP_WLANMeasurementConfiguration__wlan_rtt { + ASN_NGAP_WLANMeasurementConfiguration__wlan_rtt_true = 0 + /* + * Enumeration is extensible + */ +} e_ASN_NGAP_WLANMeasurementConfiguration__wlan_rtt; + +/* Forward declarations */ +struct ASN_NGAP_WLANMeasConfigNameList; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_WLANMeasurementConfiguration */ +typedef struct ASN_NGAP_WLANMeasurementConfiguration { + ASN_NGAP_WLANMeasConfig_t wlanMeasConfig; + struct ASN_NGAP_WLANMeasConfigNameList *wlanMeasConfigNameList; /* OPTIONAL */ + long *wlan_rssi; /* OPTIONAL */ + long *wlan_rtt; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WLANMeasurementConfiguration_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_wlan_rssi_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_wlan_rtt_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANMeasurementConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WLANMeasurementConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WLANMeasurementConfiguration_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WLANMeasurementConfiguration_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WLANName.c b/src/asn/ngap/ASN_NGAP_WLANName.c new file mode 100644 index 0000000..391aa7d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANName.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WLANName.h" + +int +ASN_NGAP_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_ASN_NGAP_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_ASN_NGAP_WLANName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANName = { + "WLANName", + "WLANName", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_WLANName_tags_1, + sizeof(asn_DEF_ASN_NGAP_WLANName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANName_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WLANName_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WLANName_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WLANName_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WLANName_constr_1, ASN_NGAP_WLANName_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WLANName.h b/src/asn/ngap/ASN_NGAP_WLANName.h new file mode 100644 index 0000000..e959e90 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WLANName.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WLANName_H_ +#define _ASN_NGAP_WLANName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WLANName */ +typedef OCTET_STRING_t ASN_NGAP_WLANName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WLANName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WLANName; +asn_struct_free_f ASN_NGAP_WLANName_free; +asn_struct_print_f ASN_NGAP_WLANName_print; +asn_constr_check_f ASN_NGAP_WLANName_constraint; +ber_type_decoder_f ASN_NGAP_WLANName_decode_ber; +der_type_encoder_f ASN_NGAP_WLANName_encode_der; +xer_type_decoder_f ASN_NGAP_WLANName_decode_xer; +xer_type_encoder_f ASN_NGAP_WLANName_encode_xer; +per_type_decoder_f ASN_NGAP_WLANName_decode_uper; +per_type_encoder_f ASN_NGAP_WLANName_encode_uper; +per_type_decoder_f ASN_NGAP_WLANName_decode_aper; +per_type_encoder_f ASN_NGAP_WLANName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WLANName_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.c b/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.c new file mode 100644 index 0000000..8d847fb --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WUS-Assistance-Information.h" + +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_WUS_Assistance_Information_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WUS_Assistance_Information, pagingProbabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_PagingProbabilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingProbabilityInformation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_WUS_Assistance_Information, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P373, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_WUS_Assistance_Information_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WUS_Assistance_Information_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pagingProbabilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WUS_Assistance_Information_specs_1 = { + sizeof(struct ASN_NGAP_WUS_Assistance_Information), + offsetof(struct ASN_NGAP_WUS_Assistance_Information, _asn_ctx), + asn_MAP_ASN_NGAP_WUS_Assistance_Information_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_WUS_Assistance_Information_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WUS_Assistance_Information = { + "WUS-Assistance-Information", + "WUS-Assistance-Information", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1, + sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WUS_Assistance_Information_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WUS_Assistance_Information_1, + 2, /* Elements count */ + &asn_SPC_ASN_NGAP_WUS_Assistance_Information_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.h b/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.h new file mode 100644 index 0000000..d0c453e --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WUS-Assistance-Information.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WUS_Assistance_Information_H_ +#define _ASN_NGAP_WUS_Assistance_Information_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_PagingProbabilityInformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_WUS-Assistance-Information */ +typedef struct ASN_NGAP_WUS_Assistance_Information { + ASN_NGAP_PagingProbabilityInformation_t pagingProbabilityInformation; + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WUS_Assistance_Information_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WUS_Assistance_Information; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WUS_Assistance_Information_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WUS_Assistance_Information_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WUS_Assistance_Information_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.c b/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.c new file mode 100644 index 0000000..472b004 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WarningAreaCoordinates.h" + +int +ASN_NGAP_WarningAreaCoordinates_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_WarningAreaCoordinates_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 const ber_tlv_tag_t asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaCoordinates = { + "WarningAreaCoordinates", + "WarningAreaCoordinates", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1, + sizeof(asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningAreaCoordinates_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WarningAreaCoordinates_constr_1, ASN_NGAP_WarningAreaCoordinates_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.h b/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.h new file mode 100644 index 0000000..9d1ccbf --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningAreaCoordinates.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WarningAreaCoordinates_H_ +#define _ASN_NGAP_WarningAreaCoordinates_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WarningAreaCoordinates */ +typedef OCTET_STRING_t ASN_NGAP_WarningAreaCoordinates_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningAreaCoordinates_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaCoordinates; +asn_struct_free_f ASN_NGAP_WarningAreaCoordinates_free; +asn_struct_print_f ASN_NGAP_WarningAreaCoordinates_print; +asn_constr_check_f ASN_NGAP_WarningAreaCoordinates_constraint; +ber_type_decoder_f ASN_NGAP_WarningAreaCoordinates_decode_ber; +der_type_encoder_f ASN_NGAP_WarningAreaCoordinates_encode_der; +xer_type_decoder_f ASN_NGAP_WarningAreaCoordinates_decode_xer; +xer_type_encoder_f ASN_NGAP_WarningAreaCoordinates_encode_xer; +per_type_decoder_f ASN_NGAP_WarningAreaCoordinates_decode_uper; +per_type_encoder_f ASN_NGAP_WarningAreaCoordinates_encode_uper; +per_type_decoder_f ASN_NGAP_WarningAreaCoordinates_decode_aper; +per_type_encoder_f ASN_NGAP_WarningAreaCoordinates_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WarningAreaCoordinates_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WarningAreaList.c b/src/asn/ngap/ASN_NGAP_WarningAreaList.c new file mode 100644 index 0000000..739b334 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningAreaList.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WarningAreaList.h" + +#include "ASN_NGAP_EUTRA-CGIListForWarning.h" +#include "ASN_NGAP_NR-CGIListForWarning.h" +#include "ASN_NGAP_TAIListForWarning.h" +#include "ASN_NGAP_EmergencyAreaIDList.h" +#include "ASN_NGAP_ProtocolIE-SingleContainer.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningAreaList_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_NGAP_WarningAreaList_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_WarningAreaList, choice.eUTRA_CGIListForWarning), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EUTRA_CGIListForWarning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eUTRA-CGIListForWarning" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_WarningAreaList, choice.nR_CGIListForWarning), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_NR_CGIListForWarning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nR-CGIListForWarning" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_WarningAreaList, choice.tAIListForWarning), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TAIListForWarning, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tAIListForWarning" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_WarningAreaList, choice.emergencyAreaIDList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_EmergencyAreaIDList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "emergencyAreaIDList" + }, + { ATF_POINTER, 0, offsetof(struct ASN_NGAP_WarningAreaList, choice.choice_Extensions), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_SingleContainer_126P63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "choice-Extensions" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WarningAreaList_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eUTRA-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-CGIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tAIListForWarning */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* emergencyAreaIDList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* choice-Extensions */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_WarningAreaList_specs_1 = { + sizeof(struct ASN_NGAP_WarningAreaList), + offsetof(struct ASN_NGAP_WarningAreaList, _asn_ctx), + offsetof(struct ASN_NGAP_WarningAreaList, present), + sizeof(((struct ASN_NGAP_WarningAreaList *)0)->present), + asn_MAP_ASN_NGAP_WarningAreaList_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaList = { + "WarningAreaList", + "WarningAreaList", + &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_ASN_NGAP_WarningAreaList_constr_1, CHOICE_constraint }, + asn_MBR_ASN_NGAP_WarningAreaList_1, + 5, /* Elements count */ + &asn_SPC_ASN_NGAP_WarningAreaList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WarningAreaList.h b/src/asn/ngap/ASN_NGAP_WarningAreaList.h new file mode 100644 index 0000000..13bbd1f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningAreaList.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WarningAreaList_H_ +#define _ASN_NGAP_WarningAreaList_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_NGAP_WarningAreaList_PR { + ASN_NGAP_WarningAreaList_PR_NOTHING, /* No components present */ + ASN_NGAP_WarningAreaList_PR_eUTRA_CGIListForWarning, + ASN_NGAP_WarningAreaList_PR_nR_CGIListForWarning, + ASN_NGAP_WarningAreaList_PR_tAIListForWarning, + ASN_NGAP_WarningAreaList_PR_emergencyAreaIDList, + ASN_NGAP_WarningAreaList_PR_choice_Extensions +} ASN_NGAP_WarningAreaList_PR; + +/* Forward declarations */ +struct ASN_NGAP_EUTRA_CGIListForWarning; +struct ASN_NGAP_NR_CGIListForWarning; +struct ASN_NGAP_TAIListForWarning; +struct ASN_NGAP_EmergencyAreaIDList; +struct ASN_NGAP_ProtocolIE_SingleContainer; + +/* ASN_NGAP_WarningAreaList */ +typedef struct ASN_NGAP_WarningAreaList { + ASN_NGAP_WarningAreaList_PR present; + union ASN_NGAP_WarningAreaList_u { + struct ASN_NGAP_EUTRA_CGIListForWarning *eUTRA_CGIListForWarning; + struct ASN_NGAP_NR_CGIListForWarning *nR_CGIListForWarning; + struct ASN_NGAP_TAIListForWarning *tAIListForWarning; + struct ASN_NGAP_EmergencyAreaIDList *emergencyAreaIDList; + struct ASN_NGAP_ProtocolIE_SingleContainer *choice_Extensions; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WarningAreaList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningAreaList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_NGAP_WarningAreaList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WarningAreaList_1[5]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningAreaList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WarningAreaList_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WarningMessageContents.c b/src/asn/ngap/ASN_NGAP_WarningMessageContents.c new file mode 100644 index 0000000..9084f45 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningMessageContents.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WarningMessageContents.h" + +int +ASN_NGAP_WarningMessageContents_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 <= 9600)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_WarningMessageContents_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 14, 14, 1, 9600 } /* (SIZE(1..9600)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WarningMessageContents_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningMessageContents = { + "WarningMessageContents", + "WarningMessageContents", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_WarningMessageContents_tags_1, + sizeof(asn_DEF_ASN_NGAP_WarningMessageContents_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningMessageContents_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WarningMessageContents_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WarningMessageContents_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningMessageContents_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WarningMessageContents_constr_1, ASN_NGAP_WarningMessageContents_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WarningMessageContents.h b/src/asn/ngap/ASN_NGAP_WarningMessageContents.h new file mode 100644 index 0000000..5eb256f --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningMessageContents.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WarningMessageContents_H_ +#define _ASN_NGAP_WarningMessageContents_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WarningMessageContents */ +typedef OCTET_STRING_t ASN_NGAP_WarningMessageContents_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningMessageContents_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningMessageContents; +asn_struct_free_f ASN_NGAP_WarningMessageContents_free; +asn_struct_print_f ASN_NGAP_WarningMessageContents_print; +asn_constr_check_f ASN_NGAP_WarningMessageContents_constraint; +ber_type_decoder_f ASN_NGAP_WarningMessageContents_decode_ber; +der_type_encoder_f ASN_NGAP_WarningMessageContents_encode_der; +xer_type_decoder_f ASN_NGAP_WarningMessageContents_decode_xer; +xer_type_encoder_f ASN_NGAP_WarningMessageContents_encode_xer; +per_type_decoder_f ASN_NGAP_WarningMessageContents_decode_uper; +per_type_encoder_f ASN_NGAP_WarningMessageContents_encode_uper; +per_type_decoder_f ASN_NGAP_WarningMessageContents_decode_aper; +per_type_encoder_f ASN_NGAP_WarningMessageContents_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WarningMessageContents_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.c b/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.c new file mode 100644 index 0000000..8859250 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WarningSecurityInfo.h" + +int +ASN_NGAP_WarningSecurityInfo_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 == 50)) { + /* Constraint check succeeded */ + return 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_ASN_NGAP_WarningSecurityInfo_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 50, 50 } /* (SIZE(50..50)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningSecurityInfo = { + "WarningSecurityInfo", + "WarningSecurityInfo", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningSecurityInfo_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WarningSecurityInfo_constr_1, ASN_NGAP_WarningSecurityInfo_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.h b/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.h new file mode 100644 index 0000000..753054d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningSecurityInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WarningSecurityInfo_H_ +#define _ASN_NGAP_WarningSecurityInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WarningSecurityInfo */ +typedef OCTET_STRING_t ASN_NGAP_WarningSecurityInfo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningSecurityInfo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningSecurityInfo; +asn_struct_free_f ASN_NGAP_WarningSecurityInfo_free; +asn_struct_print_f ASN_NGAP_WarningSecurityInfo_print; +asn_constr_check_f ASN_NGAP_WarningSecurityInfo_constraint; +ber_type_decoder_f ASN_NGAP_WarningSecurityInfo_decode_ber; +der_type_encoder_f ASN_NGAP_WarningSecurityInfo_encode_der; +xer_type_decoder_f ASN_NGAP_WarningSecurityInfo_decode_xer; +xer_type_encoder_f ASN_NGAP_WarningSecurityInfo_encode_xer; +per_type_decoder_f ASN_NGAP_WarningSecurityInfo_decode_uper; +per_type_encoder_f ASN_NGAP_WarningSecurityInfo_encode_uper; +per_type_decoder_f ASN_NGAP_WarningSecurityInfo_decode_aper; +per_type_encoder_f ASN_NGAP_WarningSecurityInfo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WarningSecurityInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WarningType.c b/src/asn/ngap/ASN_NGAP_WarningType.c new file mode 100644 index 0000000..8f7f86d --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningType.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WarningType.h" + +int +ASN_NGAP_WarningType_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_ASN_NGAP_WarningType_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_ASN_NGAP_WarningType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningType = { + "WarningType", + "WarningType", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_NGAP_WarningType_tags_1, + sizeof(asn_DEF_ASN_NGAP_WarningType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningType_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WarningType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WarningType_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WarningType_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_WarningType_constr_1, ASN_NGAP_WarningType_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WarningType.h b/src/asn/ngap/ASN_NGAP_WarningType.h new file mode 100644 index 0000000..1bfe9fe --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WarningType.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WarningType_H_ +#define _ASN_NGAP_WarningType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WarningType */ +typedef OCTET_STRING_t ASN_NGAP_WarningType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_WarningType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WarningType; +asn_struct_free_f ASN_NGAP_WarningType_free; +asn_struct_print_f ASN_NGAP_WarningType_print; +asn_constr_check_f ASN_NGAP_WarningType_constraint; +ber_type_decoder_f ASN_NGAP_WarningType_decode_ber; +der_type_encoder_f ASN_NGAP_WarningType_encode_der; +xer_type_decoder_f ASN_NGAP_WarningType_decode_xer; +xer_type_encoder_f ASN_NGAP_WarningType_encode_xer; +per_type_decoder_f ASN_NGAP_WarningType_decode_uper; +per_type_encoder_f ASN_NGAP_WarningType_encode_uper; +per_type_decoder_f ASN_NGAP_WarningType_decode_aper; +per_type_encoder_f ASN_NGAP_WarningType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WarningType_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.c b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.c new file mode 100644 index 0000000..850d2c5 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WriteReplaceWarningRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningRequest, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WriteReplaceWarningRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningRequest_specs_1 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningRequest), + offsetof(struct ASN_NGAP_WriteReplaceWarningRequest, _asn_ctx), + asn_MAP_ASN_NGAP_WriteReplaceWarningRequest_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_ASN_NGAP_WriteReplaceWarningRequest = { + "WriteReplaceWarningRequest", + "WriteReplaceWarningRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1, + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WriteReplaceWarningRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_WriteReplaceWarningRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.h b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.h new file mode 100644 index 0000000..9c5e544 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningRequest.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WriteReplaceWarningRequest_H_ +#define _ASN_NGAP_WriteReplaceWarningRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WriteReplaceWarningRequest */ +typedef struct ASN_NGAP_WriteReplaceWarningRequest { + ASN_NGAP_ProtocolIE_Container_123P72_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WriteReplaceWarningRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WriteReplaceWarningRequest_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.c b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.c new file mode 100644 index 0000000..01e8c4c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_WriteReplaceWarningResponse.h" + +asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_WriteReplaceWarningResponse, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolIE_Container_123P73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_WriteReplaceWarningResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningResponse_specs_1 = { + sizeof(struct ASN_NGAP_WriteReplaceWarningResponse), + offsetof(struct ASN_NGAP_WriteReplaceWarningResponse, _asn_ctx), + asn_MAP_ASN_NGAP_WriteReplaceWarningResponse_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_ASN_NGAP_WriteReplaceWarningResponse = { + "WriteReplaceWarningResponse", + "WriteReplaceWarningResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1, + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1) + /sizeof(asn_DEF_ASN_NGAP_WriteReplaceWarningResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_WriteReplaceWarningResponse_1, + 1, /* Elements count */ + &asn_SPC_ASN_NGAP_WriteReplaceWarningResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.h b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.h new file mode 100644 index 0000000..3553694 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_WriteReplaceWarningResponse.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-PDU-Contents" + * found in "NGAP-PDU-Contents.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_WriteReplaceWarningResponse_H_ +#define _ASN_NGAP_WriteReplaceWarningResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_ProtocolIE-Container.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_WriteReplaceWarningResponse */ +typedef struct ASN_NGAP_WriteReplaceWarningResponse { + ASN_NGAP_ProtocolIE_Container_123P73_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_WriteReplaceWarningResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_WriteReplaceWarningResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_WriteReplaceWarningResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_WriteReplaceWarningResponse_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_WriteReplaceWarningResponse_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.c b/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.c new file mode 100644 index 0000000..3476154 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_XnExtTLA-Item.h" + +#include "ASN_NGAP_XnGTP-TLAs.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_XnExtTLA_Item_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_NGAP_XnExtTLA_Item, iPsecTLA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iPsecTLA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_XnExtTLA_Item, gTP_TLAs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_XnGTP_TLAs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gTP-TLAs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_XnExtTLA_Item, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P374, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_XnExtTLA_Item_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_XnExtTLA_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iPsecTLA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gTP-TLAs */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnExtTLA_Item_specs_1 = { + sizeof(struct ASN_NGAP_XnExtTLA_Item), + offsetof(struct ASN_NGAP_XnExtTLA_Item, _asn_ctx), + asn_MAP_ASN_NGAP_XnExtTLA_Item_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_XnExtTLA_Item_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLA_Item = { + "XnExtTLA-Item", + "XnExtTLA-Item", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1, + sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLA_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_XnExtTLA_Item_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_XnExtTLA_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.h b/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.h new file mode 100644 index 0000000..995d347 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnExtTLA-Item.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_XnExtTLA_Item_H_ +#define _ASN_NGAP_XnExtTLA_Item_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_XnGTP_TLAs; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_XnExtTLA-Item */ +typedef struct ASN_NGAP_XnExtTLA_Item { + ASN_NGAP_TransportLayerAddress_t *iPsecTLA; /* OPTIONAL */ + struct ASN_NGAP_XnGTP_TLAs *gTP_TLAs; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnExtTLA_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLA_Item; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnExtTLA_Item_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnExtTLA_Item_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_XnExtTLA_Item_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_XnExtTLAs.c b/src/asn/ngap/ASN_NGAP_XnExtTLAs.c new file mode 100644 index 0000000..b24af51 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnExtTLAs.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_XnExtTLAs.h" + +#include "ASN_NGAP_XnExtTLA-Item.h" +asn_per_constraints_t asn_PER_type_ASN_NGAP_XnExtTLAs_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_ASN_NGAP_XnExtTLAs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_NGAP_XnExtTLA_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnExtTLAs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnExtTLAs_specs_1 = { + sizeof(struct ASN_NGAP_XnExtTLAs), + offsetof(struct ASN_NGAP_XnExtTLAs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLAs = { + "XnExtTLAs", + "XnExtTLAs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_XnExtTLAs_tags_1, + sizeof(asn_DEF_ASN_NGAP_XnExtTLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLAs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnExtTLAs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnExtTLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnExtTLAs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_XnExtTLAs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_XnExtTLAs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_XnExtTLAs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_XnExtTLAs.h b/src/asn/ngap/ASN_NGAP_XnExtTLAs.h new file mode 100644 index 0000000..e89b033 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnExtTLAs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_XnExtTLAs_H_ +#define _ASN_NGAP_XnExtTLAs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_XnExtTLA_Item; + +/* ASN_NGAP_XnExtTLAs */ +typedef struct ASN_NGAP_XnExtTLAs { + A_SEQUENCE_OF(struct ASN_NGAP_XnExtTLA_Item) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnExtTLAs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnExtTLAs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnExtTLAs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnExtTLAs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_XnExtTLAs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_XnExtTLAs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.c b/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.c new file mode 100644 index 0000000..84aa776 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_XnGTP-TLAs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_XnGTP_TLAs_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_ASN_NGAP_XnGTP_TLAs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnGTP_TLAs_specs_1 = { + sizeof(struct ASN_NGAP_XnGTP_TLAs), + offsetof(struct ASN_NGAP_XnGTP_TLAs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnGTP_TLAs = { + "XnGTP-TLAs", + "XnGTP-TLAs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1, + sizeof(asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnGTP_TLAs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_XnGTP_TLAs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_XnGTP_TLAs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_XnGTP_TLAs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.h b/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.h new file mode 100644 index 0000000..0d15bde --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnGTP-TLAs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_XnGTP_TLAs_H_ +#define _ASN_NGAP_XnGTP_TLAs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_XnGTP-TLAs */ +typedef struct ASN_NGAP_XnGTP_TLAs { + A_SEQUENCE_OF(ASN_NGAP_TransportLayerAddress_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnGTP_TLAs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnGTP_TLAs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnGTP_TLAs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnGTP_TLAs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_XnGTP_TLAs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_XnGTP_TLAs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_XnTLAs.c b/src/asn/ngap/ASN_NGAP_XnTLAs.c new file mode 100644 index 0000000..396ae67 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnTLAs.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_XnTLAs.h" + +asn_per_constraints_t asn_PER_type_ASN_NGAP_XnTLAs_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_ASN_NGAP_XnTLAs_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_NGAP_TransportLayerAddress, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnTLAs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnTLAs_specs_1 = { + sizeof(struct ASN_NGAP_XnTLAs), + offsetof(struct ASN_NGAP_XnTLAs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTLAs = { + "XnTLAs", + "XnTLAs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_NGAP_XnTLAs_tags_1, + sizeof(asn_DEF_ASN_NGAP_XnTLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnTLAs_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnTLAs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnTLAs_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnTLAs_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_NGAP_XnTLAs_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_NGAP_XnTLAs_1, + 1, /* Single element */ + &asn_SPC_ASN_NGAP_XnTLAs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_XnTLAs.h b/src/asn/ngap/ASN_NGAP_XnTLAs.h new file mode 100644 index 0000000..edd548c --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnTLAs.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_XnTLAs_H_ +#define _ASN_NGAP_XnTLAs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_TransportLayerAddress.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_NGAP_XnTLAs */ +typedef struct ASN_NGAP_XnTLAs { + A_SEQUENCE_OF(ASN_NGAP_TransportLayerAddress_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnTLAs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTLAs; +extern asn_SET_OF_specifics_t asn_SPC_ASN_NGAP_XnTLAs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnTLAs_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_NGAP_XnTLAs_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_XnTLAs_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.c b/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.c new file mode 100644 index 0000000..f9ff591 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#include "ASN_NGAP_XnTNLConfigurationInfo.h" + +#include "ASN_NGAP_XnExtTLAs.h" +#include "ASN_NGAP_ProtocolExtensionContainer.h" +asn_TYPE_member_t asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo, xnTransportLayerAddresses), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_XnTLAs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xnTransportLayerAddresses" + }, + { ATF_POINTER, 2, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo, xnExtendedTransportLayerAddresses), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_XnExtTLAs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xnExtendedTransportLayerAddresses" + }, + { ATF_POINTER, 1, offsetof(struct ASN_NGAP_XnTNLConfigurationInfo, iE_Extensions), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_NGAP_ProtocolExtensionContainer_174P375, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "iE-Extensions" + }, +}; +static const int asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* xnTransportLayerAddresses */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xnExtendedTransportLayerAddresses */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_specs_1 = { + sizeof(struct ASN_NGAP_XnTNLConfigurationInfo), + offsetof(struct ASN_NGAP_XnTNLConfigurationInfo, _asn_ctx), + asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_NGAP_XnTNLConfigurationInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo = { + "XnTNLConfigurationInfo", + "XnTNLConfigurationInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1, + sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1) + /sizeof(asn_DEF_ASN_NGAP_XnTNLConfigurationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.h b/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.h new file mode 100644 index 0000000..379b995 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_XnTNLConfigurationInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NGAP-IEs" + * found in "NGAP-IEs.asn" + * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-OER -gen-PER -no-gen-example -D ngap` + */ + +#ifndef _ASN_NGAP_XnTNLConfigurationInfo_H_ +#define _ASN_NGAP_XnTNLConfigurationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_NGAP_XnTLAs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_NGAP_XnExtTLAs; +struct ASN_NGAP_ProtocolExtensionContainer; + +/* ASN_NGAP_XnTNLConfigurationInfo */ +typedef struct ASN_NGAP_XnTNLConfigurationInfo { + ASN_NGAP_XnTLAs_t xnTransportLayerAddresses; + struct ASN_NGAP_XnExtTLAs *xnExtendedTransportLayerAddresses; /* OPTIONAL */ + struct ASN_NGAP_ProtocolExtensionContainer *iE_Extensions; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_NGAP_XnTNLConfigurationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_NGAP_XnTNLConfigurationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_NGAP_XnTNLConfigurationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_NGAP_XnTNLConfigurationInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_XnTNLConfigurationInfo_H_ */ +#include diff --git a/src/asn/ngap/ASN_NGAP_asn_constant.h b/src/asn/ngap/ASN_NGAP_asn_constant.h new file mode 100644 index 0000000..a14a4e7 --- /dev/null +++ b/src/asn/ngap/ASN_NGAP_asn_constant.h @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_NGAP_ASN_CONSTANT_H +#define _ASN_NGAP_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_ASN_NGAP_ProcedureCode (0) +#define max_val_ASN_NGAP_ProcedureCode (255) +#define min_val_ASN_NGAP_ProtocolExtensionID (0) +#define max_val_ASN_NGAP_ProtocolExtensionID (65535) +#define min_val_ASN_NGAP_ProtocolIE_ID (0) +#define max_val_ASN_NGAP_ProtocolIE_ID (65535) +#define ASN_NGAP_maxPrivateIEs (65535) +#define ASN_NGAP_maxProtocolExtensions (65535) +#define ASN_NGAP_maxProtocolIEs (65535) +#define ASN_NGAP_maxnoofAllowedAreas (16) +#define ASN_NGAP_maxnoofAllowedCAGsperPLMN (256) +#define ASN_NGAP_maxnoofAllowedS_NSSAIs (8) +#define ASN_NGAP_maxnoofBluetoothName (4) +#define ASN_NGAP_maxnoofBPLMNs (12) +#define ASN_NGAP_maxnoofCAGSperCell (64) +#define ASN_NGAP_maxnoofCellIDforMDT (32) +#define ASN_NGAP_maxnoofCellIDforWarning (65535) +#define ASN_NGAP_maxnoofCellinAoI (256) +#define ASN_NGAP_maxnoofCellinEAI (65535) +#define ASN_NGAP_maxnoofCellinTAI (65535) +#define ASN_NGAP_maxnoofCellsforMBS (8192) +#define ASN_NGAP_maxnoofCellsingNB (16384) +#define ASN_NGAP_maxnoofCellsinngeNB (256) +#define ASN_NGAP_maxnoofCellsinNGRANNode (16384) +#define ASN_NGAP_maxnoofCellsinUEHistoryInfo (16) +#define ASN_NGAP_maxnoofCellsUEMovingTrajectory (16) +#define ASN_NGAP_maxnoofDRBs (32) +#define ASN_NGAP_maxnoofEmergencyAreaID (65535) +#define ASN_NGAP_maxnoofEAIforRestart (256) +#define ASN_NGAP_maxnoofEPLMNs (15) +#define ASN_NGAP_maxnoofEPLMNsPlusOne (16) +#define ASN_NGAP_maxnoofE_RABs (256) +#define ASN_NGAP_maxnoofErrors (256) +#define ASN_NGAP_maxnoofExtSliceItems (65535) +#define ASN_NGAP_maxnoofForbTACs (4096) +#define ASN_NGAP_maxnoofFreqforMDT (8) +#define ASN_NGAP_maxnoofMBSAreaSessionIDs (256) +#define ASN_NGAP_maxnoofMBSFSAs (64) +#define ASN_NGAP_maxnoofMBSQoSFlows (64) +#define ASN_NGAP_maxnoofMBSSessions (32) +#define ASN_NGAP_maxnoofMBSSessionsofUE (256) +#define ASN_NGAP_maxnoofMBSServiceAreaInformation (256) +#define ASN_NGAP_maxnoofMDTPLMNs (16) +#define ASN_NGAP_maxnoofMRBs (32) +#define ASN_NGAP_maxnoofMultiConnectivity (4) +#define ASN_NGAP_maxnoofMultiConnectivityMinusOne (3) +#define ASN_NGAP_maxnoofNeighPCIforMDT (32) +#define ASN_NGAP_maxnoofNGAPIESupportInfo (32) +#define ASN_NGAP_maxnoofNGConnectionsToReset (65536) +#define ASN_NGAP_maxnoofNRCellBands (32) +#define ASN_NGAP_maxnoofNSAGs (256) +#define ASN_NGAP_maxnoofPagingAreas (64) +#define ASN_NGAP_maxnoofPC5QoSFlows (2048) +#define ASN_NGAP_maxnoofPDUSessions (256) +#define ASN_NGAP_maxnoofPLMNs (12) +#define ASN_NGAP_maxnoofPSCellsPerPrimaryCellinUEHistoryInfo (8) +#define ASN_NGAP_maxnoofQosFlows (64) +#define ASN_NGAP_maxnoofQosParaSets (8) +#define ASN_NGAP_maxnoofRANNodeinAoI (64) +#define ASN_NGAP_maxnoofRecommendedCells (16) +#define ASN_NGAP_maxnoofRecommendedRANNodes (16) +#define ASN_NGAP_maxnoofAoI (64) +#define ASN_NGAP_maxnoofReportedCells (256) +#define ASN_NGAP_maxnoofSensorName (3) +#define ASN_NGAP_maxnoofServedGUAMIs (256) +#define ASN_NGAP_maxnoofSliceItems (1024) +#define ASN_NGAP_maxnoofSuccessfulHOReports (64) +#define ASN_NGAP_maxnoofTACs (256) +#define ASN_NGAP_maxnoofTACsinNTN (12) +#define ASN_NGAP_maxnoofTAforMDT (8) +#define ASN_NGAP_maxnoofTAIforInactive (16) +#define ASN_NGAP_maxnoofTAIforMBS (1024) +#define ASN_NGAP_maxnoofTAIforPaging (16) +#define ASN_NGAP_maxnoofTAIforRestart (2048) +#define ASN_NGAP_maxnoofTAIforWarning (65535) +#define ASN_NGAP_maxnoofTAIinAoI (16) +#define ASN_NGAP_maxnoofTimePeriods (2) +#define ASN_NGAP_maxnoofTNLAssociations (32) +#define ASN_NGAP_maxnoofUEsforPaging (4096) +#define ASN_NGAP_maxnoofWLANName (4) +#define ASN_NGAP_maxnoofXnExtTLAs (16) +#define ASN_NGAP_maxnoofXnGTP_TLAs (16) +#define ASN_NGAP_maxnoofXnTLAs (2) +#define ASN_NGAP_maxnoofCandidateCells (32) +#define ASN_NGAP_maxnoofTargetS_NSSAIs (8) +#define ASN_NGAP_maxNRARFCN (3279165) +#define ASN_NGAP_maxnoofCellIDforQMC (32) +#define ASN_NGAP_maxnoofPLMNforQMC (16) +#define ASN_NGAP_maxnoofUEAppLayerMeas (16) +#define ASN_NGAP_maxnoofSNSSAIforQMC (16) +#define ASN_NGAP_maxnoofTAforQMC (8) +#define ASN_NGAP_maxnoofThresholdsForExcessPacketDelay (255) +#define min_val_ASN_NGAP_AMF_UE_NGAP_ID (0) +#define max_val_ASN_NGAP_AMF_UE_NGAP_ID (1099511627775) +#define min_val_ASN_NGAP_Extended_ConnectedTime (0) +#define max_val_ASN_NGAP_Extended_ConnectedTime (255) +#define min_val_ASN_NGAP_ExtendedRNC_ID (4096) +#define max_val_ASN_NGAP_ExtendedRNC_ID (65535) +#define min_val_ASN_NGAP_Hysteresis (0) +#define max_val_ASN_NGAP_Hysteresis (30) +#define min_val_ASN_NGAP_IntersystemResourceThreshold (0) +#define max_val_ASN_NGAP_IntersystemResourceThreshold (100) +#define min_val_ASN_NGAP_NextHopChainingCount (0) +#define max_val_ASN_NGAP_NextHopChainingCount (7) +#define min_val_ASN_NGAP_NumberOfBroadcasts (0) +#define max_val_ASN_NGAP_NumberOfBroadcasts (65535) +#define min_val_ASN_NGAP_NumberOfBroadcastsRequested (0) +#define max_val_ASN_NGAP_NumberOfBroadcastsRequested (65535) +#define min_val_ASN_NGAP_NRARFCN (0) +#define max_val_ASN_NGAP_NRARFCN (3279165) +#define min_val_ASN_NGAP_PDUSessionID (0) +#define max_val_ASN_NGAP_PDUSessionID (255) +#define min_val_ASN_NGAP_PriorityLevelARP (1) +#define max_val_ASN_NGAP_PriorityLevelARP (15) +#define min_val_ASN_NGAP_RANPagingPriority (1) +#define max_val_ASN_NGAP_RANPagingPriority (256) +#define min_val_ASN_NGAP_RAN_UE_NGAP_ID (0) +#define max_val_ASN_NGAP_RAN_UE_NGAP_ID (4294967295) +#define min_val_ASN_NGAP_RelativeAMFCapacity (0) +#define max_val_ASN_NGAP_RelativeAMFCapacity (255) +#define min_val_ASN_NGAP_RepetitionPeriod (0) +#define max_val_ASN_NGAP_RepetitionPeriod (131071) +#define min_val_ASN_NGAP_RNC_ID (0) +#define max_val_ASN_NGAP_RNC_ID (4095) +#define min_val_ASN_NGAP_SgNB_UE_X2AP_ID (0) +#define max_val_ASN_NGAP_SgNB_UE_X2AP_ID (4294967295) +#define min_val_ASN_NGAP_TimeUEStayedInCell (0) +#define max_val_ASN_NGAP_TimeUEStayedInCell (4095) +#define min_val_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity (0) +#define max_val_ASN_NGAP_TimeUEStayedInCellEnhancedGranularity (40950) +#define min_val_ASN_NGAP_TNLAddressWeightFactor (0) +#define max_val_ASN_NGAP_TNLAddressWeightFactor (255) +#define min_val_ASN_NGAP_TrafficLoadReductionIndication (1) +#define max_val_ASN_NGAP_TrafficLoadReductionIndication (99) +#define min_val_ASN_NGAP_Threshold_RSRP (0) +#define max_val_ASN_NGAP_Threshold_RSRP (127) +#define min_val_ASN_NGAP_Threshold_RSRQ (0) +#define max_val_ASN_NGAP_Threshold_RSRQ (127) +#define min_val_ASN_NGAP_Threshold_SINR (0) +#define max_val_ASN_NGAP_Threshold_SINR (127) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_NGAP_ASN_CONSTANT_H */ diff --git a/src/asn/ngap/CMakeLists.txt b/src/asn/ngap/CMakeLists.txt new file mode 100644 index 0000000..c7db0be --- /dev/null +++ b/src/asn/ngap/CMakeLists.txt @@ -0,0 +1,5 @@ +file(GLOB HDR_FILES *.h) +file(GLOB SRC_FILES *.c) + +add_library(asn-ngap ${HDR_FILES} ${SRC_FILES}) +target_link_libraries(asn-ngap asn-asn1c) diff --git a/src/asn/rrc/ASN_RRC_AMF-Identifier.c b/src/asn/rrc/ASN_RRC_AMF-Identifier.c new file mode 100644 index 0000000..b4e472d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AMF-Identifier.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AMF-Identifier.h" + +int +ASN_RRC_AMF_Identifier_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_ASN_RRC_AMF_Identifier_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_ASN_RRC_AMF_Identifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AMF_Identifier = { + "AMF-Identifier", + "AMF-Identifier", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_AMF_Identifier_tags_1, + sizeof(asn_DEF_ASN_RRC_AMF_Identifier_tags_1) + /sizeof(asn_DEF_ASN_RRC_AMF_Identifier_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AMF_Identifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AMF_Identifier_tags_1) + /sizeof(asn_DEF_ASN_RRC_AMF_Identifier_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AMF_Identifier_constr_1, ASN_RRC_AMF_Identifier_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AMF-Identifier.h b/src/asn/rrc/ASN_RRC_AMF-Identifier.h new file mode 100644 index 0000000..503b192 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AMF-Identifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AMF_Identifier_H_ +#define _ASN_RRC_AMF_Identifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_AMF-Identifier */ +typedef BIT_STRING_t ASN_RRC_AMF_Identifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AMF_Identifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AMF_Identifier; +asn_struct_free_f ASN_RRC_AMF_Identifier_free; +asn_struct_print_f ASN_RRC_AMF_Identifier_print; +asn_constr_check_f ASN_RRC_AMF_Identifier_constraint; +ber_type_decoder_f ASN_RRC_AMF_Identifier_decode_ber; +der_type_encoder_f ASN_RRC_AMF_Identifier_encode_der; +xer_type_decoder_f ASN_RRC_AMF_Identifier_decode_xer; +xer_type_encoder_f ASN_RRC_AMF_Identifier_encode_xer; +per_type_decoder_f ASN_RRC_AMF_Identifier_decode_uper; +per_type_encoder_f ASN_RRC_AMF_Identifier_encode_uper; +per_type_decoder_f ASN_RRC_AMF_Identifier_decode_aper; +per_type_encoder_f ASN_RRC_AMF_Identifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AMF_Identifier_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.c b/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.c new file mode 100644 index 0000000..5fd1a7e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ARFCN-ValueEUTRA.h" + +int +ASN_RRC_ARFCN_ValueEUTRA_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_ASN_RRC_ARFCN_ValueEUTRA_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_ASN_RRC_ARFCN_ValueEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ARFCN_ValueEUTRA = { + "ARFCN-ValueEUTRA", + "ARFCN-ValueEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ARFCN_ValueEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ARFCN_ValueEUTRA_constr_1, ASN_RRC_ARFCN_ValueEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.h b/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.h new file mode 100644 index 0000000..189539c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ARFCN-ValueEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ARFCN_ValueEUTRA_H_ +#define _ASN_RRC_ARFCN_ValueEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ARFCN-ValueEUTRA */ +typedef long ASN_RRC_ARFCN_ValueEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ARFCN_ValueEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ARFCN_ValueEUTRA; +asn_struct_free_f ASN_RRC_ARFCN_ValueEUTRA_free; +asn_struct_print_f ASN_RRC_ARFCN_ValueEUTRA_print; +asn_constr_check_f ASN_RRC_ARFCN_ValueEUTRA_constraint; +ber_type_decoder_f ASN_RRC_ARFCN_ValueEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_ARFCN_ValueEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_ARFCN_ValueEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_ARFCN_ValueEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_ARFCN_ValueEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_ARFCN_ValueEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_ARFCN_ValueEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_ARFCN_ValueEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ARFCN_ValueEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.c b/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.c new file mode 100644 index 0000000..8f0caff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ARFCN-ValueNR.h" + +int +ASN_RRC_ARFCN_ValueNR_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 <= 3279165)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ARFCN_ValueNR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 22, -1, 0, 3279165 } /* (0..3279165) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ARFCN_ValueNR = { + "ARFCN-ValueNR", + "ARFCN-ValueNR", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1, + sizeof(asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ARFCN_ValueNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ARFCN_ValueNR_constr_1, ASN_RRC_ARFCN_ValueNR_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.h b/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.h new file mode 100644 index 0000000..2ce78e7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ARFCN-ValueNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ARFCN_ValueNR_H_ +#define _ASN_RRC_ARFCN_ValueNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ARFCN-ValueNR */ +typedef long ASN_RRC_ARFCN_ValueNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ARFCN_ValueNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ARFCN_ValueNR; +asn_struct_free_f ASN_RRC_ARFCN_ValueNR_free; +asn_struct_print_f ASN_RRC_ARFCN_ValueNR_print; +asn_constr_check_f ASN_RRC_ARFCN_ValueNR_constraint; +ber_type_decoder_f ASN_RRC_ARFCN_ValueNR_decode_ber; +der_type_encoder_f ASN_RRC_ARFCN_ValueNR_encode_der; +xer_type_decoder_f ASN_RRC_ARFCN_ValueNR_decode_xer; +xer_type_encoder_f ASN_RRC_ARFCN_ValueNR_encode_xer; +per_type_decoder_f ASN_RRC_ARFCN_ValueNR_decode_uper; +per_type_encoder_f ASN_RRC_ARFCN_ValueNR_encode_uper; +per_type_decoder_f ASN_RRC_ARFCN_ValueNR_decode_aper; +per_type_encoder_f ASN_RRC_ARFCN_ValueNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ARFCN_ValueNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AS-Config.c b/src/asn/rrc/ASN_RRC_AS-Config.c new file mode 100644 index 0000000..3f5ee12 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AS-Config.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AS-Config.h" + +static int +memb_ASN_RRC_sourceRB_SN_Config_constraint_4(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_sourceSCG_NR_Config_constraint_4(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_rrcReconfiguration_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sourceRB_SN_Config_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sourceSCG_NR_Config_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rrcReconfiguration_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_4[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_AS_Config__ext1, sourceRB_SN_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sourceRB_SN_Config_constr_5, memb_ASN_RRC_sourceRB_SN_Config_constraint_4 }, + 0, 0, /* No default value */ + "sourceRB-SN-Config" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_AS_Config__ext1, sourceSCG_NR_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sourceSCG_NR_Config_constr_6, memb_ASN_RRC_sourceSCG_NR_Config_constraint_4 }, + 0, 0, /* No default value */ + "sourceSCG-NR-Config" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Config__ext1, sourceSCG_EUTRA_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceSCG-EUTRA-Config" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_4[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourceRB-SN-Config */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sourceSCG-NR-Config */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sourceSCG-EUTRA-Config */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_4 = { + sizeof(struct ASN_RRC_AS_Config__ext1), + offsetof(struct ASN_RRC_AS_Config__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_4, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_4, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_4 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_4, + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_4, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_AS_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_AS_Config, rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_rrcReconfiguration_constr_2, memb_ASN_RRC_rrcReconfiguration_constraint_1 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Config, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_AS_Config_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_AS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_AS_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReconfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AS_Config_specs_1 = { + sizeof(struct ASN_RRC_AS_Config), + offsetof(struct ASN_RRC_AS_Config, _asn_ctx), + asn_MAP_ASN_RRC_AS_Config_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_AS_Config_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AS_Config = { + "AS-Config", + "AS-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_AS_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_AS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_AS_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_AS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_AS_Config_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_AS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AS-Config.h b/src/asn/rrc/ASN_RRC_AS-Config.h new file mode 100644 index 0000000..0bc5778 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AS-Config.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AS_Config_H_ +#define _ASN_RRC_AS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_AS-Config */ +typedef struct ASN_RRC_AS_Config { + OCTET_STRING_t rrcReconfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_AS_Config__ext1 { + OCTET_STRING_t *sourceRB_SN_Config; /* OPTIONAL */ + OCTET_STRING_t *sourceSCG_NR_Config; /* OPTIONAL */ + OCTET_STRING_t *sourceSCG_EUTRA_Config; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_AS_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_AS_Config_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AS_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AS-Context.c b/src/asn/rrc/ASN_RRC_AS-Context.c new file mode 100644 index 0000000..f3e0c39 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AS-Context.c @@ -0,0 +1,257 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AS-Context.h" + +#include "ASN_RRC_ReestablishmentInfo.h" +#include "ASN_RRC_ConfigRestrictInfoSCG.h" +#include "ASN_RRC_RAN-NotificationAreaInfo.h" +#include "ASN_RRC_BandCombinationInfoSN.h" +static int +memb_ASN_RRC_ueAssistanceInformation_constraint_7(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ueAssistanceInformation_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Context__ext1, ran_NotificationAreaInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAN_NotificationAreaInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-NotificationAreaInfo" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ran-NotificationAreaInfo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_AS_Context__ext1), + offsetof(struct ASN_RRC_AS_Context__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_7[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Context__ext2, ueAssistanceInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ueAssistanceInformation_constr_8, memb_ASN_RRC_ueAssistanceInformation_constraint_7 }, + 0, 0, /* No default value */ + "ueAssistanceInformation" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_7[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ueAssistanceInformation */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_7 = { + sizeof(struct ASN_RRC_AS_Context__ext2), + offsetof(struct ASN_RRC_AS_Context__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_7, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_7, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_7 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_7, + sizeof(asn_DEF_ASN_RRC_ext2_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_7, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_9[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Context__ext3, selectedBandCombinationSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationInfoSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedBandCombinationSN" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_9[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* selectedBandCombinationSN */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_9 = { + sizeof(struct ASN_RRC_AS_Context__ext3), + offsetof(struct ASN_RRC_AS_Context__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_9, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_9 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_9, + sizeof(asn_DEF_ASN_RRC_ext3_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_9, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_AS_Context_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_AS_Context, reestablishmentInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReestablishmentInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishmentInfo" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_AS_Context, configRestrictInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ConfigRestrictInfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictInfo" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_AS_Context, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_AS_Context, ext2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AS_Context, ext3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_AS_Context_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_AS_Context_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_AS_Context_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reestablishmentInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* configRestrictInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AS_Context_specs_1 = { + sizeof(struct ASN_RRC_AS_Context), + offsetof(struct ASN_RRC_AS_Context, _asn_ctx), + asn_MAP_ASN_RRC_AS_Context_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_AS_Context_oms_1, /* Optional members */ + 2, 3, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AS_Context = { + "AS-Context", + "AS-Context", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_AS_Context_tags_1, + sizeof(asn_DEF_ASN_RRC_AS_Context_tags_1) + /sizeof(asn_DEF_ASN_RRC_AS_Context_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AS_Context_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AS_Context_tags_1) + /sizeof(asn_DEF_ASN_RRC_AS_Context_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_AS_Context_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_AS_Context_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AS-Context.h b/src/asn/rrc/ASN_RRC_AS-Context.h new file mode 100644 index 0000000..777f40a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AS-Context.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AS_Context_H_ +#define _ASN_RRC_AS_Context_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ReestablishmentInfo; +struct ASN_RRC_ConfigRestrictInfoSCG; +struct ASN_RRC_RAN_NotificationAreaInfo; +struct ASN_RRC_BandCombinationInfoSN; + +/* ASN_RRC_AS-Context */ +typedef struct ASN_RRC_AS_Context { + struct ASN_RRC_ReestablishmentInfo *reestablishmentInfo; /* OPTIONAL */ + struct ASN_RRC_ConfigRestrictInfoSCG *configRestrictInfo; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_AS_Context__ext1 { + struct ASN_RRC_RAN_NotificationAreaInfo *ran_NotificationAreaInfo; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_AS_Context__ext2 { + OCTET_STRING_t *ueAssistanceInformation; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_AS_Context__ext3 { + struct ASN_RRC_BandCombinationInfoSN *selectedBandCombinationSN; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_AS_Context_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AS_Context; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AS_Context_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_AS_Context_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AS_Context_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AccessStratumRelease.c b/src/asn/rrc/ASN_RRC_AccessStratumRelease.c new file mode 100644 index 0000000..bd22483 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AccessStratumRelease.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AccessStratumRelease.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_AccessStratumRelease_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_ASN_RRC_AccessStratumRelease_value2enum_1[] = { + { 0, 5, "rel15" }, + { 1, 6, "spare7" }, + { 2, 6, "spare6" }, + { 3, 6, "spare5" }, + { 4, 6, "spare4" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_AccessStratumRelease_enum2value_1[] = { + 0, /* rel15(0) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* spare3(5) */ + 4, /* spare4(4) */ + 3, /* spare5(3) */ + 2, /* spare6(2) */ + 1 /* spare7(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_AccessStratumRelease_specs_1 = { + asn_MAP_ASN_RRC_AccessStratumRelease_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_AccessStratumRelease_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_ASN_RRC_AccessStratumRelease_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AccessStratumRelease = { + "AccessStratumRelease", + "AccessStratumRelease", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_AccessStratumRelease_tags_1, + sizeof(asn_DEF_ASN_RRC_AccessStratumRelease_tags_1) + /sizeof(asn_DEF_ASN_RRC_AccessStratumRelease_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AccessStratumRelease_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AccessStratumRelease_tags_1) + /sizeof(asn_DEF_ASN_RRC_AccessStratumRelease_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AccessStratumRelease_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_AccessStratumRelease_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AccessStratumRelease.h b/src/asn/rrc/ASN_RRC_AccessStratumRelease.h new file mode 100644 index 0000000..ae83420 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AccessStratumRelease.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AccessStratumRelease_H_ +#define _ASN_RRC_AccessStratumRelease_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_AccessStratumRelease { + ASN_RRC_AccessStratumRelease_rel15 = 0, + ASN_RRC_AccessStratumRelease_spare7 = 1, + ASN_RRC_AccessStratumRelease_spare6 = 2, + ASN_RRC_AccessStratumRelease_spare5 = 3, + ASN_RRC_AccessStratumRelease_spare4 = 4, + ASN_RRC_AccessStratumRelease_spare3 = 5, + ASN_RRC_AccessStratumRelease_spare2 = 6, + ASN_RRC_AccessStratumRelease_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_AccessStratumRelease; + +/* ASN_RRC_AccessStratumRelease */ +typedef long ASN_RRC_AccessStratumRelease_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AccessStratumRelease_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AccessStratumRelease; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_AccessStratumRelease_specs_1; +asn_struct_free_f ASN_RRC_AccessStratumRelease_free; +asn_struct_print_f ASN_RRC_AccessStratumRelease_print; +asn_constr_check_f ASN_RRC_AccessStratumRelease_constraint; +ber_type_decoder_f ASN_RRC_AccessStratumRelease_decode_ber; +der_type_encoder_f ASN_RRC_AccessStratumRelease_encode_der; +xer_type_decoder_f ASN_RRC_AccessStratumRelease_decode_xer; +xer_type_encoder_f ASN_RRC_AccessStratumRelease_encode_xer; +per_type_decoder_f ASN_RRC_AccessStratumRelease_decode_uper; +per_type_encoder_f ASN_RRC_AccessStratumRelease_encode_uper; +per_type_decoder_f ASN_RRC_AccessStratumRelease_decode_aper; +per_type_encoder_f ASN_RRC_AccessStratumRelease_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AccessStratumRelease_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.c b/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.c new file mode 100644 index 0000000..3e6cfe7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AdditionalSpectrumEmission.h" + +int +ASN_RRC_AdditionalSpectrumEmission_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_ASN_RRC_AdditionalSpectrumEmission_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_ASN_RRC_AdditionalSpectrumEmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AdditionalSpectrumEmission = { + "AdditionalSpectrumEmission", + "AdditionalSpectrumEmission", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1, + sizeof(asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AdditionalSpectrumEmission_constr_1, ASN_RRC_AdditionalSpectrumEmission_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.h b/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.h new file mode 100644 index 0000000..892ea46 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AdditionalSpectrumEmission.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AdditionalSpectrumEmission_H_ +#define _ASN_RRC_AdditionalSpectrumEmission_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_AdditionalSpectrumEmission */ +typedef long ASN_RRC_AdditionalSpectrumEmission_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AdditionalSpectrumEmission_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AdditionalSpectrumEmission; +asn_struct_free_f ASN_RRC_AdditionalSpectrumEmission_free; +asn_struct_print_f ASN_RRC_AdditionalSpectrumEmission_print; +asn_constr_check_f ASN_RRC_AdditionalSpectrumEmission_constraint; +ber_type_decoder_f ASN_RRC_AdditionalSpectrumEmission_decode_ber; +der_type_encoder_f ASN_RRC_AdditionalSpectrumEmission_encode_der; +xer_type_decoder_f ASN_RRC_AdditionalSpectrumEmission_decode_xer; +xer_type_encoder_f ASN_RRC_AdditionalSpectrumEmission_encode_xer; +per_type_decoder_f ASN_RRC_AdditionalSpectrumEmission_decode_uper; +per_type_encoder_f ASN_RRC_AdditionalSpectrumEmission_encode_uper; +per_type_decoder_f ASN_RRC_AdditionalSpectrumEmission_decode_aper; +per_type_encoder_f ASN_RRC_AdditionalSpectrumEmission_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AdditionalSpectrumEmission_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.c b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.c new file mode 100644 index 0000000..1e2a021 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AffectedCarrierFreqCombEUTRA.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_AffectedCarrierFreqCombEUTRA_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_ASN_RRC_AffectedCarrierFreqCombEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombEUTRA_specs_1 = { + sizeof(struct ASN_RRC_AffectedCarrierFreqCombEUTRA), + offsetof(struct ASN_RRC_AffectedCarrierFreqCombEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA = { + "AffectedCarrierFreqCombEUTRA", + "AffectedCarrierFreqCombEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AffectedCarrierFreqCombEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_AffectedCarrierFreqCombEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_AffectedCarrierFreqCombEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.h b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.h new file mode 100644 index 0000000..52a80ed --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombEUTRA.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AffectedCarrierFreqCombEUTRA_H_ +#define _ASN_RRC_AffectedCarrierFreqCombEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_AffectedCarrierFreqCombEUTRA */ +typedef struct ASN_RRC_AffectedCarrierFreqCombEUTRA { + A_SEQUENCE_OF(ASN_RRC_ARFCN_ValueEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_AffectedCarrierFreqCombEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_AffectedCarrierFreqCombEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AffectedCarrierFreqCombEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AffectedCarrierFreqCombEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.c b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.c new file mode 100644 index 0000000..ca80d20 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h" + +#include "ASN_RRC_AffectedCarrierFreqCombEUTRA.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_interferenceDirectionMRDC_constr_3 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_ASN_RRC_interferenceDirectionMRDC_value2enum_3[] = { + { 0, 8, "eutra-nr" }, + { 1, 2, "nr" }, + { 2, 5, "other" }, + { 3, 13, "utra-nr-other" }, + { 4, 8, "nr-other" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_interferenceDirectionMRDC_enum2value_3[] = { + 0, /* eutra-nr(0) */ + 1, /* nr(1) */ + 4, /* nr-other(4) */ + 2, /* other(2) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* spare3(5) */ + 3 /* utra-nr-other(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_interferenceDirectionMRDC_specs_3 = { + asn_MAP_ASN_RRC_interferenceDirectionMRDC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_interferenceDirectionMRDC_enum2value_3, /* 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_ASN_RRC_interferenceDirectionMRDC_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_ASN_RRC_interferenceDirectionMRDC_3 = { + "interferenceDirectionMRDC", + "interferenceDirectionMRDC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3, + sizeof(asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3) + /sizeof(asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3) + /sizeof(asn_DEF_ASN_RRC_interferenceDirectionMRDC_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_interferenceDirectionMRDC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_interferenceDirectionMRDC_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_affectedCarrierFreqCombMRDC_12[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, affectedCarrierFreqCombEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AffectedCarrierFreqCombEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, affectedCarrierFreqCombNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombNR" + }, +}; +static const int asn_MAP_ASN_RRC_affectedCarrierFreqCombMRDC_oms_12[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_affectedCarrierFreqCombMRDC_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* affectedCarrierFreqCombEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* affectedCarrierFreqCombNR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_affectedCarrierFreqCombMRDC_specs_12 = { + sizeof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC), + offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, _asn_ctx), + asn_MAP_ASN_RRC_affectedCarrierFreqCombMRDC_tag2el_12, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_affectedCarrierFreqCombMRDC_oms_12, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_12 = { + "affectedCarrierFreqCombMRDC", + "affectedCarrierFreqCombMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12, + sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12) + /sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12) + /sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_affectedCarrierFreqCombMRDC_12, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_affectedCarrierFreqCombMRDC_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC, victimSystemType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_VictimSystemType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "victimSystemType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC, interferenceDirectionMRDC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_interferenceDirectionMRDC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interferenceDirectionMRDC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC, affectedCarrierFreqCombMRDC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_affectedCarrierFreqCombMRDC_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombMRDC" + }, +}; +static const int asn_MAP_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* victimSystemType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interferenceDirectionMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* affectedCarrierFreqCombMRDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_specs_1 = { + sizeof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC), + offsetof(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC, _asn_ctx), + asn_MAP_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC = { + "AffectedCarrierFreqCombInfoMRDC", + "AffectedCarrierFreqCombInfoMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h new file mode 100644 index 0000000..7666cbc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AffectedCarrierFreqCombInfoMRDC_H_ +#define _ASN_RRC_AffectedCarrierFreqCombInfoMRDC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_VictimSystemType.h" +#include +#include "ASN_RRC_AffectedCarrierFreqCombNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC { + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_eutra_nr = 0, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_nr = 1, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_other = 2, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_utra_nr_other = 3, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_nr_other = 4, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare3 = 5, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare2 = 6, + ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare1 = 7 +} e_ASN_RRC_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC; + +/* Forward declarations */ +struct ASN_RRC_AffectedCarrierFreqCombEUTRA; + +/* ASN_RRC_AffectedCarrierFreqCombInfoMRDC */ +typedef struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC { + ASN_RRC_VictimSystemType_t victimSystemType; + long interferenceDirectionMRDC; + struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC { + struct ASN_RRC_AffectedCarrierFreqCombEUTRA *affectedCarrierFreqCombEUTRA; /* OPTIONAL */ + ASN_RRC_AffectedCarrierFreqCombNR_t affectedCarrierFreqCombNR; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *affectedCarrierFreqCombMRDC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_AffectedCarrierFreqCombInfoMRDC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interferenceDirectionMRDC_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_AffectedCarrierFreqCombInfoMRDC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AffectedCarrierFreqCombInfoMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.c b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.c new file mode 100644 index 0000000..e0483f9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AffectedCarrierFreqCombNR.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_AffectedCarrierFreqCombNR_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_ASN_RRC_AffectedCarrierFreqCombNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombNR_specs_1 = { + sizeof(struct ASN_RRC_AffectedCarrierFreqCombNR), + offsetof(struct ASN_RRC_AffectedCarrierFreqCombNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR = { + "AffectedCarrierFreqCombNR", + "AffectedCarrierFreqCombNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1, + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AffectedCarrierFreqCombNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_AffectedCarrierFreqCombNR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_AffectedCarrierFreqCombNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.h b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.h new file mode 100644 index 0000000..724c355 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AffectedCarrierFreqCombNR.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AffectedCarrierFreqCombNR_H_ +#define _ASN_RRC_AffectedCarrierFreqCombNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_AffectedCarrierFreqCombNR */ +typedef struct ASN_RRC_AffectedCarrierFreqCombNR { + A_SEQUENCE_OF(ASN_RRC_ARFCN_ValueNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_AffectedCarrierFreqCombNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AffectedCarrierFreqCombNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_AffectedCarrierFreqCombNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_AffectedCarrierFreqCombNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AffectedCarrierFreqCombNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AffectedCarrierFreqCombNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_AggregatedBandwidth.c b/src/asn/rrc/ASN_RRC_AggregatedBandwidth.c new file mode 100644 index 0000000..01661e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AggregatedBandwidth.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_AggregatedBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_AggregatedBandwidth_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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_AggregatedBandwidth_value2enum_1[] = { + { 0, 5, "mhz50" }, + { 1, 6, "mhz100" }, + { 2, 6, "mhz150" }, + { 3, 6, "mhz200" }, + { 4, 6, "mhz250" }, + { 5, 6, "mhz300" }, + { 6, 6, "mhz350" }, + { 7, 6, "mhz400" }, + { 8, 6, "mhz450" }, + { 9, 6, "mhz500" }, + { 10, 6, "mhz550" }, + { 11, 6, "mhz600" }, + { 12, 6, "mhz650" }, + { 13, 6, "mhz700" }, + { 14, 6, "mhz750" }, + { 15, 6, "mhz800" } +}; +static const unsigned int asn_MAP_ASN_RRC_AggregatedBandwidth_enum2value_1[] = { + 1, /* mhz100(1) */ + 2, /* mhz150(2) */ + 3, /* mhz200(3) */ + 4, /* mhz250(4) */ + 5, /* mhz300(5) */ + 6, /* mhz350(6) */ + 7, /* mhz400(7) */ + 8, /* mhz450(8) */ + 0, /* mhz50(0) */ + 9, /* mhz500(9) */ + 10, /* mhz550(10) */ + 11, /* mhz600(11) */ + 12, /* mhz650(12) */ + 13, /* mhz700(13) */ + 14, /* mhz750(14) */ + 15 /* mhz800(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_AggregatedBandwidth_specs_1 = { + asn_MAP_ASN_RRC_AggregatedBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_AggregatedBandwidth_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_AggregatedBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AggregatedBandwidth = { + "AggregatedBandwidth", + "AggregatedBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1, + sizeof(asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_AggregatedBandwidth_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_AggregatedBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_AggregatedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_AggregatedBandwidth.h b/src/asn/rrc/ASN_RRC_AggregatedBandwidth.h new file mode 100644 index 0000000..4d2a9f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_AggregatedBandwidth.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_AggregatedBandwidth_H_ +#define _ASN_RRC_AggregatedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_AggregatedBandwidth { + ASN_RRC_AggregatedBandwidth_mhz50 = 0, + ASN_RRC_AggregatedBandwidth_mhz100 = 1, + ASN_RRC_AggregatedBandwidth_mhz150 = 2, + ASN_RRC_AggregatedBandwidth_mhz200 = 3, + ASN_RRC_AggregatedBandwidth_mhz250 = 4, + ASN_RRC_AggregatedBandwidth_mhz300 = 5, + ASN_RRC_AggregatedBandwidth_mhz350 = 6, + ASN_RRC_AggregatedBandwidth_mhz400 = 7, + ASN_RRC_AggregatedBandwidth_mhz450 = 8, + ASN_RRC_AggregatedBandwidth_mhz500 = 9, + ASN_RRC_AggregatedBandwidth_mhz550 = 10, + ASN_RRC_AggregatedBandwidth_mhz600 = 11, + ASN_RRC_AggregatedBandwidth_mhz650 = 12, + ASN_RRC_AggregatedBandwidth_mhz700 = 13, + ASN_RRC_AggregatedBandwidth_mhz750 = 14, + ASN_RRC_AggregatedBandwidth_mhz800 = 15 +} e_ASN_RRC_AggregatedBandwidth; + +/* ASN_RRC_AggregatedBandwidth */ +typedef long ASN_RRC_AggregatedBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_AggregatedBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_AggregatedBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_AggregatedBandwidth_specs_1; +asn_struct_free_f ASN_RRC_AggregatedBandwidth_free; +asn_struct_print_f ASN_RRC_AggregatedBandwidth_print; +asn_constr_check_f ASN_RRC_AggregatedBandwidth_constraint; +ber_type_decoder_f ASN_RRC_AggregatedBandwidth_decode_ber; +der_type_encoder_f ASN_RRC_AggregatedBandwidth_encode_der; +xer_type_decoder_f ASN_RRC_AggregatedBandwidth_decode_xer; +xer_type_encoder_f ASN_RRC_AggregatedBandwidth_encode_xer; +per_type_decoder_f ASN_RRC_AggregatedBandwidth_decode_uper; +per_type_encoder_f ASN_RRC_AggregatedBandwidth_encode_uper; +per_type_decoder_f ASN_RRC_AggregatedBandwidth_decode_aper; +per_type_encoder_f ASN_RRC_AggregatedBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_AggregatedBandwidth_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Alpha.c b/src/asn/rrc/ASN_RRC_Alpha.c new file mode 100644 index 0000000..ee29650 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Alpha.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Alpha.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_Alpha_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_ASN_RRC_Alpha_value2enum_1[] = { + { 0, 6, "alpha0" }, + { 1, 7, "alpha04" }, + { 2, 7, "alpha05" }, + { 3, 7, "alpha06" }, + { 4, 7, "alpha07" }, + { 5, 7, "alpha08" }, + { 6, 7, "alpha09" }, + { 7, 6, "alpha1" } +}; +static const unsigned int asn_MAP_ASN_RRC_Alpha_enum2value_1[] = { + 0, /* alpha0(0) */ + 1, /* alpha04(1) */ + 2, /* alpha05(2) */ + 3, /* alpha06(3) */ + 4, /* alpha07(4) */ + 5, /* alpha08(5) */ + 6, /* alpha09(6) */ + 7 /* alpha1(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_Alpha_specs_1 = { + asn_MAP_ASN_RRC_Alpha_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_Alpha_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_ASN_RRC_Alpha_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Alpha = { + "Alpha", + "Alpha", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_Alpha_tags_1, + sizeof(asn_DEF_ASN_RRC_Alpha_tags_1) + /sizeof(asn_DEF_ASN_RRC_Alpha_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Alpha_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Alpha_tags_1) + /sizeof(asn_DEF_ASN_RRC_Alpha_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_Alpha_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_Alpha_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Alpha.h b/src/asn/rrc/ASN_RRC_Alpha.h new file mode 100644 index 0000000..0fb5c88 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Alpha.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Alpha_H_ +#define _ASN_RRC_Alpha_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Alpha { + ASN_RRC_Alpha_alpha0 = 0, + ASN_RRC_Alpha_alpha04 = 1, + ASN_RRC_Alpha_alpha05 = 2, + ASN_RRC_Alpha_alpha06 = 3, + ASN_RRC_Alpha_alpha07 = 4, + ASN_RRC_Alpha_alpha08 = 5, + ASN_RRC_Alpha_alpha09 = 6, + ASN_RRC_Alpha_alpha1 = 7 +} e_ASN_RRC_Alpha; + +/* ASN_RRC_Alpha */ +typedef long ASN_RRC_Alpha_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_Alpha_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Alpha; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_Alpha_specs_1; +asn_struct_free_f ASN_RRC_Alpha_free; +asn_struct_print_f ASN_RRC_Alpha_print; +asn_constr_check_f ASN_RRC_Alpha_constraint; +ber_type_decoder_f ASN_RRC_Alpha_decode_ber; +der_type_encoder_f ASN_RRC_Alpha_encode_der; +xer_type_decoder_f ASN_RRC_Alpha_decode_xer; +xer_type_encoder_f ASN_RRC_Alpha_encode_xer; +per_type_decoder_f ASN_RRC_Alpha_decode_uper; +per_type_encoder_f ASN_RRC_Alpha_encode_uper; +per_type_decoder_f ASN_RRC_Alpha_decode_aper; +per_type_encoder_f ASN_RRC_Alpha_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Alpha_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.c b/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.c new file mode 100644 index 0000000..2f31efb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BCCH-BCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_BCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BCCH_BCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BCCH_BCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BCCH_BCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BCCH_BCH_Message_specs_1 = { + sizeof(struct ASN_RRC_BCCH_BCH_Message), + offsetof(struct ASN_RRC_BCCH_BCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_BCCH_BCH_Message_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_ASN_RRC_BCCH_BCH_Message = { + "BCCH-BCH-Message", + "BCCH-BCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_BCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BCCH_BCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_BCCH_BCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.h b/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.h new file mode 100644 index 0000000..2d91f96 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-BCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BCCH_BCH_Message_H_ +#define _ASN_RRC_BCCH_BCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BCCH-BCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BCCH-BCH-Message */ +typedef struct ASN_RRC_BCCH_BCH_Message { + ASN_RRC_BCCH_BCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BCCH_BCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_BCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BCCH_BCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.c b/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.c new file mode 100644 index 0000000..c93d6a6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BCCH-BCH-MessageType.h" + +#include "ASN_RRC_MIB.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BCCH_BCH_MessageType_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 ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_3 = { + sizeof(struct ASN_RRC_BCCH_BCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_BCCH_BCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_3 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_BCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_BCH_MessageType, choice.mib), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mib" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_BCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BCCH_BCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mib */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BCCH_BCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_BCCH_BCH_MessageType), + offsetof(struct ASN_RRC_BCCH_BCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_BCCH_BCH_MessageType, present), + sizeof(((struct ASN_RRC_BCCH_BCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_BCCH_BCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_BCH_MessageType = { + "BCCH-BCH-MessageType", + "BCCH-BCH-MessageType", + &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_ASN_RRC_BCCH_BCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_BCCH_BCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BCCH_BCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.h b/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.h new file mode 100644 index 0000000..f19e988 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-BCH-MessageType.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BCCH_BCH_MessageType_H_ +#define _ASN_RRC_BCCH_BCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BCCH_BCH_MessageType_PR { + ASN_RRC_BCCH_BCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_BCCH_BCH_MessageType_PR_mib, + ASN_RRC_BCCH_BCH_MessageType_PR_messageClassExtension +} ASN_RRC_BCCH_BCH_MessageType_PR; + +/* Forward declarations */ +struct ASN_RRC_MIB; + +/* ASN_RRC_BCCH-BCH-MessageType */ +typedef struct ASN_RRC_BCCH_BCH_MessageType { + ASN_RRC_BCCH_BCH_MessageType_PR present; + union ASN_RRC_BCCH_BCH_MessageType_u { + struct ASN_RRC_MIB *mib; + struct ASN_RRC_BCCH_BCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BCCH_BCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_BCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BCCH_BCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_BCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BCCH_BCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BCCH_BCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BCCH-Config.c b/src/asn/rrc/ASN_RRC_BCCH-Config.c new file mode 100644 index 0000000..dede959 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-Config.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BCCH-Config.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_modificationPeriodCoeff_constr_2 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_ASN_RRC_modificationPeriodCoeff_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_modificationPeriodCoeff_enum2value_2[] = { + 3, /* n16(3) */ + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_modificationPeriodCoeff_specs_2 = { + asn_MAP_ASN_RRC_modificationPeriodCoeff_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_modificationPeriodCoeff_enum2value_2, /* 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_ASN_RRC_modificationPeriodCoeff_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_ASN_RRC_modificationPeriodCoeff_2 = { + "modificationPeriodCoeff", + "modificationPeriodCoeff", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2, + sizeof(asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2) + /sizeof(asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2) + /sizeof(asn_DEF_ASN_RRC_modificationPeriodCoeff_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_modificationPeriodCoeff_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_modificationPeriodCoeff_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BCCH_Config, modificationPeriodCoeff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_modificationPeriodCoeff_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "modificationPeriodCoeff" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* modificationPeriodCoeff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BCCH_Config_specs_1 = { + sizeof(struct ASN_RRC_BCCH_Config), + offsetof(struct ASN_RRC_BCCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_BCCH_Config_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_ASN_RRC_BCCH_Config = { + "BCCH-Config", + "BCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BCCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_BCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BCCH_Config_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_BCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BCCH-Config.h b/src/asn/rrc/ASN_RRC_BCCH-Config.h new file mode 100644 index 0000000..22008de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-Config.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BCCH_Config_H_ +#define _ASN_RRC_BCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BCCH_Config__modificationPeriodCoeff { + ASN_RRC_BCCH_Config__modificationPeriodCoeff_n2 = 0, + ASN_RRC_BCCH_Config__modificationPeriodCoeff_n4 = 1, + ASN_RRC_BCCH_Config__modificationPeriodCoeff_n8 = 2, + ASN_RRC_BCCH_Config__modificationPeriodCoeff_n16 = 3 +} e_ASN_RRC_BCCH_Config__modificationPeriodCoeff; + +/* ASN_RRC_BCCH-Config */ +typedef struct ASN_RRC_BCCH_Config { + long modificationPeriodCoeff; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BCCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_modificationPeriodCoeff_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_Config_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BCCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.c b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.c new file mode 100644 index 0000000..5d43a7c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BCCH-DL-SCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_DL_SCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BCCH_DL_SCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BCCH_DL_SCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BCCH_DL_SCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BCCH_DL_SCH_Message_specs_1 = { + sizeof(struct ASN_RRC_BCCH_DL_SCH_Message), + offsetof(struct ASN_RRC_BCCH_DL_SCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_BCCH_DL_SCH_Message_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_ASN_RRC_BCCH_DL_SCH_Message = { + "BCCH-DL-SCH-Message", + "BCCH-DL-SCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_BCCH_DL_SCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BCCH_DL_SCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_BCCH_DL_SCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.h b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.h new file mode 100644 index 0000000..ec8cebf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BCCH_DL_SCH_Message_H_ +#define _ASN_RRC_BCCH_DL_SCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BCCH-DL-SCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BCCH-DL-SCH-Message */ +typedef struct ASN_RRC_BCCH_DL_SCH_Message { + ASN_RRC_BCCH_DL_SCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BCCH_DL_SCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_DL_SCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BCCH_DL_SCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.c b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.c new file mode 100644 index 0000000..e2cd8b0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BCCH-DL-SCH-MessageType.h" + +#include "ASN_RRC_SystemInformation.h" +#include "ASN_RRC_SIB1.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_BCCH_DL_SCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType__c1, choice.systemInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SystemInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType__c1, choice.systemInformationBlockType1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformationBlockType1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* systemInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* systemInformationBlockType1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_BCCH_DL_SCH_MessageType__c1), + offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_BCCH_DL_SCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_5 = { + sizeof(struct ASN_RRC_BCCH_DL_SCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_5 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_DL_SCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BCCH_DL_SCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BCCH_DL_SCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_BCCH_DL_SCH_MessageType), + offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_BCCH_DL_SCH_MessageType, present), + sizeof(((struct ASN_RRC_BCCH_DL_SCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_BCCH_DL_SCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_DL_SCH_MessageType = { + "BCCH-DL-SCH-MessageType", + "BCCH-DL-SCH-MessageType", + &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_ASN_RRC_BCCH_DL_SCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_BCCH_DL_SCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BCCH_DL_SCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.h b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.h new file mode 100644 index 0000000..1f00089 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BCCH-DL-SCH-MessageType.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BCCH_DL_SCH_MessageType_H_ +#define _ASN_RRC_BCCH_DL_SCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BCCH_DL_SCH_MessageType_PR { + ASN_RRC_BCCH_DL_SCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_BCCH_DL_SCH_MessageType_PR_c1, + ASN_RRC_BCCH_DL_SCH_MessageType_PR_messageClassExtension +} ASN_RRC_BCCH_DL_SCH_MessageType_PR; +typedef enum ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR { + ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR_systemInformation, + ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1 +} ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_SystemInformation; +struct ASN_RRC_SIB1; + +/* ASN_RRC_BCCH-DL-SCH-MessageType */ +typedef struct ASN_RRC_BCCH_DL_SCH_MessageType { + ASN_RRC_BCCH_DL_SCH_MessageType_PR present; + union ASN_RRC_BCCH_DL_SCH_MessageType_u { + struct ASN_RRC_BCCH_DL_SCH_MessageType__c1 { + ASN_RRC_BCCH_DL_SCH_MessageType__c1_PR present; + union ASN_RRC_BCCH_DL_SCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_SystemInformation *systemInformation; + struct ASN_RRC_SIB1 *systemInformationBlockType1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_BCCH_DL_SCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BCCH_DL_SCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BCCH_DL_SCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BCCH_DL_SCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BCCH_DL_SCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BCCH_DL_SCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BCCH_DL_SCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.c b/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.c new file mode 100644 index 0000000..63890b6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BFR-CSIRS-Resource.h" + +static int +memb_NativeInteger_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ra_OccasionList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_ra_PreambleIndex_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_ASN_RRC_Member_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ra_OccasionList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_OccasionList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_5 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_ASN_RRC_ra_OccasionList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ra_OccasionList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ra_OccasionList_specs_3 = { + sizeof(struct ASN_RRC_BFR_CSIRS_Resource__ra_OccasionList), + offsetof(struct ASN_RRC_BFR_CSIRS_Resource__ra_OccasionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_OccasionList_3 = { + "ra-OccasionList", + "ra-OccasionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ra_OccasionList_tags_3, + sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_OccasionList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_OccasionList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ra_OccasionList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ra_OccasionList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BFR_CSIRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BFR_CSIRS_Resource, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BFR_CSIRS_Resource, ra_OccasionList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ra_OccasionList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_OccasionList_constr_3, memb_ASN_RRC_ra_OccasionList_constraint_1 }, + 0, 0, /* No default value */ + "ra-OccasionList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BFR_CSIRS_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_5, memb_ASN_RRC_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const int asn_MAP_ASN_RRC_BFR_CSIRS_Resource_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BFR_CSIRS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ra-OccasionList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ra-PreambleIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BFR_CSIRS_Resource_specs_1 = { + sizeof(struct ASN_RRC_BFR_CSIRS_Resource), + offsetof(struct ASN_RRC_BFR_CSIRS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_BFR_CSIRS_Resource_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BFR_CSIRS_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BFR_CSIRS_Resource = { + "BFR-CSIRS-Resource", + "BFR-CSIRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_BFR_CSIRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BFR_CSIRS_Resource_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BFR_CSIRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.h b/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.h new file mode 100644 index 0000000..6e5dc23 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BFR-CSIRS-Resource.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BFR_CSIRS_Resource_H_ +#define _ASN_RRC_BFR_CSIRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BFR-CSIRS-Resource */ +typedef struct ASN_RRC_BFR_CSIRS_Resource { + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS; + struct ASN_RRC_BFR_CSIRS_Resource__ra_OccasionList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ra_OccasionList; + long *ra_PreambleIndex; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BFR_CSIRS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BFR_CSIRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BFR_CSIRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BFR_CSIRS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BFR_CSIRS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.c b/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.c new file mode 100644 index 0000000..dafed53 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BFR-SSB-Resource.h" + +static int +memb_ASN_RRC_ra_PreambleIndex_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_ASN_RRC_ra_PreambleIndex_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BFR_SSB_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BFR_SSB_Resource, ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BFR_SSB_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_3, memb_ASN_RRC_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BFR_SSB_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ra-PreambleIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BFR_SSB_Resource_specs_1 = { + sizeof(struct ASN_RRC_BFR_SSB_Resource), + offsetof(struct ASN_RRC_BFR_SSB_Resource, _asn_ctx), + asn_MAP_ASN_RRC_BFR_SSB_Resource_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_ASN_RRC_BFR_SSB_Resource = { + "BFR-SSB-Resource", + "BFR-SSB-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_BFR_SSB_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BFR_SSB_Resource_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BFR_SSB_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.h b/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.h new file mode 100644 index 0000000..8e1a24c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BFR-SSB-Resource.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BFR_SSB_Resource_H_ +#define _ASN_RRC_BFR_SSB_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BFR-SSB-Resource */ +typedef struct ASN_RRC_BFR_SSB_Resource { + ASN_RRC_SSB_Index_t ssb; + long ra_PreambleIndex; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BFR_SSB_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BFR_SSB_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BFR_SSB_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BFR_SSB_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BFR_SSB_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BSR-Config.c b/src/asn/rrc/ASN_RRC_BSR-Config.c new file mode 100644 index 0000000..04475e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BSR-Config.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BSR-Config.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_ASN_RRC_periodicBSR_Timer_constr_2 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_type_ASN_RRC_retxBSR_Timer_constr_19 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_type_ASN_RRC_logicalChannelSR_DelayTimer_constr_36 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_ASN_RRC_periodicBSR_Timer_value2enum_2[] = { + { 0, 3, "sf1" }, + { 1, 3, "sf5" }, + { 2, 4, "sf10" }, + { 3, 4, "sf16" }, + { 4, 4, "sf20" }, + { 5, 4, "sf32" }, + { 6, 4, "sf40" }, + { 7, 4, "sf64" }, + { 8, 4, "sf80" }, + { 9, 5, "sf128" }, + { 10, 5, "sf160" }, + { 11, 5, "sf320" }, + { 12, 5, "sf640" }, + { 13, 6, "sf1280" }, + { 14, 6, "sf2560" }, + { 15, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicBSR_Timer_enum2value_2[] = { + 15, /* infinity(15) */ + 0, /* sf1(0) */ + 2, /* sf10(2) */ + 9, /* sf128(9) */ + 13, /* sf1280(13) */ + 3, /* sf16(3) */ + 10, /* sf160(10) */ + 4, /* sf20(4) */ + 14, /* sf2560(14) */ + 5, /* sf32(5) */ + 11, /* sf320(11) */ + 6, /* sf40(6) */ + 1, /* sf5(1) */ + 7, /* sf64(7) */ + 12, /* sf640(12) */ + 8 /* sf80(8) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicBSR_Timer_specs_2 = { + asn_MAP_ASN_RRC_periodicBSR_Timer_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicBSR_Timer_enum2value_2, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_periodicBSR_Timer_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_ASN_RRC_periodicBSR_Timer_2 = { + "periodicBSR-Timer", + "periodicBSR-Timer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2, + sizeof(asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2) + /sizeof(asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2) + /sizeof(asn_DEF_ASN_RRC_periodicBSR_Timer_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicBSR_Timer_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicBSR_Timer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_retxBSR_Timer_value2enum_19[] = { + { 0, 4, "sf10" }, + { 1, 4, "sf20" }, + { 2, 4, "sf40" }, + { 3, 4, "sf80" }, + { 4, 5, "sf160" }, + { 5, 5, "sf320" }, + { 6, 5, "sf640" }, + { 7, 6, "sf1280" }, + { 8, 6, "sf2560" }, + { 9, 6, "sf5120" }, + { 10, 7, "sf10240" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_retxBSR_Timer_enum2value_19[] = { + 0, /* sf10(0) */ + 10, /* sf10240(10) */ + 7, /* sf1280(7) */ + 4, /* sf160(4) */ + 1, /* sf20(1) */ + 8, /* sf2560(8) */ + 5, /* sf320(5) */ + 2, /* sf40(2) */ + 9, /* sf5120(9) */ + 6, /* sf640(6) */ + 3, /* sf80(3) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11 /* spare5(11) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_retxBSR_Timer_specs_19 = { + asn_MAP_ASN_RRC_retxBSR_Timer_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_retxBSR_Timer_enum2value_19, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_retxBSR_Timer_tags_19[] = { + (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_ASN_RRC_retxBSR_Timer_19 = { + "retxBSR-Timer", + "retxBSR-Timer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_retxBSR_Timer_tags_19, + sizeof(asn_DEF_ASN_RRC_retxBSR_Timer_tags_19) + /sizeof(asn_DEF_ASN_RRC_retxBSR_Timer_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_retxBSR_Timer_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_retxBSR_Timer_tags_19) + /sizeof(asn_DEF_ASN_RRC_retxBSR_Timer_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_retxBSR_Timer_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_retxBSR_Timer_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_value2enum_36[] = { + { 0, 4, "sf20" }, + { 1, 4, "sf40" }, + { 2, 4, "sf64" }, + { 3, 5, "sf128" }, + { 4, 5, "sf512" }, + { 5, 6, "sf1024" }, + { 6, 6, "sf2560" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_enum2value_36[] = { + 5, /* sf1024(5) */ + 3, /* sf128(3) */ + 0, /* sf20(0) */ + 6, /* sf2560(6) */ + 1, /* sf40(1) */ + 4, /* sf512(4) */ + 2, /* sf64(2) */ + 7 /* spare1(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_logicalChannelSR_DelayTimer_specs_36 = { + asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_enum2value_36, /* 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_ASN_RRC_logicalChannelSR_DelayTimer_tags_36[] = { + (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_ASN_RRC_logicalChannelSR_DelayTimer_36 = { + "logicalChannelSR-DelayTimer", + "logicalChannelSR-DelayTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36, + sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36) + /sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36) + /sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_36[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_logicalChannelSR_DelayTimer_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_logicalChannelSR_DelayTimer_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BSR_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BSR_Config, periodicBSR_Timer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicBSR_Timer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicBSR-Timer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BSR_Config, retxBSR_Timer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_retxBSR_Timer_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "retxBSR-Timer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BSR_Config, logicalChannelSR_DelayTimer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-DelayTimer" + }, +}; +static const int asn_MAP_ASN_RRC_BSR_Config_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BSR_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BSR_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicBSR-Timer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* retxBSR-Timer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* logicalChannelSR-DelayTimer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BSR_Config_specs_1 = { + sizeof(struct ASN_RRC_BSR_Config), + offsetof(struct ASN_RRC_BSR_Config, _asn_ctx), + asn_MAP_ASN_RRC_BSR_Config_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BSR_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BSR_Config = { + "BSR-Config", + "BSR-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BSR_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_BSR_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_BSR_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BSR_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BSR_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_BSR_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BSR_Config_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BSR_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BSR-Config.h b/src/asn/rrc/ASN_RRC_BSR-Config.h new file mode 100644 index 0000000..1a04411 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BSR-Config.h @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BSR_Config_H_ +#define _ASN_RRC_BSR_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BSR_Config__periodicBSR_Timer { + ASN_RRC_BSR_Config__periodicBSR_Timer_sf1 = 0, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf5 = 1, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf10 = 2, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf16 = 3, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf20 = 4, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf32 = 5, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf40 = 6, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf64 = 7, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf80 = 8, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf128 = 9, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf160 = 10, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf320 = 11, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf640 = 12, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf1280 = 13, + ASN_RRC_BSR_Config__periodicBSR_Timer_sf2560 = 14, + ASN_RRC_BSR_Config__periodicBSR_Timer_infinity = 15 +} e_ASN_RRC_BSR_Config__periodicBSR_Timer; +typedef enum ASN_RRC_BSR_Config__retxBSR_Timer { + ASN_RRC_BSR_Config__retxBSR_Timer_sf10 = 0, + ASN_RRC_BSR_Config__retxBSR_Timer_sf20 = 1, + ASN_RRC_BSR_Config__retxBSR_Timer_sf40 = 2, + ASN_RRC_BSR_Config__retxBSR_Timer_sf80 = 3, + ASN_RRC_BSR_Config__retxBSR_Timer_sf160 = 4, + ASN_RRC_BSR_Config__retxBSR_Timer_sf320 = 5, + ASN_RRC_BSR_Config__retxBSR_Timer_sf640 = 6, + ASN_RRC_BSR_Config__retxBSR_Timer_sf1280 = 7, + ASN_RRC_BSR_Config__retxBSR_Timer_sf2560 = 8, + ASN_RRC_BSR_Config__retxBSR_Timer_sf5120 = 9, + ASN_RRC_BSR_Config__retxBSR_Timer_sf10240 = 10, + ASN_RRC_BSR_Config__retxBSR_Timer_spare5 = 11, + ASN_RRC_BSR_Config__retxBSR_Timer_spare4 = 12, + ASN_RRC_BSR_Config__retxBSR_Timer_spare3 = 13, + ASN_RRC_BSR_Config__retxBSR_Timer_spare2 = 14, + ASN_RRC_BSR_Config__retxBSR_Timer_spare1 = 15 +} e_ASN_RRC_BSR_Config__retxBSR_Timer; +typedef enum ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer { + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf20 = 0, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf40 = 1, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf64 = 2, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf128 = 3, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf512 = 4, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf1024 = 5, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_sf2560 = 6, + ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer_spare1 = 7 +} e_ASN_RRC_BSR_Config__logicalChannelSR_DelayTimer; + +/* ASN_RRC_BSR-Config */ +typedef struct ASN_RRC_BSR_Config { + long periodicBSR_Timer; + long retxBSR_Timer; + long *logicalChannelSR_DelayTimer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BSR_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicBSR_Timer_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_retxBSR_Timer_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_36; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BSR_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BSR_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BSR_Config_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BSR_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-Downlink.c b/src/asn/rrc/ASN_RRC_BWP-Downlink.c new file mode 100644 index 0000000..b9ceb3d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Downlink.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-Downlink.h" + +#include "ASN_RRC_BWP-DownlinkCommon.h" +#include "ASN_RRC_BWP-DownlinkDedicated.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_Downlink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP_Downlink, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_Downlink, bwp_Common), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Common" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_Downlink, bwp_Dedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_DownlinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Dedicated" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_Downlink_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_Downlink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_Downlink_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bwp-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bwp-Common */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* bwp-Dedicated */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_Downlink_specs_1 = { + sizeof(struct ASN_RRC_BWP_Downlink), + offsetof(struct ASN_RRC_BWP_Downlink, _asn_ctx), + asn_MAP_ASN_RRC_BWP_Downlink_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_Downlink_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Downlink = { + "BWP-Downlink", + "BWP-Downlink", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_Downlink_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_Downlink_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Downlink_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_Downlink_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_Downlink_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Downlink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_Downlink_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_Downlink_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-Downlink.h b/src/asn/rrc/ASN_RRC_BWP-Downlink.h new file mode 100644 index 0000000..2109a77 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Downlink.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_Downlink_H_ +#define _ASN_RRC_BWP_Downlink_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BWP_DownlinkCommon; +struct ASN_RRC_BWP_DownlinkDedicated; + +/* ASN_RRC_BWP-Downlink */ +typedef struct ASN_RRC_BWP_Downlink { + ASN_RRC_BWP_Id_t bwp_Id; + struct ASN_RRC_BWP_DownlinkCommon *bwp_Common; /* OPTIONAL */ + struct ASN_RRC_BWP_DownlinkDedicated *bwp_Dedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_Downlink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Downlink; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_Downlink_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_Downlink_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_Downlink_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.c b/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.c new file mode 100644 index 0000000..10dcdb6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-DownlinkCommon.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_DownlinkCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP_DownlinkCommon, genericParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "genericParameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_DownlinkCommon, pdcch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_DownlinkCommon, pdsch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ConfigCommon" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_DownlinkCommon_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_DownlinkCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* genericParameters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdcch-ConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pdsch-ConfigCommon */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_DownlinkCommon_specs_1 = { + sizeof(struct ASN_RRC_BWP_DownlinkCommon), + offsetof(struct ASN_RRC_BWP_DownlinkCommon, _asn_ctx), + asn_MAP_ASN_RRC_BWP_DownlinkCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_DownlinkCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_DownlinkCommon = { + "BWP-DownlinkCommon", + "BWP-DownlinkCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_DownlinkCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_DownlinkCommon_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_DownlinkCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.h b/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.h new file mode 100644 index 0000000..9545cbd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-DownlinkCommon.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_DownlinkCommon_H_ +#define _ASN_RRC_BWP_DownlinkCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon; +struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon; + +/* ASN_RRC_BWP-DownlinkCommon */ +typedef struct ASN_RRC_BWP_DownlinkCommon { + ASN_RRC_BWP_t genericParameters; + struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon *pdcch_ConfigCommon; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon *pdsch_ConfigCommon; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_DownlinkCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_DownlinkCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_DownlinkCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_DownlinkCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_DownlinkCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.c b/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.c new file mode 100644 index 0000000..b78274e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-DownlinkDedicated.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_DownlinkDedicated_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BWP_DownlinkDedicated, pdcch_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-Config" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BWP_DownlinkDedicated, pdsch_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-Config" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_DownlinkDedicated, sps_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SPS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sps-Config" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_DownlinkDedicated, radioLinkMonitoringConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioLinkMonitoringConfig" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_DownlinkDedicated_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_DownlinkDedicated_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcch-Config */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdsch-Config */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sps-Config */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* radioLinkMonitoringConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_DownlinkDedicated_specs_1 = { + sizeof(struct ASN_RRC_BWP_DownlinkDedicated), + offsetof(struct ASN_RRC_BWP_DownlinkDedicated, _asn_ctx), + asn_MAP_ASN_RRC_BWP_DownlinkDedicated_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_DownlinkDedicated_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_DownlinkDedicated = { + "BWP-DownlinkDedicated", + "BWP-DownlinkDedicated", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_DownlinkDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_DownlinkDedicated_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_DownlinkDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.h b/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.h new file mode 100644 index 0000000..e823b0c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-DownlinkDedicated.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_DownlinkDedicated_H_ +#define _ASN_RRC_BWP_DownlinkDedicated_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PDCCH_Config; +struct ASN_RRC_SetupRelease_PDSCH_Config; +struct ASN_RRC_SetupRelease_SPS_Config; +struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig; + +/* ASN_RRC_BWP-DownlinkDedicated */ +typedef struct ASN_RRC_BWP_DownlinkDedicated { + struct ASN_RRC_SetupRelease_PDCCH_Config *pdcch_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PDSCH_Config *pdsch_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_SPS_Config *sps_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig *radioLinkMonitoringConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_DownlinkDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_DownlinkDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_DownlinkDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_DownlinkDedicated_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_DownlinkDedicated_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-Id.c b/src/asn/rrc/ASN_RRC_BWP-Id.c new file mode 100644 index 0000000..55040c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-Id.h" + +int +ASN_RRC_BWP_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_BWP_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Id = { + "BWP-Id", + "BWP-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_BWP_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BWP_Id_constr_1, ASN_RRC_BWP_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-Id.h b/src/asn/rrc/ASN_RRC_BWP-Id.h new file mode 100644 index 0000000..14639ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_Id_H_ +#define _ASN_RRC_BWP_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BWP-Id */ +typedef long ASN_RRC_BWP_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BWP_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Id; +asn_struct_free_f ASN_RRC_BWP_Id_free; +asn_struct_print_f ASN_RRC_BWP_Id_print; +asn_constr_check_f ASN_RRC_BWP_Id_constraint; +ber_type_decoder_f ASN_RRC_BWP_Id_decode_ber; +der_type_encoder_f ASN_RRC_BWP_Id_encode_der; +xer_type_decoder_f ASN_RRC_BWP_Id_decode_xer; +xer_type_encoder_f ASN_RRC_BWP_Id_encode_xer; +per_type_decoder_f ASN_RRC_BWP_Id_decode_uper; +per_type_encoder_f ASN_RRC_BWP_Id_encode_uper; +per_type_decoder_f ASN_RRC_BWP_Id_decode_aper; +per_type_encoder_f ASN_RRC_BWP_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-Uplink.c b/src/asn/rrc/ASN_RRC_BWP-Uplink.c new file mode 100644 index 0000000..6001e24 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Uplink.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-Uplink.h" + +#include "ASN_RRC_BWP-UplinkCommon.h" +#include "ASN_RRC_BWP-UplinkDedicated.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_Uplink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP_Uplink, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_Uplink, bwp_Common), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Common" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_Uplink, bwp_Dedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_UplinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Dedicated" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_Uplink_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_Uplink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_Uplink_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bwp-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bwp-Common */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* bwp-Dedicated */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_Uplink_specs_1 = { + sizeof(struct ASN_RRC_BWP_Uplink), + offsetof(struct ASN_RRC_BWP_Uplink, _asn_ctx), + asn_MAP_ASN_RRC_BWP_Uplink_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_Uplink_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Uplink = { + "BWP-Uplink", + "BWP-Uplink", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_Uplink_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_Uplink_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Uplink_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_Uplink_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_Uplink_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_Uplink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_Uplink_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_Uplink_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-Uplink.h b/src/asn/rrc/ASN_RRC_BWP-Uplink.h new file mode 100644 index 0000000..b1e3836 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-Uplink.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_Uplink_H_ +#define _ASN_RRC_BWP_Uplink_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BWP_UplinkCommon; +struct ASN_RRC_BWP_UplinkDedicated; + +/* ASN_RRC_BWP-Uplink */ +typedef struct ASN_RRC_BWP_Uplink { + ASN_RRC_BWP_Id_t bwp_Id; + struct ASN_RRC_BWP_UplinkCommon *bwp_Common; /* OPTIONAL */ + struct ASN_RRC_BWP_UplinkDedicated *bwp_Dedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_Uplink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_Uplink; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_Uplink_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_Uplink_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_Uplink_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.c b/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.c new file mode 100644 index 0000000..c8fac8e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-UplinkCommon.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_UplinkCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP_UplinkCommon, genericParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "genericParameters" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BWP_UplinkCommon, rach_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RACH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_UplinkCommon, pusch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ConfigCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_UplinkCommon, pucch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ConfigCommon" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_UplinkCommon_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_UplinkCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* genericParameters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rach-ConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pusch-ConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* pucch-ConfigCommon */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_UplinkCommon_specs_1 = { + sizeof(struct ASN_RRC_BWP_UplinkCommon), + offsetof(struct ASN_RRC_BWP_UplinkCommon, _asn_ctx), + asn_MAP_ASN_RRC_BWP_UplinkCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_UplinkCommon_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_UplinkCommon = { + "BWP-UplinkCommon", + "BWP-UplinkCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_UplinkCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_UplinkCommon_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_UplinkCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.h b/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.h new file mode 100644 index 0000000..13c9c41 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-UplinkCommon.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_UplinkCommon_H_ +#define _ASN_RRC_BWP_UplinkCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_RACH_ConfigCommon; +struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon; +struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon; + +/* ASN_RRC_BWP-UplinkCommon */ +typedef struct ASN_RRC_BWP_UplinkCommon { + ASN_RRC_BWP_t genericParameters; + struct ASN_RRC_SetupRelease_RACH_ConfigCommon *rach_ConfigCommon; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon *pusch_ConfigCommon; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon *pucch_ConfigCommon; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_UplinkCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_UplinkCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_UplinkCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_UplinkCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_UplinkCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.c b/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.c new file mode 100644 index 0000000..a82c23d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP-UplinkDedicated.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_UplinkDedicated_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_BWP_UplinkDedicated, pucch_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Config" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BWP_UplinkDedicated, pusch_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-Config" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BWP_UplinkDedicated, configuredGrantConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_ConfiguredGrantConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredGrantConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BWP_UplinkDedicated, srs_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SRS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-Config" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP_UplinkDedicated, beamFailureRecoveryConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureRecoveryConfig" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_UplinkDedicated_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_UplinkDedicated_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-Config */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pusch-Config */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* configuredGrantConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* srs-Config */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* beamFailureRecoveryConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_UplinkDedicated_specs_1 = { + sizeof(struct ASN_RRC_BWP_UplinkDedicated), + offsetof(struct ASN_RRC_BWP_UplinkDedicated, _asn_ctx), + asn_MAP_ASN_RRC_BWP_UplinkDedicated_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_UplinkDedicated_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_UplinkDedicated = { + "BWP-UplinkDedicated", + "BWP-UplinkDedicated", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_UplinkDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_UplinkDedicated_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_UplinkDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.h b/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.h new file mode 100644 index 0000000..5c5eba0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP-UplinkDedicated.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_UplinkDedicated_H_ +#define _ASN_RRC_BWP_UplinkDedicated_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PUCCH_Config; +struct ASN_RRC_SetupRelease_PUSCH_Config; +struct ASN_RRC_SetupRelease_ConfiguredGrantConfig; +struct ASN_RRC_SetupRelease_SRS_Config; +struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig; + +/* ASN_RRC_BWP-UplinkDedicated */ +typedef struct ASN_RRC_BWP_UplinkDedicated { + struct ASN_RRC_SetupRelease_PUCCH_Config *pucch_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUSCH_Config *pusch_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_ConfiguredGrantConfig *configuredGrantConfig; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_SRS_Config *srs_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig *beamFailureRecoveryConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_UplinkDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP_UplinkDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_UplinkDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_UplinkDedicated_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_UplinkDedicated_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BWP.c b/src/asn/rrc/ASN_RRC_BWP.c new file mode 100644 index 0000000..bf4a2dd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BWP.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_locationAndBandwidth_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 <= 37949)) { + /* Constraint 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_ASN_RRC_cyclicPrefix_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_locationAndBandwidth_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 37949 } /* (0..37949) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cyclicPrefix_value2enum_4[] = { + { 0, 8, "extended" } +}; +static const unsigned int asn_MAP_ASN_RRC_cyclicPrefix_enum2value_4[] = { + 0 /* extended(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cyclicPrefix_specs_4 = { + asn_MAP_ASN_RRC_cyclicPrefix_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cyclicPrefix_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cyclicPrefix_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_ASN_RRC_cyclicPrefix_4 = { + "cyclicPrefix", + "cyclicPrefix", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cyclicPrefix_tags_4, + sizeof(asn_DEF_ASN_RRC_cyclicPrefix_tags_4) + /sizeof(asn_DEF_ASN_RRC_cyclicPrefix_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cyclicPrefix_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cyclicPrefix_tags_4) + /sizeof(asn_DEF_ASN_RRC_cyclicPrefix_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cyclicPrefix_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cyclicPrefix_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP, locationAndBandwidth), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_locationAndBandwidth_constr_2, memb_ASN_RRC_locationAndBandwidth_constraint_1 }, + 0, 0, /* No default value */ + "locationAndBandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BWP, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BWP, cyclicPrefix), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cyclicPrefix_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cyclicPrefix" + }, +}; +static const int asn_MAP_ASN_RRC_BWP_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BWP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BWP_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationAndBandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cyclicPrefix */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_specs_1 = { + sizeof(struct ASN_RRC_BWP), + offsetof(struct ASN_RRC_BWP, _asn_ctx), + asn_MAP_ASN_RRC_BWP_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BWP_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP = { + "BWP", + "BWP", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BWP_tags_1, + sizeof(asn_DEF_ASN_RRC_BWP_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BWP_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BWP_tags_1) + /sizeof(asn_DEF_ASN_RRC_BWP_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BWP_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_BWP_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BWP.h b/src/asn/rrc/ASN_RRC_BWP.h new file mode 100644 index 0000000..8e1feea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BWP.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BWP_H_ +#define _ASN_RRC_BWP_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BWP__cyclicPrefix { + ASN_RRC_BWP__cyclicPrefix_extended = 0 +} e_ASN_RRC_BWP__cyclicPrefix; + +/* ASN_RRC_BWP */ +typedef struct ASN_RRC_BWP { + long locationAndBandwidth; + ASN_RRC_SubcarrierSpacing_t subcarrierSpacing; + long *cyclicPrefix; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BWP_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cyclicPrefix_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BWP; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BWP_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BWP_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BWP_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1540.c b/src/asn/rrc/ASN_RRC_BandCombination-v1540.c new file mode 100644 index 0000000..06e66c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1540.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombination-v1540.h" + +#include "ASN_RRC_CA-ParametersNR-v1540.h" +#include "ASN_RRC_BandParameters-v1540.h" +static int +memb_ASN_RRC_bandList_v1540_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_ASN_RRC_bandList_v1540_constr_2 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_ASN_RRC_bandList_v1540_constr_2 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_ASN_RRC_bandList_v1540_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandParameters_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bandList_v1540_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_bandList_v1540_specs_2 = { + sizeof(struct ASN_RRC_BandCombination_v1540__bandList_v1540), + offsetof(struct ASN_RRC_BandCombination_v1540__bandList_v1540, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bandList_v1540_2 = { + "bandList-v1540", + "bandList-v1540", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_bandList_v1540_tags_2, + sizeof(asn_DEF_ASN_RRC_bandList_v1540_tags_2) + /sizeof(asn_DEF_ASN_RRC_bandList_v1540_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bandList_v1540_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bandList_v1540_tags_2) + /sizeof(asn_DEF_ASN_RRC_bandList_v1540_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bandList_v1540_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_bandList_v1540_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_bandList_v1540_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1540_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombination_v1540, bandList_v1540), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_bandList_v1540_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_bandList_v1540_constr_2, memb_ASN_RRC_bandList_v1540_constraint_1 }, + 0, 0, /* No default value */ + "bandList-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandCombination_v1540, ca_ParametersNR_v1540), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-v1540" + }, +}; +static const int asn_MAP_ASN_RRC_BandCombination_v1540_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombination_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombination_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandList-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ca-ParametersNR-v1540 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1540_specs_1 = { + sizeof(struct ASN_RRC_BandCombination_v1540), + offsetof(struct ASN_RRC_BandCombination_v1540, _asn_ctx), + asn_MAP_ASN_RRC_BandCombination_v1540_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BandCombination_v1540_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination_v1540 = { + "BandCombination-v1540", + "BandCombination-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombination_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombination_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombination_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombination_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombination_v1540_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombination_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1540.h b/src/asn/rrc/ASN_RRC_BandCombination-v1540.h new file mode 100644 index 0000000..65041f8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1540.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombination_v1540_H_ +#define _ASN_RRC_BandCombination_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CA_ParametersNR_v1540; +struct ASN_RRC_BandParameters_v1540; + +/* ASN_RRC_BandCombination-v1540 */ +typedef struct ASN_RRC_BandCombination_v1540 { + struct ASN_RRC_BandCombination_v1540__bandList_v1540 { + A_SEQUENCE_OF(struct ASN_RRC_BandParameters_v1540) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } bandList_v1540; + struct ASN_RRC_CA_ParametersNR_v1540 *ca_ParametersNR_v1540; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombination_v1540_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1540_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombination_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1550.c b/src/asn/rrc/ASN_RRC_BandCombination-v1550.c new file mode 100644 index 0000000..11e455c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1550.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombination-v1550.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1550_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombination_v1550, ca_ParametersNR_v1550), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-v1550" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombination_v1550_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombination_v1550_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ca-ParametersNR-v1550 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1550_specs_1 = { + sizeof(struct ASN_RRC_BandCombination_v1550), + offsetof(struct ASN_RRC_BandCombination_v1550, _asn_ctx), + asn_MAP_ASN_RRC_BandCombination_v1550_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_ASN_RRC_BandCombination_v1550 = { + "BandCombination-v1550", + "BandCombination-v1550", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombination_v1550_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombination_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1550_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombination_v1550_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombination_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1550_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombination_v1550_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombination_v1550_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1550.h b/src/asn/rrc/ASN_RRC_BandCombination-v1550.h new file mode 100644 index 0000000..0b8d473 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1550.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombination_v1550_H_ +#define _ASN_RRC_BandCombination_v1550_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CA-ParametersNR-v1550.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BandCombination-v1550 */ +typedef struct ASN_RRC_BandCombination_v1550 { + ASN_RRC_CA_ParametersNR_v1550_t ca_ParametersNR_v1550; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombination_v1550_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination_v1550; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1550_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1550_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombination_v1550_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1560.c b/src/asn/rrc/ASN_RRC_BandCombination-v1560.c new file mode 100644 index 0000000..491aa88 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1560.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombination-v1560.h" + +#include "ASN_RRC_CA-ParametersNRDC.h" +#include "ASN_RRC_CA-ParametersEUTRA-v1560.h" +#include "ASN_RRC_CA-ParametersNR-v1560.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_ne_DC_BC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ne_DC_BC_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ne_DC_BC_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ne_DC_BC_specs_2 = { + asn_MAP_ASN_RRC_ne_DC_BC_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ne_DC_BC_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ne_DC_BC_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_ASN_RRC_ne_DC_BC_2 = { + "ne-DC-BC", + "ne-DC-BC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ne_DC_BC_tags_2, + sizeof(asn_DEF_ASN_RRC_ne_DC_BC_tags_2) + /sizeof(asn_DEF_ASN_RRC_ne_DC_BC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ne_DC_BC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ne_DC_BC_tags_2) + /sizeof(asn_DEF_ASN_RRC_ne_DC_BC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ne_DC_BC_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ne_DC_BC_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1560_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BandCombination_v1560, ne_DC_BC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ne_DC_BC_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ne-DC-BC" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BandCombination_v1560, ca_ParametersNRDC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNRDC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandCombination_v1560, ca_ParametersEUTRA_v1560), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersEUTRA-v1560" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandCombination_v1560, ca_ParametersNR_v1560), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-v1560" + }, +}; +static const int asn_MAP_ASN_RRC_BandCombination_v1560_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombination_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombination_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ne-DC-BC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ca-ParametersNRDC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ca-ParametersEUTRA-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ca-ParametersNR-v1560 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1560_specs_1 = { + sizeof(struct ASN_RRC_BandCombination_v1560), + offsetof(struct ASN_RRC_BandCombination_v1560, _asn_ctx), + asn_MAP_ASN_RRC_BandCombination_v1560_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BandCombination_v1560_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination_v1560 = { + "BandCombination-v1560", + "BandCombination-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombination_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombination_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombination_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombination_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombination_v1560_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombination_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombination-v1560.h b/src/asn/rrc/ASN_RRC_BandCombination-v1560.h new file mode 100644 index 0000000..76bfc52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination-v1560.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombination_v1560_H_ +#define _ASN_RRC_BandCombination_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BandCombination_v1560__ne_DC_BC { + ASN_RRC_BandCombination_v1560__ne_DC_BC_supported = 0 +} e_ASN_RRC_BandCombination_v1560__ne_DC_BC; + +/* Forward declarations */ +struct ASN_RRC_CA_ParametersNRDC; +struct ASN_RRC_CA_ParametersEUTRA_v1560; +struct ASN_RRC_CA_ParametersNR_v1560; + +/* ASN_RRC_BandCombination-v1560 */ +typedef struct ASN_RRC_BandCombination_v1560 { + long *ne_DC_BC; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNRDC *ca_ParametersNRDC; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersEUTRA_v1560 *ca_ParametersEUTRA_v1560; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR_v1560 *ca_ParametersNR_v1560; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombination_v1560_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ne_DC_BC_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_v1560_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombination_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombination.c b/src/asn/rrc/ASN_RRC_BandCombination.c new file mode 100644 index 0000000..e988ae0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination.c @@ -0,0 +1,269 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombination.h" + +#include "ASN_RRC_CA-ParametersEUTRA.h" +#include "ASN_RRC_CA-ParametersNR.h" +#include "ASN_RRC_MRDC-Parameters.h" +#include "ASN_RRC_BandParameters.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_bandList_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 int +memb_ASN_RRC_supportedBandwidthCombinationSet_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 <= 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_type_ASN_RRC_bandList_constr_2 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_type_ASN_RRC_powerClass_v1530_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_bandList_constr_2 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_ASN_RRC_supportedBandwidthCombinationSet_constr_8 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_ASN_RRC_bandList_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_BandParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bandList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_bandList_specs_2 = { + sizeof(struct ASN_RRC_BandCombination__bandList), + offsetof(struct ASN_RRC_BandCombination__bandList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bandList_2 = { + "bandList", + "bandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_bandList_tags_2, + sizeof(asn_DEF_ASN_RRC_bandList_tags_2) + /sizeof(asn_DEF_ASN_RRC_bandList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bandList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bandList_tags_2) + /sizeof(asn_DEF_ASN_RRC_bandList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bandList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_bandList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_bandList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerClass_v1530_value2enum_9[] = { + { 0, 3, "pc2" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerClass_v1530_enum2value_9[] = { + 0 /* pc2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerClass_v1530_specs_9 = { + asn_MAP_ASN_RRC_powerClass_v1530_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerClass_v1530_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_powerClass_v1530_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerClass_v1530_9 = { + "powerClass-v1530", + "powerClass-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerClass_v1530_tags_9, + sizeof(asn_DEF_ASN_RRC_powerClass_v1530_tags_9) + /sizeof(asn_DEF_ASN_RRC_powerClass_v1530_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerClass_v1530_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerClass_v1530_tags_9) + /sizeof(asn_DEF_ASN_RRC_powerClass_v1530_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerClass_v1530_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerClass_v1530_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombination, bandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_bandList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_bandList_constr_2, memb_ASN_RRC_bandList_constraint_1 }, + 0, 0, /* No default value */ + "bandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombination, featureSetCombination), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetCombinationId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "featureSetCombination" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_BandCombination, ca_ParametersEUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersEUTRA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BandCombination, ca_ParametersNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BandCombination, mrdc_Parameters), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MRDC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-Parameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandCombination, supportedBandwidthCombinationSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedBandwidthCombinationSet_constr_8, memb_ASN_RRC_supportedBandwidthCombinationSet_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandwidthCombinationSet" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandCombination, powerClass_v1530), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerClass_v1530_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerClass-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_BandCombination_oms_1[] = { 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombination_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* featureSetCombination */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ca-ParametersEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ca-ParametersNR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mrdc-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* supportedBandwidthCombinationSet */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* powerClass-v1530 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_specs_1 = { + sizeof(struct ASN_RRC_BandCombination), + offsetof(struct ASN_RRC_BandCombination, _asn_ctx), + asn_MAP_ASN_RRC_BandCombination_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BandCombination_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination = { + "BandCombination", + "BandCombination", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombination_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombination_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombination_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombination.h b/src/asn/rrc/ASN_RRC_BandCombination.h new file mode 100644 index 0000000..fe01fb9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombination.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombination_H_ +#define _ASN_RRC_BandCombination_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FeatureSetCombinationId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BandCombination__powerClass_v1530 { + ASN_RRC_BandCombination__powerClass_v1530_pc2 = 0 +} e_ASN_RRC_BandCombination__powerClass_v1530; + +/* Forward declarations */ +struct ASN_RRC_CA_ParametersEUTRA; +struct ASN_RRC_CA_ParametersNR; +struct ASN_RRC_MRDC_Parameters; +struct ASN_RRC_BandParameters; + +/* ASN_RRC_BandCombination */ +typedef struct ASN_RRC_BandCombination { + struct ASN_RRC_BandCombination__bandList { + A_SEQUENCE_OF(struct ASN_RRC_BandParameters) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } bandList; + ASN_RRC_FeatureSetCombinationId_t featureSetCombination; + struct ASN_RRC_CA_ParametersEUTRA *ca_ParametersEUTRA; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR *ca_ParametersNR; /* OPTIONAL */ + struct ASN_RRC_MRDC_Parameters *mrdc_Parameters; /* OPTIONAL */ + BIT_STRING_t *supportedBandwidthCombinationSet; /* OPTIONAL */ + long *powerClass_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombination_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerClass_v1530_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombination; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombination_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombination_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationIndex.c b/src/asn/rrc/ASN_RRC_BandCombinationIndex.c new file mode 100644 index 0000000..5913d34 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationIndex.h" + +int +ASN_RRC_BandCombinationIndex_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 <= 65536)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_BandCombinationIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (1..65536) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationIndex = { + "BandCombinationIndex", + "BandCombinationIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_BandCombinationIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationIndex_constr_1, ASN_RRC_BandCombinationIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationIndex.h b/src/asn/rrc/ASN_RRC_BandCombinationIndex.h new file mode 100644 index 0000000..6c743fe --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationIndex_H_ +#define _ASN_RRC_BandCombinationIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BandCombinationIndex */ +typedef long ASN_RRC_BandCombinationIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationIndex; +asn_struct_free_f ASN_RRC_BandCombinationIndex_free; +asn_struct_print_f ASN_RRC_BandCombinationIndex_print; +asn_constr_check_f ASN_RRC_BandCombinationIndex_constraint; +ber_type_decoder_f ASN_RRC_BandCombinationIndex_decode_ber; +der_type_encoder_f ASN_RRC_BandCombinationIndex_encode_der; +xer_type_decoder_f ASN_RRC_BandCombinationIndex_decode_xer; +xer_type_encoder_f ASN_RRC_BandCombinationIndex_encode_xer; +per_type_decoder_f ASN_RRC_BandCombinationIndex_decode_uper; +per_type_encoder_f ASN_RRC_BandCombinationIndex_encode_uper; +per_type_decoder_f ASN_RRC_BandCombinationIndex_decode_aper; +per_type_encoder_f ASN_RRC_BandCombinationIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfo.c b/src/asn/rrc/ASN_RRC_BandCombinationInfo.c new file mode 100644 index 0000000..f633ce5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfo.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationInfo.h" + +static int +memb_ASN_RRC_allowedFeatureSetsList_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 <= 128)) { + /* 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_ASN_RRC_allowedFeatureSetsList_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_allowedFeatureSetsList_constr_3 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_ASN_RRC_allowedFeatureSetsList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_allowedFeatureSetsList_specs_3 = { + sizeof(struct ASN_RRC_BandCombinationInfo__allowedFeatureSetsList), + offsetof(struct ASN_RRC_BandCombinationInfo__allowedFeatureSetsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_allowedFeatureSetsList_3 = { + "allowedFeatureSetsList", + "allowedFeatureSetsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3, + sizeof(asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3) + /sizeof(asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3) + /sizeof(asn_DEF_ASN_RRC_allowedFeatureSetsList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_allowedFeatureSetsList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_allowedFeatureSetsList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_allowedFeatureSetsList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombinationInfo, bandCombinationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombinationInfo, allowedFeatureSetsList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_allowedFeatureSetsList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_allowedFeatureSetsList_constr_3, memb_ASN_RRC_allowedFeatureSetsList_constraint_1 }, + 0, 0, /* No default value */ + "allowedFeatureSetsList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombinationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandCombinationIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* allowedFeatureSetsList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombinationInfo_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationInfo), + offsetof(struct ASN_RRC_BandCombinationInfo, _asn_ctx), + asn_MAP_ASN_RRC_BandCombinationInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfo = { + "BandCombinationInfo", + "BandCombinationInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombinationInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombinationInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombinationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfo.h b/src/asn/rrc/ASN_RRC_BandCombinationInfo.h new file mode 100644 index 0000000..0993671 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfo.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationInfo_H_ +#define _ASN_RRC_BandCombinationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BandCombinationIndex.h" +#include "ASN_RRC_FeatureSetEntryIndex.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BandCombinationInfo */ +typedef struct ASN_RRC_BandCombinationInfo { + ASN_RRC_BandCombinationIndex_t bandCombinationIndex; + struct ASN_RRC_BandCombinationInfo__allowedFeatureSetsList { + A_SEQUENCE_OF(ASN_RRC_FeatureSetEntryIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } allowedFeatureSetsList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombinationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfoList.c b/src/asn/rrc/ASN_RRC_BandCombinationInfoList.c new file mode 100644 index 0000000..8a1146b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationInfoList.h" + +#include "ASN_RRC_BandCombinationInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationInfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandCombinationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationInfoList_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationInfoList), + offsetof(struct ASN_RRC_BandCombinationInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfoList = { + "BandCombinationInfoList", + "BandCombinationInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_BandCombinationInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_BandCombinationInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfoList.h b/src/asn/rrc/ASN_RRC_BandCombinationInfoList.h new file mode 100644 index 0000000..daf0102 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationInfoList_H_ +#define _ASN_RRC_BandCombinationInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombinationInfo; + +/* ASN_RRC_BandCombinationInfoList */ +typedef struct ASN_RRC_BandCombinationInfoList { + A_SEQUENCE_OF(struct ASN_RRC_BandCombinationInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationInfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.c b/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.c new file mode 100644 index 0000000..aae9ccb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationInfoSN.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfoSN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombinationInfoSN, bandCombinationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandCombinationInfoSN, requestedFeatureSets), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedFeatureSets" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandCombinationInfoSN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandCombinationIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* requestedFeatureSets */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombinationInfoSN_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationInfoSN), + offsetof(struct ASN_RRC_BandCombinationInfoSN, _asn_ctx), + asn_MAP_ASN_RRC_BandCombinationInfoSN_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfoSN = { + "BandCombinationInfoSN", + "BandCombinationInfoSN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationInfoSN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandCombinationInfoSN_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BandCombinationInfoSN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.h b/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.h new file mode 100644 index 0000000..b24d585 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationInfoSN.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationInfoSN_H_ +#define _ASN_RRC_BandCombinationInfoSN_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BandCombinationIndex.h" +#include "ASN_RRC_FeatureSetEntryIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BandCombinationInfoSN */ +typedef struct ASN_RRC_BandCombinationInfoSN { + ASN_RRC_BandCombinationIndex_t bandCombinationIndex; + ASN_RRC_FeatureSetEntryIndex_t requestedFeatureSets; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationInfoSN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationInfoSN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandCombinationInfoSN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationInfoSN_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationInfoSN_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.c b/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.c new file mode 100644 index 0000000..140c7fc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationList-v1540.h" + +#include "ASN_RRC_BandCombination-v1540.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1540_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1540_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandCombination_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1540_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationList_v1540), + offsetof(struct ASN_RRC_BandCombinationList_v1540, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1540 = { + "BandCombinationList-v1540", + "BandCombinationList-v1540", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1540_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationList_v1540_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_BandCombinationList_v1540_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_BandCombinationList_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.h b/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.h new file mode 100644 index 0000000..c099f54 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1540.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationList_v1540_H_ +#define _ASN_RRC_BandCombinationList_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombination_v1540; + +/* ASN_RRC_BandCombinationList-v1540 */ +typedef struct ASN_RRC_BandCombinationList_v1540 { + A_SEQUENCE_OF(struct ASN_RRC_BandCombination_v1540) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationList_v1540_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1540; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1540_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1540_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationList_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.c b/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.c new file mode 100644 index 0000000..eeb903c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationList-v1550.h" + +#include "ASN_RRC_BandCombination-v1550.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1550_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1550_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandCombination_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1550_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationList_v1550), + offsetof(struct ASN_RRC_BandCombinationList_v1550, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1550 = { + "BandCombinationList-v1550", + "BandCombinationList-v1550", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1550_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationList_v1550_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_BandCombinationList_v1550_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_BandCombinationList_v1550_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.h b/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.h new file mode 100644 index 0000000..091e73c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1550.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationList_v1550_H_ +#define _ASN_RRC_BandCombinationList_v1550_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombination_v1550; + +/* ASN_RRC_BandCombinationList-v1550 */ +typedef struct ASN_RRC_BandCombinationList_v1550 { + A_SEQUENCE_OF(struct ASN_RRC_BandCombination_v1550) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationList_v1550_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1550; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1550_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1550_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1550_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationList_v1550_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.c b/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.c new file mode 100644 index 0000000..af22416 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationList-v1560.h" + +#include "ASN_RRC_BandCombination-v1560.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1560_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1560_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandCombination_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1560_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationList_v1560), + offsetof(struct ASN_RRC_BandCombinationList_v1560, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1560 = { + "BandCombinationList-v1560", + "BandCombinationList-v1560", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_v1560_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationList_v1560_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_BandCombinationList_v1560_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_BandCombinationList_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.h b/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.h new file mode 100644 index 0000000..dd95033 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList-v1560.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationList_v1560_H_ +#define _ASN_RRC_BandCombinationList_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombination_v1560; + +/* ASN_RRC_BandCombinationList-v1560 */ +typedef struct ASN_RRC_BandCombinationList_v1560 { + A_SEQUENCE_OF(struct ASN_RRC_BandCombination_v1560) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationList_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList_v1560; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_v1560_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_v1560_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationList_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList.c b/src/asn/rrc/ASN_RRC_BandCombinationList.c new file mode 100644 index 0000000..1ad3939 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandCombinationList.h" + +#include "ASN_RRC_BandCombination.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, -1, 1, 65536 } /* (SIZE(1..65536)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandCombinationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_specs_1 = { + sizeof(struct ASN_RRC_BandCombinationList), + offsetof(struct ASN_RRC_BandCombinationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList = { + "BandCombinationList", + "BandCombinationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_BandCombinationList_tags_1, + sizeof(asn_DEF_ASN_RRC_BandCombinationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandCombinationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandCombinationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandCombinationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandCombinationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_BandCombinationList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_BandCombinationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandCombinationList.h b/src/asn/rrc/ASN_RRC_BandCombinationList.h new file mode 100644 index 0000000..027ef10 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandCombinationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandCombinationList_H_ +#define _ASN_RRC_BandCombinationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombination; + +/* ASN_RRC_BandCombinationList */ +typedef struct ASN_RRC_BandCombinationList { + A_SEQUENCE_OF(struct ASN_RRC_BandCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandCombinationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandCombinationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_BandCombinationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandCombinationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandCombinationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandCombinationList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandEntryIndex.c b/src/asn/rrc/ASN_RRC_BandEntryIndex.c new file mode 100644 index 0000000..316369b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandEntryIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandEntryIndex.h" + +int +ASN_RRC_BandEntryIndex_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 <= 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_ASN_RRC_BandEntryIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandEntryIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandEntryIndex = { + "BandEntryIndex", + "BandEntryIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_BandEntryIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_BandEntryIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandEntryIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandEntryIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandEntryIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandEntryIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_BandEntryIndex_constr_1, ASN_RRC_BandEntryIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandEntryIndex.h b/src/asn/rrc/ASN_RRC_BandEntryIndex.h new file mode 100644 index 0000000..21902ee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandEntryIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandEntryIndex_H_ +#define _ASN_RRC_BandEntryIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BandEntryIndex */ +typedef long ASN_RRC_BandEntryIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandEntryIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandEntryIndex; +asn_struct_free_f ASN_RRC_BandEntryIndex_free; +asn_struct_print_f ASN_RRC_BandEntryIndex_print; +asn_constr_check_f ASN_RRC_BandEntryIndex_constraint; +ber_type_decoder_f ASN_RRC_BandEntryIndex_decode_ber; +der_type_encoder_f ASN_RRC_BandEntryIndex_encode_der; +xer_type_decoder_f ASN_RRC_BandEntryIndex_decode_xer; +xer_type_encoder_f ASN_RRC_BandEntryIndex_encode_xer; +per_type_decoder_f ASN_RRC_BandEntryIndex_decode_uper; +per_type_encoder_f ASN_RRC_BandEntryIndex_encode_uper; +per_type_decoder_f ASN_RRC_BandEntryIndex_decode_aper; +per_type_encoder_f ASN_RRC_BandEntryIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandEntryIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandNR.c b/src/asn/rrc/ASN_RRC_BandNR.c new file mode 100644 index 0000000..1c67799 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandNR.c @@ -0,0 +1,1764 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandNR.h" + +#include "ASN_RRC_MIMO-ParametersPerBand.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_scs_15kHz_constraint_30(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_30kHz_constraint_30(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_60kHz_constraint_30(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_60kHz_constraint_34(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 == 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_ASN_RRC_scs_120kHz_constraint_34(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 == 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_ASN_RRC_scs_15kHz_constraint_38(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_30kHz_constraint_38(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_60kHz_constraint_38(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_60kHz_constraint_42(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 == 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_ASN_RRC_scs_120kHz_constraint_42(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 == 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 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_ASN_RRC_modifiedMPR_Behaviour_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 asn_per_constraints_t asn_PER_type_ASN_RRC_extendedCP_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_multipleTCI_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bwp_WithoutRestriction_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bwp_SameNumerology_constr_11 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_type_ASN_RRC_bwp_DiffNumerology_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_crossCarrierScheduling_SameSCS_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_256QAM_FR2_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_256QAM_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ue_PowerClass_constr_22 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_type_ASN_RRC_rateMatchingLTE_CRS_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_scs_15kHz_constr_31 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_30kHz_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_60kHz_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_60kHz_constr_35 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_120kHz_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_channelBWs_DL_v1530_constr_29 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_ASN_RRC_scs_15kHz_constr_39 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_30kHz_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_60kHz_constr_41 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_60kHz_constr_43 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_120kHz_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_channelBWs_UL_v1530_constr_37 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_type_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_pucch_SpatialRelInfoMAC_CE_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_powerBoosting_pi2BPSK_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxUplinkDutyCycle_FR2_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_modifiedMPR_Behaviour_constr_3 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_extendedCP_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_extendedCP_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_extendedCP_specs_5 = { + asn_MAP_ASN_RRC_extendedCP_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_extendedCP_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_extendedCP_tags_5[] = { + (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_ASN_RRC_extendedCP_5 = { + "extendedCP", + "extendedCP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_extendedCP_tags_5, + sizeof(asn_DEF_ASN_RRC_extendedCP_tags_5) + /sizeof(asn_DEF_ASN_RRC_extendedCP_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_extendedCP_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_extendedCP_tags_5) + /sizeof(asn_DEF_ASN_RRC_extendedCP_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_extendedCP_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_extendedCP_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multipleTCI_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multipleTCI_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multipleTCI_specs_7 = { + asn_MAP_ASN_RRC_multipleTCI_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multipleTCI_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multipleTCI_tags_7[] = { + (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_ASN_RRC_multipleTCI_7 = { + "multipleTCI", + "multipleTCI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multipleTCI_tags_7, + sizeof(asn_DEF_ASN_RRC_multipleTCI_tags_7) + /sizeof(asn_DEF_ASN_RRC_multipleTCI_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multipleTCI_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multipleTCI_tags_7) + /sizeof(asn_DEF_ASN_RRC_multipleTCI_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multipleTCI_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multipleTCI_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bwp_WithoutRestriction_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_bwp_WithoutRestriction_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bwp_WithoutRestriction_specs_9 = { + asn_MAP_ASN_RRC_bwp_WithoutRestriction_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bwp_WithoutRestriction_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9[] = { + (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_ASN_RRC_bwp_WithoutRestriction_9 = { + "bwp-WithoutRestriction", + "bwp-WithoutRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9, + sizeof(asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9) + /sizeof(asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9) + /sizeof(asn_DEF_ASN_RRC_bwp_WithoutRestriction_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bwp_WithoutRestriction_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bwp_WithoutRestriction_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bwp_SameNumerology_value2enum_11[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" } +}; +static const unsigned int asn_MAP_ASN_RRC_bwp_SameNumerology_enum2value_11[] = { + 0, /* upto2(0) */ + 1 /* upto4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bwp_SameNumerology_specs_11 = { + asn_MAP_ASN_RRC_bwp_SameNumerology_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bwp_SameNumerology_enum2value_11, /* 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_ASN_RRC_bwp_SameNumerology_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_SameNumerology_11 = { + "bwp-SameNumerology", + "bwp-SameNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11, + sizeof(asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11) + /sizeof(asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11) + /sizeof(asn_DEF_ASN_RRC_bwp_SameNumerology_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bwp_SameNumerology_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bwp_SameNumerology_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bwp_DiffNumerology_value2enum_14[] = { + { 0, 5, "upto4" } +}; +static const unsigned int asn_MAP_ASN_RRC_bwp_DiffNumerology_enum2value_14[] = { + 0 /* upto4(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bwp_DiffNumerology_specs_14 = { + asn_MAP_ASN_RRC_bwp_DiffNumerology_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bwp_DiffNumerology_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_DiffNumerology_14 = { + "bwp-DiffNumerology", + "bwp-DiffNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14, + sizeof(asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14) + /sizeof(asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14) + /sizeof(asn_DEF_ASN_RRC_bwp_DiffNumerology_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bwp_DiffNumerology_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bwp_DiffNumerology_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_crossCarrierScheduling_SameSCS_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_crossCarrierScheduling_SameSCS_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_crossCarrierScheduling_SameSCS_specs_16 = { + asn_MAP_ASN_RRC_crossCarrierScheduling_SameSCS_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_crossCarrierScheduling_SameSCS_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_16 = { + "crossCarrierScheduling-SameSCS", + "crossCarrierScheduling-SameSCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16, + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_crossCarrierScheduling_SameSCS_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_crossCarrierScheduling_SameSCS_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_256QAM_FR2_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_256QAM_FR2_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_256QAM_FR2_specs_18 = { + asn_MAP_ASN_RRC_pdsch_256QAM_FR2_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_256QAM_FR2_enum2value_18, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_256QAM_FR2_18 = { + "pdsch-256QAM-FR2", + "pdsch-256QAM-FR2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18, + sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18) + /sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18) + /sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR2_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_256QAM_FR2_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_256QAM_FR2_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_256QAM_value2enum_20[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_256QAM_enum2value_20[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_256QAM_specs_20 = { + asn_MAP_ASN_RRC_pusch_256QAM_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_256QAM_enum2value_20, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_256QAM_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_256QAM_20 = { + "pusch-256QAM", + "pusch-256QAM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_256QAM_tags_20, + sizeof(asn_DEF_ASN_RRC_pusch_256QAM_tags_20) + /sizeof(asn_DEF_ASN_RRC_pusch_256QAM_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_256QAM_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_256QAM_tags_20) + /sizeof(asn_DEF_ASN_RRC_pusch_256QAM_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_256QAM_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_256QAM_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ue_PowerClass_value2enum_22[] = { + { 0, 3, "pc1" }, + { 1, 3, "pc2" }, + { 2, 3, "pc3" }, + { 3, 3, "pc4" } +}; +static const unsigned int asn_MAP_ASN_RRC_ue_PowerClass_enum2value_22[] = { + 0, /* pc1(0) */ + 1, /* pc2(1) */ + 2, /* pc3(2) */ + 3 /* pc4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ue_PowerClass_specs_22 = { + asn_MAP_ASN_RRC_ue_PowerClass_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ue_PowerClass_enum2value_22, /* 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_ASN_RRC_ue_PowerClass_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_PowerClass_22 = { + "ue-PowerClass", + "ue-PowerClass", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ue_PowerClass_tags_22, + sizeof(asn_DEF_ASN_RRC_ue_PowerClass_tags_22) + /sizeof(asn_DEF_ASN_RRC_ue_PowerClass_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ue_PowerClass_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ue_PowerClass_tags_22) + /sizeof(asn_DEF_ASN_RRC_ue_PowerClass_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ue_PowerClass_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ue_PowerClass_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rateMatchingLTE_CRS_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rateMatchingLTE_CRS_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rateMatchingLTE_CRS_specs_27 = { + asn_MAP_ASN_RRC_rateMatchingLTE_CRS_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rateMatchingLTE_CRS_enum2value_27, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingLTE_CRS_27 = { + "rateMatchingLTE-CRS", + "rateMatchingLTE-CRS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27, + sizeof(asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27) + /sizeof(asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27) + /sizeof(asn_DEF_ASN_RRC_rateMatchingLTE_CRS_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchingLTE_CRS_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rateMatchingLTE_CRS_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_fr1_30[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_15kHz_constr_31, memb_ASN_RRC_scs_15kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_30kHz_constr_32, memb_ASN_RRC_scs_30kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_60kHz_constr_33, memb_ASN_RRC_scs_60kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_ASN_RRC_fr1_oms_30[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fr1_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_fr1_tag2el_30[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* scs-60kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_fr1_specs_30 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1), + offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1, _asn_ctx), + asn_MAP_ASN_RRC_fr1_tag2el_30, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_fr1_oms_30, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr1_30 = { + "fr1", + "fr1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_fr1_tags_30, + sizeof(asn_DEF_ASN_RRC_fr1_tags_30) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr1_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr1_tags_30) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_30[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_fr1_30, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_fr1_specs_30 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_fr2_34[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_60kHz_constr_35, memb_ASN_RRC_scs_60kHz_constraint_34 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr2, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_120kHz_constr_36, memb_ASN_RRC_scs_120kHz_constraint_34 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_fr2_oms_34[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fr2_tags_34[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_fr2_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_fr2_specs_34 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr2), + offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr2, _asn_ctx), + asn_MAP_ASN_RRC_fr2_tag2el_34, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_fr2_oms_34, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr2_34 = { + "fr2", + "fr2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_fr2_tags_34, + sizeof(asn_DEF_ASN_RRC_fr2_tags_34) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr2_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr2_tags_34) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_34[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_fr2_34, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_fr2_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_channelBWs_DL_v1530_29[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_fr1_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_fr2_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_channelBWs_DL_v1530_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fr1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fr2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_channelBWs_DL_v1530_specs_29 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_DL_v1530), + offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530, _asn_ctx), + offsetof(struct ASN_RRC_BandNR__channelBWs_DL_v1530, present), + sizeof(((struct ASN_RRC_BandNR__channelBWs_DL_v1530 *)0)->present), + asn_MAP_ASN_RRC_channelBWs_DL_v1530_tag2el_29, + 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_ASN_RRC_channelBWs_DL_v1530_29 = { + "channelBWs-DL-v1530", + "channelBWs-DL-v1530", + &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_ASN_RRC_channelBWs_DL_v1530_constr_29, CHOICE_constraint }, + asn_MBR_ASN_RRC_channelBWs_DL_v1530_29, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_channelBWs_DL_v1530_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_fr1_38[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_15kHz_constr_39, memb_ASN_RRC_scs_15kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_30kHz_constr_40, memb_ASN_RRC_scs_30kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_60kHz_constr_41, memb_ASN_RRC_scs_60kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_ASN_RRC_fr1_oms_38[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fr1_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_fr1_tag2el_38[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* scs-60kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_fr1_specs_38 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1), + offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1, _asn_ctx), + asn_MAP_ASN_RRC_fr1_tag2el_38, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_fr1_oms_38, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr1_38 = { + "fr1", + "fr1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_fr1_tags_38, + sizeof(asn_DEF_ASN_RRC_fr1_tags_38) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr1_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr1_tags_38) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_fr1_38, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_fr1_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_fr2_42[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_60kHz_constr_43, memb_ASN_RRC_scs_60kHz_constraint_42 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr2, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_120kHz_constr_44, memb_ASN_RRC_scs_120kHz_constraint_42 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_fr2_oms_42[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fr2_tags_42[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_fr2_tag2el_42[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_fr2_specs_42 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr2), + offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr2, _asn_ctx), + asn_MAP_ASN_RRC_fr2_tag2el_42, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_fr2_oms_42, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr2_42 = { + "fr2", + "fr2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_fr2_tags_42, + sizeof(asn_DEF_ASN_RRC_fr2_tags_42) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr2_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr2_tags_42) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_42[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_fr2_42, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_fr2_specs_42 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_channelBWs_UL_v1530_37[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_fr1_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_fr2_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_channelBWs_UL_v1530_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fr1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fr2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_channelBWs_UL_v1530_specs_37 = { + sizeof(struct ASN_RRC_BandNR__channelBWs_UL_v1530), + offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530, _asn_ctx), + offsetof(struct ASN_RRC_BandNR__channelBWs_UL_v1530, present), + sizeof(((struct ASN_RRC_BandNR__channelBWs_UL_v1530 *)0)->present), + asn_MAP_ASN_RRC_channelBWs_UL_v1530_tag2el_37, + 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_ASN_RRC_channelBWs_UL_v1530_37 = { + "channelBWs-UL-v1530", + "channelBWs-UL-v1530", + &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_ASN_RRC_channelBWs_UL_v1530_constr_37, CHOICE_constraint }, + asn_MBR_ASN_RRC_channelBWs_UL_v1530_37, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_channelBWs_UL_v1530_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_value2enum_47[] = { + { 0, 3, "n60" }, + { 1, 3, "n70" }, + { 2, 3, "n80" }, + { 3, 3, "n90" }, + { 4, 4, "n100" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_enum2value_47[] = { + 4, /* n100(4) */ + 0, /* n60(0) */ + 1, /* n70(1) */ + 2, /* n80(2) */ + 3 /* n90(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_specs_47 = { + asn_MAP_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_enum2value_47, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47[] = { + (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_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_47 = { + "maxUplinkDutyCycle-PC2-FR1", + "maxUplinkDutyCycle-PC2-FR1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47, + sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47) + /sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47) + /sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_tags_47[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_46[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__ext1, maxUplinkDutyCycle_PC2_FR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxUplinkDutyCycle-PC2-FR1" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_46[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_46[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxUplinkDutyCycle-PC2-FR1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_46 = { + sizeof(struct ASN_RRC_BandNR__ext1), + offsetof(struct ASN_RRC_BandNR__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_46, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_46, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_46 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_46, + sizeof(asn_DEF_ASN_RRC_ext1_tags_46) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_46) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_46[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_46, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_SpatialRelInfoMAC_CE_value2enum_54[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_SpatialRelInfoMAC_CE_enum2value_54[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_SpatialRelInfoMAC_CE_specs_54 = { + asn_MAP_ASN_RRC_pucch_SpatialRelInfoMAC_CE_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_SpatialRelInfoMAC_CE_enum2value_54, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54[] = { + (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_ASN_RRC_pucch_SpatialRelInfoMAC_CE_54 = { + "pucch-SpatialRelInfoMAC-CE", + "pucch-SpatialRelInfoMAC-CE", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54, + sizeof(asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54) + /sizeof(asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54) + /sizeof(asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_SpatialRelInfoMAC_CE_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_SpatialRelInfoMAC_CE_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerBoosting_pi2BPSK_value2enum_56[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerBoosting_pi2BPSK_enum2value_56[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerBoosting_pi2BPSK_specs_56 = { + asn_MAP_ASN_RRC_powerBoosting_pi2BPSK_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerBoosting_pi2BPSK_enum2value_56, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56[] = { + (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_ASN_RRC_powerBoosting_pi2BPSK_56 = { + "powerBoosting-pi2BPSK", + "powerBoosting-pi2BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56, + sizeof(asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56) + /sizeof(asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56) + /sizeof(asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerBoosting_pi2BPSK_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerBoosting_pi2BPSK_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_53[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR__ext2, pucch_SpatialRelInfoMAC_CE), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-SpatialRelInfoMAC-CE" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__ext2, powerBoosting_pi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerBoosting-pi2BPSK" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_53[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_53[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_53[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-SpatialRelInfoMAC-CE */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* powerBoosting-pi2BPSK */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_53 = { + sizeof(struct ASN_RRC_BandNR__ext2), + offsetof(struct ASN_RRC_BandNR__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_53, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_53, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_53 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_53, + sizeof(asn_DEF_ASN_RRC_ext2_tags_53) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_53[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_53) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_53[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_53, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_53 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxUplinkDutyCycle_FR2_value2enum_59[] = { + { 0, 3, "n15" }, + { 1, 3, "n20" }, + { 2, 3, "n25" }, + { 3, 3, "n30" }, + { 4, 3, "n40" }, + { 5, 3, "n50" }, + { 6, 3, "n60" }, + { 7, 3, "n70" }, + { 8, 3, "n80" }, + { 9, 3, "n90" }, + { 10, 4, "n100" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxUplinkDutyCycle_FR2_enum2value_59[] = { + 10, /* n100(10) */ + 0, /* n15(0) */ + 1, /* n20(1) */ + 2, /* n25(2) */ + 3, /* n30(3) */ + 4, /* n40(4) */ + 5, /* n50(5) */ + 6, /* n60(6) */ + 7, /* n70(7) */ + 8, /* n80(8) */ + 9 /* n90(9) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxUplinkDutyCycle_FR2_specs_59 = { + asn_MAP_ASN_RRC_maxUplinkDutyCycle_FR2_value2enum_59, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxUplinkDutyCycle_FR2_enum2value_59, /* N => "tag"; sorted by N */ + 11, /* 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_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59[] = { + (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_ASN_RRC_maxUplinkDutyCycle_FR2_59 = { + "maxUplinkDutyCycle-FR2", + "maxUplinkDutyCycle-FR2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59, + sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59) + /sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59) + /sizeof(asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_tags_59[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxUplinkDutyCycle_FR2_constr_59, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxUplinkDutyCycle_FR2_specs_59 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_58[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR__ext3, maxUplinkDutyCycle_FR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxUplinkDutyCycle-FR2" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_58[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxUplinkDutyCycle-FR2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_58 = { + sizeof(struct ASN_RRC_BandNR__ext3), + offsetof(struct ASN_RRC_BandNR__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_58, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_58, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_58 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_58, + sizeof(asn_DEF_ASN_RRC_ext3_tags_58) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_58) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_58[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_58, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_58 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandNR, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 17, offsetof(struct ASN_RRC_BandNR, modifiedMPR_Behaviour), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_modifiedMPR_Behaviour_constr_3, memb_ASN_RRC_modifiedMPR_Behaviour_constraint_1 }, + 0, 0, /* No default value */ + "modifiedMPR-Behaviour" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_BandNR, mimo_ParametersPerBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_ParametersPerBand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mimo-ParametersPerBand" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_BandNR, extendedCP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_extendedCP_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extendedCP" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_BandNR, multipleTCI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multipleTCI_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleTCI" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_BandNR, bwp_WithoutRestriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bwp_WithoutRestriction_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-WithoutRestriction" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_BandNR, bwp_SameNumerology), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bwp_SameNumerology_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-SameNumerology" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_BandNR, bwp_DiffNumerology), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bwp_DiffNumerology_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-DiffNumerology" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_BandNR, crossCarrierScheduling_SameSCS), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-SameSCS" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_BandNR, pdsch_256QAM_FR2), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_256QAM_FR2_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-256QAM-FR2" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_BandNR, pusch_256QAM), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_256QAM_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-256QAM" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_BandNR, ue_PowerClass), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ue_PowerClass_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-PowerClass" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_BandNR, rateMatchingLTE_CRS), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rateMatchingLTE_CRS_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingLTE-CRS" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_BandNR, channelBWs_DL_v1530), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_channelBWs_DL_v1530_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBWs-DL-v1530" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BandNR, channelBWs_UL_v1530), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_channelBWs_UL_v1530_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBWs-UL-v1530" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BandNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandNR, ext2), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandNR, ext3), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_BandNR_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* modifiedMPR-Behaviour */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mimo-ParametersPerBand */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* extendedCP */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* multipleTCI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* bwp-WithoutRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* bwp-SameNumerology */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* bwp-DiffNumerology */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* crossCarrierScheduling-SameSCS */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pdsch-256QAM-FR2 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pusch-256QAM */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ue-PowerClass */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* rateMatchingLTE-CRS */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* channelBWs-DL-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* channelBWs-UL-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandNR_specs_1 = { + sizeof(struct ASN_RRC_BandNR), + offsetof(struct ASN_RRC_BandNR, _asn_ctx), + asn_MAP_ASN_RRC_BandNR_tag2el_1, + 18, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BandNR_oms_1, /* Optional members */ + 14, 3, /* Root/Additions */ + 15, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandNR = { + "BandNR", + "BandNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandNR_tags_1, + sizeof(asn_DEF_ASN_RRC_BandNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandNR_1, + 18, /* Elements count */ + &asn_SPC_ASN_RRC_BandNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandNR.h b/src/asn/rrc/ASN_RRC_BandNR.h new file mode 100644 index 0000000..fd288da --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandNR.h @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandNR_H_ +#define _ASN_RRC_BandNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BandNR__extendedCP { + ASN_RRC_BandNR__extendedCP_supported = 0 +} e_ASN_RRC_BandNR__extendedCP; +typedef enum ASN_RRC_BandNR__multipleTCI { + ASN_RRC_BandNR__multipleTCI_supported = 0 +} e_ASN_RRC_BandNR__multipleTCI; +typedef enum ASN_RRC_BandNR__bwp_WithoutRestriction { + ASN_RRC_BandNR__bwp_WithoutRestriction_supported = 0 +} e_ASN_RRC_BandNR__bwp_WithoutRestriction; +typedef enum ASN_RRC_BandNR__bwp_SameNumerology { + ASN_RRC_BandNR__bwp_SameNumerology_upto2 = 0, + ASN_RRC_BandNR__bwp_SameNumerology_upto4 = 1 +} e_ASN_RRC_BandNR__bwp_SameNumerology; +typedef enum ASN_RRC_BandNR__bwp_DiffNumerology { + ASN_RRC_BandNR__bwp_DiffNumerology_upto4 = 0 +} e_ASN_RRC_BandNR__bwp_DiffNumerology; +typedef enum ASN_RRC_BandNR__crossCarrierScheduling_SameSCS { + ASN_RRC_BandNR__crossCarrierScheduling_SameSCS_supported = 0 +} e_ASN_RRC_BandNR__crossCarrierScheduling_SameSCS; +typedef enum ASN_RRC_BandNR__pdsch_256QAM_FR2 { + ASN_RRC_BandNR__pdsch_256QAM_FR2_supported = 0 +} e_ASN_RRC_BandNR__pdsch_256QAM_FR2; +typedef enum ASN_RRC_BandNR__pusch_256QAM { + ASN_RRC_BandNR__pusch_256QAM_supported = 0 +} e_ASN_RRC_BandNR__pusch_256QAM; +typedef enum ASN_RRC_BandNR__ue_PowerClass { + ASN_RRC_BandNR__ue_PowerClass_pc1 = 0, + ASN_RRC_BandNR__ue_PowerClass_pc2 = 1, + ASN_RRC_BandNR__ue_PowerClass_pc3 = 2, + ASN_RRC_BandNR__ue_PowerClass_pc4 = 3 +} e_ASN_RRC_BandNR__ue_PowerClass; +typedef enum ASN_RRC_BandNR__rateMatchingLTE_CRS { + ASN_RRC_BandNR__rateMatchingLTE_CRS_supported = 0 +} e_ASN_RRC_BandNR__rateMatchingLTE_CRS; +typedef enum ASN_RRC_BandNR__channelBWs_DL_v1530_PR { + ASN_RRC_BandNR__channelBWs_DL_v1530_PR_NOTHING, /* No components present */ + ASN_RRC_BandNR__channelBWs_DL_v1530_PR_fr1, + ASN_RRC_BandNR__channelBWs_DL_v1530_PR_fr2 +} ASN_RRC_BandNR__channelBWs_DL_v1530_PR; +typedef enum ASN_RRC_BandNR__channelBWs_UL_v1530_PR { + ASN_RRC_BandNR__channelBWs_UL_v1530_PR_NOTHING, /* No components present */ + ASN_RRC_BandNR__channelBWs_UL_v1530_PR_fr1, + ASN_RRC_BandNR__channelBWs_UL_v1530_PR_fr2 +} ASN_RRC_BandNR__channelBWs_UL_v1530_PR; +typedef enum ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1 { + ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n60 = 0, + ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n70 = 1, + ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n80 = 2, + ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n90 = 3, + ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n100 = 4 +} e_ASN_RRC_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1; +typedef enum ASN_RRC_BandNR__ext2__pucch_SpatialRelInfoMAC_CE { + ASN_RRC_BandNR__ext2__pucch_SpatialRelInfoMAC_CE_supported = 0 +} e_ASN_RRC_BandNR__ext2__pucch_SpatialRelInfoMAC_CE; +typedef enum ASN_RRC_BandNR__ext2__powerBoosting_pi2BPSK { + ASN_RRC_BandNR__ext2__powerBoosting_pi2BPSK_supported = 0 +} e_ASN_RRC_BandNR__ext2__powerBoosting_pi2BPSK; +typedef enum ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2 { + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n15 = 0, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n20 = 1, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n25 = 2, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n30 = 3, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n40 = 4, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n50 = 5, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n60 = 6, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n70 = 7, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n80 = 8, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n90 = 9, + ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2_n100 = 10 +} e_ASN_RRC_BandNR__ext3__maxUplinkDutyCycle_FR2; + +/* Forward declarations */ +struct ASN_RRC_MIMO_ParametersPerBand; + +/* ASN_RRC_BandNR */ +typedef struct ASN_RRC_BandNR { + ASN_RRC_FreqBandIndicatorNR_t bandNR; + BIT_STRING_t *modifiedMPR_Behaviour; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand *mimo_ParametersPerBand; /* OPTIONAL */ + long *extendedCP; /* OPTIONAL */ + long *multipleTCI; /* OPTIONAL */ + long *bwp_WithoutRestriction; /* OPTIONAL */ + long *bwp_SameNumerology; /* OPTIONAL */ + long *bwp_DiffNumerology; /* OPTIONAL */ + long *crossCarrierScheduling_SameSCS; /* OPTIONAL */ + long *pdsch_256QAM_FR2; /* OPTIONAL */ + long *pusch_256QAM; /* OPTIONAL */ + long *ue_PowerClass; /* OPTIONAL */ + long *rateMatchingLTE_CRS; /* OPTIONAL */ + struct ASN_RRC_BandNR__channelBWs_DL_v1530 { + ASN_RRC_BandNR__channelBWs_DL_v1530_PR present; + union ASN_RRC_BandNR__ASN_RRC_channelBWs_DL_v1530_u { + struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr1 { + BIT_STRING_t *scs_15kHz; /* OPTIONAL */ + BIT_STRING_t *scs_30kHz; /* OPTIONAL */ + BIT_STRING_t *scs_60kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *fr1; + struct ASN_RRC_BandNR__channelBWs_DL_v1530__fr2 { + BIT_STRING_t *scs_60kHz; /* OPTIONAL */ + BIT_STRING_t *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *fr2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *channelBWs_DL_v1530; + struct ASN_RRC_BandNR__channelBWs_UL_v1530 { + ASN_RRC_BandNR__channelBWs_UL_v1530_PR present; + union ASN_RRC_BandNR__ASN_RRC_channelBWs_UL_v1530_u { + struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr1 { + BIT_STRING_t *scs_15kHz; /* OPTIONAL */ + BIT_STRING_t *scs_30kHz; /* OPTIONAL */ + BIT_STRING_t *scs_60kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *fr1; + struct ASN_RRC_BandNR__channelBWs_UL_v1530__fr2 { + BIT_STRING_t *scs_60kHz; /* OPTIONAL */ + BIT_STRING_t *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *fr2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *channelBWs_UL_v1530; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_BandNR__ext1 { + long *maxUplinkDutyCycle_PC2_FR1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_BandNR__ext2 { + long *pucch_SpatialRelInfoMAC_CE; /* OPTIONAL */ + long *powerBoosting_pi2BPSK; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_BandNR__ext3 { + long *maxUplinkDutyCycle_FR2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_extendedCP_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleTCI_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_WithoutRestriction_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_SameNumerology_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_DiffNumerology_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_crossCarrierScheduling_SameSCS_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_256QAM_FR2_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_256QAM_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_PowerClass_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingLTE_CRS_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxUplinkDutyCycle_PC2_FR1_47; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_SpatialRelInfoMAC_CE_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerBoosting_pi2BPSK_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxUplinkDutyCycle_FR2_59; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandNR_1[18]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandParameters-v1540.c b/src/asn/rrc/ASN_RRC_BandParameters-v1540.c new file mode 100644 index 0000000..88c941e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandParameters-v1540.c @@ -0,0 +1,533 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandParameters-v1540.h" + +#include "ASN_RRC_SRS-SwitchingTimeNR.h" +#include "ASN_RRC_SRS-SwitchingTimeEUTRA.h" +static int +memb_ASN_RRC_srs_SwitchingTimesListNR_constraint_3(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 int +memb_ASN_RRC_srs_SwitchingTimesListEUTRA_constraint_6(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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_txSwitchImpactToRx_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 >= 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; + } +} + +static int +memb_ASN_RRC_txSwitchWithAnotherBand_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 >= 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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_srs_SwitchingTimesListNR_constr_4 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_ASN_RRC_srs_SwitchingTimesListNR_constr_4 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_type_ASN_RRC_srs_SwitchingTimesListEUTRA_constr_7 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_ASN_RRC_srs_SwitchingTimesListEUTRA_constr_7 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_type_ASN_RRC_srs_CarrierSwitch_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_type_ASN_RRC_supportedSRS_TxPortSwitch_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_txSwitchImpactToRx_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_txSwitchWithAnotherBand_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_SwitchingTimesListNR_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_SwitchingTimeNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_SwitchingTimesListNR_specs_4 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr__srs_SwitchingTimesListNR), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr__srs_SwitchingTimesListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_4 = { + "srs-SwitchingTimesListNR", + "srs-SwitchingTimesListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4, + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchingTimesListNR_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_SwitchingTimesListNR_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_SwitchingTimesListNR_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nr_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr, srs_SwitchingTimesListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_SwitchingTimesListNR_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_SwitchingTimesListNR_constr_4, memb_ASN_RRC_srs_SwitchingTimesListNR_constraint_3 }, + 0, 0, /* No default value */ + "srs-SwitchingTimesListNR" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nr_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nr_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* srs-SwitchingTimesListNR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nr_specs_3 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr, _asn_ctx), + asn_MAP_ASN_RRC_nr_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nr_3 = { + "nr", + "nr", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nr_tags_3, + sizeof(asn_DEF_ASN_RRC_nr_tags_3) + /sizeof(asn_DEF_ASN_RRC_nr_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nr_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nr_tags_3) + /sizeof(asn_DEF_ASN_RRC_nr_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nr_3, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_nr_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_SwitchingTimesListEUTRA_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_SwitchingTimesListEUTRA_specs_7 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra__srs_SwitchingTimesListEUTRA), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra__srs_SwitchingTimesListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_7 = { + "srs-SwitchingTimesListEUTRA", + "srs-SwitchingTimesListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7, + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchingTimesListEUTRA_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_SwitchingTimesListEUTRA_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_SwitchingTimesListEUTRA_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eutra_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra, srs_SwitchingTimesListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_SwitchingTimesListEUTRA_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_SwitchingTimesListEUTRA_constr_7, memb_ASN_RRC_srs_SwitchingTimesListEUTRA_constraint_6 }, + 0, 0, /* No default value */ + "srs-SwitchingTimesListEUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eutra_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eutra_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* srs-SwitchingTimesListEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eutra_specs_6 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra, _asn_ctx), + asn_MAP_ASN_RRC_eutra_tag2el_6, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eutra_6 = { + "eutra", + "eutra", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eutra_tags_6, + sizeof(asn_DEF_ASN_RRC_eutra_tags_6) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eutra_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eutra_tags_6) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eutra_6, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_eutra_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_CarrierSwitch_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nr_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_eutra_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_srs_CarrierSwitch_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_srs_CarrierSwitch_specs_2 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch, _asn_ctx), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch, present), + sizeof(((struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch *)0)->present), + asn_MAP_ASN_RRC_srs_CarrierSwitch_tag2el_2, + 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_ASN_RRC_srs_CarrierSwitch_2 = { + "srs-CarrierSwitch", + "srs-CarrierSwitch", + &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_ASN_RRC_srs_CarrierSwitch_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_srs_CarrierSwitch_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_srs_CarrierSwitch_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_value2enum_10[] = { + { 0, 4, "t1r2" }, + { 1, 4, "t1r4" }, + { 2, 4, "t2r4" }, + { 3, 9, "t1r4-t2r4" }, + { 4, 4, "t1r1" }, + { 5, 4, "t2r2" }, + { 6, 4, "t4r4" }, + { 7, 12, "notSupported" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_enum2value_10[] = { + 7, /* notSupported(7) */ + 4, /* t1r1(4) */ + 0, /* t1r2(0) */ + 1, /* t1r4(1) */ + 3, /* t1r4-t2r4(3) */ + 5, /* t2r2(5) */ + 2, /* t2r4(2) */ + 6 /* t4r4(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedSRS_TxPortSwitch_specs_10 = { + asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_enum2value_10, /* 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_ASN_RRC_supportedSRS_TxPortSwitch_tags_10[] = { + (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_ASN_RRC_supportedSRS_TxPortSwitch_10 = { + "supportedSRS-TxPortSwitch", + "supportedSRS-TxPortSwitch", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10, + sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10) + /sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10) + /sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedSRS_TxPortSwitch_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedSRS_TxPortSwitch_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_TxSwitch_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandParameters_v1540__srs_TxSwitch, supportedSRS_TxPortSwitch), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-TxPortSwitch" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandParameters_v1540__srs_TxSwitch, txSwitchImpactToRx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_txSwitchImpactToRx_constr_19, memb_ASN_RRC_txSwitchImpactToRx_constraint_9 }, + 0, 0, /* No default value */ + "txSwitchImpactToRx" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandParameters_v1540__srs_TxSwitch, txSwitchWithAnotherBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_txSwitchWithAnotherBand_constr_20, memb_ASN_RRC_txSwitchWithAnotherBand_constraint_9 }, + 0, 0, /* No default value */ + "txSwitchWithAnotherBand" + }, +}; +static const int asn_MAP_ASN_RRC_srs_TxSwitch_oms_9[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_TxSwitch_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_srs_TxSwitch_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedSRS-TxPortSwitch */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* txSwitchImpactToRx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* txSwitchWithAnotherBand */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_srs_TxSwitch_specs_9 = { + sizeof(struct ASN_RRC_BandParameters_v1540__srs_TxSwitch), + offsetof(struct ASN_RRC_BandParameters_v1540__srs_TxSwitch, _asn_ctx), + asn_MAP_ASN_RRC_srs_TxSwitch_tag2el_9, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_srs_TxSwitch_oms_9, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_TxSwitch_9 = { + "srs-TxSwitch", + "srs-TxSwitch", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_srs_TxSwitch_tags_9, + sizeof(asn_DEF_ASN_RRC_srs_TxSwitch_tags_9) + /sizeof(asn_DEF_ASN_RRC_srs_TxSwitch_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_TxSwitch_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_TxSwitch_tags_9) + /sizeof(asn_DEF_ASN_RRC_srs_TxSwitch_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_srs_TxSwitch_9, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_srs_TxSwitch_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandParameters_v1540_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandParameters_v1540, srs_CarrierSwitch), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_CarrierSwitch_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-CarrierSwitch" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandParameters_v1540, srs_TxSwitch), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_TxSwitch_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-TxSwitch" + }, +}; +static const int asn_MAP_ASN_RRC_BandParameters_v1540_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BandParameters_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandParameters_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-CarrierSwitch */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* srs-TxSwitch */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandParameters_v1540_specs_1 = { + sizeof(struct ASN_RRC_BandParameters_v1540), + offsetof(struct ASN_RRC_BandParameters_v1540, _asn_ctx), + asn_MAP_ASN_RRC_BandParameters_v1540_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BandParameters_v1540_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandParameters_v1540 = { + "BandParameters-v1540", + "BandParameters-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BandParameters_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_BandParameters_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandParameters_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BandParameters_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BandParameters_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_BandParameters_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BandParameters_v1540_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BandParameters_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandParameters-v1540.h b/src/asn/rrc/ASN_RRC_BandParameters-v1540.h new file mode 100644 index 0000000..a32da0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandParameters-v1540.h @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandParameters_v1540_H_ +#define _ASN_RRC_BandParameters_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR { + ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR_NOTHING, /* No components present */ + ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR_nr, + ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR_eutra +} ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR; +typedef enum ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch { + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t1r2 = 0, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t1r4 = 1, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t2r4 = 2, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t1r4_t2r4 = 3, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t1r1 = 4, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t2r2 = 5, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_t4r4 = 6, + ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch_notSupported = 7 +} e_ASN_RRC_BandParameters_v1540__srs_TxSwitch__supportedSRS_TxPortSwitch; + +/* Forward declarations */ +struct ASN_RRC_SRS_SwitchingTimeNR; +struct ASN_RRC_SRS_SwitchingTimeEUTRA; + +/* ASN_RRC_BandParameters-v1540 */ +typedef struct ASN_RRC_BandParameters_v1540 { + struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch { + ASN_RRC_BandParameters_v1540__srs_CarrierSwitch_PR present; + union ASN_RRC_BandParameters_v1540__ASN_RRC_srs_CarrierSwitch_u { + struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr { + struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__nr__srs_SwitchingTimesListNR { + A_SEQUENCE_OF(struct ASN_RRC_SRS_SwitchingTimeNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } srs_SwitchingTimesListNR; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nr; + struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra { + struct ASN_RRC_BandParameters_v1540__srs_CarrierSwitch__eutra__srs_SwitchingTimesListEUTRA { + A_SEQUENCE_OF(struct ASN_RRC_SRS_SwitchingTimeEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } srs_SwitchingTimesListEUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eutra; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_CarrierSwitch; + struct ASN_RRC_BandParameters_v1540__srs_TxSwitch { + long supportedSRS_TxPortSwitch; + long *txSwitchImpactToRx; /* OPTIONAL */ + long *txSwitchWithAnotherBand; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_TxSwitch; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandParameters_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_10; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandParameters_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BandParameters_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandParameters_v1540_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandParameters_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BandParameters.c b/src/asn/rrc/ASN_RRC_BandParameters.c new file mode 100644 index 0000000..aa0d1ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandParameters.c @@ -0,0 +1,192 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BandParameters.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_BandParameters_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 asn_TYPE_member_t asn_MBR_ASN_RRC_eutra_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandParameters__eutra, bandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandParameters__eutra, ca_BandwidthClassDL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandParameters__eutra, ca_BandwidthClassUL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-EUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_eutra_oms_2[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eutra_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eutra_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ca-BandwidthClassDL-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ca-BandwidthClassUL-EUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eutra_specs_2 = { + sizeof(struct ASN_RRC_BandParameters__eutra), + offsetof(struct ASN_RRC_BandParameters__eutra, _asn_ctx), + asn_MAP_ASN_RRC_eutra_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_eutra_oms_2, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eutra_2 = { + "eutra", + "eutra", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eutra_tags_2, + sizeof(asn_DEF_ASN_RRC_eutra_tags_2) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eutra_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eutra_tags_2) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eutra_2, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_eutra_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nr_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BandParameters__nr, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BandParameters__nr, ca_BandwidthClassDL_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BandParameters__nr, ca_BandwidthClassUL_NR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-NR" + }, +}; +static const int asn_MAP_ASN_RRC_nr_oms_6[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nr_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nr_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ca-BandwidthClassDL-NR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ca-BandwidthClassUL-NR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nr_specs_6 = { + sizeof(struct ASN_RRC_BandParameters__nr), + offsetof(struct ASN_RRC_BandParameters__nr, _asn_ctx), + asn_MAP_ASN_RRC_nr_tag2el_6, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_nr_oms_6, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nr_6 = { + "nr", + "nr", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nr_tags_6, + sizeof(asn_DEF_ASN_RRC_nr_tags_6) + /sizeof(asn_DEF_ASN_RRC_nr_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nr_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nr_tags_6) + /sizeof(asn_DEF_ASN_RRC_nr_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nr_6, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_nr_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BandParameters_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandParameters, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_eutra_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_BandParameters, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nr_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BandParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nr */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BandParameters_specs_1 = { + sizeof(struct ASN_RRC_BandParameters), + offsetof(struct ASN_RRC_BandParameters, _asn_ctx), + offsetof(struct ASN_RRC_BandParameters, present), + sizeof(((struct ASN_RRC_BandParameters *)0)->present), + asn_MAP_ASN_RRC_BandParameters_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandParameters = { + "BandParameters", + "BandParameters", + &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_ASN_RRC_BandParameters_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_BandParameters_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_BandParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BandParameters.h b/src/asn/rrc/ASN_RRC_BandParameters.h new file mode 100644 index 0000000..8249453 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BandParameters.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BandParameters_H_ +#define _ASN_RRC_BandParameters_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include "ASN_RRC_CA-BandwidthClassEUTRA.h" +#include +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include "ASN_RRC_CA-BandwidthClassNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BandParameters_PR { + ASN_RRC_BandParameters_PR_NOTHING, /* No components present */ + ASN_RRC_BandParameters_PR_eutra, + ASN_RRC_BandParameters_PR_nr +} ASN_RRC_BandParameters_PR; + +/* ASN_RRC_BandParameters */ +typedef struct ASN_RRC_BandParameters { + ASN_RRC_BandParameters_PR present; + union ASN_RRC_BandParameters_u { + struct ASN_RRC_BandParameters__eutra { + ASN_RRC_FreqBandIndicatorEUTRA_t bandEUTRA; + ASN_RRC_CA_BandwidthClassEUTRA_t *ca_BandwidthClassDL_EUTRA; /* OPTIONAL */ + ASN_RRC_CA_BandwidthClassEUTRA_t *ca_BandwidthClassUL_EUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eutra; + struct ASN_RRC_BandParameters__nr { + ASN_RRC_FreqBandIndicatorNR_t bandNR; + ASN_RRC_CA_BandwidthClassNR_t *ca_BandwidthClassDL_NR; /* OPTIONAL */ + ASN_RRC_CA_BandwidthClassNR_t *ca_BandwidthClassUL_NR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BandParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BandParameters; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_BandParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BandParameters_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_BandParameters_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BandParameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.c b/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.c new file mode 100644 index 0000000..7569ead --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.c @@ -0,0 +1,439 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BeamFailureRecoveryConfig.h" + +#include "ASN_RRC_RACH-ConfigGeneric.h" +#include "ASN_RRC_RA-Prioritization.h" +#include "ASN_RRC_PRACH-ResourceDedicatedBFR.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 int +memb_ASN_RRC_rootSequenceIndex_BFR_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 <= 137)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_candidateBeamRSList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_ra_ssb_OccasionMaskIndex_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_type_ASN_RRC_candidateBeamRSList_constr_5 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_per_constraints_t asn_PER_type_ASN_RRC_ssb_perRACH_Occasion_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_beamFailureRecoveryTimer_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rootSequenceIndex_BFR_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 137 } /* (0..137) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_candidateBeamRSList_constr_5 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_per_constraints_t asn_PER_memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_candidateBeamRSList_5[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_PRACH_ResourceDedicatedBFR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_candidateBeamRSList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_candidateBeamRSList_specs_5 = { + sizeof(struct ASN_RRC_BeamFailureRecoveryConfig__candidateBeamRSList), + offsetof(struct ASN_RRC_BeamFailureRecoveryConfig__candidateBeamRSList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_candidateBeamRSList_5 = { + "candidateBeamRSList", + "candidateBeamRSList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_candidateBeamRSList_tags_5, + sizeof(asn_DEF_ASN_RRC_candidateBeamRSList_tags_5) + /sizeof(asn_DEF_ASN_RRC_candidateBeamRSList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_candidateBeamRSList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_candidateBeamRSList_tags_5) + /sizeof(asn_DEF_ASN_RRC_candidateBeamRSList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_candidateBeamRSList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_candidateBeamRSList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_candidateBeamRSList_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_7[] = { + { 0, 9, "oneEighth" }, + { 1, 9, "oneFourth" }, + { 2, 7, "oneHalf" }, + { 3, 3, "one" }, + { 4, 3, "two" }, + { 5, 4, "four" }, + { 6, 5, "eight" }, + { 7, 7, "sixteen" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_7[] = { + 6, /* eight(6) */ + 5, /* four(5) */ + 3, /* one(3) */ + 0, /* oneEighth(0) */ + 1, /* oneFourth(1) */ + 2, /* oneHalf(2) */ + 7, /* sixteen(7) */ + 4 /* two(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_7 = { + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_7, /* 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_ASN_RRC_ssb_perRACH_Occasion_tags_7[] = { + (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_ASN_RRC_ssb_perRACH_Occasion_7 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7, + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_perRACH_Occasion_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_beamFailureRecoveryTimer_value2enum_19[] = { + { 0, 4, "ms10" }, + { 1, 4, "ms20" }, + { 2, 4, "ms40" }, + { 3, 4, "ms60" }, + { 4, 4, "ms80" }, + { 5, 5, "ms100" }, + { 6, 5, "ms150" }, + { 7, 5, "ms200" } +}; +static const unsigned int asn_MAP_ASN_RRC_beamFailureRecoveryTimer_enum2value_19[] = { + 0, /* ms10(0) */ + 5, /* ms100(5) */ + 6, /* ms150(6) */ + 1, /* ms20(1) */ + 7, /* ms200(7) */ + 2, /* ms40(2) */ + 3, /* ms60(3) */ + 4 /* ms80(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_beamFailureRecoveryTimer_specs_19 = { + asn_MAP_ASN_RRC_beamFailureRecoveryTimer_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_beamFailureRecoveryTimer_enum2value_19, /* 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_ASN_RRC_beamFailureRecoveryTimer_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamFailureRecoveryTimer_19 = { + "beamFailureRecoveryTimer", + "beamFailureRecoveryTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19, + sizeof(asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19) + /sizeof(asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19) + /sizeof(asn_DEF_ASN_RRC_beamFailureRecoveryTimer_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_beamFailureRecoveryTimer_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_beamFailureRecoveryTimer_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_29[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig__ext1, msg1_SubcarrierSpacing_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-SubcarrierSpacing-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_29[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* msg1-SubcarrierSpacing-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_29 = { + sizeof(struct ASN_RRC_BeamFailureRecoveryConfig__ext1), + offsetof(struct ASN_RRC_BeamFailureRecoveryConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_29, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_29, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_29 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_29, + sizeof(asn_DEF_ASN_RRC_ext1_tags_29) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_29) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_29[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_29, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BeamFailureRecoveryConfig_1[] = { + { ATF_POINTER, 10, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, rootSequenceIndex_BFR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_rootSequenceIndex_BFR_constr_2, memb_ASN_RRC_rootSequenceIndex_BFR_constraint_1 }, + 0, 0, /* No default value */ + "rootSequenceIndex-BFR" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, rach_ConfigBFR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigBFR" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, rsrp_ThresholdSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, candidateBeamRSList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_candidateBeamRSList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_candidateBeamRSList_constr_5, memb_ASN_RRC_candidateBeamRSList_constraint_1 }, + 0, 0, /* No default value */ + "candidateBeamRSList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_perRACH_Occasion_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_16, memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, recoverySearchSpaceId), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recoverySearchSpaceId" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, ra_Prioritization), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RA_Prioritization, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Prioritization" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, beamFailureRecoveryTimer), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_beamFailureRecoveryTimer_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureRecoveryTimer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_BeamFailureRecoveryConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BeamFailureRecoveryConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rootSequenceIndex-BFR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rach-ConfigBFR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rsrp-ThresholdSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* candidateBeamRSList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ssb-perRACH-Occasion */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ra-ssb-OccasionMaskIndex */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* recoverySearchSpaceId */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ra-Prioritization */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* beamFailureRecoveryTimer */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BeamFailureRecoveryConfig_specs_1 = { + sizeof(struct ASN_RRC_BeamFailureRecoveryConfig), + offsetof(struct ASN_RRC_BeamFailureRecoveryConfig, _asn_ctx), + asn_MAP_ASN_RRC_BeamFailureRecoveryConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BeamFailureRecoveryConfig_oms_1, /* Optional members */ + 9, 1, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BeamFailureRecoveryConfig = { + "BeamFailureRecoveryConfig", + "BeamFailureRecoveryConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BeamFailureRecoveryConfig_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_BeamFailureRecoveryConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.h b/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.h new file mode 100644 index 0000000..d9aa773 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BeamFailureRecoveryConfig.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BeamFailureRecoveryConfig_H_ +#define _ASN_RRC_BeamFailureRecoveryConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_RSRP-Range.h" +#include +#include "ASN_RRC_SearchSpaceId.h" +#include +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion { + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneEighth = 0, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneFourth = 1, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneHalf = 2, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_one = 3, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_two = 4, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_four = 5, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_eight = 6, + ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion_sixteen = 7 +} e_ASN_RRC_BeamFailureRecoveryConfig__ssb_perRACH_Occasion; +typedef enum ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer { + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms10 = 0, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms20 = 1, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms40 = 2, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms60 = 3, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms80 = 4, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms100 = 5, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms150 = 6, + ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms200 = 7 +} e_ASN_RRC_BeamFailureRecoveryConfig__beamFailureRecoveryTimer; + +/* Forward declarations */ +struct ASN_RRC_RACH_ConfigGeneric; +struct ASN_RRC_RA_Prioritization; +struct ASN_RRC_PRACH_ResourceDedicatedBFR; + +/* ASN_RRC_BeamFailureRecoveryConfig */ +typedef struct ASN_RRC_BeamFailureRecoveryConfig { + long *rootSequenceIndex_BFR; /* OPTIONAL */ + struct ASN_RRC_RACH_ConfigGeneric *rach_ConfigBFR; /* OPTIONAL */ + ASN_RRC_RSRP_Range_t *rsrp_ThresholdSSB; /* OPTIONAL */ + struct ASN_RRC_BeamFailureRecoveryConfig__candidateBeamRSList { + A_SEQUENCE_OF(struct ASN_RRC_PRACH_ResourceDedicatedBFR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *candidateBeamRSList; + long *ssb_perRACH_Occasion; /* OPTIONAL */ + long *ra_ssb_OccasionMaskIndex; /* OPTIONAL */ + ASN_RRC_SearchSpaceId_t *recoverySearchSpaceId; /* OPTIONAL */ + struct ASN_RRC_RA_Prioritization *ra_Prioritization; /* OPTIONAL */ + long *beamFailureRecoveryTimer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_BeamFailureRecoveryConfig__ext1 { + ASN_RRC_SubcarrierSpacing_t *msg1_SubcarrierSpacing_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BeamFailureRecoveryConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_perRACH_Occasion_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamFailureRecoveryTimer_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BeamFailureRecoveryConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BeamFailureRecoveryConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BeamFailureRecoveryConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BeamFailureRecoveryConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.c b/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.c new file mode 100644 index 0000000..5afe719 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.c @@ -0,0 +1,356 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BeamManagementSSB-CSI-RS.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberCSI_RS_Resource_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCSI_RS_Density_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_value2enum_2[] = { + { 0, 2, "n0" }, + { 1, 2, "n8" }, + { 2, 3, "n16" }, + { 3, 3, "n32" }, + { 4, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_enum2value_2[] = { + 0, /* n0(0) */ + 2, /* n16(2) */ + 3, /* n32(3) */ + 4, /* n64(4) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 = { + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_enum2value_2, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2 = { + "maxNumberSSB-CSI-RS-ResourceOneTx", + "maxNumberSSB-CSI-RS-ResourceOneTx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberCSI_RS_Resource_value2enum_8[] = { + { 0, 2, "n0" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" }, + { 4, 3, "n32" }, + { 5, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberCSI_RS_Resource_enum2value_8[] = { + 0, /* n0(0) */ + 3, /* n16(3) */ + 4, /* n32(4) */ + 1, /* n4(1) */ + 5, /* n64(5) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberCSI_RS_Resource_specs_8 = { + asn_MAP_ASN_RRC_maxNumberCSI_RS_Resource_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberCSI_RS_Resource_enum2value_8, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8[] = { + (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_ASN_RRC_maxNumberCSI_RS_Resource_8 = { + "maxNumberCSI-RS-Resource", + "maxNumberCSI-RS-Resource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8, + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberCSI_RS_Resource_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberCSI_RS_Resource_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_value2enum_15[] = { + { 0, 2, "n0" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" }, + { 4, 3, "n32" }, + { 5, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_enum2value_15[] = { + 0, /* n0(0) */ + 3, /* n16(3) */ + 4, /* n32(4) */ + 1, /* n4(1) */ + 5, /* n64(5) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_specs_15 = { + asn_MAP_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_enum2value_15, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15[] = { + (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_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_15 = { + "maxNumberCSI-RS-ResourceTwoTx", + "maxNumberCSI-RS-ResourceTwoTx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15, + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedCSI_RS_Density_value2enum_22[] = { + { 0, 3, "one" }, + { 1, 5, "three" }, + { 2, 11, "oneAndThree" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedCSI_RS_Density_enum2value_22[] = { + 0, /* one(0) */ + 2, /* oneAndThree(2) */ + 1 /* three(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_Density_specs_22 = { + asn_MAP_ASN_RRC_supportedCSI_RS_Density_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedCSI_RS_Density_enum2value_22, /* 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_ASN_RRC_supportedCSI_RS_Density_tags_22[] = { + (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_ASN_RRC_supportedCSI_RS_Density_22 = { + "supportedCSI-RS-Density", + "supportedCSI-RS-Density", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_Density_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedCSI_RS_Density_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_value2enum_26[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" }, + { 5, 3, "n32" }, + { 6, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_enum2value_26[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 4, /* n16(4) */ + 5, /* n32(5) */ + 2, /* n4(2) */ + 6, /* n64(6) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_specs_26 = { + asn_MAP_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_enum2value_26, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26[] = { + (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_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_26 = { + "maxNumberAperiodicCSI-RS-Resource", + "maxNumberAperiodicCSI-RS-Resource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26, + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_specs_26 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_BeamManagementSSB_CSI_RS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, maxNumberSSB_CSI_RS_ResourceOneTx), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSSB-CSI-RS-ResourceOneTx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, maxNumberCSI_RS_Resource), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-Resource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, maxNumberCSI_RS_ResourceTwoTx), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-ResourceTwoTx" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, supportedCSI_RS_Density), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedCSI_RS_Density_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCSI-RS-Density" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, maxNumberAperiodicCSI_RS_Resource), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-RS-Resource" + }, +}; +static const int asn_MAP_ASN_RRC_BeamManagementSSB_CSI_RS_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BeamManagementSSB_CSI_RS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSSB-CSI-RS-ResourceOneTx */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberCSI-RS-Resource */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberCSI-RS-ResourceTwoTx */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supportedCSI-RS-Density */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxNumberAperiodicCSI-RS-Resource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BeamManagementSSB_CSI_RS_specs_1 = { + sizeof(struct ASN_RRC_BeamManagementSSB_CSI_RS), + offsetof(struct ASN_RRC_BeamManagementSSB_CSI_RS, _asn_ctx), + asn_MAP_ASN_RRC_BeamManagementSSB_CSI_RS_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BeamManagementSSB_CSI_RS_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS = { + "BeamManagementSSB-CSI-RS", + "BeamManagementSSB-CSI-RS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1, + sizeof(asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1) + /sizeof(asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1) + /sizeof(asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BeamManagementSSB_CSI_RS_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_BeamManagementSSB_CSI_RS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.h b/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.h new file mode 100644 index 0000000..ebd1a8d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BeamManagementSSB-CSI-RS.h @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BeamManagementSSB_CSI_RS_H_ +#define _ASN_RRC_BeamManagementSSB_CSI_RS_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx { + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n0 = 0, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n8 = 1, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n16 = 2, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n32 = 3, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n64 = 4 +} e_ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx; +typedef enum ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource { + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n0 = 0, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n4 = 1, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n8 = 2, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n16 = 3, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n32 = 4, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource_n64 = 5 +} e_ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_Resource; +typedef enum ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx { + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n0 = 0, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n4 = 1, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n8 = 2, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n16 = 3, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n32 = 4, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n64 = 5 +} e_ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx; +typedef enum ASN_RRC_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density { + ASN_RRC_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_one = 0, + ASN_RRC_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_three = 1, + ASN_RRC_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_oneAndThree = 2 +} e_ASN_RRC_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density; +typedef enum ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource { + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n0 = 0, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n1 = 1, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n4 = 2, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n8 = 3, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n16 = 4, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n32 = 5, + ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource_n64 = 6 +} e_ASN_RRC_BeamManagementSSB_CSI_RS__maxNumberAperiodicCSI_RS_Resource; + +/* ASN_RRC_BeamManagementSSB-CSI-RS */ +typedef struct ASN_RRC_BeamManagementSSB_CSI_RS { + long maxNumberSSB_CSI_RS_ResourceOneTx; + long maxNumberCSI_RS_Resource; + long maxNumberCSI_RS_ResourceTwoTx; + long *supportedCSI_RS_Density; /* OPTIONAL */ + long maxNumberAperiodicCSI_RS_Resource; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BeamManagementSSB_CSI_RS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberCSI_RS_Resource_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberCSI_RS_ResourceTwoTx_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_Density_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberAperiodicCSI_RS_Resource_26; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BeamManagementSSB_CSI_RS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BeamManagementSSB_CSI_RS_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BeamManagementSSB_CSI_RS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_BetaOffsets.c b/src/asn/rrc/ASN_RRC_BetaOffsets.c new file mode 100644 index 0000000..1e85421 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BetaOffsets.c @@ -0,0 +1,322 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_BetaOffsets.h" + +static int +memb_ASN_RRC_betaOffsetACK_Index1_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetACK_Index2_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetACK_Index3_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetCSI_Part1_Index1_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetCSI_Part1_Index2_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetCSI_Part2_Index1_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_betaOffsetCSI_Part2_Index2_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 <= 31)) { + /* Constraint 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_ASN_RRC_betaOffsetACK_Index1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetACK_Index2_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetACK_Index3_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetCSI_Part1_Index1_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetCSI_Part1_Index2_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetCSI_Part2_Index1_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_betaOffsetCSI_Part2_Index2_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_BetaOffsets_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetACK_Index1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetACK_Index1_constr_2, memb_ASN_RRC_betaOffsetACK_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index1" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetACK_Index2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetACK_Index2_constr_3, memb_ASN_RRC_betaOffsetACK_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index2" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetACK_Index3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetACK_Index3_constr_4, memb_ASN_RRC_betaOffsetACK_Index3_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index3" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetCSI_Part1_Index1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetCSI_Part1_Index1_constr_5, memb_ASN_RRC_betaOffsetCSI_Part1_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part1-Index1" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetCSI_Part1_Index2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetCSI_Part1_Index2_constr_6, memb_ASN_RRC_betaOffsetCSI_Part1_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part1-Index2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetCSI_Part2_Index1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetCSI_Part2_Index1_constr_7, memb_ASN_RRC_betaOffsetCSI_Part2_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part2-Index1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_BetaOffsets, betaOffsetCSI_Part2_Index2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_betaOffsetCSI_Part2_Index2_constr_8, memb_ASN_RRC_betaOffsetCSI_Part2_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part2-Index2" + }, +}; +static const int asn_MAP_ASN_RRC_BetaOffsets_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_BetaOffsets_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_BetaOffsets_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* betaOffsetACK-Index1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* betaOffsetACK-Index2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* betaOffsetACK-Index3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* betaOffsetCSI-Part1-Index1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* betaOffsetCSI-Part1-Index2 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* betaOffsetCSI-Part2-Index1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* betaOffsetCSI-Part2-Index2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BetaOffsets_specs_1 = { + sizeof(struct ASN_RRC_BetaOffsets), + offsetof(struct ASN_RRC_BetaOffsets, _asn_ctx), + asn_MAP_ASN_RRC_BetaOffsets_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_BetaOffsets_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BetaOffsets = { + "BetaOffsets", + "BetaOffsets", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_BetaOffsets_tags_1, + sizeof(asn_DEF_ASN_RRC_BetaOffsets_tags_1) + /sizeof(asn_DEF_ASN_RRC_BetaOffsets_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_BetaOffsets_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_BetaOffsets_tags_1) + /sizeof(asn_DEF_ASN_RRC_BetaOffsets_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_BetaOffsets_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_BetaOffsets_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_BetaOffsets.h b/src/asn/rrc/ASN_RRC_BetaOffsets.h new file mode 100644 index 0000000..93fac66 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_BetaOffsets.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_BetaOffsets_H_ +#define _ASN_RRC_BetaOffsets_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_BetaOffsets */ +typedef struct ASN_RRC_BetaOffsets { + long *betaOffsetACK_Index1; /* OPTIONAL */ + long *betaOffsetACK_Index2; /* OPTIONAL */ + long *betaOffsetACK_Index3; /* OPTIONAL */ + long *betaOffsetCSI_Part1_Index1; /* OPTIONAL */ + long *betaOffsetCSI_Part1_Index2; /* OPTIONAL */ + long *betaOffsetCSI_Part2_Index1; /* OPTIONAL */ + long *betaOffsetCSI_Part2_Index2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_BetaOffsets_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_BetaOffsets; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_BetaOffsets_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_BetaOffsets_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_BetaOffsets_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.c b/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.c new file mode 100644 index 0000000..528727c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-BandwidthClassEUTRA.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_CA_BandwidthClassEUTRA_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_ASN_RRC_CA_BandwidthClassEUTRA_value2enum_1[] = { + { 0, 1, "a" }, + { 1, 1, "b" }, + { 2, 1, "c" }, + { 3, 1, "d" }, + { 4, 1, "e" }, + { 5, 1, "f" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_CA_BandwidthClassEUTRA_enum2value_1[] = { + 0, /* a(0) */ + 1, /* b(1) */ + 2, /* c(2) */ + 3, /* d(3) */ + 4, /* e(4) */ + 5 /* f(5) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CA_BandwidthClassEUTRA_specs_1 = { + asn_MAP_ASN_RRC_CA_BandwidthClassEUTRA_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_CA_BandwidthClassEUTRA_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_ASN_RRC_CA_BandwidthClassEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA = { + "CA-BandwidthClassEUTRA", + "CA-BandwidthClassEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CA_BandwidthClassEUTRA_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_CA_BandwidthClassEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.h b/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.h new file mode 100644 index 0000000..5dbe31e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-BandwidthClassEUTRA.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_BandwidthClassEUTRA_H_ +#define _ASN_RRC_CA_BandwidthClassEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_BandwidthClassEUTRA { + ASN_RRC_CA_BandwidthClassEUTRA_a = 0, + ASN_RRC_CA_BandwidthClassEUTRA_b = 1, + ASN_RRC_CA_BandwidthClassEUTRA_c = 2, + ASN_RRC_CA_BandwidthClassEUTRA_d = 3, + ASN_RRC_CA_BandwidthClassEUTRA_e = 4, + ASN_RRC_CA_BandwidthClassEUTRA_f = 5 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_CA_BandwidthClassEUTRA; + +/* ASN_RRC_CA-BandwidthClassEUTRA */ +typedef long ASN_RRC_CA_BandwidthClassEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CA_BandwidthClassEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CA_BandwidthClassEUTRA_specs_1; +asn_struct_free_f ASN_RRC_CA_BandwidthClassEUTRA_free; +asn_struct_print_f ASN_RRC_CA_BandwidthClassEUTRA_print; +asn_constr_check_f ASN_RRC_CA_BandwidthClassEUTRA_constraint; +ber_type_decoder_f ASN_RRC_CA_BandwidthClassEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_CA_BandwidthClassEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_CA_BandwidthClassEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_CA_BandwidthClassEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_CA_BandwidthClassEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_CA_BandwidthClassEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_CA_BandwidthClassEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_CA_BandwidthClassEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_BandwidthClassEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.c b/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.c new file mode 100644 index 0000000..cb7219c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.c @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-BandwidthClassNR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_CA_BandwidthClassNR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_CA_BandwidthClassNR_value2enum_1[] = { + { 0, 1, "a" }, + { 1, 1, "b" }, + { 2, 1, "c" }, + { 3, 1, "d" }, + { 4, 1, "e" }, + { 5, 1, "f" }, + { 6, 1, "g" }, + { 7, 1, "h" }, + { 8, 1, "i" }, + { 9, 1, "j" }, + { 10, 1, "k" }, + { 11, 1, "l" }, + { 12, 1, "m" }, + { 13, 1, "n" }, + { 14, 1, "o" }, + { 15, 1, "p" }, + { 16, 1, "q" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_CA_BandwidthClassNR_enum2value_1[] = { + 0, /* a(0) */ + 1, /* b(1) */ + 2, /* c(2) */ + 3, /* d(3) */ + 4, /* e(4) */ + 5, /* f(5) */ + 6, /* g(6) */ + 7, /* h(7) */ + 8, /* i(8) */ + 9, /* j(9) */ + 10, /* k(10) */ + 11, /* l(11) */ + 12, /* m(12) */ + 13, /* n(13) */ + 14, /* o(14) */ + 15, /* p(15) */ + 16 /* q(16) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CA_BandwidthClassNR_specs_1 = { + asn_MAP_ASN_RRC_CA_BandwidthClassNR_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_CA_BandwidthClassNR_enum2value_1, /* N => "tag"; sorted by N */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_BandwidthClassNR = { + "CA-BandwidthClassNR", + "CA-BandwidthClassNR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_BandwidthClassNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CA_BandwidthClassNR_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_CA_BandwidthClassNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.h b/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.h new file mode 100644 index 0000000..51294b8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-BandwidthClassNR.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_BandwidthClassNR_H_ +#define _ASN_RRC_CA_BandwidthClassNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_BandwidthClassNR { + ASN_RRC_CA_BandwidthClassNR_a = 0, + ASN_RRC_CA_BandwidthClassNR_b = 1, + ASN_RRC_CA_BandwidthClassNR_c = 2, + ASN_RRC_CA_BandwidthClassNR_d = 3, + ASN_RRC_CA_BandwidthClassNR_e = 4, + ASN_RRC_CA_BandwidthClassNR_f = 5, + ASN_RRC_CA_BandwidthClassNR_g = 6, + ASN_RRC_CA_BandwidthClassNR_h = 7, + ASN_RRC_CA_BandwidthClassNR_i = 8, + ASN_RRC_CA_BandwidthClassNR_j = 9, + ASN_RRC_CA_BandwidthClassNR_k = 10, + ASN_RRC_CA_BandwidthClassNR_l = 11, + ASN_RRC_CA_BandwidthClassNR_m = 12, + ASN_RRC_CA_BandwidthClassNR_n = 13, + ASN_RRC_CA_BandwidthClassNR_o = 14, + ASN_RRC_CA_BandwidthClassNR_p = 15, + ASN_RRC_CA_BandwidthClassNR_q = 16 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_CA_BandwidthClassNR; + +/* ASN_RRC_CA-BandwidthClassNR */ +typedef long ASN_RRC_CA_BandwidthClassNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CA_BandwidthClassNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_BandwidthClassNR; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CA_BandwidthClassNR_specs_1; +asn_struct_free_f ASN_RRC_CA_BandwidthClassNR_free; +asn_struct_print_f ASN_RRC_CA_BandwidthClassNR_print; +asn_constr_check_f ASN_RRC_CA_BandwidthClassNR_constraint; +ber_type_decoder_f ASN_RRC_CA_BandwidthClassNR_decode_ber; +der_type_encoder_f ASN_RRC_CA_BandwidthClassNR_encode_der; +xer_type_decoder_f ASN_RRC_CA_BandwidthClassNR_decode_xer; +xer_type_encoder_f ASN_RRC_CA_BandwidthClassNR_encode_xer; +per_type_decoder_f ASN_RRC_CA_BandwidthClassNR_decode_uper; +per_type_encoder_f ASN_RRC_CA_BandwidthClassNR_encode_uper; +per_type_decoder_f ASN_RRC_CA_BandwidthClassNR_decode_aper; +per_type_encoder_f ASN_RRC_CA_BandwidthClassNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_BandwidthClassNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.c b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.c new file mode 100644 index 0000000..ed084cf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersEUTRA-v1560.h" + +static int +memb_ASN_RRC_totalWeightedLayers_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 >= 2 && value <= 128)) { + /* Constraint 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_ASN_RRC_totalWeightedLayers_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 2, 128 } /* (2..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersEUTRA_v1560_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersEUTRA_v1560, totalWeightedLayers), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalWeightedLayers_constr_2, memb_ASN_RRC_totalWeightedLayers_constraint_1 }, + 0, 0, /* No default value */ + "totalWeightedLayers" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersEUTRA_v1560_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersEUTRA_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* totalWeightedLayers */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersEUTRA_v1560_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersEUTRA_v1560), + offsetof(struct ASN_RRC_CA_ParametersEUTRA_v1560, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersEUTRA_v1560_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersEUTRA_v1560_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560 = { + "CA-ParametersEUTRA-v1560", + "CA-ParametersEUTRA-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersEUTRA_v1560_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersEUTRA_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.h b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.h new file mode 100644 index 0000000..90e019c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA-v1560.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersEUTRA_v1560_H_ +#define _ASN_RRC_CA_ParametersEUTRA_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CA-ParametersEUTRA-v1560 */ +typedef struct ASN_RRC_CA_ParametersEUTRA_v1560 { + long *totalWeightedLayers; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersEUTRA_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersEUTRA_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersEUTRA_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersEUTRA_v1560_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersEUTRA_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.c b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.c new file mode 100644 index 0000000..5bb5bc0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.c @@ -0,0 +1,350 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersEUTRA.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_ASN_RRC_supportedNAICS_2CRS_AP_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 <= 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_ASN_RRC_supportedBandwidthCombinationSetEUTRA_v1530_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 <= 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_type_ASN_RRC_multipleTimingAdvance_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousRx_Tx_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_additionalRx_Tx_PerformanceReq_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ue_CA_PowerClass_N_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_supportedNAICS_2CRS_AP_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_supportedBandwidthCombinationSetEUTRA_v1530_constr_11 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multipleTimingAdvance_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multipleTimingAdvance_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multipleTimingAdvance_specs_2 = { + asn_MAP_ASN_RRC_multipleTimingAdvance_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multipleTimingAdvance_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multipleTimingAdvance_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_ASN_RRC_multipleTimingAdvance_2 = { + "multipleTimingAdvance", + "multipleTimingAdvance", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2, + sizeof(asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2) + /sizeof(asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2) + /sizeof(asn_DEF_ASN_RRC_multipleTimingAdvance_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multipleTimingAdvance_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multipleTimingAdvance_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousRx_Tx_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRx_Tx_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRx_Tx_specs_4 = { + asn_MAP_ASN_RRC_simultaneousRx_Tx_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRx_Tx_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4[] = { + (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_ASN_RRC_simultaneousRx_Tx_4 = { + "simultaneousRx-Tx", + "simultaneousRx-Tx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4, + sizeof(asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4) + /sizeof(asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4) + /sizeof(asn_DEF_ASN_RRC_simultaneousRx_Tx_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRx_Tx_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRx_Tx_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_additionalRx_Tx_PerformanceReq_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_additionalRx_Tx_PerformanceReq_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_additionalRx_Tx_PerformanceReq_specs_7 = { + asn_MAP_ASN_RRC_additionalRx_Tx_PerformanceReq_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_additionalRx_Tx_PerformanceReq_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_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_ASN_RRC_additionalRx_Tx_PerformanceReq_7 = { + "additionalRx-Tx-PerformanceReq", + "additionalRx-Tx-PerformanceReq", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7, + sizeof(asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7) + /sizeof(asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7) + /sizeof(asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_additionalRx_Tx_PerformanceReq_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_additionalRx_Tx_PerformanceReq_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ue_CA_PowerClass_N_value2enum_9[] = { + { 0, 6, "class2" } +}; +static const unsigned int asn_MAP_ASN_RRC_ue_CA_PowerClass_N_enum2value_9[] = { + 0 /* class2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ue_CA_PowerClass_N_specs_9 = { + asn_MAP_ASN_RRC_ue_CA_PowerClass_N_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ue_CA_PowerClass_N_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9[] = { + (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_ASN_RRC_ue_CA_PowerClass_N_9 = { + "ue-CA-PowerClass-N", + "ue-CA-PowerClass-N", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9, + sizeof(asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9) + /sizeof(asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9) + /sizeof(asn_DEF_ASN_RRC_ue_CA_PowerClass_N_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ue_CA_PowerClass_N_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ue_CA_PowerClass_N_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersEUTRA_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CA_ParametersEUTRA, multipleTimingAdvance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multipleTimingAdvance_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleTimingAdvance" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CA_ParametersEUTRA, simultaneousRx_Tx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRx_Tx_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRx-Tx" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CA_ParametersEUTRA, supportedNAICS_2CRS_AP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedNAICS_2CRS_AP_constr_6, memb_ASN_RRC_supportedNAICS_2CRS_AP_constraint_1 }, + 0, 0, /* No default value */ + "supportedNAICS-2CRS-AP" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CA_ParametersEUTRA, additionalRx_Tx_PerformanceReq), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalRx-Tx-PerformanceReq" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CA_ParametersEUTRA, ue_CA_PowerClass_N), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ue_CA_PowerClass_N_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CA-PowerClass-N" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersEUTRA, supportedBandwidthCombinationSetEUTRA_v1530), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedBandwidthCombinationSetEUTRA_v1530_constr_11, memb_ASN_RRC_supportedBandwidthCombinationSetEUTRA_v1530_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandwidthCombinationSetEUTRA-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersEUTRA_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* multipleTimingAdvance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* simultaneousRx-Tx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* supportedNAICS-2CRS-AP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* additionalRx-Tx-PerformanceReq */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ue-CA-PowerClass-N */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* supportedBandwidthCombinationSetEUTRA-v1530 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersEUTRA_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersEUTRA), + offsetof(struct ASN_RRC_CA_ParametersEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersEUTRA_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersEUTRA_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersEUTRA = { + "CA-ParametersEUTRA", + "CA-ParametersEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersEUTRA_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.h b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.h new file mode 100644 index 0000000..b27976a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersEUTRA.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersEUTRA_H_ +#define _ASN_RRC_CA_ParametersEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_ParametersEUTRA__multipleTimingAdvance { + ASN_RRC_CA_ParametersEUTRA__multipleTimingAdvance_supported = 0 +} e_ASN_RRC_CA_ParametersEUTRA__multipleTimingAdvance; +typedef enum ASN_RRC_CA_ParametersEUTRA__simultaneousRx_Tx { + ASN_RRC_CA_ParametersEUTRA__simultaneousRx_Tx_supported = 0 +} e_ASN_RRC_CA_ParametersEUTRA__simultaneousRx_Tx; +typedef enum ASN_RRC_CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq { + ASN_RRC_CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq_supported = 0 +} e_ASN_RRC_CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq; +typedef enum ASN_RRC_CA_ParametersEUTRA__ue_CA_PowerClass_N { + ASN_RRC_CA_ParametersEUTRA__ue_CA_PowerClass_N_class2 = 0 +} e_ASN_RRC_CA_ParametersEUTRA__ue_CA_PowerClass_N; + +/* ASN_RRC_CA-ParametersEUTRA */ +typedef struct ASN_RRC_CA_ParametersEUTRA { + long *multipleTimingAdvance; /* OPTIONAL */ + long *simultaneousRx_Tx; /* OPTIONAL */ + BIT_STRING_t *supportedNAICS_2CRS_AP; /* OPTIONAL */ + long *additionalRx_Tx_PerformanceReq; /* OPTIONAL */ + long *ue_CA_PowerClass_N; /* OPTIONAL */ + BIT_STRING_t *supportedBandwidthCombinationSetEUTRA_v1530; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersEUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleTimingAdvance_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRx_Tx_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_additionalRx_Tx_PerformanceReq_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_CA_PowerClass_N_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersEUTRA_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.c b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.c new file mode 100644 index 0000000..3ba5262 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.c @@ -0,0 +1,301 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersNR-v1540.h" + +static int +memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2 && 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_AllCC_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 >= 5 && 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; + } +} + +static int +memb_ASN_RRC_simultaneousCSI_ReportsAllCC_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 >= 5 && 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; + } +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_dualPA_Architecture_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_AllCC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 5, 32 } /* (5..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 5, 32 } /* (5..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_3[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CA_ParametersNR_v1540__csi_RS_IM_ReceptionForFeedbackPerBandComb, maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC_constr_4, memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC_constraint_3 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNR_v1540__csi_RS_IM_ReceptionForFeedbackPerBandComb, totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC_constr_5, memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC_constraint_3 }, + 0, 0, /* No default value */ + "totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC" + }, +}; +static const int asn_MAP_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_oms_3[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_specs_3 = { + sizeof(struct ASN_RRC_CA_ParametersNR_v1540__csi_RS_IM_ReceptionForFeedbackPerBandComb), + offsetof(struct ASN_RRC_CA_ParametersNR_v1540__csi_RS_IM_ReceptionForFeedbackPerBandComb, _asn_ctx), + asn_MAP_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tag2el_3, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_oms_3, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_3 = { + "csi-RS-IM-ReceptionForFeedbackPerBandComb", + "csi-RS-IM-ReceptionForFeedbackPerBandComb", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3, + sizeof(asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dualPA_Architecture_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dualPA_Architecture_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dualPA_Architecture_specs_7 = { + asn_MAP_ASN_RRC_dualPA_Architecture_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dualPA_Architecture_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dualPA_Architecture_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_ASN_RRC_dualPA_Architecture_7 = { + "dualPA-Architecture", + "dualPA-Architecture", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dualPA_Architecture_tags_7, + sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_7) + /sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dualPA_Architecture_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_7) + /sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dualPA_Architecture_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dualPA_Architecture_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1540_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CA_ParametersNR_v1540, simultaneousSRS_AssocCSI_RS_AllCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_AllCC_constr_2, memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_AllCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousSRS-AssocCSI-RS-AllCC" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CA_ParametersNR_v1540, csi_RS_IM_ReceptionForFeedbackPerBandComb), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_RS_IM_ReceptionForFeedbackPerBandComb_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-IM-ReceptionForFeedbackPerBandComb" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CA_ParametersNR_v1540, simultaneousCSI_ReportsAllCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constr_6, memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousCSI-ReportsAllCC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNR_v1540, dualPA_Architecture), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dualPA_Architecture_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dualPA-Architecture" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersNR_v1540_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersNR_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* simultaneousSRS-AssocCSI-RS-AllCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-IM-ReceptionForFeedbackPerBandComb */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* simultaneousCSI-ReportsAllCC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* dualPA-Architecture */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1540_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersNR_v1540), + offsetof(struct ASN_RRC_CA_ParametersNR_v1540, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersNR_v1540_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersNR_v1540_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1540 = { + "CA-ParametersNR-v1540", + "CA-ParametersNR-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersNR_v1540_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersNR_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.h b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.h new file mode 100644 index 0000000..87c9a87 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1540.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersNR_v1540_H_ +#define _ASN_RRC_CA_ParametersNR_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_ParametersNR_v1540__dualPA_Architecture { + ASN_RRC_CA_ParametersNR_v1540__dualPA_Architecture_supported = 0 +} e_ASN_RRC_CA_ParametersNR_v1540__dualPA_Architecture; + +/* ASN_RRC_CA-ParametersNR-v1540 */ +typedef struct ASN_RRC_CA_ParametersNR_v1540 { + long *simultaneousSRS_AssocCSI_RS_AllCC; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR_v1540__csi_RS_IM_ReceptionForFeedbackPerBandComb { + long *maxNumberSimultaneousNZP_CSI_RS_ActBWP_AllCC; /* OPTIONAL */ + long *totalNumberPortsSimultaneousNZP_CSI_RS_ActBWP_AllCC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_RS_IM_ReceptionForFeedbackPerBandComb; + long *simultaneousCSI_ReportsAllCC; /* OPTIONAL */ + long *dualPA_Architecture; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersNR_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dualPA_Architecture_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1540_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersNR_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.c b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.c new file mode 100644 index 0000000..7d4149e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersNR-v1550.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_dummy_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_2 = { + asn_MAP_ASN_RRC_dummy_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_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_ASN_RRC_dummy_2 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_2, + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1550_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNR_v1550, dummy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersNR_v1550_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersNR_v1550_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dummy */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1550_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersNR_v1550), + offsetof(struct ASN_RRC_CA_ParametersNR_v1550, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersNR_v1550_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersNR_v1550_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1550 = { + "CA-ParametersNR-v1550", + "CA-ParametersNR-v1550", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1550_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersNR_v1550_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersNR_v1550_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.h b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.h new file mode 100644 index 0000000..8459529 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1550.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersNR_v1550_H_ +#define _ASN_RRC_CA_ParametersNR_v1550_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_ParametersNR_v1550__dummy { + ASN_RRC_CA_ParametersNR_v1550__dummy_supported = 0 +} e_ASN_RRC_CA_ParametersNR_v1550__dummy; + +/* ASN_RRC_CA-ParametersNR-v1550 */ +typedef struct ASN_RRC_CA_ParametersNR_v1550 { + long *dummy; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersNR_v1550_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1550; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1550_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1550_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersNR_v1550_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.c b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.c new file mode 100644 index 0000000..7bfd88a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersNR-v1560.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_specs_2 = { + asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_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_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_2 = { + "diffNumerologyWithinPUCCH-GroupLargerSCS", + "diffNumerologyWithinPUCCH-GroupLargerSCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2, + sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1560_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNR_v1560, diffNumerologyWithinPUCCH_GroupLargerSCS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffNumerologyWithinPUCCH-GroupLargerSCS" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersNR_v1560_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersNR_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* diffNumerologyWithinPUCCH-GroupLargerSCS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1560_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersNR_v1560), + offsetof(struct ASN_RRC_CA_ParametersNR_v1560, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersNR_v1560_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersNR_v1560_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1560 = { + "CA-ParametersNR-v1560", + "CA-ParametersNR-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersNR_v1560_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersNR_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.h b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.h new file mode 100644 index 0000000..57734b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR-v1560.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersNR_v1560_H_ +#define _ASN_RRC_CA_ParametersNR_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_ParametersNR_v1560__diffNumerologyWithinPUCCH_GroupLargerSCS { + ASN_RRC_CA_ParametersNR_v1560__diffNumerologyWithinPUCCH_GroupLargerSCS_supported = 0 +} e_ASN_RRC_CA_ParametersNR_v1560__diffNumerologyWithinPUCCH_GroupLargerSCS; + +/* ASN_RRC_CA-ParametersNR-v1560 */ +typedef struct ASN_RRC_CA_ParametersNR_v1560 { + long *diffNumerologyWithinPUCCH_GroupLargerSCS; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersNR_v1560_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupLargerSCS_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_v1560_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersNR_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR.c b/src/asn/rrc/ASN_RRC_CA-ParametersNR.c new file mode 100644 index 0000000..20f8fe5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR.c @@ -0,0 +1,478 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersNR.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. + */ +/* + * 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 asn_per_constraints_t asn_PER_type_ASN_RRC_dummy_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousRxTxInterBandCA_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousRxTxSUL_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_diffNumerologyAcrossPUCCH_Group_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_supportedNumberTAG_constr_16 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_ASN_RRC_dummy_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_2 = { + asn_MAP_ASN_RRC_dummy_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_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_ASN_RRC_dummy_2 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_2, + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_specs_4 = { + asn_MAP_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4[] = { + (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_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_4 = { + "parallelTxSRS-PUCCH-PUSCH", + "parallelTxSRS-PUCCH-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4, + sizeof(asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4) + /sizeof(asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4) + /sizeof(asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_specs_6 = { + asn_MAP_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6[] = { + (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_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_6 = { + "parallelTxPRACH-SRS-PUCCH-PUSCH", + "parallelTxPRACH-SRS-PUCCH-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6, + sizeof(asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousRxTxInterBandCA_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRxTxInterBandCA_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRxTxInterBandCA_specs_8 = { + asn_MAP_ASN_RRC_simultaneousRxTxInterBandCA_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRxTxInterBandCA_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_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_ASN_RRC_simultaneousRxTxInterBandCA_8 = { + "simultaneousRxTxInterBandCA", + "simultaneousRxTxInterBandCA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8, + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRxTxInterBandCA_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRxTxInterBandCA_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousRxTxSUL_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRxTxSUL_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRxTxSUL_specs_10 = { + asn_MAP_ASN_RRC_simultaneousRxTxSUL_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRxTxSUL_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10[] = { + (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_ASN_RRC_simultaneousRxTxSUL_10 = { + "simultaneousRxTxSUL", + "simultaneousRxTxSUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10, + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxSUL_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRxTxSUL_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRxTxSUL_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_diffNumerologyAcrossPUCCH_Group_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_diffNumerologyAcrossPUCCH_Group_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_diffNumerologyAcrossPUCCH_Group_specs_12 = { + asn_MAP_ASN_RRC_diffNumerologyAcrossPUCCH_Group_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_diffNumerologyAcrossPUCCH_Group_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12[] = { + (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_ASN_RRC_diffNumerologyAcrossPUCCH_Group_12 = { + "diffNumerologyAcrossPUCCH-Group", + "diffNumerologyAcrossPUCCH-Group", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12, + sizeof(asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_diffNumerologyAcrossPUCCH_Group_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_diffNumerologyAcrossPUCCH_Group_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_specs_14 = { + asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_14 = { + "diffNumerologyWithinPUCCH-GroupSmallerSCS", + "diffNumerologyWithinPUCCH-GroupSmallerSCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14, + sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14) + /sizeof(asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedNumberTAG_value2enum_16[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedNumberTAG_enum2value_16[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedNumberTAG_specs_16 = { + asn_MAP_ASN_RRC_supportedNumberTAG_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedNumberTAG_enum2value_16, /* 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_ASN_RRC_supportedNumberTAG_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedNumberTAG_16 = { + "supportedNumberTAG", + "supportedNumberTAG", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedNumberTAG_tags_16, + sizeof(asn_DEF_ASN_RRC_supportedNumberTAG_tags_16) + /sizeof(asn_DEF_ASN_RRC_supportedNumberTAG_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedNumberTAG_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedNumberTAG_tags_16) + /sizeof(asn_DEF_ASN_RRC_supportedNumberTAG_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedNumberTAG_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedNumberTAG_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CA_ParametersNR, dummy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CA_ParametersNR, parallelTxSRS_PUCCH_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parallelTxSRS-PUCCH-PUSCH" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CA_ParametersNR, parallelTxPRACH_SRS_PUCCH_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parallelTxPRACH-SRS-PUCCH-PUSCH" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CA_ParametersNR, simultaneousRxTxInterBandCA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxInterBandCA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CA_ParametersNR, simultaneousRxTxSUL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRxTxSUL_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxSUL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CA_ParametersNR, diffNumerologyAcrossPUCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffNumerologyAcrossPUCCH-Group" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CA_ParametersNR, diffNumerologyWithinPUCCH_GroupSmallerSCS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffNumerologyWithinPUCCH-GroupSmallerSCS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNR, supportedNumberTAG), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedNumberTAG_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedNumberTAG" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersNR_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* parallelTxSRS-PUCCH-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* parallelTxPRACH-SRS-PUCCH-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* simultaneousRxTxInterBandCA */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* simultaneousRxTxSUL */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* diffNumerologyAcrossPUCCH-Group */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* diffNumerologyWithinPUCCH-GroupSmallerSCS */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* supportedNumberTAG */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersNR), + offsetof(struct ASN_RRC_CA_ParametersNR, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersNR_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersNR_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR = { + "CA-ParametersNR", + "CA-ParametersNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersNR_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersNR_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNR.h b/src/asn/rrc/ASN_RRC_CA-ParametersNR.h new file mode 100644 index 0000000..d549ed7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNR.h @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersNR_H_ +#define _ASN_RRC_CA_ParametersNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CA_ParametersNR__dummy { + ASN_RRC_CA_ParametersNR__dummy_supported = 0 +} e_ASN_RRC_CA_ParametersNR__dummy; +typedef enum ASN_RRC_CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH { + ASN_RRC_CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH_supported = 0 +} e_ASN_RRC_CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH; +typedef enum ASN_RRC_CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH { + ASN_RRC_CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH_supported = 0 +} e_ASN_RRC_CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH; +typedef enum ASN_RRC_CA_ParametersNR__simultaneousRxTxInterBandCA { + ASN_RRC_CA_ParametersNR__simultaneousRxTxInterBandCA_supported = 0 +} e_ASN_RRC_CA_ParametersNR__simultaneousRxTxInterBandCA; +typedef enum ASN_RRC_CA_ParametersNR__simultaneousRxTxSUL { + ASN_RRC_CA_ParametersNR__simultaneousRxTxSUL_supported = 0 +} e_ASN_RRC_CA_ParametersNR__simultaneousRxTxSUL; +typedef enum ASN_RRC_CA_ParametersNR__diffNumerologyAcrossPUCCH_Group { + ASN_RRC_CA_ParametersNR__diffNumerologyAcrossPUCCH_Group_supported = 0 +} e_ASN_RRC_CA_ParametersNR__diffNumerologyAcrossPUCCH_Group; +typedef enum ASN_RRC_CA_ParametersNR__diffNumerologyWithinPUCCH_GroupSmallerSCS { + ASN_RRC_CA_ParametersNR__diffNumerologyWithinPUCCH_GroupSmallerSCS_supported = 0 +} e_ASN_RRC_CA_ParametersNR__diffNumerologyWithinPUCCH_GroupSmallerSCS; +typedef enum ASN_RRC_CA_ParametersNR__supportedNumberTAG { + ASN_RRC_CA_ParametersNR__supportedNumberTAG_n2 = 0, + ASN_RRC_CA_ParametersNR__supportedNumberTAG_n3 = 1, + ASN_RRC_CA_ParametersNR__supportedNumberTAG_n4 = 2 +} e_ASN_RRC_CA_ParametersNR__supportedNumberTAG; + +/* ASN_RRC_CA-ParametersNR */ +typedef struct ASN_RRC_CA_ParametersNR { + long *dummy; /* OPTIONAL */ + long *parallelTxSRS_PUCCH_PUSCH; /* OPTIONAL */ + long *parallelTxPRACH_SRS_PUCCH_PUSCH; /* OPTIONAL */ + long *simultaneousRxTxInterBandCA; /* OPTIONAL */ + long *simultaneousRxTxSUL; /* OPTIONAL */ + long *diffNumerologyAcrossPUCCH_Group; /* OPTIONAL */ + long *diffNumerologyWithinPUCCH_GroupSmallerSCS; /* OPTIONAL */ + long *supportedNumberTAG; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_parallelTxSRS_PUCCH_PUSCH_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_parallelTxPRACH_SRS_PUCCH_PUSCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRxTxInterBandCA_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRxTxSUL_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_diffNumerologyAcrossPUCCH_Group_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_diffNumerologyWithinPUCCH_GroupSmallerSCS_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedNumberTAG_16; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNR_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.c b/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.c new file mode 100644 index 0000000..d25a78a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CA-ParametersNRDC.h" + +#include "ASN_RRC_CA-ParametersNR.h" +#include "ASN_RRC_CA-ParametersNR-v1540.h" +#include "ASN_RRC_CA-ParametersNR-v1550.h" +#include "ASN_RRC_CA-ParametersNR-v1560.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNRDC_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CA_ParametersNRDC, ca_ParametersNR_ForDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-ForDC" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CA_ParametersNRDC, ca_ParametersNR_ForDC_v1540), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-ForDC-v1540" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CA_ParametersNRDC, ca_ParametersNR_ForDC_v1550), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-ForDC-v1550" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CA_ParametersNRDC, ca_ParametersNR_ForDC_v1560), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_ParametersNR_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR-ForDC-v1560" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CA_ParametersNRDC, featureSetCombinationDC), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetCombinationId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "featureSetCombinationDC" + }, +}; +static const int asn_MAP_ASN_RRC_CA_ParametersNRDC_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CA_ParametersNRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ca-ParametersNR-ForDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ca-ParametersNR-ForDC-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ca-ParametersNR-ForDC-v1550 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ca-ParametersNR-ForDC-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* featureSetCombinationDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNRDC_specs_1 = { + sizeof(struct ASN_RRC_CA_ParametersNRDC), + offsetof(struct ASN_RRC_CA_ParametersNRDC, _asn_ctx), + asn_MAP_ASN_RRC_CA_ParametersNRDC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CA_ParametersNRDC_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNRDC = { + "CA-ParametersNRDC", + "CA-ParametersNRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CA_ParametersNRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CA_ParametersNRDC_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_CA_ParametersNRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.h b/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.h new file mode 100644 index 0000000..63b63a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CA-ParametersNRDC.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CA_ParametersNRDC_H_ +#define _ASN_RRC_CA_ParametersNRDC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FeatureSetCombinationId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CA_ParametersNR; +struct ASN_RRC_CA_ParametersNR_v1540; +struct ASN_RRC_CA_ParametersNR_v1550; +struct ASN_RRC_CA_ParametersNR_v1560; + +/* ASN_RRC_CA-ParametersNRDC */ +typedef struct ASN_RRC_CA_ParametersNRDC { + struct ASN_RRC_CA_ParametersNR *ca_ParametersNR_ForDC; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR_v1540 *ca_ParametersNR_ForDC_v1540; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR_v1550 *ca_ParametersNR_ForDC_v1550; /* OPTIONAL */ + struct ASN_RRC_CA_ParametersNR_v1560 *ca_ParametersNR_ForDC_v1560; /* OPTIONAL */ + ASN_RRC_FeatureSetCombinationId_t *featureSetCombinationDC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CA_ParametersNRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CA_ParametersNRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CA_ParametersNRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CA_ParametersNRDC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CA_ParametersNRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.c b/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.c new file mode 100644 index 0000000..87a5e58 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CFRA-CSIRS-Resource.h" + +static int +memb_NativeInteger_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ra_OccasionList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_ra_PreambleIndex_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_ASN_RRC_Member_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ra_OccasionList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_OccasionList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_5 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_ASN_RRC_ra_OccasionList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ra_OccasionList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ra_OccasionList_specs_3 = { + sizeof(struct ASN_RRC_CFRA_CSIRS_Resource__ra_OccasionList), + offsetof(struct ASN_RRC_CFRA_CSIRS_Resource__ra_OccasionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_OccasionList_3 = { + "ra-OccasionList", + "ra-OccasionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ra_OccasionList_tags_3, + sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_OccasionList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ra_OccasionList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_OccasionList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ra_OccasionList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ra_OccasionList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_CSIRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA_CSIRS_Resource, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA_CSIRS_Resource, ra_OccasionList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ra_OccasionList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_OccasionList_constr_3, memb_ASN_RRC_ra_OccasionList_constraint_1 }, + 0, 0, /* No default value */ + "ra-OccasionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA_CSIRS_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_5, memb_ASN_RRC_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CFRA_CSIRS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ra-OccasionList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ra-PreambleIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_CSIRS_Resource_specs_1 = { + sizeof(struct ASN_RRC_CFRA_CSIRS_Resource), + offsetof(struct ASN_RRC_CFRA_CSIRS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_CFRA_CSIRS_Resource_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_ASN_RRC_CFRA_CSIRS_Resource = { + "CFRA-CSIRS-Resource", + "CFRA-CSIRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_CSIRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CFRA_CSIRS_Resource_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CFRA_CSIRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.h b/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.h new file mode 100644 index 0000000..0f69d55 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA-CSIRS-Resource.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CFRA_CSIRS_Resource_H_ +#define _ASN_RRC_CFRA_CSIRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-RS-Index.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CFRA-CSIRS-Resource */ +typedef struct ASN_RRC_CFRA_CSIRS_Resource { + ASN_RRC_CSI_RS_Index_t csi_RS; + struct ASN_RRC_CFRA_CSIRS_Resource__ra_OccasionList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ra_OccasionList; + long ra_PreambleIndex; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CFRA_CSIRS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CFRA_CSIRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_CSIRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_CSIRS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CFRA_CSIRS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.c b/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.c new file mode 100644 index 0000000..6d8face --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CFRA-SSB-Resource.h" + +static int +memb_ASN_RRC_ra_PreambleIndex_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_ASN_RRC_ra_PreambleIndex_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_SSB_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA_SSB_Resource, ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA_SSB_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_PreambleIndex_constr_3, memb_ASN_RRC_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CFRA_SSB_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ra-PreambleIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_SSB_Resource_specs_1 = { + sizeof(struct ASN_RRC_CFRA_SSB_Resource), + offsetof(struct ASN_RRC_CFRA_SSB_Resource, _asn_ctx), + asn_MAP_ASN_RRC_CFRA_SSB_Resource_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_ASN_RRC_CFRA_SSB_Resource = { + "CFRA-SSB-Resource", + "CFRA-SSB-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_SSB_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CFRA_SSB_Resource_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CFRA_SSB_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.h b/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.h new file mode 100644 index 0000000..e3e5972 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA-SSB-Resource.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CFRA_SSB_Resource_H_ +#define _ASN_RRC_CFRA_SSB_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CFRA-SSB-Resource */ +typedef struct ASN_RRC_CFRA_SSB_Resource { + ASN_RRC_SSB_Index_t ssb; + long ra_PreambleIndex; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CFRA_SSB_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CFRA_SSB_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_SSB_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_SSB_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CFRA_SSB_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CFRA.c b/src/asn/rrc/ASN_RRC_CFRA.c new file mode 100644 index 0000000..2817b97 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA.c @@ -0,0 +1,598 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CFRA.h" + +#include "ASN_RRC_CFRA-SSB-Resource.h" +#include "ASN_RRC_CFRA-CSIRS-Resource.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_ssb_ResourceList_constraint_14(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 <= 64)) { + /* 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 int +memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_csirs_ResourceList_constraint_18(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 <= 96)) { + /* 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 int +memb_ASN_RRC_totalNumberOfRA_Preambles_v1530_constraint_23(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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_type_ASN_RRC_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_ssb_ResourceList_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ssb_ResourceList_constr_15 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_17 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_type_ASN_RRC_csirs_ResourceList_constr_19 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csirs_ResourceList_constr_19 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_resources_constr_13 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_ASN_RRC_totalNumberOfRA_Preambles_v1530_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_4[] = { + { 0, 9, "oneEighth" }, + { 1, 9, "oneFourth" }, + { 2, 7, "oneHalf" }, + { 3, 3, "one" }, + { 4, 3, "two" }, + { 5, 4, "four" }, + { 6, 5, "eight" }, + { 7, 7, "sixteen" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_4[] = { + 6, /* eight(6) */ + 5, /* four(5) */ + 3, /* one(3) */ + 0, /* oneEighth(0) */ + 1, /* oneFourth(1) */ + 2, /* oneHalf(2) */ + 7, /* sixteen(7) */ + 4 /* two(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_4 = { + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_4, /* 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_ASN_RRC_ssb_perRACH_Occasion_tags_4[] = { + (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_ASN_RRC_ssb_perRACH_Occasion_4 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4, + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_occasions_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA__occasions, rach_ConfigGeneric), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigGeneric" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CFRA__occasions, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_perRACH_Occasion_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, +}; +static const int asn_MAP_ASN_RRC_occasions_oms_2[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_occasions_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_occasions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-ConfigGeneric */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-perRACH-Occasion */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_occasions_specs_2 = { + sizeof(struct ASN_RRC_CFRA__occasions), + offsetof(struct ASN_RRC_CFRA__occasions, _asn_ctx), + asn_MAP_ASN_RRC_occasions_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_occasions_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_occasions_2 = { + "occasions", + "occasions", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_occasions_tags_2, + sizeof(asn_DEF_ASN_RRC_occasions_tags_2) + /sizeof(asn_DEF_ASN_RRC_occasions_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_occasions_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_occasions_tags_2) + /sizeof(asn_DEF_ASN_RRC_occasions_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_occasions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_occasions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ssb_ResourceList_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CFRA_SSB_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_ResourceList_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ssb_ResourceList_specs_15 = { + sizeof(struct ASN_RRC_CFRA__resources__ssb__ssb_ResourceList), + offsetof(struct ASN_RRC_CFRA__resources__ssb__ssb_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_ResourceList_15 = { + "ssb-ResourceList", + "ssb-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ssb_ResourceList_tags_15, + sizeof(asn_DEF_ASN_RRC_ssb_ResourceList_tags_15) + /sizeof(asn_DEF_ASN_RRC_ssb_ResourceList_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_ResourceList_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_ResourceList_tags_15) + /sizeof(asn_DEF_ASN_RRC_ssb_ResourceList_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_ResourceList_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ssb_ResourceList_15, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ssb_ResourceList_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ssb_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA__resources__ssb, ssb_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_ssb_ResourceList_15, + 0, + { 0, &asn_PER_memb_ASN_RRC_ssb_ResourceList_constr_15, memb_ASN_RRC_ssb_ResourceList_constraint_14 }, + 0, 0, /* No default value */ + "ssb-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA__resources__ssb, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_17, memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constraint_14 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ssb_tag2el_14[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ra-ssb-OccasionMaskIndex */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ssb_specs_14 = { + sizeof(struct ASN_RRC_CFRA__resources__ssb), + offsetof(struct ASN_RRC_CFRA__resources__ssb, _asn_ctx), + asn_MAP_ASN_RRC_ssb_tag2el_14, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_14 = { + "ssb", + "ssb", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ssb_tags_14, + sizeof(asn_DEF_ASN_RRC_ssb_tags_14) + /sizeof(asn_DEF_ASN_RRC_ssb_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_tags_14) + /sizeof(asn_DEF_ASN_RRC_ssb_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ssb_14, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ssb_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csirs_ResourceList_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CFRA_CSIRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csirs_ResourceList_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csirs_ResourceList_specs_19 = { + sizeof(struct ASN_RRC_CFRA__resources__csirs__csirs_ResourceList), + offsetof(struct ASN_RRC_CFRA__resources__csirs__csirs_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csirs_ResourceList_19 = { + "csirs-ResourceList", + "csirs-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csirs_ResourceList_tags_19, + sizeof(asn_DEF_ASN_RRC_csirs_ResourceList_tags_19) + /sizeof(asn_DEF_ASN_RRC_csirs_ResourceList_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csirs_ResourceList_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csirs_ResourceList_tags_19) + /sizeof(asn_DEF_ASN_RRC_csirs_ResourceList_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csirs_ResourceList_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csirs_ResourceList_19, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csirs_ResourceList_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csirs_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA__resources__csirs, csirs_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_csirs_ResourceList_19, + 0, + { 0, &asn_PER_memb_ASN_RRC_csirs_ResourceList_constr_19, memb_ASN_RRC_csirs_ResourceList_constraint_18 }, + 0, 0, /* No default value */ + "csirs-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA__resources__csirs, rsrp_ThresholdCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdCSI-RS" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csirs_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csirs_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csirs-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsrp-ThresholdCSI-RS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_csirs_specs_18 = { + sizeof(struct ASN_RRC_CFRA__resources__csirs), + offsetof(struct ASN_RRC_CFRA__resources__csirs, _asn_ctx), + asn_MAP_ASN_RRC_csirs_tag2el_18, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csirs_18 = { + "csirs", + "csirs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_csirs_tags_18, + sizeof(asn_DEF_ASN_RRC_csirs_tags_18) + /sizeof(asn_DEF_ASN_RRC_csirs_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csirs_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csirs_tags_18) + /sizeof(asn_DEF_ASN_RRC_csirs_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_csirs_18, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_csirs_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resources_13[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CFRA__resources, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_ssb_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CFRA__resources, choice.csirs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csirs_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csirs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_resources_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csirs */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_resources_specs_13 = { + sizeof(struct ASN_RRC_CFRA__resources), + offsetof(struct ASN_RRC_CFRA__resources, _asn_ctx), + offsetof(struct ASN_RRC_CFRA__resources, present), + sizeof(((struct ASN_RRC_CFRA__resources *)0)->present), + asn_MAP_ASN_RRC_resources_tag2el_13, + 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_ASN_RRC_resources_13 = { + "resources", + "resources", + &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_ASN_RRC_resources_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_resources_13, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_resources_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_23[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CFRA__ext1, totalNumberOfRA_Preambles_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberOfRA_Preambles_v1530_constr_24, memb_ASN_RRC_totalNumberOfRA_Preambles_v1530_constraint_23 }, + 0, 0, /* No default value */ + "totalNumberOfRA-Preambles-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_23[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* totalNumberOfRA-Preambles-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_23 = { + sizeof(struct ASN_RRC_CFRA__ext1), + offsetof(struct ASN_RRC_CFRA__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_23, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_23, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_23 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_23, + sizeof(asn_DEF_ASN_RRC_ext1_tags_23) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_23) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_23, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CFRA, occasions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_occasions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occasions" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CFRA, resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resources_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resources" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CFRA, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_CFRA_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CFRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CFRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* occasions */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_specs_1 = { + sizeof(struct ASN_RRC_CFRA), + offsetof(struct ASN_RRC_CFRA, _asn_ctx), + asn_MAP_ASN_RRC_CFRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CFRA_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CFRA = { + "CFRA", + "CFRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CFRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CFRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CFRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CFRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CFRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CFRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CFRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CFRA.h b/src/asn/rrc/ASN_RRC_CFRA.h new file mode 100644 index 0000000..8e738e2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CFRA.h @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CFRA_H_ +#define _ASN_RRC_CFRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RACH-ConfigGeneric.h" +#include +#include +#include +#include +#include +#include "ASN_RRC_RSRP-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion { + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_oneEighth = 0, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_oneFourth = 1, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_oneHalf = 2, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_one = 3, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_two = 4, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_four = 5, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_eight = 6, + ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion_sixteen = 7 +} e_ASN_RRC_CFRA__occasions__ssb_perRACH_Occasion; +typedef enum ASN_RRC_CFRA__resources_PR { + ASN_RRC_CFRA__resources_PR_NOTHING, /* No components present */ + ASN_RRC_CFRA__resources_PR_ssb, + ASN_RRC_CFRA__resources_PR_csirs +} ASN_RRC_CFRA__resources_PR; + +/* Forward declarations */ +struct ASN_RRC_CFRA_SSB_Resource; +struct ASN_RRC_CFRA_CSIRS_Resource; + +/* ASN_RRC_CFRA */ +typedef struct ASN_RRC_CFRA { + struct ASN_RRC_CFRA__occasions { + ASN_RRC_RACH_ConfigGeneric_t rach_ConfigGeneric; + long *ssb_perRACH_Occasion; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *occasions; + struct ASN_RRC_CFRA__resources { + ASN_RRC_CFRA__resources_PR present; + union ASN_RRC_CFRA__ASN_RRC_resources_u { + struct ASN_RRC_CFRA__resources__ssb { + struct ASN_RRC_CFRA__resources__ssb__ssb_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_CFRA_SSB_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ssb_ResourceList; + long ra_ssb_OccasionMaskIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ssb; + struct ASN_RRC_CFRA__resources__csirs { + struct ASN_RRC_CFRA__resources__csirs__csirs_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_CFRA_CSIRS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csirs_ResourceList; + ASN_RRC_RSRP_Range_t rsrp_ThresholdCSI_RS; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csirs; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resources; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_CFRA__ext1 { + long *totalNumberOfRA_Preambles_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CFRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_perRACH_Occasion_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CFRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CFRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CFRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CFRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-Config-IEs.c b/src/asn/rrc/ASN_RRC_CG-Config-IEs.c new file mode 100644 index 0000000..a0d094f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-IEs.c @@ -0,0 +1,227 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-Config-IEs.h" + +#include "ASN_RRC_ConfigRestrictModReqSCG.h" +#include "ASN_RRC_DRX-Info.h" +#include "ASN_RRC_MeasConfigSN.h" +#include "ASN_RRC_BandCombinationInfoSN.h" +#include "ASN_RRC_FR-InfoList.h" +#include "ASN_RRC_CandidateServingFreqListNR.h" +#include "ASN_RRC_CG-Config-v1540-IEs.h" +static int +memb_ASN_RRC_scg_CellGroupConfig_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_scg_RB_Config_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_candidateCellInfoListSN_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scg_CellGroupConfig_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scg_RB_Config_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_candidateCellInfoListSN_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_IEs_1[] = { + { ATF_POINTER, 10, offsetof(struct ASN_RRC_CG_Config_IEs, scg_CellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scg_CellGroupConfig_constr_2, memb_ASN_RRC_scg_CellGroupConfig_constraint_1 }, + 0, 0, /* No default value */ + "scg-CellGroupConfig" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_CG_Config_IEs, scg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scg_RB_Config_constr_3, memb_ASN_RRC_scg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "scg-RB-Config" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CG_Config_IEs, configRestrictModReq), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ConfigRestrictModReqSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictModReq" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CG_Config_IEs, drx_InfoSCG), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRX_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InfoSCG" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CG_Config_IEs, candidateCellInfoListSN), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_candidateCellInfoListSN_constr_6, memb_ASN_RRC_candidateCellInfoListSN_constraint_1 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CG_Config_IEs, measConfigSN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasConfigSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfigSN" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CG_Config_IEs, selectedBandCombination), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationInfoSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedBandCombination" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_Config_IEs, fr_InfoListSCG), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FR_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr-InfoListSCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_Config_IEs, candidateServingFreqListNR), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CandidateServingFreqListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateServingFreqListNR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_Config_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_Config_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_Config_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_Config_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_Config_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scg-CellGroupConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scg-RB-Config */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* configRestrictModReq */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* drx-InfoSCG */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* candidateCellInfoListSN */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* measConfigSN */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* selectedBandCombination */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fr-InfoListSCG */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* candidateServingFreqListNR */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_Config_IEs), + offsetof(struct ASN_RRC_CG_Config_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_Config_IEs_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_Config_IEs_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_IEs = { + "CG-Config-IEs", + "CG-Config-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_Config_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_Config_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_Config_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_Config_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_Config_IEs_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_CG_Config_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-Config-IEs.h b/src/asn/rrc/ASN_RRC_CG-Config-IEs.h new file mode 100644 index 0000000..198ba92 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-IEs.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_Config_IEs_H_ +#define _ASN_RRC_CG_Config_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ConfigRestrictModReqSCG; +struct ASN_RRC_DRX_Info; +struct ASN_RRC_MeasConfigSN; +struct ASN_RRC_BandCombinationInfoSN; +struct ASN_RRC_FR_InfoList; +struct ASN_RRC_CandidateServingFreqListNR; +struct ASN_RRC_CG_Config_v1540_IEs; + +/* ASN_RRC_CG-Config-IEs */ +typedef struct ASN_RRC_CG_Config_IEs { + OCTET_STRING_t *scg_CellGroupConfig; /* OPTIONAL */ + OCTET_STRING_t *scg_RB_Config; /* OPTIONAL */ + struct ASN_RRC_ConfigRestrictModReqSCG *configRestrictModReq; /* OPTIONAL */ + struct ASN_RRC_DRX_Info *drx_InfoSCG; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN; /* OPTIONAL */ + struct ASN_RRC_MeasConfigSN *measConfigSN; /* OPTIONAL */ + struct ASN_RRC_BandCombinationInfoSN *selectedBandCombination; /* OPTIONAL */ + struct ASN_RRC_FR_InfoList *fr_InfoListSCG; /* OPTIONAL */ + struct ASN_RRC_CandidateServingFreqListNR *candidateServingFreqListNR; /* OPTIONAL */ + struct ASN_RRC_CG_Config_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_Config_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_IEs_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_Config_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.c b/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.c new file mode 100644 index 0000000..f9e9a7f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-Config-v1540-IEs.h" + +#include "ASN_RRC_PH-TypeListSCG.h" +#include "ASN_RRC_CG-Config-v1560-IEs.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_requestedCellInfo_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR__requestedCellInfo, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR__requestedCellInfo, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_requestedCellInfo_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_requestedCellInfo_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssbFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellForWhichToReportCGI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_requestedCellInfo_specs_4 = { + sizeof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR__requestedCellInfo), + offsetof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR__requestedCellInfo, _asn_ctx), + asn_MAP_ASN_RRC_requestedCellInfo_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_requestedCellInfo_4 = { + "requestedCellInfo", + "requestedCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_requestedCellInfo_tags_4, + sizeof(asn_DEF_ASN_RRC_requestedCellInfo_tags_4) + /sizeof(asn_DEF_ASN_RRC_requestedCellInfo_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_requestedCellInfo_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_requestedCellInfo_tags_4) + /sizeof(asn_DEF_ASN_RRC_requestedCellInfo_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_requestedCellInfo_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_requestedCellInfo_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportCGI_RequestNR_3[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR, requestedCellInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_requestedCellInfo_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedCellInfo" + }, +}; +static const int asn_MAP_ASN_RRC_reportCGI_RequestNR_oms_3[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportCGI_RequestNR_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* requestedCellInfo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reportCGI_RequestNR_specs_3 = { + sizeof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR), + offsetof(struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR, _asn_ctx), + asn_MAP_ASN_RRC_reportCGI_RequestNR_tag2el_3, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_reportCGI_RequestNR_oms_3, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportCGI_RequestNR_3 = { + "reportCGI-RequestNR", + "reportCGI-RequestNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3, + sizeof(asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3) + /sizeof(asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3) + /sizeof(asn_DEF_ASN_RRC_reportCGI_RequestNR_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reportCGI_RequestNR_3, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_reportCGI_RequestNR_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_v1540_IEs_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CG_Config_v1540_IEs, pSCellFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pSCellFrequency" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_Config_v1540_IEs, reportCGI_RequestNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_reportCGI_RequestNR_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI-RequestNR" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_Config_v1540_IEs, ph_InfoSCG), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_TypeListSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-InfoSCG" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_Config_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_Config_v1560_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_Config_v1540_IEs_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_Config_v1540_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pSCellFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportCGI-RequestNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ph-InfoSCG */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_v1540_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_Config_v1540_IEs), + offsetof(struct ASN_RRC_CG_Config_v1540_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_Config_v1540_IEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_Config_v1540_IEs_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_v1540_IEs = { + "CG-Config-v1540-IEs", + "CG-Config-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_Config_v1540_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CG_Config_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.h b/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.h new file mode 100644 index 0000000..267384d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-v1540-IEs.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_Config_v1540_IEs_H_ +#define _ASN_RRC_CG_Config_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_TypeListSCG; +struct ASN_RRC_CG_Config_v1560_IEs; + +/* ASN_RRC_CG-Config-v1540-IEs */ +typedef struct ASN_RRC_CG_Config_v1540_IEs { + ASN_RRC_ARFCN_ValueNR_t *pSCellFrequency; /* OPTIONAL */ + struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR { + struct ASN_RRC_CG_Config_v1540_IEs__reportCGI_RequestNR__requestedCellInfo { + ASN_RRC_ARFCN_ValueNR_t ssbFrequency; + ASN_RRC_PhysCellId_t cellForWhichToReportCGI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *requestedCellInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reportCGI_RequestNR; + struct ASN_RRC_PH_TypeListSCG *ph_InfoSCG; /* OPTIONAL */ + struct ASN_RRC_CG_Config_v1560_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_Config_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_v1540_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_Config_v1540_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.c b/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.c new file mode 100644 index 0000000..d7a1020 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.c @@ -0,0 +1,294 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-Config-v1560-IEs.h" + +#include "ASN_RRC_CandidateServingFreqListEUTRA.h" +#include "ASN_RRC_DRX-Config.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_needForGaps_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_needForGaps_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_needForGaps_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_needForGaps_specs_6 = { + asn_MAP_ASN_RRC_needForGaps_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_needForGaps_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_needForGaps_tags_6[] = { + (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_ASN_RRC_needForGaps_6 = { + "needForGaps", + "needForGaps", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_needForGaps_tags_6, + sizeof(asn_DEF_ASN_RRC_needForGaps_tags_6) + /sizeof(asn_DEF_ASN_RRC_needForGaps_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_needForGaps_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_needForGaps_tags_6) + /sizeof(asn_DEF_ASN_RRC_needForGaps_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_needForGaps_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_needForGaps_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_requestedCellInfoEUTRA_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA__requestedCellInfoEUTRA, eutraFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutraFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA__requestedCellInfoEUTRA, cellForWhichToReportCGI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI-EUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_requestedCellInfoEUTRA_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutraFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellForWhichToReportCGI-EUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_requestedCellInfoEUTRA_specs_10 = { + sizeof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA__requestedCellInfoEUTRA), + offsetof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA__requestedCellInfoEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_requestedCellInfoEUTRA_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_requestedCellInfoEUTRA_10 = { + "requestedCellInfoEUTRA", + "requestedCellInfoEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10, + sizeof(asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10) + /sizeof(asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10) + /sizeof(asn_DEF_ASN_RRC_requestedCellInfoEUTRA_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_requestedCellInfoEUTRA_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_requestedCellInfoEUTRA_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportCGI_RequestEUTRA_9[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA, requestedCellInfoEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_requestedCellInfoEUTRA_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedCellInfoEUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_reportCGI_RequestEUTRA_oms_9[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportCGI_RequestEUTRA_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* requestedCellInfoEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reportCGI_RequestEUTRA_specs_9 = { + sizeof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA), + offsetof(struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_reportCGI_RequestEUTRA_tag2el_9, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_reportCGI_RequestEUTRA_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_9 = { + "reportCGI-RequestEUTRA", + "reportCGI-RequestEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9, + sizeof(asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9) + /sizeof(asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9) + /sizeof(asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reportCGI_RequestEUTRA_9, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_reportCGI_RequestEUTRA_specs_9 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_13 = { + sizeof(struct ASN_RRC_CG_Config_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_CG_Config_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_13 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_13, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_13) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_13) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_v1560_IEs_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, pSCellFrequencyEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pSCellFrequencyEUTRA" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, scg_CellGroupConfigEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scg-CellGroupConfigEUTRA" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, candidateCellInfoListSN_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN-EUTRA" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, candidateServingFreqListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateServingFreqListEUTRA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, needForGaps), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_needForGaps_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "needForGaps" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, drx_ConfigSCG), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ConfigSCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, reportCGI_RequestEUTRA), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_reportCGI_RequestEUTRA_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI-RequestEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_Config_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_Config_v1560_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_Config_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pSCellFrequencyEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scg-CellGroupConfigEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* candidateCellInfoListSN-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* candidateServingFreqListEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* needForGaps */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* drx-ConfigSCG */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* reportCGI-RequestEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_Config_v1560_IEs), + offsetof(struct ASN_RRC_CG_Config_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_Config_v1560_IEs_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_Config_v1560_IEs_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_v1560_IEs = { + "CG-Config-v1560-IEs", + "CG-Config-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_Config_v1560_IEs_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_CG_Config_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.h b/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.h new file mode 100644 index 0000000..f0e85b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config-v1560-IEs.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_Config_v1560_IEs_H_ +#define _ASN_RRC_CG_Config_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include +#include +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_Config_v1560_IEs__needForGaps { + ASN_RRC_CG_Config_v1560_IEs__needForGaps_true = 0 +} e_ASN_RRC_CG_Config_v1560_IEs__needForGaps; + +/* Forward declarations */ +struct ASN_RRC_CandidateServingFreqListEUTRA; +struct ASN_RRC_DRX_Config; + +/* ASN_RRC_CG-Config-v1560-IEs */ +typedef struct ASN_RRC_CG_Config_v1560_IEs { + ASN_RRC_ARFCN_ValueEUTRA_t *pSCellFrequencyEUTRA; /* OPTIONAL */ + OCTET_STRING_t *scg_CellGroupConfigEUTRA; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN_EUTRA; /* OPTIONAL */ + struct ASN_RRC_CandidateServingFreqListEUTRA *candidateServingFreqListEUTRA; /* OPTIONAL */ + long *needForGaps; /* OPTIONAL */ + struct ASN_RRC_DRX_Config *drx_ConfigSCG; /* OPTIONAL */ + struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA { + struct ASN_RRC_CG_Config_v1560_IEs__reportCGI_RequestEUTRA__requestedCellInfoEUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t eutraFrequency; + ASN_RRC_EUTRA_PhysCellId_t cellForWhichToReportCGI_EUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *requestedCellInfoEUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reportCGI_RequestEUTRA; + struct ASN_RRC_CG_Config_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_Config_v1560_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_needForGaps_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config_v1560_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_v1560_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_v1560_IEs_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_Config_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-Config.c b/src/asn/rrc/ASN_RRC_CG-Config.c new file mode 100644 index 0000000..c81eee8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-Config.h" + +#include "ASN_RRC_CG-Config-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, choice.cg_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_Config_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cg-Config */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_CG_Config__criticalExtensions__c1), + offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_CG_Config__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_CG_Config__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_CG_Config__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_CG_Config__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_Config__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_CG_Config__criticalExtensions), + offsetof(struct ASN_RRC_CG_Config__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_CG_Config__criticalExtensions, present), + sizeof(((struct ASN_RRC_CG_Config__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_CG_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_Config, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_Config_specs_1 = { + sizeof(struct ASN_RRC_CG_Config), + offsetof(struct ASN_RRC_CG_Config, _asn_ctx), + asn_MAP_ASN_RRC_CG_Config_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_ASN_RRC_CG_Config = { + "CG-Config", + "CG-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_Config_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CG_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-Config.h b/src/asn/rrc/ASN_RRC_CG-Config.h new file mode 100644 index 0000000..b36ee24 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-Config.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_Config_H_ +#define _ASN_RRC_CG_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_Config__criticalExtensions_PR { + ASN_RRC_CG_Config__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_CG_Config__criticalExtensions_PR_c1, + ASN_RRC_CG_Config__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_CG_Config__criticalExtensions_PR; +typedef enum ASN_RRC_CG_Config__criticalExtensions__c1_PR { + ASN_RRC_CG_Config__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_CG_Config__criticalExtensions__c1_PR_cg_Config, + ASN_RRC_CG_Config__criticalExtensions__c1_PR_spare3, + ASN_RRC_CG_Config__criticalExtensions__c1_PR_spare2, + ASN_RRC_CG_Config__criticalExtensions__c1_PR_spare1 +} ASN_RRC_CG_Config__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_CG_Config_IEs; + +/* ASN_RRC_CG-Config */ +typedef struct ASN_RRC_CG_Config { + struct ASN_RRC_CG_Config__criticalExtensions { + ASN_RRC_CG_Config__criticalExtensions_PR present; + union ASN_RRC_CG_Config__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_CG_Config__criticalExtensions__c1 { + ASN_RRC_CG_Config__criticalExtensions__c1_PR present; + union ASN_RRC_CG_Config__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_CG_Config_IEs *cg_Config; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_CG_Config__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_Config; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.c b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.c new file mode 100644 index 0000000..cbd13e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.c @@ -0,0 +1,442 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-ConfigInfo-IEs.h" + +#include "ASN_RRC_MeasResultList2NR.h" +#include "ASN_RRC_MeasResultCellListSFTD-NR.h" +#include "ASN_RRC_ConfigRestrictInfoSCG.h" +#include "ASN_RRC_DRX-Info.h" +#include "ASN_RRC_MeasConfigMN.h" +#include "ASN_RRC_MRDC-AssistanceInfo.h" +#include "ASN_RRC_CG-ConfigInfo-v1540-IEs.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_measResultSCG_constraint_6(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_ue_CapabilityInfo_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_candidateCellInfoListSN_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_sourceConfigSCG_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_scg_RB_Config_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_mcg_RB_Config_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureType_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_measResultSCG_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ue_CapabilityInfo_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_candidateCellInfoListSN_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sourceConfigSCG_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scg_RB_Config_constr_19 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_mcg_RB_Config_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_failureType_value2enum_7[] = { + { 0, 11, "t310-Expiry" }, + { 1, 19, "randomAccessProblem" }, + { 2, 14, "rlc-MaxNumRetx" }, + { 3, 24, "synchReconfigFailure-SCG" }, + { 4, 19, "scg-reconfigFailure" }, + { 5, 21, "srb3-IntegrityFailure" } +}; +static const unsigned int asn_MAP_ASN_RRC_failureType_enum2value_7[] = { + 1, /* randomAccessProblem(1) */ + 2, /* rlc-MaxNumRetx(2) */ + 4, /* scg-reconfigFailure(4) */ + 5, /* srb3-IntegrityFailure(5) */ + 3, /* synchReconfigFailure-SCG(3) */ + 0 /* t310-Expiry(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_failureType_specs_7 = { + asn_MAP_ASN_RRC_failureType_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_failureType_enum2value_7, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_failureType_tags_7[] = { + (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_ASN_RRC_failureType_7 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_failureType_tags_7, + sizeof(asn_DEF_ASN_RRC_failureType_tags_7) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureType_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureType_tags_7) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureType_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_failureType_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_scgFailureInfo_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo, failureType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_failureType_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo, measResultSCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_measResultSCG_constr_14, memb_ASN_RRC_measResultSCG_constraint_6 }, + 0, 0, /* No default value */ + "measResultSCG" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scgFailureInfo_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_scgFailureInfo_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResultSCG */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_scgFailureInfo_specs_6 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo), + offsetof(struct ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo, _asn_ctx), + asn_MAP_ASN_RRC_scgFailureInfo_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scgFailureInfo_6 = { + "scgFailureInfo", + "scgFailureInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_scgFailureInfo_tags_6, + sizeof(asn_DEF_ASN_RRC_scgFailureInfo_tags_6) + /sizeof(asn_DEF_ASN_RRC_scgFailureInfo_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scgFailureInfo_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scgFailureInfo_tags_6) + /sizeof(asn_DEF_ASN_RRC_scgFailureInfo_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_scgFailureInfo_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_scgFailureInfo_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_IEs_1[] = { + { ATF_POINTER, 13, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, ue_CapabilityInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ue_CapabilityInfo_constr_2, memb_ASN_RRC_ue_CapabilityInfo_constraint_1 }, + 0, 0, /* No default value */ + "ue-CapabilityInfo" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, candidateCellInfoListMN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListMN" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, candidateCellInfoListSN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_candidateCellInfoListSN_constr_4, memb_ASN_RRC_candidateCellInfoListSN_constraint_1 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, measResultCellListSFTD_NR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultCellListSFTD-NR" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, scgFailureInfo), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_scgFailureInfo_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInfo" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, configRestrictInfo), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ConfigRestrictInfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictInfo" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, drx_InfoMCG), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRX_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InfoMCG" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, measConfigMN), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasConfigMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfigMN" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, sourceConfigSCG), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sourceConfigSCG_constr_18, memb_ASN_RRC_sourceConfigSCG_constraint_1 }, + 0, 0, /* No default value */ + "sourceConfigSCG" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, scg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_scg_RB_Config_constr_19, memb_ASN_RRC_scg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "scg-RB-Config" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, mcg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_mcg_RB_Config_constr_20, memb_ASN_RRC_mcg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "mcg-RB-Config" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, mrdc_AssistanceInfo), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MRDC_AssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-AssistanceInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_ConfigInfo_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_ConfigInfo_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-CapabilityInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* candidateCellInfoListMN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* candidateCellInfoListSN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* measResultCellListSFTD-NR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scgFailureInfo */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* configRestrictInfo */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* drx-InfoMCG */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* measConfigMN */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sourceConfigSCG */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* scg-RB-Config */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* mcg-RB-Config */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* mrdc-AssistanceInfo */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_IEs), + offsetof(struct ASN_RRC_CG_ConfigInfo_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_ConfigInfo_IEs_tag2el_1, + 13, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_ConfigInfo_IEs_oms_1, /* Optional members */ + 13, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_IEs = { + "CG-ConfigInfo-IEs", + "CG-ConfigInfo-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_ConfigInfo_IEs_1, + 13, /* Elements count */ + &asn_SPC_ASN_RRC_CG_ConfigInfo_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.h b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.h new file mode 100644 index 0000000..8e9a109 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-IEs.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_ConfigInfo_IEs_H_ +#define _ASN_RRC_CG_ConfigInfo_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType { + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_t310_Expiry = 0, + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_randomAccessProblem = 1, + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_rlc_MaxNumRetx = 2, + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_synchReconfigFailure_SCG = 3, + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_scg_reconfigFailure = 4, + ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType_srb3_IntegrityFailure = 5 +} e_ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo__failureType; + +/* Forward declarations */ +struct ASN_RRC_MeasResultList2NR; +struct ASN_RRC_MeasResultCellListSFTD_NR; +struct ASN_RRC_ConfigRestrictInfoSCG; +struct ASN_RRC_DRX_Info; +struct ASN_RRC_MeasConfigMN; +struct ASN_RRC_MRDC_AssistanceInfo; +struct ASN_RRC_CG_ConfigInfo_v1540_IEs; + +/* ASN_RRC_CG-ConfigInfo-IEs */ +typedef struct ASN_RRC_CG_ConfigInfo_IEs { + OCTET_STRING_t *ue_CapabilityInfo; /* OPTIONAL */ + struct ASN_RRC_MeasResultList2NR *candidateCellInfoListMN; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN; /* OPTIONAL */ + struct ASN_RRC_MeasResultCellListSFTD_NR *measResultCellListSFTD_NR; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_IEs__scgFailureInfo { + long failureType; + OCTET_STRING_t measResultSCG; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *scgFailureInfo; + struct ASN_RRC_ConfigRestrictInfoSCG *configRestrictInfo; /* OPTIONAL */ + struct ASN_RRC_DRX_Info *drx_InfoMCG; /* OPTIONAL */ + struct ASN_RRC_MeasConfigMN *measConfigMN; /* OPTIONAL */ + OCTET_STRING_t *sourceConfigSCG; /* OPTIONAL */ + OCTET_STRING_t *scg_RB_Config; /* OPTIONAL */ + OCTET_STRING_t *mcg_RB_Config; /* OPTIONAL */ + struct ASN_RRC_MRDC_AssistanceInfo *mrdc_AssistanceInfo; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_ConfigInfo_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureType_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_IEs_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_ConfigInfo_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.c b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.c new file mode 100644 index 0000000..76b6320 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-ConfigInfo-v1540-IEs.h" + +#include "ASN_RRC_PH-TypeListMCG.h" +#include "ASN_RRC_CG-ConfigInfo-v1560-IEs.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_measResultReportCGI_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI, cgi_Info), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CGI_InfoNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-Info" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_measResultReportCGI_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_measResultReportCGI_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssbFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellForWhichToReportCGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cgi-Info */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_measResultReportCGI_specs_3 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI, _asn_ctx), + asn_MAP_ASN_RRC_measResultReportCGI_tag2el_3, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measResultReportCGI_3 = { + "measResultReportCGI", + "measResultReportCGI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_measResultReportCGI_tags_3, + sizeof(asn_DEF_ASN_RRC_measResultReportCGI_tags_3) + /sizeof(asn_DEF_ASN_RRC_measResultReportCGI_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measResultReportCGI_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measResultReportCGI_tags_3) + /sizeof(asn_DEF_ASN_RRC_measResultReportCGI_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_measResultReportCGI_3, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_measResultReportCGI_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_v1540_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs, ph_InfoMCG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_TypeListMCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-InfoMCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs, measResultReportCGI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_measResultReportCGI_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultReportCGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_ConfigInfo_v1540_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_ConfigInfo_v1540_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ph-InfoMCG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultReportCGI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_v1540_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1540_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_ConfigInfo_v1540_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_ConfigInfo_v1540_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs = { + "CG-ConfigInfo-v1540-IEs", + "CG-ConfigInfo-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_ConfigInfo_v1540_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CG_ConfigInfo_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.h b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.h new file mode 100644 index 0000000..a721870 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1540-IEs.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_ConfigInfo_v1540_IEs_H_ +#define _ASN_RRC_CG_ConfigInfo_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_CGI-InfoNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_TypeListMCG; +struct ASN_RRC_CG_ConfigInfo_v1560_IEs; + +/* ASN_RRC_CG-ConfigInfo-v1540-IEs */ +typedef struct ASN_RRC_CG_ConfigInfo_v1540_IEs { + struct ASN_RRC_PH_TypeListMCG *ph_InfoMCG; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_v1540_IEs__measResultReportCGI { + ASN_RRC_ARFCN_ValueNR_t ssbFrequency; + ASN_RRC_PhysCellId_t cellForWhichToReportCGI; + ASN_RRC_CGI_InfoNR_t cgi_Info; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measResultReportCGI; + struct ASN_RRC_CG_ConfigInfo_v1560_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_ConfigInfo_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_v1540_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_ConfigInfo_v1540_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.c b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.c new file mode 100644 index 0000000..db07641 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.c @@ -0,0 +1,329 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-ConfigInfo-v1560-IEs.h" + +#include "ASN_RRC_DRX-Config.h" +#include "ASN_RRC_MeasResultCellListSFTD-EUTRA.h" +#include "ASN_RRC_FR-InfoList.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureTypeEUTRA_constr_6 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_ASN_RRC_failureTypeEUTRA_value2enum_6[] = { + { 0, 11, "t313-Expiry" }, + { 1, 19, "randomAccessProblem" }, + { 2, 14, "rlc-MaxNumRetx" }, + { 3, 17, "scg-ChangeFailure" } +}; +static const unsigned int asn_MAP_ASN_RRC_failureTypeEUTRA_enum2value_6[] = { + 1, /* randomAccessProblem(1) */ + 2, /* rlc-MaxNumRetx(2) */ + 3, /* scg-ChangeFailure(3) */ + 0 /* t313-Expiry(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_failureTypeEUTRA_specs_6 = { + asn_MAP_ASN_RRC_failureTypeEUTRA_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_failureTypeEUTRA_enum2value_6, /* 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_ASN_RRC_failureTypeEUTRA_tags_6[] = { + (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_ASN_RRC_failureTypeEUTRA_6 = { + "failureTypeEUTRA", + "failureTypeEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6, + sizeof(asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6) + /sizeof(asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6) + /sizeof(asn_DEF_ASN_RRC_failureTypeEUTRA_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureTypeEUTRA_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_failureTypeEUTRA_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_scgFailureInfoEUTRA_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA, failureTypeEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_failureTypeEUTRA_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureTypeEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA, measResultSCG_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultSCG-EUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_scgFailureInfoEUTRA_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureTypeEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResultSCG-EUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_scgFailureInfoEUTRA_specs_5 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_scgFailureInfoEUTRA_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scgFailureInfoEUTRA_5 = { + "scgFailureInfoEUTRA", + "scgFailureInfoEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5, + sizeof(asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5) + /sizeof(asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5) + /sizeof(asn_DEF_ASN_RRC_scgFailureInfoEUTRA_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_scgFailureInfoEUTRA_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_scgFailureInfoEUTRA_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_measResultReportCGI_EUTRA_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA, eutraFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutraFrequency" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA, cellForWhichToReportCGI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI-EUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA, cgi_InfoEUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CGI_InfoEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-InfoEUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_measResultReportCGI_EUTRA_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutraFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellForWhichToReportCGI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cgi-InfoEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_measResultReportCGI_EUTRA_specs_13 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_measResultReportCGI_EUTRA_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_13 = { + "measResultReportCGI-EUTRA", + "measResultReportCGI-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13, + sizeof(asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13) + /sizeof(asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13) + /sizeof(asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_measResultReportCGI_EUTRA_13, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_measResultReportCGI_EUTRA_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_19 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_19 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_19, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_v1560_IEs_1[] = { + { ATF_POINTER, 9, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, candidateCellInfoListMN_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListMN-EUTRA" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, candidateCellInfoListSN_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN-EUTRA" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, sourceConfigSCG_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceConfigSCG-EUTRA" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, scgFailureInfoEUTRA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_scgFailureInfoEUTRA_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInfoEUTRA" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, drx_ConfigMCG), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ConfigMCG" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, measResultReportCGI_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_measResultReportCGI_EUTRA_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultReportCGI-EUTRA" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, measResultCellListSFTD_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultCellListSFTD-EUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, fr_InfoListMCG), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FR_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr-InfoListMCG" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CG_ConfigInfo_v1560_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_ConfigInfo_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* candidateCellInfoListMN-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* candidateCellInfoListSN-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sourceConfigSCG-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* scgFailureInfoEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* drx-ConfigMCG */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* measResultReportCGI-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measResultCellListSFTD-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fr-InfoListMCG */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs), + offsetof(struct ASN_RRC_CG_ConfigInfo_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CG_ConfigInfo_v1560_IEs_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CG_ConfigInfo_v1560_IEs_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs = { + "CG-ConfigInfo-v1560-IEs", + "CG-ConfigInfo-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_ConfigInfo_v1560_IEs_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_CG_ConfigInfo_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.h b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.h new file mode 100644 index 0000000..7875fa4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo-v1560-IEs.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_ConfigInfo_v1560_IEs_H_ +#define _ASN_RRC_CG_ConfigInfo_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include "ASN_RRC_CGI-InfoEUTRA.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA { + ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA_t313_Expiry = 0, + ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA_randomAccessProblem = 1, + ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA_rlc_MaxNumRetx = 2, + ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA_scg_ChangeFailure = 3 +} e_ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA__failureTypeEUTRA; + +/* Forward declarations */ +struct ASN_RRC_DRX_Config; +struct ASN_RRC_MeasResultCellListSFTD_EUTRA; +struct ASN_RRC_FR_InfoList; + +/* ASN_RRC_CG-ConfigInfo-v1560-IEs */ +typedef struct ASN_RRC_CG_ConfigInfo_v1560_IEs { + OCTET_STRING_t *candidateCellInfoListMN_EUTRA; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN_EUTRA; /* OPTIONAL */ + OCTET_STRING_t *sourceConfigSCG_EUTRA; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_v1560_IEs__scgFailureInfoEUTRA { + long failureTypeEUTRA; + OCTET_STRING_t measResultSCG_EUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *scgFailureInfoEUTRA; + struct ASN_RRC_DRX_Config *drx_ConfigMCG; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_v1560_IEs__measResultReportCGI_EUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t eutraFrequency; + ASN_RRC_EUTRA_PhysCellId_t cellForWhichToReportCGI_EUTRA; + ASN_RRC_CGI_InfoEUTRA_t cgi_InfoEUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measResultReportCGI_EUTRA; + struct ASN_RRC_MeasResultCellListSFTD_EUTRA *measResultCellListSFTD_EUTRA; /* OPTIONAL */ + struct ASN_RRC_FR_InfoList *fr_InfoListMCG; /* OPTIONAL */ + struct ASN_RRC_CG_ConfigInfo_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_ConfigInfo_v1560_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureTypeEUTRA_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo_v1560_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_v1560_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_v1560_IEs_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_ConfigInfo_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo.c b/src/asn/rrc/ASN_RRC_CG-ConfigInfo.c new file mode 100644 index 0000000..c8722bc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-ConfigInfo.h" + +#include "ASN_RRC_CG-ConfigInfo-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, choice.cg_ConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_ConfigInfo_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-ConfigInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cg-ConfigInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1), + offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions), + offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_CG_ConfigInfo__criticalExtensions, present), + sizeof(((struct ASN_RRC_CG_ConfigInfo__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_CG_ConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CG_ConfigInfo, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_ConfigInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CG_ConfigInfo_specs_1 = { + sizeof(struct ASN_RRC_CG_ConfigInfo), + offsetof(struct ASN_RRC_CG_ConfigInfo, _asn_ctx), + asn_MAP_ASN_RRC_CG_ConfigInfo_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_ASN_RRC_CG_ConfigInfo = { + "CG-ConfigInfo", + "CG-ConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CG_ConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CG_ConfigInfo_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CG_ConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-ConfigInfo.h b/src/asn/rrc/ASN_RRC_CG-ConfigInfo.h new file mode 100644 index 0000000..6bf07e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-ConfigInfo.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_ConfigInfo_H_ +#define _ASN_RRC_CG_ConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_ConfigInfo__criticalExtensions_PR { + ASN_RRC_CG_ConfigInfo__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_CG_ConfigInfo__criticalExtensions_PR_c1, + ASN_RRC_CG_ConfigInfo__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_CG_ConfigInfo__criticalExtensions_PR; +typedef enum ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR { + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR_cg_ConfigInfo, + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR_spare3, + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR_spare2, + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR_spare1 +} ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_CG_ConfigInfo_IEs; + +/* ASN_RRC_CG-ConfigInfo */ +typedef struct ASN_RRC_CG_ConfigInfo { + struct ASN_RRC_CG_ConfigInfo__criticalExtensions { + ASN_RRC_CG_ConfigInfo__criticalExtensions_PR present; + union ASN_RRC_CG_ConfigInfo__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_CG_ConfigInfo__criticalExtensions__c1 { + ASN_RRC_CG_ConfigInfo__criticalExtensions__c1_PR present; + union ASN_RRC_CG_ConfigInfo__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_CG_ConfigInfo_IEs *cg_ConfigInfo; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_CG_ConfigInfo__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_ConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_ConfigInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_ConfigInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.c b/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.c new file mode 100644 index 0000000..07315b5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CG-UCI-OnPUSCH.h" + +#include "ASN_RRC_BetaOffsets.h" +static int +memb_ASN_RRC_dynamic_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 <= 4)) { + /* 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_ASN_RRC_dynamic_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_dynamic_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (SIZE(1..4)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_CG_UCI_OnPUSCH_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 asn_TYPE_member_t asn_MBR_ASN_RRC_dynamic_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamic_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dynamic_specs_2 = { + sizeof(struct ASN_RRC_CG_UCI_OnPUSCH__dynamic), + offsetof(struct ASN_RRC_CG_UCI_OnPUSCH__dynamic, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamic_2 = { + "dynamic", + "dynamic", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dynamic_tags_2, + sizeof(asn_DEF_ASN_RRC_dynamic_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamic_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamic_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamic_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamic_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamic_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dynamic_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dynamic_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CG_UCI_OnPUSCH_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_UCI_OnPUSCH, choice.dynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_dynamic_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_dynamic_constr_2, memb_ASN_RRC_dynamic_constraint_1 }, + 0, 0, /* No default value */ + "dynamic" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CG_UCI_OnPUSCH, choice.semiStatic), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStatic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CG_UCI_OnPUSCH_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dynamic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* semiStatic */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CG_UCI_OnPUSCH_specs_1 = { + sizeof(struct ASN_RRC_CG_UCI_OnPUSCH), + offsetof(struct ASN_RRC_CG_UCI_OnPUSCH, _asn_ctx), + offsetof(struct ASN_RRC_CG_UCI_OnPUSCH, present), + sizeof(((struct ASN_RRC_CG_UCI_OnPUSCH *)0)->present), + asn_MAP_ASN_RRC_CG_UCI_OnPUSCH_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_UCI_OnPUSCH = { + "CG-UCI-OnPUSCH", + "CG-UCI-OnPUSCH", + &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_ASN_RRC_CG_UCI_OnPUSCH_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_CG_UCI_OnPUSCH_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CG_UCI_OnPUSCH_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.h b/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.h new file mode 100644 index 0000000..1098111 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CG-UCI-OnPUSCH.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CG_UCI_OnPUSCH_H_ +#define _ASN_RRC_CG_UCI_OnPUSCH_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CG_UCI_OnPUSCH_PR { + ASN_RRC_CG_UCI_OnPUSCH_PR_NOTHING, /* No components present */ + ASN_RRC_CG_UCI_OnPUSCH_PR_dynamic, + ASN_RRC_CG_UCI_OnPUSCH_PR_semiStatic +} ASN_RRC_CG_UCI_OnPUSCH_PR; + +/* Forward declarations */ +struct ASN_RRC_BetaOffsets; + +/* ASN_RRC_CG-UCI-OnPUSCH */ +typedef struct ASN_RRC_CG_UCI_OnPUSCH { + ASN_RRC_CG_UCI_OnPUSCH_PR present; + union ASN_RRC_CG_UCI_OnPUSCH_u { + struct ASN_RRC_CG_UCI_OnPUSCH__dynamic { + A_SEQUENCE_OF(struct ASN_RRC_BetaOffsets) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dynamic; + struct ASN_RRC_BetaOffsets *semiStatic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CG_UCI_OnPUSCH_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CG_UCI_OnPUSCH; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CG_UCI_OnPUSCH_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CG_UCI_OnPUSCH_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CG_UCI_OnPUSCH_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CG_UCI_OnPUSCH_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.c b/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.c new file mode 100644 index 0000000..625556d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.c @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CGI-InfoEUTRA.h" + +#include "ASN_RRC_MultiBandInfoListEUTRA.h" +#include "ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h" +#include "ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h" +static int +memb_ASN_RRC_cgi_info_EPC_list_constraint_2(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 <= 12)) { + /* 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_cgi_info_5GC_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 <= 12)) { + /* 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_ASN_RRC_cgi_info_EPC_list_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_cgi_info_EPC_list_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_cgi_info_5GC_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_freqBandIndicatorPriority_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_cgi_info_5GC_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_cgi_info_EPC_list_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_cgi_info_EPC_list_specs_4 = { + sizeof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC__cgi_info_EPC_list), + offsetof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC__cgi_info_EPC_list, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cgi_info_EPC_list_4 = { + "cgi-info-EPC-list", + "cgi-info-EPC-list", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4, + sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4) + /sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4) + /sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_list_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cgi_info_EPC_list_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_cgi_info_EPC_list_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_cgi_info_EPC_list_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cgi_info_EPC_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC, cgi_info_EPC_legacy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-info-EPC-legacy" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC, cgi_info_EPC_list), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_cgi_info_EPC_list_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_cgi_info_EPC_list_constr_4, memb_ASN_RRC_cgi_info_EPC_list_constraint_2 }, + 0, 0, /* No default value */ + "cgi-info-EPC-list" + }, +}; +static const int asn_MAP_ASN_RRC_cgi_info_EPC_oms_2[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cgi_info_EPC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cgi_info_EPC_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cgi-info-EPC-legacy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cgi-info-EPC-list */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cgi_info_EPC_specs_2 = { + sizeof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC), + offsetof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC, _asn_ctx), + asn_MAP_ASN_RRC_cgi_info_EPC_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cgi_info_EPC_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cgi_info_EPC_2 = { + "cgi-info-EPC", + "cgi-info-EPC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cgi_info_EPC_tags_2, + sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_tags_2) + /sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cgi_info_EPC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_tags_2) + /sizeof(asn_DEF_ASN_RRC_cgi_info_EPC_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cgi_info_EPC_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_cgi_info_EPC_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cgi_info_5GC_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cgi_info_5GC_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_cgi_info_5GC_specs_6 = { + sizeof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_5GC), + offsetof(struct ASN_RRC_CGI_InfoEUTRA__cgi_info_5GC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cgi_info_5GC_6 = { + "cgi-info-5GC", + "cgi-info-5GC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_cgi_info_5GC_tags_6, + sizeof(asn_DEF_ASN_RRC_cgi_info_5GC_tags_6) + /sizeof(asn_DEF_ASN_RRC_cgi_info_5GC_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cgi_info_5GC_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cgi_info_5GC_tags_6) + /sizeof(asn_DEF_ASN_RRC_cgi_info_5GC_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cgi_info_5GC_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_cgi_info_5GC_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_cgi_info_5GC_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_freqBandIndicatorPriority_value2enum_10[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_freqBandIndicatorPriority_enum2value_10[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_freqBandIndicatorPriority_specs_10 = { + asn_MAP_ASN_RRC_freqBandIndicatorPriority_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_freqBandIndicatorPriority_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10[] = { + (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_ASN_RRC_freqBandIndicatorPriority_10 = { + "freqBandIndicatorPriority", + "freqBandIndicatorPriority", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10, + sizeof(asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10) + /sizeof(asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10) + /sizeof(asn_DEF_ASN_RRC_freqBandIndicatorPriority_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_freqBandIndicatorPriority_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_freqBandIndicatorPriority_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CGI_InfoEUTRA_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CGI_InfoEUTRA, cgi_info_EPC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_cgi_info_EPC_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-info-EPC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CGI_InfoEUTRA, cgi_info_5GC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_cgi_info_5GC_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_cgi_info_5GC_constr_6, memb_ASN_RRC_cgi_info_5GC_constraint_1 }, + 0, 0, /* No default value */ + "cgi-info-5GC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CGI_InfoEUTRA, freqBandIndicator), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicator" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CGI_InfoEUTRA, multiBandInfoList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiBandInfoListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiBandInfoList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CGI_InfoEUTRA, freqBandIndicatorPriority), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_freqBandIndicatorPriority_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorPriority" + }, +}; +static const int asn_MAP_ASN_RRC_CGI_InfoEUTRA_oms_1[] = { 0, 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CGI_InfoEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cgi-info-EPC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cgi-info-5GC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* freqBandIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* multiBandInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* freqBandIndicatorPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CGI_InfoEUTRA_specs_1 = { + sizeof(struct ASN_RRC_CGI_InfoEUTRA), + offsetof(struct ASN_RRC_CGI_InfoEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_CGI_InfoEUTRA_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CGI_InfoEUTRA_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CGI_InfoEUTRA = { + "CGI-InfoEUTRA", + "CGI-InfoEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CGI_InfoEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CGI_InfoEUTRA_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_CGI_InfoEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.h b/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.h new file mode 100644 index 0000000..d946704 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CGI-InfoEUTRA.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CGI_InfoEUTRA_H_ +#define _ASN_RRC_CGI_InfoEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include +#include "ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CGI_InfoEUTRA__freqBandIndicatorPriority { + ASN_RRC_CGI_InfoEUTRA__freqBandIndicatorPriority_true = 0 +} e_ASN_RRC_CGI_InfoEUTRA__freqBandIndicatorPriority; + +/* Forward declarations */ +struct ASN_RRC_MultiBandInfoListEUTRA; +struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC; +struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC; + +/* ASN_RRC_CGI-InfoEUTRA */ +typedef struct ASN_RRC_CGI_InfoEUTRA { + struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC { + ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_t cgi_info_EPC_legacy; + struct ASN_RRC_CGI_InfoEUTRA__cgi_info_EPC__cgi_info_EPC_list { + A_SEQUENCE_OF(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cgi_info_EPC_list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cgi_info_EPC; + struct ASN_RRC_CGI_InfoEUTRA__cgi_info_5GC { + A_SEQUENCE_OF(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cgi_info_5GC; + ASN_RRC_FreqBandIndicatorEUTRA_t freqBandIndicator; + struct ASN_RRC_MultiBandInfoListEUTRA *multiBandInfoList; /* OPTIONAL */ + long *freqBandIndicatorPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CGI_InfoEUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqBandIndicatorPriority_10; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CGI_InfoEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CGI_InfoEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CGI_InfoEUTRA_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CGI_InfoEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CGI-InfoNR.c b/src/asn/rrc/ASN_RRC_CGI-InfoNR.c new file mode 100644 index 0000000..7e6e201 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CGI-InfoNR.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CGI-InfoNR.h" + +#include "ASN_RRC_PLMN-IdentityInfoList.h" +#include "ASN_RRC_MultiFrequencyBandListNR.h" +static int +memb_ASN_RRC_ssb_SubcarrierOffset_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_ssb_SubcarrierOffset_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_noSIB1_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CGI_InfoNR__noSIB1, ssb_SubcarrierOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ssb_SubcarrierOffset_constr_5, memb_ASN_RRC_ssb_SubcarrierOffset_constraint_4 }, + 0, 0, /* No default value */ + "ssb-SubcarrierOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CGI_InfoNR__noSIB1, pdcch_ConfigSIB1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_ConfigSIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigSIB1" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_noSIB1_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_noSIB1_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-SubcarrierOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pdcch-ConfigSIB1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_noSIB1_specs_4 = { + sizeof(struct ASN_RRC_CGI_InfoNR__noSIB1), + offsetof(struct ASN_RRC_CGI_InfoNR__noSIB1, _asn_ctx), + asn_MAP_ASN_RRC_noSIB1_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_noSIB1_4 = { + "noSIB1", + "noSIB1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_noSIB1_tags_4, + sizeof(asn_DEF_ASN_RRC_noSIB1_tags_4) + /sizeof(asn_DEF_ASN_RRC_noSIB1_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_noSIB1_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_noSIB1_tags_4) + /sizeof(asn_DEF_ASN_RRC_noSIB1_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_noSIB1_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_noSIB1_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CGI_InfoNR_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CGI_InfoNR, plmn_IdentityInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_IdentityInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityInfoList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CGI_InfoNR, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CGI_InfoNR, noSIB1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_noSIB1_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "noSIB1" + }, +}; +static const int asn_MAP_ASN_RRC_CGI_InfoNR_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CGI_InfoNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CGI_InfoNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* noSIB1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CGI_InfoNR_specs_1 = { + sizeof(struct ASN_RRC_CGI_InfoNR), + offsetof(struct ASN_RRC_CGI_InfoNR, _asn_ctx), + asn_MAP_ASN_RRC_CGI_InfoNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CGI_InfoNR_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CGI_InfoNR = { + "CGI-InfoNR", + "CGI-InfoNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CGI_InfoNR_tags_1, + sizeof(asn_DEF_ASN_RRC_CGI_InfoNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CGI_InfoNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CGI_InfoNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CGI_InfoNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CGI_InfoNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CGI_InfoNR_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CGI_InfoNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CGI-InfoNR.h b/src/asn/rrc/ASN_RRC_CGI-InfoNR.h new file mode 100644 index 0000000..fc9dcb3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CGI-InfoNR.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CGI_InfoNR_H_ +#define _ASN_RRC_CGI_InfoNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_PDCCH-ConfigSIB1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_IdentityInfoList; +struct ASN_RRC_MultiFrequencyBandListNR; + +/* ASN_RRC_CGI-InfoNR */ +typedef struct ASN_RRC_CGI_InfoNR { + struct ASN_RRC_PLMN_IdentityInfoList *plmn_IdentityInfoList; /* OPTIONAL */ + struct ASN_RRC_MultiFrequencyBandListNR *frequencyBandList; /* OPTIONAL */ + struct ASN_RRC_CGI_InfoNR__noSIB1 { + long ssb_SubcarrierOffset; + ASN_RRC_PDCCH_ConfigSIB1_t pdcch_ConfigSIB1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *noSIB1; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CGI_InfoNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CGI_InfoNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CGI_InfoNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CGI_InfoNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CGI_InfoNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.c b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.c new file mode 100644 index 0000000..ad8448e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-AperiodicTriggerState.h" + +#include "ASN_RRC_CSI-AssociatedReportConfigInfo.h" +static int +memb_ASN_RRC_associatedReportConfigInfoList_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 <= 16)) { + /* 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_ASN_RRC_associatedReportConfigInfoList_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_associatedReportConfigInfoList_constr_2 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_ASN_RRC_associatedReportConfigInfoList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_associatedReportConfigInfoList_specs_2 = { + sizeof(struct ASN_RRC_CSI_AperiodicTriggerState__associatedReportConfigInfoList), + offsetof(struct ASN_RRC_CSI_AperiodicTriggerState__associatedReportConfigInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_associatedReportConfigInfoList_2 = { + "associatedReportConfigInfoList", + "associatedReportConfigInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2, + sizeof(asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2) + /sizeof(asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2) + /sizeof(asn_DEF_ASN_RRC_associatedReportConfigInfoList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_associatedReportConfigInfoList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_associatedReportConfigInfoList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_associatedReportConfigInfoList_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AperiodicTriggerState_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_AperiodicTriggerState, associatedReportConfigInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_associatedReportConfigInfoList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_associatedReportConfigInfoList_constr_2, memb_ASN_RRC_associatedReportConfigInfoList_constraint_1 }, + 0, 0, /* No default value */ + "associatedReportConfigInfoList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_AperiodicTriggerState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedReportConfigInfoList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_AperiodicTriggerState_specs_1 = { + sizeof(struct ASN_RRC_CSI_AperiodicTriggerState), + offsetof(struct ASN_RRC_CSI_AperiodicTriggerState, _asn_ctx), + asn_MAP_ASN_RRC_CSI_AperiodicTriggerState_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_ASN_RRC_CSI_AperiodicTriggerState = { + "CSI-AperiodicTriggerState", + "CSI-AperiodicTriggerState", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_AperiodicTriggerState_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_AperiodicTriggerState_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.h b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.h new file mode 100644 index 0000000..004ad06 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerState.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_AperiodicTriggerState_H_ +#define _ASN_RRC_CSI_AperiodicTriggerState_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CSI_AssociatedReportConfigInfo; + +/* ASN_RRC_CSI-AperiodicTriggerState */ +typedef struct ASN_RRC_CSI_AperiodicTriggerState { + struct ASN_RRC_CSI_AperiodicTriggerState__associatedReportConfigInfoList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_AssociatedReportConfigInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } associatedReportConfigInfoList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_AperiodicTriggerState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_AperiodicTriggerState; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_AperiodicTriggerState_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AperiodicTriggerState_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_AperiodicTriggerState_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.c b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.c new file mode 100644 index 0000000..31dbc1f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-AperiodicTriggerStateList.h" + +#include "ASN_RRC_CSI-AperiodicTriggerState.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_AperiodicTriggerStateList_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AperiodicTriggerStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_AperiodicTriggerState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CSI_AperiodicTriggerStateList_specs_1 = { + sizeof(struct ASN_RRC_CSI_AperiodicTriggerStateList), + offsetof(struct ASN_RRC_CSI_AperiodicTriggerStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList = { + "CSI-AperiodicTriggerStateList", + "CSI-AperiodicTriggerStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_AperiodicTriggerStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CSI_AperiodicTriggerStateList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CSI_AperiodicTriggerStateList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.h b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.h new file mode 100644 index 0000000..0421b27 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AperiodicTriggerStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_AperiodicTriggerStateList_H_ +#define _ASN_RRC_CSI_AperiodicTriggerStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CSI_AperiodicTriggerState; + +/* ASN_RRC_CSI-AperiodicTriggerStateList */ +typedef struct ASN_RRC_CSI_AperiodicTriggerStateList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_AperiodicTriggerState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_AperiodicTriggerStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CSI_AperiodicTriggerStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AperiodicTriggerStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_AperiodicTriggerStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_AperiodicTriggerStateList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.c b/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.c new file mode 100644 index 0000000..a213273 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.c @@ -0,0 +1,384 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-AssociatedReportConfigInfo.h" + +static int +memb_ASN_RRC_resourceSet_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_qcl_info_constraint_4(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 <= 16)) { + /* 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 int +memb_ASN_RRC_csi_SSB_ResourceSet_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_csi_IM_ResourcesForInterference_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nzp_CSI_RS_ResourcesForInterference_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 <= 16)) { + /* Constraint 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_ASN_RRC_qcl_info_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_resourceSet_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_qcl_info_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_csi_SSB_ResourceSet_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (1..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_resourcesForChannel_constr_3 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_ASN_RRC_csi_IM_ResourcesForInterference_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourcesForInterference_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_qcl_info_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_qcl_info_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_qcl_info_specs_6 = { + sizeof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS__qcl_info), + offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS__qcl_info, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_qcl_info_6 = { + "qcl-info", + "qcl-info", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_qcl_info_tags_6, + sizeof(asn_DEF_ASN_RRC_qcl_info_tags_6) + /sizeof(asn_DEF_ASN_RRC_qcl_info_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_qcl_info_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_qcl_info_tags_6) + /sizeof(asn_DEF_ASN_RRC_qcl_info_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_qcl_info_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_qcl_info_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_qcl_info_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, resourceSet), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceSet_constr_5, memb_ASN_RRC_resourceSet_constraint_4 }, + 0, 0, /* No default value */ + "resourceSet" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, qcl_info), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_qcl_info_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_qcl_info_constr_6, memb_ASN_RRC_qcl_info_constraint_4 }, + 0, 0, /* No default value */ + "qcl-info" + }, +}; +static const int asn_MAP_ASN_RRC_nzp_CSI_RS_oms_4[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nzp_CSI_RS_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceSet */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* qcl-info */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_specs_4 = { + sizeof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS), + offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, _asn_ctx), + asn_MAP_ASN_RRC_nzp_CSI_RS_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_nzp_CSI_RS_oms_4, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_4 = { + "nzp-CSI-RS", + "nzp-CSI-RS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourcesForChannel_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel, choice.nzp_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel, choice.csi_SSB_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_SSB_ResourceSet_constr_8, memb_ASN_RRC_csi_SSB_ResourceSet_constraint_3 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSet" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_resourcesForChannel_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-SSB-ResourceSet */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_resourcesForChannel_specs_3 = { + sizeof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel), + offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel, _asn_ctx), + offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel, present), + sizeof(((struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel *)0)->present), + asn_MAP_ASN_RRC_resourcesForChannel_tag2el_3, + 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_ASN_RRC_resourcesForChannel_3 = { + "resourcesForChannel", + "resourcesForChannel", + &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_ASN_RRC_resourcesForChannel_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_resourcesForChannel_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_resourcesForChannel_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AssociatedReportConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo, resourcesForChannel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourcesForChannel_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourcesForChannel" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo, csi_IM_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourcesForInterference_constr_9, memb_ASN_RRC_csi_IM_ResourcesForInterference_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourcesForInterference" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo, nzp_CSI_RS_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourcesForInterference_constr_10, memb_ASN_RRC_nzp_CSI_RS_ResourcesForInterference_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourcesForInterference" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_AssociatedReportConfigInfo_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_AssociatedReportConfigInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportConfigId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourcesForChannel */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* csi-IM-ResourcesForInterference */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nzp-CSI-RS-ResourcesForInterference */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_AssociatedReportConfigInfo_specs_1 = { + sizeof(struct ASN_RRC_CSI_AssociatedReportConfigInfo), + offsetof(struct ASN_RRC_CSI_AssociatedReportConfigInfo, _asn_ctx), + asn_MAP_ASN_RRC_CSI_AssociatedReportConfigInfo_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_AssociatedReportConfigInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo = { + "CSI-AssociatedReportConfigInfo", + "CSI-AssociatedReportConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_AssociatedReportConfigInfo_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_AssociatedReportConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.h b/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.h new file mode 100644 index 0000000..6d0c034 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-AssociatedReportConfigInfo.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_AssociatedReportConfigInfo_H_ +#define _ASN_RRC_CSI_AssociatedReportConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-ReportConfigId.h" +#include +#include "ASN_RRC_TCI-StateId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR { + ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_nzp_CSI_RS, + ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_csi_SSB_ResourceSet +} ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR; + +/* ASN_RRC_CSI-AssociatedReportConfigInfo */ +typedef struct ASN_RRC_CSI_AssociatedReportConfigInfo { + ASN_RRC_CSI_ReportConfigId_t reportConfigId; + struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel { + ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel_PR present; + union ASN_RRC_CSI_AssociatedReportConfigInfo__ASN_RRC_resourcesForChannel_u { + struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS { + long resourceSet; + struct ASN_RRC_CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS__qcl_info { + A_SEQUENCE_OF(ASN_RRC_TCI_StateId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *qcl_info; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS; + long csi_SSB_ResourceSet; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resourcesForChannel; + long *csi_IM_ResourcesForInterference; /* OPTIONAL */ + long *nzp_CSI_RS_ResourcesForInterference; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_AssociatedReportConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_AssociatedReportConfigInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_AssociatedReportConfigInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_AssociatedReportConfigInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_AssociatedReportConfigInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.c b/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.c new file mode 100644 index 0000000..9026359 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-FrequencyOccupation.h" + +static int +memb_ASN_RRC_startingRB_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 <= 274)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofRBs_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 >= 24 && value <= 276)) { + /* Constraint 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_ASN_RRC_startingRB_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 274 } /* (0..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofRBs_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 24, 276 } /* (24..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_FrequencyOccupation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_FrequencyOccupation, startingRB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingRB_constr_2, memb_ASN_RRC_startingRB_constraint_1 }, + 0, 0, /* No default value */ + "startingRB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_FrequencyOccupation, nrofRBs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofRBs_constr_3, memb_ASN_RRC_nrofRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofRBs" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_FrequencyOccupation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingRB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nrofRBs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_FrequencyOccupation_specs_1 = { + sizeof(struct ASN_RRC_CSI_FrequencyOccupation), + offsetof(struct ASN_RRC_CSI_FrequencyOccupation, _asn_ctx), + asn_MAP_ASN_RRC_CSI_FrequencyOccupation_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_ASN_RRC_CSI_FrequencyOccupation = { + "CSI-FrequencyOccupation", + "CSI-FrequencyOccupation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_FrequencyOccupation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_FrequencyOccupation_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_FrequencyOccupation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.h b/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.h new file mode 100644 index 0000000..9187da8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-FrequencyOccupation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_FrequencyOccupation_H_ +#define _ASN_RRC_CSI_FrequencyOccupation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-FrequencyOccupation */ +typedef struct ASN_RRC_CSI_FrequencyOccupation { + long startingRB; + long nrofRBs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_FrequencyOccupation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_FrequencyOccupation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_FrequencyOccupation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_FrequencyOccupation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_FrequencyOccupation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-Resource.c b/src/asn/rrc/ASN_RRC_CSI-IM-Resource.c new file mode 100644 index 0000000..08f79b6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-Resource.c @@ -0,0 +1,406 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-IM-Resource.h" + +#include "ASN_RRC_CSI-FrequencyOccupation.h" +#include "ASN_RRC_CSI-ResourcePeriodicityAndOffset.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_symbolLocation_p0_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_symbolLocation_p1_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 <= 13)) { + /* Constraint 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_ASN_RRC_subcarrierLocation_p0_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_symbolLocation_p0_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_subcarrierLocation_p1_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_symbolLocation_p1_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_IM_ResourceElementPattern_constr_3 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_ASN_RRC_subcarrierLocation_p0_value2enum_5[] = { + { 0, 2, "s0" }, + { 1, 2, "s2" }, + { 2, 2, "s4" }, + { 3, 2, "s6" }, + { 4, 2, "s8" }, + { 5, 3, "s10" } +}; +static const unsigned int asn_MAP_ASN_RRC_subcarrierLocation_p0_enum2value_5[] = { + 0, /* s0(0) */ + 5, /* s10(5) */ + 1, /* s2(1) */ + 2, /* s4(2) */ + 3, /* s6(3) */ + 4 /* s8(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_subcarrierLocation_p0_specs_5 = { + asn_MAP_ASN_RRC_subcarrierLocation_p0_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_subcarrierLocation_p0_enum2value_5, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5[] = { + (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_ASN_RRC_subcarrierLocation_p0_5 = { + "subcarrierLocation-p0", + "subcarrierLocation-p0", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5, + sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5) + /sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5) + /sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p0_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_subcarrierLocation_p0_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_subcarrierLocation_p0_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pattern0_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0, subcarrierLocation_p0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subcarrierLocation_p0_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierLocation-p0" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0, symbolLocation_p0), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_symbolLocation_p0_constr_12, memb_ASN_RRC_symbolLocation_p0_constraint_4 }, + 0, 0, /* No default value */ + "symbolLocation-p0" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pattern0_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pattern0_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subcarrierLocation-p0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* symbolLocation-p0 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pattern0_specs_4 = { + sizeof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0), + offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0, _asn_ctx), + asn_MAP_ASN_RRC_pattern0_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pattern0_4 = { + "pattern0", + "pattern0", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pattern0_tags_4, + sizeof(asn_DEF_ASN_RRC_pattern0_tags_4) + /sizeof(asn_DEF_ASN_RRC_pattern0_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pattern0_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pattern0_tags_4) + /sizeof(asn_DEF_ASN_RRC_pattern0_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pattern0_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_pattern0_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_subcarrierLocation_p1_value2enum_14[] = { + { 0, 2, "s0" }, + { 1, 2, "s4" }, + { 2, 2, "s8" } +}; +static const unsigned int asn_MAP_ASN_RRC_subcarrierLocation_p1_enum2value_14[] = { + 0, /* s0(0) */ + 1, /* s4(1) */ + 2 /* s8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_subcarrierLocation_p1_specs_14 = { + asn_MAP_ASN_RRC_subcarrierLocation_p1_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_subcarrierLocation_p1_enum2value_14, /* 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_ASN_RRC_subcarrierLocation_p1_tags_14[] = { + (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_ASN_RRC_subcarrierLocation_p1_14 = { + "subcarrierLocation-p1", + "subcarrierLocation-p1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14, + sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14) + /sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14) + /sizeof(asn_DEF_ASN_RRC_subcarrierLocation_p1_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_subcarrierLocation_p1_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_subcarrierLocation_p1_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pattern1_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1, subcarrierLocation_p1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subcarrierLocation_p1_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierLocation-p1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1, symbolLocation_p1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_symbolLocation_p1_constr_18, memb_ASN_RRC_symbolLocation_p1_constraint_13 }, + 0, 0, /* No default value */ + "symbolLocation-p1" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pattern1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pattern1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subcarrierLocation-p1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* symbolLocation-p1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pattern1_specs_13 = { + sizeof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1), + offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1, _asn_ctx), + asn_MAP_ASN_RRC_pattern1_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pattern1_13 = { + "pattern1", + "pattern1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pattern1_tags_13, + sizeof(asn_DEF_ASN_RRC_pattern1_tags_13) + /sizeof(asn_DEF_ASN_RRC_pattern1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pattern1_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pattern1_tags_13) + /sizeof(asn_DEF_ASN_RRC_pattern1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pattern1_13, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_pattern1_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceElementPattern_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern, choice.pattern0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_pattern0_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern0" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern, choice.pattern1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_pattern1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_IM_ResourceElementPattern_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pattern0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pattern1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceElementPattern_specs_3 = { + sizeof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern), + offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern, _asn_ctx), + offsetof(struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern, present), + sizeof(((struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern *)0)->present), + asn_MAP_ASN_RRC_csi_IM_ResourceElementPattern_tag2el_3, + 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_ASN_RRC_csi_IM_ResourceElementPattern_3 = { + "csi-IM-ResourceElementPattern", + "csi-IM-ResourceElementPattern", + &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_ASN_RRC_csi_IM_ResourceElementPattern_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceElementPattern_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_csi_IM_ResourceElementPattern_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_IM_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_Resource, csi_IM_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceId" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CSI_IM_Resource, csi_IM_ResourceElementPattern), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_IM_ResourceElementPattern_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceElementPattern" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_IM_Resource, freqBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_FrequencyOccupation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBand" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_IM_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_IM_Resource_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_IM_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-IM-ResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-IM-ResourceElementPattern */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* freqBand */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* periodicityAndOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_IM_Resource_specs_1 = { + sizeof(struct ASN_RRC_CSI_IM_Resource), + offsetof(struct ASN_RRC_CSI_IM_Resource, _asn_ctx), + asn_MAP_ASN_RRC_CSI_IM_Resource_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_IM_Resource_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_Resource = { + "CSI-IM-Resource", + "CSI-IM-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_IM_Resource_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_IM_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-Resource.h b/src/asn/rrc/ASN_RRC_CSI-IM-Resource.h new file mode 100644 index 0000000..493868f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-Resource.h @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_IM_Resource_H_ +#define _ASN_RRC_CSI_IM_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-IM-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR { + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern0, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern1 +} ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR; +typedef enum ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0 { + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s0 = 0, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s2 = 1, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s4 = 2, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s6 = 3, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s8 = 4, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s10 = 5 +} e_ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0; +typedef enum ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1 { + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s0 = 0, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s4 = 1, + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s8 = 2 +} e_ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1; + +/* Forward declarations */ +struct ASN_RRC_CSI_FrequencyOccupation; +struct ASN_RRC_CSI_ResourcePeriodicityAndOffset; + +/* ASN_RRC_CSI-IM-Resource */ +typedef struct ASN_RRC_CSI_IM_Resource { + ASN_RRC_CSI_IM_ResourceId_t csi_IM_ResourceId; + struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern { + ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern_PR present; + union ASN_RRC_CSI_IM_Resource__ASN_RRC_csi_IM_ResourceElementPattern_u { + struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0 { + long subcarrierLocation_p0; + long symbolLocation_p0; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pattern0; + struct ASN_RRC_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1 { + long subcarrierLocation_p1; + long symbolLocation_p1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pattern1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceElementPattern; + struct ASN_RRC_CSI_FrequencyOccupation *freqBand; /* OPTIONAL */ + struct ASN_RRC_CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_IM_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subcarrierLocation_p0_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subcarrierLocation_p1_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_IM_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_IM_Resource_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_IM_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.c b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.c new file mode 100644 index 0000000..1f7b5b2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-IM-ResourceId.h" + +int +ASN_RRC_CSI_IM_ResourceId_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_IM_ResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_ResourceId = { + "CSI-IM-ResourceId", + "CSI-IM-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_IM_ResourceId_constr_1, ASN_RRC_CSI_IM_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.h b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.h new file mode 100644 index 0000000..2970663 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_IM_ResourceId_H_ +#define _ASN_RRC_CSI_IM_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-IM-ResourceId */ +typedef long ASN_RRC_CSI_IM_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_IM_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_ResourceId; +asn_struct_free_f ASN_RRC_CSI_IM_ResourceId_free; +asn_struct_print_f ASN_RRC_CSI_IM_ResourceId_print; +asn_constr_check_f ASN_RRC_CSI_IM_ResourceId_constraint; +ber_type_decoder_f ASN_RRC_CSI_IM_ResourceId_decode_ber; +der_type_encoder_f ASN_RRC_CSI_IM_ResourceId_encode_der; +xer_type_decoder_f ASN_RRC_CSI_IM_ResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_IM_ResourceId_encode_xer; +per_type_decoder_f ASN_RRC_CSI_IM_ResourceId_decode_uper; +per_type_encoder_f ASN_RRC_CSI_IM_ResourceId_encode_uper; +per_type_decoder_f ASN_RRC_CSI_IM_ResourceId_decode_aper; +per_type_encoder_f ASN_RRC_CSI_IM_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_IM_ResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.c b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.c new file mode 100644 index 0000000..b32b88f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-IM-ResourceSet.h" + +static int +memb_ASN_RRC_csi_IM_Resources_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 <= 8)) { + /* 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_ASN_RRC_csi_IM_Resources_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_csi_IM_Resources_constr_3 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_ASN_RRC_csi_IM_Resources_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_Resources_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_Resources_specs_3 = { + sizeof(struct ASN_RRC_CSI_IM_ResourceSet__csi_IM_Resources), + offsetof(struct ASN_RRC_CSI_IM_ResourceSet__csi_IM_Resources, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_Resources_3 = { + "csi-IM-Resources", + "csi-IM-Resources", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_Resources_tags_3, + sizeof(asn_DEF_ASN_RRC_csi_IM_Resources_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_IM_Resources_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_Resources_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_Resources_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_IM_Resources_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_Resources_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_Resources_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_Resources_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_IM_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_ResourceSet, csi_IM_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_IM_ResourceSet, csi_IM_Resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_Resources_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_Resources_constr_3, memb_ASN_RRC_csi_IM_Resources_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-Resources" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_IM_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-IM-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-IM-Resources */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_IM_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_CSI_IM_ResourceSet), + offsetof(struct ASN_RRC_CSI_IM_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_CSI_IM_ResourceSet_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_ASN_RRC_CSI_IM_ResourceSet = { + "CSI-IM-ResourceSet", + "CSI-IM-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_IM_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_IM_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.h b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.h new file mode 100644 index 0000000..481d45d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSet.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_IM_ResourceSet_H_ +#define _ASN_RRC_CSI_IM_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-IM-ResourceSetId.h" +#include "ASN_RRC_CSI-IM-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-IM-ResourceSet */ +typedef struct ASN_RRC_CSI_IM_ResourceSet { + ASN_RRC_CSI_IM_ResourceSetId_t csi_IM_ResourceSetId; + struct ASN_RRC_CSI_IM_ResourceSet__csi_IM_Resources { + A_SEQUENCE_OF(ASN_RRC_CSI_IM_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_IM_Resources; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_IM_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_IM_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_IM_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_IM_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.c b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.c new file mode 100644 index 0000000..6010a46 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-IM-ResourceSetId.h" + +int +ASN_RRC_CSI_IM_ResourceSetId_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_IM_ResourceSetId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_ResourceSetId = { + "CSI-IM-ResourceSetId", + "CSI-IM-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_IM_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_IM_ResourceSetId_constr_1, ASN_RRC_CSI_IM_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.h b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.h new file mode 100644 index 0000000..2d41ff4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-IM-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_IM_ResourceSetId_H_ +#define _ASN_RRC_CSI_IM_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-IM-ResourceSetId */ +typedef long ASN_RRC_CSI_IM_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_IM_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_IM_ResourceSetId; +asn_struct_free_f ASN_RRC_CSI_IM_ResourceSetId_free; +asn_struct_print_f ASN_RRC_CSI_IM_ResourceSetId_print; +asn_constr_check_f ASN_RRC_CSI_IM_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_CSI_IM_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_CSI_IM_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_CSI_IM_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_IM_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_CSI_IM_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_CSI_IM_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_CSI_IM_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_CSI_IM_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_IM_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-MeasConfig.c b/src/asn/rrc/ASN_RRC_CSI-MeasConfig.c new file mode 100644 index 0000000..57d6158 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-MeasConfig.c @@ -0,0 +1,1272 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-MeasConfig.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_NZP-CSI-RS-Resource.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceSet.h" +#include "ASN_RRC_CSI-IM-Resource.h" +#include "ASN_RRC_CSI-IM-ResourceSet.h" +#include "ASN_RRC_CSI-SSB-ResourceSet.h" +#include "ASN_RRC_CSI-ResourceConfig.h" +#include "ASN_RRC_CSI-ReportConfig.h" +static int +memb_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_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 <= 192)) { + /* 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 int +memb_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_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 <= 192)) { + /* 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 int +memb_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_csi_IM_ResourceToAddModList_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 int +memb_ASN_RRC_csi_IM_ResourceToReleaseList_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 int +memb_ASN_RRC_csi_IM_ResourceSetToAddModList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_csi_IM_ResourceSetToReleaseList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_csi_SSB_ResourceSetToAddModList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_csi_SSB_ResourceSetToReleaseList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_csi_ResourceConfigToAddModList_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 <= 112)) { + /* 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 int +memb_ASN_RRC_csi_ResourceConfigToReleaseList_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 <= 112)) { + /* 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 int +memb_ASN_RRC_csi_ReportConfigToAddModList_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 <= 48)) { + /* 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 int +memb_ASN_RRC_csi_ReportConfigToReleaseList_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 <= 48)) { + /* 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 int +memb_ASN_RRC_reportTriggerSize_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 <= 6)) { + /* Constraint 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_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 192 } /* (SIZE(1..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 192 } /* (SIZE(1..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_IM_ResourceToAddModList_constr_10 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_type_ASN_RRC_csi_IM_ResourceToReleaseList_constr_12 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_type_ASN_RRC_csi_IM_ResourceSetToAddModList_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_IM_ResourceSetToReleaseList_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_SSB_ResourceSetToAddModList_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_SSB_ResourceSetToReleaseList_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ResourceConfigToAddModList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 112 } /* (SIZE(1..112)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ResourceConfigToReleaseList_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 112 } /* (SIZE(1..112)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ReportConfigToAddModList_constr_26 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 48 } /* (SIZE(1..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ReportConfigToReleaseList_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 48 } /* (SIZE(1..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 192 } /* (SIZE(1..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 8, 8, 1, 192 } /* (SIZE(1..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_IM_ResourceToAddModList_constr_10 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_ASN_RRC_csi_IM_ResourceToReleaseList_constr_12 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_ASN_RRC_csi_IM_ResourceSetToAddModList_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_IM_ResourceSetToReleaseList_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetToAddModList_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetToReleaseList_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_ResourceConfigToAddModList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 112 } /* (SIZE(1..112)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_ResourceConfigToReleaseList_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 112 } /* (SIZE(1..112)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_ReportConfigToAddModList_constr_26 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 48 } /* (SIZE(1..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_ReportConfigToReleaseList_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 48 } /* (SIZE(1..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_reportTriggerSize_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_specs_2 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_2 = { + "nzp-CSI-RS-ResourceToAddModList", + "nzp-CSI-RS-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_4 = { + "nzp-CSI-RS-ResourceToReleaseList", + "nzp-CSI-RS-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_specs_6 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_6 = { + "nzp-CSI-RS-ResourceSetToAddModList", + "nzp-CSI-RS-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_specs_8 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_8 = { + "nzp-CSI-RS-ResourceSetToReleaseList", + "nzp-CSI-RS-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceToAddModList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceToAddModList_specs_10 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_10 = { + "csi-IM-ResourceToAddModList", + "csi-IM-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10, + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_ResourceToAddModList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceToAddModList_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_ResourceToAddModList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceToReleaseList_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceToReleaseList_specs_12 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_12 = { + "csi-IM-ResourceToReleaseList", + "csi-IM-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12, + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_ResourceToReleaseList_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceToReleaseList_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_ResourceToReleaseList_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceSetToAddModList_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceSetToAddModList_specs_14 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_14 = { + "csi-IM-ResourceSetToAddModList", + "csi-IM-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14, + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_ResourceSetToAddModList_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceSetToAddModList_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_ResourceSetToAddModList_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceSetToReleaseList_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceSetToReleaseList_specs_16 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_16 = { + "csi-IM-ResourceSetToReleaseList", + "csi-IM-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16, + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_ResourceSetToReleaseList_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceSetToReleaseList_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_ResourceSetToReleaseList_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_SSB_ResourceSetToAddModList_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_SSB_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_SSB_ResourceSetToAddModList_specs_18 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_18 = { + "csi-SSB-ResourceSetToAddModList", + "csi-SSB-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18, + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_SSB_ResourceSetToAddModList_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_SSB_ResourceSetToAddModList_18, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_SSB_ResourceSetToAddModList_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_SSB_ResourceSetToReleaseList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_SSB_ResourceSetToReleaseList_specs_20 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_20 = { + "csi-SSB-ResourceSetToReleaseList", + "csi-SSB-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20, + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_SSB_ResourceSetToReleaseList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_SSB_ResourceSetToReleaseList_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_SSB_ResourceSetToReleaseList_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ResourceConfigToAddModList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_ResourceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_ResourceConfigToAddModList_specs_22 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_22 = { + "csi-ResourceConfigToAddModList", + "csi-ResourceConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22, + sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22) + /sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22) + /sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ResourceConfigToAddModList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_ResourceConfigToAddModList_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_ResourceConfigToAddModList_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ResourceConfigToReleaseList_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_ResourceConfigToReleaseList_specs_24 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_24 = { + "csi-ResourceConfigToReleaseList", + "csi-ResourceConfigToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24, + sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24) + /sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24) + /sizeof(asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ResourceConfigToReleaseList_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_ResourceConfigToReleaseList_24, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_ResourceConfigToReleaseList_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ReportConfigToAddModList_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_ReportConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_ReportConfigToAddModList_specs_26 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToAddModList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_26 = { + "csi-ReportConfigToAddModList", + "csi-ReportConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26, + sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26) + /sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26) + /sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ReportConfigToAddModList_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_ReportConfigToAddModList_26, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_ReportConfigToAddModList_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ReportConfigToReleaseList_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_ReportConfigToReleaseList_specs_28 = { + sizeof(struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToReleaseList), + offsetof(struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_28 = { + "csi-ReportConfigToReleaseList", + "csi-ReportConfigToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28, + sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28) + /sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28) + /sizeof(asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ReportConfigToReleaseList_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_ReportConfigToReleaseList_28, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_ReportConfigToReleaseList_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_MeasConfig_1[] = { + { ATF_POINTER, 17, offsetof(struct ASN_RRC_CSI_MeasConfig, nzp_CSI_RS_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_constr_2, memb_ASN_RRC_nzp_CSI_RS_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceToAddModList" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_CSI_MeasConfig, nzp_CSI_RS_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_constr_4, memb_ASN_RRC_nzp_CSI_RS_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceToReleaseList" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_CSI_MeasConfig, nzp_CSI_RS_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_constr_6, memb_ASN_RRC_nzp_CSI_RS_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetToAddModList" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_CSI_MeasConfig, nzp_CSI_RS_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, memb_ASN_RRC_nzp_CSI_RS_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetToReleaseList" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_IM_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_ResourceToAddModList_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourceToAddModList_constr_10, memb_ASN_RRC_csi_IM_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceToAddModList" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_IM_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_ResourceToReleaseList_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourceToReleaseList_constr_12, memb_ASN_RRC_csi_IM_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_IM_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_ResourceSetToAddModList_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourceSetToAddModList_constr_14, memb_ASN_RRC_csi_IM_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetToAddModList" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_IM_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_ResourceSetToReleaseList_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourceSetToReleaseList_constr_16, memb_ASN_RRC_csi_IM_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetToReleaseList" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_SSB_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_SSB_ResourceSetToAddModList_18, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetToAddModList_constr_18, memb_ASN_RRC_csi_SSB_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetToAddModList" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_SSB_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_SSB_ResourceSetToReleaseList_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetToReleaseList_constr_20, memb_ASN_RRC_csi_SSB_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetToReleaseList" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_ResourceConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_ResourceConfigToAddModList_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_ResourceConfigToAddModList_constr_22, memb_ASN_RRC_csi_ResourceConfigToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ResourceConfigToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_ResourceConfigToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_ResourceConfigToReleaseList_24, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_ResourceConfigToReleaseList_constr_24, memb_ASN_RRC_csi_ResourceConfigToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ResourceConfigToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_ReportConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_ReportConfigToAddModList_26, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_ReportConfigToAddModList_constr_26, memb_ASN_RRC_csi_ReportConfigToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ReportConfigToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CSI_MeasConfig, csi_ReportConfigToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_ReportConfigToReleaseList_28, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_ReportConfigToReleaseList_constr_28, memb_ASN_RRC_csi_ReportConfigToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ReportConfigToReleaseList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CSI_MeasConfig, reportTriggerSize), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_reportTriggerSize_constr_30, memb_ASN_RRC_reportTriggerSize_constraint_1 }, + 0, 0, /* No default value */ + "reportTriggerSize" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_MeasConfig, aperiodicTriggerStateList), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicTriggerStateList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_MeasConfig, semiPersistentOnPUSCH_TriggerStateList), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH-TriggerStateList" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_MeasConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_MeasConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-RS-ResourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nzp-CSI-RS-ResourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nzp-CSI-RS-ResourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nzp-CSI-RS-ResourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* csi-IM-ResourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* csi-IM-ResourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* csi-IM-ResourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* csi-IM-ResourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* csi-SSB-ResourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* csi-SSB-ResourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* csi-ResourceConfigToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* csi-ResourceConfigToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* csi-ReportConfigToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* csi-ReportConfigToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* reportTriggerSize */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* aperiodicTriggerStateList */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* semiPersistentOnPUSCH-TriggerStateList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_MeasConfig_specs_1 = { + sizeof(struct ASN_RRC_CSI_MeasConfig), + offsetof(struct ASN_RRC_CSI_MeasConfig, _asn_ctx), + asn_MAP_ASN_RRC_CSI_MeasConfig_tag2el_1, + 17, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_MeasConfig_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 17, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_MeasConfig = { + "CSI-MeasConfig", + "CSI-MeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_MeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_MeasConfig_1, + 17, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_MeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-MeasConfig.h b/src/asn/rrc/ASN_RRC_CSI-MeasConfig.h new file mode 100644 index 0000000..4e34fe0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-MeasConfig.h @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_MeasConfig_H_ +#define _ASN_RRC_CSI_MeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceSetId.h" +#include "ASN_RRC_CSI-IM-ResourceId.h" +#include "ASN_RRC_CSI-IM-ResourceSetId.h" +#include "ASN_RRC_CSI-SSB-ResourceSetId.h" +#include "ASN_RRC_CSI-ResourceConfigId.h" +#include "ASN_RRC_CSI-ReportConfigId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList; +struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList; +struct ASN_RRC_NZP_CSI_RS_Resource; +struct ASN_RRC_NZP_CSI_RS_ResourceSet; +struct ASN_RRC_CSI_IM_Resource; +struct ASN_RRC_CSI_IM_ResourceSet; +struct ASN_RRC_CSI_SSB_ResourceSet; +struct ASN_RRC_CSI_ResourceConfig; +struct ASN_RRC_CSI_ReportConfig; + +/* ASN_RRC_CSI-MeasConfig */ +typedef struct ASN_RRC_CSI_MeasConfig { + struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_NZP_CSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceToAddModList; + struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_NZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceToReleaseList; + struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_NZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetToAddModList; + struct ASN_RRC_CSI_MeasConfig__nzp_CSI_RS_ResourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_NZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetToReleaseList; + struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_IM_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceToAddModList; + struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_CSI_IM_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceToReleaseList; + struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_IM_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceSetToAddModList; + struct ASN_RRC_CSI_MeasConfig__csi_IM_ResourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_CSI_IM_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceSetToReleaseList; + struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_SSB_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_SSB_ResourceSetToAddModList; + struct ASN_RRC_CSI_MeasConfig__csi_SSB_ResourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_CSI_SSB_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_SSB_ResourceSetToReleaseList; + struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_ResourceConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ResourceConfigToAddModList; + struct ASN_RRC_CSI_MeasConfig__csi_ResourceConfigToReleaseList { + A_SEQUENCE_OF(ASN_RRC_CSI_ResourceConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ResourceConfigToReleaseList; + struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_ReportConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ReportConfigToAddModList; + struct ASN_RRC_CSI_MeasConfig__csi_ReportConfigToReleaseList { + A_SEQUENCE_OF(ASN_RRC_CSI_ReportConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ReportConfigToReleaseList; + long *reportTriggerSize; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList *aperiodicTriggerStateList; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList *semiPersistentOnPUSCH_TriggerStateList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_MeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_MeasConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_MeasConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_MeasConfig_1[17]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_MeasConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.c b/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.c new file mode 100644 index 0000000..7b2c6c7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.c @@ -0,0 +1,337 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-CellMobility.h" + +#include "ASN_RRC_CSI-RS-Resource-Mobility.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_startPRB_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2169)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_csi_rs_ResourceList_Mobility_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 <= 96)) { + /* 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_ASN_RRC_nrofPRBs_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startPRB_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2169 } /* (0..2169) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_density_constr_11 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_type_ASN_RRC_csi_rs_ResourceList_Mobility_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_rs_ResourceList_Mobility_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofPRBs_value2enum_4[] = { + { 0, 6, "size24" }, + { 1, 6, "size48" }, + { 2, 6, "size96" }, + { 3, 7, "size192" }, + { 4, 7, "size264" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofPRBs_enum2value_4[] = { + 3, /* size192(3) */ + 0, /* size24(0) */ + 4, /* size264(4) */ + 1, /* size48(1) */ + 2 /* size96(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofPRBs_specs_4 = { + asn_MAP_ASN_RRC_nrofPRBs_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofPRBs_enum2value_4, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_nrofPRBs_tags_4[] = { + (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_ASN_RRC_nrofPRBs_4 = { + "nrofPRBs", + "nrofPRBs", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofPRBs_tags_4, + sizeof(asn_DEF_ASN_RRC_nrofPRBs_tags_4) + /sizeof(asn_DEF_ASN_RRC_nrofPRBs_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofPRBs_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofPRBs_tags_4) + /sizeof(asn_DEF_ASN_RRC_nrofPRBs_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofPRBs_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofPRBs_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_rs_MeasurementBW_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofPRBs_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW, startPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startPRB_constr_10, memb_ASN_RRC_startPRB_constraint_3 }, + 0, 0, /* No default value */ + "startPRB" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_rs_MeasurementBW_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofPRBs */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* startPRB */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_csi_rs_MeasurementBW_specs_3 = { + sizeof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW), + offsetof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW, _asn_ctx), + asn_MAP_ASN_RRC_csi_rs_MeasurementBW_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_rs_MeasurementBW_3 = { + "csi-rs-MeasurementBW", + "csi-rs-MeasurementBW", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3, + sizeof(asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_rs_MeasurementBW_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_csi_rs_MeasurementBW_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_csi_rs_MeasurementBW_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_density_value2enum_11[] = { + { 0, 2, "d1" }, + { 1, 2, "d3" } +}; +static const unsigned int asn_MAP_ASN_RRC_density_enum2value_11[] = { + 0, /* d1(0) */ + 1 /* d3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_density_specs_11 = { + asn_MAP_ASN_RRC_density_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_density_enum2value_11, /* 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_ASN_RRC_density_tags_11[] = { + (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_ASN_RRC_density_11 = { + "density", + "density", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_density_tags_11, + sizeof(asn_DEF_ASN_RRC_density_tags_11) + /sizeof(asn_DEF_ASN_RRC_density_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_density_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_density_tags_11) + /sizeof(asn_DEF_ASN_RRC_density_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_density_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_density_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_rs_ResourceList_Mobility_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_rs_ResourceList_Mobility_specs_14 = { + sizeof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_ResourceList_Mobility), + offsetof(struct ASN_RRC_CSI_RS_CellMobility__csi_rs_ResourceList_Mobility, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_14 = { + "csi-rs-ResourceList-Mobility", + "csi-rs-ResourceList-Mobility", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14, + sizeof(asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14) + /sizeof(asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14) + /sizeof(asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_rs_ResourceList_Mobility_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_rs_ResourceList_Mobility_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_rs_ResourceList_Mobility_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_CellMobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_CellMobility, cellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_CellMobility, csi_rs_MeasurementBW), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_rs_MeasurementBW_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs-MeasurementBW" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_RS_CellMobility, density), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_density_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "density" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_CellMobility, csi_rs_ResourceList_Mobility), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_rs_ResourceList_Mobility_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_rs_ResourceList_Mobility_constr_14, memb_ASN_RRC_csi_rs_ResourceList_Mobility_constraint_1 }, + 0, 0, /* No default value */ + "csi-rs-ResourceList-Mobility" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_RS_CellMobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_CellMobility_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-rs-MeasurementBW */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* density */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* csi-rs-ResourceList-Mobility */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_CellMobility_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_CellMobility), + offsetof(struct ASN_RRC_CSI_RS_CellMobility, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_CellMobility_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_RS_CellMobility_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_CellMobility = { + "CSI-RS-CellMobility", + "CSI-RS-CellMobility", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_CellMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_CellMobility_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_CellMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.h b/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.h new file mode 100644 index 0000000..ee534dc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-CellMobility.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_CellMobility_H_ +#define _ASN_RRC_CSI_RS_CellMobility_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs { + ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size24 = 0, + ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size48 = 1, + ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size96 = 2, + ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size192 = 3, + ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size264 = 4 +} e_ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs; +typedef enum ASN_RRC_CSI_RS_CellMobility__density { + ASN_RRC_CSI_RS_CellMobility__density_d1 = 0, + ASN_RRC_CSI_RS_CellMobility__density_d3 = 1 +} e_ASN_RRC_CSI_RS_CellMobility__density; + +/* Forward declarations */ +struct ASN_RRC_CSI_RS_Resource_Mobility; + +/* ASN_RRC_CSI-RS-CellMobility */ +typedef struct ASN_RRC_CSI_RS_CellMobility { + ASN_RRC_PhysCellId_t cellId; + struct ASN_RRC_CSI_RS_CellMobility__csi_rs_MeasurementBW { + long nrofPRBs; + long startPRB; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_rs_MeasurementBW; + long *density; /* OPTIONAL */ + struct ASN_RRC_CSI_RS_CellMobility__csi_rs_ResourceList_Mobility { + A_SEQUENCE_OF(struct ASN_RRC_CSI_RS_Resource_Mobility) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_rs_ResourceList_Mobility; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_CellMobility_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofPRBs_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_density_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_CellMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_CellMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_CellMobility_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_CellMobility_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.c b/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.c new file mode 100644 index 0000000..ef40e19 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-ForTracking.h" + +static int +memb_ASN_RRC_maxBurstLength_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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_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 <= 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_ASN_RRC_maxConfiguredResourceSetsPerCC_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxConfiguredResourceSetsAllCC_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 <= 256)) { + /* Constraint 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_ASN_RRC_maxBurstLength_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ForTracking_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ForTracking, maxBurstLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxBurstLength_constr_2, memb_ASN_RRC_maxBurstLength_constraint_1 }, + 0, 0, /* No default value */ + "maxBurstLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ForTracking, maxSimultaneousResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constr_3, memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxSimultaneousResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ForTracking, maxConfiguredResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constr_4, memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ForTracking, maxConfiguredResourceSetsAllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constr_5, memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsAllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_ForTracking_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxBurstLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxSimultaneousResourceSetsPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxConfiguredResourceSetsPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxConfiguredResourceSetsAllCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ForTracking_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_ForTracking), + offsetof(struct ASN_RRC_CSI_RS_ForTracking, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_ForTracking_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ForTracking = { + "CSI-RS-ForTracking", + "CSI-RS-ForTracking", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ForTracking_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_ForTracking_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_ForTracking_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.h b/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.h new file mode 100644 index 0000000..339127d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ForTracking.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_ForTracking_H_ +#define _ASN_RRC_CSI_RS_ForTracking_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-RS-ForTracking */ +typedef struct ASN_RRC_CSI_RS_ForTracking { + long maxBurstLength; + long maxSimultaneousResourceSetsPerCC; + long maxConfiguredResourceSetsPerCC; + long maxConfiguredResourceSetsAllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_ForTracking_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ForTracking; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ForTracking_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ForTracking_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_ForTracking_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.c b/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.c new file mode 100644 index 0000000..3dc6264 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.c @@ -0,0 +1,264 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxConfigNumberNZP_CSI_RS_PerCC_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC_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 >= 2 && 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; + } +} + +static int +memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_PerCC_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_PerCC_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 >= 2 && 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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxConfigNumberCSI_IM_PerCC_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfigNumberNZP_CSI_RS_PerCC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_PerCC_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_PerCC_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxConfigNumberCSI_IM_PerCC_value2enum_4[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" }, + { 5, 3, "n32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxConfigNumberCSI_IM_PerCC_enum2value_4[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 5, /* n32(5) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxConfigNumberCSI_IM_PerCC_specs_4 = { + asn_MAP_ASN_RRC_maxConfigNumberCSI_IM_PerCC_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxConfigNumberCSI_IM_PerCC_enum2value_4, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_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_ASN_RRC_maxConfigNumberCSI_IM_PerCC_4 = { + "maxConfigNumberCSI-IM-PerCC", + "maxConfigNumberCSI-IM-PerCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4, + sizeof(asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4) + /sizeof(asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4) + /sizeof(asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxConfigNumberCSI_IM_PerCC_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxConfigNumberCSI_IM_PerCC_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, maxConfigNumberNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfigNumberNZP_CSI_RS_PerCC_constr_2, memb_ASN_RRC_maxConfigNumberNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfigNumberNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3, memb_ASN_RRC_maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfigNumberPortsAcrossNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, maxConfigNumberCSI_IM_PerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxConfigNumberCSI-IM-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, maxNumberSimultaneousNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_PerCC_constr_11, memb_ASN_RRC_maxNumberSimultaneousNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, totalNumberPortsSimultaneousNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_PerCC_constr_12, memb_ASN_RRC_totalNumberPortsSimultaneousNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberPortsSimultaneousNZP-CSI-RS-PerCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxConfigNumberNZP-CSI-RS-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxConfigNumberPortsAcrossNZP-CSI-RS-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxConfigNumberCSI-IM-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxNumberSimultaneousNZP-CSI-RS-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* totalNumberPortsSimultaneousNZP-CSI-RS-PerCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback), + offsetof(struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback = { + "CSI-RS-IM-ReceptionForFeedback", + "CSI-RS-IM-ReceptionForFeedback", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h b/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h new file mode 100644 index 0000000..e4b3d15 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_IM_ReceptionForFeedback_H_ +#define _ASN_RRC_CSI_RS_IM_ReceptionForFeedback_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC { + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n1 = 0, + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n2 = 1, + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n4 = 2, + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n8 = 3, + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n16 = 4, + ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC_n32 = 5 +} e_ASN_RRC_CSI_RS_IM_ReceptionForFeedback__maxConfigNumberCSI_IM_PerCC; + +/* ASN_RRC_CSI-RS-IM-ReceptionForFeedback */ +typedef struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback { + long maxConfigNumberNZP_CSI_RS_PerCC; + long maxConfigNumberPortsAcrossNZP_CSI_RS_PerCC; + long maxConfigNumberCSI_IM_PerCC; + long maxNumberSimultaneousNZP_CSI_RS_PerCC; + long totalNumberPortsSimultaneousNZP_CSI_RS_PerCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_IM_ReceptionForFeedback_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxConfigNumberCSI_IM_PerCC_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_IM_ReceptionForFeedback_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_IM_ReceptionForFeedback_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-Index.c b/src/asn/rrc/ASN_RRC_CSI-RS-Index.c new file mode 100644 index 0000000..4285631 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-Index.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-Index.h" + +int +ASN_RRC_CSI_RS_Index_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 <= 95)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_RS_Index_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 95 } /* (0..95) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_Index = { + "CSI-RS-Index", + "CSI-RS-Index", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_RS_Index_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_Index_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_RS_Index_constr_1, ASN_RRC_CSI_RS_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-Index.h b/src/asn/rrc/ASN_RRC_CSI-RS-Index.h new file mode 100644 index 0000000..9972a0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-Index.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_Index_H_ +#define _ASN_RRC_CSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-RS-Index */ +typedef long ASN_RRC_CSI_RS_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_RS_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_Index; +asn_struct_free_f ASN_RRC_CSI_RS_Index_free; +asn_struct_print_f ASN_RRC_CSI_RS_Index_print; +asn_constr_check_f ASN_RRC_CSI_RS_Index_constraint; +ber_type_decoder_f ASN_RRC_CSI_RS_Index_decode_ber; +der_type_encoder_f ASN_RRC_CSI_RS_Index_encode_der; +xer_type_decoder_f ASN_RRC_CSI_RS_Index_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_RS_Index_encode_xer; +per_type_decoder_f ASN_RRC_CSI_RS_Index_decode_uper; +per_type_encoder_f ASN_RRC_CSI_RS_Index_encode_uper; +per_type_decoder_f ASN_RRC_CSI_RS_Index_decode_aper; +per_type_encoder_f ASN_RRC_CSI_RS_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_Index_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.c b/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.c new file mode 100644 index 0000000..c95f684 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-ProcFrameworkForSRS.h" + +static int +memb_ASN_RRC_maxNumberPeriodicSRS_AssocCSI_RS_PerBWP_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 <= 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_ASN_RRC_maxNumberAperiodicSRS_AssocCSI_RS_PerBWP_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 <= 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_ASN_RRC_maxNumberSP_SRS_AssocCSI_RS_PerBWP_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 int +memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_PerCC_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 <= 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_ASN_RRC_maxNumberPeriodicSRS_AssocCSI_RS_PerBWP_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberAperiodicSRS_AssocCSI_RS_PerBWP_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSP_SRS_AssocCSI_RS_PerBWP_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_PerCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ProcFrameworkForSRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS, maxNumberPeriodicSRS_AssocCSI_RS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberPeriodicSRS_AssocCSI_RS_PerBWP_constr_2, memb_ASN_RRC_maxNumberPeriodicSRS_AssocCSI_RS_PerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicSRS-AssocCSI-RS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS, maxNumberAperiodicSRS_AssocCSI_RS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberAperiodicSRS_AssocCSI_RS_PerBWP_constr_3, memb_ASN_RRC_maxNumberAperiodicSRS_AssocCSI_RS_PerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicSRS-AssocCSI-RS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS, maxNumberSP_SRS_AssocCSI_RS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSP_SRS_AssocCSI_RS_PerBWP_constr_4, memb_ASN_RRC_maxNumberSP_SRS_AssocCSI_RS_PerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSP-SRS-AssocCSI-RS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS, simultaneousSRS_AssocCSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_PerCC_constr_5, memb_ASN_RRC_simultaneousSRS_AssocCSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousSRS-AssocCSI-RS-PerCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberPeriodicSRS-AssocCSI-RS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberAperiodicSRS-AssocCSI-RS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberSP-SRS-AssocCSI-RS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* simultaneousSRS-AssocCSI-RS-PerCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ProcFrameworkForSRS_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS), + offsetof(struct ASN_RRC_CSI_RS_ProcFrameworkForSRS, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS = { + "CSI-RS-ProcFrameworkForSRS", + "CSI-RS-ProcFrameworkForSRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_ProcFrameworkForSRS_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_ProcFrameworkForSRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.h b/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.h new file mode 100644 index 0000000..5f1453a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ProcFrameworkForSRS.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_ProcFrameworkForSRS_H_ +#define _ASN_RRC_CSI_RS_ProcFrameworkForSRS_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-RS-ProcFrameworkForSRS */ +typedef struct ASN_RRC_CSI_RS_ProcFrameworkForSRS { + long maxNumberPeriodicSRS_AssocCSI_RS_PerBWP; + long maxNumberAperiodicSRS_AssocCSI_RS_PerBWP; + long maxNumberSP_SRS_AssocCSI_RS_PerBWP; + long simultaneousSRS_AssocCSI_RS_PerCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_ProcFrameworkForSRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ProcFrameworkForSRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ProcFrameworkForSRS_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_ProcFrameworkForSRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.c b/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.c new file mode 100644 index 0000000..6d49298 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.c @@ -0,0 +1,575 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-Resource-Mobility.h" + +static int +memb_ASN_RRC_ms4_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms5_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms10_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms20_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms40_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_row1_constraint_12(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 == 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_ASN_RRC_row2_constraint_12(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_firstOFDMSymbolInTimeDomain_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 <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sequenceGenerationConfig_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_ASN_RRC_ms4_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms5_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms10_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms20_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms40_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_slotConfig_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_row1_constr_13 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_ASN_RRC_row2_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyDomainAllocation_constr_12 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_ASN_RRC_firstOFDMSymbolInTimeDomain_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sequenceGenerationConfig_constr_16 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_ASN_RRC_slotConfig_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, choice.ms4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms4_constr_4, memb_ASN_RRC_ms4_constraint_3 }, + 0, 0, /* No default value */ + "ms4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, choice.ms5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms5_constr_5, memb_ASN_RRC_ms5_constraint_3 }, + 0, 0, /* No default value */ + "ms5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms10_constr_6, memb_ASN_RRC_ms10_constraint_3 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms20_constr_7, memb_ASN_RRC_ms20_constraint_3 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms40_constr_8, memb_ASN_RRC_ms40_constraint_3 }, + 0, 0, /* No default value */ + "ms40" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_slotConfig_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ms4 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ms5 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ms10 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ms20 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ms40 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_slotConfig_specs_3 = { + sizeof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, _asn_ctx), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig, present), + sizeof(((struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig *)0)->present), + asn_MAP_ASN_RRC_slotConfig_tag2el_3, + 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_ASN_RRC_slotConfig_3 = { + "slotConfig", + "slotConfig", + &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_ASN_RRC_slotConfig_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_slotConfig_3, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_slotConfig_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_associatedSSB_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__associatedSSB, ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__associatedSSB, isQuasiColocated), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "isQuasiColocated" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_associatedSSB_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_associatedSSB_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* isQuasiColocated */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_associatedSSB_specs_9 = { + sizeof(struct ASN_RRC_CSI_RS_Resource_Mobility__associatedSSB), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__associatedSSB, _asn_ctx), + asn_MAP_ASN_RRC_associatedSSB_tag2el_9, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_associatedSSB_9 = { + "associatedSSB", + "associatedSSB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_associatedSSB_tags_9, + sizeof(asn_DEF_ASN_RRC_associatedSSB_tags_9) + /sizeof(asn_DEF_ASN_RRC_associatedSSB_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_associatedSSB_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_associatedSSB_tags_9) + /sizeof(asn_DEF_ASN_RRC_associatedSSB_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_associatedSSB_9, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_associatedSSB_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_frequencyDomainAllocation_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation, choice.row1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_row1_constr_13, memb_ASN_RRC_row1_constraint_12 }, + 0, 0, /* No default value */ + "row1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation, choice.row2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_row2_constr_14, memb_ASN_RRC_row2_constraint_12 }, + 0, 0, /* No default value */ + "row2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_frequencyDomainAllocation_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* row1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* row2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_frequencyDomainAllocation_specs_12 = { + sizeof(struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation, _asn_ctx), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation, present), + sizeof(((struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation *)0)->present), + asn_MAP_ASN_RRC_frequencyDomainAllocation_tag2el_12, + 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_ASN_RRC_frequencyDomainAllocation_12 = { + "frequencyDomainAllocation", + "frequencyDomainAllocation", + &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_ASN_RRC_frequencyDomainAllocation_constr_12, CHOICE_constraint }, + asn_MBR_ASN_RRC_frequencyDomainAllocation_12, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_frequencyDomainAllocation_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_Resource_Mobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, slotConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_slotConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, associatedSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_associatedSSB_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedSSB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyDomainAllocation_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, firstOFDMSymbolInTimeDomain), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_firstOFDMSymbolInTimeDomain_constr_15, memb_ASN_RRC_firstOFDMSymbolInTimeDomain_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, sequenceGenerationConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sequenceGenerationConfig_constr_16, memb_ASN_RRC_sequenceGenerationConfig_constraint_1 }, + 0, 0, /* No default value */ + "sequenceGenerationConfig" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_RS_Resource_Mobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_Resource_Mobility_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* slotConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* associatedSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* frequencyDomainAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* firstOFDMSymbolInTimeDomain */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* sequenceGenerationConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_Resource_Mobility_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_Resource_Mobility), + offsetof(struct ASN_RRC_CSI_RS_Resource_Mobility, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_Resource_Mobility_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_RS_Resource_Mobility_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility = { + "CSI-RS-Resource-Mobility", + "CSI-RS-Resource-Mobility", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_Resource_Mobility_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_Resource_Mobility_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.h b/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.h new file mode 100644 index 0000000..b75dfea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-Resource-Mobility.h @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_Resource_Mobility_H_ +#define _ASN_RRC_CSI_RS_Resource_Mobility_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-RS-Index.h" +#include +#include +#include "ASN_RRC_SSB-Index.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR { + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_ms4, + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_ms5, + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_ms10, + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_ms20, + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR_ms40 +} ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR; +typedef enum ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR { + ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_row1, + ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_row2 +} ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR; + +/* ASN_RRC_CSI-RS-Resource-Mobility */ +typedef struct ASN_RRC_CSI_RS_Resource_Mobility { + ASN_RRC_CSI_RS_Index_t csi_RS_Index; + struct ASN_RRC_CSI_RS_Resource_Mobility__slotConfig { + ASN_RRC_CSI_RS_Resource_Mobility__slotConfig_PR present; + union ASN_RRC_CSI_RS_Resource_Mobility__ASN_RRC_slotConfig_u { + long ms4; + long ms5; + long ms10; + long ms20; + long ms40; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } slotConfig; + struct ASN_RRC_CSI_RS_Resource_Mobility__associatedSSB { + ASN_RRC_SSB_Index_t ssb_Index; + BOOLEAN_t isQuasiColocated; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *associatedSSB; + struct ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation { + ASN_RRC_CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR present; + union ASN_RRC_CSI_RS_Resource_Mobility__ASN_RRC_frequencyDomainAllocation_u { + BIT_STRING_t row1; + BIT_STRING_t row2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } frequencyDomainAllocation; + long firstOFDMSymbolInTimeDomain; + long sequenceGenerationConfig; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_Resource_Mobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_Resource_Mobility; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_Resource_Mobility_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_Resource_Mobility_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_Resource_Mobility_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.c b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.c new file mode 100644 index 0000000..1096fcc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.c @@ -0,0 +1,191 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-ResourceConfigMobility.h" + +#include "ASN_RRC_CSI-RS-CellMobility.h" +static int +memb_ASN_RRC_csi_RS_CellList_Mobility_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 <= 96)) { + /* 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_ASN_RRC_csi_RS_CellList_Mobility_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_RS_CellList_Mobility_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 96 } /* (SIZE(1..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_RS_CellList_Mobility_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_RS_CellMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_RS_CellList_Mobility_specs_3 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceConfigMobility__csi_RS_CellList_Mobility), + offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility__csi_RS_CellList_Mobility, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_3 = { + "csi-RS-CellList-Mobility", + "csi-RS-CellList-Mobility", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3, + sizeof(asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RS_CellList_Mobility_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_RS_CellList_Mobility_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_RS_CellList_Mobility_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility__ext1, refServCellIndex_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refServCellIndex-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* refServCellIndex-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_6 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceConfigMobility__ext1), + offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_6, + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_6, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ResourceConfigMobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility, csi_RS_CellList_Mobility), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_RS_CellList_Mobility_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_RS_CellList_Mobility_constr_3, memb_ASN_RRC_csi_RS_CellList_Mobility_constraint_1 }, + 0, 0, /* No default value */ + "csi-RS-CellList-Mobility" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_RS_ResourceConfigMobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_ResourceConfigMobility_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-CellList-Mobility */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ResourceConfigMobility_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceConfigMobility), + offsetof(struct ASN_RRC_CSI_RS_ResourceConfigMobility, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_ResourceConfigMobility_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_RS_ResourceConfigMobility_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility = { + "CSI-RS-ResourceConfigMobility", + "CSI-RS-ResourceConfigMobility", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_ResourceConfigMobility_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_ResourceConfigMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.h b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.h new file mode 100644 index 0000000..bf30c81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceConfigMobility.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_ResourceConfigMobility_H_ +#define _ASN_RRC_CSI_RS_ResourceConfigMobility_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include +#include "ASN_RRC_ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CSI_RS_CellMobility; + +/* ASN_RRC_CSI-RS-ResourceConfigMobility */ +typedef struct ASN_RRC_CSI_RS_ResourceConfigMobility { + ASN_RRC_SubcarrierSpacing_t subcarrierSpacing; + struct ASN_RRC_CSI_RS_ResourceConfigMobility__csi_RS_CellList_Mobility { + A_SEQUENCE_OF(struct ASN_RRC_CSI_RS_CellMobility) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_RS_CellList_Mobility; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_CSI_RS_ResourceConfigMobility__ext1 { + ASN_RRC_ServCellIndex_t *refServCellIndex_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_ResourceConfigMobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ResourceConfigMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ResourceConfigMobility_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_ResourceConfigMobility_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.c b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.c new file mode 100644 index 0000000..1d49f1c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.c @@ -0,0 +1,618 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-RS-ResourceMapping.h" + +static int +memb_ASN_RRC_row1_constraint_2(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 == 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_ASN_RRC_row2_constraint_2(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_row4_constraint_2(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 == 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_ASN_RRC_other_constraint_2(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 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_ASN_RRC_firstOFDMSymbolInTimeDomain_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 <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_firstOFDMSymbolInTimeDomain2_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 >= 2 && value <= 12)) { + /* Constraint 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_ASN_RRC_row1_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_ASN_RRC_row2_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_row4_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_other_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyDomainAllocation_constr_2 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_type_ASN_RRC_nrofPorts_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_cdm_Type_constr_18 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_type_ASN_RRC_dot5_constr_24 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_type_ASN_RRC_density_constr_23 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_ASN_RRC_firstOFDMSymbolInTimeDomain_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_firstOFDMSymbolInTimeDomain2_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 2, 12 } /* (2..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_frequencyDomainAllocation_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_row1_constr_3, memb_ASN_RRC_row1_constraint_2 }, + 0, 0, /* No default value */ + "row1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_row2_constr_4, memb_ASN_RRC_row2_constraint_2 }, + 0, 0, /* No default value */ + "row2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_row4_constr_5, memb_ASN_RRC_row4_constraint_2 }, + 0, 0, /* No default value */ + "row4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.other), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_other_constr_6, memb_ASN_RRC_other_constraint_2 }, + 0, 0, /* No default value */ + "other" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_frequencyDomainAllocation_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* row1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* row2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* row4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* other */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_frequencyDomainAllocation_specs_2 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation), + offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, _asn_ctx), + offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation, present), + sizeof(((struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation *)0)->present), + asn_MAP_ASN_RRC_frequencyDomainAllocation_tag2el_2, + 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_ASN_RRC_frequencyDomainAllocation_2 = { + "frequencyDomainAllocation", + "frequencyDomainAllocation", + &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_ASN_RRC_frequencyDomainAllocation_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_frequencyDomainAllocation_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_frequencyDomainAllocation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofPorts_value2enum_7[] = { + { 0, 2, "p1" }, + { 1, 2, "p2" }, + { 2, 2, "p4" }, + { 3, 2, "p8" }, + { 4, 3, "p12" }, + { 5, 3, "p16" }, + { 6, 3, "p24" }, + { 7, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofPorts_enum2value_7[] = { + 0, /* p1(0) */ + 4, /* p12(4) */ + 5, /* p16(5) */ + 1, /* p2(1) */ + 6, /* p24(6) */ + 7, /* p32(7) */ + 2, /* p4(2) */ + 3 /* p8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofPorts_specs_7 = { + asn_MAP_ASN_RRC_nrofPorts_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofPorts_enum2value_7, /* 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_ASN_RRC_nrofPorts_tags_7[] = { + (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_ASN_RRC_nrofPorts_7 = { + "nrofPorts", + "nrofPorts", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofPorts_tags_7, + sizeof(asn_DEF_ASN_RRC_nrofPorts_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofPorts_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofPorts_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofPorts_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofPorts_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofPorts_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofPorts_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cdm_Type_value2enum_18[] = { + { 0, 5, "noCDM" }, + { 1, 7, "fd-CDM2" }, + { 2, 12, "cdm4-FD2-TD2" }, + { 3, 12, "cdm8-FD2-TD4" } +}; +static const unsigned int asn_MAP_ASN_RRC_cdm_Type_enum2value_18[] = { + 2, /* cdm4-FD2-TD2(2) */ + 3, /* cdm8-FD2-TD4(3) */ + 1, /* fd-CDM2(1) */ + 0 /* noCDM(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cdm_Type_specs_18 = { + asn_MAP_ASN_RRC_cdm_Type_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cdm_Type_enum2value_18, /* 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_ASN_RRC_cdm_Type_tags_18[] = { + (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_ASN_RRC_cdm_Type_18 = { + "cdm-Type", + "cdm-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cdm_Type_tags_18, + sizeof(asn_DEF_ASN_RRC_cdm_Type_tags_18) + /sizeof(asn_DEF_ASN_RRC_cdm_Type_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cdm_Type_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cdm_Type_tags_18) + /sizeof(asn_DEF_ASN_RRC_cdm_Type_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cdm_Type_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cdm_Type_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dot5_value2enum_24[] = { + { 0, 8, "evenPRBs" }, + { 1, 7, "oddPRBs" } +}; +static const unsigned int asn_MAP_ASN_RRC_dot5_enum2value_24[] = { + 0, /* evenPRBs(0) */ + 1 /* oddPRBs(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dot5_specs_24 = { + asn_MAP_ASN_RRC_dot5_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dot5_enum2value_24, /* 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_ASN_RRC_dot5_tags_24[] = { + (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_ASN_RRC_dot5_24 = { + "dot5", + "dot5", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dot5_tags_24, + sizeof(asn_DEF_ASN_RRC_dot5_tags_24) + /sizeof(asn_DEF_ASN_RRC_dot5_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dot5_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dot5_tags_24) + /sizeof(asn_DEF_ASN_RRC_dot5_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dot5_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dot5_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_density_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, choice.dot5), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dot5_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dot5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, choice.one), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, choice.three), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "three" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, choice.spare), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_density_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dot5 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* one */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* three */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_density_specs_23 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceMapping__density), + offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, _asn_ctx), + offsetof(struct ASN_RRC_CSI_RS_ResourceMapping__density, present), + sizeof(((struct ASN_RRC_CSI_RS_ResourceMapping__density *)0)->present), + asn_MAP_ASN_RRC_density_tag2el_23, + 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_ASN_RRC_density_23 = { + "density", + "density", + &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_ASN_RRC_density_constr_23, CHOICE_constraint }, + asn_MBR_ASN_RRC_density_23, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_density_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ResourceMapping_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyDomainAllocation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, nrofPorts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofPorts_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_firstOFDMSymbolInTimeDomain_constr_16, memb_ASN_RRC_firstOFDMSymbolInTimeDomain_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_firstOFDMSymbolInTimeDomain2_constr_17, memb_ASN_RRC_firstOFDMSymbolInTimeDomain2_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, cdm_Type), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cdm_Type_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cdm-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, density), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_density_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "density" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, freqBand), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_FrequencyOccupation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBand" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_RS_ResourceMapping_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_RS_ResourceMapping_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDomainAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofPorts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* firstOFDMSymbolInTimeDomain */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* firstOFDMSymbolInTimeDomain2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cdm-Type */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* density */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* freqBand */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ResourceMapping_specs_1 = { + sizeof(struct ASN_RRC_CSI_RS_ResourceMapping), + offsetof(struct ASN_RRC_CSI_RS_ResourceMapping, _asn_ctx), + asn_MAP_ASN_RRC_CSI_RS_ResourceMapping_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_RS_ResourceMapping_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ResourceMapping = { + "CSI-RS-ResourceMapping", + "CSI-RS-ResourceMapping", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_RS_ResourceMapping_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_RS_ResourceMapping_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.h b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.h new file mode 100644 index 0000000..44cac20 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-RS-ResourceMapping.h @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_RS_ResourceMapping_H_ +#define _ASN_RRC_CSI_RS_ResourceMapping_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_CSI-FrequencyOccupation.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR { + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row1, + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2, + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row4, + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_other +} ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR; +typedef enum ASN_RRC_CSI_RS_ResourceMapping__nrofPorts { + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p1 = 0, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p2 = 1, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p4 = 2, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p8 = 3, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p12 = 4, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p16 = 5, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p24 = 6, + ASN_RRC_CSI_RS_ResourceMapping__nrofPorts_p32 = 7 +} e_ASN_RRC_CSI_RS_ResourceMapping__nrofPorts; +typedef enum ASN_RRC_CSI_RS_ResourceMapping__cdm_Type { + ASN_RRC_CSI_RS_ResourceMapping__cdm_Type_noCDM = 0, + ASN_RRC_CSI_RS_ResourceMapping__cdm_Type_fd_CDM2 = 1, + ASN_RRC_CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2 = 2, + ASN_RRC_CSI_RS_ResourceMapping__cdm_Type_cdm8_FD2_TD4 = 3 +} e_ASN_RRC_CSI_RS_ResourceMapping__cdm_Type; +typedef enum ASN_RRC_CSI_RS_ResourceMapping__density_PR { + ASN_RRC_CSI_RS_ResourceMapping__density_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_RS_ResourceMapping__density_PR_dot5, + ASN_RRC_CSI_RS_ResourceMapping__density_PR_one, + ASN_RRC_CSI_RS_ResourceMapping__density_PR_three, + ASN_RRC_CSI_RS_ResourceMapping__density_PR_spare +} ASN_RRC_CSI_RS_ResourceMapping__density_PR; +typedef enum ASN_RRC_CSI_RS_ResourceMapping__density__dot5 { + ASN_RRC_CSI_RS_ResourceMapping__density__dot5_evenPRBs = 0, + ASN_RRC_CSI_RS_ResourceMapping__density__dot5_oddPRBs = 1 +} e_ASN_RRC_CSI_RS_ResourceMapping__density__dot5; + +/* ASN_RRC_CSI-RS-ResourceMapping */ +typedef struct ASN_RRC_CSI_RS_ResourceMapping { + struct ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation { + ASN_RRC_CSI_RS_ResourceMapping__frequencyDomainAllocation_PR present; + union ASN_RRC_CSI_RS_ResourceMapping__ASN_RRC_frequencyDomainAllocation_u { + BIT_STRING_t row1; + BIT_STRING_t row2; + BIT_STRING_t row4; + BIT_STRING_t other; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } frequencyDomainAllocation; + long nrofPorts; + long firstOFDMSymbolInTimeDomain; + long *firstOFDMSymbolInTimeDomain2; /* OPTIONAL */ + long cdm_Type; + struct ASN_RRC_CSI_RS_ResourceMapping__density { + ASN_RRC_CSI_RS_ResourceMapping__density_PR present; + union ASN_RRC_CSI_RS_ResourceMapping__ASN_RRC_density_u { + long dot5; + NULL_t one; + NULL_t three; + NULL_t spare; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } density; + ASN_RRC_CSI_FrequencyOccupation_t freqBand; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_RS_ResourceMapping_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofPorts_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cdm_Type_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dot5_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_RS_ResourceMapping; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_RS_ResourceMapping_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_RS_ResourceMapping_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_RS_ResourceMapping_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportConfig.c b/src/asn/rrc/ASN_RRC_CSI-ReportConfig.c new file mode 100644 index 0000000..264447c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportConfig.c @@ -0,0 +1,2679 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ReportConfig.h" + +#include "ASN_RRC_CodebookConfig.h" +#include "ASN_RRC_PUCCH-CSI-Resource.h" +#include "ASN_RRC_PortIndexFor8Ranks.h" +static int +memb_ASN_RRC_pucch_CSI_ResourceList_constraint_8(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 <= 4)) { + /* 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 int +memb_ASN_RRC_pucch_CSI_ResourceList_constraint_12(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 <= 4)) { + /* 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_NativeInteger_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 <= 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 int +memb_ASN_RRC_reportSlotOffsetList_constraint_16(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 <= 16)) { + /* 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 int +memb_NativeInteger_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 <= 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 int +memb_ASN_RRC_reportSlotOffsetList_constraint_28(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 <= 16)) { + /* 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; + } +} + +/* + * 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_ASN_RRC_subbands3_constraint_50(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 == 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_ASN_RRC_subbands4_constraint_50(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 == 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_ASN_RRC_subbands5_constraint_50(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 int +memb_ASN_RRC_subbands6_constraint_50(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; + } +} + +static int +memb_ASN_RRC_subbands7_constraint_50(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_ASN_RRC_subbands8_constraint_50(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_ASN_RRC_subbands9_constraint_50(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 == 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 int +memb_ASN_RRC_subbands10_constraint_50(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands11_constraint_50(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 == 11)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands12_constraint_50(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands13_constraint_50(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 == 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands14_constraint_50(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 == 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands15_constraint_50(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 == 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_ASN_RRC_subbands16_constraint_50(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; + } +} + +static int +memb_ASN_RRC_subbands17_constraint_50(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 == 17)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_subbands18_constraint_50(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_ASN_RRC_subbands19_v1530_constraint_50(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 == 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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. + */ +/* + * 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_ASN_RRC_non_PMI_PortIndication_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 <= 128)) { + /* 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_ASN_RRC_pucch_CSI_ResourceList_constr_10 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_per_constraints_t asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_10 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_per_constraints_t asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_14 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_per_constraints_t asn_PER_type_ASN_RRC_reportSlotConfig_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_25 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_per_constraints_t asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_25 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_29 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_per_constraints_t asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_29 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_per_constraints_t asn_PER_type_ASN_RRC_reportConfigType_constr_7 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_type_ASN_RRC_pdsch_BundleSizeForCSI_constr_36 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_type_ASN_RRC_reportQuantity_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_cqi_FormatIndicator_constr_44 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_type_ASN_RRC_pmi_FormatIndicator_constr_47 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_ASN_RRC_subbands3_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands4_constr_52 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_ASN_RRC_subbands5_constr_53 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_per_constraints_t asn_PER_memb_ASN_RRC_subbands6_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands7_constr_55 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_ASN_RRC_subbands8_constr_56 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_ASN_RRC_subbands9_constr_57 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands10_constr_58 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands11_constr_59 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 11, 11 } /* (SIZE(11..11)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands12_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands13_constr_61 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 13, 13 } /* (SIZE(13..13)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands14_constr_62 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 14, 14 } /* (SIZE(14..14)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands15_constr_63 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 15, 15 } /* (SIZE(15..15)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands16_constr_64 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands17_constr_65 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 17, 17 } /* (SIZE(17..17)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands18_constr_66 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_ASN_RRC_subbands19_v1530_constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 19, 19 } /* (SIZE(19..19)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ReportingBand_constr_50 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_type_ASN_RRC_timeRestrictionForChannelMeasurements_constr_69 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_type_ASN_RRC_timeRestrictionForInterferenceMeasurements_constr_72 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_type_ASN_RRC_dummy_constr_76 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_type_ASN_RRC_nrofReportedRS_constr_82 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_type_ASN_RRC_groupBasedBeamReporting_constr_79 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_type_ASN_RRC_cqi_Table_constr_87 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_type_ASN_RRC_subbandSize_constr_92 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_type_ASN_RRC_non_PMI_PortIndication_constr_95 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_per_constraints_t asn_PER_type_ASN_RRC_reportSlotConfig_v1530_constr_100 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_non_PMI_PortIndication_constr_95 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_ASN_RRC_pucch_CSI_ResourceList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_CSI_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_10 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_10 = { + "pucch-CSI-ResourceList", + "pucch-CSI-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10, + sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10) + /sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10) + /sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pucch_CSI_ResourceList_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodic_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, pucch_CSI_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_pucch_CSI_ResourceList_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_10, memb_ASN_RRC_pucch_CSI_ResourceList_constraint_8 }, + 0, 0, /* No default value */ + "pucch-CSI-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodic_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodic_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pucch-CSI-ResourceList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_periodic_specs_8 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, _asn_ctx), + asn_MAP_ASN_RRC_periodic_tag2el_8, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodic_8 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_periodic_tags_8, + sizeof(asn_DEF_ASN_RRC_periodic_tags_8) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodic_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodic_tags_8) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_periodic_8, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_periodic_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pucch_CSI_ResourceList_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_CSI_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_14 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_14 = { + "pucch-CSI-ResourceList", + "pucch-CSI-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14, + sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14) + /sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14) + /sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pucch_CSI_ResourceList_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUCCH_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, pucch_CSI_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_pucch_CSI_ResourceList_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_14, memb_ASN_RRC_pucch_CSI_ResourceList_constraint_12 }, + 0, 0, /* No default value */ + "pucch-CSI-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUCCH_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pucch-CSI-ResourceList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUCCH_specs_12 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, _asn_ctx), + asn_MAP_ASN_RRC_semiPersistentOnPUCCH_tag2el_12, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUCCH_12 = { + "semiPersistentOnPUCCH", + "semiPersistentOnPUCCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12, + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_semiPersistentOnPUCCH_12, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_semiPersistentOnPUCCH_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportSlotConfig_value2enum_17[] = { + { 0, 3, "sl5" }, + { 1, 4, "sl10" }, + { 2, 4, "sl20" }, + { 3, 4, "sl40" }, + { 4, 4, "sl80" }, + { 5, 5, "sl160" }, + { 6, 5, "sl320" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportSlotConfig_enum2value_17[] = { + 1, /* sl10(1) */ + 5, /* sl160(5) */ + 2, /* sl20(2) */ + 6, /* sl320(6) */ + 3, /* sl40(3) */ + 0, /* sl5(0) */ + 4 /* sl80(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportSlotConfig_specs_17 = { + asn_MAP_ASN_RRC_reportSlotConfig_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportSlotConfig_enum2value_17, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_reportSlotConfig_tags_17[] = { + (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_ASN_RRC_reportSlotConfig_17 = { + "reportSlotConfig", + "reportSlotConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportSlotConfig_tags_17, + sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17) + /sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportSlotConfig_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17) + /sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportSlotConfig_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportSlotConfig_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportSlotOffsetList_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_26, memb_NativeInteger_constraint_25 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_reportSlotOffsetList_specs_25 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotOffsetList_25 = { + "reportSlotOffsetList", + "reportSlotOffsetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25, + sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25) + /sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25) + /sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_reportSlotOffsetList_25, + 1, /* Single element */ + &asn_SPC_ASN_RRC_reportSlotOffsetList_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUSCH_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportSlotConfig_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotOffsetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_reportSlotOffsetList_25, + 0, + { 0, &asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_25, memb_ASN_RRC_reportSlotOffsetList_constraint_16 }, + 0, 0, /* No default value */ + "reportSlotOffsetList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, p0alpha), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0alpha" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUSCH_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportSlotOffsetList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* p0alpha */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUSCH_specs_16 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, _asn_ctx), + asn_MAP_ASN_RRC_semiPersistentOnPUSCH_tag2el_16, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_16 = { + "semiPersistentOnPUSCH", + "semiPersistentOnPUSCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16, + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_semiPersistentOnPUSCH_16, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_semiPersistentOnPUSCH_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportSlotOffsetList_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_30, memb_NativeInteger_constraint_29 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_reportSlotOffsetList_specs_29 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotOffsetList_29 = { + "reportSlotOffsetList", + "reportSlotOffsetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29, + sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29) + /sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29) + /sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_reportSlotOffsetList_29, + 1, /* Single element */ + &asn_SPC_ASN_RRC_reportSlotOffsetList_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodic_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic, reportSlotOffsetList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_reportSlotOffsetList_29, + 0, + { 0, &asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_29, memb_ASN_RRC_reportSlotOffsetList_constraint_28 }, + 0, 0, /* No default value */ + "reportSlotOffsetList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_aperiodic_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotOffsetList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_aperiodic_specs_28 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic, _asn_ctx), + asn_MAP_ASN_RRC_aperiodic_tag2el_28, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_28 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_aperiodic_tags_28, + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodic_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_aperiodic_28, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_aperiodic_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportConfigType_7[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_periodic_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUCCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_semiPersistentOnPUCCH_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUCCH" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_semiPersistentOnPUSCH_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodic_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportConfigType_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiPersistentOnPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiPersistentOnPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* aperiodic */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportConfigType_specs_7 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, present), + sizeof(((struct ASN_RRC_CSI_ReportConfig__reportConfigType *)0)->present), + asn_MAP_ASN_RRC_reportConfigType_tag2el_7, + 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_ASN_RRC_reportConfigType_7 = { + "reportConfigType", + "reportConfigType", + &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_ASN_RRC_reportConfigType_constr_7, CHOICE_constraint }, + asn_MBR_ASN_RRC_reportConfigType_7, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_reportConfigType_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_value2enum_36[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_enum2value_36[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_BundleSizeForCSI_specs_36 = { + asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_enum2value_36, /* 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_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[] = { + (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_ASN_RRC_pdsch_BundleSizeForCSI_36 = { + "pdsch-BundleSizeForCSI", + "pdsch-BundleSizeForCSI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36, + sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36) + /sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36) + /sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_BundleSizeForCSI_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_BundleSizeForCSI_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cri_RI_i1_CQI_35[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, pdsch_BundleSizeForCSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-BundleSizeForCSI" + }, +}; +static const int asn_MAP_ASN_RRC_cri_RI_i1_CQI_oms_35[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cri_RI_i1_CQI_tag2el_35[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-BundleSizeForCSI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cri_RI_i1_CQI_specs_35 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, _asn_ctx), + asn_MAP_ASN_RRC_cri_RI_i1_CQI_tag2el_35, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cri_RI_i1_CQI_oms_35, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cri_RI_i1_CQI_35 = { + "cri-RI-i1-CQI", + "cri-RI-i1-CQI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35, + sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35) + /sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35) + /sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cri_RI_i1_CQI_35, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_cri_RI_i1_CQI_specs_35 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportQuantity_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.none), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "none" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_PMI_CQI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-PMI-CQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_i1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-i1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_i1_CQI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_cri_RI_i1_CQI_35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-i1-CQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_CQI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-CQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RSRP), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.ssb_Index_RSRP), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_LI_PMI_CQI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-LI-PMI-CQI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportQuantity_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* none */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cri-RI-PMI-CQI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cri-RI-i1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cri-RI-i1-CQI */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cri-RI-CQI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* cri-RSRP */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ssb-Index-RSRP */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* cri-RI-LI-PMI-CQI */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportQuantity_specs_31 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportQuantity), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, present), + sizeof(((struct ASN_RRC_CSI_ReportConfig__reportQuantity *)0)->present), + asn_MAP_ASN_RRC_reportQuantity_tag2el_31, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportQuantity_31 = { + "reportQuantity", + "reportQuantity", + &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_ASN_RRC_reportQuantity_constr_31, CHOICE_constraint }, + asn_MBR_ASN_RRC_reportQuantity_31, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_reportQuantity_specs_31 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cqi_FormatIndicator_value2enum_44[] = { + { 0, 11, "widebandCQI" }, + { 1, 10, "subbandCQI" } +}; +static const unsigned int asn_MAP_ASN_RRC_cqi_FormatIndicator_enum2value_44[] = { + 1, /* subbandCQI(1) */ + 0 /* widebandCQI(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cqi_FormatIndicator_specs_44 = { + asn_MAP_ASN_RRC_cqi_FormatIndicator_value2enum_44, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cqi_FormatIndicator_enum2value_44, /* 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_ASN_RRC_cqi_FormatIndicator_tags_44[] = { + (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_ASN_RRC_cqi_FormatIndicator_44 = { + "cqi-FormatIndicator", + "cqi-FormatIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44, + sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44) + /sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44) + /sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cqi_FormatIndicator_constr_44, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cqi_FormatIndicator_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pmi_FormatIndicator_value2enum_47[] = { + { 0, 11, "widebandPMI" }, + { 1, 10, "subbandPMI" } +}; +static const unsigned int asn_MAP_ASN_RRC_pmi_FormatIndicator_enum2value_47[] = { + 1, /* subbandPMI(1) */ + 0 /* widebandPMI(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pmi_FormatIndicator_specs_47 = { + asn_MAP_ASN_RRC_pmi_FormatIndicator_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pmi_FormatIndicator_enum2value_47, /* 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_ASN_RRC_pmi_FormatIndicator_tags_47[] = { + (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_ASN_RRC_pmi_FormatIndicator_47 = { + "pmi-FormatIndicator", + "pmi-FormatIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47, + sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47) + /sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47) + /sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pmi_FormatIndicator_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pmi_FormatIndicator_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ReportingBand_50[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands3_constr_51, memb_ASN_RRC_subbands3_constraint_50 }, + 0, 0, /* No default value */ + "subbands3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands4_constr_52, memb_ASN_RRC_subbands4_constraint_50 }, + 0, 0, /* No default value */ + "subbands4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands5), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands5_constr_53, memb_ASN_RRC_subbands5_constraint_50 }, + 0, 0, /* No default value */ + "subbands5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands6), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands6_constr_54, memb_ASN_RRC_subbands6_constraint_50 }, + 0, 0, /* No default value */ + "subbands6" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands7), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands7_constr_55, memb_ASN_RRC_subbands7_constraint_50 }, + 0, 0, /* No default value */ + "subbands7" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands8), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands8_constr_56, memb_ASN_RRC_subbands8_constraint_50 }, + 0, 0, /* No default value */ + "subbands8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands9), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands9_constr_57, memb_ASN_RRC_subbands9_constraint_50 }, + 0, 0, /* No default value */ + "subbands9" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands10), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands10_constr_58, memb_ASN_RRC_subbands10_constraint_50 }, + 0, 0, /* No default value */ + "subbands10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands11), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands11_constr_59, memb_ASN_RRC_subbands11_constraint_50 }, + 0, 0, /* No default value */ + "subbands11" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands12), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands12_constr_60, memb_ASN_RRC_subbands12_constraint_50 }, + 0, 0, /* No default value */ + "subbands12" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands13), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands13_constr_61, memb_ASN_RRC_subbands13_constraint_50 }, + 0, 0, /* No default value */ + "subbands13" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands14), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands14_constr_62, memb_ASN_RRC_subbands14_constraint_50 }, + 0, 0, /* No default value */ + "subbands14" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands15), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands15_constr_63, memb_ASN_RRC_subbands15_constraint_50 }, + 0, 0, /* No default value */ + "subbands15" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands16), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands16_constr_64, memb_ASN_RRC_subbands16_constraint_50 }, + 0, 0, /* No default value */ + "subbands16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands17), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands17_constr_65, memb_ASN_RRC_subbands17_constraint_50 }, + 0, 0, /* No default value */ + "subbands17" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands18), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands18_constr_66, memb_ASN_RRC_subbands18_constraint_50 }, + 0, 0, /* No default value */ + "subbands18" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands19_v1530), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_subbands19_v1530_constr_68, memb_ASN_RRC_subbands19_v1530_constraint_50 }, + 0, 0, /* No default value */ + "subbands19-v1530" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_ReportingBand_tag2el_50[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbands3 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbands4 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbands5 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* subbands6 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subbands7 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* subbands8 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* subbands9 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* subbands10 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* subbands11 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* subbands12 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* subbands13 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* subbands14 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* subbands15 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* subbands16 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* subbands17 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* subbands18 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* subbands19-v1530 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_csi_ReportingBand_specs_50 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, present), + sizeof(((struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand *)0)->present), + asn_MAP_ASN_RRC_csi_ReportingBand_tag2el_50, + 17, /* Count of tags in the map */ + 0, 0, + 16 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportingBand_50 = { + "csi-ReportingBand", + "csi-ReportingBand", + &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_ASN_RRC_csi_ReportingBand_constr_50, CHOICE_constraint }, + asn_MBR_ASN_RRC_csi_ReportingBand_50, + 17, /* Elements count */ + &asn_SPC_ASN_RRC_csi_ReportingBand_specs_50 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportFreqConfiguration_43[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, cqi_FormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cqi_FormatIndicator_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cqi-FormatIndicator" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, pmi_FormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pmi_FormatIndicator_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pmi-FormatIndicator" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, csi_ReportingBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_ReportingBand_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportingBand" + }, +}; +static const int asn_MAP_ASN_RRC_reportFreqConfiguration_oms_43[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportFreqConfiguration_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cqi-FormatIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pmi-FormatIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* csi-ReportingBand */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reportFreqConfiguration_specs_43 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration), + offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, _asn_ctx), + asn_MAP_ASN_RRC_reportFreqConfiguration_tag2el_43, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_reportFreqConfiguration_oms_43, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportFreqConfiguration_43 = { + "reportFreqConfiguration", + "reportFreqConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43, + sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43) + /sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43) + /sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reportFreqConfiguration_43, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_reportFreqConfiguration_specs_43 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_value2enum_69[] = { + { 0, 10, "configured" }, + { 1, 13, "notConfigured" } +}; +static const unsigned int asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_enum2value_69[] = { + 0, /* configured(0) */ + 1 /* notConfigured(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeRestrictionForChannelMeasurements_specs_69 = { + asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_value2enum_69, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_enum2value_69, /* 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_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_69 = { + "timeRestrictionForChannelMeasurements", + "timeRestrictionForChannelMeasurements", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69, + sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69) + /sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69) + /sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeRestrictionForChannelMeasurements_constr_69, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_timeRestrictionForChannelMeasurements_specs_69 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_value2enum_72[] = { + { 0, 10, "configured" }, + { 1, 13, "notConfigured" } +}; +static const unsigned int asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_enum2value_72[] = { + 0, /* configured(0) */ + 1 /* notConfigured(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeRestrictionForInterferenceMeasurements_specs_72 = { + asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_enum2value_72, /* 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_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_72 = { + "timeRestrictionForInterferenceMeasurements", + "timeRestrictionForInterferenceMeasurements", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72, + sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72) + /sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72) + /sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeRestrictionForInterferenceMeasurements_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_timeRestrictionForInterferenceMeasurements_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_76[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_76[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_76 = { + asn_MAP_ASN_RRC_dummy_value2enum_76, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_76, /* 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_ASN_RRC_dummy_tags_76[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_76 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_76, + sizeof(asn_DEF_ASN_RRC_dummy_tags_76) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_76[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_76, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_76) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_76[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_76, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_76 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofReportedRS_value2enum_82[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofReportedRS_enum2value_82[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofReportedRS_specs_82 = { + asn_MAP_ASN_RRC_nrofReportedRS_value2enum_82, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofReportedRS_enum2value_82, /* 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_ASN_RRC_nrofReportedRS_tags_82[] = { + (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_ASN_RRC_nrofReportedRS_82 = { + "nrofReportedRS", + "nrofReportedRS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofReportedRS_tags_82, + sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82) + /sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofReportedRS_tags_82, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82) + /sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofReportedRS_constr_82, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofReportedRS_specs_82 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_disabled_81[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled, nrofReportedRS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofReportedRS_82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofReportedRS" + }, +}; +static const int asn_MAP_ASN_RRC_disabled_oms_81[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_disabled_tags_81[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_disabled_tag2el_81[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofReportedRS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_disabled_specs_81 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled), + offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled, _asn_ctx), + asn_MAP_ASN_RRC_disabled_tag2el_81, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_disabled_oms_81, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_disabled_81 = { + "disabled", + "disabled", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_disabled_tags_81, + sizeof(asn_DEF_ASN_RRC_disabled_tags_81) + /sizeof(asn_DEF_ASN_RRC_disabled_tags_81[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_disabled_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_disabled_tags_81) + /sizeof(asn_DEF_ASN_RRC_disabled_tags_81[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_disabled_81, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_disabled_specs_81 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_groupBasedBeamReporting_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, choice.enabled), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "enabled" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, choice.disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_disabled_81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_groupBasedBeamReporting_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enabled */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* disabled */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_groupBasedBeamReporting_specs_79 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting), + offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, present), + sizeof(((struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting *)0)->present), + asn_MAP_ASN_RRC_groupBasedBeamReporting_tag2el_79, + 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_ASN_RRC_groupBasedBeamReporting_79 = { + "groupBasedBeamReporting", + "groupBasedBeamReporting", + &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_ASN_RRC_groupBasedBeamReporting_constr_79, CHOICE_constraint }, + asn_MBR_ASN_RRC_groupBasedBeamReporting_79, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_groupBasedBeamReporting_specs_79 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cqi_Table_value2enum_87[] = { + { 0, 6, "table1" }, + { 1, 6, "table2" }, + { 2, 6, "table3" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_cqi_Table_enum2value_87[] = { + 3, /* spare1(3) */ + 0, /* table1(0) */ + 1, /* table2(1) */ + 2 /* table3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cqi_Table_specs_87 = { + asn_MAP_ASN_RRC_cqi_Table_value2enum_87, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cqi_Table_enum2value_87, /* 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_ASN_RRC_cqi_Table_tags_87[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_Table_87 = { + "cqi-Table", + "cqi-Table", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cqi_Table_tags_87, + sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87) + /sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cqi_Table_tags_87, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87) + /sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cqi_Table_constr_87, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cqi_Table_specs_87 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_subbandSize_value2enum_92[] = { + { 0, 6, "value1" }, + { 1, 6, "value2" } +}; +static const unsigned int asn_MAP_ASN_RRC_subbandSize_enum2value_92[] = { + 0, /* value1(0) */ + 1 /* value2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_subbandSize_specs_92 = { + asn_MAP_ASN_RRC_subbandSize_value2enum_92, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_subbandSize_enum2value_92, /* 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_ASN_RRC_subbandSize_tags_92[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subbandSize_92 = { + "subbandSize", + "subbandSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_subbandSize_tags_92, + sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92) + /sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_subbandSize_tags_92, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92) + /sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_subbandSize_constr_92, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_subbandSize_specs_92 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_non_PMI_PortIndication_95[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_PortIndexFor8Ranks, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_non_PMI_PortIndication_specs_95 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__non_PMI_PortIndication), + offsetof(struct ASN_RRC_CSI_ReportConfig__non_PMI_PortIndication, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_non_PMI_PortIndication_95 = { + "non-PMI-PortIndication", + "non-PMI-PortIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95, + sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95) + /sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95) + /sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_non_PMI_PortIndication_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_non_PMI_PortIndication_95, + 1, /* Single element */ + &asn_SPC_ASN_RRC_non_PMI_PortIndication_specs_95 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportSlotConfig_v1530_value2enum_100[] = { + { 0, 3, "sl4" }, + { 1, 3, "sl8" }, + { 2, 4, "sl16" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportSlotConfig_v1530_enum2value_100[] = { + 2, /* sl16(2) */ + 0, /* sl4(0) */ + 1 /* sl8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportSlotConfig_v1530_specs_100 = { + asn_MAP_ASN_RRC_reportSlotConfig_v1530_value2enum_100, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportSlotConfig_v1530_enum2value_100, /* 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_ASN_RRC_reportSlotConfig_v1530_tags_100[] = { + (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_ASN_RRC_reportSlotConfig_v1530_100 = { + "reportSlotConfig-v1530", + "reportSlotConfig-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100, + sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100) + /sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100) + /sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportSlotConfig_v1530_constr_100, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportSlotConfig_v1530_specs_100 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUSCH_v1530_99[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, reportSlotConfig_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportSlotConfig_v1530_100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig-v1530" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUSCH_v1530_tag2el_99[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotConfig-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUSCH_v1530_specs_99 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530), + offsetof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, _asn_ctx), + asn_MAP_ASN_RRC_semiPersistentOnPUSCH_v1530_tag2el_99, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_99 = { + "semiPersistentOnPUSCH-v1530", + "semiPersistentOnPUSCH-v1530", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99, + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99) + /sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_semiPersistentOnPUSCH_v1530_99, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_semiPersistentOnPUSCH_v1530_specs_99 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_98[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__ext1, semiPersistentOnPUSCH_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_98[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_98[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_98[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* semiPersistentOnPUSCH-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_98 = { + sizeof(struct ASN_RRC_CSI_ReportConfig__ext1), + offsetof(struct ASN_RRC_CSI_ReportConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_98, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_98, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_98 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_98, + sizeof(asn_DEF_ASN_RRC_ext1_tags_98) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_98[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_98, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_98) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_98[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_98, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_98 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, carrier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, resourcesForChannelMeasurement), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourcesForChannelMeasurement" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, csi_IM_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourcesForInterference" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, nzp_CSI_RS_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourcesForInterference" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportConfigType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportConfigType_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportQuantity_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, reportFreqConfiguration), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_reportFreqConfiguration_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportFreqConfiguration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, timeRestrictionForChannelMeasurements), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRestrictionForChannelMeasurements" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, timeRestrictionForInterferenceMeasurements), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRestrictionForInterferenceMeasurements" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, codebookConfig), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CodebookConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, dummy), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, groupBasedBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_groupBasedBeamReporting_79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBasedBeamReporting" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, cqi_Table), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cqi_Table_87, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cqi-Table" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, subbandSize), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subbandSize_92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subbandSize" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, non_PMI_PortIndication), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ASN_RRC_non_PMI_PortIndication_95, + 0, + { 0, &asn_PER_memb_ASN_RRC_non_PMI_PortIndication_constr_95, memb_ASN_RRC_non_PMI_PortIndication_constraint_1 }, + 0, 0, /* No default value */ + "non-PMI-PortIndication" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_CSI_ReportConfig_oms_1[] = { 1, 3, 4, 7, 10, 11, 13, 15, 16 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ReportConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportConfigId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* carrier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resourcesForChannelMeasurement */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* csi-IM-ResourcesForInterference */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nzp-CSI-RS-ResourcesForInterference */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* reportConfigType */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* reportQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* reportFreqConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* timeRestrictionForChannelMeasurements */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* timeRestrictionForInterferenceMeasurements */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* codebookConfig */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* groupBasedBeamReporting */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* cqi-Table */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* subbandSize */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* non-PMI-PortIndication */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ReportConfig_specs_1 = { + sizeof(struct ASN_RRC_CSI_ReportConfig), + offsetof(struct ASN_RRC_CSI_ReportConfig, _asn_ctx), + asn_MAP_ASN_RRC_CSI_ReportConfig_tag2el_1, + 17, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CSI_ReportConfig_oms_1, /* Optional members */ + 8, 1, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportConfig = { + "CSI-ReportConfig", + "CSI-ReportConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_ReportConfig_1, + 17, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_ReportConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportConfig.h b/src/asn/rrc/ASN_RRC_CSI-ReportConfig.h new file mode 100644 index 0000000..b2542f7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportConfig.h @@ -0,0 +1,326 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ReportConfig_H_ +#define _ASN_RRC_CSI_ReportConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-ReportConfigId.h" +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_CSI-ResourceConfigId.h" +#include +#include "ASN_RRC_CSI-ReportPeriodicityAndOffset.h" +#include +#include +#include +#include "ASN_RRC_P0-PUSCH-AlphaSetId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_ReportConfig__reportConfigType_PR { + ASN_RRC_CSI_ReportConfig__reportConfigType_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ReportConfig__reportConfigType_PR_periodic, + ASN_RRC_CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUCCH, + ASN_RRC_CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUSCH, + ASN_RRC_CSI_ReportConfig__reportConfigType_PR_aperiodic +} ASN_RRC_CSI_ReportConfig__reportConfigType_PR; +typedef enum ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig { + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl5 = 0, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl10 = 1, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl20 = 2, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl40 = 3, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl80 = 4, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl160 = 5, + ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl320 = 6 +} e_ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig; +typedef enum ASN_RRC_CSI_ReportConfig__reportQuantity_PR { + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_none, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RSRP, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP, + ASN_RRC_CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI +} ASN_RRC_CSI_ReportConfig__reportQuantity_PR; +typedef enum ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI { + ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n2 = 0, + ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n4 = 1 +} e_ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI; +typedef enum ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator { + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI = 0, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_subbandCQI = 1 +} e_ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator; +typedef enum ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator { + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_widebandPMI = 0, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_subbandPMI = 1 +} e_ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator; +typedef enum ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR { + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands3, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands4, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands5, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands6, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands7, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands8, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands9, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands10, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands11, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands12, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands13, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands14, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands15, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands16, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands17, + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands18, + /* Extensions may appear below */ + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands19_v1530 +} ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR; +typedef enum ASN_RRC_CSI_ReportConfig__timeRestrictionForChannelMeasurements { + ASN_RRC_CSI_ReportConfig__timeRestrictionForChannelMeasurements_configured = 0, + ASN_RRC_CSI_ReportConfig__timeRestrictionForChannelMeasurements_notConfigured = 1 +} e_ASN_RRC_CSI_ReportConfig__timeRestrictionForChannelMeasurements; +typedef enum ASN_RRC_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements { + ASN_RRC_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_configured = 0, + ASN_RRC_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_notConfigured = 1 +} e_ASN_RRC_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements; +typedef enum ASN_RRC_CSI_ReportConfig__dummy { + ASN_RRC_CSI_ReportConfig__dummy_n1 = 0, + ASN_RRC_CSI_ReportConfig__dummy_n2 = 1 +} e_ASN_RRC_CSI_ReportConfig__dummy; +typedef enum ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR { + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR_enabled, + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR_disabled +} ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR; +typedef enum ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS { + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n1 = 0, + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n2 = 1, + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n3 = 2, + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n4 = 3 +} e_ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS; +typedef enum ASN_RRC_CSI_ReportConfig__cqi_Table { + ASN_RRC_CSI_ReportConfig__cqi_Table_table1 = 0, + ASN_RRC_CSI_ReportConfig__cqi_Table_table2 = 1, + ASN_RRC_CSI_ReportConfig__cqi_Table_table3 = 2, + ASN_RRC_CSI_ReportConfig__cqi_Table_spare1 = 3 +} e_ASN_RRC_CSI_ReportConfig__cqi_Table; +typedef enum ASN_RRC_CSI_ReportConfig__subbandSize { + ASN_RRC_CSI_ReportConfig__subbandSize_value1 = 0, + ASN_RRC_CSI_ReportConfig__subbandSize_value2 = 1 +} e_ASN_RRC_CSI_ReportConfig__subbandSize; +typedef enum ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530 { + ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl4 = 0, + ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl8 = 1, + ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl16 = 2 +} e_ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530; + +/* Forward declarations */ +struct ASN_RRC_CodebookConfig; +struct ASN_RRC_PUCCH_CSI_Resource; +struct ASN_RRC_PortIndexFor8Ranks; + +/* ASN_RRC_CSI-ReportConfig */ +typedef struct ASN_RRC_CSI_ReportConfig { + ASN_RRC_CSI_ReportConfigId_t reportConfigId; + ASN_RRC_ServCellIndex_t *carrier; /* OPTIONAL */ + ASN_RRC_CSI_ResourceConfigId_t resourcesForChannelMeasurement; + ASN_RRC_CSI_ResourceConfigId_t *csi_IM_ResourcesForInterference; /* OPTIONAL */ + ASN_RRC_CSI_ResourceConfigId_t *nzp_CSI_RS_ResourcesForInterference; /* OPTIONAL */ + struct ASN_RRC_CSI_ReportConfig__reportConfigType { + ASN_RRC_CSI_ReportConfig__reportConfigType_PR present; + union ASN_RRC_CSI_ReportConfig__ASN_RRC_reportConfigType_u { + struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic { + ASN_RRC_CSI_ReportPeriodicityAndOffset_t reportSlotConfig; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_CSI_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pucch_CSI_ResourceList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *periodic; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH { + ASN_RRC_CSI_ReportPeriodicityAndOffset_t reportSlotConfig; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_CSI_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } pucch_CSI_ResourceList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semiPersistentOnPUCCH; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH { + long reportSlotConfig; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportSlotOffsetList; + ASN_RRC_P0_PUSCH_AlphaSetId_t p0alpha; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semiPersistentOnPUSCH; + struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic { + struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportSlotOffsetList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportConfigType; + struct ASN_RRC_CSI_ReportConfig__reportQuantity { + ASN_RRC_CSI_ReportConfig__reportQuantity_PR present; + union ASN_RRC_CSI_ReportConfig__ASN_RRC_reportQuantity_u { + NULL_t none; + NULL_t cri_RI_PMI_CQI; + NULL_t cri_RI_i1; + struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI { + long *pdsch_BundleSizeForCSI; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cri_RI_i1_CQI; + NULL_t cri_RI_CQI; + NULL_t cri_RSRP; + NULL_t ssb_Index_RSRP; + NULL_t cri_RI_LI_PMI_CQI; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportQuantity; + struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration { + long *cqi_FormatIndicator; /* OPTIONAL */ + long *pmi_FormatIndicator; /* OPTIONAL */ + struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand { + ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR present; + union ASN_RRC_CSI_ReportConfig__ASN_RRC_reportFreqConfiguration__ASN_RRC_csi_ReportingBand_u { + BIT_STRING_t subbands3; + BIT_STRING_t subbands4; + BIT_STRING_t subbands5; + BIT_STRING_t subbands6; + BIT_STRING_t subbands7; + BIT_STRING_t subbands8; + BIT_STRING_t subbands9; + BIT_STRING_t subbands10; + BIT_STRING_t subbands11; + BIT_STRING_t subbands12; + BIT_STRING_t subbands13; + BIT_STRING_t subbands14; + BIT_STRING_t subbands15; + BIT_STRING_t subbands16; + BIT_STRING_t subbands17; + BIT_STRING_t subbands18; + /* + * This type is extensible, + * possible extensions are below. + */ + BIT_STRING_t subbands19_v1530; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ReportingBand; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reportFreqConfiguration; + long timeRestrictionForChannelMeasurements; + long timeRestrictionForInterferenceMeasurements; + struct ASN_RRC_CodebookConfig *codebookConfig; /* OPTIONAL */ + long *dummy; /* OPTIONAL */ + struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting { + ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting_PR present; + union ASN_RRC_CSI_ReportConfig__ASN_RRC_groupBasedBeamReporting_u { + NULL_t enabled; + struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled { + long *nrofReportedRS; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *disabled; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } groupBasedBeamReporting; + long *cqi_Table; /* OPTIONAL */ + long subbandSize; + struct ASN_RRC_CSI_ReportConfig__non_PMI_PortIndication { + A_SEQUENCE_OF(struct ASN_RRC_PortIndexFor8Ranks) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *non_PMI_PortIndication; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_CSI_ReportConfig__ext1 { + struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530 { + long reportSlotConfig_v1530; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semiPersistentOnPUSCH_v1530; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_ReportConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotConfig_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_FormatIndicator_44; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pmi_FormatIndicator_47; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_69; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_76; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofReportedRS_82; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_Table_87; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subbandSize_92; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotConfig_v1530_100; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ReportConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportConfig_1[17]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ReportConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.c b/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.c new file mode 100644 index 0000000..5ffea0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ReportConfigId.h" + +int +ASN_RRC_CSI_ReportConfigId_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 <= 47)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_ReportConfigId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 47 } /* (0..47) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportConfigId = { + "CSI-ReportConfigId", + "CSI-ReportConfigId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportConfigId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_ReportConfigId_constr_1, ASN_RRC_CSI_ReportConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.h b/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.h new file mode 100644 index 0000000..65cce8c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportConfigId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ReportConfigId_H_ +#define _ASN_RRC_CSI_ReportConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-ReportConfigId */ +typedef long ASN_RRC_CSI_ReportConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ReportConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportConfigId; +asn_struct_free_f ASN_RRC_CSI_ReportConfigId_free; +asn_struct_print_f ASN_RRC_CSI_ReportConfigId_print; +asn_constr_check_f ASN_RRC_CSI_ReportConfigId_constraint; +ber_type_decoder_f ASN_RRC_CSI_ReportConfigId_decode_ber; +der_type_encoder_f ASN_RRC_CSI_ReportConfigId_encode_der; +xer_type_decoder_f ASN_RRC_CSI_ReportConfigId_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_ReportConfigId_encode_xer; +per_type_decoder_f ASN_RRC_CSI_ReportConfigId_decode_uper; +per_type_encoder_f ASN_RRC_CSI_ReportConfigId_encode_uper; +per_type_decoder_f ASN_RRC_CSI_ReportConfigId_decode_aper; +per_type_encoder_f ASN_RRC_CSI_ReportConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ReportConfigId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportFramework.c b/src/asn/rrc/ASN_RRC_CSI-ReportFramework.c new file mode 100644 index 0000000..01466e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportFramework.c @@ -0,0 +1,384 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ReportFramework.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForCSI_Report_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 <= 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_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForCSI_Report_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 <= 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_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report_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 int +memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForBeamReport_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 <= 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_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForBeamReport_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 <= 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_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForBeamReport_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 int +memb_ASN_RRC_simultaneousCSI_ReportsPerCC_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 <= 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_type_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForCSI_Report_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForCSI_Report_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForBeamReport_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForBeamReport_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForBeamReport_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsPerCC_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_value2enum_7[] = { + { 0, 2, "n3" }, + { 1, 2, "n7" }, + { 2, 3, "n15" }, + { 3, 3, "n31" }, + { 4, 3, "n63" }, + { 5, 4, "n128" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_enum2value_7[] = { + 5, /* n128(5) */ + 2, /* n15(2) */ + 0, /* n3(0) */ + 3, /* n31(3) */ + 4, /* n63(4) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_specs_7 = { + asn_MAP_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_enum2value_7, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7[] = { + (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_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_7 = { + "maxNumberAperiodicCSI-triggeringStatePerCC", + "maxNumberAperiodicCSI-triggeringStatePerCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7, + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportFramework_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberPeriodicCSI_PerBWP_ForCSI_Report), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForCSI_Report_constr_2, memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForCSI_Report_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicCSI-PerBWP-ForCSI-Report" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberAperiodicCSI_PerBWP_ForCSI_Report), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForCSI_Report_constr_3, memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForCSI_Report_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-PerBWP-ForCSI-Report" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report_constr_4, memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentCSI-PerBWP-ForCSI-Report" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberPeriodicCSI_PerBWP_ForBeamReport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForBeamReport_constr_5, memb_ASN_RRC_maxNumberPeriodicCSI_PerBWP_ForBeamReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicCSI-PerBWP-ForBeamReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberAperiodicCSI_PerBWP_ForBeamReport), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForBeamReport_constr_6, memb_ASN_RRC_maxNumberAperiodicCSI_PerBWP_ForBeamReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-PerBWP-ForBeamReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberAperiodicCSI_triggeringStatePerCC), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-triggeringStatePerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, maxNumberSemiPersistentCSI_PerBWP_ForBeamReport), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForBeamReport_constr_14, memb_ASN_RRC_maxNumberSemiPersistentCSI_PerBWP_ForBeamReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentCSI-PerBWP-ForBeamReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportFramework, simultaneousCSI_ReportsPerCC), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsPerCC_constr_15, memb_ASN_RRC_simultaneousCSI_ReportsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousCSI-ReportsPerCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ReportFramework_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberPeriodicCSI-PerBWP-ForCSI-Report */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberAperiodicCSI-PerBWP-ForCSI-Report */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberSemiPersistentCSI-PerBWP-ForCSI-Report */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxNumberPeriodicCSI-PerBWP-ForBeamReport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxNumberAperiodicCSI-PerBWP-ForBeamReport */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxNumberAperiodicCSI-triggeringStatePerCC */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* maxNumberSemiPersistentCSI-PerBWP-ForBeamReport */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* simultaneousCSI-ReportsPerCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ReportFramework_specs_1 = { + sizeof(struct ASN_RRC_CSI_ReportFramework), + offsetof(struct ASN_RRC_CSI_ReportFramework, _asn_ctx), + asn_MAP_ASN_RRC_CSI_ReportFramework_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportFramework = { + "CSI-ReportFramework", + "CSI-ReportFramework", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ReportFramework_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_ReportFramework_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_ReportFramework_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportFramework.h b/src/asn/rrc/ASN_RRC_CSI-ReportFramework.h new file mode 100644 index 0000000..891dbe8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportFramework.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ReportFramework_H_ +#define _ASN_RRC_CSI_ReportFramework_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC { + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n3 = 0, + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n7 = 1, + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n15 = 2, + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n31 = 3, + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n63 = 4, + ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC_n128 = 5 +} e_ASN_RRC_CSI_ReportFramework__maxNumberAperiodicCSI_triggeringStatePerCC; + +/* ASN_RRC_CSI-ReportFramework */ +typedef struct ASN_RRC_CSI_ReportFramework { + long maxNumberPeriodicCSI_PerBWP_ForCSI_Report; + long maxNumberAperiodicCSI_PerBWP_ForCSI_Report; + long maxNumberSemiPersistentCSI_PerBWP_ForCSI_Report; + long maxNumberPeriodicCSI_PerBWP_ForBeamReport; + long maxNumberAperiodicCSI_PerBWP_ForBeamReport; + long maxNumberAperiodicCSI_triggeringStatePerCC; + long maxNumberSemiPersistentCSI_PerBWP_ForBeamReport; + long simultaneousCSI_ReportsPerCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_ReportFramework_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberAperiodicCSI_triggeringStatePerCC_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportFramework; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ReportFramework_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportFramework_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ReportFramework_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.c b/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.c new file mode 100644 index 0000000..fa3354a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.c @@ -0,0 +1,442 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ReportPeriodicityAndOffset.h" + +static int +memb_ASN_RRC_slots4_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_ASN_RRC_slots5_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 int +memb_ASN_RRC_slots8_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_ASN_RRC_slots10_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 int +memb_ASN_RRC_slots16_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_ASN_RRC_slots20_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 <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots40_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 <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots80_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 <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots160_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 <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots320_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 <= 319)) { + /* Constraint 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_ASN_RRC_slots4_constr_2 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_ASN_RRC_slots5_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots8_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_slots10_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots16_constr_6 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_ASN_RRC_slots20_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots40_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots80_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots160_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots320_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ReportPeriodicityAndOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportPeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots4_constr_2, memb_ASN_RRC_slots4_constraint_1 }, + 0, 0, /* No default value */ + "slots4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots5_constr_3, memb_ASN_RRC_slots5_constraint_1 }, + 0, 0, /* No default value */ + "slots5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots8_constr_4, memb_ASN_RRC_slots8_constraint_1 }, + 0, 0, /* No default value */ + "slots8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots10), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots10_constr_5, memb_ASN_RRC_slots10_constraint_1 }, + 0, 0, /* No default value */ + "slots10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots16_constr_6, memb_ASN_RRC_slots16_constraint_1 }, + 0, 0, /* No default value */ + "slots16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots20_constr_7, memb_ASN_RRC_slots20_constraint_1 }, + 0, 0, /* No default value */ + "slots20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots40), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots40_constr_8, memb_ASN_RRC_slots40_constraint_1 }, + 0, 0, /* No default value */ + "slots40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots80_constr_9, memb_ASN_RRC_slots80_constraint_1 }, + 0, 0, /* No default value */ + "slots80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots160), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots160_constr_10, memb_ASN_RRC_slots160_constraint_1 }, + 0, 0, /* No default value */ + "slots160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, choice.slots320), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots320_constr_11, memb_ASN_RRC_slots320_constraint_1 }, + 0, 0, /* No default value */ + "slots320" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ReportPeriodicityAndOffset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* slots4 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* slots5 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* slots8 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* slots10 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* slots16 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* slots20 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* slots40 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* slots80 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* slots160 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* slots320 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CSI_ReportPeriodicityAndOffset_specs_1 = { + sizeof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset), + offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ReportPeriodicityAndOffset, present), + sizeof(((struct ASN_RRC_CSI_ReportPeriodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_CSI_ReportPeriodicityAndOffset_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset = { + "CSI-ReportPeriodicityAndOffset", + "CSI-ReportPeriodicityAndOffset", + &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_ASN_RRC_CSI_ReportPeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_CSI_ReportPeriodicityAndOffset_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_ReportPeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.h b/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.h new file mode 100644 index 0000000..29cd7cc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ReportPeriodicityAndOffset.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ReportPeriodicityAndOffset_H_ +#define _ASN_RRC_CSI_ReportPeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_ReportPeriodicityAndOffset_PR { + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots4, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots5, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots8, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots10, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots16, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots20, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots40, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots80, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots160, + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR_slots320 +} ASN_RRC_CSI_ReportPeriodicityAndOffset_PR; + +/* ASN_RRC_CSI-ReportPeriodicityAndOffset */ +typedef struct ASN_RRC_CSI_ReportPeriodicityAndOffset { + ASN_RRC_CSI_ReportPeriodicityAndOffset_PR present; + union ASN_RRC_CSI_ReportPeriodicityAndOffset_u { + long slots4; + long slots5; + long slots8; + long slots10; + long slots16; + long slots20; + long slots40; + long slots80; + long slots160; + long slots320; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_ReportPeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CSI_ReportPeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportPeriodicityAndOffset_1[10]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ReportPeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ReportPeriodicityAndOffset_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.c b/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.c new file mode 100644 index 0000000..02e9f06 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.c @@ -0,0 +1,456 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ResourceConfig.h" + +static int +memb_ASN_RRC_nzp_CSI_RS_ResourceSetList_constraint_4(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 <= 16)) { + /* 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 int +memb_ASN_RRC_csi_SSB_ResourceSetList_constraint_4(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)) { + /* 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 int +memb_ASN_RRC_csi_IM_ResourceSetList_constraint_3(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 <= 16)) { + /* 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetList_constr_5 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_per_constraints_t asn_PER_type_ASN_RRC_csi_SSB_ResourceSetList_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetList_constr_5 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_per_constraints_t asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetList_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_IM_ResourceSetList_constr_9 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_per_constraints_t asn_PER_memb_ASN_RRC_csi_IM_ResourceSetList_constr_9 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_per_constraints_t asn_PER_type_ASN_RRC_csi_RS_ResourceSetList_constr_3 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_type_ASN_RRC_resourceType_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_nzp_CSI_RS_ResourceSetList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetList_specs_5 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__nzp_CSI_RS_ResourceSetList), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__nzp_CSI_RS_ResourceSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_5 = { + "nzp-CSI-RS-ResourceSetList", + "nzp-CSI-RS-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_ResourceSetList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_ResourceSetList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_ResourceSetList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_SSB_ResourceSetList_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_SSB_ResourceSetList_specs_7 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__csi_SSB_ResourceSetList), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__csi_SSB_ResourceSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_7 = { + "csi-SSB-ResourceSetList", + "csi-SSB-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7, + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_SSB_ResourceSetList_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_SSB_ResourceSetList_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_SSB_ResourceSetList_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_SSB_4[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, nzp_CSI_RS_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_ResourceSetList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_ResourceSetList_constr_5, memb_ASN_RRC_nzp_CSI_RS_ResourceSetList_constraint_4 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, csi_SSB_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_SSB_ResourceSetList_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_SSB_ResourceSetList_constr_7, memb_ASN_RRC_csi_SSB_ResourceSetList_constraint_4 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetList" + }, +}; +static const int asn_MAP_ASN_RRC_nzp_CSI_RS_SSB_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nzp_CSI_RS_SSB_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-RS-ResourceSetList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-SSB-ResourceSetList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_SSB_specs_4 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, _asn_ctx), + asn_MAP_ASN_RRC_nzp_CSI_RS_SSB_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_nzp_CSI_RS_SSB_oms_4, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_4 = { + "nzp-CSI-RS-SSB", + "nzp-CSI-RS-SSB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_SSB_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_SSB_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_IM_ResourceSetList_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_IM_ResourceSetList_specs_9 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__csi_IM_ResourceSetList), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__csi_IM_ResourceSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_IM_ResourceSetList_9 = { + "csi-IM-ResourceSetList", + "csi-IM-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9, + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9) + /sizeof(asn_DEF_ASN_RRC_csi_IM_ResourceSetList_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_IM_ResourceSetList_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_IM_ResourceSetList_9, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_IM_ResourceSetList_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_RS_ResourceSetList_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList, choice.nzp_CSI_RS_SSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_SSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-SSB" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList, choice.csi_IM_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_IM_ResourceSetList_9, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_IM_ResourceSetList_constr_9, memb_ASN_RRC_csi_IM_ResourceSetList_constraint_3 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_RS_ResourceSetList_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-RS-SSB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-IM-ResourceSetList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_csi_RS_ResourceSetList_specs_3 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList, present), + sizeof(((struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList *)0)->present), + asn_MAP_ASN_RRC_csi_RS_ResourceSetList_tag2el_3, + 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_ASN_RRC_csi_RS_ResourceSetList_3 = { + "csi-RS-ResourceSetList", + "csi-RS-ResourceSetList", + &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_ASN_RRC_csi_RS_ResourceSetList_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_csi_RS_ResourceSetList_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_csi_RS_ResourceSetList_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceType_value2enum_12[] = { + { 0, 9, "aperiodic" }, + { 1, 14, "semiPersistent" }, + { 2, 8, "periodic" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceType_enum2value_12[] = { + 0, /* aperiodic(0) */ + 2, /* periodic(2) */ + 1 /* semiPersistent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceType_specs_12 = { + asn_MAP_ASN_RRC_resourceType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceType_enum2value_12, /* 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_ASN_RRC_resourceType_tags_12[] = { + (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_ASN_RRC_resourceType_12 = { + "resourceType", + "resourceType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceType_tags_12, + sizeof(asn_DEF_ASN_RRC_resourceType_tags_12) + /sizeof(asn_DEF_ASN_RRC_resourceType_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceType_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceType_tags_12) + /sizeof(asn_DEF_ASN_RRC_resourceType_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceType_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ResourceConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig, csi_ResourceConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ResourceConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig, csi_RS_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RS_ResourceSetList_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ResourceSetList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourceConfig, resourceType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ResourceConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-ResourceConfigId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-ResourceSetList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bwp-Id */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* resourceType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ResourceConfig_specs_1 = { + sizeof(struct ASN_RRC_CSI_ResourceConfig), + offsetof(struct ASN_RRC_CSI_ResourceConfig, _asn_ctx), + asn_MAP_ASN_RRC_CSI_ResourceConfig_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourceConfig = { + "CSI-ResourceConfig", + "CSI-ResourceConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_ResourceConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_ResourceConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.h b/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.h new file mode 100644 index 0000000..51800ac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourceConfig.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ResourceConfig_H_ +#define _ASN_RRC_CSI_ResourceConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-ResourceConfigId.h" +#include "ASN_RRC_BWP-Id.h" +#include +#include "ASN_RRC_NZP-CSI-RS-ResourceSetId.h" +#include +#include +#include "ASN_RRC_CSI-SSB-ResourceSetId.h" +#include +#include "ASN_RRC_CSI-IM-ResourceSetId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR { + ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_nzp_CSI_RS_SSB, + ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_csi_IM_ResourceSetList +} ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR; +typedef enum ASN_RRC_CSI_ResourceConfig__resourceType { + ASN_RRC_CSI_ResourceConfig__resourceType_aperiodic = 0, + ASN_RRC_CSI_ResourceConfig__resourceType_semiPersistent = 1, + ASN_RRC_CSI_ResourceConfig__resourceType_periodic = 2 +} e_ASN_RRC_CSI_ResourceConfig__resourceType; + +/* ASN_RRC_CSI-ResourceConfig */ +typedef struct ASN_RRC_CSI_ResourceConfig { + ASN_RRC_CSI_ResourceConfigId_t csi_ResourceConfigId; + struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList { + ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList_PR present; + union ASN_RRC_CSI_ResourceConfig__ASN_RRC_csi_RS_ResourceSetList_u { + struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB { + struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__nzp_CSI_RS_ResourceSetList { + A_SEQUENCE_OF(ASN_RRC_NZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetList; + struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__csi_SSB_ResourceSetList { + A_SEQUENCE_OF(ASN_RRC_CSI_SSB_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_SSB_ResourceSetList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_SSB; + struct ASN_RRC_CSI_ResourceConfig__csi_RS_ResourceSetList__csi_IM_ResourceSetList { + A_SEQUENCE_OF(ASN_RRC_CSI_IM_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceSetList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_RS_ResourceSetList; + ASN_RRC_BWP_Id_t bwp_Id; + long resourceType; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_ResourceConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceType_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourceConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ResourceConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ResourceConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ResourceConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.c b/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.c new file mode 100644 index 0000000..78470eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ResourceConfigId.h" + +int +ASN_RRC_CSI_ResourceConfigId_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 <= 111)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_ResourceConfigId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 111 } /* (0..111) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourceConfigId = { + "CSI-ResourceConfigId", + "CSI-ResourceConfigId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_ResourceConfigId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_ResourceConfigId_constr_1, ASN_RRC_CSI_ResourceConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.h b/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.h new file mode 100644 index 0000000..c321161 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourceConfigId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ResourceConfigId_H_ +#define _ASN_RRC_CSI_ResourceConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-ResourceConfigId */ +typedef long ASN_RRC_CSI_ResourceConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ResourceConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourceConfigId; +asn_struct_free_f ASN_RRC_CSI_ResourceConfigId_free; +asn_struct_print_f ASN_RRC_CSI_ResourceConfigId_print; +asn_constr_check_f ASN_RRC_CSI_ResourceConfigId_constraint; +ber_type_decoder_f ASN_RRC_CSI_ResourceConfigId_decode_ber; +der_type_encoder_f ASN_RRC_CSI_ResourceConfigId_encode_der; +xer_type_decoder_f ASN_RRC_CSI_ResourceConfigId_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_ResourceConfigId_encode_xer; +per_type_decoder_f ASN_RRC_CSI_ResourceConfigId_decode_uper; +per_type_encoder_f ASN_RRC_CSI_ResourceConfigId_encode_uper; +per_type_decoder_f ASN_RRC_CSI_ResourceConfigId_decode_aper; +per_type_encoder_f ASN_RRC_CSI_ResourceConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ResourceConfigId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.c b/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.c new file mode 100644 index 0000000..025b6ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.c @@ -0,0 +1,562 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-ResourcePeriodicityAndOffset.h" + +static int +memb_ASN_RRC_slots4_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_ASN_RRC_slots5_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 int +memb_ASN_RRC_slots8_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_ASN_RRC_slots10_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 int +memb_ASN_RRC_slots16_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_ASN_RRC_slots20_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 <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots32_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots40_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 <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots64_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 int +memb_ASN_RRC_slots80_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 <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots160_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 <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots320_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 <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slots640_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 <= 639)) { + /* Constraint 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_ASN_RRC_slots4_constr_2 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_ASN_RRC_slots5_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots8_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_slots10_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots16_constr_6 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_ASN_RRC_slots20_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots32_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots40_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots64_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots80_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots160_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots320_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slots640_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ResourcePeriodicityAndOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ResourcePeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots4_constr_2, memb_ASN_RRC_slots4_constraint_1 }, + 0, 0, /* No default value */ + "slots4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots5_constr_3, memb_ASN_RRC_slots5_constraint_1 }, + 0, 0, /* No default value */ + "slots5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots8_constr_4, memb_ASN_RRC_slots8_constraint_1 }, + 0, 0, /* No default value */ + "slots8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots10), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots10_constr_5, memb_ASN_RRC_slots10_constraint_1 }, + 0, 0, /* No default value */ + "slots10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots16_constr_6, memb_ASN_RRC_slots16_constraint_1 }, + 0, 0, /* No default value */ + "slots16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots20_constr_7, memb_ASN_RRC_slots20_constraint_1 }, + 0, 0, /* No default value */ + "slots20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots32), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots32_constr_8, memb_ASN_RRC_slots32_constraint_1 }, + 0, 0, /* No default value */ + "slots32" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots40), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots40_constr_9, memb_ASN_RRC_slots40_constraint_1 }, + 0, 0, /* No default value */ + "slots40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots64), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots64_constr_10, memb_ASN_RRC_slots64_constraint_1 }, + 0, 0, /* No default value */ + "slots64" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots80), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots80_constr_11, memb_ASN_RRC_slots80_constraint_1 }, + 0, 0, /* No default value */ + "slots80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots160), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots160_constr_12, memb_ASN_RRC_slots160_constraint_1 }, + 0, 0, /* No default value */ + "slots160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots320_constr_13, memb_ASN_RRC_slots320_constraint_1 }, + 0, 0, /* No default value */ + "slots320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, choice.slots640), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slots640_constr_14, memb_ASN_RRC_slots640_constraint_1 }, + 0, 0, /* No default value */ + "slots640" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ResourcePeriodicityAndOffset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* slots4 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* slots5 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* slots8 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* slots10 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* slots16 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* slots20 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* slots32 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* slots40 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* slots64 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* slots80 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* slots160 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* slots320 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* slots640 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CSI_ResourcePeriodicityAndOffset_specs_1 = { + sizeof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset), + offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_CSI_ResourcePeriodicityAndOffset, present), + sizeof(((struct ASN_RRC_CSI_ResourcePeriodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_CSI_ResourcePeriodicityAndOffset_tag2el_1, + 13, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourcePeriodicityAndOffset = { + "CSI-ResourcePeriodicityAndOffset", + "CSI-ResourcePeriodicityAndOffset", + &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_ASN_RRC_CSI_ResourcePeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_CSI_ResourcePeriodicityAndOffset_1, + 13, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_ResourcePeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.h b/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.h new file mode 100644 index 0000000..6e1e0ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-ResourcePeriodicityAndOffset.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_ResourcePeriodicityAndOffset_H_ +#define _ASN_RRC_CSI_ResourcePeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR { + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots4, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots5, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots8, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots10, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots16, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots20, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots32, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots40, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots64, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots80, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots160, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots320, + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR_slots640 +} ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR; + +/* ASN_RRC_CSI-ResourcePeriodicityAndOffset */ +typedef struct ASN_RRC_CSI_ResourcePeriodicityAndOffset { + ASN_RRC_CSI_ResourcePeriodicityAndOffset_PR present; + union ASN_RRC_CSI_ResourcePeriodicityAndOffset_u { + long slots4; + long slots5; + long slots8; + long slots10; + long slots16; + long slots20; + long slots32; + long slots40; + long slots64; + long slots80; + long slots160; + long slots320; + long slots640; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_ResourcePeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ResourcePeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CSI_ResourcePeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ResourcePeriodicityAndOffset_1[13]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_ResourcePeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_ResourcePeriodicityAndOffset_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.c b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.c new file mode 100644 index 0000000..38cad86 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-SSB-ResourceSet.h" + +static int +memb_ASN_RRC_csi_SSB_ResourceList_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 <= 64)) { + /* 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_ASN_RRC_csi_SSB_ResourceList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_csi_SSB_ResourceList_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_SSB_ResourceList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_csi_SSB_ResourceList_specs_3 = { + sizeof(struct ASN_RRC_CSI_SSB_ResourceSet__csi_SSB_ResourceList), + offsetof(struct ASN_RRC_CSI_SSB_ResourceSet__csi_SSB_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_SSB_ResourceList_3 = { + "csi-SSB-ResourceList", + "csi-SSB-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3, + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3) + /sizeof(asn_DEF_ASN_RRC_csi_SSB_ResourceList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_SSB_ResourceList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_csi_SSB_ResourceList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_csi_SSB_ResourceList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SSB_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_SSB_ResourceSet, csi_SSB_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_SSB_ResourceSet, csi_SSB_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_csi_SSB_ResourceList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_csi_SSB_ResourceList_constr_3, memb_ASN_RRC_csi_SSB_ResourceList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_SSB_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-SSB-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-SSB-ResourceList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_SSB_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_CSI_SSB_ResourceSet), + offsetof(struct ASN_RRC_CSI_SSB_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_CSI_SSB_ResourceSet_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_ASN_RRC_CSI_SSB_ResourceSet = { + "CSI-SSB-ResourceSet", + "CSI-SSB-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_SSB_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_SSB_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.h b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.h new file mode 100644 index 0000000..5ccab2f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSet.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_SSB_ResourceSet_H_ +#define _ASN_RRC_CSI_SSB_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-SSB-ResourceSetId.h" +#include "ASN_RRC_SSB-Index.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-SSB-ResourceSet */ +typedef struct ASN_RRC_CSI_SSB_ResourceSet { + ASN_RRC_CSI_SSB_ResourceSetId_t csi_SSB_ResourceSetId; + struct ASN_RRC_CSI_SSB_ResourceSet__csi_SSB_ResourceList { + A_SEQUENCE_OF(ASN_RRC_SSB_Index_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csi_SSB_ResourceList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_SSB_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SSB_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_SSB_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SSB_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_SSB_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.c b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.c new file mode 100644 index 0000000..9ef1e62 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-SSB-ResourceSetId.h" + +int +ASN_RRC_CSI_SSB_ResourceSetId_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_CSI_SSB_ResourceSetId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId = { + "CSI-SSB-ResourceSetId", + "CSI-SSB-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_SSB_ResourceSetId_constr_1, ASN_RRC_CSI_SSB_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.h b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.h new file mode 100644 index 0000000..674378b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SSB-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_SSB_ResourceSetId_H_ +#define _ASN_RRC_CSI_SSB_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-SSB-ResourceSetId */ +typedef long ASN_RRC_CSI_SSB_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_SSB_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SSB_ResourceSetId; +asn_struct_free_f ASN_RRC_CSI_SSB_ResourceSetId_free; +asn_struct_print_f ASN_RRC_CSI_SSB_ResourceSetId_print; +asn_constr_check_f ASN_RRC_CSI_SSB_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_CSI_SSB_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_CSI_SSB_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_CSI_SSB_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_CSI_SSB_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_CSI_SSB_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_CSI_SSB_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_CSI_SSB_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_CSI_SSB_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_SSB_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.c b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.c new file mode 100644 index 0000000..7ea96ba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState, associatedReportConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedReportConfigInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedReportConfigInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1 = { + sizeof(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState), + offsetof(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState, _asn_ctx), + asn_MAP_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_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_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState = { + "CSI-SemiPersistentOnPUSCH-TriggerState", + "CSI-SemiPersistentOnPUSCH-TriggerState", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h new file mode 100644 index 0000000..9c5b552 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_H_ +#define _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-ReportConfigId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState */ +typedef struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState { + ASN_RRC_CSI_ReportConfigId_t associatedReportConfigInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.c b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.c new file mode 100644 index 0000000..1454e1e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h" + +#include "ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerState.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1 = { + sizeof(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList), + offsetof(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList = { + "CSI-SemiPersistentOnPUSCH-TriggerStateList", + "CSI-SemiPersistentOnPUSCH-TriggerStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1, + sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h new file mode 100644 index 0000000..3a58ab6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ +#define _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState; + +/* ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList */ +typedef struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList { + A_SEQUENCE_OF(struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.c b/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.c new file mode 100644 index 0000000..a6f57c4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CandidateServingFreqListEUTRA.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_CandidateServingFreqListEUTRA_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_ASN_RRC_CandidateServingFreqListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CandidateServingFreqListEUTRA_specs_1 = { + sizeof(struct ASN_RRC_CandidateServingFreqListEUTRA), + offsetof(struct ASN_RRC_CandidateServingFreqListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA = { + "CandidateServingFreqListEUTRA", + "CandidateServingFreqListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CandidateServingFreqListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CandidateServingFreqListEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CandidateServingFreqListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.h b/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.h new file mode 100644 index 0000000..faebfca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CandidateServingFreqListEUTRA.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CandidateServingFreqListEUTRA_H_ +#define _ASN_RRC_CandidateServingFreqListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CandidateServingFreqListEUTRA */ +typedef struct ASN_RRC_CandidateServingFreqListEUTRA { + A_SEQUENCE_OF(ASN_RRC_ARFCN_ValueEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CandidateServingFreqListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CandidateServingFreqListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CandidateServingFreqListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CandidateServingFreqListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CandidateServingFreqListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CandidateServingFreqListEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.c b/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.c new file mode 100644 index 0000000..0a9076d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CandidateServingFreqListNR.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_CandidateServingFreqListNR_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_ASN_RRC_CandidateServingFreqListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CandidateServingFreqListNR_specs_1 = { + sizeof(struct ASN_RRC_CandidateServingFreqListNR), + offsetof(struct ASN_RRC_CandidateServingFreqListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CandidateServingFreqListNR = { + "CandidateServingFreqListNR", + "CandidateServingFreqListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1, + sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CandidateServingFreqListNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CandidateServingFreqListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CandidateServingFreqListNR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CandidateServingFreqListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.h b/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.h new file mode 100644 index 0000000..af829a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CandidateServingFreqListNR.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CandidateServingFreqListNR_H_ +#define _ASN_RRC_CandidateServingFreqListNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CandidateServingFreqListNR */ +typedef struct ASN_RRC_CandidateServingFreqListNR { + A_SEQUENCE_OF(ASN_RRC_ARFCN_ValueNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CandidateServingFreqListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CandidateServingFreqListNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CandidateServingFreqListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CandidateServingFreqListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CandidateServingFreqListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CandidateServingFreqListNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.c b/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.c new file mode 100644 index 0000000..dbc0488 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.c @@ -0,0 +1,328 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CarrierFreqEUTRA.h" + +#include "ASN_RRC_EUTRA-MultiBandInfoList.h" +#include "ASN_RRC_EUTRA-FreqNeighCellList.h" +#include "ASN_RRC_EUTRA-FreqBlackCellList.h" +static int +memb_ASN_RRC_q_RxLevMin_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 >= -70 && value <= -22)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_q_QualMin_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 >= -34 && 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_ASN_RRC_p_MaxEUTRA_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 >= -30 && value <= 33)) { + /* Constraint 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_ASN_RRC_q_RxLevMin_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -70, -22 } /* (-70..-22) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_QualMin_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -34, -3 } /* (-34..-3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_p_MaxEUTRA_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 33 } /* (-30..33) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_threshX_Q_15[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA__threshX_Q, threshX_HighQ), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA__threshX_Q, threshX_LowQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowQ" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_threshX_Q_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_threshX_Q_tag2el_15[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* threshX-HighQ */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* threshX-LowQ */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_threshX_Q_specs_15 = { + sizeof(struct ASN_RRC_CarrierFreqEUTRA__threshX_Q), + offsetof(struct ASN_RRC_CarrierFreqEUTRA__threshX_Q, _asn_ctx), + asn_MAP_ASN_RRC_threshX_Q_tag2el_15, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_threshX_Q_15 = { + "threshX-Q", + "threshX-Q", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_threshX_Q_tags_15, + sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_15) + /sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_threshX_Q_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_15) + /sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_threshX_Q_15, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_threshX_Q_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CarrierFreqEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CarrierFreqEUTRA, eutra_multiBandInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-multiBandInfoList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CarrierFreqEUTRA, eutra_FreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-FreqNeighCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CarrierFreqEUTRA, eutra_BlackCellList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-BlackCellList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, allowedMeasBandwidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedMeasBandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, presenceAntennaPort1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "presenceAntennaPort1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CarrierFreqEUTRA, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CarrierFreqEUTRA, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, threshX_High), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-High" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, threshX_Low), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Low" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMin_constr_12, memb_ASN_RRC_q_RxLevMin_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_QualMin_constr_13, memb_ASN_RRC_q_QualMin_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierFreqEUTRA, p_MaxEUTRA), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p_MaxEUTRA_constr_14, memb_ASN_RRC_p_MaxEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "p-MaxEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CarrierFreqEUTRA, threshX_Q), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_threshX_Q_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Q" + }, +}; +static const int asn_MAP_ASN_RRC_CarrierFreqEUTRA_oms_1[] = { 1, 2, 3, 6, 7, 13 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CarrierFreqEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eutra-multiBandInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eutra-FreqNeighCellList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eutra-BlackCellList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* allowedMeasBandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* presenceAntennaPort1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* cellReselectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* cellReselectionSubPriority */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* threshX-High */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* threshX-Low */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* q-RxLevMin */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* q-QualMin */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* p-MaxEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* threshX-Q */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CarrierFreqEUTRA_specs_1 = { + sizeof(struct ASN_RRC_CarrierFreqEUTRA), + offsetof(struct ASN_RRC_CarrierFreqEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_CarrierFreqEUTRA_tag2el_1, + 14, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CarrierFreqEUTRA_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierFreqEUTRA = { + "CarrierFreqEUTRA", + "CarrierFreqEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierFreqEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CarrierFreqEUTRA_1, + 14, /* Elements count */ + &asn_SPC_ASN_RRC_CarrierFreqEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.h b/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.h new file mode 100644 index 0000000..db23696 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierFreqEUTRA.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CarrierFreqEUTRA_H_ +#define _ASN_RRC_CarrierFreqEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include "ASN_RRC_EUTRA-AllowedMeasBandwidth.h" +#include "ASN_RRC_EUTRA-PresenceAntennaPort1.h" +#include "ASN_RRC_CellReselectionPriority.h" +#include "ASN_RRC_CellReselectionSubPriority.h" +#include "ASN_RRC_ReselectionThreshold.h" +#include +#include "ASN_RRC_ReselectionThresholdQ.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_MultiBandInfoList; +struct ASN_RRC_EUTRA_FreqNeighCellList; +struct ASN_RRC_EUTRA_FreqBlackCellList; + +/* ASN_RRC_CarrierFreqEUTRA */ +typedef struct ASN_RRC_CarrierFreqEUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t carrierFreq; + struct ASN_RRC_EUTRA_MultiBandInfoList *eutra_multiBandInfoList; /* OPTIONAL */ + struct ASN_RRC_EUTRA_FreqNeighCellList *eutra_FreqNeighCellList; /* OPTIONAL */ + struct ASN_RRC_EUTRA_FreqBlackCellList *eutra_BlackCellList; /* OPTIONAL */ + ASN_RRC_EUTRA_AllowedMeasBandwidth_t allowedMeasBandwidth; + ASN_RRC_EUTRA_PresenceAntennaPort1_t presenceAntennaPort1; + ASN_RRC_CellReselectionPriority_t *cellReselectionPriority; /* OPTIONAL */ + ASN_RRC_CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + ASN_RRC_ReselectionThreshold_t threshX_High; + ASN_RRC_ReselectionThreshold_t threshX_Low; + long q_RxLevMin; + long q_QualMin; + long p_MaxEUTRA; + struct ASN_RRC_CarrierFreqEUTRA__threshX_Q { + ASN_RRC_ReselectionThresholdQ_t threshX_HighQ; + ASN_RRC_ReselectionThresholdQ_t threshX_LowQ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *threshX_Q; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CarrierFreqEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierFreqEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CarrierFreqEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CarrierFreqEUTRA_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CarrierFreqEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.c b/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.c new file mode 100644 index 0000000..47f2843 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CarrierFreqListEUTRA.h" + +#include "ASN_RRC_CarrierFreqEUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_CarrierFreqListEUTRA_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_ASN_RRC_CarrierFreqListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CarrierFreqEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CarrierFreqListEUTRA_specs_1 = { + sizeof(struct ASN_RRC_CarrierFreqListEUTRA), + offsetof(struct ASN_RRC_CarrierFreqListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierFreqListEUTRA = { + "CarrierFreqListEUTRA", + "CarrierFreqListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierFreqListEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CarrierFreqListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CarrierFreqListEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CarrierFreqListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.h b/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.h new file mode 100644 index 0000000..967f59a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierFreqListEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CarrierFreqListEUTRA_H_ +#define _ASN_RRC_CarrierFreqListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CarrierFreqEUTRA; + +/* ASN_RRC_CarrierFreqListEUTRA */ +typedef struct ASN_RRC_CarrierFreqListEUTRA { + A_SEQUENCE_OF(struct ASN_RRC_CarrierFreqEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CarrierFreqListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierFreqListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CarrierFreqListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CarrierFreqListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CarrierFreqListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CarrierFreqListEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CarrierInfoNR.c b/src/asn/rrc/ASN_RRC_CarrierInfoNR.c new file mode 100644 index 0000000..3ef6cfd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierInfoNR.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CarrierInfoNR.h" + +#include "ASN_RRC_SSB-MTC.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_CarrierInfoNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierInfoNR, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CarrierInfoNR, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CarrierInfoNR, smtc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_ASN_RRC_CarrierInfoNR_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CarrierInfoNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CarrierInfoNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ssbSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* smtc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CarrierInfoNR_specs_1 = { + sizeof(struct ASN_RRC_CarrierInfoNR), + offsetof(struct ASN_RRC_CarrierInfoNR, _asn_ctx), + asn_MAP_ASN_RRC_CarrierInfoNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CarrierInfoNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierInfoNR = { + "CarrierInfoNR", + "CarrierInfoNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CarrierInfoNR_tags_1, + sizeof(asn_DEF_ASN_RRC_CarrierInfoNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierInfoNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CarrierInfoNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CarrierInfoNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_CarrierInfoNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CarrierInfoNR_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CarrierInfoNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CarrierInfoNR.h b/src/asn/rrc/ASN_RRC_CarrierInfoNR.h new file mode 100644 index 0000000..ff47392 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CarrierInfoNR.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CarrierInfoNR_H_ +#define _ASN_RRC_CarrierInfoNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SSB_MTC; + +/* ASN_RRC_CarrierInfoNR */ +typedef struct ASN_RRC_CarrierInfoNR { + ASN_RRC_ARFCN_ValueNR_t carrierFreq; + ASN_RRC_SubcarrierSpacing_t ssbSubcarrierSpacing; + struct ASN_RRC_SSB_MTC *smtc; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CarrierInfoNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CarrierInfoNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CarrierInfoNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CarrierInfoNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CarrierInfoNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.c b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.c new file mode 100644 index 0000000..401ced5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, plmn_IdentityList_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList-eutra-5gc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, trackingAreaCode_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode-eutra-5gc" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, ranac_5gc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranac-5gc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, cellIdentity_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellIdentity_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity-eutra-5gc" + }, +}; +static const int asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityList-eutra-5gc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trackingAreaCode-eutra-5gc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranac-5gc */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* cellIdentity-eutra-5gc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_specs_1 = { + sizeof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC), + offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC, _asn_ctx), + asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC = { + "CellAccessRelatedInfo-EUTRA-5GC", + "CellAccessRelatedInfo-EUTRA-5GC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1, + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h new file mode 100644 index 0000000..7f00048 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_H_ +#define _ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h" +#include "ASN_RRC_TrackingAreaCode.h" +#include "ASN_RRC_RAN-AreaCode.h" +#include "ASN_RRC_CellIdentity-EUTRA-5GC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellAccessRelatedInfo-EUTRA-5GC */ +typedef struct ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC { + ASN_RRC_PLMN_IdentityList_EUTRA_5GC_t plmn_IdentityList_eutra_5gc; + ASN_RRC_TrackingAreaCode_t trackingAreaCode_eutra_5gc; + ASN_RRC_RAN_AreaCode_t *ranac_5gc; /* OPTIONAL */ + ASN_RRC_CellIdentity_EUTRA_5GC_t cellIdentity_eutra_5gc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellAccessRelatedInfo_EUTRA_5GC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.c b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.c new file mode 100644 index 0000000..7372c27 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h" + +static int +memb_ASN_RRC_trackingAreaCode_eutra_epc_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_cellIdentity_eutra_epc_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 asn_per_constraints_t asn_PER_memb_ASN_RRC_trackingAreaCode_eutra_epc_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_cellIdentity_eutra_epc_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 28, 28 } /* (SIZE(28..28)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, plmn_IdentityList_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList-eutra-epc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, trackingAreaCode_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_trackingAreaCode_eutra_epc_constr_3, memb_ASN_RRC_trackingAreaCode_eutra_epc_constraint_1 }, + 0, 0, /* No default value */ + "trackingAreaCode-eutra-epc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, cellIdentity_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_cellIdentity_eutra_epc_constr_4, memb_ASN_RRC_cellIdentity_eutra_epc_constraint_1 }, + 0, 0, /* No default value */ + "cellIdentity-eutra-epc" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityList-eutra-epc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trackingAreaCode-eutra-epc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellIdentity-eutra-epc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_specs_1 = { + sizeof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC), + offsetof(struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC, _asn_ctx), + asn_MAP_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_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_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC = { + "CellAccessRelatedInfo-EUTRA-EPC", + "CellAccessRelatedInfo-EUTRA-EPC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1, + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h new file mode 100644 index 0000000..46dc93d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_H_ +#define _ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellAccessRelatedInfo-EUTRA-EPC */ +typedef struct ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC { + ASN_RRC_PLMN_IdentityList_EUTRA_EPC_t plmn_IdentityList_eutra_epc; + BIT_STRING_t trackingAreaCode_eutra_epc; + BIT_STRING_t cellIdentity_eutra_epc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellAccessRelatedInfo_EUTRA_EPC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.c b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.c new file mode 100644 index 0000000..f164e17 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellAccessRelatedInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_cellReservedForOtherUse_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_cellReservedForOtherUse_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_cellReservedForOtherUse_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cellReservedForOtherUse_specs_3 = { + asn_MAP_ASN_RRC_cellReservedForOtherUse_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cellReservedForOtherUse_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellReservedForOtherUse_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_ASN_RRC_cellReservedForOtherUse_3 = { + "cellReservedForOtherUse", + "cellReservedForOtherUse", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3, + sizeof(asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3) + /sizeof(asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3) + /sizeof(asn_DEF_ASN_RRC_cellReservedForOtherUse_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cellReservedForOtherUse_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cellReservedForOtherUse_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellAccessRelatedInfo, plmn_IdentityList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_IdentityInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CellAccessRelatedInfo, cellReservedForOtherUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cellReservedForOtherUse_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReservedForOtherUse" + }, +}; +static const int asn_MAP_ASN_RRC_CellAccessRelatedInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellAccessRelatedInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellReservedForOtherUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_specs_1 = { + sizeof(struct ASN_RRC_CellAccessRelatedInfo), + offsetof(struct ASN_RRC_CellAccessRelatedInfo, _asn_ctx), + asn_MAP_ASN_RRC_CellAccessRelatedInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CellAccessRelatedInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellAccessRelatedInfo = { + "CellAccessRelatedInfo", + "CellAccessRelatedInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellAccessRelatedInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellAccessRelatedInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CellAccessRelatedInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.h b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.h new file mode 100644 index 0000000..a67ecd5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellAccessRelatedInfo.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellAccessRelatedInfo_H_ +#define _ASN_RRC_CellAccessRelatedInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PLMN-IdentityInfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellAccessRelatedInfo__cellReservedForOtherUse { + ASN_RRC_CellAccessRelatedInfo__cellReservedForOtherUse_true = 0 +} e_ASN_RRC_CellAccessRelatedInfo__cellReservedForOtherUse; + +/* ASN_RRC_CellAccessRelatedInfo */ +typedef struct ASN_RRC_CellAccessRelatedInfo { + ASN_RRC_PLMN_IdentityInfoList_t plmn_IdentityList; + long *cellReservedForOtherUse; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellAccessRelatedInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellReservedForOtherUse_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellAccessRelatedInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellAccessRelatedInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellAccessRelatedInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellAccessRelatedInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellGroupConfig.c b/src/asn/rrc/ASN_RRC_CellGroupConfig.c new file mode 100644 index 0000000..3399857 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellGroupConfig.c @@ -0,0 +1,518 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellGroupConfig.h" + +#include "ASN_RRC_MAC-CellGroupConfig.h" +#include "ASN_RRC_PhysicalCellGroupConfig.h" +#include "ASN_RRC_SpCellConfig.h" +#include "ASN_RRC_RLC-BearerConfig.h" +#include "ASN_RRC_SCellConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_rlc_BearerToAddModList_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 int +memb_ASN_RRC_rlc_BearerToReleaseList_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 int +memb_ASN_RRC_sCellToAddModList_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 <= 31)) { + /* 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 int +memb_ASN_RRC_sCellToReleaseList_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 <= 31)) { + /* 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_ASN_RRC_rlc_BearerToAddModList_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_type_ASN_RRC_rlc_BearerToReleaseList_constr_5 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_type_ASN_RRC_sCellToAddModList_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCellToReleaseList_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportUplinkTxDirectCurrent_v1530_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_rlc_BearerToAddModList_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_ASN_RRC_rlc_BearerToReleaseList_constr_5 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_ASN_RRC_sCellToAddModList_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sCellToReleaseList_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_rlc_BearerToAddModList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RLC_BearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rlc_BearerToAddModList_specs_3 = { + sizeof(struct ASN_RRC_CellGroupConfig__rlc_BearerToAddModList), + offsetof(struct ASN_RRC_CellGroupConfig__rlc_BearerToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rlc_BearerToAddModList_3 = { + "rlc-BearerToAddModList", + "rlc-BearerToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3, + sizeof(asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3) + /sizeof(asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3) + /sizeof(asn_DEF_ASN_RRC_rlc_BearerToAddModList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rlc_BearerToAddModList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rlc_BearerToAddModList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rlc_BearerToAddModList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rlc_BearerToReleaseList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rlc_BearerToReleaseList_specs_5 = { + sizeof(struct ASN_RRC_CellGroupConfig__rlc_BearerToReleaseList), + offsetof(struct ASN_RRC_CellGroupConfig__rlc_BearerToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rlc_BearerToReleaseList_5 = { + "rlc-BearerToReleaseList", + "rlc-BearerToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5, + sizeof(asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5) + /sizeof(asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5) + /sizeof(asn_DEF_ASN_RRC_rlc_BearerToReleaseList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rlc_BearerToReleaseList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rlc_BearerToReleaseList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rlc_BearerToReleaseList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCellToAddModList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCellToAddModList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCellToAddModList_specs_10 = { + sizeof(struct ASN_RRC_CellGroupConfig__sCellToAddModList), + offsetof(struct ASN_RRC_CellGroupConfig__sCellToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCellToAddModList_10 = { + "sCellToAddModList", + "sCellToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCellToAddModList_tags_10, + sizeof(asn_DEF_ASN_RRC_sCellToAddModList_tags_10) + /sizeof(asn_DEF_ASN_RRC_sCellToAddModList_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCellToAddModList_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCellToAddModList_tags_10) + /sizeof(asn_DEF_ASN_RRC_sCellToAddModList_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCellToAddModList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCellToAddModList_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCellToAddModList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCellToReleaseList_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCellToReleaseList_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCellToReleaseList_specs_12 = { + sizeof(struct ASN_RRC_CellGroupConfig__sCellToReleaseList), + offsetof(struct ASN_RRC_CellGroupConfig__sCellToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCellToReleaseList_12 = { + "sCellToReleaseList", + "sCellToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCellToReleaseList_tags_12, + sizeof(asn_DEF_ASN_RRC_sCellToReleaseList_tags_12) + /sizeof(asn_DEF_ASN_RRC_sCellToReleaseList_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCellToReleaseList_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCellToReleaseList_tags_12) + /sizeof(asn_DEF_ASN_RRC_sCellToReleaseList_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCellToReleaseList_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCellToReleaseList_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCellToReleaseList_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportUplinkTxDirectCurrent_v1530_value2enum_16[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportUplinkTxDirectCurrent_v1530_enum2value_16[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportUplinkTxDirectCurrent_v1530_specs_16 = { + asn_MAP_ASN_RRC_reportUplinkTxDirectCurrent_v1530_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportUplinkTxDirectCurrent_v1530_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16[] = { + (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_ASN_RRC_reportUplinkTxDirectCurrent_v1530_16 = { + "reportUplinkTxDirectCurrent-v1530", + "reportUplinkTxDirectCurrent-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16, + sizeof(asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16) + /sizeof(asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16) + /sizeof(asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportUplinkTxDirectCurrent_v1530_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportUplinkTxDirectCurrent_v1530_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_15[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CellGroupConfig__ext1, reportUplinkTxDirectCurrent_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportUplinkTxDirectCurrent-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_15[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_15[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportUplinkTxDirectCurrent-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_15 = { + sizeof(struct ASN_RRC_CellGroupConfig__ext1), + offsetof(struct ASN_RRC_CellGroupConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_15, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_15, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_15 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_15, + sizeof(asn_DEF_ASN_RRC_ext1_tags_15) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_15) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_15, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_CellGroupConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellGroupConfig, cellGroupId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroupId" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_CellGroupConfig, rlc_BearerToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rlc_BearerToAddModList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_rlc_BearerToAddModList_constr_3, memb_ASN_RRC_rlc_BearerToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rlc-BearerToAddModList" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_CellGroupConfig, rlc_BearerToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_rlc_BearerToReleaseList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_rlc_BearerToReleaseList_constr_5, memb_ASN_RRC_rlc_BearerToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rlc-BearerToReleaseList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_CellGroupConfig, mac_CellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MAC_CellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-CellGroupConfig" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_CellGroupConfig, physicalCellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysicalCellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physicalCellGroupConfig" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_CellGroupConfig, spCellConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SpCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CellGroupConfig, sCellToAddModList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_sCellToAddModList_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCellToAddModList_constr_10, memb_ASN_RRC_sCellToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sCellToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CellGroupConfig, sCellToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_sCellToReleaseList_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCellToReleaseList_constr_12, memb_ASN_RRC_sCellToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sCellToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_CellGroupConfig_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellGroupConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGroupId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rlc-BearerToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-BearerToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mac-CellGroupConfig */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* physicalCellGroupConfig */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* spCellConfig */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sCellToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sCellToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* ext1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellGroupConfig_specs_1 = { + sizeof(struct ASN_RRC_CellGroupConfig), + offsetof(struct ASN_RRC_CellGroupConfig, _asn_ctx), + asn_MAP_ASN_RRC_CellGroupConfig_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CellGroupConfig_oms_1, /* Optional members */ + 7, 1, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellGroupConfig = { + "CellGroupConfig", + "CellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellGroupConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellGroupConfig_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_CellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellGroupConfig.h b/src/asn/rrc/ASN_RRC_CellGroupConfig.h new file mode 100644 index 0000000..acbd584 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellGroupConfig.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellGroupConfig_H_ +#define _ASN_RRC_CellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CellGroupId.h" +#include +#include +#include "ASN_RRC_LogicalChannelIdentity.h" +#include "ASN_RRC_SCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530 { + ASN_RRC_CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530_true = 0 +} e_ASN_RRC_CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530; + +/* Forward declarations */ +struct ASN_RRC_MAC_CellGroupConfig; +struct ASN_RRC_PhysicalCellGroupConfig; +struct ASN_RRC_SpCellConfig; +struct ASN_RRC_RLC_BearerConfig; +struct ASN_RRC_SCellConfig; + +/* ASN_RRC_CellGroupConfig */ +typedef struct ASN_RRC_CellGroupConfig { + ASN_RRC_CellGroupId_t cellGroupId; + struct ASN_RRC_CellGroupConfig__rlc_BearerToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_RLC_BearerConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rlc_BearerToAddModList; + struct ASN_RRC_CellGroupConfig__rlc_BearerToReleaseList { + A_SEQUENCE_OF(ASN_RRC_LogicalChannelIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rlc_BearerToReleaseList; + struct ASN_RRC_MAC_CellGroupConfig *mac_CellGroupConfig; /* OPTIONAL */ + struct ASN_RRC_PhysicalCellGroupConfig *physicalCellGroupConfig; /* OPTIONAL */ + struct ASN_RRC_SpCellConfig *spCellConfig; /* OPTIONAL */ + struct ASN_RRC_CellGroupConfig__sCellToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SCellConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCellToAddModList; + struct ASN_RRC_CellGroupConfig__sCellToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SCellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCellToReleaseList; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_CellGroupConfig__ext1 { + long *reportUplinkTxDirectCurrent_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellGroupConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportUplinkTxDirectCurrent_v1530_16; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellGroupConfig; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellGroupConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellGroupId.c b/src/asn/rrc/ASN_RRC_CellGroupId.c new file mode 100644 index 0000000..20eb8fb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellGroupId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellGroupId.h" + +int +ASN_RRC_CellGroupId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_CellGroupId_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 ber_tlv_tag_t asn_DEF_ASN_RRC_CellGroupId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellGroupId = { + "CellGroupId", + "CellGroupId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CellGroupId_tags_1, + sizeof(asn_DEF_ASN_RRC_CellGroupId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellGroupId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellGroupId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellGroupId_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellGroupId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellGroupId_constr_1, ASN_RRC_CellGroupId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellGroupId.h b/src/asn/rrc/ASN_RRC_CellGroupId.h new file mode 100644 index 0000000..3a32bf3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellGroupId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellGroupId_H_ +#define _ASN_RRC_CellGroupId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellGroupId */ +typedef long ASN_RRC_CellGroupId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellGroupId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellGroupId; +asn_struct_free_f ASN_RRC_CellGroupId_free; +asn_struct_print_f ASN_RRC_CellGroupId_print; +asn_constr_check_f ASN_RRC_CellGroupId_constraint; +ber_type_decoder_f ASN_RRC_CellGroupId_decode_ber; +der_type_encoder_f ASN_RRC_CellGroupId_encode_der; +xer_type_decoder_f ASN_RRC_CellGroupId_decode_xer; +xer_type_encoder_f ASN_RRC_CellGroupId_encode_xer; +per_type_decoder_f ASN_RRC_CellGroupId_decode_uper; +per_type_encoder_f ASN_RRC_CellGroupId_encode_uper; +per_type_decoder_f ASN_RRC_CellGroupId_decode_aper; +per_type_encoder_f ASN_RRC_CellGroupId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellGroupId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.c b/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.c new file mode 100644 index 0000000..b50e0ac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellIdentity-EUTRA-5GC.h" + +static int +memb_ASN_RRC_cellIdentity_EUTRA_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_ASN_RRC_cellId_index_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 <= 12)) { + /* Constraint 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_ASN_RRC_cellIdentity_EUTRA_constr_2 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_ASN_RRC_cellId_index_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_CellIdentity_EUTRA_5GC_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_ASN_RRC_CellIdentity_EUTRA_5GC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellIdentity_EUTRA_5GC, choice.cellIdentity_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_cellIdentity_EUTRA_constr_2, memb_ASN_RRC_cellIdentity_EUTRA_constraint_1 }, + 0, 0, /* No default value */ + "cellIdentity-EUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellIdentity_EUTRA_5GC, choice.cellId_index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cellId_index_constr_3, memb_ASN_RRC_cellId_index_constraint_1 }, + 0, 0, /* No default value */ + "cellId-index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellIdentity_EUTRA_5GC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdentity-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellId-index */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CellIdentity_EUTRA_5GC_specs_1 = { + sizeof(struct ASN_RRC_CellIdentity_EUTRA_5GC), + offsetof(struct ASN_RRC_CellIdentity_EUTRA_5GC, _asn_ctx), + offsetof(struct ASN_RRC_CellIdentity_EUTRA_5GC, present), + sizeof(((struct ASN_RRC_CellIdentity_EUTRA_5GC *)0)->present), + asn_MAP_ASN_RRC_CellIdentity_EUTRA_5GC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellIdentity_EUTRA_5GC = { + "CellIdentity-EUTRA-5GC", + "CellIdentity-EUTRA-5GC", + &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_ASN_RRC_CellIdentity_EUTRA_5GC_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_CellIdentity_EUTRA_5GC_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CellIdentity_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.h b/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.h new file mode 100644 index 0000000..3a3bcec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellIdentity-EUTRA-5GC.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellIdentity_EUTRA_5GC_H_ +#define _ASN_RRC_CellIdentity_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellIdentity_EUTRA_5GC_PR { + ASN_RRC_CellIdentity_EUTRA_5GC_PR_NOTHING, /* No components present */ + ASN_RRC_CellIdentity_EUTRA_5GC_PR_cellIdentity_EUTRA, + ASN_RRC_CellIdentity_EUTRA_5GC_PR_cellId_index +} ASN_RRC_CellIdentity_EUTRA_5GC_PR; + +/* ASN_RRC_CellIdentity-EUTRA-5GC */ +typedef struct ASN_RRC_CellIdentity_EUTRA_5GC { + ASN_RRC_CellIdentity_EUTRA_5GC_PR present; + union ASN_RRC_CellIdentity_EUTRA_5GC_u { + BIT_STRING_t cellIdentity_EUTRA; + long cellId_index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellIdentity_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellIdentity_EUTRA_5GC; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_CellIdentity_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellIdentity_EUTRA_5GC_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellIdentity_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellIdentity_EUTRA_5GC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellIdentity.c b/src/asn/rrc/ASN_RRC_CellIdentity.c new file mode 100644 index 0000000..dab01ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellIdentity.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellIdentity.h" + +int +ASN_RRC_CellIdentity_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_ASN_RRC_CellIdentity_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_ASN_RRC_CellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellIdentity = { + "CellIdentity", + "CellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_CellIdentity_tags_1, + sizeof(asn_DEF_ASN_RRC_CellIdentity_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellIdentity_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellIdentity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellIdentity_constr_1, ASN_RRC_CellIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellIdentity.h b/src/asn/rrc/ASN_RRC_CellIdentity.h new file mode 100644 index 0000000..d836905 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellIdentity_H_ +#define _ASN_RRC_CellIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellIdentity */ +typedef BIT_STRING_t ASN_RRC_CellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellIdentity; +asn_struct_free_f ASN_RRC_CellIdentity_free; +asn_struct_print_f ASN_RRC_CellIdentity_print; +asn_constr_check_f ASN_RRC_CellIdentity_constraint; +ber_type_decoder_f ASN_RRC_CellIdentity_decode_ber; +der_type_encoder_f ASN_RRC_CellIdentity_encode_der; +xer_type_decoder_f ASN_RRC_CellIdentity_decode_xer; +xer_type_encoder_f ASN_RRC_CellIdentity_encode_xer; +per_type_decoder_f ASN_RRC_CellIdentity_decode_uper; +per_type_encoder_f ASN_RRC_CellIdentity_encode_uper; +per_type_decoder_f ASN_RRC_CellIdentity_decode_aper; +per_type_encoder_f ASN_RRC_CellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellIdentity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellReselectionPriorities.c b/src/asn/rrc/ASN_RRC_CellReselectionPriorities.c new file mode 100644 index 0000000..cb54a72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionPriorities.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellReselectionPriorities.h" + +#include "ASN_RRC_FreqPriorityListEUTRA.h" +#include "ASN_RRC_FreqPriorityListNR.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_t320_constr_4 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_ASN_RRC_t320_value2enum_4[] = { + { 0, 4, "min5" }, + { 1, 5, "min10" }, + { 2, 5, "min20" }, + { 3, 5, "min30" }, + { 4, 5, "min60" }, + { 5, 6, "min120" }, + { 6, 6, "min180" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_t320_enum2value_4[] = { + 1, /* min10(1) */ + 5, /* min120(5) */ + 6, /* min180(6) */ + 2, /* min20(2) */ + 3, /* min30(3) */ + 0, /* min5(0) */ + 4, /* min60(4) */ + 7 /* spare1(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t320_specs_4 = { + asn_MAP_ASN_RRC_t320_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t320_enum2value_4, /* 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_ASN_RRC_t320_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_ASN_RRC_t320_4 = { + "t320", + "t320", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t320_tags_4, + sizeof(asn_DEF_ASN_RRC_t320_tags_4) + /sizeof(asn_DEF_ASN_RRC_t320_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t320_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t320_tags_4) + /sizeof(asn_DEF_ASN_RRC_t320_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t320_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t320_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CellReselectionPriorities_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_CellReselectionPriorities, freqPriorityListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqPriorityListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqPriorityListEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CellReselectionPriorities, freqPriorityListNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqPriorityListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqPriorityListNR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CellReselectionPriorities, t320), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t320_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t320" + }, +}; +static const int asn_MAP_ASN_RRC_CellReselectionPriorities_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellReselectionPriorities_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqPriorityListEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* freqPriorityListNR */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* t320 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellReselectionPriorities_specs_1 = { + sizeof(struct ASN_RRC_CellReselectionPriorities), + offsetof(struct ASN_RRC_CellReselectionPriorities, _asn_ctx), + asn_MAP_ASN_RRC_CellReselectionPriorities_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CellReselectionPriorities_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionPriorities = { + "CellReselectionPriorities", + "CellReselectionPriorities", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1, + sizeof(asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionPriorities_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellReselectionPriorities_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CellReselectionPriorities_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellReselectionPriorities.h b/src/asn/rrc/ASN_RRC_CellReselectionPriorities.h new file mode 100644 index 0000000..ebce2c8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionPriorities.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellReselectionPriorities_H_ +#define _ASN_RRC_CellReselectionPriorities_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellReselectionPriorities__t320 { + ASN_RRC_CellReselectionPriorities__t320_min5 = 0, + ASN_RRC_CellReselectionPriorities__t320_min10 = 1, + ASN_RRC_CellReselectionPriorities__t320_min20 = 2, + ASN_RRC_CellReselectionPriorities__t320_min30 = 3, + ASN_RRC_CellReselectionPriorities__t320_min60 = 4, + ASN_RRC_CellReselectionPriorities__t320_min120 = 5, + ASN_RRC_CellReselectionPriorities__t320_min180 = 6, + ASN_RRC_CellReselectionPriorities__t320_spare1 = 7 +} e_ASN_RRC_CellReselectionPriorities__t320; + +/* Forward declarations */ +struct ASN_RRC_FreqPriorityListEUTRA; +struct ASN_RRC_FreqPriorityListNR; + +/* ASN_RRC_CellReselectionPriorities */ +typedef struct ASN_RRC_CellReselectionPriorities { + struct ASN_RRC_FreqPriorityListEUTRA *freqPriorityListEUTRA; /* OPTIONAL */ + struct ASN_RRC_FreqPriorityListNR *freqPriorityListNR; /* OPTIONAL */ + long *t320; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellReselectionPriorities_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t320_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionPriorities; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellReselectionPriorities_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellReselectionPriorities_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellReselectionPriorities_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellReselectionPriority.c b/src/asn/rrc/ASN_RRC_CellReselectionPriority.c new file mode 100644 index 0000000..bce8bf8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionPriority.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellReselectionPriority.h" + +int +ASN_RRC_CellReselectionPriority_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_ASN_RRC_CellReselectionPriority_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_ASN_RRC_CellReselectionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionPriority = { + "CellReselectionPriority", + "CellReselectionPriority", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_CellReselectionPriority_tags_1, + sizeof(asn_DEF_ASN_RRC_CellReselectionPriority_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellReselectionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellReselectionPriority_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionPriority_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellReselectionPriority_constr_1, ASN_RRC_CellReselectionPriority_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellReselectionPriority.h b/src/asn/rrc/ASN_RRC_CellReselectionPriority.h new file mode 100644 index 0000000..5f43109 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionPriority.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellReselectionPriority_H_ +#define _ASN_RRC_CellReselectionPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellReselectionPriority */ +typedef long ASN_RRC_CellReselectionPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellReselectionPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionPriority; +asn_struct_free_f ASN_RRC_CellReselectionPriority_free; +asn_struct_print_f ASN_RRC_CellReselectionPriority_print; +asn_constr_check_f ASN_RRC_CellReselectionPriority_constraint; +ber_type_decoder_f ASN_RRC_CellReselectionPriority_decode_ber; +der_type_encoder_f ASN_RRC_CellReselectionPriority_encode_der; +xer_type_decoder_f ASN_RRC_CellReselectionPriority_decode_xer; +xer_type_encoder_f ASN_RRC_CellReselectionPriority_encode_xer; +per_type_decoder_f ASN_RRC_CellReselectionPriority_decode_uper; +per_type_encoder_f ASN_RRC_CellReselectionPriority_encode_uper; +per_type_decoder_f ASN_RRC_CellReselectionPriority_decode_aper; +per_type_encoder_f ASN_RRC_CellReselectionPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellReselectionPriority_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.c b/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.c new file mode 100644 index 0000000..306478c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellReselectionSubPriority.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_CellReselectionSubPriority_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_ASN_RRC_CellReselectionSubPriority_value2enum_1[] = { + { 0, 5, "oDot2" }, + { 1, 5, "oDot4" }, + { 2, 5, "oDot6" }, + { 3, 5, "oDot8" } +}; +static const unsigned int asn_MAP_ASN_RRC_CellReselectionSubPriority_enum2value_1[] = { + 0, /* oDot2(0) */ + 1, /* oDot4(1) */ + 2, /* oDot6(2) */ + 3 /* oDot8(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CellReselectionSubPriority_specs_1 = { + asn_MAP_ASN_RRC_CellReselectionSubPriority_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_CellReselectionSubPriority_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_ASN_RRC_CellReselectionSubPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionSubPriority = { + "CellReselectionSubPriority", + "CellReselectionSubPriority", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1, + sizeof(asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellReselectionSubPriority_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellReselectionSubPriority_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_CellReselectionSubPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.h b/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.h new file mode 100644 index 0000000..34619c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellReselectionSubPriority.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellReselectionSubPriority_H_ +#define _ASN_RRC_CellReselectionSubPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellReselectionSubPriority { + ASN_RRC_CellReselectionSubPriority_oDot2 = 0, + ASN_RRC_CellReselectionSubPriority_oDot4 = 1, + ASN_RRC_CellReselectionSubPriority_oDot6 = 2, + ASN_RRC_CellReselectionSubPriority_oDot8 = 3 +} e_ASN_RRC_CellReselectionSubPriority; + +/* ASN_RRC_CellReselectionSubPriority */ +typedef long ASN_RRC_CellReselectionSubPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellReselectionSubPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellReselectionSubPriority; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CellReselectionSubPriority_specs_1; +asn_struct_free_f ASN_RRC_CellReselectionSubPriority_free; +asn_struct_print_f ASN_RRC_CellReselectionSubPriority_print; +asn_constr_check_f ASN_RRC_CellReselectionSubPriority_constraint; +ber_type_decoder_f ASN_RRC_CellReselectionSubPriority_decode_ber; +der_type_encoder_f ASN_RRC_CellReselectionSubPriority_encode_der; +xer_type_decoder_f ASN_RRC_CellReselectionSubPriority_decode_xer; +xer_type_encoder_f ASN_RRC_CellReselectionSubPriority_encode_xer; +per_type_decoder_f ASN_RRC_CellReselectionSubPriority_decode_uper; +per_type_encoder_f ASN_RRC_CellReselectionSubPriority_encode_uper; +per_type_decoder_f ASN_RRC_CellReselectionSubPriority_decode_aper; +per_type_encoder_f ASN_RRC_CellReselectionSubPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellReselectionSubPriority_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellsToAddMod.c b/src/asn/rrc/ASN_RRC_CellsToAddMod.c new file mode 100644 index 0000000..818add7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsToAddMod.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellsToAddMod.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_CellsToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellsToAddMod, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellsToAddMod, cellIndividualOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRangeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndividualOffset" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellsToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CellsToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cellIndividualOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellsToAddMod_specs_1 = { + sizeof(struct ASN_RRC_CellsToAddMod), + offsetof(struct ASN_RRC_CellsToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_CellsToAddMod_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsToAddMod = { + "CellsToAddMod", + "CellsToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CellsToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_CellsToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellsToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellsToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CellsToAddMod_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CellsToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellsToAddMod.h b/src/asn/rrc/ASN_RRC_CellsToAddMod.h new file mode 100644 index 0000000..7a02092 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsToAddMod.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellsToAddMod_H_ +#define _ASN_RRC_CellsToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_Q-OffsetRangeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CellsToAddMod */ +typedef struct ASN_RRC_CellsToAddMod { + ASN_RRC_PhysCellId_t physCellId; + ASN_RRC_Q_OffsetRangeList_t cellIndividualOffset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellsToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CellsToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellsToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellsToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellsToAddModList.c b/src/asn/rrc/ASN_RRC_CellsToAddModList.c new file mode 100644 index 0000000..d0721bb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellsToAddModList.h" + +#include "ASN_RRC_CellsToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_CellsToAddModList_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_ASN_RRC_CellsToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_CellsToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellsToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CellsToAddModList_specs_1 = { + sizeof(struct ASN_RRC_CellsToAddModList), + offsetof(struct ASN_RRC_CellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsToAddModList = { + "CellsToAddModList", + "CellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CellsToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_CellsToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellsToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellsToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellsToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CellsToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CellsToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellsToAddModList.h b/src/asn/rrc/ASN_RRC_CellsToAddModList.h new file mode 100644 index 0000000..65184ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellsToAddModList_H_ +#define _ASN_RRC_CellsToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CellsToAddMod; + +/* ASN_RRC_CellsToAddModList */ +typedef struct ASN_RRC_CellsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_CellsToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellsToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CellsToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellsToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellsToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellsToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CellsTriggeredList.c b/src/asn/rrc/ASN_RRC_CellsTriggeredList.c new file mode 100644 index 0000000..9fb9631 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsTriggeredList.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CellsTriggeredList.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_Member_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_CellsTriggeredList_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 asn_TYPE_member_t asn_MBR_ASN_RRC_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellsTriggeredList__Member, choice.physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CellsTriggeredList__Member, choice.physCellIdEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellIdEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* physCellIdEUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_Member_specs_2 = { + sizeof(struct ASN_RRC_CellsTriggeredList__Member), + offsetof(struct ASN_RRC_CellsTriggeredList__Member, _asn_ctx), + offsetof(struct ASN_RRC_CellsTriggeredList__Member, present), + sizeof(((struct ASN_RRC_CellsTriggeredList__Member *)0)->present), + asn_MAP_ASN_RRC_Member_tag2el_2, + 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_ASN_RRC_Member_2 = { + "CHOICE", + "CHOICE", + &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_ASN_RRC_Member_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_Member_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CellsTriggeredList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_Member_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CellsTriggeredList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CellsTriggeredList_specs_1 = { + sizeof(struct ASN_RRC_CellsTriggeredList), + offsetof(struct ASN_RRC_CellsTriggeredList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsTriggeredList = { + "CellsTriggeredList", + "CellsTriggeredList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_CellsTriggeredList_tags_1, + sizeof(asn_DEF_ASN_RRC_CellsTriggeredList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsTriggeredList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CellsTriggeredList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CellsTriggeredList_tags_1) + /sizeof(asn_DEF_ASN_RRC_CellsTriggeredList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CellsTriggeredList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_CellsTriggeredList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_CellsTriggeredList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CellsTriggeredList.h b/src/asn/rrc/ASN_RRC_CellsTriggeredList.h new file mode 100644 index 0000000..81407d6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CellsTriggeredList.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CellsTriggeredList_H_ +#define _ASN_RRC_CellsTriggeredList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CellsTriggeredList__Member_PR { + ASN_RRC_CellsTriggeredList__Member_PR_NOTHING, /* No components present */ + ASN_RRC_CellsTriggeredList__Member_PR_physCellId, + ASN_RRC_CellsTriggeredList__Member_PR_physCellIdEUTRA +} ASN_RRC_CellsTriggeredList__Member_PR; + +/* Forward definitions */ +typedef struct ASN_RRC_CellsTriggeredList__Member { + ASN_RRC_CellsTriggeredList__Member_PR present; + union ASN_RRC_CellsTriggeredList__ASN_RRC_Member_u { + ASN_RRC_PhysCellId_t physCellId; + ASN_RRC_EUTRA_PhysCellId_t physCellIdEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellsTriggeredList__Member; + +/* ASN_RRC_CellsTriggeredList */ +typedef struct ASN_RRC_CellsTriggeredList { + A_SEQUENCE_OF(CellsTriggeredList__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CellsTriggeredList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CellsTriggeredList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_CellsTriggeredList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CellsTriggeredList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CellsTriggeredList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CellsTriggeredList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CipheringAlgorithm.c b/src/asn/rrc/ASN_RRC_CipheringAlgorithm.c new file mode 100644 index 0000000..c4b4701 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CipheringAlgorithm.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CipheringAlgorithm.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_CipheringAlgorithm_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_ASN_RRC_CipheringAlgorithm_value2enum_1[] = { + { 0, 4, "nea0" }, + { 1, 4, "nea1" }, + { 2, 4, "nea2" }, + { 3, 4, "nea3" }, + { 4, 6, "spare4" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_CipheringAlgorithm_enum2value_1[] = { + 0, /* nea0(0) */ + 1, /* nea1(1) */ + 2, /* nea2(2) */ + 3, /* nea3(3) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* spare3(5) */ + 4 /* spare4(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CipheringAlgorithm_specs_1 = { + asn_MAP_ASN_RRC_CipheringAlgorithm_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_CipheringAlgorithm_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_ASN_RRC_CipheringAlgorithm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CipheringAlgorithm = { + "CipheringAlgorithm", + "CipheringAlgorithm", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1, + sizeof(asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1) + /sizeof(asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1) + /sizeof(asn_DEF_ASN_RRC_CipheringAlgorithm_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_CipheringAlgorithm_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_CipheringAlgorithm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CipheringAlgorithm.h b/src/asn/rrc/ASN_RRC_CipheringAlgorithm.h new file mode 100644 index 0000000..bfe6e15 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CipheringAlgorithm.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CipheringAlgorithm_H_ +#define _ASN_RRC_CipheringAlgorithm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CipheringAlgorithm { + ASN_RRC_CipheringAlgorithm_nea0 = 0, + ASN_RRC_CipheringAlgorithm_nea1 = 1, + ASN_RRC_CipheringAlgorithm_nea2 = 2, + ASN_RRC_CipheringAlgorithm_nea3 = 3, + ASN_RRC_CipheringAlgorithm_spare4 = 4, + ASN_RRC_CipheringAlgorithm_spare3 = 5, + ASN_RRC_CipheringAlgorithm_spare2 = 6, + ASN_RRC_CipheringAlgorithm_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_CipheringAlgorithm; + +/* ASN_RRC_CipheringAlgorithm */ +typedef long ASN_RRC_CipheringAlgorithm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_CipheringAlgorithm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CipheringAlgorithm; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_CipheringAlgorithm_specs_1; +asn_struct_free_f ASN_RRC_CipheringAlgorithm_free; +asn_struct_print_f ASN_RRC_CipheringAlgorithm_print; +asn_constr_check_f ASN_RRC_CipheringAlgorithm_constraint; +ber_type_decoder_f ASN_RRC_CipheringAlgorithm_decode_ber; +der_type_encoder_f ASN_RRC_CipheringAlgorithm_encode_der; +xer_type_decoder_f ASN_RRC_CipheringAlgorithm_decode_xer; +xer_type_encoder_f ASN_RRC_CipheringAlgorithm_encode_xer; +per_type_decoder_f ASN_RRC_CipheringAlgorithm_decode_uper; +per_type_encoder_f ASN_RRC_CipheringAlgorithm_encode_uper; +per_type_decoder_f ASN_RRC_CipheringAlgorithm_decode_aper; +per_type_encoder_f ASN_RRC_CipheringAlgorithm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CipheringAlgorithm_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CodebookConfig.c b/src/asn/rrc/ASN_RRC_CodebookConfig.c new file mode 100644 index 0000000..983648c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CodebookConfig.c @@ -0,0 +1,2760 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CodebookConfig.h" + +static int +memb_ASN_RRC_twoTX_CodebookSubsetRestriction_constraint_7(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; + } +} + +static int +memb_ASN_RRC_two_one_TypeI_SinglePanel_Restriction_constraint_10(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_ASN_RRC_two_two_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_four_one_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_three_two_TypeI_SinglePanel_Restriction_constraint_10(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 == 96)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_six_one_TypeI_SinglePanel_Restriction_constraint_10(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 int +memb_ASN_RRC_four_two_TypeI_SinglePanel_Restriction_constraint_10(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 == 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_eight_one_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_four_three_TypeI_SinglePanel_Restriction_constraint_10(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 == 192)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_six_two_TypeI_SinglePanel_Restriction_constraint_10(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 == 192)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_twelve_one_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_four_four_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_eight_two_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_sixteen_one_TypeI_SinglePanel_Restriction_constraint_10(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; + } +} + +static int +memb_ASN_RRC_typeI_SinglePanel_codebookSubsetRestriction_i2_constraint_9(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; + } +} + +static int +memb_ASN_RRC_typeI_SinglePanel_ri_Restriction_constraint_5(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_ASN_RRC_two_two_one_TypeI_MultiPanel_Restriction_constraint_27(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_ASN_RRC_two_four_one_TypeI_MultiPanel_Restriction_constraint_27(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; + } +} + +static int +memb_ASN_RRC_four_two_one_TypeI_MultiPanel_Restriction_constraint_27(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_ASN_RRC_two_two_two_TypeI_MultiPanel_Restriction_constraint_27(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; + } +} + +static int +memb_ASN_RRC_two_eight_one_TypeI_MultiPanel_Restriction_constraint_27(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; + } +} + +static int +memb_ASN_RRC_four_four_one_TypeI_MultiPanel_Restriction_constraint_27(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; + } +} + +static int +memb_ASN_RRC_two_four_two_TypeI_MultiPanel_Restriction_constraint_27(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 == 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_four_two_two_TypeI_MultiPanel_Restriction_constraint_27(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; + } +} + +static int +memb_ASN_RRC_ri_Restriction_constraint_26(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 == 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_ASN_RRC_codebookMode_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_two_one_constraint_41(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; + } +} + +static int +memb_ASN_RRC_two_two_constraint_41(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 == 43)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_four_one_constraint_41(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; + } +} + +static int +memb_ASN_RRC_three_two_constraint_41(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 == 59)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_six_one_constraint_41(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; + } +} + +static int +memb_ASN_RRC_four_two_constraint_41(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 == 75)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_eight_one_constraint_41(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; + } +} + +static int +memb_ASN_RRC_four_three_constraint_41(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 == 107)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_six_two_constraint_41(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 == 107)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_twelve_one_constraint_41(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 == 96)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_four_four_constraint_41(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 == 139)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_eight_two_constraint_41(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 == 139)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sixteen_one_constraint_41(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 == 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_typeII_RI_Restriction_constraint_40(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 == 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_typeII_PortSelectionRI_Restriction_constraint_56(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 == 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 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_memb_ASN_RRC_twoTX_CodebookSubsetRestriction_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_two_one_TypeI_SinglePanel_Restriction_constr_11 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_ASN_RRC_two_two_TypeI_SinglePanel_Restriction_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_one_TypeI_SinglePanel_Restriction_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_three_two_TypeI_SinglePanel_Restriction_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 96, 96 } /* (SIZE(96..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_six_one_TypeI_SinglePanel_Restriction_constr_15 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_memb_ASN_RRC_four_two_TypeI_SinglePanel_Restriction_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_eight_one_TypeI_SinglePanel_Restriction_constr_17 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_three_TypeI_SinglePanel_Restriction_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 192, 192 } /* (SIZE(192..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_six_two_TypeI_SinglePanel_Restriction_constr_19 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 192, 192 } /* (SIZE(192..192)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_twelve_one_TypeI_SinglePanel_Restriction_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_four_TypeI_SinglePanel_Restriction_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_eight_two_TypeI_SinglePanel_Restriction_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sixteen_one_TypeI_SinglePanel_Restriction_constr_23 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_n1_n2_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_nrOfAntennaPorts_constr_6 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_ASN_RRC_typeI_SinglePanel_ri_Restriction_constr_25 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_ASN_RRC_two_two_one_TypeI_MultiPanel_Restriction_constr_28 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_ASN_RRC_two_four_one_TypeI_MultiPanel_Restriction_constr_29 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_two_one_TypeI_MultiPanel_Restriction_constr_30 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_ASN_RRC_two_two_two_TypeI_MultiPanel_Restriction_constr_31 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_two_eight_one_TypeI_MultiPanel_Restriction_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_four_one_TypeI_MultiPanel_Restriction_constr_33 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_two_four_two_TypeI_MultiPanel_Restriction_constr_34 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_two_two_TypeI_MultiPanel_Restriction_constr_35 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ng_n1_n2_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ri_Restriction_constr_36 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_type_ASN_RRC_subType_constr_4 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_ASN_RRC_codebookMode_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_two_one_constr_42 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_two_two_constr_43 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 43, 43 } /* (SIZE(43..43)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_one_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_three_two_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 59, 59 } /* (SIZE(59..59)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_six_one_constr_46 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 48, 48 } /* (SIZE(48..48)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_two_constr_47 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 75, 75 } /* (SIZE(75..75)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_eight_one_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_three_constr_49 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 107, 107 } /* (SIZE(107..107)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_six_two_constr_50 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 107, 107 } /* (SIZE(107..107)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_twelve_one_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 96, 96 } /* (SIZE(96..96)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_four_four_constr_52 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 139, 139 } /* (SIZE(139..139)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_eight_two_constr_53 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 139, 139 } /* (SIZE(139..139)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sixteen_one_constr_54 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 128, 128 } /* (SIZE(128..128)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_n1_n2_codebookSubsetRestriction_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 12 } /* (0..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_typeII_RI_Restriction_constr_55 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_portSelectionSamplingSize_constr_57 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_ASN_RRC_typeII_PortSelectionRI_Restriction_constr_62 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_subType_constr_39 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_type_ASN_RRC_phaseAlphabetSize_constr_63 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_type_ASN_RRC_numberOfBeams_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_type_ASN_RRC_codebookType_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_TYPE_member_t asn_MBR_ASN_RRC_two_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two, twoTX_CodebookSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_twoTX_CodebookSubsetRestriction_constr_8, memb_ASN_RRC_twoTX_CodebookSubsetRestriction_constraint_7 }, + 0, 0, /* No default value */ + "twoTX-CodebookSubsetRestriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_two_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_two_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* twoTX-CodebookSubsetRestriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_two_specs_7 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two, _asn_ctx), + asn_MAP_ASN_RRC_two_tag2el_7, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_two_7 = { + "two", + "two", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_two_tags_7, + sizeof(asn_DEF_ASN_RRC_two_tags_7) + /sizeof(asn_DEF_ASN_RRC_two_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_two_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_two_tags_7) + /sizeof(asn_DEF_ASN_RRC_two_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_two_7, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_two_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_n1_n2_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.two_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_one_TypeI_SinglePanel_Restriction_constr_11, memb_ASN_RRC_two_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "two-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.two_two_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_two_TypeI_SinglePanel_Restriction_constr_12, memb_ASN_RRC_two_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "two-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_one_TypeI_SinglePanel_Restriction_constr_13, memb_ASN_RRC_four_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.three_two_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_three_two_TypeI_SinglePanel_Restriction_constr_14, memb_ASN_RRC_three_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "three-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.six_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_six_one_TypeI_SinglePanel_Restriction_constr_15, memb_ASN_RRC_six_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "six-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_two_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_two_TypeI_SinglePanel_Restriction_constr_16, memb_ASN_RRC_four_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.eight_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_eight_one_TypeI_SinglePanel_Restriction_constr_17, memb_ASN_RRC_eight_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "eight-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_three_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_three_TypeI_SinglePanel_Restriction_constr_18, memb_ASN_RRC_four_three_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-three-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.six_two_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_six_two_TypeI_SinglePanel_Restriction_constr_19, memb_ASN_RRC_six_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "six-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.twelve_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_twelve_one_TypeI_SinglePanel_Restriction_constr_20, memb_ASN_RRC_twelve_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "twelve-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.four_four_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_four_TypeI_SinglePanel_Restriction_constr_21, memb_ASN_RRC_four_four_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-four-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.eight_two_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_eight_two_TypeI_SinglePanel_Restriction_constr_22, memb_ASN_RRC_eight_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "eight-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, choice.sixteen_one_TypeI_SinglePanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sixteen_one_TypeI_SinglePanel_Restriction_constr_23, memb_ASN_RRC_sixteen_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "sixteen-one-TypeI-SinglePanel-Restriction" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_n1_n2_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-one-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-two-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-one-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* three-two-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* six-one-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-two-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight-one-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* four-three-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* six-two-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* twelve-one-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* four-four-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* eight-two-TypeI-SinglePanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* sixteen-one-TypeI-SinglePanel-Restriction */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_n1_n2_specs_10 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 *)0)->present), + asn_MAP_ASN_RRC_n1_n2_tag2el_10, + 13, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n1_n2_10 = { + "n1-n2", + "n1-n2", + &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_ASN_RRC_n1_n2_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_n1_n2_10, + 13, /* Elements count */ + &asn_SPC_ASN_RRC_n1_n2_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_moreThanTwo_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, n1_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n1_n2_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1-n2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, typeI_SinglePanel_codebookSubsetRestriction_i2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24, memb_ASN_RRC_typeI_SinglePanel_codebookSubsetRestriction_i2_constraint_9 }, + 0, 0, /* No default value */ + "typeI-SinglePanel-codebookSubsetRestriction-i2" + }, +}; +static const int asn_MAP_ASN_RRC_moreThanTwo_oms_9[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_moreThanTwo_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_moreThanTwo_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n1-n2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-SinglePanel-codebookSubsetRestriction-i2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_moreThanTwo_specs_9 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, _asn_ctx), + asn_MAP_ASN_RRC_moreThanTwo_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_moreThanTwo_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_moreThanTwo_9 = { + "moreThanTwo", + "moreThanTwo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_moreThanTwo_tags_9, + sizeof(asn_DEF_ASN_RRC_moreThanTwo_tags_9) + /sizeof(asn_DEF_ASN_RRC_moreThanTwo_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_moreThanTwo_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_moreThanTwo_tags_9) + /sizeof(asn_DEF_ASN_RRC_moreThanTwo_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_moreThanTwo_9, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_moreThanTwo_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nrOfAntennaPorts_6[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.two), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_two_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "two" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.moreThanTwo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_moreThanTwo_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moreThanTwo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nrOfAntennaPorts_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* moreThanTwo */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_nrOfAntennaPorts_specs_6 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts *)0)->present), + asn_MAP_ASN_RRC_nrOfAntennaPorts_tag2el_6, + 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_ASN_RRC_nrOfAntennaPorts_6 = { + "nrOfAntennaPorts", + "nrOfAntennaPorts", + &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_ASN_RRC_nrOfAntennaPorts_constr_6, CHOICE_constraint }, + asn_MBR_ASN_RRC_nrOfAntennaPorts_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_nrOfAntennaPorts_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_typeI_SinglePanel_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, nrOfAntennaPorts), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrOfAntennaPorts_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrOfAntennaPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, typeI_SinglePanel_ri_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_typeI_SinglePanel_ri_Restriction_constr_25, memb_ASN_RRC_typeI_SinglePanel_ri_Restriction_constraint_5 }, + 0, 0, /* No default value */ + "typeI-SinglePanel-ri-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_typeI_SinglePanel_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrOfAntennaPorts */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-SinglePanel-ri-Restriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_typeI_SinglePanel_specs_5 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, _asn_ctx), + asn_MAP_ASN_RRC_typeI_SinglePanel_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_typeI_SinglePanel_5 = { + "typeI-SinglePanel", + "typeI-SinglePanel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5, + sizeof(asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5) + /sizeof(asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5) + /sizeof(asn_DEF_ASN_RRC_typeI_SinglePanel_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_typeI_SinglePanel_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_typeI_SinglePanel_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ng_n1_n2_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_two_one_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_two_one_TypeI_MultiPanel_Restriction_constr_28, memb_ASN_RRC_two_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-two-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_four_one_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_four_one_TypeI_MultiPanel_Restriction_constr_29, memb_ASN_RRC_two_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-four-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_two_one_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_two_one_TypeI_MultiPanel_Restriction_constr_30, memb_ASN_RRC_four_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "four-two-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_two_two_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_two_two_TypeI_MultiPanel_Restriction_constr_31, memb_ASN_RRC_two_two_two_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-two-two-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_eight_one_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_eight_one_TypeI_MultiPanel_Restriction_constr_32, memb_ASN_RRC_two_eight_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-eight-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_four_one_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_four_one_TypeI_MultiPanel_Restriction_constr_33, memb_ASN_RRC_four_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "four-four-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.two_four_two_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_four_two_TypeI_MultiPanel_Restriction_constr_34, memb_ASN_RRC_two_four_two_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-four-two-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, choice.four_two_two_TypeI_MultiPanel_Restriction), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_two_two_TypeI_MultiPanel_Restriction_constr_35, memb_ASN_RRC_four_two_two_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "four-two-two-TypeI-MultiPanel-Restriction" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ng_n1_n2_tag2el_27[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-two-one-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-four-one-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-two-one-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* two-two-two-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* two-eight-one-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-four-one-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* two-four-two-TypeI-MultiPanel-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* four-two-two-TypeI-MultiPanel-Restriction */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_ng_n1_n2_specs_27 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 *)0)->present), + asn_MAP_ASN_RRC_ng_n1_n2_tag2el_27, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ng_n1_n2_27 = { + "ng-n1-n2", + "ng-n1-n2", + &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_ASN_RRC_ng_n1_n2_constr_27, CHOICE_constraint }, + asn_MBR_ASN_RRC_ng_n1_n2_27, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_ng_n1_n2_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_typeI_MultiPanel_26[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, ng_n1_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ng_n1_n2_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-n1-n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, ri_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ri_Restriction_constr_36, memb_ASN_RRC_ri_Restriction_constraint_26 }, + 0, 0, /* No default value */ + "ri-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_typeI_MultiPanel_tag2el_26[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ng-n1-n2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ri-Restriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_typeI_MultiPanel_specs_26 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, _asn_ctx), + asn_MAP_ASN_RRC_typeI_MultiPanel_tag2el_26, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_typeI_MultiPanel_26 = { + "typeI-MultiPanel", + "typeI-MultiPanel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26, + sizeof(asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26) + /sizeof(asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26) + /sizeof(asn_DEF_ASN_RRC_typeI_MultiPanel_tags_26[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_typeI_MultiPanel_26, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_typeI_MultiPanel_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_subType_4[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType, choice.typeI_SinglePanel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_typeI_SinglePanel_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeI-SinglePanel" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType, choice.typeI_MultiPanel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_typeI_MultiPanel_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeI-MultiPanel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_subType_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeI-SinglePanel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeI-MultiPanel */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_subType_specs_4 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1__subType, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type1__subType *)0)->present), + asn_MAP_ASN_RRC_subType_tag2el_4, + 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_ASN_RRC_subType_4 = { + "subType", + "subType", + &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_ASN_RRC_subType_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_subType_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_subType_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_type1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1, subType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1, codebookMode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_codebookMode_constr_37, memb_ASN_RRC_codebookMode_constraint_3 }, + 0, 0, /* No default value */ + "codebookMode" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_type1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* codebookMode */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_type1_specs_3 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type1), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type1, _asn_ctx), + asn_MAP_ASN_RRC_type1_tag2el_3, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_3 = { + "type1", + "type1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_type1_tags_3, + sizeof(asn_DEF_ASN_RRC_type1_tags_3) + /sizeof(asn_DEF_ASN_RRC_type1_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type1_tags_3) + /sizeof(asn_DEF_ASN_RRC_type1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_type1_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_type1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_n1_n2_codebookSubsetRestriction_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.two_one), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_one_constr_42, memb_ASN_RRC_two_one_constraint_41 }, + 0, 0, /* No default value */ + "two-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.two_two), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_two_two_constr_43, memb_ASN_RRC_two_two_constraint_41 }, + 0, 0, /* No default value */ + "two-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_one), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_one_constr_44, memb_ASN_RRC_four_one_constraint_41 }, + 0, 0, /* No default value */ + "four-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.three_two), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_three_two_constr_45, memb_ASN_RRC_three_two_constraint_41 }, + 0, 0, /* No default value */ + "three-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.six_one), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_six_one_constr_46, memb_ASN_RRC_six_one_constraint_41 }, + 0, 0, /* No default value */ + "six-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_two), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_two_constr_47, memb_ASN_RRC_four_two_constraint_41 }, + 0, 0, /* No default value */ + "four-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.eight_one), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_eight_one_constr_48, memb_ASN_RRC_eight_one_constraint_41 }, + 0, 0, /* No default value */ + "eight-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_three), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_three_constr_49, memb_ASN_RRC_four_three_constraint_41 }, + 0, 0, /* No default value */ + "four-three" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.six_two), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_six_two_constr_50, memb_ASN_RRC_six_two_constraint_41 }, + 0, 0, /* No default value */ + "six-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.twelve_one), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_twelve_one_constr_51, memb_ASN_RRC_twelve_one_constraint_41 }, + 0, 0, /* No default value */ + "twelve-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.four_four), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_four_constr_52, memb_ASN_RRC_four_four_constraint_41 }, + 0, 0, /* No default value */ + "four-four" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.eight_two), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_eight_two_constr_53, memb_ASN_RRC_eight_two_constraint_41 }, + 0, 0, /* No default value */ + "eight-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, choice.sixteen_one), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sixteen_one_constr_54, memb_ASN_RRC_sixteen_one_constraint_41 }, + 0, 0, /* No default value */ + "sixteen-one" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_n1_n2_codebookSubsetRestriction_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* two-one */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* two-two */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* four-one */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* three-two */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* six-one */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four-two */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight-one */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* four-three */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* six-two */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* twelve-one */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* four-four */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* eight-two */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 } /* sixteen-one */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_n1_n2_codebookSubsetRestriction_specs_41 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction *)0)->present), + asn_MAP_ASN_RRC_n1_n2_codebookSubsetRestriction_tag2el_41, + 13, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n1_n2_codebookSubsetRestriction_41 = { + "n1-n2-codebookSubsetRestriction", + "n1-n2-codebookSubsetRestriction", + &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_ASN_RRC_n1_n2_codebookSubsetRestriction_constr_41, CHOICE_constraint }, + asn_MBR_ASN_RRC_n1_n2_codebookSubsetRestriction_41, + 13, /* Elements count */ + &asn_SPC_ASN_RRC_n1_n2_codebookSubsetRestriction_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_typeII_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII, n1_n2_codebookSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n1_n2_codebookSubsetRestriction_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1-n2-codebookSubsetRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII, typeII_RI_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_typeII_RI_Restriction_constr_55, memb_ASN_RRC_typeII_RI_Restriction_constraint_40 }, + 0, 0, /* No default value */ + "typeII-RI-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_typeII_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_typeII_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n1-n2-codebookSubsetRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-RI-Restriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_typeII_specs_40 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII, _asn_ctx), + asn_MAP_ASN_RRC_typeII_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_typeII_40 = { + "typeII", + "typeII", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_typeII_tags_40, + sizeof(asn_DEF_ASN_RRC_typeII_tags_40) + /sizeof(asn_DEF_ASN_RRC_typeII_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_typeII_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_typeII_tags_40) + /sizeof(asn_DEF_ASN_RRC_typeII_tags_40[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_typeII_40, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_typeII_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_portSelectionSamplingSize_value2enum_57[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_portSelectionSamplingSize_enum2value_57[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_portSelectionSamplingSize_specs_57 = { + asn_MAP_ASN_RRC_portSelectionSamplingSize_value2enum_57, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_portSelectionSamplingSize_enum2value_57, /* 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_ASN_RRC_portSelectionSamplingSize_tags_57[] = { + (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_ASN_RRC_portSelectionSamplingSize_57 = { + "portSelectionSamplingSize", + "portSelectionSamplingSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57, + sizeof(asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57) + /sizeof(asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57) + /sizeof(asn_DEF_ASN_RRC_portSelectionSamplingSize_tags_57[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_portSelectionSamplingSize_constr_57, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_portSelectionSamplingSize_specs_57 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_typeII_PortSelection_56[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection, portSelectionSamplingSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_portSelectionSamplingSize_57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portSelectionSamplingSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection, typeII_PortSelectionRI_Restriction), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_typeII_PortSelectionRI_Restriction_constr_62, memb_ASN_RRC_typeII_PortSelectionRI_Restriction_constraint_56 }, + 0, 0, /* No default value */ + "typeII-PortSelectionRI-Restriction" + }, +}; +static const int asn_MAP_ASN_RRC_typeII_PortSelection_oms_56[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_typeII_PortSelection_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_typeII_PortSelection_tag2el_56[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* portSelectionSamplingSize */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-PortSelectionRI-Restriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_typeII_PortSelection_specs_56 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection, _asn_ctx), + asn_MAP_ASN_RRC_typeII_PortSelection_tag2el_56, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_typeII_PortSelection_oms_56, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_typeII_PortSelection_56 = { + "typeII-PortSelection", + "typeII-PortSelection", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_typeII_PortSelection_tags_56, + sizeof(asn_DEF_ASN_RRC_typeII_PortSelection_tags_56) + /sizeof(asn_DEF_ASN_RRC_typeII_PortSelection_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_typeII_PortSelection_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_typeII_PortSelection_tags_56) + /sizeof(asn_DEF_ASN_RRC_typeII_PortSelection_tags_56[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_typeII_PortSelection_56, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_typeII_PortSelection_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_subType_39[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType, choice.typeII), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_typeII_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeII" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType, choice.typeII_PortSelection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_typeII_PortSelection_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeII-PortSelection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_subType_tag2el_39[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeII */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeII-PortSelection */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_subType_specs_39 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2__subType, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType__type2__subType *)0)->present), + asn_MAP_ASN_RRC_subType_tag2el_39, + 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_ASN_RRC_subType_39 = { + "subType", + "subType", + &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_ASN_RRC_subType_constr_39, CHOICE_constraint }, + asn_MBR_ASN_RRC_subType_39, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_subType_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_phaseAlphabetSize_value2enum_63[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_phaseAlphabetSize_enum2value_63[] = { + 0, /* n4(0) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_phaseAlphabetSize_specs_63 = { + asn_MAP_ASN_RRC_phaseAlphabetSize_value2enum_63, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_phaseAlphabetSize_enum2value_63, /* 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_ASN_RRC_phaseAlphabetSize_tags_63[] = { + (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_ASN_RRC_phaseAlphabetSize_63 = { + "phaseAlphabetSize", + "phaseAlphabetSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63, + sizeof(asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63) + /sizeof(asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63) + /sizeof(asn_DEF_ASN_RRC_phaseAlphabetSize_tags_63[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_phaseAlphabetSize_constr_63, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_phaseAlphabetSize_specs_63 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_numberOfBeams_value2enum_67[] = { + { 0, 3, "two" }, + { 1, 5, "three" }, + { 2, 4, "four" } +}; +static const unsigned int asn_MAP_ASN_RRC_numberOfBeams_enum2value_67[] = { + 2, /* four(2) */ + 1, /* three(1) */ + 0 /* two(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_numberOfBeams_specs_67 = { + asn_MAP_ASN_RRC_numberOfBeams_value2enum_67, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_numberOfBeams_enum2value_67, /* 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_ASN_RRC_numberOfBeams_tags_67[] = { + (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_ASN_RRC_numberOfBeams_67 = { + "numberOfBeams", + "numberOfBeams", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_numberOfBeams_tags_67, + sizeof(asn_DEF_ASN_RRC_numberOfBeams_tags_67) + /sizeof(asn_DEF_ASN_RRC_numberOfBeams_tags_67[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_numberOfBeams_tags_67, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_numberOfBeams_tags_67) + /sizeof(asn_DEF_ASN_RRC_numberOfBeams_tags_67[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_numberOfBeams_constr_67, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_numberOfBeams_specs_67 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_type2_38[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2, subType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subType_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2, phaseAlphabetSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_phaseAlphabetSize_63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseAlphabetSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2, subbandAmplitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subbandAmplitude" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2, numberOfBeams), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_numberOfBeams_67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBeams" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type2_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_type2_tag2el_38[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phaseAlphabetSize */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbandAmplitude */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* numberOfBeams */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_type2_specs_38 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType__type2), + offsetof(struct ASN_RRC_CodebookConfig__codebookType__type2, _asn_ctx), + asn_MAP_ASN_RRC_type2_tag2el_38, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_38 = { + "type2", + "type2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_type2_tags_38, + sizeof(asn_DEF_ASN_RRC_type2_tags_38) + /sizeof(asn_DEF_ASN_RRC_type2_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type2_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type2_tags_38) + /sizeof(asn_DEF_ASN_RRC_type2_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_type2_38, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_type2_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_codebookType_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType, choice.type1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_type1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CodebookConfig__codebookType, choice.type2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_type2_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_codebookType_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* type2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_codebookType_specs_2 = { + sizeof(struct ASN_RRC_CodebookConfig__codebookType), + offsetof(struct ASN_RRC_CodebookConfig__codebookType, _asn_ctx), + offsetof(struct ASN_RRC_CodebookConfig__codebookType, present), + sizeof(((struct ASN_RRC_CodebookConfig__codebookType *)0)->present), + asn_MAP_ASN_RRC_codebookType_tag2el_2, + 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_ASN_RRC_codebookType_2 = { + "codebookType", + "codebookType", + &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_ASN_RRC_codebookType_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_codebookType_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_codebookType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CodebookConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookConfig, codebookType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_codebookType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CodebookConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CodebookConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* codebookType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CodebookConfig_specs_1 = { + sizeof(struct ASN_RRC_CodebookConfig), + offsetof(struct ASN_RRC_CodebookConfig, _asn_ctx), + asn_MAP_ASN_RRC_CodebookConfig_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_ASN_RRC_CodebookConfig = { + "CodebookConfig", + "CodebookConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CodebookConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CodebookConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CodebookConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CodebookConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CodebookConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CodebookConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CodebookConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CodebookConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CodebookConfig.h b/src/asn/rrc/ASN_RRC_CodebookConfig.h new file mode 100644 index 0000000..1cf11ad --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CodebookConfig.h @@ -0,0 +1,267 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CodebookConfig_H_ +#define _ASN_RRC_CodebookConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CodebookConfig__codebookType_PR { + ASN_RRC_CodebookConfig__codebookType_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType_PR_type1, + ASN_RRC_CodebookConfig__codebookType_PR_type2 +} ASN_RRC_CodebookConfig__codebookType_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type1__subType_PR { + ASN_RRC_CodebookConfig__codebookType__type1__subType_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel, + ASN_RRC_CodebookConfig__codebookType__type1__subType_PR_typeI_MultiPanel +} ASN_RRC_CodebookConfig__codebookType__type1__subType_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo +} ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_two_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_one_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_three_two_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_one_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_two_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_one_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_three_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_two_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_twelve_one_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_four_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_two_TypeI_SinglePanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_sixteen_one_TypeI_SinglePanel_Restriction +} ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_one_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_one_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_one_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_two_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_eight_one_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_four_one_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_two_TypeI_MultiPanel_Restriction, + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_two_TypeI_MultiPanel_Restriction +} ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type2__subType_PR { + ASN_RRC_CodebookConfig__codebookType__type2__subType_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type2__subType_PR_typeII, + ASN_RRC_CodebookConfig__codebookType__type2__subType_PR_typeII_PortSelection +} ASN_RRC_CodebookConfig__codebookType__type2__subType_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR { + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_NOTHING, /* No components present */ + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_one, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_two, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_one, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_three_two, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_one, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_two, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_one, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_three, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_two, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_twelve_one, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_four, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_two, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_sixteen_one +} ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR; +typedef enum ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize { + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n1 = 0, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n2 = 1, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n3 = 2, + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n4 = 3 +} e_ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize; +typedef enum ASN_RRC_CodebookConfig__codebookType__type2__phaseAlphabetSize { + ASN_RRC_CodebookConfig__codebookType__type2__phaseAlphabetSize_n4 = 0, + ASN_RRC_CodebookConfig__codebookType__type2__phaseAlphabetSize_n8 = 1 +} e_ASN_RRC_CodebookConfig__codebookType__type2__phaseAlphabetSize; +typedef enum ASN_RRC_CodebookConfig__codebookType__type2__numberOfBeams { + ASN_RRC_CodebookConfig__codebookType__type2__numberOfBeams_two = 0, + ASN_RRC_CodebookConfig__codebookType__type2__numberOfBeams_three = 1, + ASN_RRC_CodebookConfig__codebookType__type2__numberOfBeams_four = 2 +} e_ASN_RRC_CodebookConfig__codebookType__type2__numberOfBeams; + +/* ASN_RRC_CodebookConfig */ +typedef struct ASN_RRC_CodebookConfig { + struct ASN_RRC_CodebookConfig__codebookType { + ASN_RRC_CodebookConfig__codebookType_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType_u { + struct ASN_RRC_CodebookConfig__codebookType__type1 { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType { + ASN_RRC_CodebookConfig__codebookType__type1__subType_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type1__ASN_RRC_subType_u { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type1__ASN_RRC_subType__ASN_RRC_typeI_SinglePanel__ASN_RRC_nrOfAntennaPorts_u { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two { + BIT_STRING_t twoTX_CodebookSubsetRestriction; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *two; + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type1__ASN_RRC_subType__ASN_RRC_typeI_SinglePanel__ASN_RRC_nrOfAntennaPorts__ASN_RRC_moreThanTwo__ASN_RRC_n1_n2_u { + BIT_STRING_t two_one_TypeI_SinglePanel_Restriction; + BIT_STRING_t two_two_TypeI_SinglePanel_Restriction; + BIT_STRING_t four_one_TypeI_SinglePanel_Restriction; + BIT_STRING_t three_two_TypeI_SinglePanel_Restriction; + BIT_STRING_t six_one_TypeI_SinglePanel_Restriction; + BIT_STRING_t four_two_TypeI_SinglePanel_Restriction; + BIT_STRING_t eight_one_TypeI_SinglePanel_Restriction; + BIT_STRING_t four_three_TypeI_SinglePanel_Restriction; + BIT_STRING_t six_two_TypeI_SinglePanel_Restriction; + BIT_STRING_t twelve_one_TypeI_SinglePanel_Restriction; + BIT_STRING_t four_four_TypeI_SinglePanel_Restriction; + BIT_STRING_t eight_two_TypeI_SinglePanel_Restriction; + BIT_STRING_t sixteen_one_TypeI_SinglePanel_Restriction; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } n1_n2; + BIT_STRING_t *typeI_SinglePanel_codebookSubsetRestriction_i2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *moreThanTwo; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } nrOfAntennaPorts; + BIT_STRING_t typeI_SinglePanel_ri_Restriction; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeI_SinglePanel; + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel { + struct ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 { + ASN_RRC_CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type1__ASN_RRC_subType__ASN_RRC_typeI_MultiPanel__ASN_RRC_ng_n1_n2_u { + BIT_STRING_t two_two_one_TypeI_MultiPanel_Restriction; + BIT_STRING_t two_four_one_TypeI_MultiPanel_Restriction; + BIT_STRING_t four_two_one_TypeI_MultiPanel_Restriction; + BIT_STRING_t two_two_two_TypeI_MultiPanel_Restriction; + BIT_STRING_t two_eight_one_TypeI_MultiPanel_Restriction; + BIT_STRING_t four_four_one_TypeI_MultiPanel_Restriction; + BIT_STRING_t two_four_two_TypeI_MultiPanel_Restriction; + BIT_STRING_t four_two_two_TypeI_MultiPanel_Restriction; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ng_n1_n2; + BIT_STRING_t ri_Restriction; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeI_MultiPanel; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } subType; + long codebookMode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *type1; + struct ASN_RRC_CodebookConfig__codebookType__type2 { + struct ASN_RRC_CodebookConfig__codebookType__type2__subType { + ASN_RRC_CodebookConfig__codebookType__type2__subType_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type2__ASN_RRC_subType_u { + struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII { + struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction { + ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR present; + union ASN_RRC_CodebookConfig__ASN_RRC_codebookType__ASN_RRC_type2__ASN_RRC_subType__ASN_RRC_typeII__ASN_RRC_n1_n2_codebookSubsetRestriction_u { + BIT_STRING_t two_one; + BIT_STRING_t two_two; + BIT_STRING_t four_one; + BIT_STRING_t three_two; + BIT_STRING_t six_one; + BIT_STRING_t four_two; + BIT_STRING_t eight_one; + BIT_STRING_t four_three; + BIT_STRING_t six_two; + BIT_STRING_t twelve_one; + BIT_STRING_t four_four; + BIT_STRING_t eight_two; + BIT_STRING_t sixteen_one; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } n1_n2_codebookSubsetRestriction; + BIT_STRING_t typeII_RI_Restriction; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeII; + struct ASN_RRC_CodebookConfig__codebookType__type2__subType__typeII_PortSelection { + long *portSelectionSamplingSize; /* OPTIONAL */ + BIT_STRING_t typeII_PortSelectionRI_Restriction; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeII_PortSelection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } subType; + long phaseAlphabetSize; + BOOLEAN_t subbandAmplitude; + long numberOfBeams; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *type2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } codebookType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CodebookConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_portSelectionSamplingSize_57; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phaseAlphabetSize_63; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_numberOfBeams_67; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CodebookConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CodebookConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CodebookConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CodebookConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CodebookParameters.c b/src/asn/rrc/ASN_RRC_CodebookParameters.c new file mode 100644 index 0000000..9dc1096 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CodebookParameters.c @@ -0,0 +1,1090 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CodebookParameters.h" + +#include "ASN_RRC_SupportedCSI-RS-Resource.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_3(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 <= 7)) { + /* 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 int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_10(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 <= 7)) { + /* 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 int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_21(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 <= 7)) { + /* 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 int +memb_ASN_RRC_parameterLx_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 >= 2 && 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_30(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 <= 7)) { + /* 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 int +memb_ASN_RRC_parameterLx_constraint_30(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 2 && 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_ASN_RRC_supportedCSI_RS_ResourceList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_modes_constr_6 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_ASN_RRC_supportedCSI_RS_ResourceList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_modes_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_nrofPanels_constr_17 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_ASN_RRC_supportedCSI_RS_ResourceList_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_amplitudeScalingType_constr_25 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_type_ASN_RRC_amplitudeSubsetRestriction_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_supportedCSI_RS_ResourceList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_parameterLx_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 2, 4 } /* (2..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_31 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_amplitudeScalingType_constr_34 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_ASN_RRC_supportedCSI_RS_ResourceList_constr_31 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_parameterLx_constr_33 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 2, 4 } /* (2..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SupportedCSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_4 = { + sizeof(struct ASN_RRC_CodebookParameters__type1__singlePanel__supportedCSI_RS_ResourceList), + offsetof(struct ASN_RRC_CodebookParameters__type1__singlePanel__supportedCSI_RS_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_4 = { + "supportedCSI-RS-ResourceList", + "supportedCSI-RS-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_modes_value2enum_6[] = { + { 0, 5, "mode1" }, + { 1, 13, "mode1andMode2" } +}; +static const unsigned int asn_MAP_ASN_RRC_modes_enum2value_6[] = { + 0, /* mode1(0) */ + 1 /* mode1andMode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_modes_specs_6 = { + asn_MAP_ASN_RRC_modes_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_modes_enum2value_6, /* 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_ASN_RRC_modes_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_ASN_RRC_modes_6 = { + "modes", + "modes", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_modes_tags_6, + sizeof(asn_DEF_ASN_RRC_modes_tags_6) + /sizeof(asn_DEF_ASN_RRC_modes_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_modes_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_modes_tags_6) + /sizeof(asn_DEF_ASN_RRC_modes_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_modes_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_modes_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_singlePanel_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__singlePanel, supportedCSI_RS_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedCSI_RS_ResourceList_constr_4, memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_3 }, + 0, 0, /* No default value */ + "supportedCSI-RS-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__singlePanel, modes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_modes_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "modes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__singlePanel, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_9, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_3 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_singlePanel_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_singlePanel_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedCSI-RS-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* modes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_singlePanel_specs_3 = { + sizeof(struct ASN_RRC_CodebookParameters__type1__singlePanel), + offsetof(struct ASN_RRC_CodebookParameters__type1__singlePanel, _asn_ctx), + asn_MAP_ASN_RRC_singlePanel_tag2el_3, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_singlePanel_3 = { + "singlePanel", + "singlePanel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_singlePanel_tags_3, + sizeof(asn_DEF_ASN_RRC_singlePanel_tags_3) + /sizeof(asn_DEF_ASN_RRC_singlePanel_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_singlePanel_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_singlePanel_tags_3) + /sizeof(asn_DEF_ASN_RRC_singlePanel_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_singlePanel_3, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_singlePanel_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SupportedCSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_11 = { + sizeof(struct ASN_RRC_CodebookParameters__type1__multiPanel__supportedCSI_RS_ResourceList), + offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel__supportedCSI_RS_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_11 = { + "supportedCSI-RS-ResourceList", + "supportedCSI-RS-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_11, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_modes_value2enum_13[] = { + { 0, 5, "mode1" }, + { 1, 5, "mode2" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_ASN_RRC_modes_enum2value_13[] = { + 2, /* both(2) */ + 0, /* mode1(0) */ + 1 /* mode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_modes_specs_13 = { + asn_MAP_ASN_RRC_modes_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_modes_enum2value_13, /* 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_ASN_RRC_modes_tags_13[] = { + (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_ASN_RRC_modes_13 = { + "modes", + "modes", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_modes_tags_13, + sizeof(asn_DEF_ASN_RRC_modes_tags_13) + /sizeof(asn_DEF_ASN_RRC_modes_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_modes_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_modes_tags_13) + /sizeof(asn_DEF_ASN_RRC_modes_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_modes_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_modes_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofPanels_value2enum_17[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofPanels_enum2value_17[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofPanels_specs_17 = { + asn_MAP_ASN_RRC_nrofPanels_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofPanels_enum2value_17, /* 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_ASN_RRC_nrofPanels_tags_17[] = { + (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_ASN_RRC_nrofPanels_17 = { + "nrofPanels", + "nrofPanels", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofPanels_tags_17, + sizeof(asn_DEF_ASN_RRC_nrofPanels_tags_17) + /sizeof(asn_DEF_ASN_RRC_nrofPanels_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofPanels_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofPanels_tags_17) + /sizeof(asn_DEF_ASN_RRC_nrofPanels_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofPanels_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofPanels_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_multiPanel_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel, supportedCSI_RS_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_11, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedCSI_RS_ResourceList_constr_11, memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_10 }, + 0, 0, /* No default value */ + "supportedCSI-RS-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel, modes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_modes_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "modes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel, nrofPanels), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofPanels_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofPanels" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_20, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_10 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multiPanel_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_multiPanel_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedCSI-RS-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* modes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrofPanels */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_multiPanel_specs_10 = { + sizeof(struct ASN_RRC_CodebookParameters__type1__multiPanel), + offsetof(struct ASN_RRC_CodebookParameters__type1__multiPanel, _asn_ctx), + asn_MAP_ASN_RRC_multiPanel_tag2el_10, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multiPanel_10 = { + "multiPanel", + "multiPanel", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_multiPanel_tags_10, + sizeof(asn_DEF_ASN_RRC_multiPanel_tags_10) + /sizeof(asn_DEF_ASN_RRC_multiPanel_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multiPanel_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multiPanel_tags_10) + /sizeof(asn_DEF_ASN_RRC_multiPanel_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_multiPanel_10, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_multiPanel_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_type1_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type1, singlePanel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_singlePanel_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "singlePanel" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CodebookParameters__type1, multiPanel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_multiPanel_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiPanel" + }, +}; +static const int asn_MAP_ASN_RRC_type1_oms_2[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type1_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_type1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* singlePanel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* multiPanel */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_type1_specs_2 = { + sizeof(struct ASN_RRC_CodebookParameters__type1), + offsetof(struct ASN_RRC_CodebookParameters__type1, _asn_ctx), + asn_MAP_ASN_RRC_type1_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_type1_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_2 = { + "type1", + "type1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_type1_tags_2, + sizeof(asn_DEF_ASN_RRC_type1_tags_2) + /sizeof(asn_DEF_ASN_RRC_type1_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type1_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type1_tags_2) + /sizeof(asn_DEF_ASN_RRC_type1_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_type1_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_type1_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SupportedCSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_22 = { + sizeof(struct ASN_RRC_CodebookParameters__type2__supportedCSI_RS_ResourceList), + offsetof(struct ASN_RRC_CodebookParameters__type2__supportedCSI_RS_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_22 = { + "supportedCSI-RS-ResourceList", + "supportedCSI-RS-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_25[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_25[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeScalingType_specs_25 = { + asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_25, /* 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_ASN_RRC_amplitudeScalingType_tags_25[] = { + (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_ASN_RRC_amplitudeScalingType_25 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeScalingType_tags_25, + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_25) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeScalingType_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_25) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeScalingType_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeScalingType_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeSubsetRestriction_value2enum_28[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeSubsetRestriction_enum2value_28[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeSubsetRestriction_specs_28 = { + asn_MAP_ASN_RRC_amplitudeSubsetRestriction_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeSubsetRestriction_enum2value_28, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28[] = { + (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_ASN_RRC_amplitudeSubsetRestriction_28 = { + "amplitudeSubsetRestriction", + "amplitudeSubsetRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28, + sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28) + /sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28) + /sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeSubsetRestriction_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeSubsetRestriction_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_type2_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2, supportedCSI_RS_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedCSI_RS_ResourceList_constr_22, memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_21 }, + 0, 0, /* No default value */ + "supportedCSI-RS-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_parameterLx_constr_24, memb_ASN_RRC_parameterLx_constraint_21 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeScalingType_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CodebookParameters__type2, amplitudeSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeSubsetRestriction_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeSubsetRestriction" + }, +}; +static const int asn_MAP_ASN_RRC_type2_oms_21[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type2_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_type2_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedCSI-RS-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* parameterLx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* amplitudeScalingType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* amplitudeSubsetRestriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_type2_specs_21 = { + sizeof(struct ASN_RRC_CodebookParameters__type2), + offsetof(struct ASN_RRC_CodebookParameters__type2, _asn_ctx), + asn_MAP_ASN_RRC_type2_tag2el_21, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_type2_oms_21, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_21 = { + "type2", + "type2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_type2_tags_21, + sizeof(asn_DEF_ASN_RRC_type2_tags_21) + /sizeof(asn_DEF_ASN_RRC_type2_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type2_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type2_tags_21) + /sizeof(asn_DEF_ASN_RRC_type2_tags_21[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_type2_21, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_type2_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SupportedCSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_31 = { + sizeof(struct ASN_RRC_CodebookParameters__type2_PortSelection__supportedCSI_RS_ResourceList), + offsetof(struct ASN_RRC_CodebookParameters__type2_PortSelection__supportedCSI_RS_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_31 = { + "supportedCSI-RS-ResourceList", + "supportedCSI-RS-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_tags_31[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_ResourceList_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedCSI_RS_ResourceList_31, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedCSI_RS_ResourceList_specs_31 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_34[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_34[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeScalingType_specs_34 = { + asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_34, /* 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_ASN_RRC_amplitudeScalingType_tags_34[] = { + (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_ASN_RRC_amplitudeScalingType_34 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeScalingType_tags_34, + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_34) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeScalingType_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_34) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeScalingType_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeScalingType_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_type2_PortSelection_30[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2_PortSelection, supportedCSI_RS_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedCSI_RS_ResourceList_31, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedCSI_RS_ResourceList_constr_31, memb_ASN_RRC_supportedCSI_RS_ResourceList_constraint_30 }, + 0, 0, /* No default value */ + "supportedCSI-RS-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2_PortSelection, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_parameterLx_constr_33, memb_ASN_RRC_parameterLx_constraint_30 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters__type2_PortSelection, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeScalingType_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type2_PortSelection_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_type2_PortSelection_tag2el_30[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedCSI-RS-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* parameterLx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* amplitudeScalingType */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_type2_PortSelection_specs_30 = { + sizeof(struct ASN_RRC_CodebookParameters__type2_PortSelection), + offsetof(struct ASN_RRC_CodebookParameters__type2_PortSelection, _asn_ctx), + asn_MAP_ASN_RRC_type2_PortSelection_tag2el_30, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_PortSelection_30 = { + "type2-PortSelection", + "type2-PortSelection", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_type2_PortSelection_tags_30, + sizeof(asn_DEF_ASN_RRC_type2_PortSelection_tags_30) + /sizeof(asn_DEF_ASN_RRC_type2_PortSelection_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type2_PortSelection_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type2_PortSelection_tags_30) + /sizeof(asn_DEF_ASN_RRC_type2_PortSelection_tags_30[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_type2_PortSelection_30, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_type2_PortSelection_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CodebookParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CodebookParameters, type1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_type1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CodebookParameters, type2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_type2_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CodebookParameters, type2_PortSelection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_type2_PortSelection_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2-PortSelection" + }, +}; +static const int asn_MAP_ASN_RRC_CodebookParameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CodebookParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CodebookParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* type2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* type2-PortSelection */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CodebookParameters_specs_1 = { + sizeof(struct ASN_RRC_CodebookParameters), + offsetof(struct ASN_RRC_CodebookParameters, _asn_ctx), + asn_MAP_ASN_RRC_CodebookParameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CodebookParameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CodebookParameters = { + "CodebookParameters", + "CodebookParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CodebookParameters_tags_1, + sizeof(asn_DEF_ASN_RRC_CodebookParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_CodebookParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CodebookParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CodebookParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_CodebookParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CodebookParameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CodebookParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CodebookParameters.h b/src/asn/rrc/ASN_RRC_CodebookParameters.h new file mode 100644 index 0000000..4610aac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CodebookParameters.h @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CodebookParameters_H_ +#define _ASN_RRC_CodebookParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CodebookParameters__type1__singlePanel__modes { + ASN_RRC_CodebookParameters__type1__singlePanel__modes_mode1 = 0, + ASN_RRC_CodebookParameters__type1__singlePanel__modes_mode1andMode2 = 1 +} e_ASN_RRC_CodebookParameters__type1__singlePanel__modes; +typedef enum ASN_RRC_CodebookParameters__type1__multiPanel__modes { + ASN_RRC_CodebookParameters__type1__multiPanel__modes_mode1 = 0, + ASN_RRC_CodebookParameters__type1__multiPanel__modes_mode2 = 1, + ASN_RRC_CodebookParameters__type1__multiPanel__modes_both = 2 +} e_ASN_RRC_CodebookParameters__type1__multiPanel__modes; +typedef enum ASN_RRC_CodebookParameters__type1__multiPanel__nrofPanels { + ASN_RRC_CodebookParameters__type1__multiPanel__nrofPanels_n2 = 0, + ASN_RRC_CodebookParameters__type1__multiPanel__nrofPanels_n4 = 1 +} e_ASN_RRC_CodebookParameters__type1__multiPanel__nrofPanels; +typedef enum ASN_RRC_CodebookParameters__type2__amplitudeScalingType { + ASN_RRC_CodebookParameters__type2__amplitudeScalingType_wideband = 0, + ASN_RRC_CodebookParameters__type2__amplitudeScalingType_widebandAndSubband = 1 +} e_ASN_RRC_CodebookParameters__type2__amplitudeScalingType; +typedef enum ASN_RRC_CodebookParameters__type2__amplitudeSubsetRestriction { + ASN_RRC_CodebookParameters__type2__amplitudeSubsetRestriction_supported = 0 +} e_ASN_RRC_CodebookParameters__type2__amplitudeSubsetRestriction; +typedef enum ASN_RRC_CodebookParameters__type2_PortSelection__amplitudeScalingType { + ASN_RRC_CodebookParameters__type2_PortSelection__amplitudeScalingType_wideband = 0, + ASN_RRC_CodebookParameters__type2_PortSelection__amplitudeScalingType_widebandAndSubband = 1 +} e_ASN_RRC_CodebookParameters__type2_PortSelection__amplitudeScalingType; + +/* Forward declarations */ +struct ASN_RRC_SupportedCSI_RS_Resource; + +/* ASN_RRC_CodebookParameters */ +typedef struct ASN_RRC_CodebookParameters { + struct ASN_RRC_CodebookParameters__type1 { + struct ASN_RRC_CodebookParameters__type1__singlePanel { + struct ASN_RRC_CodebookParameters__type1__singlePanel__supportedCSI_RS_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_SupportedCSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedCSI_RS_ResourceList; + long modes; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } singlePanel; + struct ASN_RRC_CodebookParameters__type1__multiPanel { + struct ASN_RRC_CodebookParameters__type1__multiPanel__supportedCSI_RS_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_SupportedCSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedCSI_RS_ResourceList; + long modes; + long nrofPanels; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *multiPanel; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } type1; + struct ASN_RRC_CodebookParameters__type2 { + struct ASN_RRC_CodebookParameters__type2__supportedCSI_RS_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_SupportedCSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedCSI_RS_ResourceList; + long parameterLx; + long amplitudeScalingType; + long *amplitudeSubsetRestriction; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *type2; + struct ASN_RRC_CodebookParameters__type2_PortSelection { + struct ASN_RRC_CodebookParameters__type2_PortSelection__supportedCSI_RS_ResourceList { + A_SEQUENCE_OF(struct ASN_RRC_SupportedCSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedCSI_RS_ResourceList; + long parameterLx; + long amplitudeScalingType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *type2_PortSelection; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CodebookParameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_modes_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_modes_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofPanels_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeScalingType_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeSubsetRestriction_28; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeScalingType_34; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CodebookParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CodebookParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CodebookParameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CodebookParameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.c b/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.c new file mode 100644 index 0000000..80e803f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.c @@ -0,0 +1,479 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ConfigRestrictInfoSCG.h" + +#include "ASN_RRC_BandCombinationInfoList.h" +static int +memb_ASN_RRC_selectedBandEntriesMN_constraint_13(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 int +memb_ASN_RRC_pdcch_BlindDetectionSCG_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 >= 1 && 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_ASN_RRC_maxNumberROHC_ContextSessionsSN_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 <= 16384)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxMeasFreqsSCG_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 <= 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 int +memb_ASN_RRC_maxMeasIdentitiesSCG_NR_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 <= 62)) { + /* Constraint 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_ASN_RRC_selectedBandEntriesMN_constr_14 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_ASN_RRC_selectedBandEntriesMN_constr_14 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_ASN_RRC_pdcch_BlindDetectionSCG_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberROHC_ContextSessionsSN_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 16384 } /* (0..16384) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxMeasFreqsSCG_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxMeasIdentitiesSCG_NR_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 62 } /* (1..62) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_powerCoordination_FR1_3[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxNR_FR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxNR-FR1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxUE_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxUE-FR1" + }, +}; +static const int asn_MAP_ASN_RRC_powerCoordination_FR1_oms_3[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_powerCoordination_FR1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* p-maxNR-FR1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* p-maxEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* p-maxUE-FR1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_powerCoordination_FR1_specs_3 = { + sizeof(struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1), + offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1, _asn_ctx), + asn_MAP_ASN_RRC_powerCoordination_FR1_tag2el_3, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_powerCoordination_FR1_oms_3, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerCoordination_FR1_3 = { + "powerCoordination-FR1", + "powerCoordination-FR1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3, + sizeof(asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3) + /sizeof(asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3) + /sizeof(asn_DEF_ASN_RRC_powerCoordination_FR1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_powerCoordination_FR1_3, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_powerCoordination_FR1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_servCellIndexRangeSCG_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__servCellIndexRangeSCG, lowBound), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lowBound" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__servCellIndexRangeSCG, upBound), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upBound" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_servCellIndexRangeSCG_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lowBound */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* upBound */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_servCellIndexRangeSCG_specs_7 = { + sizeof(struct ASN_RRC_ConfigRestrictInfoSCG__servCellIndexRangeSCG), + offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__servCellIndexRangeSCG, _asn_ctx), + asn_MAP_ASN_RRC_servCellIndexRangeSCG_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_servCellIndexRangeSCG_7 = { + "servCellIndexRangeSCG", + "servCellIndexRangeSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7, + sizeof(asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7) + /sizeof(asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7) + /sizeof(asn_DEF_ASN_RRC_servCellIndexRangeSCG_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_servCellIndexRangeSCG_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_servCellIndexRangeSCG_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_selectedBandEntriesMN_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_BandEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_selectedBandEntriesMN_specs_14 = { + sizeof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1__selectedBandEntriesMN), + offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1__selectedBandEntriesMN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_selectedBandEntriesMN_14 = { + "selectedBandEntriesMN", + "selectedBandEntriesMN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14, + sizeof(asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14) + /sizeof(asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14) + /sizeof(asn_DEF_ASN_RRC_selectedBandEntriesMN_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_selectedBandEntriesMN_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_selectedBandEntriesMN_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_selectedBandEntriesMN_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_13[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1, selectedBandEntriesMN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_selectedBandEntriesMN_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_selectedBandEntriesMN_constr_14, memb_ASN_RRC_selectedBandEntriesMN_constraint_13 }, + 0, 0, /* No default value */ + "selectedBandEntriesMN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1, pdcch_BlindDetectionSCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pdcch_BlindDetectionSCG_constr_16, memb_ASN_RRC_pdcch_BlindDetectionSCG_constraint_13 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionSCG" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1, maxNumberROHC_ContextSessionsSN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberROHC_ContextSessionsSN_constr_17, memb_ASN_RRC_maxNumberROHC_ContextSessionsSN_constraint_13 }, + 0, 0, /* No default value */ + "maxNumberROHC-ContextSessionsSN" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_13[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* selectedBandEntriesMN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdcch-BlindDetectionSCG */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* maxNumberROHC-ContextSessionsSN */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_13 = { + sizeof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1), + offsetof(struct ASN_RRC_ConfigRestrictInfoSCG__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_13, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_13, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_13, + sizeof(asn_DEF_ASN_RRC_ext1_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_13, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ConfigRestrictInfoSCG_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, allowedBC_ListMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedBC-ListMRDC" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, powerCoordination_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_powerCoordination_FR1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerCoordination-FR1" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, servCellIndexRangeSCG), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_servCellIndexRangeSCG_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndexRangeSCG" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, maxMeasFreqsSCG), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxMeasFreqsSCG_constr_10, memb_ASN_RRC_maxMeasFreqsSCG_constraint_1 }, + 0, 0, /* No default value */ + "maxMeasFreqsSCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, maxMeasIdentitiesSCG_NR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxMeasIdentitiesSCG_NR_constr_11, memb_ASN_RRC_maxMeasIdentitiesSCG_NR_constraint_1 }, + 0, 0, /* No default value */ + "maxMeasIdentitiesSCG-NR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_ConfigRestrictInfoSCG_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ConfigRestrictInfoSCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* allowedBC-ListMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* powerCoordination-FR1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* servCellIndexRangeSCG */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxMeasFreqsSCG */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxMeasIdentitiesSCG-NR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfigRestrictInfoSCG_specs_1 = { + sizeof(struct ASN_RRC_ConfigRestrictInfoSCG), + offsetof(struct ASN_RRC_ConfigRestrictInfoSCG, _asn_ctx), + asn_MAP_ASN_RRC_ConfigRestrictInfoSCG_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ConfigRestrictInfoSCG_oms_1, /* Optional members */ + 5, 1, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfigRestrictInfoSCG = { + "ConfigRestrictInfoSCG", + "ConfigRestrictInfoSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfigRestrictInfoSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ConfigRestrictInfoSCG_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_ConfigRestrictInfoSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.h b/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.h new file mode 100644 index 0000000..7af3088 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfigRestrictInfoSCG.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ConfigRestrictInfoSCG_H_ +#define _ASN_RRC_ConfigRestrictInfoSCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_P-Max.h" +#include +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_BandEntryIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombinationInfoList; + +/* ASN_RRC_ConfigRestrictInfoSCG */ +typedef struct ASN_RRC_ConfigRestrictInfoSCG { + struct ASN_RRC_BandCombinationInfoList *allowedBC_ListMRDC; /* OPTIONAL */ + struct ASN_RRC_ConfigRestrictInfoSCG__powerCoordination_FR1 { + ASN_RRC_P_Max_t *p_maxNR_FR1; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_maxEUTRA; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_maxUE_FR1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *powerCoordination_FR1; + struct ASN_RRC_ConfigRestrictInfoSCG__servCellIndexRangeSCG { + ASN_RRC_ServCellIndex_t lowBound; + ASN_RRC_ServCellIndex_t upBound; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *servCellIndexRangeSCG; + long *maxMeasFreqsSCG; /* OPTIONAL */ + long *maxMeasIdentitiesSCG_NR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ConfigRestrictInfoSCG__ext1 { + struct ASN_RRC_ConfigRestrictInfoSCG__ext1__selectedBandEntriesMN { + A_SEQUENCE_OF(ASN_RRC_BandEntryIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *selectedBandEntriesMN; + long *pdcch_BlindDetectionSCG; /* OPTIONAL */ + long *maxNumberROHC_ContextSessionsSN; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ConfigRestrictInfoSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfigRestrictInfoSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfigRestrictInfoSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ConfigRestrictInfoSCG_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ConfigRestrictInfoSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.c b/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.c new file mode 100644 index 0000000..f63e8d9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ConfigRestrictModReqSCG.h" + +#include "ASN_RRC_BandCombinationInfoSN.h" +static int +memb_ASN_RRC_requestedPDCCH_BlindDetectionSCG_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 >= 1 && 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_ASN_RRC_requestedPDCCH_BlindDetectionSCG_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfigRestrictModReqSCG__ext1, requestedPDCCH_BlindDetectionSCG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_requestedPDCCH_BlindDetectionSCG_constr_6, memb_ASN_RRC_requestedPDCCH_BlindDetectionSCG_constraint_5 }, + 0, 0, /* No default value */ + "requestedPDCCH-BlindDetectionSCG" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfigRestrictModReqSCG__ext1, requestedP_MaxEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedP-MaxEUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requestedPDCCH-BlindDetectionSCG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* requestedP-MaxEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_ConfigRestrictModReqSCG__ext1), + offsetof(struct ASN_RRC_ConfigRestrictModReqSCG__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ConfigRestrictModReqSCG_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfigRestrictModReqSCG, requestedBC_MRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationInfoSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedBC-MRDC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfigRestrictModReqSCG, requestedP_MaxFR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedP-MaxFR1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfigRestrictModReqSCG, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_ConfigRestrictModReqSCG_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ConfigRestrictModReqSCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requestedBC-MRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* requestedP-MaxFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfigRestrictModReqSCG_specs_1 = { + sizeof(struct ASN_RRC_ConfigRestrictModReqSCG), + offsetof(struct ASN_RRC_ConfigRestrictModReqSCG, _asn_ctx), + asn_MAP_ASN_RRC_ConfigRestrictModReqSCG_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ConfigRestrictModReqSCG_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfigRestrictModReqSCG = { + "ConfigRestrictModReqSCG", + "ConfigRestrictModReqSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfigRestrictModReqSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ConfigRestrictModReqSCG_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ConfigRestrictModReqSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.h b/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.h new file mode 100644 index 0000000..507da52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfigRestrictModReqSCG.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ConfigRestrictModReqSCG_H_ +#define _ASN_RRC_ConfigRestrictModReqSCG_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_P-Max.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BandCombinationInfoSN; + +/* ASN_RRC_ConfigRestrictModReqSCG */ +typedef struct ASN_RRC_ConfigRestrictModReqSCG { + struct ASN_RRC_BandCombinationInfoSN *requestedBC_MRDC; /* OPTIONAL */ + ASN_RRC_P_Max_t *requestedP_MaxFR1; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ConfigRestrictModReqSCG__ext1 { + long *requestedPDCCH_BlindDetectionSCG; /* OPTIONAL */ + ASN_RRC_P_Max_t *requestedP_MaxEUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ConfigRestrictModReqSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfigRestrictModReqSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfigRestrictModReqSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ConfigRestrictModReqSCG_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ConfigRestrictModReqSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.c b/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.c new file mode 100644 index 0000000..9edca28 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.c @@ -0,0 +1,1256 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ConfiguredGrantConfig.h" + +#include "ASN_RRC_SetupRelease.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_timeDomainOffset_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 5119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDomainAllocation_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_frequencyDomainAllocation_constraint_83(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_ASN_RRC_antennaPort_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_dmrs_SeqInitialization_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_precodingAndNumberOfLayers_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_srs_ResourceIndicator_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_mcsAndTBS_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_frequencyHoppingOffset_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 274)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_pathlossReferenceIndex_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_nrofHARQ_Processes_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_configuredGrantTimer_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 <= 64)) { + /* Constraint 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_ASN_RRC_frequencyHopping_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_type_ASN_RRC_mcs_Table_constr_6 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_type_ASN_RRC_mcs_TableTransformPrecoder_constr_9 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_type_ASN_RRC_resourceAllocation_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_rbg_Size_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_powerControlLoopToUse_constr_19 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_type_ASN_RRC_transformPrecoder_constr_23 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_type_ASN_RRC_repK_constr_27 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_type_ASN_RRC_repK_RV_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_periodicity_constr_36 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 44 } /* (0..44) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDomainOffset_constr_84 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 5119 } /* (0..5119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDomainAllocation_constr_85 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_ASN_RRC_frequencyDomainAllocation_constr_86 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_ASN_RRC_antennaPort_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dmrs_SeqInitialization_constr_88 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_ASN_RRC_precodingAndNumberOfLayers_constr_89 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_srs_ResourceIndicator_constr_90 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_ASN_RRC_mcsAndTBS_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_frequencyHoppingOffset_constr_92 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 274 } /* (1..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_pathlossReferenceIndex_constr_93 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_ASN_RRC_nrofHARQ_Processes_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_configuredGrantTimer_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_frequencyHopping_value2enum_2[] = { + { 0, 9, "intraSlot" }, + { 1, 9, "interSlot" } +}; +static const unsigned int asn_MAP_ASN_RRC_frequencyHopping_enum2value_2[] = { + 1, /* interSlot(1) */ + 0 /* intraSlot(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_frequencyHopping_specs_2 = { + asn_MAP_ASN_RRC_frequencyHopping_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_frequencyHopping_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyHopping_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_ASN_RRC_frequencyHopping_2 = { + "frequencyHopping", + "frequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_frequencyHopping_tags_2, + sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyHopping_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyHopping_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_frequencyHopping_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_Table_value2enum_6[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_Table_enum2value_6[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_Table_specs_6 = { + asn_MAP_ASN_RRC_mcs_Table_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_Table_enum2value_6, /* 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_ASN_RRC_mcs_Table_tags_6[] = { + (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_ASN_RRC_mcs_Table_6 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_Table_tags_6, + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_Table_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_Table_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_Table_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_9[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_9[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_9 = { + asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_9, /* 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_ASN_RRC_mcs_TableTransformPrecoder_tags_9[] = { + (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_ASN_RRC_mcs_TableTransformPrecoder_9 = { + "mcs-TableTransformPrecoder", + "mcs-TableTransformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9, + sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9) + /sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9) + /sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_TableTransformPrecoder_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceAllocation_value2enum_13[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceAllocation_enum2value_13[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceAllocation_specs_13 = { + asn_MAP_ASN_RRC_resourceAllocation_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceAllocation_enum2value_13, /* 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_ASN_RRC_resourceAllocation_tags_13[] = { + (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_ASN_RRC_resourceAllocation_13 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceAllocation_tags_13, + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceAllocation_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceAllocation_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceAllocation_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rbg_Size_value2enum_17[] = { + { 0, 7, "config2" } +}; +static const unsigned int asn_MAP_ASN_RRC_rbg_Size_enum2value_17[] = { + 0 /* config2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rbg_Size_specs_17 = { + asn_MAP_ASN_RRC_rbg_Size_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rbg_Size_enum2value_17, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rbg_Size_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_17 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rbg_Size_tags_17, + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rbg_Size_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rbg_Size_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rbg_Size_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerControlLoopToUse_value2enum_19[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerControlLoopToUse_enum2value_19[] = { + 0, /* n0(0) */ + 1 /* n1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerControlLoopToUse_specs_19 = { + asn_MAP_ASN_RRC_powerControlLoopToUse_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerControlLoopToUse_enum2value_19, /* 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_ASN_RRC_powerControlLoopToUse_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerControlLoopToUse_19 = { + "powerControlLoopToUse", + "powerControlLoopToUse", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19, + sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19) + /sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19) + /sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerControlLoopToUse_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerControlLoopToUse_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_transformPrecoder_value2enum_23[] = { + { 0, 7, "enabled" }, + { 1, 8, "disabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_transformPrecoder_enum2value_23[] = { + 1, /* disabled(1) */ + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_transformPrecoder_specs_23 = { + asn_MAP_ASN_RRC_transformPrecoder_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_transformPrecoder_enum2value_23, /* 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_ASN_RRC_transformPrecoder_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoder_23 = { + "transformPrecoder", + "transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_transformPrecoder_tags_23, + sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23) + /sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecoder_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23) + /sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_transformPrecoder_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_transformPrecoder_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repK_value2enum_27[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_repK_enum2value_27[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repK_specs_27 = { + asn_MAP_ASN_RRC_repK_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_repK_enum2value_27, /* 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_ASN_RRC_repK_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_27 = { + "repK", + "repK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_repK_tags_27, + sizeof(asn_DEF_ASN_RRC_repK_tags_27) + /sizeof(asn_DEF_ASN_RRC_repK_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_repK_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_repK_tags_27) + /sizeof(asn_DEF_ASN_RRC_repK_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_repK_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_repK_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repK_RV_value2enum_32[] = { + { 0, 7, "s1-0231" }, + { 1, 7, "s2-0303" }, + { 2, 7, "s3-0000" } +}; +static const unsigned int asn_MAP_ASN_RRC_repK_RV_enum2value_32[] = { + 0, /* s1-0231(0) */ + 1, /* s2-0303(1) */ + 2 /* s3-0000(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repK_RV_specs_32 = { + asn_MAP_ASN_RRC_repK_RV_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_repK_RV_enum2value_32, /* 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_ASN_RRC_repK_RV_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_RV_32 = { + "repK-RV", + "repK-RV", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_repK_RV_tags_32, + sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32) + /sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_repK_RV_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32) + /sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_repK_RV_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_repK_RV_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicity_value2enum_36[] = { + { 0, 4, "sym2" }, + { 1, 4, "sym7" }, + { 2, 7, "sym1x14" }, + { 3, 7, "sym2x14" }, + { 4, 7, "sym4x14" }, + { 5, 7, "sym5x14" }, + { 6, 7, "sym8x14" }, + { 7, 8, "sym10x14" }, + { 8, 8, "sym16x14" }, + { 9, 8, "sym20x14" }, + { 10, 8, "sym32x14" }, + { 11, 8, "sym40x14" }, + { 12, 8, "sym64x14" }, + { 13, 8, "sym80x14" }, + { 14, 9, "sym128x14" }, + { 15, 9, "sym160x14" }, + { 16, 9, "sym256x14" }, + { 17, 9, "sym320x14" }, + { 18, 9, "sym512x14" }, + { 19, 9, "sym640x14" }, + { 20, 10, "sym1024x14" }, + { 21, 10, "sym1280x14" }, + { 22, 10, "sym2560x14" }, + { 23, 10, "sym5120x14" }, + { 24, 4, "sym6" }, + { 25, 7, "sym1x12" }, + { 26, 7, "sym2x12" }, + { 27, 7, "sym4x12" }, + { 28, 7, "sym5x12" }, + { 29, 7, "sym8x12" }, + { 30, 8, "sym10x12" }, + { 31, 8, "sym16x12" }, + { 32, 8, "sym20x12" }, + { 33, 8, "sym32x12" }, + { 34, 8, "sym40x12" }, + { 35, 8, "sym64x12" }, + { 36, 8, "sym80x12" }, + { 37, 9, "sym128x12" }, + { 38, 9, "sym160x12" }, + { 39, 9, "sym256x12" }, + { 40, 9, "sym320x12" }, + { 41, 9, "sym512x12" }, + { 42, 9, "sym640x12" }, + { 43, 10, "sym1280x12" }, + { 44, 10, "sym2560x12" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicity_enum2value_36[] = { + 20, /* sym1024x14(20) */ + 30, /* sym10x12(30) */ + 7, /* sym10x14(7) */ + 43, /* sym1280x12(43) */ + 21, /* sym1280x14(21) */ + 37, /* sym128x12(37) */ + 14, /* sym128x14(14) */ + 38, /* sym160x12(38) */ + 15, /* sym160x14(15) */ + 31, /* sym16x12(31) */ + 8, /* sym16x14(8) */ + 25, /* sym1x12(25) */ + 2, /* sym1x14(2) */ + 0, /* sym2(0) */ + 32, /* sym20x12(32) */ + 9, /* sym20x14(9) */ + 44, /* sym2560x12(44) */ + 22, /* sym2560x14(22) */ + 39, /* sym256x12(39) */ + 16, /* sym256x14(16) */ + 26, /* sym2x12(26) */ + 3, /* sym2x14(3) */ + 40, /* sym320x12(40) */ + 17, /* sym320x14(17) */ + 33, /* sym32x12(33) */ + 10, /* sym32x14(10) */ + 34, /* sym40x12(34) */ + 11, /* sym40x14(11) */ + 27, /* sym4x12(27) */ + 4, /* sym4x14(4) */ + 23, /* sym5120x14(23) */ + 41, /* sym512x12(41) */ + 18, /* sym512x14(18) */ + 28, /* sym5x12(28) */ + 5, /* sym5x14(5) */ + 24, /* sym6(24) */ + 42, /* sym640x12(42) */ + 19, /* sym640x14(19) */ + 35, /* sym64x12(35) */ + 12, /* sym64x14(12) */ + 1, /* sym7(1) */ + 36, /* sym80x12(36) */ + 13, /* sym80x14(13) */ + 29, /* sym8x12(29) */ + 6 /* sym8x14(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicity_specs_36 = { + asn_MAP_ASN_RRC_periodicity_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicity_enum2value_36, /* N => "tag"; sorted by N */ + 45, /* 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_ASN_RRC_periodicity_tags_36[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicity_36 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicity_tags_36, + sizeof(asn_DEF_ASN_RRC_periodicity_tags_36) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicity_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicity_tags_36) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_36[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicity_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicity_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rrc_ConfiguredUplinkGrant_83[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDomainOffset_constr_84, memb_ASN_RRC_timeDomainOffset_constraint_83 }, + 0, 0, /* No default value */ + "timeDomainOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDomainAllocation_constr_85, memb_ASN_RRC_timeDomainAllocation_constraint_83 }, + 0, 0, /* No default value */ + "timeDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDomainAllocation_constr_86, memb_ASN_RRC_frequencyDomainAllocation_constraint_83 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, antennaPort), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_antennaPort_constr_87, memb_ASN_RRC_antennaPort_constraint_83 }, + 0, 0, /* No default value */ + "antennaPort" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, dmrs_SeqInitialization), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dmrs_SeqInitialization_constr_88, memb_ASN_RRC_dmrs_SeqInitialization_constraint_83 }, + 0, 0, /* No default value */ + "dmrs-SeqInitialization" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, precodingAndNumberOfLayers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_precodingAndNumberOfLayers_constr_89, memb_ASN_RRC_precodingAndNumberOfLayers_constraint_83 }, + 0, 0, /* No default value */ + "precodingAndNumberOfLayers" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, srs_ResourceIndicator), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceIndicator_constr_90, memb_ASN_RRC_srs_ResourceIndicator_constraint_83 }, + 0, 0, /* No default value */ + "srs-ResourceIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, mcsAndTBS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_mcsAndTBS_constr_91, memb_ASN_RRC_mcsAndTBS_constraint_83 }, + 0, 0, /* No default value */ + "mcsAndTBS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyHoppingOffset), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyHoppingOffset_constr_92, memb_ASN_RRC_frequencyHoppingOffset_constraint_83 }, + 0, 0, /* No default value */ + "frequencyHoppingOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, pathlossReferenceIndex), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pathlossReferenceIndex_constr_93, memb_ASN_RRC_pathlossReferenceIndex_constraint_83 }, + 0, 0, /* No default value */ + "pathlossReferenceIndex" + }, +}; +static const int asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_oms_83[] = { 4, 6, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_tag2el_83[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeDomainOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeDomainAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frequencyDomainAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* antennaPort */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dmrs-SeqInitialization */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* precodingAndNumberOfLayers */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* srs-ResourceIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* mcsAndTBS */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* frequencyHoppingOffset */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* pathlossReferenceIndex */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_rrc_ConfiguredUplinkGrant_specs_83 = { + sizeof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant), + offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, _asn_ctx), + asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_tag2el_83, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_oms_83, /* Optional members */ + 3, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_83 = { + "rrc-ConfiguredUplinkGrant", + "rrc-ConfiguredUplinkGrant", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83, + sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83) + /sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83) + /sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_rrc_ConfiguredUplinkGrant_83, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_rrc_ConfiguredUplinkGrant_specs_83 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ConfiguredGrantConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, frequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyHopping_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, cg_DMRS_Configuration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-DMRS-Configuration" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfiguredGrantConfig, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_Table_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfiguredGrantConfig, mcs_TableTransformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-TableTransformPrecoder" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, uci_OnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-OnPUSCH" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceAllocation_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rbg_Size_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, powerControlLoopToUse), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerControlLoopToUse_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerControlLoopToUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, p0_PUSCH_Alpha), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUSCH-Alpha" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_transformPrecoder_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoder" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, nrofHARQ_Processes), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofHARQ_Processes_constr_26, memb_ASN_RRC_nrofHARQ_Processes_constraint_1 }, + 0, 0, /* No default value */ + "nrofHARQ-Processes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, repK), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_repK_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repK" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, repK_RV), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_repK_RV_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repK-RV" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, periodicity), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicity_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfiguredGrantConfig, configuredGrantTimer), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_configuredGrantTimer_constr_82, memb_ASN_RRC_configuredGrantTimer_constraint_1 }, + 0, 0, /* No default value */ + "configuredGrantTimer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, rrc_ConfiguredUplinkGrant), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-ConfiguredUplinkGrant" + }, +}; +static const int asn_MAP_ASN_RRC_ConfiguredGrantConfig_oms_1[] = { 0, 2, 3, 4, 6, 9, 12, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ConfiguredGrantConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyHopping */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cg-DMRS-Configuration */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mcs-Table */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mcs-TableTransformPrecoder */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uci-OnPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* resourceAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rbg-Size */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* powerControlLoopToUse */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* p0-PUSCH-Alpha */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* transformPrecoder */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* nrofHARQ-Processes */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* repK */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* repK-RV */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* periodicity */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* configuredGrantTimer */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* rrc-ConfiguredUplinkGrant */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfiguredGrantConfig_specs_1 = { + sizeof(struct ASN_RRC_ConfiguredGrantConfig), + offsetof(struct ASN_RRC_ConfiguredGrantConfig, _asn_ctx), + asn_MAP_ASN_RRC_ConfiguredGrantConfig_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ConfiguredGrantConfig_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfiguredGrantConfig = { + "ConfiguredGrantConfig", + "ConfiguredGrantConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ConfiguredGrantConfig_1, + 16, /* Elements count */ + &asn_SPC_ASN_RRC_ConfiguredGrantConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.h b/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.h new file mode 100644 index 0000000..a7d0af0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConfiguredGrantConfig.h @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ConfiguredGrantConfig_H_ +#define _ASN_RRC_ConfiguredGrantConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_DMRS-UplinkConfig.h" +#include "ASN_RRC_P0-PUSCH-AlphaSetId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ConfiguredGrantConfig__frequencyHopping { + ASN_RRC_ConfiguredGrantConfig__frequencyHopping_intraSlot = 0, + ASN_RRC_ConfiguredGrantConfig__frequencyHopping_interSlot = 1 +} e_ASN_RRC_ConfiguredGrantConfig__frequencyHopping; +typedef enum ASN_RRC_ConfiguredGrantConfig__mcs_Table { + ASN_RRC_ConfiguredGrantConfig__mcs_Table_qam256 = 0, + ASN_RRC_ConfiguredGrantConfig__mcs_Table_qam64LowSE = 1 +} e_ASN_RRC_ConfiguredGrantConfig__mcs_Table; +typedef enum ASN_RRC_ConfiguredGrantConfig__mcs_TableTransformPrecoder { + ASN_RRC_ConfiguredGrantConfig__mcs_TableTransformPrecoder_qam256 = 0, + ASN_RRC_ConfiguredGrantConfig__mcs_TableTransformPrecoder_qam64LowSE = 1 +} e_ASN_RRC_ConfiguredGrantConfig__mcs_TableTransformPrecoder; +typedef enum ASN_RRC_ConfiguredGrantConfig__resourceAllocation { + ASN_RRC_ConfiguredGrantConfig__resourceAllocation_resourceAllocationType0 = 0, + ASN_RRC_ConfiguredGrantConfig__resourceAllocation_resourceAllocationType1 = 1, + ASN_RRC_ConfiguredGrantConfig__resourceAllocation_dynamicSwitch = 2 +} e_ASN_RRC_ConfiguredGrantConfig__resourceAllocation; +typedef enum ASN_RRC_ConfiguredGrantConfig__rbg_Size { + ASN_RRC_ConfiguredGrantConfig__rbg_Size_config2 = 0 +} e_ASN_RRC_ConfiguredGrantConfig__rbg_Size; +typedef enum ASN_RRC_ConfiguredGrantConfig__powerControlLoopToUse { + ASN_RRC_ConfiguredGrantConfig__powerControlLoopToUse_n0 = 0, + ASN_RRC_ConfiguredGrantConfig__powerControlLoopToUse_n1 = 1 +} e_ASN_RRC_ConfiguredGrantConfig__powerControlLoopToUse; +typedef enum ASN_RRC_ConfiguredGrantConfig__transformPrecoder { + ASN_RRC_ConfiguredGrantConfig__transformPrecoder_enabled = 0, + ASN_RRC_ConfiguredGrantConfig__transformPrecoder_disabled = 1 +} e_ASN_RRC_ConfiguredGrantConfig__transformPrecoder; +typedef enum ASN_RRC_ConfiguredGrantConfig__repK { + ASN_RRC_ConfiguredGrantConfig__repK_n1 = 0, + ASN_RRC_ConfiguredGrantConfig__repK_n2 = 1, + ASN_RRC_ConfiguredGrantConfig__repK_n4 = 2, + ASN_RRC_ConfiguredGrantConfig__repK_n8 = 3 +} e_ASN_RRC_ConfiguredGrantConfig__repK; +typedef enum ASN_RRC_ConfiguredGrantConfig__repK_RV { + ASN_RRC_ConfiguredGrantConfig__repK_RV_s1_0231 = 0, + ASN_RRC_ConfiguredGrantConfig__repK_RV_s2_0303 = 1, + ASN_RRC_ConfiguredGrantConfig__repK_RV_s3_0000 = 2 +} e_ASN_RRC_ConfiguredGrantConfig__repK_RV; +typedef enum ASN_RRC_ConfiguredGrantConfig__periodicity { + ASN_RRC_ConfiguredGrantConfig__periodicity_sym2 = 0, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym7 = 1, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym1x14 = 2, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym2x14 = 3, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym4x14 = 4, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym5x14 = 5, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym8x14 = 6, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym10x14 = 7, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym16x14 = 8, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym20x14 = 9, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym32x14 = 10, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym40x14 = 11, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym64x14 = 12, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym80x14 = 13, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym128x14 = 14, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym160x14 = 15, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym256x14 = 16, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym320x14 = 17, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym512x14 = 18, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym640x14 = 19, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym1024x14 = 20, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym1280x14 = 21, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym2560x14 = 22, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym5120x14 = 23, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym6 = 24, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym1x12 = 25, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym2x12 = 26, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym4x12 = 27, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym5x12 = 28, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym8x12 = 29, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym10x12 = 30, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym16x12 = 31, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym20x12 = 32, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym32x12 = 33, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym40x12 = 34, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym64x12 = 35, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym80x12 = 36, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym128x12 = 37, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym160x12 = 38, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym256x12 = 39, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym320x12 = 40, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym512x12 = 41, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym640x12 = 42, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym1280x12 = 43, + ASN_RRC_ConfiguredGrantConfig__periodicity_sym2560x12 = 44 +} e_ASN_RRC_ConfiguredGrantConfig__periodicity; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH; + +/* ASN_RRC_ConfiguredGrantConfig */ +typedef struct ASN_RRC_ConfiguredGrantConfig { + long *frequencyHopping; /* OPTIONAL */ + ASN_RRC_DMRS_UplinkConfig_t cg_DMRS_Configuration; + long *mcs_Table; /* OPTIONAL */ + long *mcs_TableTransformPrecoder; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH *uci_OnPUSCH; /* OPTIONAL */ + long resourceAllocation; + long *rbg_Size; /* OPTIONAL */ + long powerControlLoopToUse; + ASN_RRC_P0_PUSCH_AlphaSetId_t p0_PUSCH_Alpha; + long *transformPrecoder; /* OPTIONAL */ + long nrofHARQ_Processes; + long repK; + long *repK_RV; /* OPTIONAL */ + long periodicity; + long *configuredGrantTimer; /* OPTIONAL */ + struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant { + long timeDomainOffset; + long timeDomainAllocation; + BIT_STRING_t frequencyDomainAllocation; + long antennaPort; + long *dmrs_SeqInitialization; /* OPTIONAL */ + long precodingAndNumberOfLayers; + long *srs_ResourceIndicator; /* OPTIONAL */ + long mcsAndTBS; + long *frequencyHoppingOffset; /* OPTIONAL */ + long pathlossReferenceIndex; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rrc_ConfiguredUplinkGrant; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ConfiguredGrantConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyHopping_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerControlLoopToUse_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoder_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_RV_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicity_36; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfiguredGrantConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfiguredGrantConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ConfiguredGrantConfig_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ConfiguredGrantConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ConnEstFailureControl.c b/src/asn/rrc/ASN_RRC_ConnEstFailureControl.c new file mode 100644 index 0000000..6033dde --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConnEstFailureControl.c @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ConnEstFailureControl.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 int +memb_ASN_RRC_connEstFailOffset_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_type_ASN_RRC_connEstFailCount_constr_2 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_type_ASN_RRC_connEstFailOffsetValidity_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_connEstFailOffset_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_connEstFailCount_value2enum_2[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_connEstFailCount_enum2value_2[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_connEstFailCount_specs_2 = { + asn_MAP_ASN_RRC_connEstFailCount_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_connEstFailCount_enum2value_2, /* 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_ASN_RRC_connEstFailCount_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_ASN_RRC_connEstFailCount_2 = { + "connEstFailCount", + "connEstFailCount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_connEstFailCount_tags_2, + sizeof(asn_DEF_ASN_RRC_connEstFailCount_tags_2) + /sizeof(asn_DEF_ASN_RRC_connEstFailCount_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_connEstFailCount_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_connEstFailCount_tags_2) + /sizeof(asn_DEF_ASN_RRC_connEstFailCount_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_connEstFailCount_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_connEstFailCount_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_connEstFailOffsetValidity_value2enum_7[] = { + { 0, 3, "s30" }, + { 1, 3, "s60" }, + { 2, 4, "s120" }, + { 3, 4, "s240" }, + { 4, 4, "s300" }, + { 5, 4, "s420" }, + { 6, 4, "s600" }, + { 7, 4, "s900" } +}; +static const unsigned int asn_MAP_ASN_RRC_connEstFailOffsetValidity_enum2value_7[] = { + 2, /* s120(2) */ + 3, /* s240(3) */ + 0, /* s30(0) */ + 4, /* s300(4) */ + 5, /* s420(5) */ + 1, /* s60(1) */ + 6, /* s600(6) */ + 7 /* s900(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_connEstFailOffsetValidity_specs_7 = { + asn_MAP_ASN_RRC_connEstFailOffsetValidity_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_connEstFailOffsetValidity_enum2value_7, /* 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_ASN_RRC_connEstFailOffsetValidity_tags_7[] = { + (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_ASN_RRC_connEstFailOffsetValidity_7 = { + "connEstFailOffsetValidity", + "connEstFailOffsetValidity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7, + sizeof(asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7) + /sizeof(asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7) + /sizeof(asn_DEF_ASN_RRC_connEstFailOffsetValidity_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_connEstFailOffsetValidity_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_connEstFailOffsetValidity_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ConnEstFailureControl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConnEstFailureControl, connEstFailCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_connEstFailCount_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailCount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConnEstFailureControl, connEstFailOffsetValidity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_connEstFailOffsetValidity_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailOffsetValidity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ConnEstFailureControl, connEstFailOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_connEstFailOffset_constr_16, memb_ASN_RRC_connEstFailOffset_constraint_1 }, + 0, 0, /* No default value */ + "connEstFailOffset" + }, +}; +static const int asn_MAP_ASN_RRC_ConnEstFailureControl_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ConnEstFailureControl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* connEstFailCount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* connEstFailOffsetValidity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* connEstFailOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConnEstFailureControl_specs_1 = { + sizeof(struct ASN_RRC_ConnEstFailureControl), + offsetof(struct ASN_RRC_ConnEstFailureControl, _asn_ctx), + asn_MAP_ASN_RRC_ConnEstFailureControl_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ConnEstFailureControl_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConnEstFailureControl = { + "ConnEstFailureControl", + "ConnEstFailureControl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1, + sizeof(asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_ConnEstFailureControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ConnEstFailureControl_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ConnEstFailureControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ConnEstFailureControl.h b/src/asn/rrc/ASN_RRC_ConnEstFailureControl.h new file mode 100644 index 0000000..ad58b9a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ConnEstFailureControl.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ConnEstFailureControl_H_ +#define _ASN_RRC_ConnEstFailureControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ConnEstFailureControl__connEstFailCount { + ASN_RRC_ConnEstFailureControl__connEstFailCount_n1 = 0, + ASN_RRC_ConnEstFailureControl__connEstFailCount_n2 = 1, + ASN_RRC_ConnEstFailureControl__connEstFailCount_n3 = 2, + ASN_RRC_ConnEstFailureControl__connEstFailCount_n4 = 3 +} e_ASN_RRC_ConnEstFailureControl__connEstFailCount; +typedef enum ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity { + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s30 = 0, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s60 = 1, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s120 = 2, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s240 = 3, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s300 = 4, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s420 = 5, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s600 = 6, + ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity_s900 = 7 +} e_ASN_RRC_ConnEstFailureControl__connEstFailOffsetValidity; + +/* ASN_RRC_ConnEstFailureControl */ +typedef struct ASN_RRC_ConnEstFailureControl { + long connEstFailCount; + long connEstFailOffsetValidity; + long *connEstFailOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ConnEstFailureControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_connEstFailCount_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_connEstFailOffsetValidity_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConnEstFailureControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConnEstFailureControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ConnEstFailureControl_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ConnEstFailureControl_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSet.c b/src/asn/rrc/ASN_RRC_ControlResourceSet.c new file mode 100644 index 0000000..a1ae8d2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSet.c @@ -0,0 +1,709 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ControlResourceSet.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 int +memb_ASN_RRC_shiftIndex_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 274)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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_ASN_RRC_frequencyDomainResources_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 == 45)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_duration_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 int +memb_ASN_RRC_tci_StatesPDCCH_ToAddList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_tci_StatesPDCCH_ToReleaseList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_pdcch_DMRS_ScramblingID_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_type_ASN_RRC_reg_BundleSize_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_type_ASN_RRC_interleaverSize_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_ASN_RRC_shiftIndex_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 274 } /* (0..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_cce_REG_MappingType_constr_5 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_type_ASN_RRC_precoderGranularity_constr_17 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_type_ASN_RRC_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_tci_PresentInDCI_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_frequencyDomainResources_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 45, 45 } /* (SIZE(45..45)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_duration_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (1..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_pdcch_DMRS_ScramblingID_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reg_BundleSize_value2enum_7[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n6" } +}; +static const unsigned int asn_MAP_ASN_RRC_reg_BundleSize_enum2value_7[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n6(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reg_BundleSize_specs_7 = { + asn_MAP_ASN_RRC_reg_BundleSize_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reg_BundleSize_enum2value_7, /* 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_ASN_RRC_reg_BundleSize_tags_7[] = { + (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_ASN_RRC_reg_BundleSize_7 = { + "reg-BundleSize", + "reg-BundleSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reg_BundleSize_tags_7, + sizeof(asn_DEF_ASN_RRC_reg_BundleSize_tags_7) + /sizeof(asn_DEF_ASN_RRC_reg_BundleSize_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reg_BundleSize_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reg_BundleSize_tags_7) + /sizeof(asn_DEF_ASN_RRC_reg_BundleSize_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reg_BundleSize_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reg_BundleSize_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_interleaverSize_value2enum_11[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n6" } +}; +static const unsigned int asn_MAP_ASN_RRC_interleaverSize_enum2value_11[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n6(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_interleaverSize_specs_11 = { + asn_MAP_ASN_RRC_interleaverSize_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_interleaverSize_enum2value_11, /* 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_ASN_RRC_interleaverSize_tags_11[] = { + (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_ASN_RRC_interleaverSize_11 = { + "interleaverSize", + "interleaverSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_interleaverSize_tags_11, + sizeof(asn_DEF_ASN_RRC_interleaverSize_tags_11) + /sizeof(asn_DEF_ASN_RRC_interleaverSize_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interleaverSize_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interleaverSize_tags_11) + /sizeof(asn_DEF_ASN_RRC_interleaverSize_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_interleaverSize_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_interleaverSize_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_interleaved_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved, reg_BundleSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reg_BundleSize_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reg-BundleSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved, interleaverSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_interleaverSize_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleaverSize" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved, shiftIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_shiftIndex_constr_15, memb_ASN_RRC_shiftIndex_constraint_6 }, + 0, 0, /* No default value */ + "shiftIndex" + }, +}; +static const int asn_MAP_ASN_RRC_interleaved_oms_6[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_interleaved_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_interleaved_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reg-BundleSize */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* interleaverSize */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* shiftIndex */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_interleaved_specs_6 = { + sizeof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved), + offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved, _asn_ctx), + asn_MAP_ASN_RRC_interleaved_tag2el_6, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_interleaved_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interleaved_6 = { + "interleaved", + "interleaved", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_interleaved_tags_6, + sizeof(asn_DEF_ASN_RRC_interleaved_tags_6) + /sizeof(asn_DEF_ASN_RRC_interleaved_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interleaved_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interleaved_tags_6) + /sizeof(asn_DEF_ASN_RRC_interleaved_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_interleaved_6, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_interleaved_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cce_REG_MappingType_5[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType, choice.interleaved), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_interleaved_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleaved" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType, choice.nonInterleaved), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonInterleaved" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cce_REG_MappingType_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interleaved */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonInterleaved */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_cce_REG_MappingType_specs_5 = { + sizeof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType), + offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType, _asn_ctx), + offsetof(struct ASN_RRC_ControlResourceSet__cce_REG_MappingType, present), + sizeof(((struct ASN_RRC_ControlResourceSet__cce_REG_MappingType *)0)->present), + asn_MAP_ASN_RRC_cce_REG_MappingType_tag2el_5, + 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_ASN_RRC_cce_REG_MappingType_5 = { + "cce-REG-MappingType", + "cce-REG-MappingType", + &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_ASN_RRC_cce_REG_MappingType_constr_5, CHOICE_constraint }, + asn_MBR_ASN_RRC_cce_REG_MappingType_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_cce_REG_MappingType_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_precoderGranularity_value2enum_17[] = { + { 0, 16, "sameAsREG-bundle" }, + { 1, 16, "allContiguousRBs" } +}; +static const unsigned int asn_MAP_ASN_RRC_precoderGranularity_enum2value_17[] = { + 1, /* allContiguousRBs(1) */ + 0 /* sameAsREG-bundle(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_precoderGranularity_specs_17 = { + asn_MAP_ASN_RRC_precoderGranularity_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_precoderGranularity_enum2value_17, /* 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_ASN_RRC_precoderGranularity_tags_17[] = { + (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_ASN_RRC_precoderGranularity_17 = { + "precoderGranularity", + "precoderGranularity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_precoderGranularity_tags_17, + sizeof(asn_DEF_ASN_RRC_precoderGranularity_tags_17) + /sizeof(asn_DEF_ASN_RRC_precoderGranularity_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_precoderGranularity_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_precoderGranularity_tags_17) + /sizeof(asn_DEF_ASN_RRC_precoderGranularity_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_precoderGranularity_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_precoderGranularity_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_tci_StatesPDCCH_ToAddList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tci_StatesPDCCH_ToAddList_specs_20 = { + sizeof(struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToAddList), + offsetof(struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToAddList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_20 = { + "tci-StatesPDCCH-ToAddList", + "tci-StatesPDCCH-ToAddList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20, + sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20) + /sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20) + /sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tci_StatesPDCCH_ToAddList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tci_StatesPDCCH_ToAddList_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tci_StatesPDCCH_ToAddList_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_tci_StatesPDCCH_ToReleaseList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tci_StatesPDCCH_ToReleaseList_specs_22 = { + sizeof(struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToReleaseList), + offsetof(struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_22 = { + "tci-StatesPDCCH-ToReleaseList", + "tci-StatesPDCCH-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22, + sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22) + /sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22) + /sizeof(asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tci_StatesPDCCH_ToReleaseList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tci_StatesPDCCH_ToReleaseList_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tci_StatesPDCCH_ToReleaseList_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tci_PresentInDCI_value2enum_24[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_tci_PresentInDCI_enum2value_24[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tci_PresentInDCI_specs_24 = { + asn_MAP_ASN_RRC_tci_PresentInDCI_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tci_PresentInDCI_enum2value_24, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_PresentInDCI_24 = { + "tci-PresentInDCI", + "tci-PresentInDCI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24, + sizeof(asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24) + /sizeof(asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24) + /sizeof(asn_DEF_ASN_RRC_tci_PresentInDCI_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tci_PresentInDCI_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tci_PresentInDCI_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ControlResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet, controlResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet, frequencyDomainResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDomainResources_constr_3, memb_ASN_RRC_frequencyDomainResources_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDomainResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet, duration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_duration_constr_4, memb_ASN_RRC_duration_constraint_1 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet, cce_REG_MappingType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cce_REG_MappingType_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cce-REG-MappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ControlResourceSet, precoderGranularity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_precoderGranularity_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "precoderGranularity" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ControlResourceSet, tci_StatesPDCCH_ToAddList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_tci_StatesPDCCH_ToAddList_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_tci_StatesPDCCH_ToAddList_constr_20, memb_ASN_RRC_tci_StatesPDCCH_ToAddList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesPDCCH-ToAddList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ControlResourceSet, tci_StatesPDCCH_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_tci_StatesPDCCH_ToReleaseList_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_tci_StatesPDCCH_ToReleaseList_constr_22, memb_ASN_RRC_tci_StatesPDCCH_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesPDCCH-ToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ControlResourceSet, tci_PresentInDCI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tci_PresentInDCI_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-PresentInDCI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ControlResourceSet, pdcch_DMRS_ScramblingID), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pdcch_DMRS_ScramblingID_constr_26, memb_ASN_RRC_pdcch_DMRS_ScramblingID_constraint_1 }, + 0, 0, /* No default value */ + "pdcch-DMRS-ScramblingID" + }, +}; +static const int asn_MAP_ASN_RRC_ControlResourceSet_oms_1[] = { 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ControlResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ControlResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyDomainResources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cce-REG-MappingType */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* precoderGranularity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tci-StatesPDCCH-ToAddList */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* tci-StatesPDCCH-ToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* tci-PresentInDCI */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* pdcch-DMRS-ScramblingID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ControlResourceSet_specs_1 = { + sizeof(struct ASN_RRC_ControlResourceSet), + offsetof(struct ASN_RRC_ControlResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_ControlResourceSet_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ControlResourceSet_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSet = { + "ControlResourceSet", + "ControlResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ControlResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_ControlResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ControlResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ControlResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ControlResourceSet_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_ControlResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSet.h b/src/asn/rrc/ASN_RRC_ControlResourceSet.h new file mode 100644 index 0000000..734aa7a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSet.h @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ControlResourceSet_H_ +#define _ASN_RRC_ControlResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ControlResourceSetId.h" +#include +#include +#include +#include +#include +#include +#include "ASN_RRC_TCI-StateId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR { + ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR_NOTHING, /* No components present */ + ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR_interleaved, + ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved +} ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR; +typedef enum ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize { + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n2 = 0, + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n3 = 1, + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n6 = 2 +} e_ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize; +typedef enum ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize { + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n2 = 0, + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n3 = 1, + ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n6 = 2 +} e_ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize; +typedef enum ASN_RRC_ControlResourceSet__precoderGranularity { + ASN_RRC_ControlResourceSet__precoderGranularity_sameAsREG_bundle = 0, + ASN_RRC_ControlResourceSet__precoderGranularity_allContiguousRBs = 1 +} e_ASN_RRC_ControlResourceSet__precoderGranularity; +typedef enum ASN_RRC_ControlResourceSet__tci_PresentInDCI { + ASN_RRC_ControlResourceSet__tci_PresentInDCI_enabled = 0 +} e_ASN_RRC_ControlResourceSet__tci_PresentInDCI; + +/* ASN_RRC_ControlResourceSet */ +typedef struct ASN_RRC_ControlResourceSet { + ASN_RRC_ControlResourceSetId_t controlResourceSetId; + BIT_STRING_t frequencyDomainResources; + long duration; + struct ASN_RRC_ControlResourceSet__cce_REG_MappingType { + ASN_RRC_ControlResourceSet__cce_REG_MappingType_PR present; + union ASN_RRC_ControlResourceSet__ASN_RRC_cce_REG_MappingType_u { + struct ASN_RRC_ControlResourceSet__cce_REG_MappingType__interleaved { + long reg_BundleSize; + long interleaverSize; + long *shiftIndex; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *interleaved; + NULL_t nonInterleaved; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cce_REG_MappingType; + long precoderGranularity; + struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToAddList { + A_SEQUENCE_OF(ASN_RRC_TCI_StateId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesPDCCH_ToAddList; + struct ASN_RRC_ControlResourceSet__tci_StatesPDCCH_ToReleaseList { + A_SEQUENCE_OF(ASN_RRC_TCI_StateId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesPDCCH_ToReleaseList; + long *tci_PresentInDCI; /* OPTIONAL */ + long *pdcch_DMRS_ScramblingID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ControlResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reg_BundleSize_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interleaverSize_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_precoderGranularity_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_PresentInDCI_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ControlResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ControlResourceSet_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ControlResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSetId.c b/src/asn/rrc/ASN_RRC_ControlResourceSetId.c new file mode 100644 index 0000000..e154eba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ControlResourceSetId.h" + +int +ASN_RRC_ControlResourceSetId_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 <= 11)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ControlResourceSetId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 11 } /* (0..11) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ControlResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSetId = { + "ControlResourceSetId", + "ControlResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ControlResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_ControlResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ControlResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ControlResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ControlResourceSetId_constr_1, ASN_RRC_ControlResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSetId.h b/src/asn/rrc/ASN_RRC_ControlResourceSetId.h new file mode 100644 index 0000000..0bafdd1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ControlResourceSetId_H_ +#define _ASN_RRC_ControlResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ControlResourceSetId */ +typedef long ASN_RRC_ControlResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ControlResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSetId; +asn_struct_free_f ASN_RRC_ControlResourceSetId_free; +asn_struct_print_f ASN_RRC_ControlResourceSetId_print; +asn_constr_check_f ASN_RRC_ControlResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_ControlResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_ControlResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_ControlResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_ControlResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_ControlResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_ControlResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_ControlResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_ControlResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ControlResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSetZero.c b/src/asn/rrc/ASN_RRC_ControlResourceSetZero.c new file mode 100644 index 0000000..57721a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSetZero.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ControlResourceSetZero.h" + +int +ASN_RRC_ControlResourceSetZero_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_ASN_RRC_ControlResourceSetZero_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_ASN_RRC_ControlResourceSetZero_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSetZero = { + "ControlResourceSetZero", + "ControlResourceSetZero", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1, + sizeof(asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1) + /sizeof(asn_DEF_ASN_RRC_ControlResourceSetZero_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ControlResourceSetZero_constr_1, ASN_RRC_ControlResourceSetZero_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ControlResourceSetZero.h b/src/asn/rrc/ASN_RRC_ControlResourceSetZero.h new file mode 100644 index 0000000..cef0419 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ControlResourceSetZero.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ControlResourceSetZero_H_ +#define _ASN_RRC_ControlResourceSetZero_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ControlResourceSetZero */ +typedef long ASN_RRC_ControlResourceSetZero_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ControlResourceSetZero_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ControlResourceSetZero; +asn_struct_free_f ASN_RRC_ControlResourceSetZero_free; +asn_struct_print_f ASN_RRC_ControlResourceSetZero_print; +asn_constr_check_f ASN_RRC_ControlResourceSetZero_constraint; +ber_type_decoder_f ASN_RRC_ControlResourceSetZero_decode_ber; +der_type_encoder_f ASN_RRC_ControlResourceSetZero_encode_der; +xer_type_decoder_f ASN_RRC_ControlResourceSetZero_decode_xer; +xer_type_encoder_f ASN_RRC_ControlResourceSetZero_encode_xer; +per_type_decoder_f ASN_RRC_ControlResourceSetZero_decode_uper; +per_type_encoder_f ASN_RRC_ControlResourceSetZero_encode_uper; +per_type_decoder_f ASN_RRC_ControlResourceSetZero_decode_aper; +per_type_encoder_f ASN_RRC_ControlResourceSetZero_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ControlResourceSetZero_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CounterCheck-IEs.c b/src/asn/rrc/ASN_RRC_CounterCheck-IEs.c new file mode 100644 index 0000000..6e5e1a9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheck-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CounterCheck-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_CounterCheck_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_CounterCheck_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheck_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheck_IEs, drb_CountMSB_InfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_CountMSB_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-CountMSB-InfoList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CounterCheck_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CounterCheck_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CounterCheck_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CounterCheck_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drb-CountMSB-InfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheck_IEs_specs_1 = { + sizeof(struct ASN_RRC_CounterCheck_IEs), + offsetof(struct ASN_RRC_CounterCheck_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CounterCheck_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CounterCheck_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheck_IEs = { + "CounterCheck-IEs", + "CounterCheck-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheck_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CounterCheck_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CounterCheck_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CounterCheck-IEs.h b/src/asn/rrc/ASN_RRC_CounterCheck-IEs.h new file mode 100644 index 0000000..8d630aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheck-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CounterCheck_IEs_H_ +#define _ASN_RRC_CounterCheck_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-CountMSB-InfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CounterCheck-IEs */ +typedef struct ASN_RRC_CounterCheck_IEs { + ASN_RRC_DRB_CountMSB_InfoList_t drb_CountMSB_InfoList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_CounterCheck_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CounterCheck_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheck_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheck_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheck_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CounterCheck_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CounterCheck.c b/src/asn/rrc/ASN_RRC_CounterCheck.c new file mode 100644 index 0000000..0736563 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheck.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CounterCheck.h" + +#include "ASN_RRC_CounterCheck-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_CounterCheck__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_CounterCheck__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CounterCheck__criticalExtensions, choice.counterCheck), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CounterCheck_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheck" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CounterCheck__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* counterCheck */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_CounterCheck__criticalExtensions), + offsetof(struct ASN_RRC_CounterCheck__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_CounterCheck__criticalExtensions, present), + sizeof(((struct ASN_RRC_CounterCheck__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheck, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheck, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CounterCheck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CounterCheck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheck_specs_1 = { + sizeof(struct ASN_RRC_CounterCheck), + offsetof(struct ASN_RRC_CounterCheck, _asn_ctx), + asn_MAP_ASN_RRC_CounterCheck_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheck = { + "CounterCheck", + "CounterCheck", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CounterCheck_tags_1, + sizeof(asn_DEF_ASN_RRC_CounterCheck_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheck_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CounterCheck_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CounterCheck_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CounterCheck_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CounterCheck_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CounterCheck.h b/src/asn/rrc/ASN_RRC_CounterCheck.h new file mode 100644 index 0000000..1e80223 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheck.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CounterCheck_H_ +#define _ASN_RRC_CounterCheck_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CounterCheck__criticalExtensions_PR { + ASN_RRC_CounterCheck__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_CounterCheck__criticalExtensions_PR_counterCheck, + ASN_RRC_CounterCheck__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_CounterCheck__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_CounterCheck_IEs; + +/* ASN_RRC_CounterCheck */ +typedef struct ASN_RRC_CounterCheck { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_CounterCheck__criticalExtensions { + ASN_RRC_CounterCheck__criticalExtensions_PR present; + union ASN_RRC_CounterCheck__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_CounterCheck_IEs *counterCheck; + struct ASN_RRC_CounterCheck__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CounterCheck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheck; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheck_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheck_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CounterCheck_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.c b/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.c new file mode 100644 index 0000000..a765386 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CounterCheckResponse-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_CounterCheckResponse_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_CounterCheckResponse_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheckResponse_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheckResponse_IEs, drb_CountInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_CountInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-CountInfoList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_CounterCheckResponse_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_CounterCheckResponse_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_CounterCheckResponse_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CounterCheckResponse_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drb-CountInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheckResponse_IEs_specs_1 = { + sizeof(struct ASN_RRC_CounterCheckResponse_IEs), + offsetof(struct ASN_RRC_CounterCheckResponse_IEs, _asn_ctx), + asn_MAP_ASN_RRC_CounterCheckResponse_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_CounterCheckResponse_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheckResponse_IEs = { + "CounterCheckResponse-IEs", + "CounterCheckResponse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CounterCheckResponse_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_CounterCheckResponse_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.h b/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.h new file mode 100644 index 0000000..783b01b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheckResponse-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CounterCheckResponse_IEs_H_ +#define _ASN_RRC_CounterCheckResponse_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-CountInfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_CounterCheckResponse-IEs */ +typedef struct ASN_RRC_CounterCheckResponse_IEs { + ASN_RRC_DRB_CountInfoList_t drb_CountInfoList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_CounterCheckResponse_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CounterCheckResponse_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheckResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheckResponse_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheckResponse_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CounterCheckResponse_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CounterCheckResponse.c b/src/asn/rrc/ASN_RRC_CounterCheckResponse.c new file mode 100644 index 0000000..935a7d7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheckResponse.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CounterCheckResponse.h" + +#include "ASN_RRC_CounterCheckResponse-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_CounterCheckResponse__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_CounterCheckResponse__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CounterCheckResponse__criticalExtensions, choice.counterCheckResponse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CounterCheckResponse_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheckResponse" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CounterCheckResponse__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* counterCheckResponse */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_CounterCheckResponse__criticalExtensions), + offsetof(struct ASN_RRC_CounterCheckResponse__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_CounterCheckResponse__criticalExtensions, present), + sizeof(((struct ASN_RRC_CounterCheckResponse__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheckResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheckResponse, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CounterCheckResponse, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CounterCheckResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CounterCheckResponse_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheckResponse_specs_1 = { + sizeof(struct ASN_RRC_CounterCheckResponse), + offsetof(struct ASN_RRC_CounterCheckResponse, _asn_ctx), + asn_MAP_ASN_RRC_CounterCheckResponse_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheckResponse = { + "CounterCheckResponse", + "CounterCheckResponse", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CounterCheckResponse_tags_1, + sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CounterCheckResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_tags_1) + /sizeof(asn_DEF_ASN_RRC_CounterCheckResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CounterCheckResponse_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_CounterCheckResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CounterCheckResponse.h b/src/asn/rrc/ASN_RRC_CounterCheckResponse.h new file mode 100644 index 0000000..dbbb0c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CounterCheckResponse.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CounterCheckResponse_H_ +#define _ASN_RRC_CounterCheckResponse_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CounterCheckResponse__criticalExtensions_PR { + ASN_RRC_CounterCheckResponse__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_CounterCheckResponse__criticalExtensions_PR_counterCheckResponse, + ASN_RRC_CounterCheckResponse__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_CounterCheckResponse__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_CounterCheckResponse_IEs; + +/* ASN_RRC_CounterCheckResponse */ +typedef struct ASN_RRC_CounterCheckResponse { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_CounterCheckResponse__criticalExtensions { + ASN_RRC_CounterCheckResponse__criticalExtensions_PR present; + union ASN_RRC_CounterCheckResponse__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_CounterCheckResponse_IEs *counterCheckResponse; + struct ASN_RRC_CounterCheckResponse__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CounterCheckResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CounterCheckResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CounterCheckResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CounterCheckResponse_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CounterCheckResponse_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.c b/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.c new file mode 100644 index 0000000..33079b8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.c @@ -0,0 +1,230 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_CrossCarrierSchedulingConfig.h" + +static int +memb_ASN_RRC_cif_InSchedulingCell_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 >= 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_ASN_RRC_cif_InSchedulingCell_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (1..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_schedulingCellInfo_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_TYPE_member_t asn_MBR_ASN_RRC_own_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__own, cif_Presence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cif-Presence" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_own_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_own_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cif-Presence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_own_specs_3 = { + sizeof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__own), + offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__own, _asn_ctx), + asn_MAP_ASN_RRC_own_tag2el_3, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_own_3 = { + "own", + "own", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_own_tags_3, + sizeof(asn_DEF_ASN_RRC_own_tags_3) + /sizeof(asn_DEF_ASN_RRC_own_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_own_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_own_tags_3) + /sizeof(asn_DEF_ASN_RRC_own_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_own_3, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_own_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_other_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__other, schedulingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__other, cif_InSchedulingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cif_InSchedulingCell_constr_7, memb_ASN_RRC_cif_InSchedulingCell_constraint_5 }, + 0, 0, /* No default value */ + "cif-InSchedulingCell" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_other_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_other_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cif-InSchedulingCell */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_other_specs_5 = { + sizeof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__other), + offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__other, _asn_ctx), + asn_MAP_ASN_RRC_other_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_other_5 = { + "other", + "other", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_other_tags_5, + sizeof(asn_DEF_ASN_RRC_other_tags_5) + /sizeof(asn_DEF_ASN_RRC_other_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_other_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_other_tags_5) + /sizeof(asn_DEF_ASN_RRC_other_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_other_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_other_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_schedulingCellInfo_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo, choice.own), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_own_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "own" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo, choice.other), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_other_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "other" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_schedulingCellInfo_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* own */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* other */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_schedulingCellInfo_specs_2 = { + sizeof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo), + offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo, _asn_ctx), + offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo, present), + sizeof(((struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo *)0)->present), + asn_MAP_ASN_RRC_schedulingCellInfo_tag2el_2, + 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_ASN_RRC_schedulingCellInfo_2 = { + "schedulingCellInfo", + "schedulingCellInfo", + &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_ASN_RRC_schedulingCellInfo_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_schedulingCellInfo_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_schedulingCellInfo_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_CrossCarrierSchedulingConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig, schedulingCellInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_schedulingCellInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingCellInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CrossCarrierSchedulingConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* schedulingCellInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CrossCarrierSchedulingConfig_specs_1 = { + sizeof(struct ASN_RRC_CrossCarrierSchedulingConfig), + offsetof(struct ASN_RRC_CrossCarrierSchedulingConfig, _asn_ctx), + asn_MAP_ASN_RRC_CrossCarrierSchedulingConfig_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_ASN_RRC_CrossCarrierSchedulingConfig = { + "CrossCarrierSchedulingConfig", + "CrossCarrierSchedulingConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_CrossCarrierSchedulingConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_CrossCarrierSchedulingConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.h b/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.h new file mode 100644 index 0000000..aba86a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_CrossCarrierSchedulingConfig.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_CrossCarrierSchedulingConfig_H_ +#define _ASN_RRC_CrossCarrierSchedulingConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR { + ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR_NOTHING, /* No components present */ + ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR_own, + ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR_other +} ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR; + +/* ASN_RRC_CrossCarrierSchedulingConfig */ +typedef struct ASN_RRC_CrossCarrierSchedulingConfig { + struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo { + ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo_PR present; + union ASN_RRC_CrossCarrierSchedulingConfig__ASN_RRC_schedulingCellInfo_u { + struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__own { + BOOLEAN_t cif_Presence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *own; + struct ASN_RRC_CrossCarrierSchedulingConfig__schedulingCellInfo__other { + ASN_RRC_ServCellIndex_t schedulingCellId; + long cif_InSchedulingCell; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *other; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } schedulingCellInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_CrossCarrierSchedulingConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CrossCarrierSchedulingConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_CrossCarrierSchedulingConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_CrossCarrierSchedulingConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-AM-RLC.c b/src/asn/rrc/ASN_RRC_DL-AM-RLC.c new file mode 100644 index 0000000..07e0b15 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-AM-RLC.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-AM-RLC.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_DL_AM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DL_AM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SN_FieldLengthAM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_AM_RLC, t_Reassembly), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_Reassembly, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reassembly" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_AM_RLC, t_StatusProhibit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_StatusProhibit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-StatusProhibit" + }, +}; +static const int asn_MAP_ASN_RRC_DL_AM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DL_AM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_AM_RLC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sn-FieldLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* t-Reassembly */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* t-StatusProhibit */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_AM_RLC_specs_1 = { + sizeof(struct ASN_RRC_DL_AM_RLC), + offsetof(struct ASN_RRC_DL_AM_RLC, _asn_ctx), + asn_MAP_ASN_RRC_DL_AM_RLC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DL_AM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_AM_RLC = { + "DL-AM-RLC", + "DL-AM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DL_AM_RLC_tags_1, + sizeof(asn_DEF_ASN_RRC_DL_AM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_AM_RLC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DL_AM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DL_AM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_AM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DL_AM_RLC_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_DL_AM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-AM-RLC.h b/src/asn/rrc/ASN_RRC_DL-AM-RLC.h new file mode 100644 index 0000000..d1cffed --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-AM-RLC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_AM_RLC_H_ +#define _ASN_RRC_DL_AM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SN-FieldLengthAM.h" +#include "ASN_RRC_T-Reassembly.h" +#include "ASN_RRC_T-StatusProhibit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DL-AM-RLC */ +typedef struct ASN_RRC_DL_AM_RLC { + ASN_RRC_SN_FieldLengthAM_t *sn_FieldLength; /* OPTIONAL */ + ASN_RRC_T_Reassembly_t t_Reassembly; + ASN_RRC_T_StatusProhibit_t t_StatusProhibit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_AM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_AM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_AM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DL_AM_RLC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_AM_RLC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-CCCH-Message.c b/src/asn/rrc/ASN_RRC_DL-CCCH-Message.c new file mode 100644 index 0000000..f769dab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-CCCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-CCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_DL_CCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_CCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DL_CCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_CCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_CCCH_Message_specs_1 = { + sizeof(struct ASN_RRC_DL_CCCH_Message), + offsetof(struct ASN_RRC_DL_CCCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_DL_CCCH_Message_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_ASN_RRC_DL_CCCH_Message = { + "DL-CCCH-Message", + "DL-CCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_CCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DL_CCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_DL_CCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-CCCH-Message.h b/src/asn/rrc/ASN_RRC_DL-CCCH-Message.h new file mode 100644 index 0000000..acbd90c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-CCCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_CCCH_Message_H_ +#define _ASN_RRC_DL_CCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DL-CCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DL-CCCH-Message */ +typedef struct ASN_RRC_DL_CCCH_Message { + ASN_RRC_DL_CCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_CCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_CCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_CCCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.c b/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.c new file mode 100644 index 0000000..7b46ef7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.c @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-CCCH-MessageType.h" + +#include "ASN_RRC_RRCReject.h" +#include "ASN_RRC_RRCSetup.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_DL_CCCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, choice.rrcReject), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReject" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, choice.rrcSetup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetup" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReject */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rrcSetup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_DL_CCCH_MessageType__c1), + offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_DL_CCCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_DL_CCCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_7 = { + sizeof(struct ASN_RRC_DL_CCCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_DL_CCCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_7, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DL_CCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_CCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_CCCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DL_CCCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_DL_CCCH_MessageType), + offsetof(struct ASN_RRC_DL_CCCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_DL_CCCH_MessageType, present), + sizeof(((struct ASN_RRC_DL_CCCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_DL_CCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_CCCH_MessageType = { + "DL-CCCH-MessageType", + "DL-CCCH-MessageType", + &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_ASN_RRC_DL_CCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_DL_CCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DL_CCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.h b/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.h new file mode 100644 index 0000000..8d7def2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-CCCH-MessageType.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_CCCH_MessageType_H_ +#define _ASN_RRC_DL_CCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DL_CCCH_MessageType_PR { + ASN_RRC_DL_CCCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_DL_CCCH_MessageType_PR_c1, + ASN_RRC_DL_CCCH_MessageType_PR_messageClassExtension +} ASN_RRC_DL_CCCH_MessageType_PR; +typedef enum ASN_RRC_DL_CCCH_MessageType__c1_PR { + ASN_RRC_DL_CCCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_DL_CCCH_MessageType__c1_PR_rrcReject, + ASN_RRC_DL_CCCH_MessageType__c1_PR_rrcSetup, + ASN_RRC_DL_CCCH_MessageType__c1_PR_spare2, + ASN_RRC_DL_CCCH_MessageType__c1_PR_spare1 +} ASN_RRC_DL_CCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReject; +struct ASN_RRC_RRCSetup; + +/* ASN_RRC_DL-CCCH-MessageType */ +typedef struct ASN_RRC_DL_CCCH_MessageType { + ASN_RRC_DL_CCCH_MessageType_PR present; + union ASN_RRC_DL_CCCH_MessageType_u { + struct ASN_RRC_DL_CCCH_MessageType__c1 { + ASN_RRC_DL_CCCH_MessageType__c1_PR present; + union ASN_RRC_DL_CCCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_RRCReject *rrcReject; + struct ASN_RRC_RRCSetup *rrcSetup; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_DL_CCCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_CCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_CCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DL_CCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DL_CCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DL_CCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_CCCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-DCCH-Message.c b/src/asn/rrc/ASN_RRC_DL-DCCH-Message.c new file mode 100644 index 0000000..335ca85 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-DCCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-DCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_DL_DCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DL_DCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_DCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_DCCH_Message_specs_1 = { + sizeof(struct ASN_RRC_DL_DCCH_Message), + offsetof(struct ASN_RRC_DL_DCCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_DL_DCCH_Message_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_ASN_RRC_DL_DCCH_Message = { + "DL-DCCH-Message", + "DL-DCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_DCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DL_DCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_DL_DCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-DCCH-Message.h b/src/asn/rrc/ASN_RRC_DL-DCCH-Message.h new file mode 100644 index 0000000..77dc955 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-DCCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_DCCH_Message_H_ +#define _ASN_RRC_DL_DCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DL-DCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DL-DCCH-Message */ +typedef struct ASN_RRC_DL_DCCH_Message { + ASN_RRC_DL_DCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_DCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_DCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_DCCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.c b/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.c new file mode 100644 index 0000000..9ca9b39 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.c @@ -0,0 +1,293 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-DCCH-MessageType.h" + +#include "ASN_RRC_RRCReconfiguration.h" +#include "ASN_RRC_RRCResume.h" +#include "ASN_RRC_RRCRelease.h" +#include "ASN_RRC_RRCReestablishment.h" +#include "ASN_RRC_SecurityModeCommand.h" +#include "ASN_RRC_DLInformationTransfer.h" +#include "ASN_RRC_UECapabilityEnquiry.h" +#include "ASN_RRC_CounterCheck.h" +#include "ASN_RRC_MobilityFromNRCommand.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_DL_DCCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.rrcResume), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResume" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.rrcRelease), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCRelease, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcRelease" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.rrcReestablishment), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishment" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.securityModeCommand), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeCommand" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.dlInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DLInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dlInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.ueCapabilityEnquiry), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UECapabilityEnquiry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityEnquiry" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.counterCheck), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CounterCheck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheck" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.mobilityFromNRCommand), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MobilityFromNRCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityFromNRCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare7), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare7" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare6), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare6" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare5), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare4), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReconfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rrcResume */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rrcRelease */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rrcReestablishment */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* securityModeCommand */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dlInformationTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ueCapabilityEnquiry */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* counterCheck */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* mobilityFromNRCommand */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* spare7 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* spare6 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* spare5 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* spare4 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_DL_DCCH_MessageType__c1), + offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_DL_DCCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_DL_DCCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 16, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_19 = { + sizeof(struct ASN_RRC_DL_DCCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_DL_DCCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_19 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_19, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DL_DCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DL_DCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_DCCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DL_DCCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_DL_DCCH_MessageType), + offsetof(struct ASN_RRC_DL_DCCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_DL_DCCH_MessageType, present), + sizeof(((struct ASN_RRC_DL_DCCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_DL_DCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_DCCH_MessageType = { + "DL-DCCH-MessageType", + "DL-DCCH-MessageType", + &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_ASN_RRC_DL_DCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_DL_DCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DL_DCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.h b/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.h new file mode 100644 index 0000000..8a8a2ca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-DCCH-MessageType.h @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_DCCH_MessageType_H_ +#define _ASN_RRC_DL_DCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DL_DCCH_MessageType_PR { + ASN_RRC_DL_DCCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_DL_DCCH_MessageType_PR_c1, + ASN_RRC_DL_DCCH_MessageType_PR_messageClassExtension +} ASN_RRC_DL_DCCH_MessageType_PR; +typedef enum ASN_RRC_DL_DCCH_MessageType__c1_PR { + ASN_RRC_DL_DCCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_DL_DCCH_MessageType__c1_PR_rrcReconfiguration, + ASN_RRC_DL_DCCH_MessageType__c1_PR_rrcResume, + ASN_RRC_DL_DCCH_MessageType__c1_PR_rrcRelease, + ASN_RRC_DL_DCCH_MessageType__c1_PR_rrcReestablishment, + ASN_RRC_DL_DCCH_MessageType__c1_PR_securityModeCommand, + ASN_RRC_DL_DCCH_MessageType__c1_PR_dlInformationTransfer, + ASN_RRC_DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry, + ASN_RRC_DL_DCCH_MessageType__c1_PR_counterCheck, + ASN_RRC_DL_DCCH_MessageType__c1_PR_mobilityFromNRCommand, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare7, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare6, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare5, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare4, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare3, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare2, + ASN_RRC_DL_DCCH_MessageType__c1_PR_spare1 +} ASN_RRC_DL_DCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReconfiguration; +struct ASN_RRC_RRCResume; +struct ASN_RRC_RRCRelease; +struct ASN_RRC_RRCReestablishment; +struct ASN_RRC_SecurityModeCommand; +struct ASN_RRC_DLInformationTransfer; +struct ASN_RRC_UECapabilityEnquiry; +struct ASN_RRC_CounterCheck; +struct ASN_RRC_MobilityFromNRCommand; + +/* ASN_RRC_DL-DCCH-MessageType */ +typedef struct ASN_RRC_DL_DCCH_MessageType { + ASN_RRC_DL_DCCH_MessageType_PR present; + union ASN_RRC_DL_DCCH_MessageType_u { + struct ASN_RRC_DL_DCCH_MessageType__c1 { + ASN_RRC_DL_DCCH_MessageType__c1_PR present; + union ASN_RRC_DL_DCCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_RRCReconfiguration *rrcReconfiguration; + struct ASN_RRC_RRCResume *rrcResume; + struct ASN_RRC_RRCRelease *rrcRelease; + struct ASN_RRC_RRCReestablishment *rrcReestablishment; + struct ASN_RRC_SecurityModeCommand *securityModeCommand; + struct ASN_RRC_DLInformationTransfer *dlInformationTransfer; + struct ASN_RRC_UECapabilityEnquiry *ueCapabilityEnquiry; + struct ASN_RRC_CounterCheck *counterCheck; + struct ASN_RRC_MobilityFromNRCommand *mobilityFromNRCommand; + NULL_t spare7; + NULL_t spare6; + NULL_t spare5; + NULL_t spare4; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_DL_DCCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_DCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_DCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DL_DCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DL_DCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DL_DCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_DCCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DL-UM-RLC.c b/src/asn/rrc/ASN_RRC_DL-UM-RLC.c new file mode 100644 index 0000000..d53dda1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-UM-RLC.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DL-UM-RLC.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_DL_UM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DL_UM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SN_FieldLengthUM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DL_UM_RLC, t_Reassembly), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_Reassembly, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reassembly" + }, +}; +static const int asn_MAP_ASN_RRC_DL_UM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DL_UM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DL_UM_RLC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sn-FieldLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* t-Reassembly */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_UM_RLC_specs_1 = { + sizeof(struct ASN_RRC_DL_UM_RLC), + offsetof(struct ASN_RRC_DL_UM_RLC, _asn_ctx), + asn_MAP_ASN_RRC_DL_UM_RLC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DL_UM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_UM_RLC = { + "DL-UM-RLC", + "DL-UM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DL_UM_RLC_tags_1, + sizeof(asn_DEF_ASN_RRC_DL_UM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_UM_RLC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DL_UM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DL_UM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DL_UM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DL_UM_RLC_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DL_UM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DL-UM-RLC.h b/src/asn/rrc/ASN_RRC_DL-UM-RLC.h new file mode 100644 index 0000000..b5fa9c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DL-UM-RLC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DL_UM_RLC_H_ +#define _ASN_RRC_DL_UM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SN-FieldLengthUM.h" +#include "ASN_RRC_T-Reassembly.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DL-UM-RLC */ +typedef struct ASN_RRC_DL_UM_RLC { + ASN_RRC_SN_FieldLengthUM_t *sn_FieldLength; /* OPTIONAL */ + ASN_RRC_T_Reassembly_t t_Reassembly; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DL_UM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DL_UM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DL_UM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DL_UM_RLC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DL_UM_RLC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.c b/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.c new file mode 100644 index 0000000..4d1cacb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DLInformationTransfer-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_DLInformationTransfer_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_DLInformationTransfer_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DLInformationTransfer_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_DLInformationTransfer_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DLInformationTransfer_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DLInformationTransfer_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_DLInformationTransfer_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DLInformationTransfer_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dedicatedNAS-Message */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DLInformationTransfer_IEs_specs_1 = { + sizeof(struct ASN_RRC_DLInformationTransfer_IEs), + offsetof(struct ASN_RRC_DLInformationTransfer_IEs, _asn_ctx), + asn_MAP_ASN_RRC_DLInformationTransfer_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DLInformationTransfer_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DLInformationTransfer_IEs = { + "DLInformationTransfer-IEs", + "DLInformationTransfer-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DLInformationTransfer_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_DLInformationTransfer_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.h b/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.h new file mode 100644 index 0000000..ed4866a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DLInformationTransfer-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DLInformationTransfer_IEs_H_ +#define _ASN_RRC_DLInformationTransfer_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DedicatedNAS-Message.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DLInformationTransfer-IEs */ +typedef struct ASN_RRC_DLInformationTransfer_IEs { + ASN_RRC_DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_DLInformationTransfer_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DLInformationTransfer_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DLInformationTransfer_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DLInformationTransfer_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DLInformationTransfer_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DLInformationTransfer_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DLInformationTransfer.c b/src/asn/rrc/ASN_RRC_DLInformationTransfer.c new file mode 100644 index 0000000..a5d9917 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DLInformationTransfer.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DLInformationTransfer.h" + +#include "ASN_RRC_DLInformationTransfer-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_DLInformationTransfer__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_DLInformationTransfer__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DLInformationTransfer__criticalExtensions, choice.dlInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DLInformationTransfer_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dlInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DLInformationTransfer__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dlInformationTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_DLInformationTransfer__criticalExtensions), + offsetof(struct ASN_RRC_DLInformationTransfer__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_DLInformationTransfer__criticalExtensions, present), + sizeof(((struct ASN_RRC_DLInformationTransfer__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DLInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DLInformationTransfer, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DLInformationTransfer, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DLInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DLInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DLInformationTransfer_specs_1 = { + sizeof(struct ASN_RRC_DLInformationTransfer), + offsetof(struct ASN_RRC_DLInformationTransfer, _asn_ctx), + asn_MAP_ASN_RRC_DLInformationTransfer_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DLInformationTransfer = { + "DLInformationTransfer", + "DLInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DLInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DLInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_RRC_DLInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DLInformationTransfer_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DLInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DLInformationTransfer.h b/src/asn/rrc/ASN_RRC_DLInformationTransfer.h new file mode 100644 index 0000000..1747af1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DLInformationTransfer.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DLInformationTransfer_H_ +#define _ASN_RRC_DLInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DLInformationTransfer__criticalExtensions_PR { + ASN_RRC_DLInformationTransfer__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_DLInformationTransfer__criticalExtensions_PR_dlInformationTransfer, + ASN_RRC_DLInformationTransfer__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_DLInformationTransfer__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_DLInformationTransfer_IEs; + +/* ASN_RRC_DLInformationTransfer */ +typedef struct ASN_RRC_DLInformationTransfer { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_DLInformationTransfer__criticalExtensions { + ASN_RRC_DLInformationTransfer__criticalExtensions_PR present; + union ASN_RRC_DLInformationTransfer__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_DLInformationTransfer_IEs *dlInformationTransfer; + struct ASN_RRC_DLInformationTransfer__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DLInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DLInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DLInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DLInformationTransfer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DLInformationTransfer_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.c b/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.c new file mode 100644 index 0000000..77bc4d0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.c @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DMRS-DownlinkConfig.h" + +#include "ASN_RRC_SetupRelease.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 int +memb_ASN_RRC_scramblingID0_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_ASN_RRC_scramblingID1_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_type_ASN_RRC_dmrs_Type_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_maxLength_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_scramblingID0_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_ASN_RRC_scramblingID1_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_Type_value2enum_2[] = { + { 0, 5, "type2" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_Type_enum2value_2[] = { + 0 /* type2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_Type_specs_2 = { + asn_MAP_ASN_RRC_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_Type_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dmrs_Type_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_ASN_RRC_dmrs_Type_2 = { + "dmrs-Type", + "dmrs-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_Type_tags_2, + sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_Type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_AdditionalPosition_value2enum_4[] = { + { 0, 4, "pos0" }, + { 1, 4, "pos1" }, + { 2, 4, "pos3" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_AdditionalPosition_enum2value_4[] = { + 0, /* pos0(0) */ + 1, /* pos1(1) */ + 2 /* pos3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_AdditionalPosition_specs_4 = { + asn_MAP_ASN_RRC_dmrs_AdditionalPosition_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_AdditionalPosition_enum2value_4, /* 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_ASN_RRC_dmrs_AdditionalPosition_tags_4[] = { + (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_ASN_RRC_dmrs_AdditionalPosition_4 = { + "dmrs-AdditionalPosition", + "dmrs-AdditionalPosition", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4, + sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_AdditionalPosition_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxLength_value2enum_8[] = { + { 0, 4, "len2" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxLength_enum2value_8[] = { + 0 /* len2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxLength_specs_8 = { + asn_MAP_ASN_RRC_maxLength_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxLength_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxLength_tags_8[] = { + (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_ASN_RRC_maxLength_8 = { + "maxLength", + "maxLength", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxLength_tags_8, + sizeof(asn_DEF_ASN_RRC_maxLength_tags_8) + /sizeof(asn_DEF_ASN_RRC_maxLength_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxLength_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxLength_tags_8) + /sizeof(asn_DEF_ASN_RRC_maxLength_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxLength_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxLength_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DMRS_DownlinkConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, dmrs_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-Type" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, dmrs_AdditionalPosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_AdditionalPosition_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-AdditionalPosition" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, maxLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxLength_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLength" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, scramblingID0), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_scramblingID0_constr_10, memb_ASN_RRC_scramblingID0_constraint_1 }, + 0, 0, /* No default value */ + "scramblingID0" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, scramblingID1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_scramblingID1_constr_11, memb_ASN_RRC_scramblingID1_constraint_1 }, + 0, 0, /* No default value */ + "scramblingID1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DMRS_DownlinkConfig, phaseTrackingRS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PTRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseTrackingRS" + }, +}; +static const int asn_MAP_ASN_RRC_DMRS_DownlinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DMRS_DownlinkConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dmrs-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dmrs-AdditionalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxLength */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* scramblingID0 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scramblingID1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* phaseTrackingRS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DMRS_DownlinkConfig_specs_1 = { + sizeof(struct ASN_RRC_DMRS_DownlinkConfig), + offsetof(struct ASN_RRC_DMRS_DownlinkConfig, _asn_ctx), + asn_MAP_ASN_RRC_DMRS_DownlinkConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DMRS_DownlinkConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DMRS_DownlinkConfig = { + "DMRS-DownlinkConfig", + "DMRS-DownlinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_DMRS_DownlinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DMRS_DownlinkConfig_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_DMRS_DownlinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.h b/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.h new file mode 100644 index 0000000..d9d2e57 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DMRS-DownlinkConfig.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DMRS_DownlinkConfig_H_ +#define _ASN_RRC_DMRS_DownlinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DMRS_DownlinkConfig__dmrs_Type { + ASN_RRC_DMRS_DownlinkConfig__dmrs_Type_type2 = 0 +} e_ASN_RRC_DMRS_DownlinkConfig__dmrs_Type; +typedef enum ASN_RRC_DMRS_DownlinkConfig__dmrs_AdditionalPosition { + ASN_RRC_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos0 = 0, + ASN_RRC_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1 = 1, + ASN_RRC_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos3 = 2 +} e_ASN_RRC_DMRS_DownlinkConfig__dmrs_AdditionalPosition; +typedef enum ASN_RRC_DMRS_DownlinkConfig__maxLength { + ASN_RRC_DMRS_DownlinkConfig__maxLength_len2 = 0 +} e_ASN_RRC_DMRS_DownlinkConfig__maxLength; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig; + +/* ASN_RRC_DMRS-DownlinkConfig */ +typedef struct ASN_RRC_DMRS_DownlinkConfig { + long *dmrs_Type; /* OPTIONAL */ + long *dmrs_AdditionalPosition; /* OPTIONAL */ + long *maxLength; /* OPTIONAL */ + long *scramblingID0; /* OPTIONAL */ + long *scramblingID1; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig *phaseTrackingRS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DMRS_DownlinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_Type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_AdditionalPosition_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxLength_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DMRS_DownlinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DMRS_DownlinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DMRS_DownlinkConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DMRS_DownlinkConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.c b/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.c new file mode 100644 index 0000000..2f395df --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.c @@ -0,0 +1,537 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DMRS-UplinkConfig.h" + +#include "ASN_RRC_SetupRelease.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 int +memb_ASN_RRC_scramblingID0_constraint_11(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scramblingID1_constraint_11(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_nPUSCH_Identity_constraint_15(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_dmrs_Type_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_maxLength_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_scramblingID0_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scramblingID1_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sequenceGroupHopping_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sequenceHopping_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_nPUSCH_Identity_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1007 } /* (0..1007) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_Type_value2enum_2[] = { + { 0, 5, "type2" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_Type_enum2value_2[] = { + 0 /* type2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_Type_specs_2 = { + asn_MAP_ASN_RRC_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_Type_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dmrs_Type_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_ASN_RRC_dmrs_Type_2 = { + "dmrs-Type", + "dmrs-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_Type_tags_2, + sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_dmrs_Type_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_Type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_AdditionalPosition_value2enum_4[] = { + { 0, 4, "pos0" }, + { 1, 4, "pos1" }, + { 2, 4, "pos3" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_AdditionalPosition_enum2value_4[] = { + 0, /* pos0(0) */ + 1, /* pos1(1) */ + 2 /* pos3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_AdditionalPosition_specs_4 = { + asn_MAP_ASN_RRC_dmrs_AdditionalPosition_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_AdditionalPosition_enum2value_4, /* 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_ASN_RRC_dmrs_AdditionalPosition_tags_4[] = { + (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_ASN_RRC_dmrs_AdditionalPosition_4 = { + "dmrs-AdditionalPosition", + "dmrs-AdditionalPosition", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4, + sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_ASN_RRC_dmrs_AdditionalPosition_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_AdditionalPosition_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxLength_value2enum_9[] = { + { 0, 4, "len2" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxLength_enum2value_9[] = { + 0 /* len2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxLength_specs_9 = { + asn_MAP_ASN_RRC_maxLength_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxLength_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxLength_tags_9[] = { + (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_ASN_RRC_maxLength_9 = { + "maxLength", + "maxLength", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxLength_tags_9, + sizeof(asn_DEF_ASN_RRC_maxLength_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxLength_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxLength_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxLength_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxLength_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxLength_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxLength_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_transformPrecodingDisabled_11[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_scramblingID0_constr_12, memb_ASN_RRC_scramblingID0_constraint_11 }, + 0, 0, /* No default value */ + "scramblingID0" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_scramblingID1_constr_13, memb_ASN_RRC_scramblingID1_constraint_11 }, + 0, 0, /* No default value */ + "scramblingID1" + }, +}; +static const int asn_MAP_ASN_RRC_transformPrecodingDisabled_oms_11[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_transformPrecodingDisabled_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scramblingID0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scramblingID1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_transformPrecodingDisabled_specs_11 = { + sizeof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingDisabled), + offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingDisabled, _asn_ctx), + asn_MAP_ASN_RRC_transformPrecodingDisabled_tag2el_11, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_transformPrecodingDisabled_oms_11, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecodingDisabled_11 = { + "transformPrecodingDisabled", + "transformPrecodingDisabled", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11, + sizeof(asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11) + /sizeof(asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11) + /sizeof(asn_DEF_ASN_RRC_transformPrecodingDisabled_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_transformPrecodingDisabled_11, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_transformPrecodingDisabled_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sequenceGroupHopping_value2enum_17[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_sequenceGroupHopping_enum2value_17[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sequenceGroupHopping_specs_17 = { + asn_MAP_ASN_RRC_sequenceGroupHopping_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sequenceGroupHopping_enum2value_17, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17[] = { + (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_ASN_RRC_sequenceGroupHopping_17 = { + "sequenceGroupHopping", + "sequenceGroupHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17, + sizeof(asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17) + /sizeof(asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17) + /sizeof(asn_DEF_ASN_RRC_sequenceGroupHopping_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sequenceGroupHopping_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sequenceGroupHopping_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sequenceHopping_value2enum_19[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_sequenceHopping_enum2value_19[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sequenceHopping_specs_19 = { + asn_MAP_ASN_RRC_sequenceHopping_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sequenceHopping_enum2value_19, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sequenceHopping_tags_19[] = { + (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_ASN_RRC_sequenceHopping_19 = { + "sequenceHopping", + "sequenceHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sequenceHopping_tags_19, + sizeof(asn_DEF_ASN_RRC_sequenceHopping_tags_19) + /sizeof(asn_DEF_ASN_RRC_sequenceHopping_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sequenceHopping_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sequenceHopping_tags_19) + /sizeof(asn_DEF_ASN_RRC_sequenceHopping_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sequenceHopping_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sequenceHopping_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_transformPrecodingEnabled_15[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled, nPUSCH_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nPUSCH_Identity_constr_16, memb_ASN_RRC_nPUSCH_Identity_constraint_15 }, + 0, 0, /* No default value */ + "nPUSCH-Identity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled, sequenceGroupHopping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sequenceGroupHopping_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceGroupHopping" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled, sequenceHopping), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sequenceHopping_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceHopping" + }, +}; +static const int asn_MAP_ASN_RRC_transformPrecodingEnabled_oms_15[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_transformPrecodingEnabled_tag2el_15[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nPUSCH-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sequenceGroupHopping */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sequenceHopping */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_transformPrecodingEnabled_specs_15 = { + sizeof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled), + offsetof(struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled, _asn_ctx), + asn_MAP_ASN_RRC_transformPrecodingEnabled_tag2el_15, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_transformPrecodingEnabled_oms_15, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecodingEnabled_15 = { + "transformPrecodingEnabled", + "transformPrecodingEnabled", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15, + sizeof(asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15) + /sizeof(asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15) + /sizeof(asn_DEF_ASN_RRC_transformPrecodingEnabled_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_transformPrecodingEnabled_15, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_transformPrecodingEnabled_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DMRS_UplinkConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_DMRS_UplinkConfig, dmrs_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-Type" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_DMRS_UplinkConfig, dmrs_AdditionalPosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_AdditionalPosition_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-AdditionalPosition" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_DMRS_UplinkConfig, phaseTrackingRS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PTRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseTrackingRS" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_DMRS_UplinkConfig, maxLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxLength_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLength" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DMRS_UplinkConfig, transformPrecodingDisabled), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_transformPrecodingDisabled_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecodingDisabled" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DMRS_UplinkConfig, transformPrecodingEnabled), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_transformPrecodingEnabled_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecodingEnabled" + }, +}; +static const int asn_MAP_ASN_RRC_DMRS_UplinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DMRS_UplinkConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dmrs-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dmrs-AdditionalPosition */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* phaseTrackingRS */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxLength */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* transformPrecodingDisabled */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* transformPrecodingEnabled */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DMRS_UplinkConfig_specs_1 = { + sizeof(struct ASN_RRC_DMRS_UplinkConfig), + offsetof(struct ASN_RRC_DMRS_UplinkConfig, _asn_ctx), + asn_MAP_ASN_RRC_DMRS_UplinkConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DMRS_UplinkConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DMRS_UplinkConfig = { + "DMRS-UplinkConfig", + "DMRS-UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_DMRS_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DMRS_UplinkConfig_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_DMRS_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.h b/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.h new file mode 100644 index 0000000..83b0c7b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DMRS-UplinkConfig.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DMRS_UplinkConfig_H_ +#define _ASN_RRC_DMRS_UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DMRS_UplinkConfig__dmrs_Type { + ASN_RRC_DMRS_UplinkConfig__dmrs_Type_type2 = 0 +} e_ASN_RRC_DMRS_UplinkConfig__dmrs_Type; +typedef enum ASN_RRC_DMRS_UplinkConfig__dmrs_AdditionalPosition { + ASN_RRC_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0 = 0, + ASN_RRC_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos1 = 1, + ASN_RRC_DMRS_UplinkConfig__dmrs_AdditionalPosition_pos3 = 2 +} e_ASN_RRC_DMRS_UplinkConfig__dmrs_AdditionalPosition; +typedef enum ASN_RRC_DMRS_UplinkConfig__maxLength { + ASN_RRC_DMRS_UplinkConfig__maxLength_len2 = 0 +} e_ASN_RRC_DMRS_UplinkConfig__maxLength; +typedef enum ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping { + ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping_disabled = 0 +} e_ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping; +typedef enum ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping { + ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping_enabled = 0 +} e_ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PTRS_UplinkConfig; + +/* ASN_RRC_DMRS-UplinkConfig */ +typedef struct ASN_RRC_DMRS_UplinkConfig { + long *dmrs_Type; /* OPTIONAL */ + long *dmrs_AdditionalPosition; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PTRS_UplinkConfig *phaseTrackingRS; /* OPTIONAL */ + long *maxLength; /* OPTIONAL */ + struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingDisabled { + long *scramblingID0; /* OPTIONAL */ + long *scramblingID1; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *transformPrecodingDisabled; + struct ASN_RRC_DMRS_UplinkConfig__transformPrecodingEnabled { + long *nPUSCH_Identity; /* OPTIONAL */ + long *sequenceGroupHopping; /* OPTIONAL */ + long *sequenceHopping; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *transformPrecodingEnabled; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DMRS_UplinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_Type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_AdditionalPosition_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxLength_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sequenceGroupHopping_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sequenceHopping_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DMRS_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DMRS_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DMRS_UplinkConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DMRS_UplinkConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-CountInfo.c b/src/asn/rrc/ASN_RRC_DRB-CountInfo.c new file mode 100644 index 0000000..c4b704a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountInfo.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-CountInfo.h" + +static int +ASN_RRC_count_Uplink_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 +ASN_RRC_count_Downlink_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_ASN_RRC_count_Uplink_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_ASN_RRC_count_Downlink_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_ASN_RRC_count_Uplink_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_ASN_RRC_count_Downlink_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_ASN_RRC_count_Uplink_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_ASN_RRC_count_Downlink_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_ASN_RRC_count_Uplink_specs_3 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_count_Uplink_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_ASN_RRC_count_Uplink_3 = { + "count-Uplink", + "count-Uplink", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_count_Uplink_tags_3, + sizeof(asn_DEF_ASN_RRC_count_Uplink_tags_3) + /sizeof(asn_DEF_ASN_RRC_count_Uplink_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_count_Uplink_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_count_Uplink_tags_3) + /sizeof(asn_DEF_ASN_RRC_count_Uplink_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_count_Uplink_constr_3, ASN_RRC_count_Uplink_3_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_count_Uplink_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_count_Downlink_specs_4 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_count_Downlink_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_ASN_RRC_count_Downlink_4 = { + "count-Downlink", + "count-Downlink", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_count_Downlink_tags_4, + sizeof(asn_DEF_ASN_RRC_count_Downlink_tags_4) + /sizeof(asn_DEF_ASN_RRC_count_Downlink_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_count_Downlink_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_count_Downlink_tags_4) + /sizeof(asn_DEF_ASN_RRC_count_Downlink_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_count_Downlink_constr_4, ASN_RRC_count_Downlink_4_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_count_Downlink_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountInfo, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountInfo, count_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_count_Uplink_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_count_Uplink_constr_3, memb_ASN_RRC_count_Uplink_constraint_1 }, + 0, 0, /* No default value */ + "count-Uplink" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountInfo, count_Downlink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_count_Downlink_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_count_Downlink_constr_4, memb_ASN_RRC_count_Downlink_constraint_1 }, + 0, 0, /* No default value */ + "count-Downlink" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_CountInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DRB_CountInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drb-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* count-Uplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* count-Downlink */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_CountInfo_specs_1 = { + sizeof(struct ASN_RRC_DRB_CountInfo), + offsetof(struct ASN_RRC_DRB_CountInfo, _asn_ctx), + asn_MAP_ASN_RRC_DRB_CountInfo_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_ASN_RRC_DRB_CountInfo = { + "DRB-CountInfo", + "DRB-CountInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DRB_CountInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_CountInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_CountInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_CountInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DRB_CountInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_DRB_CountInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-CountInfo.h b/src/asn/rrc/ASN_RRC_DRB-CountInfo.h new file mode 100644 index 0000000..4c5e34d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountInfo.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_CountInfo_H_ +#define _ASN_RRC_DRB_CountInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DRB-CountInfo */ +typedef struct ASN_RRC_DRB_CountInfo { + ASN_RRC_DRB_Identity_t drb_Identity; + unsigned long count_Uplink; + unsigned long count_Downlink; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_CountInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_count_Uplink_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_count_Downlink_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_CountInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_CountInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-CountInfoList.c b/src/asn/rrc/ASN_RRC_DRB-CountInfoList.c new file mode 100644 index 0000000..c644bdf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-CountInfoList.h" + +#include "ASN_RRC_DRB-CountInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_CountInfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (SIZE(0..29)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DRB_CountInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_CountInfoList_specs_1 = { + sizeof(struct ASN_RRC_DRB_CountInfoList), + offsetof(struct ASN_RRC_DRB_CountInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountInfoList = { + "DRB-CountInfoList", + "DRB-CountInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DRB_CountInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_DRB_CountInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_DRB_CountInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-CountInfoList.h b/src/asn/rrc/ASN_RRC_DRB-CountInfoList.h new file mode 100644 index 0000000..08cbf28 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_CountInfoList_H_ +#define _ASN_RRC_DRB_CountInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_DRB_CountInfo; + +/* ASN_RRC_DRB-CountInfoList */ +typedef struct ASN_RRC_DRB_CountInfoList { + A_SEQUENCE_OF(struct ASN_RRC_DRB_CountInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_CountInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_CountInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_CountInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_CountInfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.c b/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.c new file mode 100644 index 0000000..ba489bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-CountMSB-Info.h" + +static int +memb_ASN_RRC_countMSB_Uplink_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 <= 33554431)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_countMSB_Downlink_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 <= 33554431)) { + /* Constraint 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_ASN_RRC_countMSB_Uplink_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 25, -1, 0, 33554431 } /* (0..33554431) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_countMSB_Downlink_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 25, -1, 0, 33554431 } /* (0..33554431) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountMSB_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountMSB_Info, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountMSB_Info, countMSB_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_countMSB_Uplink_constr_3, memb_ASN_RRC_countMSB_Uplink_constraint_1 }, + 0, 0, /* No default value */ + "countMSB-Uplink" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_CountMSB_Info, countMSB_Downlink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_countMSB_Downlink_constr_4, memb_ASN_RRC_countMSB_Downlink_constraint_1 }, + 0, 0, /* No default value */ + "countMSB-Downlink" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DRB_CountMSB_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drb-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* countMSB-Uplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* countMSB-Downlink */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_CountMSB_Info_specs_1 = { + sizeof(struct ASN_RRC_DRB_CountMSB_Info), + offsetof(struct ASN_RRC_DRB_CountMSB_Info, _asn_ctx), + asn_MAP_ASN_RRC_DRB_CountMSB_Info_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_ASN_RRC_DRB_CountMSB_Info = { + "DRB-CountMSB-Info", + "DRB-CountMSB-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DRB_CountMSB_Info_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_DRB_CountMSB_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.h b/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.h new file mode 100644 index 0000000..cbef160 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountMSB-Info.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_CountMSB_Info_H_ +#define _ASN_RRC_DRB_CountMSB_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DRB-CountMSB-Info */ +typedef struct ASN_RRC_DRB_CountMSB_Info { + ASN_RRC_DRB_Identity_t drb_Identity; + long countMSB_Uplink; + long countMSB_Downlink; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_CountMSB_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountMSB_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_CountMSB_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountMSB_Info_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_CountMSB_Info_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.c b/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.c new file mode 100644 index 0000000..f0578e7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-CountMSB-InfoList.h" + +#include "ASN_RRC_DRB-CountMSB-Info.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_CountMSB_InfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 29 } /* (SIZE(1..29)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountMSB_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DRB_CountMSB_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_CountMSB_InfoList_specs_1 = { + sizeof(struct ASN_RRC_DRB_CountMSB_InfoList), + offsetof(struct ASN_RRC_DRB_CountMSB_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountMSB_InfoList = { + "DRB-CountMSB-InfoList", + "DRB-CountMSB-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_CountMSB_InfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DRB_CountMSB_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_DRB_CountMSB_InfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_DRB_CountMSB_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.h b/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.h new file mode 100644 index 0000000..1e73a33 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-CountMSB-InfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_CountMSB_InfoList_H_ +#define _ASN_RRC_DRB_CountMSB_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_DRB_CountMSB_Info; + +/* ASN_RRC_DRB-CountMSB-InfoList */ +typedef struct ASN_RRC_DRB_CountMSB_InfoList { + A_SEQUENCE_OF(struct ASN_RRC_DRB_CountMSB_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_CountMSB_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_CountMSB_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_CountMSB_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_CountMSB_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_CountMSB_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_CountMSB_InfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-Identity.c b/src/asn/rrc/ASN_RRC_DRB-Identity.c new file mode 100644 index 0000000..1de2422 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-Identity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-Identity.h" + +int +ASN_RRC_DRB_Identity_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_ASN_RRC_DRB_Identity_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_ASN_RRC_DRB_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_Identity = { + "DRB-Identity", + "DRB-Identity", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_DRB_Identity_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_Identity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_Identity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DRB_Identity_constr_1, ASN_RRC_DRB_Identity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-Identity.h b/src/asn/rrc/ASN_RRC_DRB-Identity.h new file mode 100644 index 0000000..839c001 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_Identity_H_ +#define _ASN_RRC_DRB_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DRB-Identity */ +typedef long ASN_RRC_DRB_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_Identity; +asn_struct_free_f ASN_RRC_DRB_Identity_free; +asn_struct_print_f ASN_RRC_DRB_Identity_print; +asn_constr_check_f ASN_RRC_DRB_Identity_constraint; +ber_type_decoder_f ASN_RRC_DRB_Identity_decode_ber; +der_type_encoder_f ASN_RRC_DRB_Identity_encode_der; +xer_type_decoder_f ASN_RRC_DRB_Identity_decode_xer; +xer_type_encoder_f ASN_RRC_DRB_Identity_encode_xer; +per_type_decoder_f ASN_RRC_DRB_Identity_decode_uper; +per_type_encoder_f ASN_RRC_DRB_Identity_encode_uper; +per_type_decoder_f ASN_RRC_DRB_Identity_decode_aper; +per_type_encoder_f ASN_RRC_DRB_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-ToAddMod.c b/src/asn/rrc/ASN_RRC_DRB-ToAddMod.c new file mode 100644 index 0000000..ba0ab98 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToAddMod.c @@ -0,0 +1,266 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-ToAddMod.h" + +#include "ASN_RRC_PDCP-Config.h" +#include "ASN_RRC_SDAP-Config.h" +static int +memb_ASN_RRC_eps_BearerIdentity_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 <= 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 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_memb_ASN_RRC_eps_BearerIdentity_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_type_ASN_RRC_cnAssociation_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_type_ASN_RRC_reestablishPDCP_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_recoverPDCP_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_cnAssociation_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_ToAddMod__cnAssociation, choice.eps_BearerIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_eps_BearerIdentity_constr_3, memb_ASN_RRC_eps_BearerIdentity_constraint_2 }, + 0, 0, /* No default value */ + "eps-BearerIdentity" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_DRB_ToAddMod__cnAssociation, choice.sdap_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SDAP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-Config" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cnAssociation_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eps-BearerIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sdap-Config */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_cnAssociation_specs_2 = { + sizeof(struct ASN_RRC_DRB_ToAddMod__cnAssociation), + offsetof(struct ASN_RRC_DRB_ToAddMod__cnAssociation, _asn_ctx), + offsetof(struct ASN_RRC_DRB_ToAddMod__cnAssociation, present), + sizeof(((struct ASN_RRC_DRB_ToAddMod__cnAssociation *)0)->present), + asn_MAP_ASN_RRC_cnAssociation_tag2el_2, + 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_ASN_RRC_cnAssociation_2 = { + "cnAssociation", + "cnAssociation", + &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_ASN_RRC_cnAssociation_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_cnAssociation_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_cnAssociation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reestablishPDCP_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_reestablishPDCP_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reestablishPDCP_specs_6 = { + asn_MAP_ASN_RRC_reestablishPDCP_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reestablishPDCP_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reestablishPDCP_tags_6[] = { + (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_ASN_RRC_reestablishPDCP_6 = { + "reestablishPDCP", + "reestablishPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reestablishPDCP_tags_6, + sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_6) + /sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reestablishPDCP_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_6) + /sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reestablishPDCP_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reestablishPDCP_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_recoverPDCP_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_recoverPDCP_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_recoverPDCP_specs_8 = { + asn_MAP_ASN_RRC_recoverPDCP_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_recoverPDCP_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_recoverPDCP_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_ASN_RRC_recoverPDCP_8 = { + "recoverPDCP", + "recoverPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_recoverPDCP_tags_8, + sizeof(asn_DEF_ASN_RRC_recoverPDCP_tags_8) + /sizeof(asn_DEF_ASN_RRC_recoverPDCP_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_recoverPDCP_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_recoverPDCP_tags_8) + /sizeof(asn_DEF_ASN_RRC_recoverPDCP_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_recoverPDCP_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_recoverPDCP_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToAddMod_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DRB_ToAddMod, cnAssociation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cnAssociation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cnAssociation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRB_ToAddMod, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_DRB_ToAddMod, reestablishPDCP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reestablishPDCP_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishPDCP" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DRB_ToAddMod, recoverPDCP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_recoverPDCP_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recoverPDCP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DRB_ToAddMod, pdcp_Config), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Config" + }, +}; +static const int asn_MAP_ASN_RRC_DRB_ToAddMod_oms_1[] = { 0, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DRB_ToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cnAssociation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drb-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reestablishPDCP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* recoverPDCP */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* pdcp-Config */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_ToAddMod_specs_1 = { + sizeof(struct ASN_RRC_DRB_ToAddMod), + offsetof(struct ASN_RRC_DRB_ToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_DRB_ToAddMod_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DRB_ToAddMod_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToAddMod = { + "DRB-ToAddMod", + "DRB-ToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DRB_ToAddMod_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_DRB_ToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-ToAddMod.h b/src/asn/rrc/ASN_RRC_DRB-ToAddMod.h new file mode 100644 index 0000000..e0cc4e5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToAddMod.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_ToAddMod_H_ +#define _ASN_RRC_DRB_ToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-Identity.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DRB_ToAddMod__cnAssociation_PR { + ASN_RRC_DRB_ToAddMod__cnAssociation_PR_NOTHING, /* No components present */ + ASN_RRC_DRB_ToAddMod__cnAssociation_PR_eps_BearerIdentity, + ASN_RRC_DRB_ToAddMod__cnAssociation_PR_sdap_Config +} ASN_RRC_DRB_ToAddMod__cnAssociation_PR; +typedef enum ASN_RRC_DRB_ToAddMod__reestablishPDCP { + ASN_RRC_DRB_ToAddMod__reestablishPDCP_true = 0 +} e_ASN_RRC_DRB_ToAddMod__reestablishPDCP; +typedef enum ASN_RRC_DRB_ToAddMod__recoverPDCP { + ASN_RRC_DRB_ToAddMod__recoverPDCP_true = 0 +} e_ASN_RRC_DRB_ToAddMod__recoverPDCP; + +/* Forward declarations */ +struct ASN_RRC_PDCP_Config; +struct ASN_RRC_SDAP_Config; + +/* ASN_RRC_DRB-ToAddMod */ +typedef struct ASN_RRC_DRB_ToAddMod { + struct ASN_RRC_DRB_ToAddMod__cnAssociation { + ASN_RRC_DRB_ToAddMod__cnAssociation_PR present; + union ASN_RRC_DRB_ToAddMod__ASN_RRC_cnAssociation_u { + long eps_BearerIdentity; + struct ASN_RRC_SDAP_Config *sdap_Config; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cnAssociation; + ASN_RRC_DRB_Identity_t drb_Identity; + long *reestablishPDCP; /* OPTIONAL */ + long *recoverPDCP; /* OPTIONAL */ + struct ASN_RRC_PDCP_Config *pdcp_Config; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_ToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reestablishPDCP_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_recoverPDCP_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRB_ToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToAddMod_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_ToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-ToAddModList.c b/src/asn/rrc/ASN_RRC_DRB-ToAddModList.c new file mode 100644 index 0000000..b4bd377 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-ToAddModList.h" + +#include "ASN_RRC_DRB-ToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_ToAddModList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 29 } /* (SIZE(1..29)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DRB_ToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_ToAddModList_specs_1 = { + sizeof(struct ASN_RRC_DRB_ToAddModList), + offsetof(struct ASN_RRC_DRB_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToAddModList = { + "DRB-ToAddModList", + "DRB-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DRB_ToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_DRB_ToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_DRB_ToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-ToAddModList.h b/src/asn/rrc/ASN_RRC_DRB-ToAddModList.h new file mode 100644 index 0000000..3bb2e30 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_ToAddModList_H_ +#define _ASN_RRC_DRB_ToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_DRB_ToAddMod; + +/* ASN_RRC_DRB-ToAddModList */ +typedef struct ASN_RRC_DRB_ToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_DRB_ToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_ToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_ToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_ToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_ToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.c b/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.c new file mode 100644 index 0000000..c38d552 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRB-ToReleaseList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_ToReleaseList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 29 } /* (SIZE(1..29)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToReleaseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_ToReleaseList_specs_1 = { + sizeof(struct ASN_RRC_DRB_ToReleaseList), + offsetof(struct ASN_RRC_DRB_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToReleaseList = { + "DRB-ToReleaseList", + "DRB-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1, + sizeof(asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRB_ToReleaseList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DRB_ToReleaseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_DRB_ToReleaseList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_DRB_ToReleaseList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.h b/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.h new file mode 100644 index 0000000..95779d7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRB-ToReleaseList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRB_ToReleaseList_H_ +#define _ASN_RRC_DRB_ToReleaseList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DRB-ToReleaseList */ +typedef struct ASN_RRC_DRB_ToReleaseList { + A_SEQUENCE_OF(ASN_RRC_DRB_Identity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRB_ToReleaseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRB_ToReleaseList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_DRB_ToReleaseList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRB_ToReleaseList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DRB_ToReleaseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRB_ToReleaseList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRX-Config.c b/src/asn/rrc/ASN_RRC_DRX-Config.c new file mode 100644 index 0000000..125c14e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRX-Config.c @@ -0,0 +1,1753 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRX-Config.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_subMilliSeconds_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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_ASN_RRC_ms10_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_ms20_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms32_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms40_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms60_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 59)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms64_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_ms70_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 69)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms80_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms128_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms160_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms256_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_ms320_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms512_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms640_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 639)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms1024_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_ms1280_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms2048_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms2560_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms5120_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 5119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms10240_constraint_138(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 10239)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_drx_ShortCycleTimer_constraint_159(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_drx_HARQ_RTT_TimerDL_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 <= 56)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_drx_HARQ_RTT_TimerUL_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 <= 56)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_drx_SlotOffset_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 <= 31)) { + /* Constraint 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_ASN_RRC_milliSeconds_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_subMilliSeconds_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_onDurationTimer_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_type_ASN_RRC_drx_InactivityTimer_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_RetransmissionTimerDL_constr_72 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_RetransmissionTimerUL_constr_105 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms10_constr_139 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms20_constr_140 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms32_constr_141 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms40_constr_142 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms60_constr_143 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms64_constr_144 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms70_constr_145 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 69 } /* (0..69) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms80_constr_146 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms128_constr_147 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms160_constr_148 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms256_constr_149 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_ASN_RRC_ms320_constr_150 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms512_constr_151 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms640_constr_152 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms1024_constr_153 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_ASN_RRC_ms1280_constr_154 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1279 } /* (0..1279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms2048_constr_155 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 2047 } /* (0..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms2560_constr_156 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2559 } /* (0..2559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms5120_constr_157 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 5119 } /* (0..5119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms10240_constr_158 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10239 } /* (0..10239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_LongCycleStartOffset_constr_138 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_ShortCycle_constr_160 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_drx_ShortCycleTimer_constr_193 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_drx_HARQ_RTT_TimerDL_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 56 } /* (0..56) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_drx_HARQ_RTT_TimerUL_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 56 } /* (0..56) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_drx_SlotOffset_constr_194 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_milliSeconds_value2enum_4[] = { + { 0, 3, "ms1" }, + { 1, 3, "ms2" }, + { 2, 3, "ms3" }, + { 3, 3, "ms4" }, + { 4, 3, "ms5" }, + { 5, 3, "ms6" }, + { 6, 3, "ms8" }, + { 7, 4, "ms10" }, + { 8, 4, "ms20" }, + { 9, 4, "ms30" }, + { 10, 4, "ms40" }, + { 11, 4, "ms50" }, + { 12, 4, "ms60" }, + { 13, 4, "ms80" }, + { 14, 5, "ms100" }, + { 15, 5, "ms200" }, + { 16, 5, "ms300" }, + { 17, 5, "ms400" }, + { 18, 5, "ms500" }, + { 19, 5, "ms600" }, + { 20, 5, "ms800" }, + { 21, 6, "ms1000" }, + { 22, 6, "ms1200" }, + { 23, 6, "ms1600" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_milliSeconds_enum2value_4[] = { + 0, /* ms1(0) */ + 7, /* ms10(7) */ + 14, /* ms100(14) */ + 21, /* ms1000(21) */ + 22, /* ms1200(22) */ + 23, /* ms1600(23) */ + 1, /* ms2(1) */ + 8, /* ms20(8) */ + 15, /* ms200(15) */ + 2, /* ms3(2) */ + 9, /* ms30(9) */ + 16, /* ms300(16) */ + 3, /* ms4(3) */ + 10, /* ms40(10) */ + 17, /* ms400(17) */ + 4, /* ms5(4) */ + 11, /* ms50(11) */ + 18, /* ms500(18) */ + 5, /* ms6(5) */ + 12, /* ms60(12) */ + 19, /* ms600(19) */ + 6, /* ms8(6) */ + 13, /* ms80(13) */ + 20, /* ms800(20) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24 /* spare8(24) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_milliSeconds_specs_4 = { + asn_MAP_ASN_RRC_milliSeconds_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_milliSeconds_enum2value_4, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_milliSeconds_tags_4[] = { + (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_ASN_RRC_milliSeconds_4 = { + "milliSeconds", + "milliSeconds", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_milliSeconds_tags_4, + sizeof(asn_DEF_ASN_RRC_milliSeconds_tags_4) + /sizeof(asn_DEF_ASN_RRC_milliSeconds_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_milliSeconds_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_milliSeconds_tags_4) + /sizeof(asn_DEF_ASN_RRC_milliSeconds_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_milliSeconds_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_milliSeconds_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_drx_onDurationTimer_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_onDurationTimer, choice.subMilliSeconds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_subMilliSeconds_constr_3, memb_ASN_RRC_subMilliSeconds_constraint_2 }, + 0, 0, /* No default value */ + "subMilliSeconds" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_onDurationTimer, choice.milliSeconds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_milliSeconds_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "milliSeconds" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_drx_onDurationTimer_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subMilliSeconds */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* milliSeconds */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_drx_onDurationTimer_specs_2 = { + sizeof(struct ASN_RRC_DRX_Config__drx_onDurationTimer), + offsetof(struct ASN_RRC_DRX_Config__drx_onDurationTimer, _asn_ctx), + offsetof(struct ASN_RRC_DRX_Config__drx_onDurationTimer, present), + sizeof(((struct ASN_RRC_DRX_Config__drx_onDurationTimer *)0)->present), + asn_MAP_ASN_RRC_drx_onDurationTimer_tag2el_2, + 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_ASN_RRC_drx_onDurationTimer_2 = { + "drx-onDurationTimer", + "drx-onDurationTimer", + &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_ASN_RRC_drx_onDurationTimer_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_drx_onDurationTimer_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_drx_onDurationTimer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drx_InactivityTimer_value2enum_37[] = { + { 0, 3, "ms0" }, + { 1, 3, "ms1" }, + { 2, 3, "ms2" }, + { 3, 3, "ms3" }, + { 4, 3, "ms4" }, + { 5, 3, "ms5" }, + { 6, 3, "ms6" }, + { 7, 3, "ms8" }, + { 8, 4, "ms10" }, + { 9, 4, "ms20" }, + { 10, 4, "ms30" }, + { 11, 4, "ms40" }, + { 12, 4, "ms50" }, + { 13, 4, "ms60" }, + { 14, 4, "ms80" }, + { 15, 5, "ms100" }, + { 16, 5, "ms200" }, + { 17, 5, "ms300" }, + { 18, 5, "ms500" }, + { 19, 5, "ms750" }, + { 20, 6, "ms1280" }, + { 21, 6, "ms1920" }, + { 22, 6, "ms2560" }, + { 23, 6, "spare9" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_drx_InactivityTimer_enum2value_37[] = { + 0, /* ms0(0) */ + 1, /* ms1(1) */ + 8, /* ms10(8) */ + 15, /* ms100(15) */ + 20, /* ms1280(20) */ + 21, /* ms1920(21) */ + 2, /* ms2(2) */ + 9, /* ms20(9) */ + 16, /* ms200(16) */ + 22, /* ms2560(22) */ + 3, /* ms3(3) */ + 10, /* ms30(10) */ + 17, /* ms300(17) */ + 4, /* ms4(4) */ + 11, /* ms40(11) */ + 5, /* ms5(5) */ + 12, /* ms50(12) */ + 18, /* ms500(18) */ + 6, /* ms6(6) */ + 13, /* ms60(13) */ + 19, /* ms750(19) */ + 7, /* ms8(7) */ + 14, /* ms80(14) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24, /* spare8(24) */ + 23 /* spare9(23) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drx_InactivityTimer_specs_37 = { + asn_MAP_ASN_RRC_drx_InactivityTimer_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drx_InactivityTimer_enum2value_37, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_drx_InactivityTimer_tags_37[] = { + (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_ASN_RRC_drx_InactivityTimer_37 = { + "drx-InactivityTimer", + "drx-InactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37, + sizeof(asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37) + /sizeof(asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37) + /sizeof(asn_DEF_ASN_RRC_drx_InactivityTimer_tags_37[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drx_InactivityTimer_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drx_InactivityTimer_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drx_RetransmissionTimerDL_value2enum_72[] = { + { 0, 3, "sl0" }, + { 1, 3, "sl1" }, + { 2, 3, "sl2" }, + { 3, 3, "sl4" }, + { 4, 3, "sl6" }, + { 5, 3, "sl8" }, + { 6, 4, "sl16" }, + { 7, 4, "sl24" }, + { 8, 4, "sl33" }, + { 9, 4, "sl40" }, + { 10, 4, "sl64" }, + { 11, 4, "sl80" }, + { 12, 4, "sl96" }, + { 13, 5, "sl112" }, + { 14, 5, "sl128" }, + { 15, 5, "sl160" }, + { 16, 5, "sl320" }, + { 17, 7, "spare15" }, + { 18, 7, "spare14" }, + { 19, 7, "spare13" }, + { 20, 7, "spare12" }, + { 21, 7, "spare11" }, + { 22, 7, "spare10" }, + { 23, 6, "spare9" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_drx_RetransmissionTimerDL_enum2value_72[] = { + 0, /* sl0(0) */ + 1, /* sl1(1) */ + 13, /* sl112(13) */ + 14, /* sl128(14) */ + 6, /* sl16(6) */ + 15, /* sl160(15) */ + 2, /* sl2(2) */ + 7, /* sl24(7) */ + 16, /* sl320(16) */ + 8, /* sl33(8) */ + 3, /* sl4(3) */ + 9, /* sl40(9) */ + 4, /* sl6(4) */ + 10, /* sl64(10) */ + 5, /* sl8(5) */ + 11, /* sl80(11) */ + 12, /* sl96(12) */ + 31, /* spare1(31) */ + 22, /* spare10(22) */ + 21, /* spare11(21) */ + 20, /* spare12(20) */ + 19, /* spare13(19) */ + 18, /* spare14(18) */ + 17, /* spare15(17) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24, /* spare8(24) */ + 23 /* spare9(23) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drx_RetransmissionTimerDL_specs_72 = { + asn_MAP_ASN_RRC_drx_RetransmissionTimerDL_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drx_RetransmissionTimerDL_enum2value_72, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_drx_RetransmissionTimerDL_tags_72[] = { + (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_ASN_RRC_drx_RetransmissionTimerDL_72 = { + "drx-RetransmissionTimerDL", + "drx-RetransmissionTimerDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72, + sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72) + /sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72) + /sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_tags_72[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drx_RetransmissionTimerDL_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drx_RetransmissionTimerDL_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drx_RetransmissionTimerUL_value2enum_105[] = { + { 0, 3, "sl0" }, + { 1, 3, "sl1" }, + { 2, 3, "sl2" }, + { 3, 3, "sl4" }, + { 4, 3, "sl6" }, + { 5, 3, "sl8" }, + { 6, 4, "sl16" }, + { 7, 4, "sl24" }, + { 8, 4, "sl33" }, + { 9, 4, "sl40" }, + { 10, 4, "sl64" }, + { 11, 4, "sl80" }, + { 12, 4, "sl96" }, + { 13, 5, "sl112" }, + { 14, 5, "sl128" }, + { 15, 5, "sl160" }, + { 16, 5, "sl320" }, + { 17, 7, "spare15" }, + { 18, 7, "spare14" }, + { 19, 7, "spare13" }, + { 20, 7, "spare12" }, + { 21, 7, "spare11" }, + { 22, 7, "spare10" }, + { 23, 6, "spare9" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_drx_RetransmissionTimerUL_enum2value_105[] = { + 0, /* sl0(0) */ + 1, /* sl1(1) */ + 13, /* sl112(13) */ + 14, /* sl128(14) */ + 6, /* sl16(6) */ + 15, /* sl160(15) */ + 2, /* sl2(2) */ + 7, /* sl24(7) */ + 16, /* sl320(16) */ + 8, /* sl33(8) */ + 3, /* sl4(3) */ + 9, /* sl40(9) */ + 4, /* sl6(4) */ + 10, /* sl64(10) */ + 5, /* sl8(5) */ + 11, /* sl80(11) */ + 12, /* sl96(12) */ + 31, /* spare1(31) */ + 22, /* spare10(22) */ + 21, /* spare11(21) */ + 20, /* spare12(20) */ + 19, /* spare13(19) */ + 18, /* spare14(18) */ + 17, /* spare15(17) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24, /* spare8(24) */ + 23 /* spare9(23) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drx_RetransmissionTimerUL_specs_105 = { + asn_MAP_ASN_RRC_drx_RetransmissionTimerUL_value2enum_105, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drx_RetransmissionTimerUL_enum2value_105, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_drx_RetransmissionTimerUL_tags_105[] = { + (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_ASN_RRC_drx_RetransmissionTimerUL_105 = { + "drx-RetransmissionTimerUL", + "drx-RetransmissionTimerUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105, + sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105) + /sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105) + /sizeof(asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_tags_105[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drx_RetransmissionTimerUL_constr_105, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drx_RetransmissionTimerUL_specs_105 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_drx_LongCycleStartOffset_138[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms10_constr_139, memb_ASN_RRC_ms10_constraint_138 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms20_constr_140, memb_ASN_RRC_ms20_constraint_138 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms32), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms32_constr_141, memb_ASN_RRC_ms32_constraint_138 }, + 0, 0, /* No default value */ + "ms32" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms40_constr_142, memb_ASN_RRC_ms40_constraint_138 }, + 0, 0, /* No default value */ + "ms40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms60), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms60_constr_143, memb_ASN_RRC_ms60_constraint_138 }, + 0, 0, /* No default value */ + "ms60" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms64), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms64_constr_144, memb_ASN_RRC_ms64_constraint_138 }, + 0, 0, /* No default value */ + "ms64" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms70), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms70_constr_145, memb_ASN_RRC_ms70_constraint_138 }, + 0, 0, /* No default value */ + "ms70" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms80_constr_146, memb_ASN_RRC_ms80_constraint_138 }, + 0, 0, /* No default value */ + "ms80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms128), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms128_constr_147, memb_ASN_RRC_ms128_constraint_138 }, + 0, 0, /* No default value */ + "ms128" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms160), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms160_constr_148, memb_ASN_RRC_ms160_constraint_138 }, + 0, 0, /* No default value */ + "ms160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms256), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms256_constr_149, memb_ASN_RRC_ms256_constraint_138 }, + 0, 0, /* No default value */ + "ms256" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms320_constr_150, memb_ASN_RRC_ms320_constraint_138 }, + 0, 0, /* No default value */ + "ms320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms512), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms512_constr_151, memb_ASN_RRC_ms512_constraint_138 }, + 0, 0, /* No default value */ + "ms512" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms640), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms640_constr_152, memb_ASN_RRC_ms640_constraint_138 }, + 0, 0, /* No default value */ + "ms640" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms1024), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms1024_constr_153, memb_ASN_RRC_ms1024_constraint_138 }, + 0, 0, /* No default value */ + "ms1024" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms1280_constr_154, memb_ASN_RRC_ms1280_constraint_138 }, + 0, 0, /* No default value */ + "ms1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms2048), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms2048_constr_155, memb_ASN_RRC_ms2048_constraint_138 }, + 0, 0, /* No default value */ + "ms2048" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms2560), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms2560_constr_156, memb_ASN_RRC_ms2560_constraint_138 }, + 0, 0, /* No default value */ + "ms2560" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms5120), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms5120_constr_157, memb_ASN_RRC_ms5120_constraint_138 }, + 0, 0, /* No default value */ + "ms5120" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, choice.ms10240), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms10240_constr_158, memb_ASN_RRC_ms10240_constraint_138 }, + 0, 0, /* No default value */ + "ms10240" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_drx_LongCycleStartOffset_tag2el_138[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ms10 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ms20 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ms32 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ms40 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ms60 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ms64 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ms70 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ms80 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* ms128 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ms160 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ms256 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ms320 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* ms512 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* ms640 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* ms1024 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* ms1280 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* ms2048 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* ms2560 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* ms5120 */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 } /* ms10240 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_drx_LongCycleStartOffset_specs_138 = { + sizeof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset), + offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, _asn_ctx), + offsetof(struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset, present), + sizeof(((struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset *)0)->present), + asn_MAP_ASN_RRC_drx_LongCycleStartOffset_tag2el_138, + 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_ASN_RRC_drx_LongCycleStartOffset_138 = { + "drx-LongCycleStartOffset", + "drx-LongCycleStartOffset", + &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_ASN_RRC_drx_LongCycleStartOffset_constr_138, CHOICE_constraint }, + asn_MBR_ASN_RRC_drx_LongCycleStartOffset_138, + 20, /* Elements count */ + &asn_SPC_ASN_RRC_drx_LongCycleStartOffset_specs_138 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drx_ShortCycle_value2enum_160[] = { + { 0, 3, "ms2" }, + { 1, 3, "ms3" }, + { 2, 3, "ms4" }, + { 3, 3, "ms5" }, + { 4, 3, "ms6" }, + { 5, 3, "ms7" }, + { 6, 3, "ms8" }, + { 7, 4, "ms10" }, + { 8, 4, "ms14" }, + { 9, 4, "ms16" }, + { 10, 4, "ms20" }, + { 11, 4, "ms30" }, + { 12, 4, "ms32" }, + { 13, 4, "ms35" }, + { 14, 4, "ms40" }, + { 15, 4, "ms64" }, + { 16, 4, "ms80" }, + { 17, 5, "ms128" }, + { 18, 5, "ms160" }, + { 19, 5, "ms256" }, + { 20, 5, "ms320" }, + { 21, 5, "ms512" }, + { 22, 5, "ms640" }, + { 23, 6, "spare9" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_drx_ShortCycle_enum2value_160[] = { + 7, /* ms10(7) */ + 17, /* ms128(17) */ + 8, /* ms14(8) */ + 9, /* ms16(9) */ + 18, /* ms160(18) */ + 0, /* ms2(0) */ + 10, /* ms20(10) */ + 19, /* ms256(19) */ + 1, /* ms3(1) */ + 11, /* ms30(11) */ + 12, /* ms32(12) */ + 20, /* ms320(20) */ + 13, /* ms35(13) */ + 2, /* ms4(2) */ + 14, /* ms40(14) */ + 3, /* ms5(3) */ + 21, /* ms512(21) */ + 4, /* ms6(4) */ + 15, /* ms64(15) */ + 22, /* ms640(22) */ + 5, /* ms7(5) */ + 6, /* ms8(6) */ + 16, /* ms80(16) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24, /* spare8(24) */ + 23 /* spare9(23) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drx_ShortCycle_specs_160 = { + asn_MAP_ASN_RRC_drx_ShortCycle_value2enum_160, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drx_ShortCycle_enum2value_160, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_drx_ShortCycle_tags_160[] = { + (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_ASN_RRC_drx_ShortCycle_160 = { + "drx-ShortCycle", + "drx-ShortCycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drx_ShortCycle_tags_160, + sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_160) + /sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_160[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drx_ShortCycle_tags_160, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_160) + /sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_160[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drx_ShortCycle_constr_160, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drx_ShortCycle_specs_160 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_shortDRX_159[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__shortDRX, drx_ShortCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_ShortCycle_160, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ShortCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config__shortDRX, drx_ShortCycleTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_drx_ShortCycleTimer_constr_193, memb_ASN_RRC_drx_ShortCycleTimer_constraint_159 }, + 0, 0, /* No default value */ + "drx-ShortCycleTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_shortDRX_tags_159[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_shortDRX_tag2el_159[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drx-ShortCycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* drx-ShortCycleTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_shortDRX_specs_159 = { + sizeof(struct ASN_RRC_DRX_Config__shortDRX), + offsetof(struct ASN_RRC_DRX_Config__shortDRX, _asn_ctx), + asn_MAP_ASN_RRC_shortDRX_tag2el_159, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_shortDRX_159 = { + "shortDRX", + "shortDRX", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_shortDRX_tags_159, + sizeof(asn_DEF_ASN_RRC_shortDRX_tags_159) + /sizeof(asn_DEF_ASN_RRC_shortDRX_tags_159[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_shortDRX_tags_159, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_shortDRX_tags_159) + /sizeof(asn_DEF_ASN_RRC_shortDRX_tags_159[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_shortDRX_159, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_shortDRX_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DRX_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_onDurationTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_onDurationTimer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-onDurationTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_InactivityTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_InactivityTimer_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InactivityTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_HARQ_RTT_TimerDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_drx_HARQ_RTT_TimerDL_constr_70, memb_ASN_RRC_drx_HARQ_RTT_TimerDL_constraint_1 }, + 0, 0, /* No default value */ + "drx-HARQ-RTT-TimerDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_HARQ_RTT_TimerUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_drx_HARQ_RTT_TimerUL_constr_71, memb_ASN_RRC_drx_HARQ_RTT_TimerUL_constraint_1 }, + 0, 0, /* No default value */ + "drx-HARQ-RTT-TimerUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_RetransmissionTimerDL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-RetransmissionTimerDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_RetransmissionTimerUL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-RetransmissionTimerUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_LongCycleStartOffset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_LongCycleStartOffset_138, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-LongCycleStartOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DRX_Config, shortDRX), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_shortDRX_159, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Config, drx_SlotOffset), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_drx_SlotOffset_constr_194, memb_ASN_RRC_drx_SlotOffset_constraint_1 }, + 0, 0, /* No default value */ + "drx-SlotOffset" + }, +}; +static const int asn_MAP_ASN_RRC_DRX_Config_oms_1[] = { 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRX_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DRX_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drx-onDurationTimer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* drx-InactivityTimer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* drx-HARQ-RTT-TimerDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* drx-HARQ-RTT-TimerUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* drx-RetransmissionTimerDL */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* drx-RetransmissionTimerUL */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* drx-LongCycleStartOffset */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* shortDRX */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* drx-SlotOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRX_Config_specs_1 = { + sizeof(struct ASN_RRC_DRX_Config), + offsetof(struct ASN_RRC_DRX_Config, _asn_ctx), + asn_MAP_ASN_RRC_DRX_Config_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DRX_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRX_Config = { + "DRX-Config", + "DRX-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DRX_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_DRX_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRX_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRX_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRX_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRX_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DRX_Config_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_DRX_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRX-Config.h b/src/asn/rrc/ASN_RRC_DRX-Config.h new file mode 100644 index 0000000..a0dc05e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRX-Config.h @@ -0,0 +1,297 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRX_Config_H_ +#define _ASN_RRC_DRX_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DRX_Config__drx_onDurationTimer_PR { + ASN_RRC_DRX_Config__drx_onDurationTimer_PR_NOTHING, /* No components present */ + ASN_RRC_DRX_Config__drx_onDurationTimer_PR_subMilliSeconds, + ASN_RRC_DRX_Config__drx_onDurationTimer_PR_milliSeconds +} ASN_RRC_DRX_Config__drx_onDurationTimer_PR; +typedef enum ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds { + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms1 = 0, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms2 = 1, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms3 = 2, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms4 = 3, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms5 = 4, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms6 = 5, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms8 = 6, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms10 = 7, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms20 = 8, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms30 = 9, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms40 = 10, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms50 = 11, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms60 = 12, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms80 = 13, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms100 = 14, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms200 = 15, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms300 = 16, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms400 = 17, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms500 = 18, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms600 = 19, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms800 = 20, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms1000 = 21, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms1200 = 22, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_ms1600 = 23, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare8 = 24, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare7 = 25, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare6 = 26, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare5 = 27, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare4 = 28, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare3 = 29, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare2 = 30, + ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds_spare1 = 31 +} e_ASN_RRC_DRX_Config__drx_onDurationTimer__milliSeconds; +typedef enum ASN_RRC_DRX_Config__drx_InactivityTimer { + ASN_RRC_DRX_Config__drx_InactivityTimer_ms0 = 0, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms1 = 1, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms2 = 2, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms3 = 3, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms4 = 4, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms5 = 5, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms6 = 6, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms8 = 7, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms10 = 8, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms20 = 9, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms30 = 10, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms40 = 11, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms50 = 12, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms60 = 13, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms80 = 14, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms100 = 15, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms200 = 16, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms300 = 17, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms500 = 18, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms750 = 19, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms1280 = 20, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms1920 = 21, + ASN_RRC_DRX_Config__drx_InactivityTimer_ms2560 = 22, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare9 = 23, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare8 = 24, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare7 = 25, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare6 = 26, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare5 = 27, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare4 = 28, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare3 = 29, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare2 = 30, + ASN_RRC_DRX_Config__drx_InactivityTimer_spare1 = 31 +} e_ASN_RRC_DRX_Config__drx_InactivityTimer; +typedef enum ASN_RRC_DRX_Config__drx_RetransmissionTimerDL { + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl0 = 0, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl1 = 1, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl2 = 2, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl4 = 3, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl6 = 4, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl8 = 5, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl16 = 6, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl24 = 7, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl33 = 8, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl40 = 9, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl64 = 10, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl80 = 11, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl96 = 12, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl112 = 13, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl128 = 14, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl160 = 15, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_sl320 = 16, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare15 = 17, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare14 = 18, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare13 = 19, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare12 = 20, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare11 = 21, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare10 = 22, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare9 = 23, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare8 = 24, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare7 = 25, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare6 = 26, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare5 = 27, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare4 = 28, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare3 = 29, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare2 = 30, + ASN_RRC_DRX_Config__drx_RetransmissionTimerDL_spare1 = 31 +} e_ASN_RRC_DRX_Config__drx_RetransmissionTimerDL; +typedef enum ASN_RRC_DRX_Config__drx_RetransmissionTimerUL { + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl0 = 0, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl1 = 1, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl2 = 2, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl4 = 3, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl6 = 4, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl8 = 5, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl16 = 6, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl24 = 7, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl33 = 8, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl40 = 9, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl64 = 10, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl80 = 11, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl96 = 12, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl112 = 13, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl128 = 14, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl160 = 15, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_sl320 = 16, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare15 = 17, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare14 = 18, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare13 = 19, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare12 = 20, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare11 = 21, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare10 = 22, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare9 = 23, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare8 = 24, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare7 = 25, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare6 = 26, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare5 = 27, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare4 = 28, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare3 = 29, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare2 = 30, + ASN_RRC_DRX_Config__drx_RetransmissionTimerUL_spare1 = 31 +} e_ASN_RRC_DRX_Config__drx_RetransmissionTimerUL; +typedef enum ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR { + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_NOTHING, /* No components present */ + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms10, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms20, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms32, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms40, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms60, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms64, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms70, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms80, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms128, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms160, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms256, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms320, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms512, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms640, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms1024, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms1280, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms2048, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms2560, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms5120, + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR_ms10240 +} ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR; +typedef enum ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle { + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms2 = 0, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms3 = 1, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms4 = 2, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms5 = 3, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms6 = 4, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms7 = 5, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms8 = 6, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms10 = 7, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms14 = 8, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms16 = 9, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms20 = 10, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms30 = 11, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms32 = 12, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms35 = 13, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms40 = 14, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms64 = 15, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms80 = 16, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms128 = 17, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms160 = 18, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms256 = 19, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms320 = 20, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms512 = 21, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_ms640 = 22, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare9 = 23, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare8 = 24, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare7 = 25, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare6 = 26, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare5 = 27, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare4 = 28, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare3 = 29, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare2 = 30, + ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle_spare1 = 31 +} e_ASN_RRC_DRX_Config__shortDRX__drx_ShortCycle; + +/* ASN_RRC_DRX-Config */ +typedef struct ASN_RRC_DRX_Config { + struct ASN_RRC_DRX_Config__drx_onDurationTimer { + ASN_RRC_DRX_Config__drx_onDurationTimer_PR present; + union ASN_RRC_DRX_Config__ASN_RRC_drx_onDurationTimer_u { + long subMilliSeconds; + long milliSeconds; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } drx_onDurationTimer; + long drx_InactivityTimer; + long drx_HARQ_RTT_TimerDL; + long drx_HARQ_RTT_TimerUL; + long drx_RetransmissionTimerDL; + long drx_RetransmissionTimerUL; + struct ASN_RRC_DRX_Config__drx_LongCycleStartOffset { + ASN_RRC_DRX_Config__drx_LongCycleStartOffset_PR present; + union ASN_RRC_DRX_Config__ASN_RRC_drx_LongCycleStartOffset_u { + long ms10; + long ms20; + long ms32; + long ms40; + long ms60; + long ms64; + long ms70; + long ms80; + long ms128; + long ms160; + long ms256; + long ms320; + long ms512; + long ms640; + long ms1024; + long ms1280; + long ms2048; + long ms2560; + long ms5120; + long ms10240; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } drx_LongCycleStartOffset; + struct ASN_RRC_DRX_Config__shortDRX { + long drx_ShortCycle; + long drx_ShortCycleTimer; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *shortDRX; + long drx_SlotOffset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRX_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_milliSeconds_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drx_InactivityTimer_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drx_RetransmissionTimerDL_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drx_RetransmissionTimerUL_105; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drx_ShortCycle_160; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRX_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRX_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRX_Config_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRX_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DRX-Info.c b/src/asn/rrc/ASN_RRC_DRX-Info.c new file mode 100644 index 0000000..59d9562 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRX-Info.c @@ -0,0 +1,1085 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DRX-Info.h" + +static int +memb_ASN_RRC_ms10_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 int +memb_ASN_RRC_ms20_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 <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms32_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms40_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 <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms60_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 <= 59)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms64_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 <= 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 int +memb_ASN_RRC_ms70_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 <= 69)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms80_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 <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms128_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 <= 127)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms160_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 <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms256_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 <= 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 int +memb_ASN_RRC_ms320_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 <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms512_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 <= 511)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms640_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 <= 639)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms1024_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_ASN_RRC_ms1280_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 <= 1279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms2048_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 <= 2047)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms2560_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 <= 2559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms5120_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 <= 5119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ms10240_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 <= 10239)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_drx_ShortCycleTimer_constraint_23(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 16)) { + /* Constraint 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_ASN_RRC_ms10_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms20_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms32_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms40_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms60_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 59 } /* (0..59) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms64_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms70_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 69 } /* (0..69) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms80_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms128_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms160_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms256_constr_13 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_ASN_RRC_ms320_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms512_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms640_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms1024_constr_17 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_ASN_RRC_ms1280_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1279 } /* (0..1279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms2048_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 2047 } /* (0..2047) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms2560_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2559 } /* (0..2559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms5120_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 5119 } /* (0..5119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ms10240_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 10239 } /* (0..10239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_LongCycleStartOffset_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drx_ShortCycle_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_drx_ShortCycleTimer_constr_57 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_drx_LongCycleStartOffset_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms10_constr_3, memb_ASN_RRC_ms10_constraint_2 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms20_constr_4, memb_ASN_RRC_ms20_constraint_2 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms32), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms32_constr_5, memb_ASN_RRC_ms32_constraint_2 }, + 0, 0, /* No default value */ + "ms32" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms40_constr_6, memb_ASN_RRC_ms40_constraint_2 }, + 0, 0, /* No default value */ + "ms40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms60), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms60_constr_7, memb_ASN_RRC_ms60_constraint_2 }, + 0, 0, /* No default value */ + "ms60" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms64), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms64_constr_8, memb_ASN_RRC_ms64_constraint_2 }, + 0, 0, /* No default value */ + "ms64" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms70), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms70_constr_9, memb_ASN_RRC_ms70_constraint_2 }, + 0, 0, /* No default value */ + "ms70" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms80_constr_10, memb_ASN_RRC_ms80_constraint_2 }, + 0, 0, /* No default value */ + "ms80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms128), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms128_constr_11, memb_ASN_RRC_ms128_constraint_2 }, + 0, 0, /* No default value */ + "ms128" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms160), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms160_constr_12, memb_ASN_RRC_ms160_constraint_2 }, + 0, 0, /* No default value */ + "ms160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms256), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms256_constr_13, memb_ASN_RRC_ms256_constraint_2 }, + 0, 0, /* No default value */ + "ms256" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms320_constr_14, memb_ASN_RRC_ms320_constraint_2 }, + 0, 0, /* No default value */ + "ms320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms512), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms512_constr_15, memb_ASN_RRC_ms512_constraint_2 }, + 0, 0, /* No default value */ + "ms512" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms640), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms640_constr_16, memb_ASN_RRC_ms640_constraint_2 }, + 0, 0, /* No default value */ + "ms640" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms1024), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms1024_constr_17, memb_ASN_RRC_ms1024_constraint_2 }, + 0, 0, /* No default value */ + "ms1024" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms1280_constr_18, memb_ASN_RRC_ms1280_constraint_2 }, + 0, 0, /* No default value */ + "ms1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms2048), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms2048_constr_19, memb_ASN_RRC_ms2048_constraint_2 }, + 0, 0, /* No default value */ + "ms2048" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms2560), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms2560_constr_20, memb_ASN_RRC_ms2560_constraint_2 }, + 0, 0, /* No default value */ + "ms2560" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms5120), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms5120_constr_21, memb_ASN_RRC_ms5120_constraint_2 }, + 0, 0, /* No default value */ + "ms5120" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, choice.ms10240), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ms10240_constr_22, memb_ASN_RRC_ms10240_constraint_2 }, + 0, 0, /* No default value */ + "ms10240" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_drx_LongCycleStartOffset_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ms10 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ms20 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ms32 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ms40 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ms60 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ms64 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ms70 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ms80 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* ms128 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ms160 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ms256 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ms320 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* ms512 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* ms640 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* ms1024 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* ms1280 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* ms2048 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* ms2560 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* ms5120 */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 } /* ms10240 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_drx_LongCycleStartOffset_specs_2 = { + sizeof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset), + offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, _asn_ctx), + offsetof(struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset, present), + sizeof(((struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset *)0)->present), + asn_MAP_ASN_RRC_drx_LongCycleStartOffset_tag2el_2, + 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_ASN_RRC_drx_LongCycleStartOffset_2 = { + "drx-LongCycleStartOffset", + "drx-LongCycleStartOffset", + &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_ASN_RRC_drx_LongCycleStartOffset_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_drx_LongCycleStartOffset_2, + 20, /* Elements count */ + &asn_SPC_ASN_RRC_drx_LongCycleStartOffset_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drx_ShortCycle_value2enum_24[] = { + { 0, 3, "ms2" }, + { 1, 3, "ms3" }, + { 2, 3, "ms4" }, + { 3, 3, "ms5" }, + { 4, 3, "ms6" }, + { 5, 3, "ms7" }, + { 6, 3, "ms8" }, + { 7, 4, "ms10" }, + { 8, 4, "ms14" }, + { 9, 4, "ms16" }, + { 10, 4, "ms20" }, + { 11, 4, "ms30" }, + { 12, 4, "ms32" }, + { 13, 4, "ms35" }, + { 14, 4, "ms40" }, + { 15, 4, "ms64" }, + { 16, 4, "ms80" }, + { 17, 5, "ms128" }, + { 18, 5, "ms160" }, + { 19, 5, "ms256" }, + { 20, 5, "ms320" }, + { 21, 5, "ms512" }, + { 22, 5, "ms640" }, + { 23, 6, "spare9" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_drx_ShortCycle_enum2value_24[] = { + 7, /* ms10(7) */ + 17, /* ms128(17) */ + 8, /* ms14(8) */ + 9, /* ms16(9) */ + 18, /* ms160(18) */ + 0, /* ms2(0) */ + 10, /* ms20(10) */ + 19, /* ms256(19) */ + 1, /* ms3(1) */ + 11, /* ms30(11) */ + 12, /* ms32(12) */ + 20, /* ms320(20) */ + 13, /* ms35(13) */ + 2, /* ms4(2) */ + 14, /* ms40(14) */ + 3, /* ms5(3) */ + 21, /* ms512(21) */ + 4, /* ms6(4) */ + 15, /* ms64(15) */ + 22, /* ms640(22) */ + 5, /* ms7(5) */ + 6, /* ms8(6) */ + 16, /* ms80(16) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24, /* spare8(24) */ + 23 /* spare9(23) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drx_ShortCycle_specs_24 = { + asn_MAP_ASN_RRC_drx_ShortCycle_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drx_ShortCycle_enum2value_24, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_drx_ShortCycle_tags_24[] = { + (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_ASN_RRC_drx_ShortCycle_24 = { + "drx-ShortCycle", + "drx-ShortCycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drx_ShortCycle_tags_24, + sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_24) + /sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drx_ShortCycle_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_24) + /sizeof(asn_DEF_ASN_RRC_drx_ShortCycle_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drx_ShortCycle_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drx_ShortCycle_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_shortDRX_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__shortDRX, drx_ShortCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_ShortCycle_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ShortCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info__shortDRX, drx_ShortCycleTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_drx_ShortCycleTimer_constr_57, memb_ASN_RRC_drx_ShortCycleTimer_constraint_23 }, + 0, 0, /* No default value */ + "drx-ShortCycleTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_shortDRX_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_shortDRX_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drx-ShortCycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* drx-ShortCycleTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_shortDRX_specs_23 = { + sizeof(struct ASN_RRC_DRX_Info__shortDRX), + offsetof(struct ASN_RRC_DRX_Info__shortDRX, _asn_ctx), + asn_MAP_ASN_RRC_shortDRX_tag2el_23, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_shortDRX_23 = { + "shortDRX", + "shortDRX", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_shortDRX_tags_23, + sizeof(asn_DEF_ASN_RRC_shortDRX_tags_23) + /sizeof(asn_DEF_ASN_RRC_shortDRX_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_shortDRX_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_shortDRX_tags_23) + /sizeof(asn_DEF_ASN_RRC_shortDRX_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_shortDRX_23, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_shortDRX_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DRX_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DRX_Info, drx_LongCycleStartOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drx_LongCycleStartOffset_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-LongCycleStartOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DRX_Info, shortDRX), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_shortDRX_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX" + }, +}; +static const int asn_MAP_ASN_RRC_DRX_Info_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DRX_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DRX_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drx-LongCycleStartOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* shortDRX */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRX_Info_specs_1 = { + sizeof(struct ASN_RRC_DRX_Info), + offsetof(struct ASN_RRC_DRX_Info, _asn_ctx), + asn_MAP_ASN_RRC_DRX_Info_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DRX_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRX_Info = { + "DRX-Info", + "DRX-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DRX_Info_tags_1, + sizeof(asn_DEF_ASN_RRC_DRX_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRX_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DRX_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DRX_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_DRX_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DRX_Info_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DRX_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DRX-Info.h b/src/asn/rrc/ASN_RRC_DRX-Info.h new file mode 100644 index 0000000..aade259 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DRX-Info.h @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DRX_Info_H_ +#define _ASN_RRC_DRX_Info_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR { + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_NOTHING, /* No components present */ + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms10, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms20, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms32, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms40, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms60, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms64, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms70, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms80, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms128, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms160, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms256, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms320, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms512, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms640, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms1024, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms1280, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms2048, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms2560, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms5120, + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR_ms10240 +} ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR; +typedef enum ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle { + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms2 = 0, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms3 = 1, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms4 = 2, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms5 = 3, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms6 = 4, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms7 = 5, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms8 = 6, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms10 = 7, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms14 = 8, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms16 = 9, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms20 = 10, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms30 = 11, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms32 = 12, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms35 = 13, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms40 = 14, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms64 = 15, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms80 = 16, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms128 = 17, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms160 = 18, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms256 = 19, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms320 = 20, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms512 = 21, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_ms640 = 22, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare9 = 23, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare8 = 24, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare7 = 25, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare6 = 26, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare5 = 27, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare4 = 28, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare3 = 29, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare2 = 30, + ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle_spare1 = 31 +} e_ASN_RRC_DRX_Info__shortDRX__drx_ShortCycle; + +/* ASN_RRC_DRX-Info */ +typedef struct ASN_RRC_DRX_Info { + struct ASN_RRC_DRX_Info__drx_LongCycleStartOffset { + ASN_RRC_DRX_Info__drx_LongCycleStartOffset_PR present; + union ASN_RRC_DRX_Info__ASN_RRC_drx_LongCycleStartOffset_u { + long ms10; + long ms20; + long ms32; + long ms40; + long ms60; + long ms64; + long ms70; + long ms80; + long ms128; + long ms160; + long ms256; + long ms320; + long ms512; + long ms640; + long ms1024; + long ms1280; + long ms2048; + long ms2560; + long ms5120; + long ms10240; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } drx_LongCycleStartOffset; + struct ASN_RRC_DRX_Info__shortDRX { + long drx_ShortCycle; + long drx_ShortCycleTimer; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *shortDRX; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DRX_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drx_ShortCycle_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DRX_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DRX_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DRX_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DRX_Info_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DataInactivityTimer.c b/src/asn/rrc/ASN_RRC_DataInactivityTimer.c new file mode 100644 index 0000000..fe0f7ca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DataInactivityTimer.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DataInactivityTimer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_DataInactivityTimer_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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_DataInactivityTimer_value2enum_1[] = { + { 0, 2, "s1" }, + { 1, 2, "s2" }, + { 2, 2, "s3" }, + { 3, 2, "s5" }, + { 4, 2, "s7" }, + { 5, 3, "s10" }, + { 6, 3, "s15" }, + { 7, 3, "s20" }, + { 8, 3, "s40" }, + { 9, 3, "s50" }, + { 10, 3, "s60" }, + { 11, 3, "s80" }, + { 12, 4, "s100" }, + { 13, 4, "s120" }, + { 14, 4, "s150" }, + { 15, 4, "s180" } +}; +static const unsigned int asn_MAP_ASN_RRC_DataInactivityTimer_enum2value_1[] = { + 0, /* s1(0) */ + 5, /* s10(5) */ + 12, /* s100(12) */ + 13, /* s120(13) */ + 6, /* s15(6) */ + 14, /* s150(14) */ + 15, /* s180(15) */ + 1, /* s2(1) */ + 7, /* s20(7) */ + 2, /* s3(2) */ + 8, /* s40(8) */ + 3, /* s5(3) */ + 9, /* s50(9) */ + 10, /* s60(10) */ + 4, /* s7(4) */ + 11 /* s80(11) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_DataInactivityTimer_specs_1 = { + asn_MAP_ASN_RRC_DataInactivityTimer_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_DataInactivityTimer_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_DataInactivityTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DataInactivityTimer = { + "DataInactivityTimer", + "DataInactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_DataInactivityTimer_tags_1, + sizeof(asn_DEF_ASN_RRC_DataInactivityTimer_tags_1) + /sizeof(asn_DEF_ASN_RRC_DataInactivityTimer_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DataInactivityTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DataInactivityTimer_tags_1) + /sizeof(asn_DEF_ASN_RRC_DataInactivityTimer_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_DataInactivityTimer_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_DataInactivityTimer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DataInactivityTimer.h b/src/asn/rrc/ASN_RRC_DataInactivityTimer.h new file mode 100644 index 0000000..5c3a422 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DataInactivityTimer.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DataInactivityTimer_H_ +#define _ASN_RRC_DataInactivityTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DataInactivityTimer { + ASN_RRC_DataInactivityTimer_s1 = 0, + ASN_RRC_DataInactivityTimer_s2 = 1, + ASN_RRC_DataInactivityTimer_s3 = 2, + ASN_RRC_DataInactivityTimer_s5 = 3, + ASN_RRC_DataInactivityTimer_s7 = 4, + ASN_RRC_DataInactivityTimer_s10 = 5, + ASN_RRC_DataInactivityTimer_s15 = 6, + ASN_RRC_DataInactivityTimer_s20 = 7, + ASN_RRC_DataInactivityTimer_s40 = 8, + ASN_RRC_DataInactivityTimer_s50 = 9, + ASN_RRC_DataInactivityTimer_s60 = 10, + ASN_RRC_DataInactivityTimer_s80 = 11, + ASN_RRC_DataInactivityTimer_s100 = 12, + ASN_RRC_DataInactivityTimer_s120 = 13, + ASN_RRC_DataInactivityTimer_s150 = 14, + ASN_RRC_DataInactivityTimer_s180 = 15 +} e_ASN_RRC_DataInactivityTimer; + +/* ASN_RRC_DataInactivityTimer */ +typedef long ASN_RRC_DataInactivityTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DataInactivityTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DataInactivityTimer; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_DataInactivityTimer_specs_1; +asn_struct_free_f ASN_RRC_DataInactivityTimer_free; +asn_struct_print_f ASN_RRC_DataInactivityTimer_print; +asn_constr_check_f ASN_RRC_DataInactivityTimer_constraint; +ber_type_decoder_f ASN_RRC_DataInactivityTimer_decode_ber; +der_type_encoder_f ASN_RRC_DataInactivityTimer_encode_der; +xer_type_decoder_f ASN_RRC_DataInactivityTimer_decode_xer; +xer_type_encoder_f ASN_RRC_DataInactivityTimer_encode_xer; +per_type_decoder_f ASN_RRC_DataInactivityTimer_decode_uper; +per_type_encoder_f ASN_RRC_DataInactivityTimer_encode_uper; +per_type_decoder_f ASN_RRC_DataInactivityTimer_decode_aper; +per_type_encoder_f ASN_RRC_DataInactivityTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DataInactivityTimer_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.c b/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.c new file mode 100644 index 0000000..73994f8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DedicatedNAS-Message.h" + +/* + * This type is implemented using OCTET_STRING, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DedicatedNAS_Message = { + "DedicatedNAS-Message", + "DedicatedNAS-Message", + &asn_OP_OCTET_STRING, + asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_DedicatedNAS_Message_tags_1[0]), /* 1 */ + { 0, 0, OCTET_STRING_constraint }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.h b/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.h new file mode 100644 index 0000000..35a3b04 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DedicatedNAS-Message.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DedicatedNAS_Message_H_ +#define _ASN_RRC_DedicatedNAS_Message_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DedicatedNAS-Message */ +typedef OCTET_STRING_t ASN_RRC_DedicatedNAS_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DedicatedNAS_Message; +asn_struct_free_f ASN_RRC_DedicatedNAS_Message_free; +asn_struct_print_f ASN_RRC_DedicatedNAS_Message_print; +asn_constr_check_f ASN_RRC_DedicatedNAS_Message_constraint; +ber_type_decoder_f ASN_RRC_DedicatedNAS_Message_decode_ber; +der_type_encoder_f ASN_RRC_DedicatedNAS_Message_encode_der; +xer_type_decoder_f ASN_RRC_DedicatedNAS_Message_decode_xer; +xer_type_encoder_f ASN_RRC_DedicatedNAS_Message_encode_xer; +per_type_decoder_f ASN_RRC_DedicatedNAS_Message_decode_uper; +per_type_encoder_f ASN_RRC_DedicatedNAS_Message_encode_uper; +per_type_decoder_f ASN_RRC_DedicatedNAS_Message_decode_aper; +per_type_encoder_f ASN_RRC_DedicatedNAS_Message_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DedicatedNAS_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DelayBudgetReport.c b/src/asn/rrc/ASN_RRC_DelayBudgetReport.c new file mode 100644 index 0000000..56c6976 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DelayBudgetReport.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DelayBudgetReport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_type1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (0..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_DelayBudgetReport_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_ASN_RRC_type1_value2enum_2[] = { + { 0, 11, "msMinus1280" }, + { 1, 10, "msMinus640" }, + { 2, 10, "msMinus320" }, + { 3, 10, "msMinus160" }, + { 4, 9, "msMinus80" }, + { 5, 9, "msMinus60" }, + { 6, 9, "msMinus40" }, + { 7, 9, "msMinus20" }, + { 8, 3, "ms0" }, + { 9, 4, "ms20" }, + { 10, 4, "ms40" }, + { 11, 4, "ms60" }, + { 12, 4, "ms80" }, + { 13, 5, "ms160" }, + { 14, 5, "ms320" }, + { 15, 5, "ms640" }, + { 16, 6, "ms1280" } +}; +static const unsigned int asn_MAP_ASN_RRC_type1_enum2value_2[] = { + 8, /* ms0(8) */ + 16, /* ms1280(16) */ + 13, /* ms160(13) */ + 9, /* ms20(9) */ + 14, /* ms320(14) */ + 10, /* ms40(10) */ + 11, /* ms60(11) */ + 15, /* ms640(15) */ + 12, /* ms80(12) */ + 0, /* msMinus1280(0) */ + 3, /* msMinus160(3) */ + 7, /* msMinus20(7) */ + 2, /* msMinus320(2) */ + 6, /* msMinus40(6) */ + 5, /* msMinus60(5) */ + 1, /* msMinus640(1) */ + 4 /* msMinus80(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type1_specs_2 = { + asn_MAP_ASN_RRC_type1_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type1_enum2value_2, /* N => "tag"; sorted by N */ + 17, /* 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_ASN_RRC_type1_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_ASN_RRC_type1_2 = { + "type1", + "type1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type1_tags_2, + sizeof(asn_DEF_ASN_RRC_type1_tags_2) + /sizeof(asn_DEF_ASN_RRC_type1_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type1_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type1_tags_2) + /sizeof(asn_DEF_ASN_RRC_type1_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type1_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type1_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DelayBudgetReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DelayBudgetReport, choice.type1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DelayBudgetReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* type1 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DelayBudgetReport_specs_1 = { + sizeof(struct ASN_RRC_DelayBudgetReport), + offsetof(struct ASN_RRC_DelayBudgetReport, _asn_ctx), + offsetof(struct ASN_RRC_DelayBudgetReport, present), + sizeof(((struct ASN_RRC_DelayBudgetReport *)0)->present), + asn_MAP_ASN_RRC_DelayBudgetReport_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DelayBudgetReport = { + "DelayBudgetReport", + "DelayBudgetReport", + &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_ASN_RRC_DelayBudgetReport_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_DelayBudgetReport_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_DelayBudgetReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DelayBudgetReport.h b/src/asn/rrc/ASN_RRC_DelayBudgetReport.h new file mode 100644 index 0000000..8954a4e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DelayBudgetReport.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DelayBudgetReport_H_ +#define _ASN_RRC_DelayBudgetReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DelayBudgetReport_PR { + ASN_RRC_DelayBudgetReport_PR_NOTHING, /* No components present */ + ASN_RRC_DelayBudgetReport_PR_type1 + /* Extensions may appear below */ + +} ASN_RRC_DelayBudgetReport_PR; +typedef enum ASN_RRC_DelayBudgetReport__type1 { + ASN_RRC_DelayBudgetReport__type1_msMinus1280 = 0, + ASN_RRC_DelayBudgetReport__type1_msMinus640 = 1, + ASN_RRC_DelayBudgetReport__type1_msMinus320 = 2, + ASN_RRC_DelayBudgetReport__type1_msMinus160 = 3, + ASN_RRC_DelayBudgetReport__type1_msMinus80 = 4, + ASN_RRC_DelayBudgetReport__type1_msMinus60 = 5, + ASN_RRC_DelayBudgetReport__type1_msMinus40 = 6, + ASN_RRC_DelayBudgetReport__type1_msMinus20 = 7, + ASN_RRC_DelayBudgetReport__type1_ms0 = 8, + ASN_RRC_DelayBudgetReport__type1_ms20 = 9, + ASN_RRC_DelayBudgetReport__type1_ms40 = 10, + ASN_RRC_DelayBudgetReport__type1_ms60 = 11, + ASN_RRC_DelayBudgetReport__type1_ms80 = 12, + ASN_RRC_DelayBudgetReport__type1_ms160 = 13, + ASN_RRC_DelayBudgetReport__type1_ms320 = 14, + ASN_RRC_DelayBudgetReport__type1_ms640 = 15, + ASN_RRC_DelayBudgetReport__type1_ms1280 = 16 +} e_ASN_RRC_DelayBudgetReport__type1; + +/* ASN_RRC_DelayBudgetReport */ +typedef struct ASN_RRC_DelayBudgetReport { + ASN_RRC_DelayBudgetReport_PR present; + union ASN_RRC_DelayBudgetReport_u { + long type1; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DelayBudgetReport_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DelayBudgetReport; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_DelayBudgetReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DelayBudgetReport_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_DelayBudgetReport_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DelayBudgetReport_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.c b/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.c new file mode 100644 index 0000000..e1a96ad --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DownlinkConfigCommon.h" + +#include "ASN_RRC_FrequencyInfoDL.h" +#include "ASN_RRC_BWP-DownlinkCommon.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkConfigCommon_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_DownlinkConfigCommon, frequencyInfoDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FrequencyInfoDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DownlinkConfigCommon, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, +}; +static const int asn_MAP_ASN_RRC_DownlinkConfigCommon_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DownlinkConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyInfoDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* initialDownlinkBWP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_DownlinkConfigCommon), + offsetof(struct ASN_RRC_DownlinkConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_DownlinkConfigCommon_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DownlinkConfigCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkConfigCommon = { + "DownlinkConfigCommon", + "DownlinkConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DownlinkConfigCommon_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DownlinkConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.h b/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.h new file mode 100644 index 0000000..f08ac0d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkConfigCommon.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DownlinkConfigCommon_H_ +#define _ASN_RRC_DownlinkConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FrequencyInfoDL; +struct ASN_RRC_BWP_DownlinkCommon; + +/* ASN_RRC_DownlinkConfigCommon */ +typedef struct ASN_RRC_DownlinkConfigCommon { + struct ASN_RRC_FrequencyInfoDL *frequencyInfoDL; /* OPTIONAL */ + struct ASN_RRC_BWP_DownlinkCommon *initialDownlinkBWP; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DownlinkConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkConfigCommon_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DownlinkConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.c b/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.c new file mode 100644 index 0000000..8d0012f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DownlinkConfigCommonSIB.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkConfigCommonSIB, frequencyInfoDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FrequencyInfoDL_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkConfigCommonSIB, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkConfigCommonSIB, bcch_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bcch-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkConfigCommonSIB, pcch_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pcch-Config" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DownlinkConfigCommonSIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyInfoDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* initialDownlinkBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bcch-Config */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* pcch-Config */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkConfigCommonSIB_specs_1 = { + sizeof(struct ASN_RRC_DownlinkConfigCommonSIB), + offsetof(struct ASN_RRC_DownlinkConfigCommonSIB, _asn_ctx), + asn_MAP_ASN_RRC_DownlinkConfigCommonSIB_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkConfigCommonSIB = { + "DownlinkConfigCommonSIB", + "DownlinkConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1, + sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DownlinkConfigCommonSIB_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_DownlinkConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.h b/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.h new file mode 100644 index 0000000..5962a1d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkConfigCommonSIB.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DownlinkConfigCommonSIB_H_ +#define _ASN_RRC_DownlinkConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FrequencyInfoDL-SIB.h" +#include "ASN_RRC_BWP-DownlinkCommon.h" +#include "ASN_RRC_BCCH-Config.h" +#include "ASN_RRC_PCCH-Config.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DownlinkConfigCommonSIB */ +typedef struct ASN_RRC_DownlinkConfigCommonSIB { + ASN_RRC_FrequencyInfoDL_SIB_t frequencyInfoDL; + ASN_RRC_BWP_DownlinkCommon_t initialDownlinkBWP; + ASN_RRC_BCCH_Config_t bcch_Config; + ASN_RRC_PCCH_Config_t pcch_Config; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DownlinkConfigCommonSIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkConfigCommonSIB_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DownlinkConfigCommonSIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DownlinkPreemption.c b/src/asn/rrc/ASN_RRC_DownlinkPreemption.c new file mode 100644 index 0000000..dbab152 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkPreemption.c @@ -0,0 +1,230 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DownlinkPreemption.h" + +#include "ASN_RRC_INT-ConfigurationPerServingCell.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_dci_PayloadSize_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 <= 126)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_int_ConfigurationPerServingCell_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_ASN_RRC_timeFrequencySet_constr_3 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_type_ASN_RRC_int_ConfigurationPerServingCell_constr_7 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_ASN_RRC_dci_PayloadSize_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 126 } /* (0..126) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_int_ConfigurationPerServingCell_constr_7 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeFrequencySet_value2enum_3[] = { + { 0, 4, "set0" }, + { 1, 4, "set1" } +}; +static const unsigned int asn_MAP_ASN_RRC_timeFrequencySet_enum2value_3[] = { + 0, /* set0(0) */ + 1 /* set1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeFrequencySet_specs_3 = { + asn_MAP_ASN_RRC_timeFrequencySet_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_timeFrequencySet_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeFrequencySet_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_ASN_RRC_timeFrequencySet_3 = { + "timeFrequencySet", + "timeFrequencySet", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_timeFrequencySet_tags_3, + sizeof(asn_DEF_ASN_RRC_timeFrequencySet_tags_3) + /sizeof(asn_DEF_ASN_RRC_timeFrequencySet_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeFrequencySet_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeFrequencySet_tags_3) + /sizeof(asn_DEF_ASN_RRC_timeFrequencySet_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeFrequencySet_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_timeFrequencySet_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_int_ConfigurationPerServingCell_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_int_ConfigurationPerServingCell_specs_7 = { + sizeof(struct ASN_RRC_DownlinkPreemption__int_ConfigurationPerServingCell), + offsetof(struct ASN_RRC_DownlinkPreemption__int_ConfigurationPerServingCell, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_7 = { + "int-ConfigurationPerServingCell", + "int-ConfigurationPerServingCell", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7, + sizeof(asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7) + /sizeof(asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7) + /sizeof(asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_int_ConfigurationPerServingCell_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_int_ConfigurationPerServingCell_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_int_ConfigurationPerServingCell_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkPreemption_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkPreemption, int_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "int-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkPreemption, timeFrequencySet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_timeFrequencySet_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeFrequencySet" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkPreemption, dci_PayloadSize), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dci_PayloadSize_constr_6, memb_ASN_RRC_dci_PayloadSize_constraint_1 }, + 0, 0, /* No default value */ + "dci-PayloadSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DownlinkPreemption, int_ConfigurationPerServingCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_int_ConfigurationPerServingCell_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_int_ConfigurationPerServingCell_constr_7, memb_ASN_RRC_int_ConfigurationPerServingCell_constraint_1 }, + 0, 0, /* No default value */ + "int-ConfigurationPerServingCell" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DownlinkPreemption_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DownlinkPreemption_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* int-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeFrequencySet */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dci-PayloadSize */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* int-ConfigurationPerServingCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkPreemption_specs_1 = { + sizeof(struct ASN_RRC_DownlinkPreemption), + offsetof(struct ASN_RRC_DownlinkPreemption, _asn_ctx), + asn_MAP_ASN_RRC_DownlinkPreemption_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkPreemption = { + "DownlinkPreemption", + "DownlinkPreemption", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DownlinkPreemption_tags_1, + sizeof(asn_DEF_ASN_RRC_DownlinkPreemption_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkPreemption_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DownlinkPreemption_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DownlinkPreemption_tags_1) + /sizeof(asn_DEF_ASN_RRC_DownlinkPreemption_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DownlinkPreemption_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_DownlinkPreemption_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DownlinkPreemption.h b/src/asn/rrc/ASN_RRC_DownlinkPreemption.h new file mode 100644 index 0000000..0a78748 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DownlinkPreemption.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DownlinkPreemption_H_ +#define _ASN_RRC_DownlinkPreemption_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RNTI-Value.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DownlinkPreemption__timeFrequencySet { + ASN_RRC_DownlinkPreemption__timeFrequencySet_set0 = 0, + ASN_RRC_DownlinkPreemption__timeFrequencySet_set1 = 1 +} e_ASN_RRC_DownlinkPreemption__timeFrequencySet; + +/* Forward declarations */ +struct ASN_RRC_INT_ConfigurationPerServingCell; + +/* ASN_RRC_DownlinkPreemption */ +typedef struct ASN_RRC_DownlinkPreemption { + ASN_RRC_RNTI_Value_t int_RNTI; + long timeFrequencySet; + long dci_PayloadSize; + struct ASN_RRC_DownlinkPreemption__int_ConfigurationPerServingCell { + A_SEQUENCE_OF(struct ASN_RRC_INT_ConfigurationPerServingCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } int_ConfigurationPerServingCell; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DownlinkPreemption_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeFrequencySet_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DownlinkPreemption; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DownlinkPreemption_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DownlinkPreemption_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DownlinkPreemption_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyA.c b/src/asn/rrc/ASN_RRC_DummyA.c new file mode 100644 index 0000000..473eb9e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyA.c @@ -0,0 +1,502 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyA.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_ASN_RRC_maxNumberNZP_CSI_RS_PerCC_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 <= 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_type_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 34 } /* (0..34) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberCS_IM_PerCC_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberNZP_CSI_RS_PerCC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_value2enum_3[] = { + { 0, 2, "p2" }, + { 1, 2, "p4" }, + { 2, 2, "p8" }, + { 3, 3, "p12" }, + { 4, 3, "p16" }, + { 5, 3, "p24" }, + { 6, 3, "p32" }, + { 7, 3, "p40" }, + { 8, 3, "p48" }, + { 9, 3, "p56" }, + { 10, 3, "p64" }, + { 11, 3, "p72" }, + { 12, 3, "p80" }, + { 13, 3, "p88" }, + { 14, 3, "p96" }, + { 15, 4, "p104" }, + { 16, 4, "p112" }, + { 17, 4, "p120" }, + { 18, 4, "p128" }, + { 19, 4, "p136" }, + { 20, 4, "p144" }, + { 21, 4, "p152" }, + { 22, 4, "p160" }, + { 23, 4, "p168" }, + { 24, 4, "p176" }, + { 25, 4, "p184" }, + { 26, 4, "p192" }, + { 27, 4, "p200" }, + { 28, 4, "p208" }, + { 29, 4, "p216" }, + { 30, 4, "p224" }, + { 31, 4, "p232" }, + { 32, 4, "p240" }, + { 33, 4, "p248" }, + { 34, 4, "p256" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_enum2value_3[] = { + 15, /* p104(15) */ + 16, /* p112(16) */ + 3, /* p12(3) */ + 17, /* p120(17) */ + 18, /* p128(18) */ + 19, /* p136(19) */ + 20, /* p144(20) */ + 21, /* p152(21) */ + 4, /* p16(4) */ + 22, /* p160(22) */ + 23, /* p168(23) */ + 24, /* p176(24) */ + 25, /* p184(25) */ + 26, /* p192(26) */ + 0, /* p2(0) */ + 27, /* p200(27) */ + 28, /* p208(28) */ + 29, /* p216(29) */ + 30, /* p224(30) */ + 31, /* p232(31) */ + 5, /* p24(5) */ + 32, /* p240(32) */ + 33, /* p248(33) */ + 34, /* p256(34) */ + 6, /* p32(6) */ + 1, /* p4(1) */ + 7, /* p40(7) */ + 8, /* p48(8) */ + 9, /* p56(9) */ + 10, /* p64(10) */ + 11, /* p72(11) */ + 2, /* p8(2) */ + 12, /* p80(12) */ + 13, /* p88(13) */ + 14 /* p96(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_specs_3 = { + asn_MAP_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_enum2value_3, /* N => "tag"; sorted by N */ + 35, /* 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_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_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_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3 = { + "maxNumberPortsAcrossNZP-CSI-RS-PerCC", + "maxNumberPortsAcrossNZP-CSI-RS-PerCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3, + sizeof(asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3) + /sizeof(asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3) + /sizeof(asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberCS_IM_PerCC_value2enum_39[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" }, + { 5, 3, "n32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberCS_IM_PerCC_enum2value_39[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 5, /* n32(5) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberCS_IM_PerCC_specs_39 = { + asn_MAP_ASN_RRC_maxNumberCS_IM_PerCC_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberCS_IM_PerCC_enum2value_39, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39[] = { + (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_ASN_RRC_maxNumberCS_IM_PerCC_39 = { + "maxNumberCS-IM-PerCC", + "maxNumberCS-IM-PerCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39, + sizeof(asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39) + /sizeof(asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39) + /sizeof(asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_tags_39[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberCS_IM_PerCC_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberCS_IM_PerCC_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_value2enum_46[] = { + { 0, 2, "n5" }, + { 1, 2, "n6" }, + { 2, 2, "n7" }, + { 3, 2, "n8" }, + { 4, 2, "n9" }, + { 5, 3, "n10" }, + { 6, 3, "n12" }, + { 7, 3, "n14" }, + { 8, 3, "n16" }, + { 9, 3, "n18" }, + { 10, 3, "n20" }, + { 11, 3, "n22" }, + { 12, 3, "n24" }, + { 13, 3, "n26" }, + { 14, 3, "n28" }, + { 15, 3, "n30" }, + { 16, 3, "n32" }, + { 17, 3, "n34" }, + { 18, 3, "n36" }, + { 19, 3, "n38" }, + { 20, 3, "n40" }, + { 21, 3, "n42" }, + { 22, 3, "n44" }, + { 23, 3, "n46" }, + { 24, 3, "n48" }, + { 25, 3, "n50" }, + { 26, 3, "n52" }, + { 27, 3, "n54" }, + { 28, 3, "n56" }, + { 29, 3, "n58" }, + { 30, 3, "n60" }, + { 31, 3, "n62" }, + { 32, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_enum2value_46[] = { + 5, /* n10(5) */ + 6, /* n12(6) */ + 7, /* n14(7) */ + 8, /* n16(8) */ + 9, /* n18(9) */ + 10, /* n20(10) */ + 11, /* n22(11) */ + 12, /* n24(12) */ + 13, /* n26(13) */ + 14, /* n28(14) */ + 15, /* n30(15) */ + 16, /* n32(16) */ + 17, /* n34(17) */ + 18, /* n36(18) */ + 19, /* n38(19) */ + 20, /* n40(20) */ + 21, /* n42(21) */ + 22, /* n44(22) */ + 23, /* n46(23) */ + 24, /* n48(24) */ + 0, /* n5(0) */ + 25, /* n50(25) */ + 26, /* n52(26) */ + 27, /* n54(27) */ + 28, /* n56(28) */ + 29, /* n58(29) */ + 1, /* n6(1) */ + 30, /* n60(30) */ + 31, /* n62(31) */ + 32, /* n64(32) */ + 2, /* n7(2) */ + 3, /* n8(3) */ + 4 /* n9(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_specs_46 = { + asn_MAP_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_enum2value_46, /* N => "tag"; sorted by N */ + 33, /* 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_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46[] = { + (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_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46 = { + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC", + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46, + sizeof(asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46) + /sizeof(asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46) + /sizeof(asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_value2enum_80[] = { + { 0, 2, "p8" }, + { 1, 3, "p12" }, + { 2, 3, "p16" }, + { 3, 3, "p24" }, + { 4, 3, "p32" }, + { 5, 3, "p40" }, + { 6, 3, "p48" }, + { 7, 3, "p56" }, + { 8, 3, "p64" }, + { 9, 3, "p72" }, + { 10, 3, "p80" }, + { 11, 3, "p88" }, + { 12, 3, "p96" }, + { 13, 4, "p104" }, + { 14, 4, "p112" }, + { 15, 4, "p120" }, + { 16, 4, "p128" }, + { 17, 4, "p136" }, + { 18, 4, "p144" }, + { 19, 4, "p152" }, + { 20, 4, "p160" }, + { 21, 4, "p168" }, + { 22, 4, "p176" }, + { 23, 4, "p184" }, + { 24, 4, "p192" }, + { 25, 4, "p200" }, + { 26, 4, "p208" }, + { 27, 4, "p216" }, + { 28, 4, "p224" }, + { 29, 4, "p232" }, + { 30, 4, "p240" }, + { 31, 4, "p248" }, + { 32, 4, "p256" } +}; +static const unsigned int asn_MAP_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_enum2value_80[] = { + 13, /* p104(13) */ + 14, /* p112(14) */ + 1, /* p12(1) */ + 15, /* p120(15) */ + 16, /* p128(16) */ + 17, /* p136(17) */ + 18, /* p144(18) */ + 19, /* p152(19) */ + 2, /* p16(2) */ + 20, /* p160(20) */ + 21, /* p168(21) */ + 22, /* p176(22) */ + 23, /* p184(23) */ + 24, /* p192(24) */ + 25, /* p200(25) */ + 26, /* p208(26) */ + 27, /* p216(27) */ + 28, /* p224(28) */ + 29, /* p232(29) */ + 3, /* p24(3) */ + 30, /* p240(30) */ + 31, /* p248(31) */ + 32, /* p256(32) */ + 4, /* p32(4) */ + 5, /* p40(5) */ + 6, /* p48(6) */ + 7, /* p56(7) */ + 8, /* p64(8) */ + 9, /* p72(9) */ + 0, /* p8(0) */ + 10, /* p80(10) */ + 11, /* p88(11) */ + 12 /* p96(12) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_specs_80 = { + asn_MAP_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_enum2value_80, /* N => "tag"; sorted by N */ + 33, /* 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_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80[] = { + (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_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_80 = { + "totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC", + "totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80, + sizeof(asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80) + /sizeof(asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80) + /sizeof(asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyA, maxNumberNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberNZP_CSI_RS_PerCC_constr_2, memb_ASN_RRC_maxNumberNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyA, maxNumberPortsAcrossNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberPortsAcrossNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyA, maxNumberCS_IM_PerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCS-IM-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyA, maxNumberSimultaneousCSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyA, totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberNZP-CSI-RS-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberPortsAcrossNZP-CSI-RS-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberCS-IM-PerCC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxNumberSimultaneousCSI-RS-ActBWP-AllCC */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyA_specs_1 = { + sizeof(struct ASN_RRC_DummyA), + offsetof(struct ASN_RRC_DummyA, _asn_ctx), + asn_MAP_ASN_RRC_DummyA_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyA = { + "DummyA", + "DummyA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyA_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyA_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyA_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyA_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_DummyA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyA.h b/src/asn/rrc/ASN_RRC_DummyA.h new file mode 100644 index 0000000..b1c83ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyA.h @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyA_H_ +#define _ASN_RRC_DummyA_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC { + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p2 = 0, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p4 = 1, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p8 = 2, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p12 = 3, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p16 = 4, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p24 = 5, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p32 = 6, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p40 = 7, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p48 = 8, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p56 = 9, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p64 = 10, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p72 = 11, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p80 = 12, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p88 = 13, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p96 = 14, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p104 = 15, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p112 = 16, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p120 = 17, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p128 = 18, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p136 = 19, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p144 = 20, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p152 = 21, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p160 = 22, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p168 = 23, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p176 = 24, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p184 = 25, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p192 = 26, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p200 = 27, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p208 = 28, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p216 = 29, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p224 = 30, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p232 = 31, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p240 = 32, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p248 = 33, + ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p256 = 34 +} e_ASN_RRC_DummyA__maxNumberPortsAcrossNZP_CSI_RS_PerCC; +typedef enum ASN_RRC_DummyA__maxNumberCS_IM_PerCC { + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n1 = 0, + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n2 = 1, + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n4 = 2, + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n8 = 3, + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n16 = 4, + ASN_RRC_DummyA__maxNumberCS_IM_PerCC_n32 = 5 +} e_ASN_RRC_DummyA__maxNumberCS_IM_PerCC; +typedef enum ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC { + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n5 = 0, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n6 = 1, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n7 = 2, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n8 = 3, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n9 = 4, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n10 = 5, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n12 = 6, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n14 = 7, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n16 = 8, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n18 = 9, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n20 = 10, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n22 = 11, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n24 = 12, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n26 = 13, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n28 = 14, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n30 = 15, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n32 = 16, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n34 = 17, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n36 = 18, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n38 = 19, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n40 = 20, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n42 = 21, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n44 = 22, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n46 = 23, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n48 = 24, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n50 = 25, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n52 = 26, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n54 = 27, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n56 = 28, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n58 = 29, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n60 = 30, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n62 = 31, + ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n64 = 32 +} e_ASN_RRC_DummyA__maxNumberSimultaneousCSI_RS_ActBWP_AllCC; +typedef enum ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC { + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p8 = 0, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p12 = 1, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p16 = 2, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p24 = 3, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p32 = 4, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p40 = 5, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p48 = 6, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p56 = 7, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p64 = 8, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p72 = 9, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p80 = 10, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p88 = 11, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p96 = 12, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p104 = 13, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p112 = 14, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p120 = 15, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p128 = 16, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p136 = 17, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p144 = 18, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p152 = 19, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p160 = 20, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p168 = 21, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p176 = 22, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p184 = 23, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p192 = 24, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p200 = 25, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p208 = 26, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p216 = 27, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p224 = 28, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p232 = 29, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p240 = 30, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p248 = 31, + ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p256 = 32 +} e_ASN_RRC_DummyA__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC; + +/* ASN_RRC_DummyA */ +typedef struct ASN_RRC_DummyA { + long maxNumberNZP_CSI_RS_PerCC; + long maxNumberPortsAcrossNZP_CSI_RS_PerCC; + long maxNumberCS_IM_PerCC; + long maxNumberSimultaneousCSI_RS_ActBWP_AllCC; + long totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberCS_IM_PerCC_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_80; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyA_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyB.c b/src/asn/rrc/ASN_RRC_DummyB.c new file mode 100644 index 0000000..c70bc0c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyB.c @@ -0,0 +1,282 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyB.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 int +memb_ASN_RRC_maxNumberResources_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberTxPorts_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 >= 2 && 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; + } +} + +static int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_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 <= 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_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCodebookMode_constr_12 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_ASN_RRC_maxNumberResources_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p2" }, + { 1, 2, "p4" }, + { 2, 2, "p8" }, + { 3, 3, "p12" }, + { 4, 3, "p16" }, + { 5, 3, "p24" }, + { 6, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2[] = { + 3, /* p12(3) */ + 4, /* p16(4) */ + 0, /* p2(0) */ + 5, /* p24(5) */ + 6, /* p32(6) */ + 1, /* p4(1) */ + 2 /* p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_maxNumberTxPortsPerResource_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_ASN_RRC_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedCodebookMode_value2enum_12[] = { + { 0, 5, "mode1" }, + { 1, 13, "mode1AndMode2" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedCodebookMode_enum2value_12[] = { + 0, /* mode1(0) */ + 1 /* mode1AndMode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedCodebookMode_specs_12 = { + asn_MAP_ASN_RRC_supportedCodebookMode_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedCodebookMode_enum2value_12, /* 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_ASN_RRC_supportedCodebookMode_tags_12[] = { + (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_ASN_RRC_supportedCodebookMode_12 = { + "supportedCodebookMode", + "supportedCodebookMode", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedCodebookMode_tags_12, + sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_12) + /sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCodebookMode_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_12) + /sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCodebookMode_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedCodebookMode_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyB, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyB, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberResources_constr_10, memb_ASN_RRC_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyB, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_11, memb_ASN_RRC_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyB, supportedCodebookMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedCodebookMode_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCodebookMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyB, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supportedCodebookMode */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyB_specs_1 = { + sizeof(struct ASN_RRC_DummyB), + offsetof(struct ASN_RRC_DummyB, _asn_ctx), + asn_MAP_ASN_RRC_DummyB_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyB = { + "DummyB", + "DummyB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyB_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyB_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyB_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyB_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_DummyB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyB.h b/src/asn/rrc/ASN_RRC_DummyB.h new file mode 100644 index 0000000..4d3a20e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyB.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyB_H_ +#define _ASN_RRC_DummyB_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyB__maxNumberTxPortsPerResource { + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p2 = 0, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p4 = 1, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p8 = 2, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p12 = 3, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p16 = 4, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p24 = 5, + ASN_RRC_DummyB__maxNumberTxPortsPerResource_p32 = 6 +} e_ASN_RRC_DummyB__maxNumberTxPortsPerResource; +typedef enum ASN_RRC_DummyB__supportedCodebookMode { + ASN_RRC_DummyB__supportedCodebookMode_mode1 = 0, + ASN_RRC_DummyB__supportedCodebookMode_mode1AndMode2 = 1 +} e_ASN_RRC_DummyB__supportedCodebookMode; + +/* ASN_RRC_DummyB */ +typedef struct ASN_RRC_DummyB { + long maxNumberTxPortsPerResource; + long maxNumberResources; + long totalNumberTxPorts; + long supportedCodebookMode; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCodebookMode_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyB_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyC.c b/src/asn/rrc/ASN_RRC_DummyC.c new file mode 100644 index 0000000..6f03d52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyC.c @@ -0,0 +1,332 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyC.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 int +memb_ASN_RRC_maxNumberResources_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberTxPorts_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 >= 2 && 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; + } +} + +static int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_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 <= 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_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_supportedCodebookMode_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_supportedNumberPanels_constr_12 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_ASN_RRC_maxNumberResources_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p8" }, + { 1, 3, "p16" }, + { 2, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2[] = { + 1, /* p16(1) */ + 2, /* p32(2) */ + 0 /* p8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2, /* 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_ASN_RRC_maxNumberTxPortsPerResource_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_ASN_RRC_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedCodebookMode_value2enum_8[] = { + { 0, 5, "mode1" }, + { 1, 5, "mode2" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedCodebookMode_enum2value_8[] = { + 2, /* both(2) */ + 0, /* mode1(0) */ + 1 /* mode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedCodebookMode_specs_8 = { + asn_MAP_ASN_RRC_supportedCodebookMode_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedCodebookMode_enum2value_8, /* 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_ASN_RRC_supportedCodebookMode_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_ASN_RRC_supportedCodebookMode_8 = { + "supportedCodebookMode", + "supportedCodebookMode", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedCodebookMode_tags_8, + sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_8) + /sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCodebookMode_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_8) + /sizeof(asn_DEF_ASN_RRC_supportedCodebookMode_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCodebookMode_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedCodebookMode_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedNumberPanels_value2enum_12[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedNumberPanels_enum2value_12[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedNumberPanels_specs_12 = { + asn_MAP_ASN_RRC_supportedNumberPanels_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedNumberPanels_enum2value_12, /* 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_ASN_RRC_supportedNumberPanels_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_ASN_RRC_supportedNumberPanels_12 = { + "supportedNumberPanels", + "supportedNumberPanels", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedNumberPanels_tags_12, + sizeof(asn_DEF_ASN_RRC_supportedNumberPanels_tags_12) + /sizeof(asn_DEF_ASN_RRC_supportedNumberPanels_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedNumberPanels_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedNumberPanels_tags_12) + /sizeof(asn_DEF_ASN_RRC_supportedNumberPanels_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedNumberPanels_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedNumberPanels_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberResources_constr_6, memb_ASN_RRC_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_7, memb_ASN_RRC_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, supportedCodebookMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedCodebookMode_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCodebookMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, supportedNumberPanels), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedNumberPanels_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedNumberPanels" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyC, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supportedCodebookMode */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* supportedNumberPanels */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyC_specs_1 = { + sizeof(struct ASN_RRC_DummyC), + offsetof(struct ASN_RRC_DummyC, _asn_ctx), + asn_MAP_ASN_RRC_DummyC_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyC = { + "DummyC", + "DummyC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyC_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyC_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyC_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_DummyC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyC.h b/src/asn/rrc/ASN_RRC_DummyC.h new file mode 100644 index 0000000..d0bea35 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyC.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyC_H_ +#define _ASN_RRC_DummyC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyC__maxNumberTxPortsPerResource { + ASN_RRC_DummyC__maxNumberTxPortsPerResource_p8 = 0, + ASN_RRC_DummyC__maxNumberTxPortsPerResource_p16 = 1, + ASN_RRC_DummyC__maxNumberTxPortsPerResource_p32 = 2 +} e_ASN_RRC_DummyC__maxNumberTxPortsPerResource; +typedef enum ASN_RRC_DummyC__supportedCodebookMode { + ASN_RRC_DummyC__supportedCodebookMode_mode1 = 0, + ASN_RRC_DummyC__supportedCodebookMode_mode2 = 1, + ASN_RRC_DummyC__supportedCodebookMode_both = 2 +} e_ASN_RRC_DummyC__supportedCodebookMode; +typedef enum ASN_RRC_DummyC__supportedNumberPanels { + ASN_RRC_DummyC__supportedNumberPanels_n2 = 0, + ASN_RRC_DummyC__supportedNumberPanels_n4 = 1 +} e_ASN_RRC_DummyC__supportedNumberPanels; + +/* ASN_RRC_DummyC */ +typedef struct ASN_RRC_DummyC { + long maxNumberTxPortsPerResource; + long maxNumberResources; + long totalNumberTxPorts; + long supportedCodebookMode; + long supportedNumberPanels; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCodebookMode_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedNumberPanels_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyC_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyD.c b/src/asn/rrc/ASN_RRC_DummyD.c new file mode 100644 index 0000000..4da0790 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyD.c @@ -0,0 +1,376 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyD.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 int +memb_ASN_RRC_maxNumberResources_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberTxPorts_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 >= 2 && 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; + } +} + +static int +memb_ASN_RRC_parameterLx_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 >= 2 && 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 int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_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 <= 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_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_amplitudeScalingType_constr_12 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_type_ASN_RRC_amplitudeSubsetRestriction_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_maxNumberResources_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_parameterLx_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 2, 4 } /* (2..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p4" }, + { 1, 2, "p8" }, + { 2, 3, "p12" }, + { 3, 3, "p16" }, + { 4, 3, "p24" }, + { 5, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2[] = { + 2, /* p12(2) */ + 3, /* p16(3) */ + 4, /* p24(4) */ + 5, /* p32(5) */ + 0, /* p4(0) */ + 1 /* p8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_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_ASN_RRC_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_12[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_12[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeScalingType_specs_12 = { + asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_12, /* 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_ASN_RRC_amplitudeScalingType_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_ASN_RRC_amplitudeScalingType_12 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeScalingType_tags_12, + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeScalingType_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeScalingType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeScalingType_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeSubsetRestriction_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeSubsetRestriction_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeSubsetRestriction_specs_15 = { + asn_MAP_ASN_RRC_amplitudeSubsetRestriction_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeSubsetRestriction_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15[] = { + (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_ASN_RRC_amplitudeSubsetRestriction_15 = { + "amplitudeSubsetRestriction", + "amplitudeSubsetRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15, + sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15) + /sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15) + /sizeof(asn_DEF_ASN_RRC_amplitudeSubsetRestriction_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeSubsetRestriction_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeSubsetRestriction_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyD_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberResources_constr_9, memb_ASN_RRC_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_10, memb_ASN_RRC_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_parameterLx_constr_11, memb_ASN_RRC_parameterLx_constraint_1 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeScalingType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DummyD, amplitudeSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeSubsetRestriction_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeSubsetRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyD, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_17, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const int asn_MAP_ASN_RRC_DummyD_oms_1[] = { 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyD_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyD_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* parameterLx */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* amplitudeScalingType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* amplitudeSubsetRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyD_specs_1 = { + sizeof(struct ASN_RRC_DummyD), + offsetof(struct ASN_RRC_DummyD, _asn_ctx), + asn_MAP_ASN_RRC_DummyD_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DummyD_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyD = { + "DummyD", + "DummyD", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyD_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyD_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyD_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyD_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyD_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyD_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyD_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_DummyD_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyD.h b/src/asn/rrc/ASN_RRC_DummyD.h new file mode 100644 index 0000000..dac1b0c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyD.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyD_H_ +#define _ASN_RRC_DummyD_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyD__maxNumberTxPortsPerResource { + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p4 = 0, + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p8 = 1, + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p12 = 2, + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p16 = 3, + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p24 = 4, + ASN_RRC_DummyD__maxNumberTxPortsPerResource_p32 = 5 +} e_ASN_RRC_DummyD__maxNumberTxPortsPerResource; +typedef enum ASN_RRC_DummyD__amplitudeScalingType { + ASN_RRC_DummyD__amplitudeScalingType_wideband = 0, + ASN_RRC_DummyD__amplitudeScalingType_widebandAndSubband = 1 +} e_ASN_RRC_DummyD__amplitudeScalingType; +typedef enum ASN_RRC_DummyD__amplitudeSubsetRestriction { + ASN_RRC_DummyD__amplitudeSubsetRestriction_supported = 0 +} e_ASN_RRC_DummyD__amplitudeSubsetRestriction; + +/* ASN_RRC_DummyD */ +typedef struct ASN_RRC_DummyD { + long maxNumberTxPortsPerResource; + long maxNumberResources; + long totalNumberTxPorts; + long parameterLx; + long amplitudeScalingType; + long *amplitudeSubsetRestriction; /* OPTIONAL */ + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyD_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeScalingType_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeSubsetRestriction_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyD; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyD_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyD_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyD_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyE.c b/src/asn/rrc/ASN_RRC_DummyE.c new file mode 100644 index 0000000..5096ebf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyE.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyE.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 int +memb_ASN_RRC_maxNumberResources_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberTxPorts_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 >= 2 && 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; + } +} + +static int +memb_ASN_RRC_parameterLx_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 >= 2 && 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 int +memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_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 <= 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_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_amplitudeScalingType_constr_12 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_ASN_RRC_maxNumberResources_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_parameterLx_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 2, 4 } /* (2..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p4" }, + { 1, 2, "p8" }, + { 2, 3, "p12" }, + { 3, 3, "p16" }, + { 4, 3, "p24" }, + { 5, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2[] = { + 2, /* p12(2) */ + 3, /* p16(3) */ + 4, /* p24(4) */ + 5, /* p32(5) */ + 0, /* p4(0) */ + 1 /* p8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_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_ASN_RRC_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_12[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_12[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_amplitudeScalingType_specs_12 = { + asn_MAP_ASN_RRC_amplitudeScalingType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_amplitudeScalingType_enum2value_12, /* 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_ASN_RRC_amplitudeScalingType_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_ASN_RRC_amplitudeScalingType_12 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_amplitudeScalingType_tags_12, + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_amplitudeScalingType_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_ASN_RRC_amplitudeScalingType_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_amplitudeScalingType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_amplitudeScalingType_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyE_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberResources_constr_9, memb_ASN_RRC_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberTxPorts_constr_10, memb_ASN_RRC_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_parameterLx_constr_11, memb_ASN_RRC_parameterLx_constraint_1 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_amplitudeScalingType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyE, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constr_15, memb_ASN_RRC_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyE_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyE_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* parameterLx */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* amplitudeScalingType */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyE_specs_1 = { + sizeof(struct ASN_RRC_DummyE), + offsetof(struct ASN_RRC_DummyE, _asn_ctx), + asn_MAP_ASN_RRC_DummyE_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyE = { + "DummyE", + "DummyE", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyE_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyE_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyE_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyE_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyE_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyE_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyE_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_DummyE_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyE.h b/src/asn/rrc/ASN_RRC_DummyE.h new file mode 100644 index 0000000..627491d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyE.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyE_H_ +#define _ASN_RRC_DummyE_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyE__maxNumberTxPortsPerResource { + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p4 = 0, + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p8 = 1, + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p12 = 2, + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p16 = 3, + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p24 = 4, + ASN_RRC_DummyE__maxNumberTxPortsPerResource_p32 = 5 +} e_ASN_RRC_DummyE__maxNumberTxPortsPerResource; +typedef enum ASN_RRC_DummyE__amplitudeScalingType { + ASN_RRC_DummyE__amplitudeScalingType_wideband = 0, + ASN_RRC_DummyE__amplitudeScalingType_widebandAndSubband = 1 +} e_ASN_RRC_DummyE__amplitudeScalingType; + +/* ASN_RRC_DummyE */ +typedef struct ASN_RRC_DummyE { + long maxNumberTxPortsPerResource; + long maxNumberResources; + long totalNumberTxPorts; + long parameterLx; + long amplitudeScalingType; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyE_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_amplitudeScalingType_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyE; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyE_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyE_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyE_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyF.c b/src/asn/rrc/ASN_RRC_DummyF.c new file mode 100644 index 0000000..6d89b81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyF.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyF.h" + +static int +memb_ASN_RRC_maxNumberPeriodicCSI_ReportPerBWP_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 <= 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_ASN_RRC_maxNumberAperiodicCSI_ReportPerBWP_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 <= 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_ASN_RRC_maxNumberSemiPersistentCSI_ReportPerBWP_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 int +memb_ASN_RRC_simultaneousCSI_ReportsAllCC_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 >= 5 && 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; + } +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_ReportPerBWP_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_ReportPerBWP_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_ReportPerBWP_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 5, 32 } /* (5..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyF_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyF, maxNumberPeriodicCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberPeriodicCSI_ReportPerBWP_constr_2, memb_ASN_RRC_maxNumberPeriodicCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyF, maxNumberAperiodicCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberAperiodicCSI_ReportPerBWP_constr_3, memb_ASN_RRC_maxNumberAperiodicCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyF, maxNumberSemiPersistentCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSemiPersistentCSI_ReportPerBWP_constr_4, memb_ASN_RRC_maxNumberSemiPersistentCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyF, simultaneousCSI_ReportsAllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constr_5, memb_ASN_RRC_simultaneousCSI_ReportsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousCSI-ReportsAllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberPeriodicCSI-ReportPerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberAperiodicCSI-ReportPerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberSemiPersistentCSI-ReportPerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* simultaneousCSI-ReportsAllCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyF_specs_1 = { + sizeof(struct ASN_RRC_DummyF), + offsetof(struct ASN_RRC_DummyF, _asn_ctx), + asn_MAP_ASN_RRC_DummyF_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyF = { + "DummyF", + "DummyF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyF_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyF_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyF_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyF_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyF_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyF_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_DummyF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyF.h b/src/asn/rrc/ASN_RRC_DummyF.h new file mode 100644 index 0000000..5a68580 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyF.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyF_H_ +#define _ASN_RRC_DummyF_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DummyF */ +typedef struct ASN_RRC_DummyF { + long maxNumberPeriodicCSI_ReportPerBWP; + long maxNumberAperiodicCSI_ReportPerBWP; + long maxNumberSemiPersistentCSI_ReportPerBWP; + long simultaneousCSI_ReportsAllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyF; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyF_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyF_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyG.c b/src/asn/rrc/ASN_RRC_DummyG.c new file mode 100644 index 0000000..8cb6f03 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyG.c @@ -0,0 +1,222 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyG.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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2 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_type_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_supportedCSI_RS_Density_constr_14 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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_value2enum_2[] = { + { 0, 2, "n8" }, + { 1, 3, "n16" }, + { 2, 3, "n32" }, + { 3, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_enum2value_2[] = { + 1, /* n16(1) */ + 2, /* n32(2) */ + 3, /* n64(3) */ + 0 /* n8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 = { + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_enum2value_2, /* 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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2 = { + "maxNumberSSB-CSI-RS-ResourceOneTx", + "maxNumberSSB-CSI-RS-ResourceOneTx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_value2enum_7[] = { + { 0, 2, "n0" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" }, + { 4, 3, "n32" }, + { 5, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_enum2value_7[] = { + 0, /* n0(0) */ + 3, /* n16(3) */ + 4, /* n32(4) */ + 1, /* n4(1) */ + 5, /* n64(5) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_specs_7 = { + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_enum2value_7, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7[] = { + (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_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_7 = { + "maxNumberSSB-CSI-RS-ResourceTwoTx", + "maxNumberSSB-CSI-RS-ResourceTwoTx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7, + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedCSI_RS_Density_value2enum_14[] = { + { 0, 3, "one" }, + { 1, 5, "three" }, + { 2, 11, "oneAndThree" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedCSI_RS_Density_enum2value_14[] = { + 0, /* one(0) */ + 2, /* oneAndThree(2) */ + 1 /* three(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedCSI_RS_Density_specs_14 = { + asn_MAP_ASN_RRC_supportedCSI_RS_Density_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedCSI_RS_Density_enum2value_14, /* 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_ASN_RRC_supportedCSI_RS_Density_tags_14[] = { + (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_ASN_RRC_supportedCSI_RS_Density_14 = { + "supportedCSI-RS-Density", + "supportedCSI-RS-Density", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14, + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14) + /sizeof(asn_DEF_ASN_RRC_supportedCSI_RS_Density_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedCSI_RS_Density_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedCSI_RS_Density_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyG, maxNumberSSB_CSI_RS_ResourceOneTx), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSSB-CSI-RS-ResourceOneTx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyG, maxNumberSSB_CSI_RS_ResourceTwoTx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSSB-CSI-RS-ResourceTwoTx" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyG, supportedCSI_RS_Density), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedCSI_RS_Density_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCSI-RS-Density" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSSB-CSI-RS-ResourceOneTx */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberSSB-CSI-RS-ResourceTwoTx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* supportedCSI-RS-Density */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyG_specs_1 = { + sizeof(struct ASN_RRC_DummyG), + offsetof(struct ASN_RRC_DummyG, _asn_ctx), + asn_MAP_ASN_RRC_DummyG_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_ASN_RRC_DummyG = { + "DummyG", + "DummyG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyG_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyG_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyG_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyG_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_DummyG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyG.h b/src/asn/rrc/ASN_RRC_DummyG.h new file mode 100644 index 0000000..dfeb6f1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyG.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyG_H_ +#define _ASN_RRC_DummyG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx { + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx_n8 = 0, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx_n16 = 1, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx_n32 = 2, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx_n64 = 3 +} e_ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceOneTx; +typedef enum ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx { + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n0 = 0, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n4 = 1, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n8 = 2, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n16 = 3, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n32 = 4, + ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx_n64 = 5 +} e_ASN_RRC_DummyG__maxNumberSSB_CSI_RS_ResourceTwoTx; +typedef enum ASN_RRC_DummyG__supportedCSI_RS_Density { + ASN_RRC_DummyG__supportedCSI_RS_Density_one = 0, + ASN_RRC_DummyG__supportedCSI_RS_Density_three = 1, + ASN_RRC_DummyG__supportedCSI_RS_Density_oneAndThree = 2 +} e_ASN_RRC_DummyG__supportedCSI_RS_Density; + +/* ASN_RRC_DummyG */ +typedef struct ASN_RRC_DummyG { + long maxNumberSSB_CSI_RS_ResourceOneTx; + long maxNumberSSB_CSI_RS_ResourceTwoTx; + long supportedCSI_RS_Density; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyG_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceOneTx_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSSB_CSI_RS_ResourceTwoTx_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedCSI_RS_Density_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyG_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyH.c b/src/asn/rrc/ASN_RRC_DummyH.c new file mode 100644 index 0000000..f2416a8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyH.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyH.h" + +static int +memb_ASN_RRC_burstLength_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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_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 <= 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_ASN_RRC_maxConfiguredResourceSetsPerCC_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxConfiguredResourceSetsAllCC_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 <= 128)) { + /* Constraint 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_ASN_RRC_burstLength_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyH_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyH, burstLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_burstLength_constr_2, memb_ASN_RRC_burstLength_constraint_1 }, + 0, 0, /* No default value */ + "burstLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyH, maxSimultaneousResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constr_3, memb_ASN_RRC_maxSimultaneousResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxSimultaneousResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyH, maxConfiguredResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constr_4, memb_ASN_RRC_maxConfiguredResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyH, maxConfiguredResourceSetsAllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constr_5, memb_ASN_RRC_maxConfiguredResourceSetsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsAllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyH_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyH_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* burstLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxSimultaneousResourceSetsPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxConfiguredResourceSetsPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxConfiguredResourceSetsAllCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyH_specs_1 = { + sizeof(struct ASN_RRC_DummyH), + offsetof(struct ASN_RRC_DummyH, _asn_ctx), + asn_MAP_ASN_RRC_DummyH_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyH = { + "DummyH", + "DummyH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyH_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyH_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyH_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyH_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyH_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyH_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyH_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_DummyH_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyH.h b/src/asn/rrc/ASN_RRC_DummyH.h new file mode 100644 index 0000000..16382c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyH.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyH_H_ +#define _ASN_RRC_DummyH_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_DummyH */ +typedef struct ASN_RRC_DummyH { + long burstLength; + long maxSimultaneousResourceSetsPerCC; + long maxConfiguredResourceSetsPerCC; + long maxConfiguredResourceSetsAllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyH_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyH; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyH_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyH_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyH_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_DummyI.c b/src/asn/rrc/ASN_RRC_DummyI.c new file mode 100644 index 0000000..8520fa3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyI.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_DummyI.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_ASN_RRC_supportedSRS_TxPortSwitch_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_txSwitchImpactToRx_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_supportedSRS_TxPortSwitch_value2enum_2[] = { + { 0, 4, "t1r2" }, + { 1, 4, "t1r4" }, + { 2, 4, "t2r4" }, + { 3, 9, "t1r4-t2r4" }, + { 4, 8, "tr-equal" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_enum2value_2[] = { + 0, /* t1r2(0) */ + 1, /* t1r4(1) */ + 3, /* t1r4-t2r4(3) */ + 2, /* t2r4(2) */ + 4 /* tr-equal(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedSRS_TxPortSwitch_specs_2 = { + asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedSRS_TxPortSwitch_enum2value_2, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_supportedSRS_TxPortSwitch_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_ASN_RRC_supportedSRS_TxPortSwitch_2 = { + "supportedSRS-TxPortSwitch", + "supportedSRS-TxPortSwitch", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2, + sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedSRS_TxPortSwitch_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedSRS_TxPortSwitch_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_txSwitchImpactToRx_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_txSwitchImpactToRx_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_txSwitchImpactToRx_specs_8 = { + asn_MAP_ASN_RRC_txSwitchImpactToRx_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_txSwitchImpactToRx_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8[] = { + (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_ASN_RRC_txSwitchImpactToRx_8 = { + "txSwitchImpactToRx", + "txSwitchImpactToRx", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8, + sizeof(asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8) + /sizeof(asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8) + /sizeof(asn_DEF_ASN_RRC_txSwitchImpactToRx_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_txSwitchImpactToRx_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_txSwitchImpactToRx_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_DummyI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_DummyI, supportedSRS_TxPortSwitch), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-TxPortSwitch" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_DummyI, txSwitchImpactToRx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_txSwitchImpactToRx_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txSwitchImpactToRx" + }, +}; +static const int asn_MAP_ASN_RRC_DummyI_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_DummyI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_DummyI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedSRS-TxPortSwitch */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* txSwitchImpactToRx */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyI_specs_1 = { + sizeof(struct ASN_RRC_DummyI), + offsetof(struct ASN_RRC_DummyI, _asn_ctx), + asn_MAP_ASN_RRC_DummyI_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_DummyI_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyI = { + "DummyI", + "DummyI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_DummyI_tags_1, + sizeof(asn_DEF_ASN_RRC_DummyI_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyI_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_DummyI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_DummyI_tags_1) + /sizeof(asn_DEF_ASN_RRC_DummyI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_DummyI_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_DummyI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_DummyI.h b/src/asn/rrc/ASN_RRC_DummyI.h new file mode 100644 index 0000000..e4ec6ba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_DummyI.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_DummyI_H_ +#define _ASN_RRC_DummyI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_DummyI__supportedSRS_TxPortSwitch { + ASN_RRC_DummyI__supportedSRS_TxPortSwitch_t1r2 = 0, + ASN_RRC_DummyI__supportedSRS_TxPortSwitch_t1r4 = 1, + ASN_RRC_DummyI__supportedSRS_TxPortSwitch_t2r4 = 2, + ASN_RRC_DummyI__supportedSRS_TxPortSwitch_t1r4_t2r4 = 3, + ASN_RRC_DummyI__supportedSRS_TxPortSwitch_tr_equal = 4 +} e_ASN_RRC_DummyI__supportedSRS_TxPortSwitch; +typedef enum ASN_RRC_DummyI__txSwitchImpactToRx { + ASN_RRC_DummyI__txSwitchImpactToRx_true = 0 +} e_ASN_RRC_DummyI__txSwitchImpactToRx; + +/* ASN_RRC_DummyI */ +typedef struct ASN_RRC_DummyI { + long supportedSRS_TxPortSwitch; + long *txSwitchImpactToRx; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_DummyI_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedSRS_TxPortSwitch_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_txSwitchImpactToRx_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_DummyI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_DummyI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_DummyI_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_DummyI_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.c b/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.c new file mode 100644 index 0000000..77beb8c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-AllowedMeasBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_AllowedMeasBandwidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_EUTRA_AllowedMeasBandwidth_value2enum_1[] = { + { 0, 4, "mbw6" }, + { 1, 5, "mbw15" }, + { 2, 5, "mbw25" }, + { 3, 5, "mbw50" }, + { 4, 5, "mbw75" }, + { 5, 6, "mbw100" } +}; +static const unsigned int asn_MAP_ASN_RRC_EUTRA_AllowedMeasBandwidth_enum2value_1[] = { + 5, /* mbw100(5) */ + 1, /* mbw15(1) */ + 2, /* mbw25(2) */ + 3, /* mbw50(3) */ + 0, /* mbw6(0) */ + 4 /* mbw75(4) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EUTRA_AllowedMeasBandwidth_specs_1 = { + asn_MAP_ASN_RRC_EUTRA_AllowedMeasBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_EUTRA_AllowedMeasBandwidth_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth = { + "EUTRA-AllowedMeasBandwidth", + "EUTRA-AllowedMeasBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_AllowedMeasBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_EUTRA_AllowedMeasBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.h b/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.h new file mode 100644 index 0000000..b9d6da0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-AllowedMeasBandwidth.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_AllowedMeasBandwidth_H_ +#define _ASN_RRC_EUTRA_AllowedMeasBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_AllowedMeasBandwidth { + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw6 = 0, + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw15 = 1, + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw25 = 2, + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw50 = 3, + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw75 = 4, + ASN_RRC_EUTRA_AllowedMeasBandwidth_mbw100 = 5 +} e_ASN_RRC_EUTRA_AllowedMeasBandwidth; + +/* ASN_RRC_EUTRA-AllowedMeasBandwidth */ +typedef long ASN_RRC_EUTRA_AllowedMeasBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_AllowedMeasBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EUTRA_AllowedMeasBandwidth_specs_1; +asn_struct_free_f ASN_RRC_EUTRA_AllowedMeasBandwidth_free; +asn_struct_print_f ASN_RRC_EUTRA_AllowedMeasBandwidth_print; +asn_constr_check_f ASN_RRC_EUTRA_AllowedMeasBandwidth_constraint; +ber_type_decoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_decode_ber; +der_type_encoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_encode_der; +xer_type_decoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_decode_xer; +xer_type_encoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_encode_xer; +per_type_decoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_decode_uper; +per_type_encoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_encode_uper; +per_type_decoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_decode_aper; +per_type_encoder_f ASN_RRC_EUTRA_AllowedMeasBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_AllowedMeasBandwidth_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.c b/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.c new file mode 100644 index 0000000..8169fa0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-BlackCell.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_BlackCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_BlackCell, cellIndexEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndexEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_BlackCell, physCellIdRange), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellIdRange" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_BlackCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIndexEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* physCellIdRange */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_BlackCell_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_BlackCell), + offsetof(struct ASN_RRC_EUTRA_BlackCell, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_BlackCell_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_BlackCell = { + "EUTRA-BlackCell", + "EUTRA-BlackCell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_BlackCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_BlackCell_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_BlackCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.h b/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.h new file mode 100644 index 0000000..6e9db57 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-BlackCell.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_BlackCell_H_ +#define _ASN_RRC_EUTRA_BlackCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-CellIndex.h" +#include "ASN_RRC_EUTRA-PhysCellIdRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-BlackCell */ +typedef struct ASN_RRC_EUTRA_BlackCell { + ASN_RRC_EUTRA_CellIndex_t cellIndexEUTRA; + ASN_RRC_EUTRA_PhysCellIdRange_t physCellIdRange; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_BlackCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_BlackCell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_BlackCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_BlackCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_BlackCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Cell.c b/src/asn/rrc/ASN_RRC_EUTRA-Cell.c new file mode 100644 index 0000000..a376654 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Cell.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-Cell.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_Cell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_Cell, cellIndexEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndexEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_Cell, physCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_Cell, cellIndividualOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndividualOffset" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_Cell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_Cell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIndexEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellIndividualOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_Cell_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_Cell), + offsetof(struct ASN_RRC_EUTRA_Cell, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_Cell_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_ASN_RRC_EUTRA_Cell = { + "EUTRA-Cell", + "EUTRA-Cell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_Cell_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_Cell_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Cell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_Cell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_Cell_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Cell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_Cell_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_Cell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Cell.h b/src/asn/rrc/ASN_RRC_EUTRA-Cell.h new file mode 100644 index 0000000..a7b1b7b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Cell.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_Cell_H_ +#define _ASN_RRC_EUTRA_Cell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-CellIndex.h" +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include "ASN_RRC_EUTRA-Q-OffsetRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-Cell */ +typedef struct ASN_RRC_EUTRA_Cell { + ASN_RRC_EUTRA_CellIndex_t cellIndexEUTRA; + ASN_RRC_EUTRA_PhysCellId_t physCellId; + ASN_RRC_EUTRA_Q_OffsetRange_t cellIndividualOffset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_Cell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_Cell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_Cell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_Cell_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_Cell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.c b/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.c new file mode 100644 index 0000000..1e89bca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-CellIndex.h" + +int +ASN_RRC_EUTRA_CellIndex_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_ASN_RRC_EUTRA_CellIndex_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_ASN_RRC_EUTRA_CellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_CellIndex = { + "EUTRA-CellIndex", + "EUTRA-CellIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_CellIndex_constr_1, ASN_RRC_EUTRA_CellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.h b/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.h new file mode 100644 index 0000000..40f4a12 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-CellIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_CellIndex_H_ +#define _ASN_RRC_EUTRA_CellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-CellIndex */ +typedef long ASN_RRC_EUTRA_CellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_CellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_CellIndex; +asn_struct_free_f ASN_RRC_EUTRA_CellIndex_free; +asn_struct_print_f ASN_RRC_EUTRA_CellIndex_print; +asn_constr_check_f ASN_RRC_EUTRA_CellIndex_constraint; +ber_type_decoder_f ASN_RRC_EUTRA_CellIndex_decode_ber; +der_type_encoder_f ASN_RRC_EUTRA_CellIndex_encode_der; +xer_type_decoder_f ASN_RRC_EUTRA_CellIndex_decode_xer; +xer_type_encoder_f ASN_RRC_EUTRA_CellIndex_encode_xer; +per_type_decoder_f ASN_RRC_EUTRA_CellIndex_decode_uper; +per_type_encoder_f ASN_RRC_EUTRA_CellIndex_encode_uper; +per_type_decoder_f ASN_RRC_EUTRA_CellIndex_decode_aper; +per_type_encoder_f ASN_RRC_EUTRA_CellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_CellIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.c b/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.c new file mode 100644 index 0000000..1862e7f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-CellIndexList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_CellIndexList_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_ASN_RRC_EUTRA_CellIndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_CellIndexList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_CellIndexList), + offsetof(struct ASN_RRC_EUTRA_CellIndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_CellIndexList = { + "EUTRA-CellIndexList", + "EUTRA-CellIndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_CellIndexList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_CellIndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_CellIndexList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_CellIndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.h b/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.h new file mode 100644 index 0000000..95820f8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-CellIndexList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_CellIndexList_H_ +#define _ASN_RRC_EUTRA_CellIndexList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-CellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-CellIndexList */ +typedef struct ASN_RRC_EUTRA_CellIndexList { + A_SEQUENCE_OF(ASN_RRC_EUTRA_CellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_CellIndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_CellIndexList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_CellIndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_CellIndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_CellIndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_CellIndexList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.c b/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.c new file mode 100644 index 0000000..1185a33 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-FreqBlackCellList.h" + +#include "ASN_RRC_EUTRA-PhysCellIdRange.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_FreqBlackCellList_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_ASN_RRC_EUTRA_FreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqBlackCellList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_FreqBlackCellList), + offsetof(struct ASN_RRC_EUTRA_FreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList = { + "EUTRA-FreqBlackCellList", + "EUTRA-FreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_FreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_FreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_FreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.h b/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.h new file mode 100644 index 0000000..1896411 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqBlackCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_FreqBlackCellList_H_ +#define _ASN_RRC_EUTRA_FreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_PhysCellIdRange; + +/* ASN_RRC_EUTRA-FreqBlackCellList */ +typedef struct ASN_RRC_EUTRA_FreqBlackCellList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_PhysCellIdRange) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_FreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_FreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_FreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_FreqBlackCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.c b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.c new file mode 100644 index 0000000..97ea585 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-FreqNeighCellInfo.h" + +static int +memb_ASN_RRC_q_RxLevMinOffsetCell_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 <= 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_ASN_RRC_q_QualMinOffsetCell_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 <= 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_ASN_RRC_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_FreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_FreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_FreqNeighCellInfo, dummy), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_EUTRA_FreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCell_constr_4, memb_ASN_RRC_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_FreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_5, memb_ASN_RRC_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_FreqNeighCellInfo_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_FreqNeighCellInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-RxLevMinOffsetCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* q-QualMinOffsetCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqNeighCellInfo_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_FreqNeighCellInfo), + offsetof(struct ASN_RRC_EUTRA_FreqNeighCellInfo, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_FreqNeighCellInfo_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_FreqNeighCellInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo = { + "EUTRA-FreqNeighCellInfo", + "EUTRA-FreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_FreqNeighCellInfo_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_FreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.h b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.h new file mode 100644 index 0000000..1d1e864 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellInfo.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_FreqNeighCellInfo_H_ +#define _ASN_RRC_EUTRA_FreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include "ASN_RRC_EUTRA-Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-FreqNeighCellInfo */ +typedef struct ASN_RRC_EUTRA_FreqNeighCellInfo { + ASN_RRC_EUTRA_PhysCellId_t physCellId; + ASN_RRC_EUTRA_Q_OffsetRange_t dummy; + long *q_RxLevMinOffsetCell; /* OPTIONAL */ + long *q_QualMinOffsetCell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_FreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_FreqNeighCellInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_FreqNeighCellInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.c b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.c new file mode 100644 index 0000000..a1993c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-FreqNeighCellList.h" + +#include "ASN_RRC_EUTRA-FreqNeighCellInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_FreqNeighCellList_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_ASN_RRC_EUTRA_FreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_FreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqNeighCellList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_FreqNeighCellList), + offsetof(struct ASN_RRC_EUTRA_FreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList = { + "EUTRA-FreqNeighCellList", + "EUTRA-FreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_FreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_FreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_FreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.h b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.h new file mode 100644 index 0000000..2318b5b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-FreqNeighCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_FreqNeighCellList_H_ +#define _ASN_RRC_EUTRA_FreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_FreqNeighCellInfo; + +/* ASN_RRC_EUTRA-FreqNeighCellList */ +typedef struct ASN_RRC_EUTRA_FreqNeighCellList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_FreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_FreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_FreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_FreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_FreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_FreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_FreqNeighCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.c b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.c new file mode 100644 index 0000000..8b38c0a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.c @@ -0,0 +1,418 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-MBSFN-SubframeConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_oneFrame_constraint_10(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; + } +} + +static int +memb_ASN_RRC_fourFrames_constraint_10(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 int +memb_ASN_RRC_oneFrame_constraint_13(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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_fourFrames_constraint_13(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_ASN_RRC_radioframeAllocationOffset_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_type_ASN_RRC_radioframeAllocationPeriod_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_oneFrame_constr_11 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_fourFrames_constr_12 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_ASN_RRC_subframeAllocation1_constr_10 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_ASN_RRC_oneFrame_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_fourFrames_constr_15 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_type_ASN_RRC_subframeAllocation2_constr_13 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_ASN_RRC_radioframeAllocationOffset_constr_9 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_ASN_RRC_radioframeAllocationPeriod_value2enum_2[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" }, + { 5, 3, "n32" } +}; +static const unsigned int asn_MAP_ASN_RRC_radioframeAllocationPeriod_enum2value_2[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 5, /* n32(5) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_radioframeAllocationPeriod_specs_2 = { + asn_MAP_ASN_RRC_radioframeAllocationPeriod_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_radioframeAllocationPeriod_enum2value_2, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_radioframeAllocationPeriod_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_ASN_RRC_radioframeAllocationPeriod_2 = { + "radioframeAllocationPeriod", + "radioframeAllocationPeriod", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2, + sizeof(asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2) + /sizeof(asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2) + /sizeof(asn_DEF_ASN_RRC_radioframeAllocationPeriod_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_radioframeAllocationPeriod_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_radioframeAllocationPeriod_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_subframeAllocation1_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1, choice.oneFrame), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_oneFrame_constr_11, memb_ASN_RRC_oneFrame_constraint_10 }, + 0, 0, /* No default value */ + "oneFrame" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1, choice.fourFrames), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_fourFrames_constr_12, memb_ASN_RRC_fourFrames_constraint_10 }, + 0, 0, /* No default value */ + "fourFrames" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_subframeAllocation1_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneFrame */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fourFrames */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_subframeAllocation1_specs_10 = { + sizeof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1, _asn_ctx), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1, present), + sizeof(((struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1 *)0)->present), + asn_MAP_ASN_RRC_subframeAllocation1_tag2el_10, + 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_ASN_RRC_subframeAllocation1_10 = { + "subframeAllocation1", + "subframeAllocation1", + &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_ASN_RRC_subframeAllocation1_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_subframeAllocation1_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_subframeAllocation1_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_subframeAllocation2_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2, choice.oneFrame), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_oneFrame_constr_14, memb_ASN_RRC_oneFrame_constraint_13 }, + 0, 0, /* No default value */ + "oneFrame" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2, choice.fourFrames), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_fourFrames_constr_15, memb_ASN_RRC_fourFrames_constraint_13 }, + 0, 0, /* No default value */ + "fourFrames" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_subframeAllocation2_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneFrame */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fourFrames */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_subframeAllocation2_specs_13 = { + sizeof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2, _asn_ctx), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2, present), + sizeof(((struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2 *)0)->present), + asn_MAP_ASN_RRC_subframeAllocation2_tag2el_13, + 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_ASN_RRC_subframeAllocation2_13 = { + "subframeAllocation2", + "subframeAllocation2", + &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_ASN_RRC_subframeAllocation2_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_subframeAllocation2_13, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_subframeAllocation2_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MBSFN_SubframeConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig, radioframeAllocationPeriod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_radioframeAllocationPeriod_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioframeAllocationPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig, radioframeAllocationOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_radioframeAllocationOffset_constr_9, memb_ASN_RRC_radioframeAllocationOffset_constraint_1 }, + 0, 0, /* No default value */ + "radioframeAllocationOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig, subframeAllocation1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subframeAllocation1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subframeAllocation1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig, subframeAllocation2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subframeAllocation2_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subframeAllocation2" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_MBSFN_SubframeConfig_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_MBSFN_SubframeConfig_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 }, /* subframeAllocation1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* subframeAllocation2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfig_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_MBSFN_SubframeConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig = { + "EUTRA-MBSFN-SubframeConfig", + "EUTRA-MBSFN-SubframeConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_MBSFN_SubframeConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.h b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.h new file mode 100644 index 0000000..bb4d977 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfig.h @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_MBSFN_SubframeConfig_H_ +#define _ASN_RRC_EUTRA_MBSFN_SubframeConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod { + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n1 = 0, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n2 = 1, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n4 = 2, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n8 = 3, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n16 = 4, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n32 = 5 +} e_ASN_RRC_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod; +typedef enum ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR { + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_NOTHING, /* No components present */ + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_oneFrame, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_fourFrames +} ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR; +typedef enum ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR { + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_NOTHING, /* No components present */ + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_oneFrame, + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_fourFrames +} ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR; + +/* ASN_RRC_EUTRA-MBSFN-SubframeConfig */ +typedef struct ASN_RRC_EUTRA_MBSFN_SubframeConfig { + long radioframeAllocationPeriod; + long radioframeAllocationOffset; + struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1 { + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR present; + union ASN_RRC_EUTRA_MBSFN_SubframeConfig__ASN_RRC_subframeAllocation1_u { + BIT_STRING_t oneFrame; + BIT_STRING_t fourFrames; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } subframeAllocation1; + struct ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2 { + ASN_RRC_EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR present; + union ASN_RRC_EUTRA_MBSFN_SubframeConfig__ASN_RRC_subframeAllocation2_u { + BIT_STRING_t oneFrame; + BIT_STRING_t fourFrames; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *subframeAllocation2; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_MBSFN_SubframeConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_radioframeAllocationPeriod_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MBSFN_SubframeConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_MBSFN_SubframeConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.c b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.c new file mode 100644 index 0000000..4d24a83 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h" + +#include "ASN_RRC_EUTRA-MBSFN-SubframeConfig.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_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_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfigList), + offsetof(struct ASN_RRC_EUTRA_MBSFN_SubframeConfigList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList = { + "EUTRA-MBSFN-SubframeConfigList", + "EUTRA-MBSFN-SubframeConfigList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h new file mode 100644 index 0000000..fd9856b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MBSFN-SubframeConfigList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_MBSFN_SubframeConfigList_H_ +#define _ASN_RRC_EUTRA_MBSFN_SubframeConfigList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_MBSFN_SubframeConfig; + +/* ASN_RRC_EUTRA-MBSFN-SubframeConfigList */ +typedef struct ASN_RRC_EUTRA_MBSFN_SubframeConfigList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_MBSFN_SubframeConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_MBSFN_SubframeConfigList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_MBSFN_SubframeConfigList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_MBSFN_SubframeConfigList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.c b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.c new file mode 100644 index 0000000..dd07be2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-MultiBandInfo.h" + +#include "ASN_RRC_EUTRA-NS-PmaxList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MultiBandInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_MultiBandInfo, eutra_FreqBandIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-FreqBandIndicator" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_MultiBandInfo, eutra_NS_PmaxList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_NS_PmaxList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-NS-PmaxList" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_MultiBandInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_MultiBandInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-FreqBandIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-NS-PmaxList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_MultiBandInfo_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_MultiBandInfo), + offsetof(struct ASN_RRC_EUTRA_MultiBandInfo, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_MultiBandInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_MultiBandInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfo = { + "EUTRA-MultiBandInfo", + "EUTRA-MultiBandInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_MultiBandInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_MultiBandInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.h b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.h new file mode 100644 index 0000000..fe200ee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_MultiBandInfo_H_ +#define _ASN_RRC_EUTRA_MultiBandInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_NS_PmaxList; + +/* ASN_RRC_EUTRA-MultiBandInfo */ +typedef struct ASN_RRC_EUTRA_MultiBandInfo { + ASN_RRC_FreqBandIndicatorEUTRA_t eutra_FreqBandIndicator; + struct ASN_RRC_EUTRA_NS_PmaxList *eutra_NS_PmaxList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_MultiBandInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_MultiBandInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MultiBandInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_MultiBandInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.c b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.c new file mode 100644 index 0000000..dbe8649 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-MultiBandInfoList.h" + +#include "ASN_RRC_EUTRA-MultiBandInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_MultiBandInfoList_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_ASN_RRC_EUTRA_MultiBandInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_MultiBandInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_MultiBandInfoList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_MultiBandInfoList), + offsetof(struct ASN_RRC_EUTRA_MultiBandInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList = { + "EUTRA-MultiBandInfoList", + "EUTRA-MultiBandInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_MultiBandInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_MultiBandInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_MultiBandInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.h b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.h new file mode 100644 index 0000000..6a45dd7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-MultiBandInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_MultiBandInfoList_H_ +#define _ASN_RRC_EUTRA_MultiBandInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_MultiBandInfo; + +/* ASN_RRC_EUTRA-MultiBandInfoList */ +typedef struct ASN_RRC_EUTRA_MultiBandInfoList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_MultiBandInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_MultiBandInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_MultiBandInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_MultiBandInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_MultiBandInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_MultiBandInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_MultiBandInfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.c b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.c new file mode 100644 index 0000000..1463291 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-NS-PmaxList.h" + +#include "ASN_RRC_EUTRA-NS-PmaxValue.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_NS_PmaxList_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_ASN_RRC_EUTRA_NS_PmaxList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_NS_PmaxList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_NS_PmaxList), + offsetof(struct ASN_RRC_EUTRA_NS_PmaxList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxList = { + "EUTRA-NS-PmaxList", + "EUTRA-NS-PmaxList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_NS_PmaxList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_NS_PmaxList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_NS_PmaxList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.h b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.h new file mode 100644 index 0000000..846fe6c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_NS_PmaxList_H_ +#define _ASN_RRC_EUTRA_NS_PmaxList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_NS_PmaxValue; + +/* ASN_RRC_EUTRA-NS-PmaxList */ +typedef struct ASN_RRC_EUTRA_NS_PmaxList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_NS_PmaxValue) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_NS_PmaxList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_NS_PmaxList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_NS_PmaxList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_NS_PmaxList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_NS_PmaxList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.c b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.c new file mode 100644 index 0000000..0d8cc44 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-NS-PmaxValue.h" + +static int +memb_ASN_RRC_additionalPmax_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 >= -30 && value <= 33)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_additionalSpectrumEmission_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 <= 288)) { + /* Constraint 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_ASN_RRC_additionalPmax_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 33 } /* (-30..33) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_additionalSpectrumEmission_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 288 } /* (1..288) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_NS_PmaxValue_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_EUTRA_NS_PmaxValue, additionalPmax), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_additionalPmax_constr_2, memb_ASN_RRC_additionalPmax_constraint_1 }, + 0, 0, /* No default value */ + "additionalPmax" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_NS_PmaxValue, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_additionalSpectrumEmission_constr_3, memb_ASN_RRC_additionalSpectrumEmission_constraint_1 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_NS_PmaxValue_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_NS_PmaxValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalPmax */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* additionalSpectrumEmission */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_NS_PmaxValue_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_NS_PmaxValue), + offsetof(struct ASN_RRC_EUTRA_NS_PmaxValue, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_NS_PmaxValue_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_NS_PmaxValue_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue = { + "EUTRA-NS-PmaxValue", + "EUTRA-NS-PmaxValue", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_NS_PmaxValue_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_NS_PmaxValue_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.h b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.h new file mode 100644 index 0000000..7a77fc3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-NS-PmaxValue.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_NS_PmaxValue_H_ +#define _ASN_RRC_EUTRA_NS_PmaxValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-NS-PmaxValue */ +typedef struct ASN_RRC_EUTRA_NS_PmaxValue { + long *additionalPmax; /* OPTIONAL */ + long *additionalSpectrumEmission; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_NS_PmaxValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_NS_PmaxValue; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_NS_PmaxValue_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_NS_PmaxValue_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_NS_PmaxValue_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Parameters.c b/src/asn/rrc/ASN_RRC_EUTRA-Parameters.c new file mode 100644 index 0000000..992b039 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Parameters.c @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-Parameters.h" + +#include "ASN_RRC_EUTRA-ParametersCommon.h" +#include "ASN_RRC_EUTRA-ParametersXDD-Diff.h" +static int +memb_ASN_RRC_supportedBandListEUTRA_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 <= 256)) { + /* 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_ASN_RRC_supportedBandListEUTRA_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_supportedBandListEUTRA_constr_2 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_ASN_RRC_supportedBandListEUTRA_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedBandListEUTRA_specs_2 = { + sizeof(struct ASN_RRC_EUTRA_Parameters__supportedBandListEUTRA), + offsetof(struct ASN_RRC_EUTRA_Parameters__supportedBandListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedBandListEUTRA_2 = { + "supportedBandListEUTRA", + "supportedBandListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2, + sizeof(asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListEUTRA_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedBandListEUTRA_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedBandListEUTRA_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedBandListEUTRA_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_Parameters, supportedBandListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedBandListEUTRA_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedBandListEUTRA_constr_2, memb_ASN_RRC_supportedBandListEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_EUTRA_Parameters, eutra_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-ParametersCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_Parameters, eutra_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-ParametersXDD-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_Parameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandListEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eutra-ParametersCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* eutra-ParametersXDD-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_Parameters_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_Parameters), + offsetof(struct ASN_RRC_EUTRA_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_Parameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_Parameters = { + "EUTRA-Parameters", + "EUTRA-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_Parameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Parameters.h b/src/asn/rrc/ASN_RRC_EUTRA-Parameters.h new file mode 100644 index 0000000..1b863cc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Parameters.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_Parameters_H_ +#define _ASN_RRC_EUTRA_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_ParametersCommon; +struct ASN_RRC_EUTRA_ParametersXDD_Diff; + +/* ASN_RRC_EUTRA-Parameters */ +typedef struct ASN_RRC_EUTRA_Parameters { + struct ASN_RRC_EUTRA_Parameters__supportedBandListEUTRA { + A_SEQUENCE_OF(ASN_RRC_FreqBandIndicatorEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedBandListEUTRA; + struct ASN_RRC_EUTRA_ParametersCommon *eutra_ParametersCommon; /* OPTIONAL */ + struct ASN_RRC_EUTRA_ParametersXDD_Diff *eutra_ParametersXDD_Diff; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_Parameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.c b/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.c new file mode 100644 index 0000000..54d41b4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.c @@ -0,0 +1,349 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-ParametersCommon.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_ASN_RRC_modifiedMPR_BehaviorEUTRA_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 == 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_type_ASN_RRC_mfbi_EUTRA_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_multiNS_Pmax_EUTRA_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rs_SINR_MeasEUTRA_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ne_DC_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_modifiedMPR_BehaviorEUTRA_constr_4 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mfbi_EUTRA_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_mfbi_EUTRA_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mfbi_EUTRA_specs_2 = { + asn_MAP_ASN_RRC_mfbi_EUTRA_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mfbi_EUTRA_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mfbi_EUTRA_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_ASN_RRC_mfbi_EUTRA_2 = { + "mfbi-EUTRA", + "mfbi-EUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2, + sizeof(asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_mfbi_EUTRA_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mfbi_EUTRA_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mfbi_EUTRA_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multiNS_Pmax_EUTRA_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multiNS_Pmax_EUTRA_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multiNS_Pmax_EUTRA_specs_5 = { + asn_MAP_ASN_RRC_multiNS_Pmax_EUTRA_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multiNS_Pmax_EUTRA_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5[] = { + (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_ASN_RRC_multiNS_Pmax_EUTRA_5 = { + "multiNS-Pmax-EUTRA", + "multiNS-Pmax-EUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5, + sizeof(asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5) + /sizeof(asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5) + /sizeof(asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multiNS_Pmax_EUTRA_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multiNS_Pmax_EUTRA_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rs_SINR_MeasEUTRA_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rs_SINR_MeasEUTRA_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rs_SINR_MeasEUTRA_specs_7 = { + asn_MAP_ASN_RRC_rs_SINR_MeasEUTRA_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rs_SINR_MeasEUTRA_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_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_ASN_RRC_rs_SINR_MeasEUTRA_7 = { + "rs-SINR-MeasEUTRA", + "rs-SINR-MeasEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7, + sizeof(asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7) + /sizeof(asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7) + /sizeof(asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rs_SINR_MeasEUTRA_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rs_SINR_MeasEUTRA_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ne_DC_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ne_DC_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ne_DC_specs_11 = { + asn_MAP_ASN_RRC_ne_DC_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ne_DC_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ne_DC_tags_11[] = { + (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_ASN_RRC_ne_DC_11 = { + "ne-DC", + "ne-DC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ne_DC_tags_11, + sizeof(asn_DEF_ASN_RRC_ne_DC_tags_11) + /sizeof(asn_DEF_ASN_RRC_ne_DC_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ne_DC_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ne_DC_tags_11) + /sizeof(asn_DEF_ASN_RRC_ne_DC_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ne_DC_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ne_DC_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_10[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_ParametersCommon__ext1, ne_DC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ne_DC_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ne-DC" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_10[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ne-DC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_10 = { + sizeof(struct ASN_RRC_EUTRA_ParametersCommon__ext1), + offsetof(struct ASN_RRC_EUTRA_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_10, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_10, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_10 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_10, + sizeof(asn_DEF_ASN_RRC_ext1_tags_10) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_10) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_10, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_ParametersCommon_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_EUTRA_ParametersCommon, mfbi_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mfbi_EUTRA_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mfbi-EUTRA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_EUTRA_ParametersCommon, modifiedMPR_BehaviorEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_modifiedMPR_BehaviorEUTRA_constr_4, memb_ASN_RRC_modifiedMPR_BehaviorEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "modifiedMPR-BehaviorEUTRA" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_EUTRA_ParametersCommon, multiNS_Pmax_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiNS-Pmax-EUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_EUTRA_ParametersCommon, rs_SINR_MeasEUTRA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rs-SINR-MeasEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_ParametersCommon_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_ParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mfbi-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* modifiedMPR-BehaviorEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* multiNS-Pmax-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rs-SINR-MeasEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_ParametersCommon_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_ParametersCommon), + offsetof(struct ASN_RRC_EUTRA_ParametersCommon, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_ParametersCommon_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_ParametersCommon_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_ParametersCommon = { + "EUTRA-ParametersCommon", + "EUTRA-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_ParametersCommon_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.h b/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.h new file mode 100644 index 0000000..7f880a4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-ParametersCommon.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_ParametersCommon_H_ +#define _ASN_RRC_EUTRA_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_ParametersCommon__mfbi_EUTRA { + ASN_RRC_EUTRA_ParametersCommon__mfbi_EUTRA_supported = 0 +} e_ASN_RRC_EUTRA_ParametersCommon__mfbi_EUTRA; +typedef enum ASN_RRC_EUTRA_ParametersCommon__multiNS_Pmax_EUTRA { + ASN_RRC_EUTRA_ParametersCommon__multiNS_Pmax_EUTRA_supported = 0 +} e_ASN_RRC_EUTRA_ParametersCommon__multiNS_Pmax_EUTRA; +typedef enum ASN_RRC_EUTRA_ParametersCommon__rs_SINR_MeasEUTRA { + ASN_RRC_EUTRA_ParametersCommon__rs_SINR_MeasEUTRA_supported = 0 +} e_ASN_RRC_EUTRA_ParametersCommon__rs_SINR_MeasEUTRA; +typedef enum ASN_RRC_EUTRA_ParametersCommon__ext1__ne_DC { + ASN_RRC_EUTRA_ParametersCommon__ext1__ne_DC_supported = 0 +} e_ASN_RRC_EUTRA_ParametersCommon__ext1__ne_DC; + +/* ASN_RRC_EUTRA-ParametersCommon */ +typedef struct ASN_RRC_EUTRA_ParametersCommon { + long *mfbi_EUTRA; /* OPTIONAL */ + BIT_STRING_t *modifiedMPR_BehaviorEUTRA; /* OPTIONAL */ + long *multiNS_Pmax_EUTRA; /* OPTIONAL */ + long *rs_SINR_MeasEUTRA; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_EUTRA_ParametersCommon__ext1 { + long *ne_DC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mfbi_EUTRA_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multiNS_Pmax_EUTRA_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rs_SINR_MeasEUTRA_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ne_DC_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_ParametersCommon_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_ParametersCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.c b/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.c new file mode 100644 index 0000000..6da09e4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-ParametersXDD-Diff.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_rsrqMeasWidebandEUTRA_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rsrqMeasWidebandEUTRA_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rsrqMeasWidebandEUTRA_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rsrqMeasWidebandEUTRA_specs_2 = { + asn_MAP_ASN_RRC_rsrqMeasWidebandEUTRA_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rsrqMeasWidebandEUTRA_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_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_ASN_RRC_rsrqMeasWidebandEUTRA_2 = { + "rsrqMeasWidebandEUTRA", + "rsrqMeasWidebandEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2, + sizeof(asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2) + /sizeof(asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rsrqMeasWidebandEUTRA_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rsrqMeasWidebandEUTRA_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_ParametersXDD_Diff, rsrqMeasWidebandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrqMeasWidebandEUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_ParametersXDD_Diff_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_ParametersXDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rsrqMeasWidebandEUTRA */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_ParametersXDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_ParametersXDD_Diff), + offsetof(struct ASN_RRC_EUTRA_ParametersXDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_ParametersXDD_Diff_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_ParametersXDD_Diff_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff = { + "EUTRA-ParametersXDD-Diff", + "EUTRA-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_ParametersXDD_Diff_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.h b/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.h new file mode 100644 index 0000000..60ae15f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-ParametersXDD-Diff.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_ParametersXDD_Diff_H_ +#define _ASN_RRC_EUTRA_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA { + ASN_RRC_EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA_supported = 0 +} e_ASN_RRC_EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA; + +/* ASN_RRC_EUTRA-ParametersXDD-Diff */ +typedef struct ASN_RRC_EUTRA_ParametersXDD_Diff { + long *rsrqMeasWidebandEUTRA; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rsrqMeasWidebandEUTRA_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_ParametersXDD_Diff_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_ParametersXDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.c b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.c new file mode 100644 index 0000000..bb853af --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-PhysCellId.h" + +int +ASN_RRC_EUTRA_PhysCellId_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_ASN_RRC_EUTRA_PhysCellId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_EUTRA_PhysCellId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PhysCellId = { + "EUTRA-PhysCellId", + "EUTRA-PhysCellId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_PhysCellId_constr_1, ASN_RRC_EUTRA_PhysCellId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.h b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.h new file mode 100644 index 0000000..f68f2e5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_PhysCellId_H_ +#define _ASN_RRC_EUTRA_PhysCellId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-PhysCellId */ +typedef long ASN_RRC_EUTRA_PhysCellId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_PhysCellId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PhysCellId; +asn_struct_free_f ASN_RRC_EUTRA_PhysCellId_free; +asn_struct_print_f ASN_RRC_EUTRA_PhysCellId_print; +asn_constr_check_f ASN_RRC_EUTRA_PhysCellId_constraint; +ber_type_decoder_f ASN_RRC_EUTRA_PhysCellId_decode_ber; +der_type_encoder_f ASN_RRC_EUTRA_PhysCellId_encode_der; +xer_type_decoder_f ASN_RRC_EUTRA_PhysCellId_decode_xer; +xer_type_encoder_f ASN_RRC_EUTRA_PhysCellId_encode_xer; +per_type_decoder_f ASN_RRC_EUTRA_PhysCellId_decode_uper; +per_type_encoder_f ASN_RRC_EUTRA_PhysCellId_encode_uper; +per_type_decoder_f ASN_RRC_EUTRA_PhysCellId_decode_aper; +per_type_encoder_f ASN_RRC_EUTRA_PhysCellId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_PhysCellId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.c b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.c new file mode 100644 index 0000000..f8d652f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-PhysCellIdRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_range_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_range_value2enum_3[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n24" }, + { 5, 3, "n32" }, + { 6, 3, "n48" }, + { 7, 3, "n64" }, + { 8, 3, "n84" }, + { 9, 3, "n96" }, + { 10, 4, "n128" }, + { 11, 4, "n168" }, + { 12, 4, "n252" }, + { 13, 4, "n504" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_range_enum2value_3[] = { + 2, /* n12(2) */ + 10, /* n128(10) */ + 3, /* n16(3) */ + 11, /* n168(11) */ + 4, /* n24(4) */ + 12, /* n252(12) */ + 5, /* n32(5) */ + 0, /* n4(0) */ + 6, /* n48(6) */ + 13, /* n504(13) */ + 7, /* n64(7) */ + 1, /* n8(1) */ + 8, /* n84(8) */ + 9, /* n96(9) */ + 15, /* spare1(15) */ + 14 /* spare2(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_range_specs_3 = { + asn_MAP_ASN_RRC_range_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_range_enum2value_3, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_range_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_ASN_RRC_range_3 = { + "range", + "range", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_range_tags_3, + sizeof(asn_DEF_ASN_RRC_range_tags_3) + /sizeof(asn_DEF_ASN_RRC_range_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_range_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_range_tags_3) + /sizeof(asn_DEF_ASN_RRC_range_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_range_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_range_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_PhysCellIdRange_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_PhysCellIdRange, start), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "start" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EUTRA_PhysCellIdRange, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_range_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, +}; +static const int asn_MAP_ASN_RRC_EUTRA_PhysCellIdRange_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_PhysCellIdRange_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* start */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* range */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_PhysCellIdRange_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_PhysCellIdRange), + offsetof(struct ASN_RRC_EUTRA_PhysCellIdRange, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_PhysCellIdRange_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EUTRA_PhysCellIdRange_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange = { + "EUTRA-PhysCellIdRange", + "EUTRA-PhysCellIdRange", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_PhysCellIdRange_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_PhysCellIdRange_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.h b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.h new file mode 100644 index 0000000..d37377d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PhysCellIdRange.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_PhysCellIdRange_H_ +#define _ASN_RRC_EUTRA_PhysCellIdRange_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_PhysCellIdRange__range { + ASN_RRC_EUTRA_PhysCellIdRange__range_n4 = 0, + ASN_RRC_EUTRA_PhysCellIdRange__range_n8 = 1, + ASN_RRC_EUTRA_PhysCellIdRange__range_n12 = 2, + ASN_RRC_EUTRA_PhysCellIdRange__range_n16 = 3, + ASN_RRC_EUTRA_PhysCellIdRange__range_n24 = 4, + ASN_RRC_EUTRA_PhysCellIdRange__range_n32 = 5, + ASN_RRC_EUTRA_PhysCellIdRange__range_n48 = 6, + ASN_RRC_EUTRA_PhysCellIdRange__range_n64 = 7, + ASN_RRC_EUTRA_PhysCellIdRange__range_n84 = 8, + ASN_RRC_EUTRA_PhysCellIdRange__range_n96 = 9, + ASN_RRC_EUTRA_PhysCellIdRange__range_n128 = 10, + ASN_RRC_EUTRA_PhysCellIdRange__range_n168 = 11, + ASN_RRC_EUTRA_PhysCellIdRange__range_n252 = 12, + ASN_RRC_EUTRA_PhysCellIdRange__range_n504 = 13, + ASN_RRC_EUTRA_PhysCellIdRange__range_spare2 = 14, + ASN_RRC_EUTRA_PhysCellIdRange__range_spare1 = 15 +} e_ASN_RRC_EUTRA_PhysCellIdRange__range; + +/* ASN_RRC_EUTRA-PhysCellIdRange */ +typedef struct ASN_RRC_EUTRA_PhysCellIdRange { + ASN_RRC_EUTRA_PhysCellId_t start; + long *range; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_PhysCellIdRange_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_range_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PhysCellIdRange; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_PhysCellIdRange_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_PhysCellIdRange_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_PhysCellIdRange_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.c b/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.c new file mode 100644 index 0000000..309d862 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.c @@ -0,0 +1,31 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-PresenceAntennaPort1.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1 = { + "EUTRA-PresenceAntennaPort1", + "EUTRA-PresenceAntennaPort1", + &asn_OP_BOOLEAN, + asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.h b/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.h new file mode 100644 index 0000000..e6a07d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-PresenceAntennaPort1.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_PresenceAntennaPort1_H_ +#define _ASN_RRC_EUTRA_PresenceAntennaPort1_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-PresenceAntennaPort1 */ +typedef BOOLEAN_t ASN_RRC_EUTRA_PresenceAntennaPort1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1; +asn_struct_free_f ASN_RRC_EUTRA_PresenceAntennaPort1_free; +asn_struct_print_f ASN_RRC_EUTRA_PresenceAntennaPort1_print; +asn_constr_check_f ASN_RRC_EUTRA_PresenceAntennaPort1_constraint; +ber_type_decoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_decode_ber; +der_type_encoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_encode_der; +xer_type_decoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_decode_xer; +xer_type_encoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_encode_xer; +per_type_decoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_decode_uper; +per_type_encoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_encode_uper; +per_type_decoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_decode_aper; +per_type_encoder_f ASN_RRC_EUTRA_PresenceAntennaPort1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_PresenceAntennaPort1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.c b/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.c new file mode 100644 index 0000000..99753aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-Q-OffsetRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_Q_OffsetRange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_EUTRA_Q_OffsetRange_value2enum_1[] = { + { 0, 5, "dB-24" }, + { 1, 5, "dB-22" }, + { 2, 5, "dB-20" }, + { 3, 5, "dB-18" }, + { 4, 5, "dB-16" }, + { 5, 5, "dB-14" }, + { 6, 5, "dB-12" }, + { 7, 5, "dB-10" }, + { 8, 4, "dB-8" }, + { 9, 4, "dB-6" }, + { 10, 4, "dB-5" }, + { 11, 4, "dB-4" }, + { 12, 4, "dB-3" }, + { 13, 4, "dB-2" }, + { 14, 4, "dB-1" }, + { 15, 3, "dB0" }, + { 16, 3, "dB1" }, + { 17, 3, "dB2" }, + { 18, 3, "dB3" }, + { 19, 3, "dB4" }, + { 20, 3, "dB5" }, + { 21, 3, "dB6" }, + { 22, 3, "dB8" }, + { 23, 4, "dB10" }, + { 24, 4, "dB12" }, + { 25, 4, "dB14" }, + { 26, 4, "dB16" }, + { 27, 4, "dB18" }, + { 28, 4, "dB20" }, + { 29, 4, "dB22" }, + { 30, 4, "dB24" } +}; +static const unsigned int asn_MAP_ASN_RRC_EUTRA_Q_OffsetRange_enum2value_1[] = { + 14, /* dB-1(14) */ + 7, /* dB-10(7) */ + 6, /* dB-12(6) */ + 5, /* dB-14(5) */ + 4, /* dB-16(4) */ + 3, /* dB-18(3) */ + 13, /* dB-2(13) */ + 2, /* dB-20(2) */ + 1, /* dB-22(1) */ + 0, /* dB-24(0) */ + 12, /* dB-3(12) */ + 11, /* dB-4(11) */ + 10, /* dB-5(10) */ + 9, /* dB-6(9) */ + 8, /* dB-8(8) */ + 15, /* dB0(15) */ + 16, /* dB1(16) */ + 23, /* dB10(23) */ + 24, /* dB12(24) */ + 25, /* dB14(25) */ + 26, /* dB16(26) */ + 27, /* dB18(27) */ + 17, /* dB2(17) */ + 28, /* dB20(28) */ + 29, /* dB22(29) */ + 30, /* dB24(30) */ + 18, /* dB3(18) */ + 19, /* dB4(19) */ + 20, /* dB5(20) */ + 21, /* dB6(21) */ + 22 /* dB8(22) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EUTRA_Q_OffsetRange_specs_1 = { + asn_MAP_ASN_RRC_EUTRA_Q_OffsetRange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_EUTRA_Q_OffsetRange_enum2value_1, /* N => "tag"; sorted by N */ + 31, /* 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_ASN_RRC_EUTRA_Q_OffsetRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange = { + "EUTRA-Q-OffsetRange", + "EUTRA-Q-OffsetRange", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_Q_OffsetRange_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_EUTRA_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.h b/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.h new file mode 100644 index 0000000..1251ba1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-Q-OffsetRange.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_Q_OffsetRange_H_ +#define _ASN_RRC_EUTRA_Q_OffsetRange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EUTRA_Q_OffsetRange { + ASN_RRC_EUTRA_Q_OffsetRange_dB_24 = 0, + ASN_RRC_EUTRA_Q_OffsetRange_dB_22 = 1, + ASN_RRC_EUTRA_Q_OffsetRange_dB_20 = 2, + ASN_RRC_EUTRA_Q_OffsetRange_dB_18 = 3, + ASN_RRC_EUTRA_Q_OffsetRange_dB_16 = 4, + ASN_RRC_EUTRA_Q_OffsetRange_dB_14 = 5, + ASN_RRC_EUTRA_Q_OffsetRange_dB_12 = 6, + ASN_RRC_EUTRA_Q_OffsetRange_dB_10 = 7, + ASN_RRC_EUTRA_Q_OffsetRange_dB_8 = 8, + ASN_RRC_EUTRA_Q_OffsetRange_dB_6 = 9, + ASN_RRC_EUTRA_Q_OffsetRange_dB_5 = 10, + ASN_RRC_EUTRA_Q_OffsetRange_dB_4 = 11, + ASN_RRC_EUTRA_Q_OffsetRange_dB_3 = 12, + ASN_RRC_EUTRA_Q_OffsetRange_dB_2 = 13, + ASN_RRC_EUTRA_Q_OffsetRange_dB_1 = 14, + ASN_RRC_EUTRA_Q_OffsetRange_dB0 = 15, + ASN_RRC_EUTRA_Q_OffsetRange_dB1 = 16, + ASN_RRC_EUTRA_Q_OffsetRange_dB2 = 17, + ASN_RRC_EUTRA_Q_OffsetRange_dB3 = 18, + ASN_RRC_EUTRA_Q_OffsetRange_dB4 = 19, + ASN_RRC_EUTRA_Q_OffsetRange_dB5 = 20, + ASN_RRC_EUTRA_Q_OffsetRange_dB6 = 21, + ASN_RRC_EUTRA_Q_OffsetRange_dB8 = 22, + ASN_RRC_EUTRA_Q_OffsetRange_dB10 = 23, + ASN_RRC_EUTRA_Q_OffsetRange_dB12 = 24, + ASN_RRC_EUTRA_Q_OffsetRange_dB14 = 25, + ASN_RRC_EUTRA_Q_OffsetRange_dB16 = 26, + ASN_RRC_EUTRA_Q_OffsetRange_dB18 = 27, + ASN_RRC_EUTRA_Q_OffsetRange_dB20 = 28, + ASN_RRC_EUTRA_Q_OffsetRange_dB22 = 29, + ASN_RRC_EUTRA_Q_OffsetRange_dB24 = 30 +} e_ASN_RRC_EUTRA_Q_OffsetRange; + +/* ASN_RRC_EUTRA-Q-OffsetRange */ +typedef long ASN_RRC_EUTRA_Q_OffsetRange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_Q_OffsetRange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EUTRA_Q_OffsetRange_specs_1; +asn_struct_free_f ASN_RRC_EUTRA_Q_OffsetRange_free; +asn_struct_print_f ASN_RRC_EUTRA_Q_OffsetRange_print; +asn_constr_check_f ASN_RRC_EUTRA_Q_OffsetRange_constraint; +ber_type_decoder_f ASN_RRC_EUTRA_Q_OffsetRange_decode_ber; +der_type_encoder_f ASN_RRC_EUTRA_Q_OffsetRange_encode_der; +xer_type_decoder_f ASN_RRC_EUTRA_Q_OffsetRange_decode_xer; +xer_type_encoder_f ASN_RRC_EUTRA_Q_OffsetRange_encode_xer; +per_type_decoder_f ASN_RRC_EUTRA_Q_OffsetRange_decode_uper; +per_type_encoder_f ASN_RRC_EUTRA_Q_OffsetRange_encode_uper; +per_type_decoder_f ASN_RRC_EUTRA_Q_OffsetRange_decode_aper; +per_type_encoder_f ASN_RRC_EUTRA_Q_OffsetRange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_Q_OffsetRange_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.c b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.c new file mode 100644 index 0000000..af54550 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-RSTD-Info.h" + +static int +memb_ASN_RRC_measPRS_Offset_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 <= 39)) { + /* Constraint 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_ASN_RRC_measPRS_Offset_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_RSTD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_RSTD_Info, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EUTRA_RSTD_Info, measPRS_Offset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_measPRS_Offset_constr_3, memb_ASN_RRC_measPRS_Offset_constraint_1 }, + 0, 0, /* No default value */ + "measPRS-Offset" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EUTRA_RSTD_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measPRS-Offset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_RSTD_Info_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_RSTD_Info), + offsetof(struct ASN_RRC_EUTRA_RSTD_Info, _asn_ctx), + asn_MAP_ASN_RRC_EUTRA_RSTD_Info_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_ASN_RRC_EUTRA_RSTD_Info = { + "EUTRA-RSTD-Info", + "EUTRA-RSTD-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EUTRA_RSTD_Info_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_EUTRA_RSTD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.h b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.h new file mode 100644 index 0000000..4df8232 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-Info.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_RSTD_Info_H_ +#define _ASN_RRC_EUTRA_RSTD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_EUTRA-RSTD-Info */ +typedef struct ASN_RRC_EUTRA_RSTD_Info { + ASN_RRC_ARFCN_ValueEUTRA_t carrierFreq; + long measPRS_Offset; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_RSTD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_RSTD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EUTRA_RSTD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_RSTD_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_RSTD_Info_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.c b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.c new file mode 100644 index 0000000..5330e13 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EUTRA-RSTD-InfoList.h" + +#include "ASN_RRC_EUTRA-RSTD-Info.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_RSTD_InfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_RSTD_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_RSTD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_RSTD_InfoList_specs_1 = { + sizeof(struct ASN_RRC_EUTRA_RSTD_InfoList), + offsetof(struct ASN_RRC_EUTRA_RSTD_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList = { + "EUTRA-RSTD-InfoList", + "EUTRA-RSTD-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EUTRA_RSTD_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_EUTRA_RSTD_InfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_EUTRA_RSTD_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.h b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.h new file mode 100644 index 0000000..11d6220 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EUTRA-RSTD-InfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EUTRA_RSTD_InfoList_H_ +#define _ASN_RRC_EUTRA_RSTD_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_RSTD_Info; + +/* ASN_RRC_EUTRA-RSTD-InfoList */ +typedef struct ASN_RRC_EUTRA_RSTD_InfoList { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_RSTD_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EUTRA_RSTD_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_EUTRA_RSTD_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EUTRA_RSTD_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EUTRA_RSTD_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EUTRA_RSTD_InfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EstablishmentCause.c b/src/asn/rrc/ASN_RRC_EstablishmentCause.c new file mode 100644 index 0000000..4bab055 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EstablishmentCause.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EstablishmentCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_EstablishmentCause_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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_EstablishmentCause_value2enum_1[] = { + { 0, 9, "emergency" }, + { 1, 18, "highPriorityAccess" }, + { 2, 9, "mt-Access" }, + { 3, 13, "mo-Signalling" }, + { 4, 7, "mo-Data" }, + { 5, 12, "mo-VoiceCall" }, + { 6, 12, "mo-VideoCall" }, + { 7, 6, "mo-SMS" }, + { 8, 18, "mps-PriorityAccess" }, + { 9, 18, "mcs-PriorityAccess" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_EstablishmentCause_enum2value_1[] = { + 0, /* emergency(0) */ + 1, /* highPriorityAccess(1) */ + 9, /* mcs-PriorityAccess(9) */ + 4, /* mo-Data(4) */ + 7, /* mo-SMS(7) */ + 3, /* mo-Signalling(3) */ + 6, /* mo-VideoCall(6) */ + 5, /* mo-VoiceCall(5) */ + 8, /* mps-PriorityAccess(8) */ + 2, /* mt-Access(2) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10 /* spare6(10) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EstablishmentCause_specs_1 = { + asn_MAP_ASN_RRC_EstablishmentCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_EstablishmentCause_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_EstablishmentCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EstablishmentCause = { + "EstablishmentCause", + "EstablishmentCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_EstablishmentCause_tags_1, + sizeof(asn_DEF_ASN_RRC_EstablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_EstablishmentCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EstablishmentCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EstablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_EstablishmentCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_EstablishmentCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_EstablishmentCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EstablishmentCause.h b/src/asn/rrc/ASN_RRC_EstablishmentCause.h new file mode 100644 index 0000000..5fc1313 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EstablishmentCause.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EstablishmentCause_H_ +#define _ASN_RRC_EstablishmentCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EstablishmentCause { + ASN_RRC_EstablishmentCause_emergency = 0, + ASN_RRC_EstablishmentCause_highPriorityAccess = 1, + ASN_RRC_EstablishmentCause_mt_Access = 2, + ASN_RRC_EstablishmentCause_mo_Signalling = 3, + ASN_RRC_EstablishmentCause_mo_Data = 4, + ASN_RRC_EstablishmentCause_mo_VoiceCall = 5, + ASN_RRC_EstablishmentCause_mo_VideoCall = 6, + ASN_RRC_EstablishmentCause_mo_SMS = 7, + ASN_RRC_EstablishmentCause_mps_PriorityAccess = 8, + ASN_RRC_EstablishmentCause_mcs_PriorityAccess = 9, + ASN_RRC_EstablishmentCause_spare6 = 10, + ASN_RRC_EstablishmentCause_spare5 = 11, + ASN_RRC_EstablishmentCause_spare4 = 12, + ASN_RRC_EstablishmentCause_spare3 = 13, + ASN_RRC_EstablishmentCause_spare2 = 14, + ASN_RRC_EstablishmentCause_spare1 = 15 +} e_ASN_RRC_EstablishmentCause; + +/* ASN_RRC_EstablishmentCause */ +typedef long ASN_RRC_EstablishmentCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_EstablishmentCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EstablishmentCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_EstablishmentCause_specs_1; +asn_struct_free_f ASN_RRC_EstablishmentCause_free; +asn_struct_print_f ASN_RRC_EstablishmentCause_print; +asn_constr_check_f ASN_RRC_EstablishmentCause_constraint; +ber_type_decoder_f ASN_RRC_EstablishmentCause_decode_ber; +der_type_encoder_f ASN_RRC_EstablishmentCause_encode_der; +xer_type_decoder_f ASN_RRC_EstablishmentCause_decode_xer; +xer_type_encoder_f ASN_RRC_EstablishmentCause_encode_xer; +per_type_decoder_f ASN_RRC_EstablishmentCause_decode_uper; +per_type_encoder_f ASN_RRC_EstablishmentCause_encode_uper; +per_type_decoder_f ASN_RRC_EstablishmentCause_decode_aper; +per_type_encoder_f ASN_RRC_EstablishmentCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EstablishmentCause_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EventTriggerConfig.c b/src/asn/rrc/ASN_RRC_EventTriggerConfig.c new file mode 100644 index 0000000..538eb39 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EventTriggerConfig.c @@ -0,0 +1,887 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EventTriggerConfig.h" + +#include "ASN_RRC_MeasReportQuantity.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 int +memb_ASN_RRC_maxReportCells_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 <= 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_ASN_RRC_maxNrofRS_IndexesToReport_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 <= 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_type_ASN_RRC_eventId_constr_2 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 asn_per_constraints_t asn_PER_type_ASN_RRC_reportAmount_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_reportAddNeighMeas_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_maxReportCells_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNrofRS_IndexesToReport_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1, a1_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a1-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a1-Threshold */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeToTrigger */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA1_specs_3 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA1, _asn_ctx), + asn_MAP_ASN_RRC_eventA1_tag2el_3, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA1_3 = { + "eventA1", + "eventA1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA1_tags_3, + sizeof(asn_DEF_ASN_RRC_eventA1_tags_3) + /sizeof(asn_DEF_ASN_RRC_eventA1_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA1_tags_3) + /sizeof(asn_DEF_ASN_RRC_eventA1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_eventA1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA2_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2, a2_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a2-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA2_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA2_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a2-Threshold */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeToTrigger */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA2_specs_8 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA2, _asn_ctx), + asn_MAP_ASN_RRC_eventA2_tag2el_8, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA2_8 = { + "eventA2", + "eventA2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA2_tags_8, + sizeof(asn_DEF_ASN_RRC_eventA2_tags_8) + /sizeof(asn_DEF_ASN_RRC_eventA2_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA2_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA2_tags_8) + /sizeof(asn_DEF_ASN_RRC_eventA2_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA2_8, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_eventA2_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA3_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, a3_Offset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantityOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a3-Offset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, useWhiteCellList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useWhiteCellList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA3_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA3_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a3-Offset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeToTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* useWhiteCellList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA3_specs_13 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA3, _asn_ctx), + asn_MAP_ASN_RRC_eventA3_tag2el_13, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA3_13 = { + "eventA3", + "eventA3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA3_tags_13, + sizeof(asn_DEF_ASN_RRC_eventA3_tags_13) + /sizeof(asn_DEF_ASN_RRC_eventA3_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA3_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA3_tags_13) + /sizeof(asn_DEF_ASN_RRC_eventA3_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA3_13, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_eventA3_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA4_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, a4_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a4-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, useWhiteCellList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useWhiteCellList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA4_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA4_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a4-Threshold */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeToTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* useWhiteCellList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA4_specs_19 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA4, _asn_ctx), + asn_MAP_ASN_RRC_eventA4_tag2el_19, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA4_19 = { + "eventA4", + "eventA4", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA4_tags_19, + sizeof(asn_DEF_ASN_RRC_eventA4_tags_19) + /sizeof(asn_DEF_ASN_RRC_eventA4_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA4_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA4_tags_19) + /sizeof(asn_DEF_ASN_RRC_eventA4_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA4_19, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_eventA4_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA5_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, a5_Threshold1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a5-Threshold1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, a5_Threshold2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a5-Threshold2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, useWhiteCellList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useWhiteCellList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA5_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA5_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a5-Threshold1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* a5-Threshold2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* timeToTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* useWhiteCellList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA5_specs_25 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA5, _asn_ctx), + asn_MAP_ASN_RRC_eventA5_tag2el_25, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA5_25 = { + "eventA5", + "eventA5", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA5_tags_25, + sizeof(asn_DEF_ASN_RRC_eventA5_tags_25) + /sizeof(asn_DEF_ASN_RRC_eventA5_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA5_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA5_tags_25) + /sizeof(asn_DEF_ASN_RRC_eventA5_tags_25[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA5_25, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_eventA5_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventA6_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, a6_Offset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantityOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a6-Offset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, useWhiteCellList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useWhiteCellList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA6_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventA6_tag2el_32[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* a6-Offset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeToTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* useWhiteCellList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventA6_specs_32 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId__eventA6, _asn_ctx), + asn_MAP_ASN_RRC_eventA6_tag2el_32, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA6_32 = { + "eventA6", + "eventA6", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventA6_tags_32, + sizeof(asn_DEF_ASN_RRC_eventA6_tags_32) + /sizeof(asn_DEF_ASN_RRC_eventA6_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA6_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA6_tags_32) + /sizeof(asn_DEF_ASN_RRC_eventA6_tags_32[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventA6_32, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_eventA6_specs_32 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventId_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA2_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA2" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA3_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA3" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA4_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA4" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA5_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA5" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfig__eventId, choice.eventA6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_eventA6_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA6" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventId_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventA1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventA2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eventA3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* eventA4 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* eventA5 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* eventA6 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_eventId_specs_2 = { + sizeof(struct ASN_RRC_EventTriggerConfig__eventId), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId, _asn_ctx), + offsetof(struct ASN_RRC_EventTriggerConfig__eventId, present), + sizeof(((struct ASN_RRC_EventTriggerConfig__eventId *)0)->present), + asn_MAP_ASN_RRC_eventId_tag2el_2, + 6, /* Count of tags in the map */ + 0, 0, + 6 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventId_2 = { + "eventId", + "eventId", + &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_ASN_RRC_eventId_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_eventId_2, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_eventId_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportAmount_value2enum_41[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportAmount_enum2value_41[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportAmount_specs_41 = { + asn_MAP_ASN_RRC_reportAmount_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportAmount_enum2value_41, /* 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_ASN_RRC_reportAmount_tags_41[] = { + (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_ASN_RRC_reportAmount_41 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportAmount_tags_41, + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_41) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_41[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportAmount_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_41) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_41[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportAmount_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportAmount_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportAddNeighMeas_value2enum_55[] = { + { 0, 5, "setup" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportAddNeighMeas_enum2value_55[] = { + 0 /* setup(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportAddNeighMeas_specs_55 = { + asn_MAP_ASN_RRC_reportAddNeighMeas_value2enum_55, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportAddNeighMeas_enum2value_55, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAddNeighMeas_55 = { + "reportAddNeighMeas", + "reportAddNeighMeas", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55, + sizeof(asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55) + /sizeof(asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55) + /sizeof(asn_DEF_ASN_RRC_reportAddNeighMeas_tags_55[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportAddNeighMeas_constr_55, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportAddNeighMeas_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EventTriggerConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, eventId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eventId_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, rsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportAmount_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, reportQuantityCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxReportCells_constr_51, memb_ASN_RRC_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_EventTriggerConfig, reportQuantityRS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityRS-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EventTriggerConfig, maxNrofRS_IndexesToReport), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNrofRS_IndexesToReport_constr_53, memb_ASN_RRC_maxNrofRS_IndexesToReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNrofRS-IndexesToReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfig, includeBeamMeasurements), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "includeBeamMeasurements" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_EventTriggerConfig, reportAddNeighMeas), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportAddNeighMeas_55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAddNeighMeas" + }, +}; +static const int asn_MAP_ASN_RRC_EventTriggerConfig_oms_1[] = { 6, 7, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EventTriggerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EventTriggerConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportInterval */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reportAmount */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reportQuantityCell */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxReportCells */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* reportQuantityRS-Indexes */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* maxNrofRS-IndexesToReport */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* includeBeamMeasurements */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* reportAddNeighMeas */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EventTriggerConfig_specs_1 = { + sizeof(struct ASN_RRC_EventTriggerConfig), + offsetof(struct ASN_RRC_EventTriggerConfig, _asn_ctx), + asn_MAP_ASN_RRC_EventTriggerConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_EventTriggerConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EventTriggerConfig = { + "EventTriggerConfig", + "EventTriggerConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EventTriggerConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_EventTriggerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_EventTriggerConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EventTriggerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EventTriggerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_EventTriggerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EventTriggerConfig_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_EventTriggerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EventTriggerConfig.h b/src/asn/rrc/ASN_RRC_EventTriggerConfig.h new file mode 100644 index 0000000..146f789 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EventTriggerConfig.h @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EventTriggerConfig_H_ +#define _ASN_RRC_EventTriggerConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NR-RS-Type.h" +#include "ASN_RRC_ReportInterval.h" +#include +#include "ASN_RRC_MeasReportQuantity.h" +#include +#include +#include "ASN_RRC_MeasTriggerQuantity.h" +#include "ASN_RRC_Hysteresis.h" +#include "ASN_RRC_TimeToTrigger.h" +#include +#include "ASN_RRC_MeasTriggerQuantityOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EventTriggerConfig__eventId_PR { + ASN_RRC_EventTriggerConfig__eventId_PR_NOTHING, /* No components present */ + ASN_RRC_EventTriggerConfig__eventId_PR_eventA1, + ASN_RRC_EventTriggerConfig__eventId_PR_eventA2, + ASN_RRC_EventTriggerConfig__eventId_PR_eventA3, + ASN_RRC_EventTriggerConfig__eventId_PR_eventA4, + ASN_RRC_EventTriggerConfig__eventId_PR_eventA5, + ASN_RRC_EventTriggerConfig__eventId_PR_eventA6 + /* Extensions may appear below */ + +} ASN_RRC_EventTriggerConfig__eventId_PR; +typedef enum ASN_RRC_EventTriggerConfig__reportAmount { + ASN_RRC_EventTriggerConfig__reportAmount_r1 = 0, + ASN_RRC_EventTriggerConfig__reportAmount_r2 = 1, + ASN_RRC_EventTriggerConfig__reportAmount_r4 = 2, + ASN_RRC_EventTriggerConfig__reportAmount_r8 = 3, + ASN_RRC_EventTriggerConfig__reportAmount_r16 = 4, + ASN_RRC_EventTriggerConfig__reportAmount_r32 = 5, + ASN_RRC_EventTriggerConfig__reportAmount_r64 = 6, + ASN_RRC_EventTriggerConfig__reportAmount_infinity = 7 +} e_ASN_RRC_EventTriggerConfig__reportAmount; +typedef enum ASN_RRC_EventTriggerConfig__reportAddNeighMeas { + ASN_RRC_EventTriggerConfig__reportAddNeighMeas_setup = 0 +} e_ASN_RRC_EventTriggerConfig__reportAddNeighMeas; + +/* Forward declarations */ +struct ASN_RRC_MeasReportQuantity; + +/* ASN_RRC_EventTriggerConfig */ +typedef struct ASN_RRC_EventTriggerConfig { + struct ASN_RRC_EventTriggerConfig__eventId { + ASN_RRC_EventTriggerConfig__eventId_PR present; + union ASN_RRC_EventTriggerConfig__ASN_RRC_eventId_u { + struct ASN_RRC_EventTriggerConfig__eventId__eventA1 { + ASN_RRC_MeasTriggerQuantity_t a1_Threshold; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA1; + struct ASN_RRC_EventTriggerConfig__eventId__eventA2 { + ASN_RRC_MeasTriggerQuantity_t a2_Threshold; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA2; + struct ASN_RRC_EventTriggerConfig__eventId__eventA3 { + ASN_RRC_MeasTriggerQuantityOffset_t a3_Offset; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA3; + struct ASN_RRC_EventTriggerConfig__eventId__eventA4 { + ASN_RRC_MeasTriggerQuantity_t a4_Threshold; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA4; + struct ASN_RRC_EventTriggerConfig__eventId__eventA5 { + ASN_RRC_MeasTriggerQuantity_t a5_Threshold1; + ASN_RRC_MeasTriggerQuantity_t a5_Threshold2; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA5; + struct ASN_RRC_EventTriggerConfig__eventId__eventA6 { + ASN_RRC_MeasTriggerQuantityOffset_t a6_Offset; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA6; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } eventId; + ASN_RRC_NR_RS_Type_t rsType; + ASN_RRC_ReportInterval_t reportInterval; + long reportAmount; + ASN_RRC_MeasReportQuantity_t reportQuantityCell; + long maxReportCells; + struct ASN_RRC_MeasReportQuantity *reportQuantityRS_Indexes; /* OPTIONAL */ + long *maxNrofRS_IndexesToReport; /* OPTIONAL */ + BOOLEAN_t includeBeamMeasurements; + long *reportAddNeighMeas; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EventTriggerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAmount_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAddNeighMeas_55; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EventTriggerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EventTriggerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EventTriggerConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EventTriggerConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.c b/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.c new file mode 100644 index 0000000..eacbf8a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.c @@ -0,0 +1,398 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_EventTriggerConfigInterRAT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxReportCells_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 <= 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_type_ASN_RRC_eventId_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_ASN_RRC_reportAmount_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxReportCells_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventB1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1, b1_ThresholdEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b1-ThresholdEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventB1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventB1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* b1-ThresholdEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeToTrigger */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventB1_specs_3 = { + sizeof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1), + offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1, _asn_ctx), + asn_MAP_ASN_RRC_eventB1_tag2el_3, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventB1_3 = { + "eventB1", + "eventB1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventB1_tags_3, + sizeof(asn_DEF_ASN_RRC_eventB1_tags_3) + /sizeof(asn_DEF_ASN_RRC_eventB1_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventB1_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventB1_tags_3) + /sizeof(asn_DEF_ASN_RRC_eventB1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventB1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_eventB1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventB2_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b2-Threshold1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold2EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTriggerQuantityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b2-Threshold2EUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, reportOnLeave), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportOnLeave" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventB2_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventB2_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* b2-Threshold1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* b2-Threshold2EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportOnLeave */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hysteresis */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* timeToTrigger */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eventB2_specs_9 = { + sizeof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2), + offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2, _asn_ctx), + asn_MAP_ASN_RRC_eventB2_tag2el_9, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 5, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventB2_9 = { + "eventB2", + "eventB2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eventB2_tags_9, + sizeof(asn_DEF_ASN_RRC_eventB2_tags_9) + /sizeof(asn_DEF_ASN_RRC_eventB2_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventB2_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventB2_tags_9) + /sizeof(asn_DEF_ASN_RRC_eventB2_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eventB2_9, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_eventB2_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_eventId_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId, choice.eventB1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_eventB1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId, choice.eventB2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_eventB2_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eventId_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventB1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eventB2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_eventId_specs_2 = { + sizeof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId), + offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId, _asn_ctx), + offsetof(struct ASN_RRC_EventTriggerConfigInterRAT__eventId, present), + sizeof(((struct ASN_RRC_EventTriggerConfigInterRAT__eventId *)0)->present), + asn_MAP_ASN_RRC_eventId_tag2el_2, + 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_ASN_RRC_eventId_2 = { + "eventId", + "eventId", + &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_ASN_RRC_eventId_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_eventId_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_eventId_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportAmount_value2enum_19[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportAmount_enum2value_19[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportAmount_specs_19 = { + asn_MAP_ASN_RRC_reportAmount_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportAmount_enum2value_19, /* 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_ASN_RRC_reportAmount_tags_19[] = { + (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_ASN_RRC_reportAmount_19 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportAmount_tags_19, + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_19) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportAmount_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_19) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportAmount_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportAmount_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_EventTriggerConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, eventId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eventId_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, rsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportAmount_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxReportCells_constr_29, memb_ASN_RRC_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_EventTriggerConfigInterRAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportInterval */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reportAmount */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reportQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxReportCells */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EventTriggerConfigInterRAT_specs_1 = { + sizeof(struct ASN_RRC_EventTriggerConfigInterRAT), + offsetof(struct ASN_RRC_EventTriggerConfigInterRAT, _asn_ctx), + asn_MAP_ASN_RRC_EventTriggerConfigInterRAT_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EventTriggerConfigInterRAT = { + "EventTriggerConfigInterRAT", + "EventTriggerConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1, + sizeof(asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_EventTriggerConfigInterRAT_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_EventTriggerConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.h b/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.h new file mode 100644 index 0000000..cc23110 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_EventTriggerConfigInterRAT.h @@ -0,0 +1,117 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_EventTriggerConfigInterRAT_H_ +#define _ASN_RRC_EventTriggerConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NR-RS-Type.h" +#include "ASN_RRC_ReportInterval.h" +#include +#include "ASN_RRC_MeasReportQuantity.h" +#include +#include "ASN_RRC_MeasTriggerQuantityEUTRA.h" +#include +#include "ASN_RRC_Hysteresis.h" +#include "ASN_RRC_TimeToTrigger.h" +#include +#include "ASN_RRC_MeasTriggerQuantity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_EventTriggerConfigInterRAT__eventId_PR { + ASN_RRC_EventTriggerConfigInterRAT__eventId_PR_NOTHING, /* No components present */ + ASN_RRC_EventTriggerConfigInterRAT__eventId_PR_eventB1, + ASN_RRC_EventTriggerConfigInterRAT__eventId_PR_eventB2 + /* Extensions may appear below */ + +} ASN_RRC_EventTriggerConfigInterRAT__eventId_PR; +typedef enum ASN_RRC_EventTriggerConfigInterRAT__reportAmount { + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r1 = 0, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r2 = 1, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r4 = 2, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r8 = 3, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r16 = 4, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r32 = 5, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_r64 = 6, + ASN_RRC_EventTriggerConfigInterRAT__reportAmount_infinity = 7 +} e_ASN_RRC_EventTriggerConfigInterRAT__reportAmount; + +/* ASN_RRC_EventTriggerConfigInterRAT */ +typedef struct ASN_RRC_EventTriggerConfigInterRAT { + struct ASN_RRC_EventTriggerConfigInterRAT__eventId { + ASN_RRC_EventTriggerConfigInterRAT__eventId_PR present; + union ASN_RRC_EventTriggerConfigInterRAT__ASN_RRC_eventId_u { + struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB1 { + ASN_RRC_MeasTriggerQuantityEUTRA_t b1_ThresholdEUTRA; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventB1; + struct ASN_RRC_EventTriggerConfigInterRAT__eventId__eventB2 { + ASN_RRC_MeasTriggerQuantity_t b2_Threshold1; + ASN_RRC_MeasTriggerQuantityEUTRA_t b2_Threshold2EUTRA; + BOOLEAN_t reportOnLeave; + ASN_RRC_Hysteresis_t hysteresis; + ASN_RRC_TimeToTrigger_t timeToTrigger; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventB2; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } eventId; + ASN_RRC_NR_RS_Type_t rsType; + ASN_RRC_ReportInterval_t reportInterval; + long reportAmount; + ASN_RRC_MeasReportQuantity_t reportQuantity; + long maxReportCells; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_EventTriggerConfigInterRAT_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAmount_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_EventTriggerConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_EventTriggerConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_EventTriggerConfigInterRAT_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_EventTriggerConfigInterRAT_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FR-Info.c b/src/asn/rrc/ASN_RRC_FR-Info.c new file mode 100644 index 0000000..c2c6a6a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FR-Info.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FR-Info.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_fr_Type_constr_3 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_ASN_RRC_fr_Type_value2enum_3[] = { + { 0, 3, "fr1" }, + { 1, 3, "fr2" } +}; +static const unsigned int asn_MAP_ASN_RRC_fr_Type_enum2value_3[] = { + 0, /* fr1(0) */ + 1 /* fr2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fr_Type_specs_3 = { + asn_MAP_ASN_RRC_fr_Type_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fr_Type_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fr_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_ASN_RRC_fr_Type_3 = { + "fr-Type", + "fr-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fr_Type_tags_3, + sizeof(asn_DEF_ASN_RRC_fr_Type_tags_3) + /sizeof(asn_DEF_ASN_RRC_fr_Type_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr_Type_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr_Type_tags_3) + /sizeof(asn_DEF_ASN_RRC_fr_Type_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fr_Type_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fr_Type_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FR_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FR_Info, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FR_Info, fr_Type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fr_Type_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr-Type" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FR_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FR_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fr-Type */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FR_Info_specs_1 = { + sizeof(struct ASN_RRC_FR_Info), + offsetof(struct ASN_RRC_FR_Info, _asn_ctx), + asn_MAP_ASN_RRC_FR_Info_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FR_Info = { + "FR-Info", + "FR-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FR_Info_tags_1, + sizeof(asn_DEF_ASN_RRC_FR_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_FR_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FR_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FR_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_FR_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FR_Info_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_FR_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FR-Info.h b/src/asn/rrc/ASN_RRC_FR-Info.h new file mode 100644 index 0000000..e157298 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FR-Info.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FR_Info_H_ +#define _ASN_RRC_FR_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FR_Info__fr_Type { + ASN_RRC_FR_Info__fr_Type_fr1 = 0, + ASN_RRC_FR_Info__fr_Type_fr2 = 1 +} e_ASN_RRC_FR_Info__fr_Type; + +/* ASN_RRC_FR-Info */ +typedef struct ASN_RRC_FR_Info { + ASN_RRC_ServCellIndex_t servCellIndex; + long fr_Type; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FR_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr_Type_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FR_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FR_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FR_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FR_Info_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FR-InfoList.c b/src/asn/rrc/ASN_RRC_FR-InfoList.c new file mode 100644 index 0000000..c173f8b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FR-InfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FR-InfoList.h" + +#include "ASN_RRC_FR-Info.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FR_InfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_FR_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FR_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FR_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FR_InfoList_specs_1 = { + sizeof(struct ASN_RRC_FR_InfoList), + offsetof(struct ASN_RRC_FR_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FR_InfoList = { + "FR-InfoList", + "FR-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FR_InfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_FR_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_FR_InfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FR_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FR_InfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_FR_InfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FR_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FR_InfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FR_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FR-InfoList.h b/src/asn/rrc/ASN_RRC_FR-InfoList.h new file mode 100644 index 0000000..3d124ba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FR-InfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FR_InfoList_H_ +#define _ASN_RRC_FR_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FR_Info; + +/* ASN_RRC_FR-InfoList */ +typedef struct ASN_RRC_FR_InfoList { + A_SEQUENCE_OF(struct ASN_RRC_FR_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FR_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FR_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FR_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FR_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FR_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FR_InfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.c b/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.c new file mode 100644 index 0000000..613e477 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FailureInfoRLC-Bearer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureType_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_failureType_value2enum_4[] = { + { 0, 11, "duplication" }, + { 1, 6, "spare3" }, + { 2, 6, "spare2" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_failureType_enum2value_4[] = { + 0, /* duplication(0) */ + 3, /* spare1(3) */ + 2, /* spare2(2) */ + 1 /* spare3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_failureType_specs_4 = { + asn_MAP_ASN_RRC_failureType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_failureType_enum2value_4, /* 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_ASN_RRC_failureType_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_ASN_RRC_failureType_4 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_failureType_tags_4, + sizeof(asn_DEF_ASN_RRC_failureType_tags_4) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureType_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureType_tags_4) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_failureType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInfoRLC_Bearer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureInfoRLC_Bearer, cellGroupId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroupId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureInfoRLC_Bearer, logicalChannelIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureInfoRLC_Bearer, failureType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_failureType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FailureInfoRLC_Bearer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGroupId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* logicalChannelIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* failureType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInfoRLC_Bearer_specs_1 = { + sizeof(struct ASN_RRC_FailureInfoRLC_Bearer), + offsetof(struct ASN_RRC_FailureInfoRLC_Bearer, _asn_ctx), + asn_MAP_ASN_RRC_FailureInfoRLC_Bearer_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_ASN_RRC_FailureInfoRLC_Bearer = { + "FailureInfoRLC-Bearer", + "FailureInfoRLC-Bearer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1, + sizeof(asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInfoRLC_Bearer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FailureInfoRLC_Bearer_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FailureInfoRLC_Bearer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.h b/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.h new file mode 100644 index 0000000..91043ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInfoRLC-Bearer.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FailureInfoRLC_Bearer_H_ +#define _ASN_RRC_FailureInfoRLC_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CellGroupId.h" +#include "ASN_RRC_LogicalChannelIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FailureInfoRLC_Bearer__failureType { + ASN_RRC_FailureInfoRLC_Bearer__failureType_duplication = 0, + ASN_RRC_FailureInfoRLC_Bearer__failureType_spare3 = 1, + ASN_RRC_FailureInfoRLC_Bearer__failureType_spare2 = 2, + ASN_RRC_FailureInfoRLC_Bearer__failureType_spare1 = 3 +} e_ASN_RRC_FailureInfoRLC_Bearer__failureType; + +/* ASN_RRC_FailureInfoRLC-Bearer */ +typedef struct ASN_RRC_FailureInfoRLC_Bearer { + ASN_RRC_CellGroupId_t cellGroupId; + ASN_RRC_LogicalChannelIdentity_t logicalChannelIdentity; + long failureType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FailureInfoRLC_Bearer_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureInfoRLC_Bearer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInfoRLC_Bearer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInfoRLC_Bearer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FailureInfoRLC_Bearer_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FailureInformation-IEs.c b/src/asn/rrc/ASN_RRC_FailureInformation-IEs.c new file mode 100644 index 0000000..327fb6b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInformation-IEs.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FailureInformation-IEs.h" + +#include "ASN_RRC_FailureInfoRLC-Bearer.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_FailureInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_FailureInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FailureInformation_IEs, failureInfoRLC_Bearer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FailureInfoRLC_Bearer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInfoRLC-Bearer" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FailureInformation_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FailureInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_FailureInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FailureInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureInfoRLC-Bearer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_FailureInformation_IEs), + offsetof(struct ASN_RRC_FailureInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_FailureInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FailureInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureInformation_IEs = { + "FailureInformation-IEs", + "FailureInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FailureInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FailureInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FailureInformation-IEs.h b/src/asn/rrc/ASN_RRC_FailureInformation-IEs.h new file mode 100644 index 0000000..af96188 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInformation-IEs.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FailureInformation_IEs_H_ +#define _ASN_RRC_FailureInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FailureInfoRLC_Bearer; + +/* ASN_RRC_FailureInformation-IEs */ +typedef struct ASN_RRC_FailureInformation_IEs { + struct ASN_RRC_FailureInfoRLC_Bearer *failureInfoRLC_Bearer; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_FailureInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FailureInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FailureInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FailureInformation.c b/src/asn/rrc/ASN_RRC_FailureInformation.c new file mode 100644 index 0000000..7da8008 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInformation.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FailureInformation.h" + +#include "ASN_RRC_FailureInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_FailureInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_FailureInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FailureInformation__criticalExtensions, choice.failureInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FailureInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FailureInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_FailureInformation__criticalExtensions), + offsetof(struct ASN_RRC_FailureInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_FailureInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_FailureInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FailureInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FailureInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInformation_specs_1 = { + sizeof(struct ASN_RRC_FailureInformation), + offsetof(struct ASN_RRC_FailureInformation, _asn_ctx), + asn_MAP_ASN_RRC_FailureInformation_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_ASN_RRC_FailureInformation = { + "FailureInformation", + "FailureInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FailureInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_FailureInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FailureInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FailureInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FailureInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_FailureInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FailureInformation.h b/src/asn/rrc/ASN_RRC_FailureInformation.h new file mode 100644 index 0000000..1cf05c8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureInformation.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FailureInformation_H_ +#define _ASN_RRC_FailureInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FailureInformation__criticalExtensions_PR { + ASN_RRC_FailureInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_FailureInformation__criticalExtensions_PR_failureInformation, + ASN_RRC_FailureInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_FailureInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_FailureInformation_IEs; + +/* ASN_RRC_FailureInformation */ +typedef struct ASN_RRC_FailureInformation { + struct ASN_RRC_FailureInformation__criticalExtensions { + ASN_RRC_FailureInformation__criticalExtensions_PR present; + union ASN_RRC_FailureInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_FailureInformation_IEs *failureInformation; + struct ASN_RRC_FailureInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FailureInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FailureInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FailureInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.c b/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.c new file mode 100644 index 0000000..cc1fc98 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FailureReportSCG-EUTRA.h" + +#include "ASN_RRC_MeasResultFreqListFailMRDC.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureType_constr_2 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_ASN_RRC_failureType_value2enum_2[] = { + { 0, 11, "t313-Expiry" }, + { 1, 19, "randomAccessProblem" }, + { 2, 14, "rlc-MaxNumRetx" }, + { 3, 17, "scg-ChangeFailure" }, + { 4, 6, "spare4" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_failureType_enum2value_2[] = { + 1, /* randomAccessProblem(1) */ + 2, /* rlc-MaxNumRetx(2) */ + 3, /* scg-ChangeFailure(3) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* spare3(5) */ + 4, /* spare4(4) */ + 0 /* t313-Expiry(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_failureType_specs_2 = { + asn_MAP_ASN_RRC_failureType_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_failureType_enum2value_2, /* 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_ASN_RRC_failureType_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_ASN_RRC_failureType_2 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_failureType_tags_2, + sizeof(asn_DEF_ASN_RRC_failureType_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureType_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureType_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureType_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_failureType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FailureReportSCG_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureReportSCG_EUTRA, failureType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_failureType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FailureReportSCG_EUTRA, measResultFreqListMRDC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultFreqListMRDC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FailureReportSCG_EUTRA, measResultSCG_FailureMRDC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultSCG-FailureMRDC" + }, +}; +static const int asn_MAP_ASN_RRC_FailureReportSCG_EUTRA_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FailureReportSCG_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultFreqListMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultSCG-FailureMRDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureReportSCG_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_FailureReportSCG_EUTRA), + offsetof(struct ASN_RRC_FailureReportSCG_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_FailureReportSCG_EUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FailureReportSCG_EUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureReportSCG_EUTRA = { + "FailureReportSCG-EUTRA", + "FailureReportSCG-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureReportSCG_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FailureReportSCG_EUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FailureReportSCG_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.h b/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.h new file mode 100644 index 0000000..76674a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureReportSCG-EUTRA.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FailureReportSCG_EUTRA_H_ +#define _ASN_RRC_FailureReportSCG_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FailureReportSCG_EUTRA__failureType { + ASN_RRC_FailureReportSCG_EUTRA__failureType_t313_Expiry = 0, + ASN_RRC_FailureReportSCG_EUTRA__failureType_randomAccessProblem = 1, + ASN_RRC_FailureReportSCG_EUTRA__failureType_rlc_MaxNumRetx = 2, + ASN_RRC_FailureReportSCG_EUTRA__failureType_scg_ChangeFailure = 3, + ASN_RRC_FailureReportSCG_EUTRA__failureType_spare4 = 4, + ASN_RRC_FailureReportSCG_EUTRA__failureType_spare3 = 5, + ASN_RRC_FailureReportSCG_EUTRA__failureType_spare2 = 6, + ASN_RRC_FailureReportSCG_EUTRA__failureType_spare1 = 7 +} e_ASN_RRC_FailureReportSCG_EUTRA__failureType; + +/* Forward declarations */ +struct ASN_RRC_MeasResultFreqListFailMRDC; + +/* ASN_RRC_FailureReportSCG-EUTRA */ +typedef struct ASN_RRC_FailureReportSCG_EUTRA { + long failureType; + struct ASN_RRC_MeasResultFreqListFailMRDC *measResultFreqListMRDC; /* OPTIONAL */ + OCTET_STRING_t *measResultSCG_FailureMRDC; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FailureReportSCG_EUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureType_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureReportSCG_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureReportSCG_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FailureReportSCG_EUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FailureReportSCG_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FailureReportSCG.c b/src/asn/rrc/ASN_RRC_FailureReportSCG.c new file mode 100644 index 0000000..4374559 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureReportSCG.c @@ -0,0 +1,157 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FailureReportSCG.h" + +#include "ASN_RRC_MeasResultFreqList.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_measResultSCG_Failure_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureType_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_measResultSCG_Failure_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_failureType_value2enum_2[] = { + { 0, 11, "t310-Expiry" }, + { 1, 19, "randomAccessProblem" }, + { 2, 14, "rlc-MaxNumRetx" }, + { 3, 23, "synchReconfigFailureSCG" }, + { 4, 19, "scg-ReconfigFailure" }, + { 5, 21, "srb3-IntegrityFailure" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_failureType_enum2value_2[] = { + 1, /* randomAccessProblem(1) */ + 2, /* rlc-MaxNumRetx(2) */ + 4, /* scg-ReconfigFailure(4) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* srb3-IntegrityFailure(5) */ + 3, /* synchReconfigFailureSCG(3) */ + 0 /* t310-Expiry(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_failureType_specs_2 = { + asn_MAP_ASN_RRC_failureType_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_failureType_enum2value_2, /* 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_ASN_RRC_failureType_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_ASN_RRC_failureType_2 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_failureType_tags_2, + sizeof(asn_DEF_ASN_RRC_failureType_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureType_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureType_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureType_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureType_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_failureType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FailureReportSCG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FailureReportSCG, failureType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_failureType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FailureReportSCG, measResultFreqList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultFreqList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultFreqList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FailureReportSCG, measResultSCG_Failure), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_measResultSCG_Failure_constr_12, memb_ASN_RRC_measResultSCG_Failure_constraint_1 }, + 0, 0, /* No default value */ + "measResultSCG-Failure" + }, +}; +static const int asn_MAP_ASN_RRC_FailureReportSCG_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FailureReportSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FailureReportSCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultFreqList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultSCG-Failure */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureReportSCG_specs_1 = { + sizeof(struct ASN_RRC_FailureReportSCG), + offsetof(struct ASN_RRC_FailureReportSCG, _asn_ctx), + asn_MAP_ASN_RRC_FailureReportSCG_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FailureReportSCG_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureReportSCG = { + "FailureReportSCG", + "FailureReportSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FailureReportSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_FailureReportSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureReportSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FailureReportSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FailureReportSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_FailureReportSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FailureReportSCG_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FailureReportSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FailureReportSCG.h b/src/asn/rrc/ASN_RRC_FailureReportSCG.h new file mode 100644 index 0000000..e2d431f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FailureReportSCG.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FailureReportSCG_H_ +#define _ASN_RRC_FailureReportSCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FailureReportSCG__failureType { + ASN_RRC_FailureReportSCG__failureType_t310_Expiry = 0, + ASN_RRC_FailureReportSCG__failureType_randomAccessProblem = 1, + ASN_RRC_FailureReportSCG__failureType_rlc_MaxNumRetx = 2, + ASN_RRC_FailureReportSCG__failureType_synchReconfigFailureSCG = 3, + ASN_RRC_FailureReportSCG__failureType_scg_ReconfigFailure = 4, + ASN_RRC_FailureReportSCG__failureType_srb3_IntegrityFailure = 5, + ASN_RRC_FailureReportSCG__failureType_spare2 = 6, + ASN_RRC_FailureReportSCG__failureType_spare1 = 7 +} e_ASN_RRC_FailureReportSCG__failureType; + +/* Forward declarations */ +struct ASN_RRC_MeasResultFreqList; + +/* ASN_RRC_FailureReportSCG */ +typedef struct ASN_RRC_FailureReportSCG { + long failureType; + struct ASN_RRC_MeasResultFreqList *measResultFreqList; /* OPTIONAL */ + OCTET_STRING_t *measResultSCG_Failure; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FailureReportSCG_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureType_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FailureReportSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FailureReportSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FailureReportSCG_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FailureReportSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSet.c b/src/asn/rrc/ASN_RRC_FeatureSet.c new file mode 100644 index 0000000..3a8890e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSet.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSet.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSet_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 asn_TYPE_member_t asn_MBR_ASN_RRC_eutra_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSet__eutra, downlinkSetEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSetEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSet__eutra, uplinkSetEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkSetEUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eutra_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_eutra_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* downlinkSetEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkSetEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_eutra_specs_2 = { + sizeof(struct ASN_RRC_FeatureSet__eutra), + offsetof(struct ASN_RRC_FeatureSet__eutra, _asn_ctx), + asn_MAP_ASN_RRC_eutra_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eutra_2 = { + "eutra", + "eutra", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_eutra_tags_2, + sizeof(asn_DEF_ASN_RRC_eutra_tags_2) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eutra_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eutra_tags_2) + /sizeof(asn_DEF_ASN_RRC_eutra_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_eutra_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_eutra_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nr_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSet__nr, downlinkSetNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetDownlinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSetNR" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSet__nr, uplinkSetNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSetUplinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkSetNR" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nr_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nr_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* downlinkSetNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkSetNR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nr_specs_5 = { + sizeof(struct ASN_RRC_FeatureSet__nr), + offsetof(struct ASN_RRC_FeatureSet__nr, _asn_ctx), + asn_MAP_ASN_RRC_nr_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nr_5 = { + "nr", + "nr", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nr_tags_5, + sizeof(asn_DEF_ASN_RRC_nr_tags_5) + /sizeof(asn_DEF_ASN_RRC_nr_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nr_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nr_tags_5) + /sizeof(asn_DEF_ASN_RRC_nr_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nr_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_nr_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSet_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FeatureSet, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_eutra_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FeatureSet, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nr_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nr */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_FeatureSet_specs_1 = { + sizeof(struct ASN_RRC_FeatureSet), + offsetof(struct ASN_RRC_FeatureSet, _asn_ctx), + offsetof(struct ASN_RRC_FeatureSet, present), + sizeof(((struct ASN_RRC_FeatureSet *)0)->present), + asn_MAP_ASN_RRC_FeatureSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSet = { + "FeatureSet", + "FeatureSet", + &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_ASN_RRC_FeatureSet_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_FeatureSet_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSet.h b/src/asn/rrc/ASN_RRC_FeatureSet.h new file mode 100644 index 0000000..8ac52d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSet.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSet_H_ +#define _ASN_RRC_FeatureSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FeatureSetEUTRA-DownlinkId.h" +#include "ASN_RRC_FeatureSetEUTRA-UplinkId.h" +#include +#include "ASN_RRC_FeatureSetDownlinkId.h" +#include "ASN_RRC_FeatureSetUplinkId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSet_PR { + ASN_RRC_FeatureSet_PR_NOTHING, /* No components present */ + ASN_RRC_FeatureSet_PR_eutra, + ASN_RRC_FeatureSet_PR_nr +} ASN_RRC_FeatureSet_PR; + +/* ASN_RRC_FeatureSet */ +typedef struct ASN_RRC_FeatureSet { + ASN_RRC_FeatureSet_PR present; + union ASN_RRC_FeatureSet_u { + struct ASN_RRC_FeatureSet__eutra { + ASN_RRC_FeatureSetEUTRA_DownlinkId_t downlinkSetEUTRA; + ASN_RRC_FeatureSetEUTRA_UplinkId_t uplinkSetEUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eutra; + struct ASN_RRC_FeatureSet__nr { + ASN_RRC_FeatureSetDownlinkId_t downlinkSetNR; + ASN_RRC_FeatureSetUplinkId_t uplinkSetNR; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSet; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_FeatureSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSet_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSet_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetCombination.c b/src/asn/rrc/ASN_RRC_FeatureSetCombination.c new file mode 100644 index 0000000..f681855 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetCombination.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetCombination.h" + +#include "ASN_RRC_FeatureSetsPerBand.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetCombination_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_ASN_RRC_FeatureSetCombination_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetsPerBand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FeatureSetCombination_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetCombination), + offsetof(struct ASN_RRC_FeatureSetCombination, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetCombination = { + "FeatureSetCombination", + "FeatureSetCombination", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FeatureSetCombination_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetCombination_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetCombination_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetCombination_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FeatureSetCombination_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FeatureSetCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetCombination.h b/src/asn/rrc/ASN_RRC_FeatureSetCombination.h new file mode 100644 index 0000000..1a0f50a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetCombination.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetCombination_H_ +#define _ASN_RRC_FeatureSetCombination_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FeatureSetsPerBand; + +/* ASN_RRC_FeatureSetCombination */ +typedef struct ASN_RRC_FeatureSetCombination { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetsPerBand) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetCombination_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetCombination; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FeatureSetCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetCombination_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetCombination_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetCombination_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.c b/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.c new file mode 100644 index 0000000..c9582ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetCombinationId.h" + +int +ASN_RRC_FeatureSetCombinationId_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetCombinationId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1024 } /* (0..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetCombinationId = { + "FeatureSetCombinationId", + "FeatureSetCombinationId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetCombinationId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetCombinationId_constr_1, ASN_RRC_FeatureSetCombinationId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.h b/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.h new file mode 100644 index 0000000..adde7c4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetCombinationId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetCombinationId_H_ +#define _ASN_RRC_FeatureSetCombinationId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetCombinationId */ +typedef long ASN_RRC_FeatureSetCombinationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetCombinationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetCombinationId; +asn_struct_free_f ASN_RRC_FeatureSetCombinationId_free; +asn_struct_print_f ASN_RRC_FeatureSetCombinationId_print; +asn_constr_check_f ASN_RRC_FeatureSetCombinationId_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetCombinationId_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetCombinationId_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetCombinationId_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetCombinationId_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetCombinationId_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetCombinationId_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetCombinationId_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetCombinationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetCombinationId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.c b/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.c new file mode 100644 index 0000000..a52d703 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.c @@ -0,0 +1,822 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetDownlink-v1540.h" + +#include "ASN_RRC_ProcessingParameters.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_additionalDMRS_DL_Alt_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_15kHz_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_type_ASN_RRC_scs_30kHz_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_type_ASN_RRC_scs_60kHz_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_type_ASN_RRC_scs_120kHz_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_type_ASN_RRC_pdsch_SeparationWithGap_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_differentTB_PerSlot_SCS_30kHz_constr_34 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_type_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_specs_2 = { + asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_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_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_2 = { + "oneFL-DMRS-TwoAdditionalDMRS-DL", + "oneFL-DMRS-TwoAdditionalDMRS-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2, + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_additionalDMRS_DL_Alt_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_additionalDMRS_DL_Alt_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_additionalDMRS_DL_Alt_specs_4 = { + asn_MAP_ASN_RRC_additionalDMRS_DL_Alt_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_additionalDMRS_DL_Alt_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4[] = { + (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_ASN_RRC_additionalDMRS_DL_Alt_4 = { + "additionalDMRS-DL-Alt", + "additionalDMRS-DL-Alt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4, + sizeof(asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4) + /sizeof(asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4) + /sizeof(asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_additionalDMRS_DL_Alt_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_additionalDMRS_DL_Alt_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_specs_6 = { + asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6[] = { + (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_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_6 = { + "twoFL-DMRS-TwoAdditionalDMRS-DL", + "twoFL-DMRS-TwoAdditionalDMRS-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6, + sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6) + /sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6) + /sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_specs_8 = { + asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_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_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_8 = { + "oneFL-DMRS-ThreeAdditionalDMRS-DL", + "oneFL-DMRS-ThreeAdditionalDMRS-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8, + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_15kHz_value2enum_11[] = { + { 0, 4, "set1" }, + { 1, 4, "set2" }, + { 2, 4, "set3" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_15kHz_enum2value_11[] = { + 0, /* set1(0) */ + 1, /* set2(1) */ + 2 /* set3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_15kHz_specs_11 = { + asn_MAP_ASN_RRC_scs_15kHz_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_15kHz_enum2value_11, /* 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_ASN_RRC_scs_15kHz_tags_11[] = { + (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_ASN_RRC_scs_15kHz_11 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_15kHz_tags_11, + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_11) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_15kHz_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_11) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_15kHz_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_15kHz_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_30kHz_value2enum_15[] = { + { 0, 4, "set1" }, + { 1, 4, "set2" }, + { 2, 4, "set3" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_30kHz_enum2value_15[] = { + 0, /* set1(0) */ + 1, /* set2(1) */ + 2 /* set3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_30kHz_specs_15 = { + asn_MAP_ASN_RRC_scs_30kHz_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_30kHz_enum2value_15, /* 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_ASN_RRC_scs_30kHz_tags_15[] = { + (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_ASN_RRC_scs_30kHz_15 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_30kHz_tags_15, + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_15) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_30kHz_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_15) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_30kHz_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_30kHz_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_19[] = { + { 0, 4, "set1" }, + { 1, 4, "set2" }, + { 2, 4, "set3" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_19[] = { + 0, /* set1(0) */ + 1, /* set2(1) */ + 2 /* set3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_19 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_19, /* 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_ASN_RRC_scs_60kHz_tags_19[] = { + (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_ASN_RRC_scs_60kHz_19 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_19, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_19) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_19) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_23[] = { + { 0, 4, "set1" }, + { 1, 4, "set2" }, + { 2, 4, "set3" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_23[] = { + 0, /* set1(0) */ + 1, /* set2(1) */ + 2 /* set3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_23 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_23, /* 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_ASN_RRC_scs_120kHz_tags_23[] = { + (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_ASN_RRC_scs_120kHz_23 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_23, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_23) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_23) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_10[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_15kHz_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_30kHz_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_oms_10[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_specs_10 = { + sizeof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap), + offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap, _asn_ctx), + asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tag2el_10, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_oms_10, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_10 = { + "pdcch-MonitoringAnyOccasionsWithSpanGap", + "pdcch-MonitoringAnyOccasionsWithSpanGap", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10, + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_10, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_SeparationWithGap_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_SeparationWithGap_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_SeparationWithGap_specs_27 = { + asn_MAP_ASN_RRC_pdsch_SeparationWithGap_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_SeparationWithGap_enum2value_27, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27[] = { + (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_ASN_RRC_pdsch_SeparationWithGap_27 = { + "pdsch-SeparationWithGap", + "pdsch-SeparationWithGap", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27, + sizeof(asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27) + /sizeof(asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27) + /sizeof(asn_DEF_ASN_RRC_pdsch_SeparationWithGap_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_SeparationWithGap_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_SeparationWithGap_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pdsch_ProcessingType2_29[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_ASN_RRC_pdsch_ProcessingType2_oms_29[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pdsch_ProcessingType2_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* scs-60kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pdsch_ProcessingType2_specs_29 = { + sizeof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2), + offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2, _asn_ctx), + asn_MAP_ASN_RRC_pdsch_ProcessingType2_tag2el_29, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_pdsch_ProcessingType2_oms_29, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_ProcessingType2_29 = { + "pdsch-ProcessingType2", + "pdsch-ProcessingType2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29, + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_tags_29[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pdsch_ProcessingType2_29, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_pdsch_ProcessingType2_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_differentTB_PerSlot_SCS_30kHz_value2enum_34[] = { + { 0, 5, "upto1" }, + { 1, 5, "upto2" }, + { 2, 5, "upto4" }, + { 3, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_differentTB_PerSlot_SCS_30kHz_enum2value_34[] = { + 0, /* upto1(0) */ + 1, /* upto2(1) */ + 2, /* upto4(2) */ + 3 /* upto7(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_differentTB_PerSlot_SCS_30kHz_specs_34 = { + asn_MAP_ASN_RRC_differentTB_PerSlot_SCS_30kHz_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_differentTB_PerSlot_SCS_30kHz_enum2value_34, /* 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_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34[] = { + (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_ASN_RRC_differentTB_PerSlot_SCS_30kHz_34 = { + "differentTB-PerSlot-SCS-30kHz", + "differentTB-PerSlot-SCS-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34, + sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_differentTB_PerSlot_SCS_30kHz_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_differentTB_PerSlot_SCS_30kHz_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pdsch_ProcessingType2_Limited_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited, differentTB_PerSlot_SCS_30kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "differentTB-PerSlot-SCS-30kHz" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pdsch_ProcessingType2_Limited_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* differentTB-PerSlot-SCS-30kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pdsch_ProcessingType2_Limited_specs_33 = { + sizeof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited), + offsetof(struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited, _asn_ctx), + asn_MAP_ASN_RRC_pdsch_ProcessingType2_Limited_tag2el_33, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_33 = { + "pdsch-ProcessingType2-Limited", + "pdsch-ProcessingType2-Limited", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33, + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_tags_33[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pdsch_ProcessingType2_Limited_33, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_pdsch_ProcessingType2_Limited_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_value2enum_39[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_enum2value_39[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_specs_39 = { + asn_MAP_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_enum2value_39, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_39 = { + "dl-MCS-TableAlt-DynamicIndication", + "dl-MCS-TableAlt-DynamicIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39, + sizeof(asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39) + /sizeof(asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39) + /sizeof(asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_tags_39[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlink_v1540_1[] = { + { ATF_POINTER, 9, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, oneFL_DMRS_TwoAdditionalDMRS_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFL-DMRS-TwoAdditionalDMRS-DL" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, additionalDMRS_DL_Alt), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDMRS-DL-Alt" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, twoFL_DMRS_TwoAdditionalDMRS_DL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoFL-DMRS-TwoAdditionalDMRS-DL" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, oneFL_DMRS_ThreeAdditionalDMRS_DL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFL-DMRS-ThreeAdditionalDMRS-DL" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, pdcch_MonitoringAnyOccasionsWithSpanGap), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasionsWithSpanGap_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-MonitoringAnyOccasionsWithSpanGap" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, pdsch_SeparationWithGap), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_SeparationWithGap_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-SeparationWithGap" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, pdsch_ProcessingType2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_pdsch_ProcessingType2_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ProcessingType2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, pdsch_ProcessingType2_Limited), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_pdsch_ProcessingType2_Limited_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ProcessingType2-Limited" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, dl_MCS_TableAlt_DynamicIndication), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-MCS-TableAlt-DynamicIndication" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetDownlink_v1540_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetDownlink_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneFL-DMRS-TwoAdditionalDMRS-DL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalDMRS-DL-Alt */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* twoFL-DMRS-TwoAdditionalDMRS-DL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* oneFL-DMRS-ThreeAdditionalDMRS-DL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pdcch-MonitoringAnyOccasionsWithSpanGap */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pdsch-SeparationWithGap */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pdsch-ProcessingType2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* pdsch-ProcessingType2-Limited */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* dl-MCS-TableAlt-DynamicIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlink_v1540_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetDownlink_v1540), + offsetof(struct ASN_RRC_FeatureSetDownlink_v1540, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetDownlink_v1540_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetDownlink_v1540_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlink_v1540 = { + "FeatureSetDownlink-v1540", + "FeatureSetDownlink-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetDownlink_v1540_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetDownlink_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.h b/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.h new file mode 100644 index 0000000..169bb36 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlink-v1540.h @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetDownlink_v1540_H_ +#define _ASN_RRC_FeatureSetDownlink_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_TwoAdditionalDMRS_DL { + ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_TwoAdditionalDMRS_DL_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_TwoAdditionalDMRS_DL; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__additionalDMRS_DL_Alt { + ASN_RRC_FeatureSetDownlink_v1540__additionalDMRS_DL_Alt_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__additionalDMRS_DL_Alt; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__twoFL_DMRS_TwoAdditionalDMRS_DL { + ASN_RRC_FeatureSetDownlink_v1540__twoFL_DMRS_TwoAdditionalDMRS_DL_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__twoFL_DMRS_TwoAdditionalDMRS_DL; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_ThreeAdditionalDMRS_DL { + ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_ThreeAdditionalDMRS_DL_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__oneFL_DMRS_ThreeAdditionalDMRS_DL; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_15kHz { + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_15kHz_set1 = 0, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_15kHz_set2 = 1, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_15kHz_set3 = 2 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_15kHz; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_30kHz { + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_30kHz_set1 = 0, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_30kHz_set2 = 1, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_30kHz_set3 = 2 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_30kHz; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_60kHz { + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_60kHz_set1 = 0, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_60kHz_set2 = 1, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_60kHz_set3 = 2 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_60kHz; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_120kHz { + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_120kHz_set1 = 0, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_120kHz_set2 = 1, + ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_120kHz_set3 = 2 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap__scs_120kHz; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdsch_SeparationWithGap { + ASN_RRC_FeatureSetDownlink_v1540__pdsch_SeparationWithGap_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdsch_SeparationWithGap; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz { + ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz_upto1 = 0, + ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz_upto2 = 1, + ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz_upto4 = 2, + ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz_upto7 = 3 +} e_ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited__differentTB_PerSlot_SCS_30kHz; +typedef enum ASN_RRC_FeatureSetDownlink_v1540__dl_MCS_TableAlt_DynamicIndication { + ASN_RRC_FeatureSetDownlink_v1540__dl_MCS_TableAlt_DynamicIndication_supported = 0 +} e_ASN_RRC_FeatureSetDownlink_v1540__dl_MCS_TableAlt_DynamicIndication; + +/* Forward declarations */ +struct ASN_RRC_ProcessingParameters; + +/* ASN_RRC_FeatureSetDownlink-v1540 */ +typedef struct ASN_RRC_FeatureSetDownlink_v1540 { + long *oneFL_DMRS_TwoAdditionalDMRS_DL; /* OPTIONAL */ + long *additionalDMRS_DL_Alt; /* OPTIONAL */ + long *twoFL_DMRS_TwoAdditionalDMRS_DL; /* OPTIONAL */ + long *oneFL_DMRS_ThreeAdditionalDMRS_DL; /* OPTIONAL */ + struct ASN_RRC_FeatureSetDownlink_v1540__pdcch_MonitoringAnyOccasionsWithSpanGap { + long *scs_15kHz; /* OPTIONAL */ + long *scs_30kHz; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdcch_MonitoringAnyOccasionsWithSpanGap; + long *pdsch_SeparationWithGap; /* OPTIONAL */ + struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2 { + struct ASN_RRC_ProcessingParameters *scs_15kHz; /* OPTIONAL */ + struct ASN_RRC_ProcessingParameters *scs_30kHz; /* OPTIONAL */ + struct ASN_RRC_ProcessingParameters *scs_60kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_ProcessingType2; + struct ASN_RRC_FeatureSetDownlink_v1540__pdsch_ProcessingType2_Limited { + long differentTB_PerSlot_SCS_30kHz; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_ProcessingType2_Limited; + long *dl_MCS_TableAlt_DynamicIndication; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetDownlink_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_DL_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_additionalDMRS_DL_Alt_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_DL_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_DL_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_15kHz_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_30kHz_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_SeparationWithGap_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_differentTB_PerSlot_SCS_30kHz_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_MCS_TableAlt_DynamicIndication_39; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlink_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlink_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlink_v1540_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetDownlink_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlink.c b/src/asn/rrc/ASN_RRC_FeatureSetDownlink.c new file mode 100644 index 0000000..e3f46bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlink.c @@ -0,0 +1,1464 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetDownlink.h" + +#include "ASN_RRC_DummyA.h" +#include "ASN_RRC_DummyB.h" +#include "ASN_RRC_DummyC.h" +#include "ASN_RRC_DummyD.h" +#include "ASN_RRC_DummyE.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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_featureSetListPerDownlinkCC_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 int +memb_ASN_RRC_dummy4_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 <= 16)) { + /* 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 int +memb_ASN_RRC_dummy5_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 <= 16)) { + /* 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 int +memb_ASN_RRC_dummy6_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 <= 16)) { + /* 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 int +memb_ASN_RRC_dummy7_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 <= 16)) { + /* 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_ASN_RRC_featureSetListPerDownlinkCC_constr_2 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_type_ASN_RRC_scalingFactor_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_crossCarrierScheduling_OtherSCS_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scellWithoutSSB_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_RS_MeasSCellWithoutSSB_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy1_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_type1_3_CSS_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcch_MonitoringAnyOccasions_constr_19 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_type_ASN_RRC_dummy2_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ue_SpecificUL_DL_Assignment_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_searchSpaceSharingCA_DL_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_60kHz_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_120kHz_constr_33 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_type_ASN_RRC_scs_15kHz_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_30kHz_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_60kHz_constr_45 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_120kHz_constr_49 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_dummy4_constr_54 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_per_constraints_t asn_PER_type_ASN_RRC_dummy5_constr_56 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_per_constraints_t asn_PER_type_ASN_RRC_dummy6_constr_58 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_per_constraints_t asn_PER_type_ASN_RRC_dummy7_constr_60 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetListPerDownlinkCC_constr_2 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_ASN_RRC_dummy4_constr_54 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_per_constraints_t asn_PER_memb_ASN_RRC_dummy5_constr_56 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_per_constraints_t asn_PER_memb_ASN_RRC_dummy6_constr_58 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_per_constraints_t asn_PER_memb_ASN_RRC_dummy7_constr_60 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_ASN_RRC_featureSetListPerDownlinkCC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetListPerDownlinkCC_specs_2 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__featureSetListPerDownlinkCC), + offsetof(struct ASN_RRC_FeatureSetDownlink__featureSetListPerDownlinkCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_2 = { + "featureSetListPerDownlinkCC", + "featureSetListPerDownlinkCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2, + sizeof(asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetListPerDownlinkCC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetListPerDownlinkCC_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetListPerDownlinkCC_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scalingFactor_value2enum_5[] = { + { 0, 4, "f0p4" }, + { 1, 5, "f0p75" }, + { 2, 4, "f0p8" } +}; +static const unsigned int asn_MAP_ASN_RRC_scalingFactor_enum2value_5[] = { + 0, /* f0p4(0) */ + 1, /* f0p75(1) */ + 2 /* f0p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scalingFactor_specs_5 = { + asn_MAP_ASN_RRC_scalingFactor_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scalingFactor_enum2value_5, /* 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_ASN_RRC_scalingFactor_tags_5[] = { + (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_ASN_RRC_scalingFactor_5 = { + "scalingFactor", + "scalingFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scalingFactor_tags_5, + sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_5) + /sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scalingFactor_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_5) + /sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scalingFactor_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scalingFactor_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_crossCarrierScheduling_OtherSCS_specs_9 = { + asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9[] = { + (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_ASN_RRC_crossCarrierScheduling_OtherSCS_9 = { + "crossCarrierScheduling-OtherSCS", + "crossCarrierScheduling-OtherSCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9, + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_crossCarrierScheduling_OtherSCS_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_crossCarrierScheduling_OtherSCS_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scellWithoutSSB_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_scellWithoutSSB_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scellWithoutSSB_specs_11 = { + asn_MAP_ASN_RRC_scellWithoutSSB_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scellWithoutSSB_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scellWithoutSSB_tags_11[] = { + (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_ASN_RRC_scellWithoutSSB_11 = { + "scellWithoutSSB", + "scellWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scellWithoutSSB_tags_11, + sizeof(asn_DEF_ASN_RRC_scellWithoutSSB_tags_11) + /sizeof(asn_DEF_ASN_RRC_scellWithoutSSB_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scellWithoutSSB_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scellWithoutSSB_tags_11) + /sizeof(asn_DEF_ASN_RRC_scellWithoutSSB_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scellWithoutSSB_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scellWithoutSSB_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_RS_MeasSCellWithoutSSB_value2enum_13[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_RS_MeasSCellWithoutSSB_enum2value_13[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_RS_MeasSCellWithoutSSB_specs_13 = { + asn_MAP_ASN_RRC_csi_RS_MeasSCellWithoutSSB_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_RS_MeasSCellWithoutSSB_enum2value_13, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13[] = { + (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_ASN_RRC_csi_RS_MeasSCellWithoutSSB_13 = { + "csi-RS-MeasSCellWithoutSSB", + "csi-RS-MeasSCellWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13, + sizeof(asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13) + /sizeof(asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13) + /sizeof(asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RS_MeasSCellWithoutSSB_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_RS_MeasSCellWithoutSSB_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy1_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy1_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy1_specs_15 = { + asn_MAP_ASN_RRC_dummy1_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy1_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy1_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy1_15 = { + "dummy1", + "dummy1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy1_tags_15, + sizeof(asn_DEF_ASN_RRC_dummy1_tags_15) + /sizeof(asn_DEF_ASN_RRC_dummy1_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy1_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy1_tags_15) + /sizeof(asn_DEF_ASN_RRC_dummy1_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy1_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy1_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_type1_3_CSS_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_type1_3_CSS_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type1_3_CSS_specs_17 = { + asn_MAP_ASN_RRC_type1_3_CSS_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type1_3_CSS_enum2value_17, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type1_3_CSS_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_3_CSS_17 = { + "type1-3-CSS", + "type1-3-CSS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type1_3_CSS_tags_17, + sizeof(asn_DEF_ASN_RRC_type1_3_CSS_tags_17) + /sizeof(asn_DEF_ASN_RRC_type1_3_CSS_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type1_3_CSS_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type1_3_CSS_tags_17) + /sizeof(asn_DEF_ASN_RRC_type1_3_CSS_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type1_3_CSS_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type1_3_CSS_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasions_value2enum_19[] = { + { 0, 14, "withoutDCI-Gap" }, + { 1, 11, "withDCI-Gap" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasions_enum2value_19[] = { + 1, /* withDCI-Gap(1) */ + 0 /* withoutDCI-Gap(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcch_MonitoringAnyOccasions_specs_19 = { + asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasions_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcch_MonitoringAnyOccasions_enum2value_19, /* 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_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_19 = { + "pdcch-MonitoringAnyOccasions", + "pdcch-MonitoringAnyOccasions", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19, + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcch_MonitoringAnyOccasions_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcch_MonitoringAnyOccasions_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy2_value2enum_22[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy2_enum2value_22[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy2_specs_22 = { + asn_MAP_ASN_RRC_dummy2_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy2_enum2value_22, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy2_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy2_22 = { + "dummy2", + "dummy2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy2_tags_22, + sizeof(asn_DEF_ASN_RRC_dummy2_tags_22) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy2_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy2_tags_22) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy2_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy2_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ue_SpecificUL_DL_Assignment_value2enum_24[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ue_SpecificUL_DL_Assignment_enum2value_24[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ue_SpecificUL_DL_Assignment_specs_24 = { + asn_MAP_ASN_RRC_ue_SpecificUL_DL_Assignment_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ue_SpecificUL_DL_Assignment_enum2value_24, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_24 = { + "ue-SpecificUL-DL-Assignment", + "ue-SpecificUL-DL-Assignment", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24, + sizeof(asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24) + /sizeof(asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24) + /sizeof(asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ue_SpecificUL_DL_Assignment_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ue_SpecificUL_DL_Assignment_specs_24 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_searchSpaceSharingCA_DL_value2enum_26[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_searchSpaceSharingCA_DL_enum2value_26[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_searchSpaceSharingCA_DL_specs_26 = { + asn_MAP_ASN_RRC_searchSpaceSharingCA_DL_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_searchSpaceSharingCA_DL_enum2value_26, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_26 = { + "searchSpaceSharingCA-DL", + "searchSpaceSharingCA-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26, + sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26) + /sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26) + /sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_searchSpaceSharingCA_DL_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_searchSpaceSharingCA_DL_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_29[] = { + { 0, 2, "s7" }, + { 1, 3, "s14" }, + { 2, 3, "s28" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_29[] = { + 1, /* s14(1) */ + 2, /* s28(2) */ + 0 /* s7(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_29 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_29, /* 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_ASN_RRC_scs_60kHz_tags_29[] = { + (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_ASN_RRC_scs_60kHz_29 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_29, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_29) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_29) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_33[] = { + { 0, 3, "s14" }, + { 1, 3, "s28" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_33[] = { + 0, /* s14(0) */ + 1 /* s28(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_33 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_33, /* 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_ASN_RRC_scs_120kHz_tags_33[] = { + (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_ASN_RRC_scs_120kHz_33 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_33, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_33) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_33) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_33[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_timeDurationForQCL_28[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink__timeDurationForQCL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink__timeDurationForQCL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_timeDurationForQCL_oms_28[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeDurationForQCL_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_timeDurationForQCL_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_timeDurationForQCL_specs_28 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__timeDurationForQCL), + offsetof(struct ASN_RRC_FeatureSetDownlink__timeDurationForQCL, _asn_ctx), + asn_MAP_ASN_RRC_timeDurationForQCL_tag2el_28, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_timeDurationForQCL_oms_28, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeDurationForQCL_28 = { + "timeDurationForQCL", + "timeDurationForQCL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_timeDurationForQCL_tags_28, + sizeof(asn_DEF_ASN_RRC_timeDurationForQCL_tags_28) + /sizeof(asn_DEF_ASN_RRC_timeDurationForQCL_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeDurationForQCL_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeDurationForQCL_tags_28) + /sizeof(asn_DEF_ASN_RRC_timeDurationForQCL_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_timeDurationForQCL_28, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_timeDurationForQCL_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_15kHz_value2enum_37[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_15kHz_enum2value_37[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_15kHz_specs_37 = { + asn_MAP_ASN_RRC_scs_15kHz_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_15kHz_enum2value_37, /* 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_ASN_RRC_scs_15kHz_tags_37[] = { + (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_ASN_RRC_scs_15kHz_37 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_15kHz_tags_37, + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_37) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_15kHz_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_37) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_37[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_15kHz_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_15kHz_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_30kHz_value2enum_41[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_30kHz_enum2value_41[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_30kHz_specs_41 = { + asn_MAP_ASN_RRC_scs_30kHz_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_30kHz_enum2value_41, /* 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_ASN_RRC_scs_30kHz_tags_41[] = { + (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_ASN_RRC_scs_30kHz_41 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_30kHz_tags_41, + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_41) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_41[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_30kHz_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_41) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_41[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_30kHz_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_30kHz_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_45[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_45[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_45 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_45, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_45, /* 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_ASN_RRC_scs_60kHz_tags_45[] = { + (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_ASN_RRC_scs_60kHz_45 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_45, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_45) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_45[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_45) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_45[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_45, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_45 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_49[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_49[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_49 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_49, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_49, /* 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_ASN_RRC_scs_120kHz_tags_49[] = { + (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_ASN_RRC_scs_120kHz_49 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_49, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_49) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_49[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_49) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_49[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_49, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_36[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_15kHz_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_30kHz_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_oms_36[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tag2el_36[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_specs_36 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot), + offsetof(struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, _asn_ctx), + asn_MAP_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tag2el_36, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_oms_36, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_36 = { + "pdsch-ProcessingType1-DifferentTB-PerSlot", + "pdsch-ProcessingType1-DifferentTB-PerSlot", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36, + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36) + /sizeof(asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_36, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dummy4_54[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DummyB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy4_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dummy4_specs_54 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__dummy4), + offsetof(struct ASN_RRC_FeatureSetDownlink__dummy4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy4_54 = { + "dummy4", + "dummy4", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dummy4_tags_54, + sizeof(asn_DEF_ASN_RRC_dummy4_tags_54) + /sizeof(asn_DEF_ASN_RRC_dummy4_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy4_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy4_tags_54) + /sizeof(asn_DEF_ASN_RRC_dummy4_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy4_constr_54, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dummy4_54, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dummy4_specs_54 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dummy5_56[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DummyC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy5_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dummy5_specs_56 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__dummy5), + offsetof(struct ASN_RRC_FeatureSetDownlink__dummy5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy5_56 = { + "dummy5", + "dummy5", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dummy5_tags_56, + sizeof(asn_DEF_ASN_RRC_dummy5_tags_56) + /sizeof(asn_DEF_ASN_RRC_dummy5_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy5_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy5_tags_56) + /sizeof(asn_DEF_ASN_RRC_dummy5_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy5_constr_56, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dummy5_56, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dummy5_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dummy6_58[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DummyD, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy6_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dummy6_specs_58 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__dummy6), + offsetof(struct ASN_RRC_FeatureSetDownlink__dummy6, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy6_58 = { + "dummy6", + "dummy6", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dummy6_tags_58, + sizeof(asn_DEF_ASN_RRC_dummy6_tags_58) + /sizeof(asn_DEF_ASN_RRC_dummy6_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy6_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy6_tags_58) + /sizeof(asn_DEF_ASN_RRC_dummy6_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy6_constr_58, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dummy6_58, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dummy6_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dummy7_60[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_DummyE, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy7_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dummy7_specs_60 = { + sizeof(struct ASN_RRC_FeatureSetDownlink__dummy7), + offsetof(struct ASN_RRC_FeatureSetDownlink__dummy7, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy7_60 = { + "dummy7", + "dummy7", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dummy7_tags_60, + sizeof(asn_DEF_ASN_RRC_dummy7_tags_60) + /sizeof(asn_DEF_ASN_RRC_dummy7_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy7_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy7_tags_60) + /sizeof(asn_DEF_ASN_RRC_dummy7_tags_60[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy7_constr_60, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dummy7_60, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dummy7_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetDownlink, featureSetListPerDownlinkCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetListPerDownlinkCC_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetListPerDownlinkCC_constr_2, memb_ASN_RRC_featureSetListPerDownlinkCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetListPerDownlinkCC" + }, + { ATF_POINTER, 18, offsetof(struct ASN_RRC_FeatureSetDownlink, intraBandFreqSeparationDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqSeparationClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraBandFreqSeparationDL" + }, + { ATF_POINTER, 17, offsetof(struct ASN_RRC_FeatureSetDownlink, scalingFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scalingFactor_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactor" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_FeatureSetDownlink, crossCarrierScheduling_OtherSCS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-OtherSCS" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_FeatureSetDownlink, scellWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scellWithoutSSB_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scellWithoutSSB" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_FeatureSetDownlink, csi_RS_MeasSCellWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-MeasSCellWithoutSSB" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy1_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_FeatureSetDownlink, type1_3_CSS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type1_3_CSS_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1-3-CSS" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_FeatureSetDownlink, pdcch_MonitoringAnyOccasions), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-MonitoringAnyOccasions" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy2), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy2_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy2" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_FeatureSetDownlink, ue_SpecificUL_DL_Assignment), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-SpecificUL-DL-Assignment" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_FeatureSetDownlink, searchSpaceSharingCA_DL), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSharingCA-DL" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_FeatureSetDownlink, timeDurationForQCL), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_ASN_RRC_timeDurationForQCL_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDurationForQCL" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_FeatureSetDownlink, pdsch_ProcessingType1_DifferentTB_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_pdsch_ProcessingType1_DifferentTB_PerSlot_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ProcessingType1-DifferentTB-PerSlot" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy3), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DummyA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy3" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy4), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ASN_RRC_dummy4_54, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy4_constr_54, memb_ASN_RRC_dummy4_constraint_1 }, + 0, 0, /* No default value */ + "dummy4" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy5), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_dummy5_56, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy5_constr_56, memb_ASN_RRC_dummy5_constraint_1 }, + 0, 0, /* No default value */ + "dummy5" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy6), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_ASN_RRC_dummy6_58, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy6_constr_58, memb_ASN_RRC_dummy6_constraint_1 }, + 0, 0, /* No default value */ + "dummy6" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlink, dummy7), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ASN_RRC_dummy7_60, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy7_constr_60, memb_ASN_RRC_dummy7_constraint_1 }, + 0, 0, /* No default value */ + "dummy7" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetDownlink_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetDownlink_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* featureSetListPerDownlinkCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intraBandFreqSeparationDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scalingFactor */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* crossCarrierScheduling-OtherSCS */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scellWithoutSSB */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* csi-RS-MeasSCellWithoutSSB */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dummy1 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* type1-3-CSS */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* pdcch-MonitoringAnyOccasions */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* dummy2 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ue-SpecificUL-DL-Assignment */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* searchSpaceSharingCA-DL */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* timeDurationForQCL */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* pdsch-ProcessingType1-DifferentTB-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* dummy3 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* dummy4 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* dummy5 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* dummy6 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 } /* dummy7 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlink_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetDownlink), + offsetof(struct ASN_RRC_FeatureSetDownlink, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetDownlink_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetDownlink_oms_1, /* Optional members */ + 18, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlink = { + "FeatureSetDownlink", + "FeatureSetDownlink", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetDownlink_1, + 19, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetDownlink_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlink.h b/src/asn/rrc/ASN_RRC_FeatureSetDownlink.h new file mode 100644 index 0000000..696b712 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlink.h @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetDownlink_H_ +#define _ASN_RRC_FeatureSetDownlink_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqSeparationClass.h" +#include +#include "ASN_RRC_FeatureSetDownlinkPerCC-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetDownlink__scalingFactor { + ASN_RRC_FeatureSetDownlink__scalingFactor_f0p4 = 0, + ASN_RRC_FeatureSetDownlink__scalingFactor_f0p75 = 1, + ASN_RRC_FeatureSetDownlink__scalingFactor_f0p8 = 2 +} e_ASN_RRC_FeatureSetDownlink__scalingFactor; +typedef enum ASN_RRC_FeatureSetDownlink__crossCarrierScheduling_OtherSCS { + ASN_RRC_FeatureSetDownlink__crossCarrierScheduling_OtherSCS_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__crossCarrierScheduling_OtherSCS; +typedef enum ASN_RRC_FeatureSetDownlink__scellWithoutSSB { + ASN_RRC_FeatureSetDownlink__scellWithoutSSB_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__scellWithoutSSB; +typedef enum ASN_RRC_FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB { + ASN_RRC_FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB; +typedef enum ASN_RRC_FeatureSetDownlink__dummy1 { + ASN_RRC_FeatureSetDownlink__dummy1_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__dummy1; +typedef enum ASN_RRC_FeatureSetDownlink__type1_3_CSS { + ASN_RRC_FeatureSetDownlink__type1_3_CSS_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__type1_3_CSS; +typedef enum ASN_RRC_FeatureSetDownlink__pdcch_MonitoringAnyOccasions { + ASN_RRC_FeatureSetDownlink__pdcch_MonitoringAnyOccasions_withoutDCI_Gap = 0, + ASN_RRC_FeatureSetDownlink__pdcch_MonitoringAnyOccasions_withDCI_Gap = 1 +} e_ASN_RRC_FeatureSetDownlink__pdcch_MonitoringAnyOccasions; +typedef enum ASN_RRC_FeatureSetDownlink__dummy2 { + ASN_RRC_FeatureSetDownlink__dummy2_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__dummy2; +typedef enum ASN_RRC_FeatureSetDownlink__ue_SpecificUL_DL_Assignment { + ASN_RRC_FeatureSetDownlink__ue_SpecificUL_DL_Assignment_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__ue_SpecificUL_DL_Assignment; +typedef enum ASN_RRC_FeatureSetDownlink__searchSpaceSharingCA_DL { + ASN_RRC_FeatureSetDownlink__searchSpaceSharingCA_DL_supported = 0 +} e_ASN_RRC_FeatureSetDownlink__searchSpaceSharingCA_DL; +typedef enum ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_60kHz { + ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s7 = 0, + ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s14 = 1, + ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s28 = 2 +} e_ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_60kHz; +typedef enum ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_120kHz { + ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_120kHz_s14 = 0, + ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_120kHz_s28 = 1 +} e_ASN_RRC_FeatureSetDownlink__timeDurationForQCL__scs_120kHz; +typedef enum ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz { + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto2 = 0, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto4 = 1, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz; +typedef enum ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz { + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto2 = 0, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto4 = 1, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz; +typedef enum ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz { + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto2 = 0, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto4 = 1, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz; +typedef enum ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz { + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto2 = 0, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto4 = 1, + ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz; + +/* Forward declarations */ +struct ASN_RRC_DummyA; +struct ASN_RRC_DummyB; +struct ASN_RRC_DummyC; +struct ASN_RRC_DummyD; +struct ASN_RRC_DummyE; + +/* ASN_RRC_FeatureSetDownlink */ +typedef struct ASN_RRC_FeatureSetDownlink { + struct ASN_RRC_FeatureSetDownlink__featureSetListPerDownlinkCC { + A_SEQUENCE_OF(ASN_RRC_FeatureSetDownlinkPerCC_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } featureSetListPerDownlinkCC; + ASN_RRC_FreqSeparationClass_t *intraBandFreqSeparationDL; /* OPTIONAL */ + long *scalingFactor; /* OPTIONAL */ + long *crossCarrierScheduling_OtherSCS; /* OPTIONAL */ + long *scellWithoutSSB; /* OPTIONAL */ + long *csi_RS_MeasSCellWithoutSSB; /* OPTIONAL */ + long *dummy1; /* OPTIONAL */ + long *type1_3_CSS; /* OPTIONAL */ + long *pdcch_MonitoringAnyOccasions; /* OPTIONAL */ + long *dummy2; /* OPTIONAL */ + long *ue_SpecificUL_DL_Assignment; /* OPTIONAL */ + long *searchSpaceSharingCA_DL; /* OPTIONAL */ + struct ASN_RRC_FeatureSetDownlink__timeDurationForQCL { + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *timeDurationForQCL; + struct ASN_RRC_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot { + long *scs_15kHz; /* OPTIONAL */ + long *scs_30kHz; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_ProcessingType1_DifferentTB_PerSlot; + struct ASN_RRC_DummyA *dummy3; /* OPTIONAL */ + struct ASN_RRC_FeatureSetDownlink__dummy4 { + A_SEQUENCE_OF(struct ASN_RRC_DummyB) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dummy4; + struct ASN_RRC_FeatureSetDownlink__dummy5 { + A_SEQUENCE_OF(struct ASN_RRC_DummyC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dummy5; + struct ASN_RRC_FeatureSetDownlink__dummy6 { + A_SEQUENCE_OF(struct ASN_RRC_DummyD) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dummy6; + struct ASN_RRC_FeatureSetDownlink__dummy7 { + A_SEQUENCE_OF(struct ASN_RRC_DummyE) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dummy7; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetDownlink_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scalingFactor_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scellWithoutSSB_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RS_MeasSCellWithoutSSB_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy1_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_3_CSS_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcch_MonitoringAnyOccasions_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy2_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_SpecificUL_DL_Assignment_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_searchSpaceSharingCA_DL_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_15kHz_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_30kHz_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_45; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_49; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlink; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlink_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlink_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetDownlink_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.c b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.c new file mode 100644 index 0000000..d110684 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetDownlinkId.h" + +int +ASN_RRC_FeatureSetDownlinkId_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetDownlinkId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1024 } /* (0..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkId = { + "FeatureSetDownlinkId", + "FeatureSetDownlinkId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetDownlinkId_constr_1, ASN_RRC_FeatureSetDownlinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.h b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.h new file mode 100644 index 0000000..4222390 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetDownlinkId_H_ +#define _ASN_RRC_FeatureSetDownlinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetDownlinkId */ +typedef long ASN_RRC_FeatureSetDownlinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetDownlinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkId; +asn_struct_free_f ASN_RRC_FeatureSetDownlinkId_free; +asn_struct_print_f ASN_RRC_FeatureSetDownlinkId_print; +asn_constr_check_f ASN_RRC_FeatureSetDownlinkId_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetDownlinkId_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetDownlinkId_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetDownlinkId_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetDownlinkId_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetDownlinkId_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetDownlinkId_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetDownlinkId_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetDownlinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetDownlinkId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.c b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.c new file mode 100644 index 0000000..78963a2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetDownlinkPerCC-Id.h" + +int +ASN_RRC_FeatureSetDownlinkPerCC_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetDownlinkPerCC_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id = { + "FeatureSetDownlinkPerCC-Id", + "FeatureSetDownlinkPerCC-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetDownlinkPerCC_Id_constr_1, ASN_RRC_FeatureSetDownlinkPerCC_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.h b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.h new file mode 100644 index 0000000..0d76db4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetDownlinkPerCC_Id_H_ +#define _ASN_RRC_FeatureSetDownlinkPerCC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetDownlinkPerCC-Id */ +typedef long ASN_RRC_FeatureSetDownlinkPerCC_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetDownlinkPerCC_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_Id; +asn_struct_free_f ASN_RRC_FeatureSetDownlinkPerCC_Id_free; +asn_struct_print_f ASN_RRC_FeatureSetDownlinkPerCC_Id_print; +asn_constr_check_f ASN_RRC_FeatureSetDownlinkPerCC_Id_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetDownlinkPerCC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetDownlinkPerCC_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.c b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.c new file mode 100644 index 0000000..2525324 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetDownlinkPerCC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_channelBW_90mhz_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_channelBW_90mhz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_channelBW_90mhz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_channelBW_90mhz_specs_4 = { + asn_MAP_ASN_RRC_channelBW_90mhz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_channelBW_90mhz_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_channelBW_90mhz_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_ASN_RRC_channelBW_90mhz_4 = { + "channelBW-90mhz", + "channelBW-90mhz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_channelBW_90mhz_tags_4, + sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_channelBW_90mhz_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_channelBW_90mhz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_channelBW_90mhz_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlinkPerCC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, supportedSubcarrierSpacingDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSubcarrierSpacingDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, supportedBandwidthDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SupportedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandwidthDL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, channelBW_90mhz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_channelBW_90mhz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBW-90mhz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, maxNumberMIMO_LayersPDSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersPDSCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, supportedModulationOrderDL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ModulationOrder, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedModulationOrderDL" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetDownlinkPerCC_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetDownlinkPerCC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedSubcarrierSpacingDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedBandwidthDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* channelBW-90mhz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxNumberMIMO-LayersPDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* supportedModulationOrderDL */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlinkPerCC_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetDownlinkPerCC), + offsetof(struct ASN_RRC_FeatureSetDownlinkPerCC, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetDownlinkPerCC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetDownlinkPerCC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC = { + "FeatureSetDownlinkPerCC", + "FeatureSetDownlinkPerCC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetDownlinkPerCC_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetDownlinkPerCC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.h b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.h new file mode 100644 index 0000000..91d356b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetDownlinkPerCC.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetDownlinkPerCC_H_ +#define _ASN_RRC_FeatureSetDownlinkPerCC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SubcarrierSpacing.h" +#include "ASN_RRC_SupportedBandwidth.h" +#include +#include "ASN_RRC_MIMO-LayersDL.h" +#include "ASN_RRC_ModulationOrder.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetDownlinkPerCC__channelBW_90mhz { + ASN_RRC_FeatureSetDownlinkPerCC__channelBW_90mhz_supported = 0 +} e_ASN_RRC_FeatureSetDownlinkPerCC__channelBW_90mhz; + +/* ASN_RRC_FeatureSetDownlinkPerCC */ +typedef struct ASN_RRC_FeatureSetDownlinkPerCC { + ASN_RRC_SubcarrierSpacing_t supportedSubcarrierSpacingDL; + ASN_RRC_SupportedBandwidth_t supportedBandwidthDL; + long *channelBW_90mhz; /* OPTIONAL */ + ASN_RRC_MIMO_LayersDL_t *maxNumberMIMO_LayersPDSCH; /* OPTIONAL */ + ASN_RRC_ModulationOrder_t *supportedModulationOrderDL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetDownlinkPerCC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_channelBW_90mhz_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetDownlinkPerCC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetDownlinkPerCC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetDownlinkPerCC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.c b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.c new file mode 100644 index 0000000..c020cb5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetEUTRA-DownlinkId.h" + +int +ASN_RRC_FeatureSetEUTRA_DownlinkId_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 <= 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_ASN_RRC_FeatureSetEUTRA_DownlinkId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 256 } /* (0..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId = { + "FeatureSetEUTRA-DownlinkId", + "FeatureSetEUTRA-DownlinkId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetEUTRA_DownlinkId_constr_1, ASN_RRC_FeatureSetEUTRA_DownlinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.h b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.h new file mode 100644 index 0000000..78453a3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-DownlinkId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetEUTRA_DownlinkId_H_ +#define _ASN_RRC_FeatureSetEUTRA_DownlinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetEUTRA-DownlinkId */ +typedef long ASN_RRC_FeatureSetEUTRA_DownlinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetEUTRA_DownlinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEUTRA_DownlinkId; +asn_struct_free_f ASN_RRC_FeatureSetEUTRA_DownlinkId_free; +asn_struct_print_f ASN_RRC_FeatureSetEUTRA_DownlinkId_print; +asn_constr_check_f ASN_RRC_FeatureSetEUTRA_DownlinkId_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetEUTRA_DownlinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetEUTRA_DownlinkId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.c b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.c new file mode 100644 index 0000000..68f76de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetEUTRA-UplinkId.h" + +int +ASN_RRC_FeatureSetEUTRA_UplinkId_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 <= 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_ASN_RRC_FeatureSetEUTRA_UplinkId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 256 } /* (0..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId = { + "FeatureSetEUTRA-UplinkId", + "FeatureSetEUTRA-UplinkId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetEUTRA_UplinkId_constr_1, ASN_RRC_FeatureSetEUTRA_UplinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.h b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.h new file mode 100644 index 0000000..94f43f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEUTRA-UplinkId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetEUTRA_UplinkId_H_ +#define _ASN_RRC_FeatureSetEUTRA_UplinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetEUTRA-UplinkId */ +typedef long ASN_RRC_FeatureSetEUTRA_UplinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetEUTRA_UplinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEUTRA_UplinkId; +asn_struct_free_f ASN_RRC_FeatureSetEUTRA_UplinkId_free; +asn_struct_print_f ASN_RRC_FeatureSetEUTRA_UplinkId_print; +asn_constr_check_f ASN_RRC_FeatureSetEUTRA_UplinkId_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetEUTRA_UplinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetEUTRA_UplinkId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.c b/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.c new file mode 100644 index 0000000..b63c0c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetEntryIndex.h" + +int +ASN_RRC_FeatureSetEntryIndex_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 <= 128)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetEntryIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEntryIndex = { + "FeatureSetEntryIndex", + "FeatureSetEntryIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetEntryIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetEntryIndex_constr_1, ASN_RRC_FeatureSetEntryIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.h b/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.h new file mode 100644 index 0000000..c4486b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetEntryIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetEntryIndex_H_ +#define _ASN_RRC_FeatureSetEntryIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetEntryIndex */ +typedef long ASN_RRC_FeatureSetEntryIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetEntryIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetEntryIndex; +asn_struct_free_f ASN_RRC_FeatureSetEntryIndex_free; +asn_struct_print_f ASN_RRC_FeatureSetEntryIndex_print; +asn_constr_check_f ASN_RRC_FeatureSetEntryIndex_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetEntryIndex_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetEntryIndex_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetEntryIndex_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetEntryIndex_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetEntryIndex_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetEntryIndex_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetEntryIndex_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetEntryIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetEntryIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.c b/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.c new file mode 100644 index 0000000..4e982e1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.c @@ -0,0 +1,334 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplink-v1540.h" + +#include "ASN_RRC_ProcessingParameters.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 asn_per_constraints_t asn_PER_type_ASN_RRC_zeroSlotOffsetAperiodicSRS_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pa_PhaseDiscontinuityImpacts_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_SeparationWithGap_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_zeroSlotOffsetAperiodicSRS_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_zeroSlotOffsetAperiodicSRS_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_zeroSlotOffsetAperiodicSRS_specs_2 = { + asn_MAP_ASN_RRC_zeroSlotOffsetAperiodicSRS_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_zeroSlotOffsetAperiodicSRS_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_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_ASN_RRC_zeroSlotOffsetAperiodicSRS_2 = { + "zeroSlotOffsetAperiodicSRS", + "zeroSlotOffsetAperiodicSRS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2, + sizeof(asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2) + /sizeof(asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2) + /sizeof(asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_zeroSlotOffsetAperiodicSRS_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_zeroSlotOffsetAperiodicSRS_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pa_PhaseDiscontinuityImpacts_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pa_PhaseDiscontinuityImpacts_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pa_PhaseDiscontinuityImpacts_specs_4 = { + asn_MAP_ASN_RRC_pa_PhaseDiscontinuityImpacts_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pa_PhaseDiscontinuityImpacts_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4[] = { + (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_ASN_RRC_pa_PhaseDiscontinuityImpacts_4 = { + "pa-PhaseDiscontinuityImpacts", + "pa-PhaseDiscontinuityImpacts", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4, + sizeof(asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4) + /sizeof(asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4) + /sizeof(asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pa_PhaseDiscontinuityImpacts_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pa_PhaseDiscontinuityImpacts_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_SeparationWithGap_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_SeparationWithGap_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_SeparationWithGap_specs_6 = { + asn_MAP_ASN_RRC_pusch_SeparationWithGap_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_SeparationWithGap_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6[] = { + (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_ASN_RRC_pusch_SeparationWithGap_6 = { + "pusch-SeparationWithGap", + "pusch-SeparationWithGap", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6, + sizeof(asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6) + /sizeof(asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6) + /sizeof(asn_DEF_ASN_RRC_pusch_SeparationWithGap_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_SeparationWithGap_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_SeparationWithGap_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pusch_ProcessingType2_8[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ProcessingParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_ASN_RRC_pusch_ProcessingType2_oms_8[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pusch_ProcessingType2_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* scs-60kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pusch_ProcessingType2_specs_8 = { + sizeof(struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2), + offsetof(struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2, _asn_ctx), + asn_MAP_ASN_RRC_pusch_ProcessingType2_tag2el_8, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_pusch_ProcessingType2_oms_8, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_ProcessingType2_8 = { + "pusch-ProcessingType2", + "pusch-ProcessingType2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8, + sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8) + /sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8) + /sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType2_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pusch_ProcessingType2_8, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_pusch_ProcessingType2_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_specs_12 = { + asn_MAP_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_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_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_12 = { + "ul-MCS-TableAlt-DynamicIndication", + "ul-MCS-TableAlt-DynamicIndication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12, + sizeof(asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12) + /sizeof(asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12) + /sizeof(asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplink_v1540_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_FeatureSetUplink_v1540, zeroSlotOffsetAperiodicSRS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zeroSlotOffsetAperiodicSRS" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetUplink_v1540, pa_PhaseDiscontinuityImpacts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pa-PhaseDiscontinuityImpacts" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetUplink_v1540, pusch_SeparationWithGap), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_SeparationWithGap_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-SeparationWithGap" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetUplink_v1540, pusch_ProcessingType2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_pusch_ProcessingType2_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ProcessingType2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplink_v1540, ul_MCS_TableAlt_DynamicIndication), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-MCS-TableAlt-DynamicIndication" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetUplink_v1540_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetUplink_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zeroSlotOffsetAperiodicSRS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pa-PhaseDiscontinuityImpacts */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pusch-SeparationWithGap */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pusch-ProcessingType2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ul-MCS-TableAlt-DynamicIndication */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplink_v1540_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetUplink_v1540), + offsetof(struct ASN_RRC_FeatureSetUplink_v1540, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetUplink_v1540_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetUplink_v1540_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplink_v1540 = { + "FeatureSetUplink-v1540", + "FeatureSetUplink-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetUplink_v1540_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetUplink_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.h b/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.h new file mode 100644 index 0000000..559dec0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplink-v1540.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplink_v1540_H_ +#define _ASN_RRC_FeatureSetUplink_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetUplink_v1540__zeroSlotOffsetAperiodicSRS { + ASN_RRC_FeatureSetUplink_v1540__zeroSlotOffsetAperiodicSRS_supported = 0 +} e_ASN_RRC_FeatureSetUplink_v1540__zeroSlotOffsetAperiodicSRS; +typedef enum ASN_RRC_FeatureSetUplink_v1540__pa_PhaseDiscontinuityImpacts { + ASN_RRC_FeatureSetUplink_v1540__pa_PhaseDiscontinuityImpacts_supported = 0 +} e_ASN_RRC_FeatureSetUplink_v1540__pa_PhaseDiscontinuityImpacts; +typedef enum ASN_RRC_FeatureSetUplink_v1540__pusch_SeparationWithGap { + ASN_RRC_FeatureSetUplink_v1540__pusch_SeparationWithGap_supported = 0 +} e_ASN_RRC_FeatureSetUplink_v1540__pusch_SeparationWithGap; +typedef enum ASN_RRC_FeatureSetUplink_v1540__ul_MCS_TableAlt_DynamicIndication { + ASN_RRC_FeatureSetUplink_v1540__ul_MCS_TableAlt_DynamicIndication_supported = 0 +} e_ASN_RRC_FeatureSetUplink_v1540__ul_MCS_TableAlt_DynamicIndication; + +/* Forward declarations */ +struct ASN_RRC_ProcessingParameters; + +/* ASN_RRC_FeatureSetUplink-v1540 */ +typedef struct ASN_RRC_FeatureSetUplink_v1540 { + long *zeroSlotOffsetAperiodicSRS; /* OPTIONAL */ + long *pa_PhaseDiscontinuityImpacts; /* OPTIONAL */ + long *pusch_SeparationWithGap; /* OPTIONAL */ + struct ASN_RRC_FeatureSetUplink_v1540__pusch_ProcessingType2 { + struct ASN_RRC_ProcessingParameters *scs_15kHz; /* OPTIONAL */ + struct ASN_RRC_ProcessingParameters *scs_30kHz; /* OPTIONAL */ + struct ASN_RRC_ProcessingParameters *scs_60kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_ProcessingType2; + long *ul_MCS_TableAlt_DynamicIndication; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetUplink_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_zeroSlotOffsetAperiodicSRS_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pa_PhaseDiscontinuityImpacts_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_SeparationWithGap_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_MCS_TableAlt_DynamicIndication_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplink_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplink_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplink_v1540_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplink_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplink.c b/src/asn/rrc/ASN_RRC_FeatureSetUplink.c new file mode 100644 index 0000000..b22e259 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplink.c @@ -0,0 +1,773 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplink.h" + +#include "ASN_RRC_DummyI.h" +#include "ASN_RRC_SRS-Resources.h" +#include "ASN_RRC_DummyF.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_featureSetListPerUplinkCC_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_ASN_RRC_featureSetListPerUplinkCC_constr_2 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_type_ASN_RRC_scalingFactor_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_crossCarrierScheduling_OtherSCS_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_searchSpaceSharingCA_UL_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoPUCCH_Group_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicSwitchSUL_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousTxSUL_NonSUL_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_15kHz_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_30kHz_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_60kHz_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_120kHz_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_featureSetListPerUplinkCC_constr_2 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_ASN_RRC_featureSetListPerUplinkCC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetListPerUplinkCC_specs_2 = { + sizeof(struct ASN_RRC_FeatureSetUplink__featureSetListPerUplinkCC), + offsetof(struct ASN_RRC_FeatureSetUplink__featureSetListPerUplinkCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetListPerUplinkCC_2 = { + "featureSetListPerUplinkCC", + "featureSetListPerUplinkCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2, + sizeof(asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetListPerUplinkCC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetListPerUplinkCC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetListPerUplinkCC_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetListPerUplinkCC_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scalingFactor_value2enum_4[] = { + { 0, 4, "f0p4" }, + { 1, 5, "f0p75" }, + { 2, 4, "f0p8" } +}; +static const unsigned int asn_MAP_ASN_RRC_scalingFactor_enum2value_4[] = { + 0, /* f0p4(0) */ + 1, /* f0p75(1) */ + 2 /* f0p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scalingFactor_specs_4 = { + asn_MAP_ASN_RRC_scalingFactor_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scalingFactor_enum2value_4, /* 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_ASN_RRC_scalingFactor_tags_4[] = { + (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_ASN_RRC_scalingFactor_4 = { + "scalingFactor", + "scalingFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scalingFactor_tags_4, + sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_4) + /sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scalingFactor_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_4) + /sizeof(asn_DEF_ASN_RRC_scalingFactor_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scalingFactor_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scalingFactor_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_crossCarrierScheduling_OtherSCS_specs_8 = { + asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_crossCarrierScheduling_OtherSCS_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8[] = { + (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_ASN_RRC_crossCarrierScheduling_OtherSCS_8 = { + "crossCarrierScheduling-OtherSCS", + "crossCarrierScheduling-OtherSCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8, + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8) + /sizeof(asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_crossCarrierScheduling_OtherSCS_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_crossCarrierScheduling_OtherSCS_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_searchSpaceSharingCA_UL_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_searchSpaceSharingCA_UL_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_searchSpaceSharingCA_UL_specs_11 = { + asn_MAP_ASN_RRC_searchSpaceSharingCA_UL_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_searchSpaceSharingCA_UL_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11[] = { + (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_ASN_RRC_searchSpaceSharingCA_UL_11 = { + "searchSpaceSharingCA-UL", + "searchSpaceSharingCA-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11, + sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11) + /sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11) + /sizeof(asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_searchSpaceSharingCA_UL_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_searchSpaceSharingCA_UL_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUCCH_Group_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUCCH_Group_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUCCH_Group_specs_15 = { + asn_MAP_ASN_RRC_twoPUCCH_Group_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUCCH_Group_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_Group_15 = { + "twoPUCCH-Group", + "twoPUCCH-Group", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15, + sizeof(asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_Group_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUCCH_Group_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUCCH_Group_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicSwitchSUL_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicSwitchSUL_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicSwitchSUL_specs_17 = { + asn_MAP_ASN_RRC_dynamicSwitchSUL_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicSwitchSUL_enum2value_17, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchSUL_17 = { + "dynamicSwitchSUL", + "dynamicSwitchSUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17, + sizeof(asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchSUL_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicSwitchSUL_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicSwitchSUL_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousTxSUL_NonSUL_value2enum_19[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousTxSUL_NonSUL_enum2value_19[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousTxSUL_NonSUL_specs_19 = { + asn_MAP_ASN_RRC_simultaneousTxSUL_NonSUL_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousTxSUL_NonSUL_enum2value_19, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_19 = { + "simultaneousTxSUL-NonSUL", + "simultaneousTxSUL-NonSUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19, + sizeof(asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19) + /sizeof(asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19) + /sizeof(asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousTxSUL_NonSUL_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousTxSUL_NonSUL_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_15kHz_value2enum_22[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_15kHz_enum2value_22[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_15kHz_specs_22 = { + asn_MAP_ASN_RRC_scs_15kHz_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_15kHz_enum2value_22, /* 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_ASN_RRC_scs_15kHz_tags_22[] = { + (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_ASN_RRC_scs_15kHz_22 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_15kHz_tags_22, + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_22) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_15kHz_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_22) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_15kHz_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_15kHz_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_30kHz_value2enum_26[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_30kHz_enum2value_26[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_30kHz_specs_26 = { + asn_MAP_ASN_RRC_scs_30kHz_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_30kHz_enum2value_26, /* 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_ASN_RRC_scs_30kHz_tags_26[] = { + (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_ASN_RRC_scs_30kHz_26 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_30kHz_tags_26, + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_26) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_30kHz_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_26) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_30kHz_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_30kHz_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_30[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_30[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_30 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_30, /* 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_ASN_RRC_scs_60kHz_tags_30[] = { + (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_ASN_RRC_scs_60kHz_30 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_30, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_30) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_30) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_30[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_34[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_34[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_34 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_34, /* 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_ASN_RRC_scs_120kHz_tags_34[] = { + (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_ASN_RRC_scs_120kHz_34 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_34, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_21[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_15kHz_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_30kHz_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_oms_21[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_specs_21 = { + sizeof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot), + offsetof(struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot, _asn_ctx), + asn_MAP_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tag2el_21, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_oms_21, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_21 = { + "pusch-ProcessingType1-DifferentTB-PerSlot", + "pusch-ProcessingType1-DifferentTB-PerSlot", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21, + sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21) + /sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21) + /sizeof(asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_tags_21[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_21, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplink, featureSetListPerUplinkCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetListPerUplinkCC_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetListPerUplinkCC_constr_2, memb_ASN_RRC_featureSetListPerUplinkCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetListPerUplinkCC" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_FeatureSetUplink, scalingFactor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scalingFactor_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactor" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_FeatureSetUplink, crossCarrierScheduling_OtherSCS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-OtherSCS" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_FeatureSetUplink, intraBandFreqSeparationUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqSeparationClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraBandFreqSeparationUL" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_FeatureSetUplink, searchSpaceSharingCA_UL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSharingCA-UL" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_FeatureSetUplink, dummy1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DummyI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_FeatureSetUplink, supportedSRS_Resources), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_Resources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-Resources" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_FeatureSetUplink, twoPUCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUCCH_Group_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-Group" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetUplink, dynamicSwitchSUL), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicSwitchSUL_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchSUL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetUplink, simultaneousTxSUL_NonSUL), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousTxSUL-NonSUL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetUplink, pusch_ProcessingType1_DifferentTB_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_pusch_ProcessingType1_DifferentTB_PerSlot_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ProcessingType1-DifferentTB-PerSlot" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplink, dummy2), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DummyF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy2" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetUplink_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetUplink_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* featureSetListPerUplinkCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scalingFactor */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* crossCarrierScheduling-OtherSCS */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* intraBandFreqSeparationUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* searchSpaceSharingCA-UL */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dummy1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* supportedSRS-Resources */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* twoPUCCH-Group */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* dynamicSwitchSUL */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* simultaneousTxSUL-NonSUL */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pusch-ProcessingType1-DifferentTB-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* dummy2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplink_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetUplink), + offsetof(struct ASN_RRC_FeatureSetUplink, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetUplink_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetUplink_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplink = { + "FeatureSetUplink", + "FeatureSetUplink", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetUplink_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplink_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetUplink_1, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetUplink_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplink.h b/src/asn/rrc/ASN_RRC_FeatureSetUplink.h new file mode 100644 index 0000000..bf79315 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplink.h @@ -0,0 +1,125 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplink_H_ +#define _ASN_RRC_FeatureSetUplink_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_FreqSeparationClass.h" +#include "ASN_RRC_FeatureSetUplinkPerCC-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetUplink__scalingFactor { + ASN_RRC_FeatureSetUplink__scalingFactor_f0p4 = 0, + ASN_RRC_FeatureSetUplink__scalingFactor_f0p75 = 1, + ASN_RRC_FeatureSetUplink__scalingFactor_f0p8 = 2 +} e_ASN_RRC_FeatureSetUplink__scalingFactor; +typedef enum ASN_RRC_FeatureSetUplink__crossCarrierScheduling_OtherSCS { + ASN_RRC_FeatureSetUplink__crossCarrierScheduling_OtherSCS_supported = 0 +} e_ASN_RRC_FeatureSetUplink__crossCarrierScheduling_OtherSCS; +typedef enum ASN_RRC_FeatureSetUplink__searchSpaceSharingCA_UL { + ASN_RRC_FeatureSetUplink__searchSpaceSharingCA_UL_supported = 0 +} e_ASN_RRC_FeatureSetUplink__searchSpaceSharingCA_UL; +typedef enum ASN_RRC_FeatureSetUplink__twoPUCCH_Group { + ASN_RRC_FeatureSetUplink__twoPUCCH_Group_supported = 0 +} e_ASN_RRC_FeatureSetUplink__twoPUCCH_Group; +typedef enum ASN_RRC_FeatureSetUplink__dynamicSwitchSUL { + ASN_RRC_FeatureSetUplink__dynamicSwitchSUL_supported = 0 +} e_ASN_RRC_FeatureSetUplink__dynamicSwitchSUL; +typedef enum ASN_RRC_FeatureSetUplink__simultaneousTxSUL_NonSUL { + ASN_RRC_FeatureSetUplink__simultaneousTxSUL_NonSUL_supported = 0 +} e_ASN_RRC_FeatureSetUplink__simultaneousTxSUL_NonSUL; +typedef enum ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz { + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto2 = 0, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto4 = 1, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz; +typedef enum ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz { + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto2 = 0, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto4 = 1, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz; +typedef enum ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz { + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto2 = 0, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto4 = 1, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz; +typedef enum ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz { + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto2 = 0, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto4 = 1, + ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto7 = 2 +} e_ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz; + +/* Forward declarations */ +struct ASN_RRC_DummyI; +struct ASN_RRC_SRS_Resources; +struct ASN_RRC_DummyF; + +/* ASN_RRC_FeatureSetUplink */ +typedef struct ASN_RRC_FeatureSetUplink { + struct ASN_RRC_FeatureSetUplink__featureSetListPerUplinkCC { + A_SEQUENCE_OF(ASN_RRC_FeatureSetUplinkPerCC_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } featureSetListPerUplinkCC; + long *scalingFactor; /* OPTIONAL */ + long *crossCarrierScheduling_OtherSCS; /* OPTIONAL */ + ASN_RRC_FreqSeparationClass_t *intraBandFreqSeparationUL; /* OPTIONAL */ + long *searchSpaceSharingCA_UL; /* OPTIONAL */ + struct ASN_RRC_DummyI *dummy1; /* OPTIONAL */ + struct ASN_RRC_SRS_Resources *supportedSRS_Resources; /* OPTIONAL */ + long *twoPUCCH_Group; /* OPTIONAL */ + long *dynamicSwitchSUL; /* OPTIONAL */ + long *simultaneousTxSUL_NonSUL; /* OPTIONAL */ + struct ASN_RRC_FeatureSetUplink__pusch_ProcessingType1_DifferentTB_PerSlot { + long *scs_15kHz; /* OPTIONAL */ + long *scs_30kHz; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_ProcessingType1_DifferentTB_PerSlot; + struct ASN_RRC_DummyF *dummy2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetUplink_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scalingFactor_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_crossCarrierScheduling_OtherSCS_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_searchSpaceSharingCA_UL_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_Group_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchSUL_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousTxSUL_NonSUL_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_15kHz_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_30kHz_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_34; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplink; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplink_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplink_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplink_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.c b/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.c new file mode 100644 index 0000000..e9f487c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplinkId.h" + +int +ASN_RRC_FeatureSetUplinkId_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetUplinkId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1024 } /* (0..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkId = { + "FeatureSetUplinkId", + "FeatureSetUplinkId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetUplinkId_constr_1, ASN_RRC_FeatureSetUplinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.h b/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.h new file mode 100644 index 0000000..b54e804 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplinkId_H_ +#define _ASN_RRC_FeatureSetUplinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetUplinkId */ +typedef long ASN_RRC_FeatureSetUplinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetUplinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkId; +asn_struct_free_f ASN_RRC_FeatureSetUplinkId_free; +asn_struct_print_f ASN_RRC_FeatureSetUplinkId_print; +asn_constr_check_f ASN_RRC_FeatureSetUplinkId_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetUplinkId_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetUplinkId_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetUplinkId_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetUplinkId_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetUplinkId_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetUplinkId_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetUplinkId_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetUplinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplinkId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.c b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.c new file mode 100644 index 0000000..41c6f4d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplinkPerCC-Id.h" + +int +ASN_RRC_FeatureSetUplinkPerCC_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FeatureSetUplinkPerCC_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id = { + "FeatureSetUplinkPerCC-Id", + "FeatureSetUplinkPerCC-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetUplinkPerCC_Id_constr_1, ASN_RRC_FeatureSetUplinkPerCC_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.h b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.h new file mode 100644 index 0000000..666c867 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplinkPerCC_Id_H_ +#define _ASN_RRC_FeatureSetUplinkPerCC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetUplinkPerCC-Id */ +typedef long ASN_RRC_FeatureSetUplinkPerCC_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetUplinkPerCC_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_Id; +asn_struct_free_f ASN_RRC_FeatureSetUplinkPerCC_Id_free; +asn_struct_print_f ASN_RRC_FeatureSetUplinkPerCC_Id_print; +asn_constr_check_f ASN_RRC_FeatureSetUplinkPerCC_Id_constraint; +ber_type_decoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_decode_ber; +der_type_encoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_encode_der; +xer_type_decoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_decode_xer; +xer_type_encoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_encode_xer; +per_type_decoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_decode_uper; +per_type_encoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_encode_uper; +per_type_decoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_decode_aper; +per_type_encoder_f ASN_RRC_FeatureSetUplinkPerCC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplinkPerCC_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.c b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.c new file mode 100644 index 0000000..6ea86b2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplinkPerCC-v1540.h" + +static int +memb_ASN_RRC_maxNumberSRS_ResourcePerSet_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 <= 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_ASN_RRC_maxNumberSimultaneousSRS_ResourceTx_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 <= 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_memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSimultaneousSRS_ResourceTx_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_mimo_NonCB_PUSCH_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540__mimo_NonCB_PUSCH, maxNumberSRS_ResourcePerSet), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constr_3, memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constraint_2 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourcePerSet" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540__mimo_NonCB_PUSCH, maxNumberSimultaneousSRS_ResourceTx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSimultaneousSRS_ResourceTx_constr_4, memb_ASN_RRC_maxNumberSimultaneousSRS_ResourceTx_constraint_2 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousSRS-ResourceTx" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_mimo_NonCB_PUSCH_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSRS-ResourcePerSet */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxNumberSimultaneousSRS-ResourceTx */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_mimo_NonCB_PUSCH_specs_2 = { + sizeof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540__mimo_NonCB_PUSCH), + offsetof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540__mimo_NonCB_PUSCH, _asn_ctx), + asn_MAP_ASN_RRC_mimo_NonCB_PUSCH_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_2 = { + "mimo-NonCB-PUSCH", + "mimo-NonCB-PUSCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2, + sizeof(asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_mimo_NonCB_PUSCH_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_mimo_NonCB_PUSCH_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_v1540_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540, mimo_NonCB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_mimo_NonCB_PUSCH_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mimo-NonCB-PUSCH" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_v1540_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mimo-NonCB-PUSCH */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_v1540_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540), + offsetof(struct ASN_RRC_FeatureSetUplinkPerCC_v1540, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_v1540_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_v1540_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540 = { + "FeatureSetUplinkPerCC-v1540", + "FeatureSetUplinkPerCC-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_v1540_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.h b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.h new file mode 100644 index 0000000..9190d19 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC-v1540.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplinkPerCC_v1540_H_ +#define _ASN_RRC_FeatureSetUplinkPerCC_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FeatureSetUplinkPerCC-v1540 */ +typedef struct ASN_RRC_FeatureSetUplinkPerCC_v1540 { + struct ASN_RRC_FeatureSetUplinkPerCC_v1540__mimo_NonCB_PUSCH { + long maxNumberSRS_ResourcePerSet; + long maxNumberSimultaneousSRS_ResourceTx; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mimo_NonCB_PUSCH; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetUplinkPerCC_v1540_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_v1540_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplinkPerCC_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.c b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.c new file mode 100644 index 0000000..961d804 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.c @@ -0,0 +1,231 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetUplinkPerCC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 2)) { + /* Constraint 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_ASN_RRC_channelBW_90mhz_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_channelBW_90mhz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_channelBW_90mhz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_channelBW_90mhz_specs_4 = { + asn_MAP_ASN_RRC_channelBW_90mhz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_channelBW_90mhz_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_channelBW_90mhz_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_ASN_RRC_channelBW_90mhz_4 = { + "channelBW-90mhz", + "channelBW-90mhz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_channelBW_90mhz_tags_4, + sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_channelBW_90mhz_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_ASN_RRC_channelBW_90mhz_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_channelBW_90mhz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_channelBW_90mhz_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mimo_CB_PUSCH_6[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberMIMO_LayersCB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersCB-PUSCH" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberSRS_ResourcePerSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constr_8, memb_ASN_RRC_maxNumberSRS_ResourcePerSet_constraint_6 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourcePerSet" + }, +}; +static const int asn_MAP_ASN_RRC_mimo_CB_PUSCH_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_mimo_CB_PUSCH_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberMIMO-LayersCB-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxNumberSRS-ResourcePerSet */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_mimo_CB_PUSCH_specs_6 = { + sizeof(struct ASN_RRC_FeatureSetUplinkPerCC__mimo_CB_PUSCH), + offsetof(struct ASN_RRC_FeatureSetUplinkPerCC__mimo_CB_PUSCH, _asn_ctx), + asn_MAP_ASN_RRC_mimo_CB_PUSCH_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_mimo_CB_PUSCH_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mimo_CB_PUSCH_6 = { + "mimo-CB-PUSCH", + "mimo-CB-PUSCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6, + sizeof(asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_mimo_CB_PUSCH_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_mimo_CB_PUSCH_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_mimo_CB_PUSCH_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, supportedSubcarrierSpacingUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSubcarrierSpacingUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, supportedBandwidthUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SupportedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandwidthUL" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, channelBW_90mhz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_channelBW_90mhz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBW-90mhz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, mimo_CB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_mimo_CB_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mimo-CB-PUSCH" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, maxNumberMIMO_LayersNonCB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersNonCB-PUSCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, supportedModulationOrderUL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ModulationOrder, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedModulationOrderUL" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedSubcarrierSpacingUL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedBandwidthUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* channelBW-90mhz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mimo-CB-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxNumberMIMO-LayersNonCB-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* supportedModulationOrderUL */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetUplinkPerCC), + offsetof(struct ASN_RRC_FeatureSetUplinkPerCC, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSetUplinkPerCC_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC = { + "FeatureSetUplinkPerCC", + "FeatureSetUplinkPerCC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.h b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.h new file mode 100644 index 0000000..5b229f7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetUplinkPerCC.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetUplinkPerCC_H_ +#define _ASN_RRC_FeatureSetUplinkPerCC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SubcarrierSpacing.h" +#include "ASN_RRC_SupportedBandwidth.h" +#include +#include "ASN_RRC_MIMO-LayersUL.h" +#include "ASN_RRC_ModulationOrder.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FeatureSetUplinkPerCC__channelBW_90mhz { + ASN_RRC_FeatureSetUplinkPerCC__channelBW_90mhz_supported = 0 +} e_ASN_RRC_FeatureSetUplinkPerCC__channelBW_90mhz; + +/* ASN_RRC_FeatureSetUplinkPerCC */ +typedef struct ASN_RRC_FeatureSetUplinkPerCC { + ASN_RRC_SubcarrierSpacing_t supportedSubcarrierSpacingUL; + ASN_RRC_SupportedBandwidth_t supportedBandwidthUL; + long *channelBW_90mhz; /* OPTIONAL */ + struct ASN_RRC_FeatureSetUplinkPerCC__mimo_CB_PUSCH { + ASN_RRC_MIMO_LayersUL_t *maxNumberMIMO_LayersCB_PUSCH; /* OPTIONAL */ + long maxNumberSRS_ResourcePerSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mimo_CB_PUSCH; + ASN_RRC_MIMO_LayersUL_t *maxNumberMIMO_LayersNonCB_PUSCH; /* OPTIONAL */ + ASN_RRC_ModulationOrder_t *supportedModulationOrderUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetUplinkPerCC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_channelBW_90mhz_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetUplinkPerCC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSetUplinkPerCC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetUplinkPerCC_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetUplinkPerCC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSets.c b/src/asn/rrc/ASN_RRC_FeatureSets.c new file mode 100644 index 0000000..b68e2bd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSets.c @@ -0,0 +1,675 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSets.h" + +#include "ASN_RRC_FeatureSetDownlink.h" +#include "ASN_RRC_FeatureSetDownlinkPerCC.h" +#include "ASN_RRC_FeatureSetUplink.h" +#include "ASN_RRC_FeatureSetUplinkPerCC.h" +#include "ASN_RRC_FeatureSetDownlink-v1540.h" +#include "ASN_RRC_FeatureSetUplink-v1540.h" +#include "ASN_RRC_FeatureSetUplinkPerCC-v1540.h" +static int +memb_ASN_RRC_featureSetsDownlink_v1540_constraint_11(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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsUplink_v1540_constraint_11(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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsUplinkPerCC_v1540_constraint_11(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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsDownlink_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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsDownlinkPerCC_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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsUplink_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 <= 1024)) { + /* 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 int +memb_ASN_RRC_featureSetsUplinkPerCC_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 <= 1024)) { + /* 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_ASN_RRC_featureSetsDownlink_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsDownlinkPerCC_constr_4 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsUplink_constr_6 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsUplinkPerCC_constr_8 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsDownlink_v1540_constr_12 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsUplink_v1540_constr_14 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_per_constraints_t asn_PER_type_ASN_RRC_featureSetsUplinkPerCC_v1540_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsDownlink_v1540_constr_12 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsUplink_v1540_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsUplinkPerCC_v1540_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsDownlink_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsDownlinkPerCC_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsUplink_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetsUplinkPerCC_constr_8 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_ASN_RRC_featureSetsDownlink_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetDownlink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsDownlink_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsDownlink_specs_2 = { + sizeof(struct ASN_RRC_FeatureSets__featureSetsDownlink), + offsetof(struct ASN_RRC_FeatureSets__featureSetsDownlink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsDownlink_2 = { + "featureSetsDownlink", + "featureSetsDownlink", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsDownlink_tags_2, + sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsDownlink_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_tags_2) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsDownlink_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsDownlink_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsDownlink_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsDownlinkPerCC_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetDownlinkPerCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsDownlinkPerCC_specs_4 = { + sizeof(struct ASN_RRC_FeatureSets__featureSetsDownlinkPerCC), + offsetof(struct ASN_RRC_FeatureSets__featureSetsDownlinkPerCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_4 = { + "featureSetsDownlinkPerCC", + "featureSetsDownlinkPerCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4, + sizeof(asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsDownlinkPerCC_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsDownlinkPerCC_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsDownlinkPerCC_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsUplink_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetUplink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsUplink_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsUplink_specs_6 = { + sizeof(struct ASN_RRC_FeatureSets__featureSetsUplink), + offsetof(struct ASN_RRC_FeatureSets__featureSetsUplink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsUplink_6 = { + "featureSetsUplink", + "featureSetsUplink", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsUplink_tags_6, + sizeof(asn_DEF_ASN_RRC_featureSetsUplink_tags_6) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplink_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsUplink_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsUplink_tags_6) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplink_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsUplink_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsUplink_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsUplink_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsUplinkPerCC_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetUplinkPerCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsUplinkPerCC_specs_8 = { + sizeof(struct ASN_RRC_FeatureSets__featureSetsUplinkPerCC), + offsetof(struct ASN_RRC_FeatureSets__featureSetsUplinkPerCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsUplinkPerCC_8 = { + "featureSetsUplinkPerCC", + "featureSetsUplinkPerCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8, + sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsUplinkPerCC_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsUplinkPerCC_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsUplinkPerCC_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsDownlink_v1540_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetDownlink_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsDownlink_v1540_specs_12 = { + sizeof(struct ASN_RRC_FeatureSets__ext1__featureSetsDownlink_v1540), + offsetof(struct ASN_RRC_FeatureSets__ext1__featureSetsDownlink_v1540, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsDownlink_v1540_12 = { + "featureSetsDownlink-v1540", + "featureSetsDownlink-v1540", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12, + sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12) + /sizeof(asn_DEF_ASN_RRC_featureSetsDownlink_v1540_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsDownlink_v1540_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsDownlink_v1540_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsDownlink_v1540_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsUplink_v1540_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetUplink_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsUplink_v1540_specs_14 = { + sizeof(struct ASN_RRC_FeatureSets__ext1__featureSetsUplink_v1540), + offsetof(struct ASN_RRC_FeatureSets__ext1__featureSetsUplink_v1540, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsUplink_v1540_14 = { + "featureSetsUplink-v1540", + "featureSetsUplink-v1540", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14, + sizeof(asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplink_v1540_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsUplink_v1540_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsUplink_v1540_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsUplink_v1540_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_featureSetsUplinkPerCC_v1540_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetUplinkPerCC_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetsUplinkPerCC_v1540_specs_16 = { + sizeof(struct ASN_RRC_FeatureSets__ext1__featureSetsUplinkPerCC_v1540), + offsetof(struct ASN_RRC_FeatureSets__ext1__featureSetsUplinkPerCC_v1540, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_16 = { + "featureSetsUplinkPerCC-v1540", + "featureSetsUplinkPerCC-v1540", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16, + sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16) + /sizeof(asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetsUplinkPerCC_v1540_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetsUplinkPerCC_v1540_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetsUplinkPerCC_v1540_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_11[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSets__ext1, featureSetsDownlink_v1540), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsDownlink_v1540_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsDownlink_v1540_constr_12, memb_ASN_RRC_featureSetsDownlink_v1540_constraint_11 }, + 0, 0, /* No default value */ + "featureSetsDownlink-v1540" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSets__ext1, featureSetsUplink_v1540), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsUplink_v1540_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsUplink_v1540_constr_14, memb_ASN_RRC_featureSetsUplink_v1540_constraint_11 }, + 0, 0, /* No default value */ + "featureSetsUplink-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSets__ext1, featureSetsUplinkPerCC_v1540), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsUplinkPerCC_v1540_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsUplinkPerCC_v1540_constr_16, memb_ASN_RRC_featureSetsUplinkPerCC_v1540_constraint_11 }, + 0, 0, /* No default value */ + "featureSetsUplinkPerCC-v1540" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_11[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* featureSetsDownlink-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* featureSetsUplink-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* featureSetsUplinkPerCC-v1540 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_11 = { + sizeof(struct ASN_RRC_FeatureSets__ext1), + offsetof(struct ASN_RRC_FeatureSets__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_11, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_11, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_11, + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_11, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSets_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_FeatureSets, featureSetsDownlink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsDownlink_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsDownlink_constr_2, memb_ASN_RRC_featureSetsDownlink_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsDownlink" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FeatureSets, featureSetsDownlinkPerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsDownlinkPerCC_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsDownlinkPerCC_constr_4, memb_ASN_RRC_featureSetsDownlinkPerCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsDownlinkPerCC" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FeatureSets, featureSetsUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsUplink_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsUplink_constr_6, memb_ASN_RRC_featureSetsUplink_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsUplink" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FeatureSets, featureSetsUplinkPerCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetsUplinkPerCC_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetsUplinkPerCC_constr_8, memb_ASN_RRC_featureSetsUplinkPerCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsUplinkPerCC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FeatureSets, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_FeatureSets_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSets_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FeatureSets_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* featureSetsDownlink */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* featureSetsDownlinkPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* featureSetsUplink */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* featureSetsUplinkPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSets_specs_1 = { + sizeof(struct ASN_RRC_FeatureSets), + offsetof(struct ASN_RRC_FeatureSets, _asn_ctx), + asn_MAP_ASN_RRC_FeatureSets_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FeatureSets_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSets = { + "FeatureSets", + "FeatureSets", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FeatureSets_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSets_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSets_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSets_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSets_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSets_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FeatureSets_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_FeatureSets_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSets.h b/src/asn/rrc/ASN_RRC_FeatureSets.h new file mode 100644 index 0000000..5bbc4d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSets.h @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSets_H_ +#define _ASN_RRC_FeatureSets_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FeatureSetDownlink; +struct ASN_RRC_FeatureSetDownlinkPerCC; +struct ASN_RRC_FeatureSetUplink; +struct ASN_RRC_FeatureSetUplinkPerCC; +struct ASN_RRC_FeatureSetDownlink_v1540; +struct ASN_RRC_FeatureSetUplink_v1540; +struct ASN_RRC_FeatureSetUplinkPerCC_v1540; + +/* ASN_RRC_FeatureSets */ +typedef struct ASN_RRC_FeatureSets { + struct ASN_RRC_FeatureSets__featureSetsDownlink { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetDownlink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsDownlink; + struct ASN_RRC_FeatureSets__featureSetsDownlinkPerCC { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetDownlinkPerCC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsDownlinkPerCC; + struct ASN_RRC_FeatureSets__featureSetsUplink { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetUplink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplink; + struct ASN_RRC_FeatureSets__featureSetsUplinkPerCC { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetUplinkPerCC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplinkPerCC; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_FeatureSets__ext1 { + struct ASN_RRC_FeatureSets__ext1__featureSetsDownlink_v1540 { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetDownlink_v1540) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsDownlink_v1540; + struct ASN_RRC_FeatureSets__ext1__featureSetsUplink_v1540 { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetUplink_v1540) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplink_v1540; + struct ASN_RRC_FeatureSets__ext1__featureSetsUplinkPerCC_v1540 { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetUplinkPerCC_v1540) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplinkPerCC_v1540; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSets_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSets; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FeatureSets_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSets_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSets_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.c b/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.c new file mode 100644 index 0000000..5f090d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FeatureSetsPerBand.h" + +#include "ASN_RRC_FeatureSet.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetsPerBand_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetsPerBand_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_FeatureSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FeatureSetsPerBand_specs_1 = { + sizeof(struct ASN_RRC_FeatureSetsPerBand), + offsetof(struct ASN_RRC_FeatureSetsPerBand, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetsPerBand = { + "FeatureSetsPerBand", + "FeatureSetsPerBand", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1, + sizeof(asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1) + /sizeof(asn_DEF_ASN_RRC_FeatureSetsPerBand_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FeatureSetsPerBand_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FeatureSetsPerBand_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FeatureSetsPerBand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.h b/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.h new file mode 100644 index 0000000..4e13199 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FeatureSetsPerBand.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FeatureSetsPerBand_H_ +#define _ASN_RRC_FeatureSetsPerBand_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FeatureSet; + +/* ASN_RRC_FeatureSetsPerBand */ +typedef struct ASN_RRC_FeatureSetsPerBand { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FeatureSetsPerBand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FeatureSetsPerBand; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FeatureSetsPerBand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FeatureSetsPerBand_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FeatureSetsPerBand_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FeatureSetsPerBand_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FilterCoefficient.c b/src/asn/rrc/ASN_RRC_FilterCoefficient.c new file mode 100644 index 0000000..237e1de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FilterCoefficient.c @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FilterCoefficient.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_FilterCoefficient_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_ASN_RRC_FilterCoefficient_value2enum_1[] = { + { 0, 3, "fc0" }, + { 1, 3, "fc1" }, + { 2, 3, "fc2" }, + { 3, 3, "fc3" }, + { 4, 3, "fc4" }, + { 5, 3, "fc5" }, + { 6, 3, "fc6" }, + { 7, 3, "fc7" }, + { 8, 3, "fc8" }, + { 9, 3, "fc9" }, + { 10, 4, "fc11" }, + { 11, 4, "fc13" }, + { 12, 4, "fc15" }, + { 13, 4, "fc17" }, + { 14, 4, "fc19" }, + { 15, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_FilterCoefficient_enum2value_1[] = { + 0, /* fc0(0) */ + 1, /* fc1(1) */ + 10, /* fc11(10) */ + 11, /* fc13(11) */ + 12, /* fc15(12) */ + 13, /* fc17(13) */ + 14, /* fc19(14) */ + 2, /* fc2(2) */ + 3, /* fc3(3) */ + 4, /* fc4(4) */ + 5, /* fc5(5) */ + 6, /* fc6(6) */ + 7, /* fc7(7) */ + 8, /* fc8(8) */ + 9, /* fc9(9) */ + 15 /* spare1(15) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_FilterCoefficient_specs_1 = { + asn_MAP_ASN_RRC_FilterCoefficient_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_FilterCoefficient_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_ASN_RRC_FilterCoefficient_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FilterCoefficient = { + "FilterCoefficient", + "FilterCoefficient", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_FilterCoefficient_tags_1, + sizeof(asn_DEF_ASN_RRC_FilterCoefficient_tags_1) + /sizeof(asn_DEF_ASN_RRC_FilterCoefficient_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FilterCoefficient_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FilterCoefficient_tags_1) + /sizeof(asn_DEF_ASN_RRC_FilterCoefficient_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FilterCoefficient_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_FilterCoefficient_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FilterCoefficient.h b/src/asn/rrc/ASN_RRC_FilterCoefficient.h new file mode 100644 index 0000000..da20ab6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FilterCoefficient.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FilterCoefficient_H_ +#define _ASN_RRC_FilterCoefficient_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FilterCoefficient { + ASN_RRC_FilterCoefficient_fc0 = 0, + ASN_RRC_FilterCoefficient_fc1 = 1, + ASN_RRC_FilterCoefficient_fc2 = 2, + ASN_RRC_FilterCoefficient_fc3 = 3, + ASN_RRC_FilterCoefficient_fc4 = 4, + ASN_RRC_FilterCoefficient_fc5 = 5, + ASN_RRC_FilterCoefficient_fc6 = 6, + ASN_RRC_FilterCoefficient_fc7 = 7, + ASN_RRC_FilterCoefficient_fc8 = 8, + ASN_RRC_FilterCoefficient_fc9 = 9, + ASN_RRC_FilterCoefficient_fc11 = 10, + ASN_RRC_FilterCoefficient_fc13 = 11, + ASN_RRC_FilterCoefficient_fc15 = 12, + ASN_RRC_FilterCoefficient_fc17 = 13, + ASN_RRC_FilterCoefficient_fc19 = 14, + ASN_RRC_FilterCoefficient_spare1 = 15 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_FilterCoefficient; + +/* ASN_RRC_FilterCoefficient */ +typedef long ASN_RRC_FilterCoefficient_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FilterCoefficient_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FilterCoefficient; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_FilterCoefficient_specs_1; +asn_struct_free_f ASN_RRC_FilterCoefficient_free; +asn_struct_print_f ASN_RRC_FilterCoefficient_print; +asn_constr_check_f ASN_RRC_FilterCoefficient_constraint; +ber_type_decoder_f ASN_RRC_FilterCoefficient_decode_ber; +der_type_encoder_f ASN_RRC_FilterCoefficient_encode_der; +xer_type_decoder_f ASN_RRC_FilterCoefficient_decode_xer; +xer_type_encoder_f ASN_RRC_FilterCoefficient_encode_xer; +per_type_decoder_f ASN_RRC_FilterCoefficient_decode_uper; +per_type_encoder_f ASN_RRC_FilterCoefficient_encode_uper; +per_type_decoder_f ASN_RRC_FilterCoefficient_decode_aper; +per_type_encoder_f ASN_RRC_FilterCoefficient_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FilterCoefficient_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FilterConfig.c b/src/asn/rrc/ASN_RRC_FilterConfig.c new file mode 100644 index 0000000..90cce69 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FilterConfig.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FilterConfig.h" + +static int asn_DFL_2_cmp_4(const void *sptr) { + const ASN_RRC_FilterCoefficient_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 4 */ + return (*st != 4); +} +static int asn_DFL_2_set_4(void **sptr) { + ASN_RRC_FilterCoefficient_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 4 */ + *st = 4; + return 0; +} +static int asn_DFL_3_cmp_4(const void *sptr) { + const ASN_RRC_FilterCoefficient_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 4 */ + return (*st != 4); +} +static int asn_DFL_3_set_4(void **sptr) { + ASN_RRC_FilterCoefficient_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 4 */ + *st = 4; + return 0; +} +static int asn_DFL_4_cmp_4(const void *sptr) { + const ASN_RRC_FilterCoefficient_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 4 */ + return (*st != 4); +} +static int asn_DFL_4_set_4(void **sptr) { + ASN_RRC_FilterCoefficient_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 4 */ + *st = 4; + return 0; +} +asn_TYPE_member_t asn_MBR_ASN_RRC_FilterConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FilterConfig, filterCoefficientRSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterCoefficient, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_4, /* Compare DEFAULT 4 */ + &asn_DFL_2_set_4, /* Set DEFAULT 4 */ + "filterCoefficientRSRP" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FilterConfig, filterCoefficientRSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterCoefficient, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_4, /* Compare DEFAULT 4 */ + &asn_DFL_3_set_4, /* Set DEFAULT 4 */ + "filterCoefficientRSRQ" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FilterConfig, filterCoefficientRS_SINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterCoefficient, + 0, + { 0, 0, 0 }, + &asn_DFL_4_cmp_4, /* Compare DEFAULT 4 */ + &asn_DFL_4_set_4, /* Set DEFAULT 4 */ + "filterCoefficientRS-SINR" + }, +}; +static const int asn_MAP_ASN_RRC_FilterConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FilterConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FilterConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* filterCoefficientRSRP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* filterCoefficientRSRQ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* filterCoefficientRS-SINR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FilterConfig_specs_1 = { + sizeof(struct ASN_RRC_FilterConfig), + offsetof(struct ASN_RRC_FilterConfig, _asn_ctx), + asn_MAP_ASN_RRC_FilterConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FilterConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FilterConfig = { + "FilterConfig", + "FilterConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FilterConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_FilterConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_FilterConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FilterConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FilterConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_FilterConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FilterConfig_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FilterConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FilterConfig.h b/src/asn/rrc/ASN_RRC_FilterConfig.h new file mode 100644 index 0000000..6635e54 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FilterConfig.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FilterConfig_H_ +#define _ASN_RRC_FilterConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FilterCoefficient.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FilterConfig */ +typedef struct ASN_RRC_FilterConfig { + ASN_RRC_FilterCoefficient_t *filterCoefficientRSRP; /* DEFAULT 4 */ + ASN_RRC_FilterCoefficient_t *filterCoefficientRSRQ; /* DEFAULT 4 */ + ASN_RRC_FilterCoefficient_t *filterCoefficientRS_SINR; /* DEFAULT 4 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FilterConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FilterConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FilterConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FilterConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FilterConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.c b/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.c new file mode 100644 index 0000000..572f37b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" + +int +ASN_RRC_FreqBandIndicatorEUTRA_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_ASN_RRC_FreqBandIndicatorEUTRA_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_ASN_RRC_FreqBandIndicatorEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA = { + "FreqBandIndicatorEUTRA", + "FreqBandIndicatorEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqBandIndicatorEUTRA_constr_1, ASN_RRC_FreqBandIndicatorEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.h b/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.h new file mode 100644 index 0000000..321ea9b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandIndicatorEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandIndicatorEUTRA_H_ +#define _ASN_RRC_FreqBandIndicatorEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqBandIndicatorEUTRA */ +typedef long ASN_RRC_FreqBandIndicatorEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandIndicatorEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA; +asn_struct_free_f ASN_RRC_FreqBandIndicatorEUTRA_free; +asn_struct_print_f ASN_RRC_FreqBandIndicatorEUTRA_print; +asn_constr_check_f ASN_RRC_FreqBandIndicatorEUTRA_constraint; +ber_type_decoder_f ASN_RRC_FreqBandIndicatorEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_FreqBandIndicatorEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_FreqBandIndicatorEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_FreqBandIndicatorEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_FreqBandIndicatorEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_FreqBandIndicatorEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_FreqBandIndicatorEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_FreqBandIndicatorEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandIndicatorEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.c b/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.c new file mode 100644 index 0000000..19e71c7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandIndicatorNR.h" + +int +ASN_RRC_FreqBandIndicatorNR_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 <= 1024)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_FreqBandIndicatorNR_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (1..1024) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandIndicatorNR = { + "FreqBandIndicatorNR", + "FreqBandIndicatorNR", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandIndicatorNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqBandIndicatorNR_constr_1, ASN_RRC_FreqBandIndicatorNR_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.h b/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.h new file mode 100644 index 0000000..424d411 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandIndicatorNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandIndicatorNR_H_ +#define _ASN_RRC_FreqBandIndicatorNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqBandIndicatorNR */ +typedef long ASN_RRC_FreqBandIndicatorNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandIndicatorNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandIndicatorNR; +asn_struct_free_f ASN_RRC_FreqBandIndicatorNR_free; +asn_struct_print_f ASN_RRC_FreqBandIndicatorNR_print; +asn_constr_check_f ASN_RRC_FreqBandIndicatorNR_constraint; +ber_type_decoder_f ASN_RRC_FreqBandIndicatorNR_decode_ber; +der_type_encoder_f ASN_RRC_FreqBandIndicatorNR_encode_der; +xer_type_decoder_f ASN_RRC_FreqBandIndicatorNR_decode_xer; +xer_type_encoder_f ASN_RRC_FreqBandIndicatorNR_encode_xer; +per_type_decoder_f ASN_RRC_FreqBandIndicatorNR_decode_uper; +per_type_encoder_f ASN_RRC_FreqBandIndicatorNR_encode_uper; +per_type_decoder_f ASN_RRC_FreqBandIndicatorNR_decode_aper; +per_type_encoder_f ASN_RRC_FreqBandIndicatorNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandIndicatorNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformation.c b/src/asn/rrc/ASN_RRC_FreqBandInformation.c new file mode 100644 index 0000000..a062309 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformation.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandInformation.h" + +#include "ASN_RRC_FreqBandInformationEUTRA.h" +#include "ASN_RRC_FreqBandInformationNR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandInformation_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_ASN_RRC_FreqBandInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FreqBandInformation, choice.bandInformationEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandInformationEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandInformationEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_FreqBandInformation, choice.bandInformationNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandInformationNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandInformationNR" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FreqBandInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bandInformationNR */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_FreqBandInformation_specs_1 = { + sizeof(struct ASN_RRC_FreqBandInformation), + offsetof(struct ASN_RRC_FreqBandInformation, _asn_ctx), + offsetof(struct ASN_RRC_FreqBandInformation, present), + sizeof(((struct ASN_RRC_FreqBandInformation *)0)->present), + asn_MAP_ASN_RRC_FreqBandInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformation = { + "FreqBandInformation", + "FreqBandInformation", + &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_ASN_RRC_FreqBandInformation_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_FreqBandInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_FreqBandInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformation.h b/src/asn/rrc/ASN_RRC_FreqBandInformation.h new file mode 100644 index 0000000..111e0b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformation.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandInformation_H_ +#define _ASN_RRC_FreqBandInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FreqBandInformation_PR { + ASN_RRC_FreqBandInformation_PR_NOTHING, /* No components present */ + ASN_RRC_FreqBandInformation_PR_bandInformationEUTRA, + ASN_RRC_FreqBandInformation_PR_bandInformationNR +} ASN_RRC_FreqBandInformation_PR; + +/* Forward declarations */ +struct ASN_RRC_FreqBandInformationEUTRA; +struct ASN_RRC_FreqBandInformationNR; + +/* ASN_RRC_FreqBandInformation */ +typedef struct ASN_RRC_FreqBandInformation { + ASN_RRC_FreqBandInformation_PR present; + union ASN_RRC_FreqBandInformation_u { + struct ASN_RRC_FreqBandInformationEUTRA *bandInformationEUTRA; + struct ASN_RRC_FreqBandInformationNR *bandInformationNR; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqBandInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformation; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_FreqBandInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.c b/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.c new file mode 100644 index 0000000..ca9713f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandInformationEUTRA.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandInformationEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqBandInformationEUTRA, bandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FreqBandInformationEUTRA, ca_BandwidthClassDL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FreqBandInformationEUTRA, ca_BandwidthClassUL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-EUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_FreqBandInformationEUTRA_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FreqBandInformationEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ca-BandwidthClassDL-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ca-BandwidthClassUL-EUTRA */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqBandInformationEUTRA_specs_1 = { + sizeof(struct ASN_RRC_FreqBandInformationEUTRA), + offsetof(struct ASN_RRC_FreqBandInformationEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_FreqBandInformationEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FreqBandInformationEUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformationEUTRA = { + "FreqBandInformationEUTRA", + "FreqBandInformationEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandInformationEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FreqBandInformationEUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FreqBandInformationEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.h b/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.h new file mode 100644 index 0000000..33e0367 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformationEUTRA.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandInformationEUTRA_H_ +#define _ASN_RRC_FreqBandInformationEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include "ASN_RRC_CA-BandwidthClassEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqBandInformationEUTRA */ +typedef struct ASN_RRC_FreqBandInformationEUTRA { + ASN_RRC_FreqBandIndicatorEUTRA_t bandEUTRA; + ASN_RRC_CA_BandwidthClassEUTRA_t *ca_BandwidthClassDL_EUTRA; /* OPTIONAL */ + ASN_RRC_CA_BandwidthClassEUTRA_t *ca_BandwidthClassUL_EUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqBandInformationEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformationEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqBandInformationEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandInformationEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandInformationEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformationNR.c b/src/asn/rrc/ASN_RRC_FreqBandInformationNR.c new file mode 100644 index 0000000..14af578 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformationNR.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandInformationNR.h" + +static int +memb_ASN_RRC_maxCarriersRequestedDL_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 <= 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 int +memb_ASN_RRC_maxCarriersRequestedUL_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 <= 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_ASN_RRC_maxCarriersRequestedDL_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxCarriersRequestedUL_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandInformationNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqBandInformationNR, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_FreqBandInformationNR, maxBandwidthRequestedDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxBandwidthRequestedDL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FreqBandInformationNR, maxBandwidthRequestedUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxBandwidthRequestedUL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FreqBandInformationNR, maxCarriersRequestedDL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxCarriersRequestedDL_constr_5, memb_ASN_RRC_maxCarriersRequestedDL_constraint_1 }, + 0, 0, /* No default value */ + "maxCarriersRequestedDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FreqBandInformationNR, maxCarriersRequestedUL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxCarriersRequestedUL_constr_6, memb_ASN_RRC_maxCarriersRequestedUL_constraint_1 }, + 0, 0, /* No default value */ + "maxCarriersRequestedUL" + }, +}; +static const int asn_MAP_ASN_RRC_FreqBandInformationNR_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FreqBandInformationNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxBandwidthRequestedDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxBandwidthRequestedUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxCarriersRequestedDL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxCarriersRequestedUL */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqBandInformationNR_specs_1 = { + sizeof(struct ASN_RRC_FreqBandInformationNR), + offsetof(struct ASN_RRC_FreqBandInformationNR, _asn_ctx), + asn_MAP_ASN_RRC_FreqBandInformationNR_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FreqBandInformationNR_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformationNR = { + "FreqBandInformationNR", + "FreqBandInformationNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandInformationNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FreqBandInformationNR_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_FreqBandInformationNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandInformationNR.h b/src/asn/rrc/ASN_RRC_FreqBandInformationNR.h new file mode 100644 index 0000000..132a940 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandInformationNR.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandInformationNR_H_ +#define _ASN_RRC_FreqBandInformationNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include "ASN_RRC_AggregatedBandwidth.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqBandInformationNR */ +typedef struct ASN_RRC_FreqBandInformationNR { + ASN_RRC_FreqBandIndicatorNR_t bandNR; + ASN_RRC_AggregatedBandwidth_t *maxBandwidthRequestedDL; /* OPTIONAL */ + ASN_RRC_AggregatedBandwidth_t *maxBandwidthRequestedUL; /* OPTIONAL */ + long *maxCarriersRequestedDL; /* OPTIONAL */ + long *maxCarriersRequestedUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqBandInformationNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandInformationNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqBandInformationNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandInformationNR_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandInformationNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqBandList.c b/src/asn/rrc/ASN_RRC_FreqBandList.c new file mode 100644 index 0000000..e5b110e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqBandList.h" + +#include "ASN_RRC_FreqBandInformation.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 11, 11, 1, 1280 } /* (SIZE(1..1280)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_FreqBandInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqBandList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqBandList_specs_1 = { + sizeof(struct ASN_RRC_FreqBandList), + offsetof(struct ASN_RRC_FreqBandList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandList = { + "FreqBandList", + "FreqBandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FreqBandList_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqBandList_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqBandList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqBandList_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqBandList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqBandList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FreqBandList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FreqBandList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqBandList.h b/src/asn/rrc/ASN_RRC_FreqBandList.h new file mode 100644 index 0000000..07e23e2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqBandList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqBandList_H_ +#define _ASN_RRC_FreqBandList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FreqBandInformation; + +/* ASN_RRC_FreqBandList */ +typedef struct ASN_RRC_FreqBandList { + A_SEQUENCE_OF(struct ASN_RRC_FreqBandInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqBandList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqBandList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqBandList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqBandList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqBandList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqBandList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.c b/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.c new file mode 100644 index 0000000..805b4cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqPriorityEUTRA.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqPriorityEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqPriorityEUTRA, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FreqPriorityEUTRA, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_ASN_RRC_FreqPriorityEUTRA_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FreqPriorityEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellReselectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellReselectionSubPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqPriorityEUTRA_specs_1 = { + sizeof(struct ASN_RRC_FreqPriorityEUTRA), + offsetof(struct ASN_RRC_FreqPriorityEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_FreqPriorityEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FreqPriorityEUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityEUTRA = { + "FreqPriorityEUTRA", + "FreqPriorityEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FreqPriorityEUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FreqPriorityEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.h b/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.h new file mode 100644 index 0000000..6f69672 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqPriorityEUTRA_H_ +#define _ASN_RRC_FreqPriorityEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include "ASN_RRC_CellReselectionPriority.h" +#include "ASN_RRC_CellReselectionSubPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqPriorityEUTRA */ +typedef struct ASN_RRC_FreqPriorityEUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t carrierFreq; + ASN_RRC_CellReselectionPriority_t cellReselectionPriority; + ASN_RRC_CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqPriorityEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqPriorityEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqPriorityEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.c b/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.c new file mode 100644 index 0000000..ef17064 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqPriorityListEUTRA.h" + +#include "ASN_RRC_FreqPriorityEUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FreqPriorityListEUTRA_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_ASN_RRC_FreqPriorityListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqPriorityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqPriorityListEUTRA_specs_1 = { + sizeof(struct ASN_RRC_FreqPriorityListEUTRA), + offsetof(struct ASN_RRC_FreqPriorityListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityListEUTRA = { + "FreqPriorityListEUTRA", + "FreqPriorityListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityListEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqPriorityListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FreqPriorityListEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FreqPriorityListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.h b/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.h new file mode 100644 index 0000000..90fefc9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityListEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqPriorityListEUTRA_H_ +#define _ASN_RRC_FreqPriorityListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FreqPriorityEUTRA; + +/* ASN_RRC_FreqPriorityListEUTRA */ +typedef struct ASN_RRC_FreqPriorityListEUTRA { + A_SEQUENCE_OF(struct ASN_RRC_FreqPriorityEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqPriorityListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqPriorityListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqPriorityListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqPriorityListEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityListNR.c b/src/asn/rrc/ASN_RRC_FreqPriorityListNR.c new file mode 100644 index 0000000..36689a4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityListNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqPriorityListNR.h" + +#include "ASN_RRC_FreqPriorityNR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_FreqPriorityListNR_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_ASN_RRC_FreqPriorityListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqPriorityNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqPriorityListNR_specs_1 = { + sizeof(struct ASN_RRC_FreqPriorityListNR), + offsetof(struct ASN_RRC_FreqPriorityListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityListNR = { + "FreqPriorityListNR", + "FreqPriorityListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityListNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqPriorityListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_FreqPriorityListNR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_FreqPriorityListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityListNR.h b/src/asn/rrc/ASN_RRC_FreqPriorityListNR.h new file mode 100644 index 0000000..9878796 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityListNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqPriorityListNR_H_ +#define _ASN_RRC_FreqPriorityListNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FreqPriorityNR; + +/* ASN_RRC_FreqPriorityListNR */ +typedef struct ASN_RRC_FreqPriorityListNR { + A_SEQUENCE_OF(struct ASN_RRC_FreqPriorityNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqPriorityListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityListNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_FreqPriorityListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqPriorityListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqPriorityListNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityNR.c b/src/asn/rrc/ASN_RRC_FreqPriorityNR.c new file mode 100644 index 0000000..dfc03eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityNR.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqPriorityNR.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqPriorityNR, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FreqPriorityNR, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FreqPriorityNR, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_ASN_RRC_FreqPriorityNR_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FreqPriorityNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FreqPriorityNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellReselectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cellReselectionSubPriority */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqPriorityNR_specs_1 = { + sizeof(struct ASN_RRC_FreqPriorityNR), + offsetof(struct ASN_RRC_FreqPriorityNR, _asn_ctx), + asn_MAP_ASN_RRC_FreqPriorityNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FreqPriorityNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityNR = { + "FreqPriorityNR", + "FreqPriorityNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FreqPriorityNR_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqPriorityNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqPriorityNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqPriorityNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqPriorityNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FreqPriorityNR_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FreqPriorityNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqPriorityNR.h b/src/asn/rrc/ASN_RRC_FreqPriorityNR.h new file mode 100644 index 0000000..525a679 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqPriorityNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqPriorityNR_H_ +#define _ASN_RRC_FreqPriorityNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_CellReselectionPriority.h" +#include "ASN_RRC_CellReselectionSubPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_FreqPriorityNR */ +typedef struct ASN_RRC_FreqPriorityNR { + ASN_RRC_ARFCN_ValueNR_t carrierFreq; + ASN_RRC_CellReselectionPriority_t cellReselectionPriority; + ASN_RRC_CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FreqPriorityNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqPriorityNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FreqPriorityNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FreqPriorityNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqPriorityNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FreqSeparationClass.c b/src/asn/rrc/ASN_RRC_FreqSeparationClass.c new file mode 100644 index 0000000..6a0d135 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqSeparationClass.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FreqSeparationClass.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_FreqSeparationClass_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_ASN_RRC_FreqSeparationClass_value2enum_1[] = { + { 0, 2, "c1" }, + { 1, 2, "c2" }, + { 2, 2, "c3" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_FreqSeparationClass_enum2value_1[] = { + 0, /* c1(0) */ + 1, /* c2(1) */ + 2 /* c3(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_FreqSeparationClass_specs_1 = { + asn_MAP_ASN_RRC_FreqSeparationClass_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_FreqSeparationClass_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_ASN_RRC_FreqSeparationClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqSeparationClass = { + "FreqSeparationClass", + "FreqSeparationClass", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_FreqSeparationClass_tags_1, + sizeof(asn_DEF_ASN_RRC_FreqSeparationClass_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqSeparationClass_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FreqSeparationClass_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FreqSeparationClass_tags_1) + /sizeof(asn_DEF_ASN_RRC_FreqSeparationClass_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_FreqSeparationClass_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_FreqSeparationClass_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FreqSeparationClass.h b/src/asn/rrc/ASN_RRC_FreqSeparationClass.h new file mode 100644 index 0000000..bb2126b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FreqSeparationClass.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FreqSeparationClass_H_ +#define _ASN_RRC_FreqSeparationClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FreqSeparationClass { + ASN_RRC_FreqSeparationClass_c1 = 0, + ASN_RRC_FreqSeparationClass_c2 = 1, + ASN_RRC_FreqSeparationClass_c3 = 2 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_FreqSeparationClass; + +/* ASN_RRC_FreqSeparationClass */ +typedef long ASN_RRC_FreqSeparationClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_FreqSeparationClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FreqSeparationClass; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_FreqSeparationClass_specs_1; +asn_struct_free_f ASN_RRC_FreqSeparationClass_free; +asn_struct_print_f ASN_RRC_FreqSeparationClass_print; +asn_constr_check_f ASN_RRC_FreqSeparationClass_constraint; +ber_type_decoder_f ASN_RRC_FreqSeparationClass_decode_ber; +der_type_encoder_f ASN_RRC_FreqSeparationClass_encode_der; +xer_type_decoder_f ASN_RRC_FreqSeparationClass_decode_xer; +xer_type_encoder_f ASN_RRC_FreqSeparationClass_encode_xer; +per_type_decoder_f ASN_RRC_FreqSeparationClass_decode_uper; +per_type_encoder_f ASN_RRC_FreqSeparationClass_encode_uper; +per_type_decoder_f ASN_RRC_FreqSeparationClass_decode_aper; +per_type_encoder_f ASN_RRC_FreqSeparationClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FreqSeparationClass_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.c b/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.c new file mode 100644 index 0000000..ecc10d8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.c @@ -0,0 +1,174 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FrequencyInfoDL-SIB.h" + +#include "ASN_RRC_SCS-SpecificCarrier.h" +static int +memb_ASN_RRC_offsetToPointA_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 <= 2199)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_scs_SpecificCarrierList_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 <= 5)) { + /* 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_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_offsetToPointA_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2199 } /* (0..2199) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct ASN_RRC_FrequencyInfoDL_SIB__scs_SpecificCarrierList), + offsetof(struct ASN_RRC_FrequencyInfoDL_SIB__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoDL_SIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL_SIB, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL_SIB, offsetToPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_offsetToPointA_constr_3, memb_ASN_RRC_offsetToPointA_constraint_1 }, + 0, 0, /* No default value */ + "offsetToPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL_SIB, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_scs_SpecificCarrierList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_4, memb_ASN_RRC_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FrequencyInfoDL_SIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* offsetToPointA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* scs-SpecificCarrierList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoDL_SIB_specs_1 = { + sizeof(struct ASN_RRC_FrequencyInfoDL_SIB), + offsetof(struct ASN_RRC_FrequencyInfoDL_SIB, _asn_ctx), + asn_MAP_ASN_RRC_FrequencyInfoDL_SIB_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_ASN_RRC_FrequencyInfoDL_SIB = { + "FrequencyInfoDL-SIB", + "FrequencyInfoDL-SIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1, + sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FrequencyInfoDL_SIB_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_FrequencyInfoDL_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.h b/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.h new file mode 100644 index 0000000..a56646c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoDL-SIB.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FrequencyInfoDL_SIB_H_ +#define _ASN_RRC_FrequencyInfoDL_SIB_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MultiFrequencyBandListNR-SIB.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_FrequencyInfoDL-SIB */ +typedef struct ASN_RRC_FrequencyInfoDL_SIB { + ASN_RRC_MultiFrequencyBandListNR_SIB_t frequencyBandList; + long offsetToPointA; + struct ASN_RRC_FrequencyInfoDL_SIB__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FrequencyInfoDL_SIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoDL_SIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoDL_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoDL_SIB_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FrequencyInfoDL_SIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoDL.c b/src/asn/rrc/ASN_RRC_FrequencyInfoDL.c new file mode 100644 index 0000000..e32bc8a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoDL.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FrequencyInfoDL.h" + +#include "ASN_RRC_SCS-SpecificCarrier.h" +static int +memb_ASN_RRC_scs_SpecificCarrierList_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 <= 5)) { + /* 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_ASN_RRC_scs_SpecificCarrierList_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_scs_SpecificCarrierList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_5 = { + sizeof(struct ASN_RRC_FrequencyInfoDL__scs_SpecificCarrierList), + offsetof(struct ASN_RRC_FrequencyInfoDL__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_5 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5, + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_SpecificCarrierList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_scs_SpecificCarrierList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoDL_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FrequencyInfoDL, absoluteFrequencySSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencySSB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoDL, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_scs_SpecificCarrierList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_5, memb_ASN_RRC_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, +}; +static const int asn_MAP_ASN_RRC_FrequencyInfoDL_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FrequencyInfoDL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* absoluteFrequencySSB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* absoluteFrequencyPointA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-SpecificCarrierList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoDL_specs_1 = { + sizeof(struct ASN_RRC_FrequencyInfoDL), + offsetof(struct ASN_RRC_FrequencyInfoDL, _asn_ctx), + asn_MAP_ASN_RRC_FrequencyInfoDL_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FrequencyInfoDL_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoDL = { + "FrequencyInfoDL", + "FrequencyInfoDL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1, + sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoDL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FrequencyInfoDL_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_FrequencyInfoDL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoDL.h b/src/asn/rrc/ASN_RRC_FrequencyInfoDL.h new file mode 100644 index 0000000..c174bac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoDL.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FrequencyInfoDL_H_ +#define _ASN_RRC_FrequencyInfoDL_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_MultiFrequencyBandListNR.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_FrequencyInfoDL */ +typedef struct ASN_RRC_FrequencyInfoDL { + ASN_RRC_ARFCN_ValueNR_t *absoluteFrequencySSB; /* OPTIONAL */ + ASN_RRC_MultiFrequencyBandListNR_t frequencyBandList; + ASN_RRC_ARFCN_ValueNR_t absoluteFrequencyPointA; + struct ASN_RRC_FrequencyInfoDL__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FrequencyInfoDL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoDL; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoDL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoDL_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FrequencyInfoDL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.c b/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.c new file mode 100644 index 0000000..cde55d0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.c @@ -0,0 +1,211 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FrequencyInfoUL-SIB.h" + +#include "ASN_RRC_MultiFrequencyBandListNR-SIB.h" +#include "ASN_RRC_SCS-SpecificCarrier.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_scs_SpecificCarrierList_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 <= 5)) { + /* 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_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyShift7p5khz_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct ASN_RRC_FrequencyInfoUL_SIB__scs_SpecificCarrierList), + offsetof(struct ASN_RRC_FrequencyInfoUL_SIB__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_frequencyShift7p5khz_value2enum_7[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_frequencyShift7p5khz_enum2value_7[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_frequencyShift7p5khz_specs_7 = { + asn_MAP_ASN_RRC_frequencyShift7p5khz_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_frequencyShift7p5khz_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7[] = { + (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_ASN_RRC_frequencyShift7p5khz_7 = { + "frequencyShift7p5khz", + "frequencyShift7p5khz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7, + sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7) + /sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7) + /sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyShift7p5khz_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_frequencyShift7p5khz_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoUL_SIB_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_scs_SpecificCarrierList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_4, memb_ASN_RRC_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, p_Max), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, frequencyShift7p5khz), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyShift7p5khz_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyShift7p5khz" + }, +}; +static const int asn_MAP_ASN_RRC_FrequencyInfoUL_SIB_oms_1[] = { 0, 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FrequencyInfoUL_SIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* absoluteFrequencyPointA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-SpecificCarrierList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* p-Max */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* frequencyShift7p5khz */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoUL_SIB_specs_1 = { + sizeof(struct ASN_RRC_FrequencyInfoUL_SIB), + offsetof(struct ASN_RRC_FrequencyInfoUL_SIB, _asn_ctx), + asn_MAP_ASN_RRC_FrequencyInfoUL_SIB_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FrequencyInfoUL_SIB_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoUL_SIB = { + "FrequencyInfoUL-SIB", + "FrequencyInfoUL-SIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1, + sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FrequencyInfoUL_SIB_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_FrequencyInfoUL_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.h b/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.h new file mode 100644 index 0000000..a87d4f3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoUL-SIB.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FrequencyInfoUL_SIB_H_ +#define _ASN_RRC_FrequencyInfoUL_SIB_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_P-Max.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FrequencyInfoUL_SIB__frequencyShift7p5khz { + ASN_RRC_FrequencyInfoUL_SIB__frequencyShift7p5khz_true = 0 +} e_ASN_RRC_FrequencyInfoUL_SIB__frequencyShift7p5khz; + +/* Forward declarations */ +struct ASN_RRC_MultiFrequencyBandListNR_SIB; +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_FrequencyInfoUL-SIB */ +typedef struct ASN_RRC_FrequencyInfoUL_SIB { + struct ASN_RRC_MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + ASN_RRC_ARFCN_ValueNR_t *absoluteFrequencyPointA; /* OPTIONAL */ + struct ASN_RRC_FrequencyInfoUL_SIB__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + ASN_RRC_P_Max_t *p_Max; /* OPTIONAL */ + long *frequencyShift7p5khz; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FrequencyInfoUL_SIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyShift7p5khz_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoUL_SIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoUL_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoUL_SIB_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FrequencyInfoUL_SIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoUL.c b/src/asn/rrc/ASN_RRC_FrequencyInfoUL.c new file mode 100644 index 0000000..3fa31ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoUL.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_FrequencyInfoUL.h" + +#include "ASN_RRC_MultiFrequencyBandListNR.h" +#include "ASN_RRC_SCS-SpecificCarrier.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_scs_SpecificCarrierList_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 <= 5)) { + /* 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_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyShift7p5khz_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct ASN_RRC_FrequencyInfoUL__scs_SpecificCarrierList), + offsetof(struct ASN_RRC_FrequencyInfoUL__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_frequencyShift7p5khz_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_frequencyShift7p5khz_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_frequencyShift7p5khz_specs_8 = { + asn_MAP_ASN_RRC_frequencyShift7p5khz_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_frequencyShift7p5khz_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8[] = { + (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_ASN_RRC_frequencyShift7p5khz_8 = { + "frequencyShift7p5khz", + "frequencyShift7p5khz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8, + sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8) + /sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8) + /sizeof(asn_DEF_ASN_RRC_frequencyShift7p5khz_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyShift7p5khz_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_frequencyShift7p5khz_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoUL_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FrequencyInfoUL, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FrequencyInfoUL, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_FrequencyInfoUL, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_scs_SpecificCarrierList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_scs_SpecificCarrierList_constr_4, memb_ASN_RRC_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_FrequencyInfoUL, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AdditionalSpectrumEmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_FrequencyInfoUL, p_Max), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_FrequencyInfoUL, frequencyShift7p5khz), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyShift7p5khz_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyShift7p5khz" + }, +}; +static const int asn_MAP_ASN_RRC_FrequencyInfoUL_oms_1[] = { 0, 1, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_FrequencyInfoUL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* absoluteFrequencyPointA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-SpecificCarrierList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* additionalSpectrumEmission */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* p-Max */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* frequencyShift7p5khz */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoUL_specs_1 = { + sizeof(struct ASN_RRC_FrequencyInfoUL), + offsetof(struct ASN_RRC_FrequencyInfoUL, _asn_ctx), + asn_MAP_ASN_RRC_FrequencyInfoUL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_FrequencyInfoUL_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoUL = { + "FrequencyInfoUL", + "FrequencyInfoUL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1, + sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_FrequencyInfoUL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_FrequencyInfoUL_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_FrequencyInfoUL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_FrequencyInfoUL.h b/src/asn/rrc/ASN_RRC_FrequencyInfoUL.h new file mode 100644 index 0000000..91e5b31 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_FrequencyInfoUL.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_FrequencyInfoUL_H_ +#define _ASN_RRC_FrequencyInfoUL_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_AdditionalSpectrumEmission.h" +#include "ASN_RRC_P-Max.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_FrequencyInfoUL__frequencyShift7p5khz { + ASN_RRC_FrequencyInfoUL__frequencyShift7p5khz_true = 0 +} e_ASN_RRC_FrequencyInfoUL__frequencyShift7p5khz; + +/* Forward declarations */ +struct ASN_RRC_MultiFrequencyBandListNR; +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_FrequencyInfoUL */ +typedef struct ASN_RRC_FrequencyInfoUL { + struct ASN_RRC_MultiFrequencyBandListNR *frequencyBandList; /* OPTIONAL */ + ASN_RRC_ARFCN_ValueNR_t *absoluteFrequencyPointA; /* OPTIONAL */ + struct ASN_RRC_FrequencyInfoUL__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + ASN_RRC_AdditionalSpectrumEmission_t *additionalSpectrumEmission; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_Max; /* OPTIONAL */ + long *frequencyShift7p5khz; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_FrequencyInfoUL_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyShift7p5khz_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_FrequencyInfoUL; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_FrequencyInfoUL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_FrequencyInfoUL_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_FrequencyInfoUL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_GapConfig.c b/src/asn/rrc/ASN_RRC_GapConfig.c new file mode 100644 index 0000000..f58baeb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_GapConfig.c @@ -0,0 +1,367 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_GapConfig.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_ASN_RRC_gapOffset_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 <= 159)) { + /* Constraint 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_ASN_RRC_mgl_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_mgrp_constr_10 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_type_ASN_RRC_mgta_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_type_ASN_RRC_refServCellIndicator_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_gapOffset_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mgl_value2enum_3[] = { + { 0, 7, "ms1dot5" }, + { 1, 3, "ms3" }, + { 2, 7, "ms3dot5" }, + { 3, 3, "ms4" }, + { 4, 7, "ms5dot5" }, + { 5, 3, "ms6" } +}; +static const unsigned int asn_MAP_ASN_RRC_mgl_enum2value_3[] = { + 0, /* ms1dot5(0) */ + 1, /* ms3(1) */ + 2, /* ms3dot5(2) */ + 3, /* ms4(3) */ + 4, /* ms5dot5(4) */ + 5 /* ms6(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mgl_specs_3 = { + asn_MAP_ASN_RRC_mgl_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mgl_enum2value_3, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mgl_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_ASN_RRC_mgl_3 = { + "mgl", + "mgl", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mgl_tags_3, + sizeof(asn_DEF_ASN_RRC_mgl_tags_3) + /sizeof(asn_DEF_ASN_RRC_mgl_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mgl_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mgl_tags_3) + /sizeof(asn_DEF_ASN_RRC_mgl_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mgl_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mgl_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mgrp_value2enum_10[] = { + { 0, 4, "ms20" }, + { 1, 4, "ms40" }, + { 2, 4, "ms80" }, + { 3, 5, "ms160" } +}; +static const unsigned int asn_MAP_ASN_RRC_mgrp_enum2value_10[] = { + 3, /* ms160(3) */ + 0, /* ms20(0) */ + 1, /* ms40(1) */ + 2 /* ms80(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mgrp_specs_10 = { + asn_MAP_ASN_RRC_mgrp_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mgrp_enum2value_10, /* 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_ASN_RRC_mgrp_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_ASN_RRC_mgrp_10 = { + "mgrp", + "mgrp", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mgrp_tags_10, + sizeof(asn_DEF_ASN_RRC_mgrp_tags_10) + /sizeof(asn_DEF_ASN_RRC_mgrp_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mgrp_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mgrp_tags_10) + /sizeof(asn_DEF_ASN_RRC_mgrp_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mgrp_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mgrp_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mgta_value2enum_15[] = { + { 0, 3, "ms0" }, + { 1, 8, "ms0dot25" }, + { 2, 7, "ms0dot5" } +}; +static const unsigned int asn_MAP_ASN_RRC_mgta_enum2value_15[] = { + 0, /* ms0(0) */ + 1, /* ms0dot25(1) */ + 2 /* ms0dot5(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mgta_specs_15 = { + asn_MAP_ASN_RRC_mgta_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mgta_enum2value_15, /* 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_ASN_RRC_mgta_tags_15[] = { + (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_ASN_RRC_mgta_15 = { + "mgta", + "mgta", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mgta_tags_15, + sizeof(asn_DEF_ASN_RRC_mgta_tags_15) + /sizeof(asn_DEF_ASN_RRC_mgta_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mgta_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mgta_tags_15) + /sizeof(asn_DEF_ASN_RRC_mgta_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mgta_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mgta_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_refServCellIndicator_value2enum_21[] = { + { 0, 5, "pCell" }, + { 1, 6, "pSCell" }, + { 2, 7, "mcg-FR2" } +}; +static const unsigned int asn_MAP_ASN_RRC_refServCellIndicator_enum2value_21[] = { + 2, /* mcg-FR2(2) */ + 0, /* pCell(0) */ + 1 /* pSCell(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_refServCellIndicator_specs_21 = { + asn_MAP_ASN_RRC_refServCellIndicator_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_refServCellIndicator_enum2value_21, /* 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_ASN_RRC_refServCellIndicator_tags_21[] = { + (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_ASN_RRC_refServCellIndicator_21 = { + "refServCellIndicator", + "refServCellIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_refServCellIndicator_tags_21, + sizeof(asn_DEF_ASN_RRC_refServCellIndicator_tags_21) + /sizeof(asn_DEF_ASN_RRC_refServCellIndicator_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_refServCellIndicator_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_refServCellIndicator_tags_21) + /sizeof(asn_DEF_ASN_RRC_refServCellIndicator_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_refServCellIndicator_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_refServCellIndicator_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_20[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_GapConfig__ext1, refServCellIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_refServCellIndicator_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refServCellIndicator" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_20[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_20[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* refServCellIndicator */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_20 = { + sizeof(struct ASN_RRC_GapConfig__ext1), + offsetof(struct ASN_RRC_GapConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_20, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_20, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_20 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_20, + sizeof(asn_DEF_ASN_RRC_ext1_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_20[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_20, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_GapConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_GapConfig, gapOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_gapOffset_constr_2, memb_ASN_RRC_gapOffset_constraint_1 }, + 0, 0, /* No default value */ + "gapOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_GapConfig, mgl), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mgl_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgl" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_GapConfig, mgrp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mgrp_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_GapConfig, mgta), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mgta_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgta" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_GapConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_GapConfig_oms_1[] = { 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_GapConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_GapConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gapOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mgl */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mgrp */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mgta */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_GapConfig_specs_1 = { + sizeof(struct ASN_RRC_GapConfig), + offsetof(struct ASN_RRC_GapConfig, _asn_ctx), + asn_MAP_ASN_RRC_GapConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_GapConfig_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_GapConfig = { + "GapConfig", + "GapConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_GapConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_GapConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_GapConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_GapConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_GapConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_GapConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_GapConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_GapConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_GapConfig.h b/src/asn/rrc/ASN_RRC_GapConfig.h new file mode 100644 index 0000000..aeb8206 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_GapConfig.h @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_GapConfig_H_ +#define _ASN_RRC_GapConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_GapConfig__mgl { + ASN_RRC_GapConfig__mgl_ms1dot5 = 0, + ASN_RRC_GapConfig__mgl_ms3 = 1, + ASN_RRC_GapConfig__mgl_ms3dot5 = 2, + ASN_RRC_GapConfig__mgl_ms4 = 3, + ASN_RRC_GapConfig__mgl_ms5dot5 = 4, + ASN_RRC_GapConfig__mgl_ms6 = 5 +} e_ASN_RRC_GapConfig__mgl; +typedef enum ASN_RRC_GapConfig__mgrp { + ASN_RRC_GapConfig__mgrp_ms20 = 0, + ASN_RRC_GapConfig__mgrp_ms40 = 1, + ASN_RRC_GapConfig__mgrp_ms80 = 2, + ASN_RRC_GapConfig__mgrp_ms160 = 3 +} e_ASN_RRC_GapConfig__mgrp; +typedef enum ASN_RRC_GapConfig__mgta { + ASN_RRC_GapConfig__mgta_ms0 = 0, + ASN_RRC_GapConfig__mgta_ms0dot25 = 1, + ASN_RRC_GapConfig__mgta_ms0dot5 = 2 +} e_ASN_RRC_GapConfig__mgta; +typedef enum ASN_RRC_GapConfig__ext1__refServCellIndicator { + ASN_RRC_GapConfig__ext1__refServCellIndicator_pCell = 0, + ASN_RRC_GapConfig__ext1__refServCellIndicator_pSCell = 1, + ASN_RRC_GapConfig__ext1__refServCellIndicator_mcg_FR2 = 2 +} e_ASN_RRC_GapConfig__ext1__refServCellIndicator; + +/* ASN_RRC_GapConfig */ +typedef struct ASN_RRC_GapConfig { + long gapOffset; + long mgl; + long mgrp; + long mgta; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_GapConfig__ext1 { + long *refServCellIndicator; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_GapConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mgl_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mgrp_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mgta_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_refServCellIndicator_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_GapConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_GapConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_GapConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_GapConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.c b/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.c new file mode 100644 index 0000000..0cf8bde --- /dev/null +++ b/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.c @@ -0,0 +1,258 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_GeneralParametersMRDC-XDD-Diff.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 asn_per_constraints_t asn_PER_type_ASN_RRC_splitSRB_WithOneUL_Path_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_srb3_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_v2x_EUTRA_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_splitSRB_WithOneUL_Path_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_splitSRB_WithOneUL_Path_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_splitSRB_WithOneUL_Path_specs_2 = { + asn_MAP_ASN_RRC_splitSRB_WithOneUL_Path_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_splitSRB_WithOneUL_Path_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_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_ASN_RRC_splitSRB_WithOneUL_Path_2 = { + "splitSRB-WithOneUL-Path", + "splitSRB-WithOneUL-Path", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2, + sizeof(asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2) + /sizeof(asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2) + /sizeof(asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_splitSRB_WithOneUL_Path_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_splitSRB_WithOneUL_Path_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_specs_4 = { + asn_MAP_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4[] = { + (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_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_4 = { + "splitDRB-withUL-Both-MCG-SCG", + "splitDRB-withUL-Both-MCG-SCG", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4, + sizeof(asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4) + /sizeof(asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4) + /sizeof(asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_srb3_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_srb3_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srb3_specs_6 = { + asn_MAP_ASN_RRC_srb3_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srb3_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srb3_tags_6[] = { + (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_ASN_RRC_srb3_6 = { + "srb3", + "srb3", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srb3_tags_6, + sizeof(asn_DEF_ASN_RRC_srb3_tags_6) + /sizeof(asn_DEF_ASN_RRC_srb3_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srb3_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srb3_tags_6) + /sizeof(asn_DEF_ASN_RRC_srb3_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srb3_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srb3_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_v2x_EUTRA_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_v2x_EUTRA_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_v2x_EUTRA_specs_8 = { + asn_MAP_ASN_RRC_v2x_EUTRA_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_v2x_EUTRA_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_v2x_EUTRA_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_ASN_RRC_v2x_EUTRA_8 = { + "v2x-EUTRA", + "v2x-EUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_v2x_EUTRA_tags_8, + sizeof(asn_DEF_ASN_RRC_v2x_EUTRA_tags_8) + /sizeof(asn_DEF_ASN_RRC_v2x_EUTRA_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_v2x_EUTRA_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_v2x_EUTRA_tags_8) + /sizeof(asn_DEF_ASN_RRC_v2x_EUTRA_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_v2x_EUTRA_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_v2x_EUTRA_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_GeneralParametersMRDC_XDD_Diff_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff, splitSRB_WithOneUL_Path), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "splitSRB-WithOneUL-Path" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff, splitDRB_withUL_Both_MCG_SCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "splitDRB-withUL-Both-MCG-SCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff, srb3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srb3_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb3" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff, v2x_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_v2x_EUTRA_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "v2x-EUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_GeneralParametersMRDC_XDD_Diff_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* splitSRB-WithOneUL-Path */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* splitDRB-withUL-Both-MCG-SCG */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* srb3 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* v2x-EUTRA */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_GeneralParametersMRDC_XDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff), + offsetof(struct ASN_RRC_GeneralParametersMRDC_XDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_GeneralParametersMRDC_XDD_Diff_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff = { + "GeneralParametersMRDC-XDD-Diff", + "GeneralParametersMRDC-XDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_GeneralParametersMRDC_XDD_Diff_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_GeneralParametersMRDC_XDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.h b/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.h new file mode 100644 index 0000000..89a20c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_GeneralParametersMRDC-XDD-Diff.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_GeneralParametersMRDC_XDD_Diff_H_ +#define _ASN_RRC_GeneralParametersMRDC_XDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path { + ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path_supported = 0 +} e_ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path; +typedef enum ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG { + ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG_supported = 0 +} e_ASN_RRC_GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG; +typedef enum ASN_RRC_GeneralParametersMRDC_XDD_Diff__srb3 { + ASN_RRC_GeneralParametersMRDC_XDD_Diff__srb3_supported = 0 +} e_ASN_RRC_GeneralParametersMRDC_XDD_Diff__srb3; +typedef enum ASN_RRC_GeneralParametersMRDC_XDD_Diff__v2x_EUTRA { + ASN_RRC_GeneralParametersMRDC_XDD_Diff__v2x_EUTRA_supported = 0 +} e_ASN_RRC_GeneralParametersMRDC_XDD_Diff__v2x_EUTRA; + +/* ASN_RRC_GeneralParametersMRDC-XDD-Diff */ +typedef struct ASN_RRC_GeneralParametersMRDC_XDD_Diff { + long *splitSRB_WithOneUL_Path; /* OPTIONAL */ + long *splitDRB_withUL_Both_MCG_SCG; /* OPTIONAL */ + long *srb3; /* OPTIONAL */ + long *v2x_EUTRA; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_GeneralParametersMRDC_XDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_splitSRB_WithOneUL_Path_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_splitDRB_withUL_Both_MCG_SCG_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srb3_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_v2x_EUTRA_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_GeneralParametersMRDC_XDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_GeneralParametersMRDC_XDD_Diff_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_GeneralParametersMRDC_XDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.c b/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.c new file mode 100644 index 0000000..228cf01 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_HandoverCommand-IEs.h" + +static int +memb_ASN_RRC_handoverCommandMessage_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_handoverCommandMessage_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_HandoverCommand_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_HandoverCommand_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverCommand_IEs, handoverCommandMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_handoverCommandMessage_constr_2, memb_ASN_RRC_handoverCommandMessage_constraint_1 }, + 0, 0, /* No default value */ + "handoverCommandMessage" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_HandoverCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_HandoverCommand_IEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_HandoverCommand_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverCommandMessage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverCommand_IEs_specs_1 = { + sizeof(struct ASN_RRC_HandoverCommand_IEs), + offsetof(struct ASN_RRC_HandoverCommand_IEs, _asn_ctx), + asn_MAP_ASN_RRC_HandoverCommand_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_HandoverCommand_IEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverCommand_IEs = { + "HandoverCommand-IEs", + "HandoverCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_HandoverCommand_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_HandoverCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.h b/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.h new file mode 100644 index 0000000..5a9e6dc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverCommand-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_HandoverCommand_IEs_H_ +#define _ASN_RRC_HandoverCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_HandoverCommand-IEs */ +typedef struct ASN_RRC_HandoverCommand_IEs { + OCTET_STRING_t handoverCommandMessage; + struct ASN_RRC_HandoverCommand_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_HandoverCommand_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverCommand_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_HandoverCommand_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_HandoverCommand.c b/src/asn/rrc/ASN_RRC_HandoverCommand.c new file mode 100644 index 0000000..fa4be10 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverCommand.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_HandoverCommand.h" + +#include "ASN_RRC_HandoverCommand-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, choice.handoverCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_HandoverCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverCommand */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1), + offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_HandoverCommand__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_HandoverCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_HandoverCommand__criticalExtensions), + offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_HandoverCommand__criticalExtensions, present), + sizeof(((struct ASN_RRC_HandoverCommand__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_HandoverCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_HandoverCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverCommand_specs_1 = { + sizeof(struct ASN_RRC_HandoverCommand), + offsetof(struct ASN_RRC_HandoverCommand, _asn_ctx), + asn_MAP_ASN_RRC_HandoverCommand_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_ASN_RRC_HandoverCommand = { + "HandoverCommand", + "HandoverCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_HandoverCommand_tags_1, + sizeof(asn_DEF_ASN_RRC_HandoverCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_HandoverCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_HandoverCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_HandoverCommand_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_HandoverCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_HandoverCommand.h b/src/asn/rrc/ASN_RRC_HandoverCommand.h new file mode 100644 index 0000000..bafd5c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverCommand.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_HandoverCommand_H_ +#define _ASN_RRC_HandoverCommand_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_HandoverCommand__criticalExtensions_PR { + ASN_RRC_HandoverCommand__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_HandoverCommand__criticalExtensions_PR_c1, + ASN_RRC_HandoverCommand__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_HandoverCommand__criticalExtensions_PR; +typedef enum ASN_RRC_HandoverCommand__criticalExtensions__c1_PR { + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR_handoverCommand, + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR_spare3, + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR_spare2, + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR_spare1 +} ASN_RRC_HandoverCommand__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_HandoverCommand_IEs; + +/* ASN_RRC_HandoverCommand */ +typedef struct ASN_RRC_HandoverCommand { + struct ASN_RRC_HandoverCommand__criticalExtensions { + ASN_RRC_HandoverCommand__criticalExtensions_PR present; + union ASN_RRC_HandoverCommand__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_HandoverCommand__criticalExtensions__c1 { + ASN_RRC_HandoverCommand__criticalExtensions__c1_PR present; + union ASN_RRC_HandoverCommand__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_HandoverCommand_IEs *handoverCommand; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_HandoverCommand__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_HandoverCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverCommand; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_HandoverCommand_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.c b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.c new file mode 100644 index 0000000..5914f2c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_HandoverPreparationInformation-IEs.h" + +#include "ASN_RRC_AS-Config.h" +#include "ASN_RRC_RRM-Config.h" +#include "ASN_RRC_AS-Context.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverPreparationInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, ue_CapabilityRAT_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-List" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, sourceConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, rrm_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRM_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrm-Config" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, as_Context), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AS_Context, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "as-Context" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_HandoverPreparationInformation_IEs_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_HandoverPreparationInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-CapabilityRAT-List */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sourceConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rrm-Config */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* as-Context */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverPreparationInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation_IEs), + offsetof(struct ASN_RRC_HandoverPreparationInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_HandoverPreparationInformation_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_HandoverPreparationInformation_IEs_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs = { + "HandoverPreparationInformation-IEs", + "HandoverPreparationInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_HandoverPreparationInformation_IEs_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_HandoverPreparationInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.h b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.h new file mode 100644 index 0000000..8db2464 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation-IEs.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_HandoverPreparationInformation_IEs_H_ +#define _ASN_RRC_HandoverPreparationInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UE-CapabilityRAT-ContainerList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_AS_Config; +struct ASN_RRC_RRM_Config; +struct ASN_RRC_AS_Context; + +/* ASN_RRC_HandoverPreparationInformation-IEs */ +typedef struct ASN_RRC_HandoverPreparationInformation_IEs { + ASN_RRC_UE_CapabilityRAT_ContainerList_t ue_CapabilityRAT_List; + struct ASN_RRC_AS_Config *sourceConfig; /* OPTIONAL */ + struct ASN_RRC_RRM_Config *rrm_Config; /* OPTIONAL */ + struct ASN_RRC_AS_Context *as_Context; /* OPTIONAL */ + struct ASN_RRC_HandoverPreparationInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_HandoverPreparationInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverPreparationInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverPreparationInformation_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_HandoverPreparationInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.c b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.c new file mode 100644 index 0000000..ac1cc41 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_HandoverPreparationInformation.h" + +#include "ASN_RRC_HandoverPreparationInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, choice.handoverPreparationInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_HandoverPreparationInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverPreparationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverPreparationInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1), + offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions), + offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_HandoverPreparationInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_HandoverPreparationInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_HandoverPreparationInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_HandoverPreparationInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_HandoverPreparationInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_HandoverPreparationInformation_specs_1 = { + sizeof(struct ASN_RRC_HandoverPreparationInformation), + offsetof(struct ASN_RRC_HandoverPreparationInformation, _asn_ctx), + asn_MAP_ASN_RRC_HandoverPreparationInformation_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_ASN_RRC_HandoverPreparationInformation = { + "HandoverPreparationInformation", + "HandoverPreparationInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_HandoverPreparationInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_HandoverPreparationInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_HandoverPreparationInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.h b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.h new file mode 100644 index 0000000..d70a056 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_HandoverPreparationInformation.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_HandoverPreparationInformation_H_ +#define _ASN_RRC_HandoverPreparationInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR { + ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR_c1, + ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR; +typedef enum ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR { + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR_handoverPreparationInformation, + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR_spare3, + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR_spare2, + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR_spare1 +} ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_HandoverPreparationInformation_IEs; + +/* ASN_RRC_HandoverPreparationInformation */ +typedef struct ASN_RRC_HandoverPreparationInformation { + struct ASN_RRC_HandoverPreparationInformation__criticalExtensions { + ASN_RRC_HandoverPreparationInformation__criticalExtensions_PR present; + union ASN_RRC_HandoverPreparationInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1 { + ASN_RRC_HandoverPreparationInformation__criticalExtensions__c1_PR present; + union ASN_RRC_HandoverPreparationInformation__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_HandoverPreparationInformation_IEs *handoverPreparationInformation; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_HandoverPreparationInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_HandoverPreparationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_HandoverPreparationInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_HandoverPreparationInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Hysteresis.c b/src/asn/rrc/ASN_RRC_Hysteresis.c new file mode 100644 index 0000000..7dd0949 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Hysteresis.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Hysteresis.h" + +int +ASN_RRC_Hysteresis_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 <= 30)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_Hysteresis_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Hysteresis_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Hysteresis = { + "Hysteresis", + "Hysteresis", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_Hysteresis_tags_1, + sizeof(asn_DEF_ASN_RRC_Hysteresis_tags_1) + /sizeof(asn_DEF_ASN_RRC_Hysteresis_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Hysteresis_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Hysteresis_tags_1) + /sizeof(asn_DEF_ASN_RRC_Hysteresis_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_Hysteresis_constr_1, ASN_RRC_Hysteresis_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Hysteresis.h b/src/asn/rrc/ASN_RRC_Hysteresis.h new file mode 100644 index 0000000..b08dec8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Hysteresis.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Hysteresis_H_ +#define _ASN_RRC_Hysteresis_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_Hysteresis */ +typedef long ASN_RRC_Hysteresis_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_Hysteresis_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Hysteresis; +asn_struct_free_f ASN_RRC_Hysteresis_free; +asn_struct_print_f ASN_RRC_Hysteresis_print; +asn_constr_check_f ASN_RRC_Hysteresis_constraint; +ber_type_decoder_f ASN_RRC_Hysteresis_decode_ber; +der_type_encoder_f ASN_RRC_Hysteresis_encode_der; +xer_type_decoder_f ASN_RRC_Hysteresis_decode_xer; +xer_type_encoder_f ASN_RRC_Hysteresis_encode_xer; +per_type_decoder_f ASN_RRC_Hysteresis_decode_uper; +per_type_encoder_f ASN_RRC_Hysteresis_encode_uper; +per_type_decoder_f ASN_RRC_Hysteresis_decode_aper; +per_type_encoder_f ASN_RRC_Hysteresis_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Hysteresis_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_I-RNTI-Value.c b/src/asn/rrc/ASN_RRC_I-RNTI-Value.c new file mode 100644 index 0000000..997de35 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_I-RNTI-Value.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_I-RNTI-Value.h" + +int +ASN_RRC_I_RNTI_Value_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 == 40)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_I_RNTI_Value_constr_1 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 ber_tlv_tag_t asn_DEF_ASN_RRC_I_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_I_RNTI_Value = { + "I-RNTI-Value", + "I-RNTI-Value", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_I_RNTI_Value_tags_1, + sizeof(asn_DEF_ASN_RRC_I_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_I_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_I_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_I_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_I_RNTI_Value_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_I_RNTI_Value_constr_1, ASN_RRC_I_RNTI_Value_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_I-RNTI-Value.h b/src/asn/rrc/ASN_RRC_I-RNTI-Value.h new file mode 100644 index 0000000..20bd537 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_I-RNTI-Value.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_I_RNTI_Value_H_ +#define _ASN_RRC_I_RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_I-RNTI-Value */ +typedef BIT_STRING_t ASN_RRC_I_RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_I_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_I_RNTI_Value; +asn_struct_free_f ASN_RRC_I_RNTI_Value_free; +asn_struct_print_f ASN_RRC_I_RNTI_Value_print; +asn_constr_check_f ASN_RRC_I_RNTI_Value_constraint; +ber_type_decoder_f ASN_RRC_I_RNTI_Value_decode_ber; +der_type_encoder_f ASN_RRC_I_RNTI_Value_encode_der; +xer_type_decoder_f ASN_RRC_I_RNTI_Value_decode_xer; +xer_type_encoder_f ASN_RRC_I_RNTI_Value_encode_xer; +per_type_decoder_f ASN_RRC_I_RNTI_Value_decode_uper; +per_type_encoder_f ASN_RRC_I_RNTI_Value_encode_uper; +per_type_decoder_f ASN_RRC_I_RNTI_Value_decode_aper; +per_type_encoder_f ASN_RRC_I_RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_I_RNTI_Value_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IMS-Parameters.c b/src/asn/rrc/ASN_RRC_IMS-Parameters.c new file mode 100644 index 0000000..b445749 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-Parameters.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IMS-Parameters.h" + +#include "ASN_RRC_IMS-ParametersCommon.h" +#include "ASN_RRC_IMS-ParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_Parameters_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_IMS_Parameters, ims_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IMS_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-ParametersCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_IMS_Parameters, ims_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-ParametersFRX-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_IMS_Parameters_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IMS_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_IMS_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ims-ParametersCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ims-ParametersFRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_Parameters_specs_1 = { + sizeof(struct ASN_RRC_IMS_Parameters), + offsetof(struct ASN_RRC_IMS_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_IMS_Parameters_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_IMS_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_Parameters = { + "IMS-Parameters", + "IMS-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_IMS_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_IMS_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IMS_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IMS_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_IMS_Parameters_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_IMS_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IMS-Parameters.h b/src/asn/rrc/ASN_RRC_IMS-Parameters.h new file mode 100644 index 0000000..1cc06b8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-Parameters.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IMS_Parameters_H_ +#define _ASN_RRC_IMS_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_IMS_ParametersCommon; +struct ASN_RRC_IMS_ParametersFRX_Diff; + +/* ASN_RRC_IMS-Parameters */ +typedef struct ASN_RRC_IMS_Parameters { + struct ASN_RRC_IMS_ParametersCommon *ims_ParametersCommon; /* OPTIONAL */ + struct ASN_RRC_IMS_ParametersFRX_Diff *ims_ParametersFRX_Diff; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IMS_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_Parameters_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IMS_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.c b/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.c new file mode 100644 index 0000000..8f1e6b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IMS-ParametersCommon.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_ASN_RRC_voiceOverEUTRA_5GC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_voiceOverEUTRA_5GC_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_voiceOverEUTRA_5GC_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_voiceOverEUTRA_5GC_specs_2 = { + asn_MAP_ASN_RRC_voiceOverEUTRA_5GC_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_voiceOverEUTRA_5GC_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_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_ASN_RRC_voiceOverEUTRA_5GC_2 = { + "voiceOverEUTRA-5GC", + "voiceOverEUTRA-5GC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2, + sizeof(asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2) + /sizeof(asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2) + /sizeof(asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_voiceOverEUTRA_5GC_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_voiceOverEUTRA_5GC_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_specs_6 = { + asn_MAP_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6[] = { + (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_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_6 = { + "voiceOverSCG-BearerEUTRA-5GC", + "voiceOverSCG-BearerEUTRA-5GC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6, + sizeof(asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6) + /sizeof(asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6) + /sizeof(asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_IMS_ParametersCommon__ext1, voiceOverSCG_BearerEUTRA_5GC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "voiceOverSCG-BearerEUTRA-5GC" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* voiceOverSCG-BearerEUTRA-5GC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_IMS_ParametersCommon__ext1), + offsetof(struct ASN_RRC_IMS_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_ParametersCommon_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_IMS_ParametersCommon, voiceOverEUTRA_5GC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "voiceOverEUTRA-5GC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_IMS_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_IMS_ParametersCommon_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_IMS_ParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* voiceOverEUTRA-5GC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_ParametersCommon_specs_1 = { + sizeof(struct ASN_RRC_IMS_ParametersCommon), + offsetof(struct ASN_RRC_IMS_ParametersCommon, _asn_ctx), + asn_MAP_ASN_RRC_IMS_ParametersCommon_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_IMS_ParametersCommon_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_ParametersCommon = { + "IMS-ParametersCommon", + "IMS-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_IMS_ParametersCommon_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_IMS_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.h b/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.h new file mode 100644 index 0000000..a3fa271 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-ParametersCommon.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IMS_ParametersCommon_H_ +#define _ASN_RRC_IMS_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_IMS_ParametersCommon__voiceOverEUTRA_5GC { + ASN_RRC_IMS_ParametersCommon__voiceOverEUTRA_5GC_supported = 0 +} e_ASN_RRC_IMS_ParametersCommon__voiceOverEUTRA_5GC; +typedef enum ASN_RRC_IMS_ParametersCommon__ext1__voiceOverSCG_BearerEUTRA_5GC { + ASN_RRC_IMS_ParametersCommon__ext1__voiceOverSCG_BearerEUTRA_5GC_supported = 0 +} e_ASN_RRC_IMS_ParametersCommon__ext1__voiceOverSCG_BearerEUTRA_5GC; + +/* ASN_RRC_IMS-ParametersCommon */ +typedef struct ASN_RRC_IMS_ParametersCommon { + long *voiceOverEUTRA_5GC; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_IMS_ParametersCommon__ext1 { + long *voiceOverSCG_BearerEUTRA_5GC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IMS_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_voiceOverEUTRA_5GC_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_voiceOverSCG_BearerEUTRA_5GC_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_ParametersCommon_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IMS_ParametersCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.c b/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.c new file mode 100644 index 0000000..14a68e8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IMS-ParametersFRX-Diff.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_voiceOverNR_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_voiceOverNR_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_voiceOverNR_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_voiceOverNR_specs_2 = { + asn_MAP_ASN_RRC_voiceOverNR_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_voiceOverNR_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_voiceOverNR_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_ASN_RRC_voiceOverNR_2 = { + "voiceOverNR", + "voiceOverNR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_voiceOverNR_tags_2, + sizeof(asn_DEF_ASN_RRC_voiceOverNR_tags_2) + /sizeof(asn_DEF_ASN_RRC_voiceOverNR_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_voiceOverNR_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_voiceOverNR_tags_2) + /sizeof(asn_DEF_ASN_RRC_voiceOverNR_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_voiceOverNR_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_voiceOverNR_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_ParametersFRX_Diff_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_IMS_ParametersFRX_Diff, voiceOverNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_voiceOverNR_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "voiceOverNR" + }, +}; +static const int asn_MAP_ASN_RRC_IMS_ParametersFRX_Diff_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_IMS_ParametersFRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* voiceOverNR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_ParametersFRX_Diff_specs_1 = { + sizeof(struct ASN_RRC_IMS_ParametersFRX_Diff), + offsetof(struct ASN_RRC_IMS_ParametersFRX_Diff, _asn_ctx), + asn_MAP_ASN_RRC_IMS_ParametersFRX_Diff_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_IMS_ParametersFRX_Diff_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff = { + "IMS-ParametersFRX-Diff", + "IMS-ParametersFRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_IMS_ParametersFRX_Diff_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_IMS_ParametersFRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.h b/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.h new file mode 100644 index 0000000..48e467b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IMS-ParametersFRX-Diff.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IMS_ParametersFRX_Diff_H_ +#define _ASN_RRC_IMS_ParametersFRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_IMS_ParametersFRX_Diff__voiceOverNR { + ASN_RRC_IMS_ParametersFRX_Diff__voiceOverNR_supported = 0 +} e_ASN_RRC_IMS_ParametersFRX_Diff__voiceOverNR; + +/* ASN_RRC_IMS-ParametersFRX-Diff */ +typedef struct ASN_RRC_IMS_ParametersFRX_Diff { + long *voiceOverNR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IMS_ParametersFRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_voiceOverNR_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IMS_ParametersFRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IMS_ParametersFRX_Diff_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IMS_ParametersFRX_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.c b/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.c new file mode 100644 index 0000000..ddb91f0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_INT-ConfigurationPerServingCell.h" + +static int +memb_ASN_RRC_positionInDCI_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 <= 125)) { + /* Constraint 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_ASN_RRC_positionInDCI_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 125 } /* (0..125) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_INT_ConfigurationPerServingCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_INT_ConfigurationPerServingCell, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_INT_ConfigurationPerServingCell, positionInDCI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_positionInDCI_constr_3, memb_ASN_RRC_positionInDCI_constraint_1 }, + 0, 0, /* No default value */ + "positionInDCI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_INT_ConfigurationPerServingCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* positionInDCI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_INT_ConfigurationPerServingCell_specs_1 = { + sizeof(struct ASN_RRC_INT_ConfigurationPerServingCell), + offsetof(struct ASN_RRC_INT_ConfigurationPerServingCell, _asn_ctx), + asn_MAP_ASN_RRC_INT_ConfigurationPerServingCell_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell = { + "INT-ConfigurationPerServingCell", + "INT-ConfigurationPerServingCell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1, + sizeof(asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_INT_ConfigurationPerServingCell_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_INT_ConfigurationPerServingCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.h b/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.h new file mode 100644 index 0000000..2f33ee4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_INT-ConfigurationPerServingCell.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_INT_ConfigurationPerServingCell_H_ +#define _ASN_RRC_INT_ConfigurationPerServingCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_INT-ConfigurationPerServingCell */ +typedef struct ASN_RRC_INT_ConfigurationPerServingCell { + ASN_RRC_ServCellIndex_t servingCellId; + long positionInDCI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_INT_ConfigurationPerServingCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_INT_ConfigurationPerServingCell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_INT_ConfigurationPerServingCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_INT_ConfigurationPerServingCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_INT_ConfigurationPerServingCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InitialUE-Identity.c b/src/asn/rrc/ASN_RRC_InitialUE-Identity.c new file mode 100644 index 0000000..cb5dbd9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InitialUE-Identity.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InitialUE-Identity.h" + +static int +memb_ASN_RRC_ng_5G_S_TMSI_Part1_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 == 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_randomValue_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 == 39)) { + /* Constraint 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_ASN_RRC_ng_5G_S_TMSI_Part1_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 39, 39 } /* (SIZE(39..39)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_randomValue_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 39, 39 } /* (SIZE(39..39)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_InitialUE_Identity_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_ASN_RRC_InitialUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InitialUE_Identity, choice.ng_5G_S_TMSI_Part1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ng_5G_S_TMSI_Part1_constr_2, memb_ASN_RRC_ng_5G_S_TMSI_Part1_constraint_1 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI-Part1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InitialUE_Identity, choice.randomValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_randomValue_constr_3, memb_ASN_RRC_randomValue_constraint_1 }, + 0, 0, /* No default value */ + "randomValue" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_InitialUE_Identity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ng-5G-S-TMSI-Part1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* randomValue */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_InitialUE_Identity_specs_1 = { + sizeof(struct ASN_RRC_InitialUE_Identity), + offsetof(struct ASN_RRC_InitialUE_Identity, _asn_ctx), + offsetof(struct ASN_RRC_InitialUE_Identity, present), + sizeof(((struct ASN_RRC_InitialUE_Identity *)0)->present), + asn_MAP_ASN_RRC_InitialUE_Identity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InitialUE_Identity = { + "InitialUE-Identity", + "InitialUE-Identity", + &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_ASN_RRC_InitialUE_Identity_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_InitialUE_Identity_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_InitialUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InitialUE-Identity.h b/src/asn/rrc/ASN_RRC_InitialUE-Identity.h new file mode 100644 index 0000000..4ae0c9b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InitialUE-Identity.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InitialUE_Identity_H_ +#define _ASN_RRC_InitialUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_InitialUE_Identity_PR { + ASN_RRC_InitialUE_Identity_PR_NOTHING, /* No components present */ + ASN_RRC_InitialUE_Identity_PR_ng_5G_S_TMSI_Part1, + ASN_RRC_InitialUE_Identity_PR_randomValue +} ASN_RRC_InitialUE_Identity_PR; + +/* ASN_RRC_InitialUE-Identity */ +typedef struct ASN_RRC_InitialUE_Identity { + ASN_RRC_InitialUE_Identity_PR present; + union ASN_RRC_InitialUE_Identity_u { + BIT_STRING_t ng_5G_S_TMSI_Part1; + BIT_STRING_t randomValue; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InitialUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InitialUE_Identity; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_InitialUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InitialUE_Identity_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_InitialUE_Identity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InitialUE_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.c b/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.c new file mode 100644 index 0000000..9914715 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IntegrityProtAlgorithm.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_IntegrityProtAlgorithm_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_ASN_RRC_IntegrityProtAlgorithm_value2enum_1[] = { + { 0, 4, "nia0" }, + { 1, 4, "nia1" }, + { 2, 4, "nia2" }, + { 3, 4, "nia3" }, + { 4, 6, "spare4" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_IntegrityProtAlgorithm_enum2value_1[] = { + 0, /* nia0(0) */ + 1, /* nia1(1) */ + 2, /* nia2(2) */ + 3, /* nia3(3) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5, /* spare3(5) */ + 4 /* spare4(4) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_IntegrityProtAlgorithm_specs_1 = { + asn_MAP_ASN_RRC_IntegrityProtAlgorithm_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_IntegrityProtAlgorithm_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_ASN_RRC_IntegrityProtAlgorithm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntegrityProtAlgorithm = { + "IntegrityProtAlgorithm", + "IntegrityProtAlgorithm", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1, + sizeof(asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntegrityProtAlgorithm_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_IntegrityProtAlgorithm_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_IntegrityProtAlgorithm_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.h b/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.h new file mode 100644 index 0000000..a85a13e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntegrityProtAlgorithm.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IntegrityProtAlgorithm_H_ +#define _ASN_RRC_IntegrityProtAlgorithm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_IntegrityProtAlgorithm { + ASN_RRC_IntegrityProtAlgorithm_nia0 = 0, + ASN_RRC_IntegrityProtAlgorithm_nia1 = 1, + ASN_RRC_IntegrityProtAlgorithm_nia2 = 2, + ASN_RRC_IntegrityProtAlgorithm_nia3 = 3, + ASN_RRC_IntegrityProtAlgorithm_spare4 = 4, + ASN_RRC_IntegrityProtAlgorithm_spare3 = 5, + ASN_RRC_IntegrityProtAlgorithm_spare2 = 6, + ASN_RRC_IntegrityProtAlgorithm_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_IntegrityProtAlgorithm; + +/* ASN_RRC_IntegrityProtAlgorithm */ +typedef long ASN_RRC_IntegrityProtAlgorithm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_IntegrityProtAlgorithm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntegrityProtAlgorithm; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_IntegrityProtAlgorithm_specs_1; +asn_struct_free_f ASN_RRC_IntegrityProtAlgorithm_free; +asn_struct_print_f ASN_RRC_IntegrityProtAlgorithm_print; +asn_constr_check_f ASN_RRC_IntegrityProtAlgorithm_constraint; +ber_type_decoder_f ASN_RRC_IntegrityProtAlgorithm_decode_ber; +der_type_encoder_f ASN_RRC_IntegrityProtAlgorithm_encode_der; +xer_type_decoder_f ASN_RRC_IntegrityProtAlgorithm_decode_xer; +xer_type_encoder_f ASN_RRC_IntegrityProtAlgorithm_encode_xer; +per_type_decoder_f ASN_RRC_IntegrityProtAlgorithm_decode_uper; +per_type_encoder_f ASN_RRC_IntegrityProtAlgorithm_encode_uper; +per_type_decoder_f ASN_RRC_IntegrityProtAlgorithm_decode_aper; +per_type_encoder_f ASN_RRC_IntegrityProtAlgorithm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IntegrityProtAlgorithm_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.c b/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.c new file mode 100644 index 0000000..f77085b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterFreqBlackCellList.h" + +#include "ASN_RRC_PCI-Range.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqBlackCellList_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_ASN_RRC_InterFreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqBlackCellList_specs_1 = { + sizeof(struct ASN_RRC_InterFreqBlackCellList), + offsetof(struct ASN_RRC_InterFreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqBlackCellList = { + "InterFreqBlackCellList", + "InterFreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqBlackCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_InterFreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_InterFreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_InterFreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.h b/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.h new file mode 100644 index 0000000..0c97714 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqBlackCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterFreqBlackCellList_H_ +#define _ASN_RRC_InterFreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PCI_Range; + +/* ASN_RRC_InterFreqBlackCellList */ +typedef struct ASN_RRC_InterFreqBlackCellList { + A_SEQUENCE_OF(struct ASN_RRC_PCI_Range) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterFreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterFreqBlackCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.c b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.c new file mode 100644 index 0000000..e5a897b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.c @@ -0,0 +1,396 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterFreqCarrierFreqInfo.h" + +#include "ASN_RRC_MultiFrequencyBandListNR-SIB.h" +#include "ASN_RRC_ThresholdNR.h" +#include "ASN_RRC_SSB-MTC.h" +#include "ASN_RRC_SSB-ToMeasure.h" +#include "ASN_RRC_SS-RSSI-Measurement.h" +#include "ASN_RRC_SpeedStateScaleFactors.h" +#include "ASN_RRC_InterFreqNeighCellList.h" +#include "ASN_RRC_InterFreqBlackCellList.h" +static int +memb_ASN_RRC_nrofSS_BlocksToAverage_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 >= 2 && value <= 16)) { + /* Constraint 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_ASN_RRC_nrofSS_BlocksToAverage_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 2, 16 } /* (2..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_threshX_Q_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo__threshX_Q, threshX_HighQ), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo__threshX_Q, threshX_LowQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowQ" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_threshX_Q_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_threshX_Q_tag2el_20[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* threshX-HighQ */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* threshX-LowQ */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_threshX_Q_specs_20 = { + sizeof(struct ASN_RRC_InterFreqCarrierFreqInfo__threshX_Q), + offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo__threshX_Q, _asn_ctx), + asn_MAP_ASN_RRC_threshX_Q_tag2el_20, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_threshX_Q_20 = { + "threshX-Q", + "threshX-Q", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_threshX_Q_tags_20, + sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_20) + /sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_threshX_Q_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_20) + /sizeof(asn_DEF_ASN_RRC_threshX_Q_tags_20[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_threshX_Q_20, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_threshX_Q_specs_20 /* Additional specs */ +}; + +static int asn_DFL_25_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_25_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqCarrierFreqInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, dl_CarrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-CarrierFreq" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, frequencyBandListSUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListSUL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSS_BlocksToAverage_constr_5, memb_ASN_RRC_nrofSS_BlocksToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, smtc), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, deriveSSB_IndexFromCell), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deriveSSB-IndexFromCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, p_Max), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, t_ReselectionNR), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, t_ReselectionNR_SF), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR-SF" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, threshX_HighP), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, threshX_LowP), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowP" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, threshX_Q), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ASN_RRC_threshX_Q_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Q" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, q_OffsetFreq), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_25_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_25_set_15, /* Set DEFAULT 15 */ + "q-OffsetFreq" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, interFreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_InterFreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqNeighCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, interFreqBlackCellList), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_InterFreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqBlackCellList" + }, +}; +static const int asn_MAP_ASN_RRC_InterFreqCarrierFreqInfo_oms_1[] = { 1, 2, 3, 4, 5, 7, 9, 11, 12, 13, 15, 18, 19, 20, 21, 22, 23 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_InterFreqCarrierFreqInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-CarrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frequencyBandListSUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrofSS-BlocksToAverage */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* absThreshSS-BlocksConsolidation */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* smtc */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ssbSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ssb-ToMeasure */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* deriveSSB-IndexFromCell */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ss-RSSI-Measurement */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* q-RxLevMin */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* q-RxLevMinSUL */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* q-QualMin */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* p-Max */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* t-ReselectionNR */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* t-ReselectionNR-SF */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* threshX-HighP */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* threshX-LowP */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* threshX-Q */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* cellReselectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* cellReselectionSubPriority */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* q-OffsetFreq */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* interFreqNeighCellList */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 } /* interFreqBlackCellList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterFreqCarrierFreqInfo_specs_1 = { + sizeof(struct ASN_RRC_InterFreqCarrierFreqInfo), + offsetof(struct ASN_RRC_InterFreqCarrierFreqInfo, _asn_ctx), + asn_MAP_ASN_RRC_InterFreqCarrierFreqInfo_tag2el_1, + 24, /* Count of tags in the map */ + asn_MAP_ASN_RRC_InterFreqCarrierFreqInfo_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 24, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo = { + "InterFreqCarrierFreqInfo", + "InterFreqCarrierFreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_InterFreqCarrierFreqInfo_1, + 24, /* Elements count */ + &asn_SPC_ASN_RRC_InterFreqCarrierFreqInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.h b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.h new file mode 100644 index 0000000..b2d60d6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqInfo.h @@ -0,0 +1,95 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterFreqCarrierFreqInfo_H_ +#define _ASN_RRC_InterFreqCarrierFreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include "ASN_RRC_Q-RxLevMin.h" +#include "ASN_RRC_Q-QualMin.h" +#include "ASN_RRC_P-Max.h" +#include "ASN_RRC_T-Reselection.h" +#include "ASN_RRC_ReselectionThreshold.h" +#include "ASN_RRC_CellReselectionPriority.h" +#include "ASN_RRC_CellReselectionSubPriority.h" +#include "ASN_RRC_Q-OffsetRange.h" +#include "ASN_RRC_ReselectionThresholdQ.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MultiFrequencyBandListNR_SIB; +struct ASN_RRC_ThresholdNR; +struct ASN_RRC_SSB_MTC; +struct ASN_RRC_SSB_ToMeasure; +struct ASN_RRC_SS_RSSI_Measurement; +struct ASN_RRC_SpeedStateScaleFactors; +struct ASN_RRC_InterFreqNeighCellList; +struct ASN_RRC_InterFreqBlackCellList; + +/* ASN_RRC_InterFreqCarrierFreqInfo */ +typedef struct ASN_RRC_InterFreqCarrierFreqInfo { + ASN_RRC_ARFCN_ValueNR_t dl_CarrierFreq; + struct ASN_RRC_MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + struct ASN_RRC_MultiFrequencyBandListNR_SIB *frequencyBandListSUL; /* OPTIONAL */ + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + struct ASN_RRC_ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + struct ASN_RRC_SSB_MTC *smtc; /* OPTIONAL */ + ASN_RRC_SubcarrierSpacing_t ssbSubcarrierSpacing; + struct ASN_RRC_SSB_ToMeasure *ssb_ToMeasure; /* OPTIONAL */ + BOOLEAN_t deriveSSB_IndexFromCell; + struct ASN_RRC_SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + ASN_RRC_Q_RxLevMin_t q_RxLevMin; + ASN_RRC_Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + ASN_RRC_Q_QualMin_t *q_QualMin; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_Max; /* OPTIONAL */ + ASN_RRC_T_Reselection_t t_ReselectionNR; + struct ASN_RRC_SpeedStateScaleFactors *t_ReselectionNR_SF; /* OPTIONAL */ + ASN_RRC_ReselectionThreshold_t threshX_HighP; + ASN_RRC_ReselectionThreshold_t threshX_LowP; + struct ASN_RRC_InterFreqCarrierFreqInfo__threshX_Q { + ASN_RRC_ReselectionThresholdQ_t threshX_HighQ; + ASN_RRC_ReselectionThresholdQ_t threshX_LowQ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *threshX_Q; + ASN_RRC_CellReselectionPriority_t *cellReselectionPriority; /* OPTIONAL */ + ASN_RRC_CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + ASN_RRC_Q_OffsetRange_t *q_OffsetFreq; /* DEFAULT 15 */ + struct ASN_RRC_InterFreqNeighCellList *interFreqNeighCellList; /* OPTIONAL */ + struct ASN_RRC_InterFreqBlackCellList *interFreqBlackCellList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterFreqCarrierFreqInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterFreqCarrierFreqInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqCarrierFreqInfo_1[24]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterFreqCarrierFreqInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.c b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.c new file mode 100644 index 0000000..1bf36dd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterFreqCarrierFreqList.h" + +#include "ASN_RRC_InterFreqCarrierFreqInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqCarrierFreqList_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_ASN_RRC_InterFreqCarrierFreqList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_InterFreqCarrierFreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqCarrierFreqList_specs_1 = { + sizeof(struct ASN_RRC_InterFreqCarrierFreqList), + offsetof(struct ASN_RRC_InterFreqCarrierFreqList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqCarrierFreqList = { + "InterFreqCarrierFreqList", + "InterFreqCarrierFreqList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1, + sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqCarrierFreqList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_InterFreqCarrierFreqList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_InterFreqCarrierFreqList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_InterFreqCarrierFreqList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.h b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.h new file mode 100644 index 0000000..c266a2d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqCarrierFreqList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterFreqCarrierFreqList_H_ +#define _ASN_RRC_InterFreqCarrierFreqList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_InterFreqCarrierFreqInfo; + +/* ASN_RRC_InterFreqCarrierFreqList */ +typedef struct ASN_RRC_InterFreqCarrierFreqList { + A_SEQUENCE_OF(struct ASN_RRC_InterFreqCarrierFreqInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterFreqCarrierFreqList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqCarrierFreqList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqCarrierFreqList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqCarrierFreqList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqCarrierFreqList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterFreqCarrierFreqList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.c b/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.c new file mode 100644 index 0000000..c420484 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterFreqNeighCellInfo.h" + +static int +memb_ASN_RRC_q_RxLevMinOffsetCell_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 <= 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_ASN_RRC_q_RxLevMinOffsetCellSUL_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 <= 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_ASN_RRC_q_QualMinOffsetCell_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 <= 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_ASN_RRC_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_InterFreqNeighCellInfo, q_OffsetCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-OffsetCell" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_InterFreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCell_constr_4, memb_ASN_RRC_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_InterFreqNeighCellInfo, q_RxLevMinOffsetCellSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constr_5, memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCellSUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterFreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_6, memb_ASN_RRC_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_ASN_RRC_InterFreqNeighCellInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_InterFreqNeighCellInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* q-OffsetCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-RxLevMinOffsetCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* q-RxLevMinOffsetCellSUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* q-QualMinOffsetCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterFreqNeighCellInfo_specs_1 = { + sizeof(struct ASN_RRC_InterFreqNeighCellInfo), + offsetof(struct ASN_RRC_InterFreqNeighCellInfo, _asn_ctx), + asn_MAP_ASN_RRC_InterFreqNeighCellInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_InterFreqNeighCellInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqNeighCellInfo = { + "InterFreqNeighCellInfo", + "InterFreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_InterFreqNeighCellInfo_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_InterFreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.h b/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.h new file mode 100644 index 0000000..4aa22c0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqNeighCellInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterFreqNeighCellInfo_H_ +#define _ASN_RRC_InterFreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_InterFreqNeighCellInfo */ +typedef struct ASN_RRC_InterFreqNeighCellInfo { + ASN_RRC_PhysCellId_t physCellId; + ASN_RRC_Q_OffsetRange_t q_OffsetCell; + long *q_RxLevMinOffsetCell; /* OPTIONAL */ + long *q_RxLevMinOffsetCellSUL; /* OPTIONAL */ + long *q_QualMinOffsetCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterFreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterFreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqNeighCellInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterFreqNeighCellInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.c b/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.c new file mode 100644 index 0000000..eed75ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterFreqNeighCellList.h" + +#include "ASN_RRC_InterFreqNeighCellInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqNeighCellList_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_ASN_RRC_InterFreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_InterFreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqNeighCellList_specs_1 = { + sizeof(struct ASN_RRC_InterFreqNeighCellList), + offsetof(struct ASN_RRC_InterFreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqNeighCellList = { + "InterFreqNeighCellList", + "InterFreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterFreqNeighCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_InterFreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_InterFreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_InterFreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.h b/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.h new file mode 100644 index 0000000..d9b41d5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterFreqNeighCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterFreqNeighCellList_H_ +#define _ASN_RRC_InterFreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_InterFreqNeighCellInfo; + +/* ASN_RRC_InterFreqNeighCellList */ +typedef struct ASN_RRC_InterFreqNeighCellList { + A_SEQUENCE_OF(struct ASN_RRC_InterFreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterFreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterFreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_InterFreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterFreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_InterFreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterFreqNeighCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_InterRAT-Parameters.c b/src/asn/rrc/ASN_RRC_InterRAT-Parameters.c new file mode 100644 index 0000000..8a67a5d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterRAT-Parameters.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_InterRAT-Parameters.h" + +#include "ASN_RRC_EUTRA-Parameters.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_InterRAT_Parameters_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_InterRAT_Parameters, eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, +}; +static const int asn_MAP_ASN_RRC_InterRAT_Parameters_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_InterRAT_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eutra */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterRAT_Parameters_specs_1 = { + sizeof(struct ASN_RRC_InterRAT_Parameters), + offsetof(struct ASN_RRC_InterRAT_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_InterRAT_Parameters_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_InterRAT_Parameters_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterRAT_Parameters = { + "InterRAT-Parameters", + "InterRAT-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_InterRAT_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_InterRAT_Parameters_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_InterRAT_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_InterRAT-Parameters.h b/src/asn/rrc/ASN_RRC_InterRAT-Parameters.h new file mode 100644 index 0000000..c501ba0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_InterRAT-Parameters.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_InterRAT_Parameters_H_ +#define _ASN_RRC_InterRAT_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_Parameters; + +/* ASN_RRC_InterRAT-Parameters */ +typedef struct ASN_RRC_InterRAT_Parameters { + struct ASN_RRC_EUTRA_Parameters *eutra; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_InterRAT_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_InterRAT_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_InterRAT_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_InterRAT_Parameters_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_InterRAT_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.c b/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.c new file mode 100644 index 0000000..fd4e4f6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IntraFreqBlackCellList.h" + +#include "ASN_RRC_PCI-Range.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_IntraFreqBlackCellList_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_ASN_RRC_IntraFreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_IntraFreqBlackCellList_specs_1 = { + sizeof(struct ASN_RRC_IntraFreqBlackCellList), + offsetof(struct ASN_RRC_IntraFreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqBlackCellList = { + "IntraFreqBlackCellList", + "IntraFreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqBlackCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_IntraFreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_IntraFreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_IntraFreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.h b/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.h new file mode 100644 index 0000000..d4bab8e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqBlackCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IntraFreqBlackCellList_H_ +#define _ASN_RRC_IntraFreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PCI_Range; + +/* ASN_RRC_IntraFreqBlackCellList */ +typedef struct ASN_RRC_IntraFreqBlackCellList { + A_SEQUENCE_OF(struct ASN_RRC_PCI_Range) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IntraFreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_IntraFreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IntraFreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_IntraFreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IntraFreqBlackCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.c b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.c new file mode 100644 index 0000000..4144647 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IntraFreqNeighCellInfo.h" + +static int +memb_ASN_RRC_q_RxLevMinOffsetCell_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 <= 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_ASN_RRC_q_RxLevMinOffsetCellSUL_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 <= 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_ASN_RRC_q_QualMinOffsetCell_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 <= 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_ASN_RRC_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_IntraFreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, q_OffsetCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-OffsetCell" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCell_constr_4, memb_ASN_RRC_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, q_RxLevMinOffsetCellSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constr_5, memb_ASN_RRC_q_RxLevMinOffsetCellSUL_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCellSUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_QualMinOffsetCell_constr_6, memb_ASN_RRC_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_ASN_RRC_IntraFreqNeighCellInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_IntraFreqNeighCellInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* q-OffsetCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-RxLevMinOffsetCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* q-RxLevMinOffsetCellSUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* q-QualMinOffsetCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IntraFreqNeighCellInfo_specs_1 = { + sizeof(struct ASN_RRC_IntraFreqNeighCellInfo), + offsetof(struct ASN_RRC_IntraFreqNeighCellInfo, _asn_ctx), + asn_MAP_ASN_RRC_IntraFreqNeighCellInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_IntraFreqNeighCellInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqNeighCellInfo = { + "IntraFreqNeighCellInfo", + "IntraFreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_IntraFreqNeighCellInfo_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_IntraFreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.h b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.h new file mode 100644 index 0000000..5ae0977 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellInfo.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IntraFreqNeighCellInfo_H_ +#define _ASN_RRC_IntraFreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_IntraFreqNeighCellInfo */ +typedef struct ASN_RRC_IntraFreqNeighCellInfo { + ASN_RRC_PhysCellId_t physCellId; + ASN_RRC_Q_OffsetRange_t q_OffsetCell; + long *q_RxLevMinOffsetCell; /* OPTIONAL */ + long *q_RxLevMinOffsetCellSUL; /* OPTIONAL */ + long *q_QualMinOffsetCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IntraFreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_IntraFreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IntraFreqNeighCellInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IntraFreqNeighCellInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.c b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.c new file mode 100644 index 0000000..03a7e54 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_IntraFreqNeighCellList.h" + +#include "ASN_RRC_IntraFreqNeighCellInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_IntraFreqNeighCellList_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_ASN_RRC_IntraFreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_IntraFreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_IntraFreqNeighCellList_specs_1 = { + sizeof(struct ASN_RRC_IntraFreqNeighCellList), + offsetof(struct ASN_RRC_IntraFreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqNeighCellList = { + "IntraFreqNeighCellList", + "IntraFreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_IntraFreqNeighCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_IntraFreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_IntraFreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_IntraFreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.h b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.h new file mode 100644 index 0000000..41284a4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_IntraFreqNeighCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_IntraFreqNeighCellList_H_ +#define _ASN_RRC_IntraFreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_IntraFreqNeighCellInfo; + +/* ASN_RRC_IntraFreqNeighCellList */ +typedef struct ASN_RRC_IntraFreqNeighCellList { + A_SEQUENCE_OF(struct ASN_RRC_IntraFreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_IntraFreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_IntraFreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_IntraFreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_IntraFreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_IntraFreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_IntraFreqNeighCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.c b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.c new file mode 100644 index 0000000..e6a77de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_LocationMeasurementIndication-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_LocationMeasurementIndication_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_LocationMeasurementIndication_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_LocationMeasurementIndication_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LocationMeasurementIndication_IEs, measurementIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_LocationMeasurementInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementIndication" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_LocationMeasurementIndication_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_LocationMeasurementIndication_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_LocationMeasurementIndication_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_LocationMeasurementIndication_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementIndication */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementIndication_IEs_specs_1 = { + sizeof(struct ASN_RRC_LocationMeasurementIndication_IEs), + offsetof(struct ASN_RRC_LocationMeasurementIndication_IEs, _asn_ctx), + asn_MAP_ASN_RRC_LocationMeasurementIndication_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_LocationMeasurementIndication_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs = { + "LocationMeasurementIndication-IEs", + "LocationMeasurementIndication-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_LocationMeasurementIndication_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_LocationMeasurementIndication_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.h b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.h new file mode 100644 index 0000000..ba64a03 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_LocationMeasurementIndication_IEs_H_ +#define _ASN_RRC_LocationMeasurementIndication_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SetupRelease.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_LocationMeasurementIndication-IEs */ +typedef struct ASN_RRC_LocationMeasurementIndication_IEs { + ASN_RRC_SetupRelease_LocationMeasurementInfo_t measurementIndication; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_LocationMeasurementIndication_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_LocationMeasurementIndication_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementIndication_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_LocationMeasurementIndication_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_LocationMeasurementIndication_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.c b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.c new file mode 100644 index 0000000..1a7dfd4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_LocationMeasurementIndication.h" + +#include "ASN_RRC_LocationMeasurementIndication-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions, choice.locationMeasurementIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LocationMeasurementIndication_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationMeasurementIndication" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* locationMeasurementIndication */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions), + offsetof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_LocationMeasurementIndication__criticalExtensions, present), + sizeof(((struct ASN_RRC_LocationMeasurementIndication__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_LocationMeasurementIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LocationMeasurementIndication, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_LocationMeasurementIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementIndication_specs_1 = { + sizeof(struct ASN_RRC_LocationMeasurementIndication), + offsetof(struct ASN_RRC_LocationMeasurementIndication, _asn_ctx), + asn_MAP_ASN_RRC_LocationMeasurementIndication_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_ASN_RRC_LocationMeasurementIndication = { + "LocationMeasurementIndication", + "LocationMeasurementIndication", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1, + sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1) + /sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1) + /sizeof(asn_DEF_ASN_RRC_LocationMeasurementIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_LocationMeasurementIndication_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_LocationMeasurementIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.h b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.h new file mode 100644 index 0000000..3305364 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementIndication.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_LocationMeasurementIndication_H_ +#define _ASN_RRC_LocationMeasurementIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR { + ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR_locationMeasurementIndication, + ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_LocationMeasurementIndication_IEs; + +/* ASN_RRC_LocationMeasurementIndication */ +typedef struct ASN_RRC_LocationMeasurementIndication { + struct ASN_RRC_LocationMeasurementIndication__criticalExtensions { + ASN_RRC_LocationMeasurementIndication__criticalExtensions_PR present; + union ASN_RRC_LocationMeasurementIndication__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_LocationMeasurementIndication_IEs *locationMeasurementIndication; + struct ASN_RRC_LocationMeasurementIndication__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_LocationMeasurementIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LocationMeasurementIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_LocationMeasurementIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_LocationMeasurementIndication_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.c b/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.c new file mode 100644 index 0000000..7c5e616 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_LocationMeasurementInfo.h" + +#include "ASN_RRC_EUTRA-RSTD-InfoList.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_LocationMeasurementInfo_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_ASN_RRC_LocationMeasurementInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_LocationMeasurementInfo, choice.eutra_RSTD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_RSTD_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-RSTD" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LocationMeasurementInfo, choice.eutra_FineTimingDetection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-FineTimingDetection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_LocationMeasurementInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-RSTD */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-FineTimingDetection */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementInfo_specs_1 = { + sizeof(struct ASN_RRC_LocationMeasurementInfo), + offsetof(struct ASN_RRC_LocationMeasurementInfo, _asn_ctx), + offsetof(struct ASN_RRC_LocationMeasurementInfo, present), + sizeof(((struct ASN_RRC_LocationMeasurementInfo *)0)->present), + asn_MAP_ASN_RRC_LocationMeasurementInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LocationMeasurementInfo = { + "LocationMeasurementInfo", + "LocationMeasurementInfo", + &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_ASN_RRC_LocationMeasurementInfo_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_LocationMeasurementInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_LocationMeasurementInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.h b/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.h new file mode 100644 index 0000000..28b5cf7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LocationMeasurementInfo.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_LocationMeasurementInfo_H_ +#define _ASN_RRC_LocationMeasurementInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_LocationMeasurementInfo_PR { + ASN_RRC_LocationMeasurementInfo_PR_NOTHING, /* No components present */ + ASN_RRC_LocationMeasurementInfo_PR_eutra_RSTD, + /* Extensions may appear below */ + ASN_RRC_LocationMeasurementInfo_PR_eutra_FineTimingDetection +} ASN_RRC_LocationMeasurementInfo_PR; + +/* Forward declarations */ +struct ASN_RRC_EUTRA_RSTD_InfoList; + +/* ASN_RRC_LocationMeasurementInfo */ +typedef struct ASN_RRC_LocationMeasurementInfo { + ASN_RRC_LocationMeasurementInfo_PR present; + union ASN_RRC_LocationMeasurementInfo_u { + struct ASN_RRC_EUTRA_RSTD_InfoList *eutra_RSTD; + /* + * This type is extensible, + * possible extensions are below. + */ + NULL_t eutra_FineTimingDetection; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_LocationMeasurementInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LocationMeasurementInfo; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_LocationMeasurementInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_LocationMeasurementInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_LocationMeasurementInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_LocationMeasurementInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_LogicalChannelConfig.c b/src/asn/rrc/ASN_RRC_LogicalChannelConfig.c new file mode 100644 index 0000000..c484881 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LogicalChannelConfig.c @@ -0,0 +1,721 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_LogicalChannelConfig.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_priority_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_allowedServingCells_constraint_2(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 <= 31)) { + /* 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 int +memb_ASN_RRC_allowedSCS_List_constraint_2(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 <= 5)) { + /* 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 int +memb_ASN_RRC_logicalChannelGroup_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 <= 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_type_ASN_RRC_prioritisedBitRate_constr_4 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_type_ASN_RRC_bucketSizeDuration_constr_21 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_type_ASN_RRC_allowedServingCells_constr_38 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_allowedSCS_List_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxPUSCH_Duration_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_configuredGrantType1Allowed_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bitRateQueryProhibitTimer_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_priority_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_allowedServingCells_constr_38 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (SIZE(1..31)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_allowedSCS_List_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_logicalChannelGroup_constr_53 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_ASN_RRC_prioritisedBitRate_value2enum_4[] = { + { 0, 5, "kBps0" }, + { 1, 5, "kBps8" }, + { 2, 6, "kBps16" }, + { 3, 6, "kBps32" }, + { 4, 6, "kBps64" }, + { 5, 7, "kBps128" }, + { 6, 7, "kBps256" }, + { 7, 7, "kBps512" }, + { 8, 8, "kBps1024" }, + { 9, 8, "kBps2048" }, + { 10, 8, "kBps4096" }, + { 11, 8, "kBps8192" }, + { 12, 9, "kBps16384" }, + { 13, 9, "kBps32768" }, + { 14, 9, "kBps65536" }, + { 15, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_prioritisedBitRate_enum2value_4[] = { + 15, /* infinity(15) */ + 0, /* kBps0(0) */ + 8, /* kBps1024(8) */ + 5, /* kBps128(5) */ + 2, /* kBps16(2) */ + 12, /* kBps16384(12) */ + 9, /* kBps2048(9) */ + 6, /* kBps256(6) */ + 3, /* kBps32(3) */ + 13, /* kBps32768(13) */ + 10, /* kBps4096(10) */ + 7, /* kBps512(7) */ + 4, /* kBps64(4) */ + 14, /* kBps65536(14) */ + 1, /* kBps8(1) */ + 11 /* kBps8192(11) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_prioritisedBitRate_specs_4 = { + asn_MAP_ASN_RRC_prioritisedBitRate_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_prioritisedBitRate_enum2value_4, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_prioritisedBitRate_tags_4[] = { + (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_ASN_RRC_prioritisedBitRate_4 = { + "prioritisedBitRate", + "prioritisedBitRate", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_prioritisedBitRate_tags_4, + sizeof(asn_DEF_ASN_RRC_prioritisedBitRate_tags_4) + /sizeof(asn_DEF_ASN_RRC_prioritisedBitRate_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_prioritisedBitRate_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_prioritisedBitRate_tags_4) + /sizeof(asn_DEF_ASN_RRC_prioritisedBitRate_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_prioritisedBitRate_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_prioritisedBitRate_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bucketSizeDuration_value2enum_21[] = { + { 0, 3, "ms5" }, + { 1, 4, "ms10" }, + { 2, 4, "ms20" }, + { 3, 4, "ms50" }, + { 4, 5, "ms100" }, + { 5, 5, "ms150" }, + { 6, 5, "ms300" }, + { 7, 5, "ms500" }, + { 8, 6, "ms1000" }, + { 9, 6, "spare7" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_bucketSizeDuration_enum2value_21[] = { + 1, /* ms10(1) */ + 4, /* ms100(4) */ + 8, /* ms1000(8) */ + 5, /* ms150(5) */ + 2, /* ms20(2) */ + 6, /* ms300(6) */ + 0, /* ms5(0) */ + 3, /* ms50(3) */ + 7, /* ms500(7) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10, /* spare6(10) */ + 9 /* spare7(9) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bucketSizeDuration_specs_21 = { + asn_MAP_ASN_RRC_bucketSizeDuration_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bucketSizeDuration_enum2value_21, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_bucketSizeDuration_tags_21[] = { + (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_ASN_RRC_bucketSizeDuration_21 = { + "bucketSizeDuration", + "bucketSizeDuration", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bucketSizeDuration_tags_21, + sizeof(asn_DEF_ASN_RRC_bucketSizeDuration_tags_21) + /sizeof(asn_DEF_ASN_RRC_bucketSizeDuration_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bucketSizeDuration_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bucketSizeDuration_tags_21) + /sizeof(asn_DEF_ASN_RRC_bucketSizeDuration_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bucketSizeDuration_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bucketSizeDuration_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_allowedServingCells_38[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_allowedServingCells_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_allowedServingCells_specs_38 = { + sizeof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedServingCells), + offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedServingCells, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_allowedServingCells_38 = { + "allowedServingCells", + "allowedServingCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_allowedServingCells_tags_38, + sizeof(asn_DEF_ASN_RRC_allowedServingCells_tags_38) + /sizeof(asn_DEF_ASN_RRC_allowedServingCells_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_allowedServingCells_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_allowedServingCells_tags_38) + /sizeof(asn_DEF_ASN_RRC_allowedServingCells_tags_38[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_allowedServingCells_constr_38, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_allowedServingCells_38, + 1, /* Single element */ + &asn_SPC_ASN_RRC_allowedServingCells_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_allowedSCS_List_40[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_allowedSCS_List_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_allowedSCS_List_specs_40 = { + sizeof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List), + offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_allowedSCS_List_40 = { + "allowedSCS-List", + "allowedSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_allowedSCS_List_tags_40, + sizeof(asn_DEF_ASN_RRC_allowedSCS_List_tags_40) + /sizeof(asn_DEF_ASN_RRC_allowedSCS_List_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_allowedSCS_List_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_allowedSCS_List_tags_40) + /sizeof(asn_DEF_ASN_RRC_allowedSCS_List_tags_40[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_allowedSCS_List_constr_40, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_allowedSCS_List_40, + 1, /* Single element */ + &asn_SPC_ASN_RRC_allowedSCS_List_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxPUSCH_Duration_value2enum_42[] = { + { 0, 6, "ms0p02" }, + { 1, 6, "ms0p04" }, + { 2, 8, "ms0p0625" }, + { 3, 7, "ms0p125" }, + { 4, 6, "ms0p25" }, + { 5, 5, "ms0p5" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxPUSCH_Duration_enum2value_42[] = { + 0, /* ms0p02(0) */ + 1, /* ms0p04(1) */ + 2, /* ms0p0625(2) */ + 3, /* ms0p125(3) */ + 4, /* ms0p25(4) */ + 5, /* ms0p5(5) */ + 7, /* spare1(7) */ + 6 /* spare2(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxPUSCH_Duration_specs_42 = { + asn_MAP_ASN_RRC_maxPUSCH_Duration_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxPUSCH_Duration_enum2value_42, /* 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_ASN_RRC_maxPUSCH_Duration_tags_42[] = { + (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_ASN_RRC_maxPUSCH_Duration_42 = { + "maxPUSCH-Duration", + "maxPUSCH-Duration", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42, + sizeof(asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42) + /sizeof(asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42) + /sizeof(asn_DEF_ASN_RRC_maxPUSCH_Duration_tags_42[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxPUSCH_Duration_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxPUSCH_Duration_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_configuredGrantType1Allowed_value2enum_51[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_configuredGrantType1Allowed_enum2value_51[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_configuredGrantType1Allowed_specs_51 = { + asn_MAP_ASN_RRC_configuredGrantType1Allowed_value2enum_51, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_configuredGrantType1Allowed_enum2value_51, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredGrantType1Allowed_51 = { + "configuredGrantType1Allowed", + "configuredGrantType1Allowed", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51, + sizeof(asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51) + /sizeof(asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51) + /sizeof(asn_DEF_ASN_RRC_configuredGrantType1Allowed_tags_51[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_configuredGrantType1Allowed_constr_51, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_configuredGrantType1Allowed_specs_51 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bitRateQueryProhibitTimer_value2enum_58[] = { + { 0, 2, "s0" }, + { 1, 6, "s0dot4" }, + { 2, 6, "s0dot8" }, + { 3, 6, "s1dot6" }, + { 4, 2, "s3" }, + { 5, 2, "s6" }, + { 6, 3, "s12" }, + { 7, 3, "s30" } +}; +static const unsigned int asn_MAP_ASN_RRC_bitRateQueryProhibitTimer_enum2value_58[] = { + 0, /* s0(0) */ + 1, /* s0dot4(1) */ + 2, /* s0dot8(2) */ + 6, /* s12(6) */ + 3, /* s1dot6(3) */ + 4, /* s3(4) */ + 7, /* s30(7) */ + 5 /* s6(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bitRateQueryProhibitTimer_specs_58 = { + asn_MAP_ASN_RRC_bitRateQueryProhibitTimer_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bitRateQueryProhibitTimer_enum2value_58, /* 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_ASN_RRC_bitRateQueryProhibitTimer_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_58 = { + "bitRateQueryProhibitTimer", + "bitRateQueryProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58, + sizeof(asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58) + /sizeof(asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58) + /sizeof(asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bitRateQueryProhibitTimer_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bitRateQueryProhibitTimer_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ul_SpecificParameters_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_priority_constr_3, memb_ASN_RRC_priority_constraint_2 }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, prioritisedBitRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_prioritisedBitRate_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prioritisedBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, bucketSizeDuration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bucketSizeDuration_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bucketSizeDuration" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, allowedServingCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_allowedServingCells_38, + 0, + { 0, &asn_PER_memb_ASN_RRC_allowedServingCells_constr_38, memb_ASN_RRC_allowedServingCells_constraint_2 }, + 0, 0, /* No default value */ + "allowedServingCells" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, allowedSCS_List), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_allowedSCS_List_40, + 0, + { 0, &asn_PER_memb_ASN_RRC_allowedSCS_List_constr_40, memb_ASN_RRC_allowedSCS_List_constraint_2 }, + 0, 0, /* No default value */ + "allowedSCS-List" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, maxPUSCH_Duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxPUSCH_Duration_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxPUSCH-Duration" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, configuredGrantType1Allowed), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_configuredGrantType1Allowed_51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredGrantType1Allowed" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, logicalChannelGroup), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_logicalChannelGroup_constr_53, memb_ASN_RRC_logicalChannelGroup_constraint_2 }, + 0, 0, /* No default value */ + "logicalChannelGroup" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, schedulingRequestID), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, logicalChannelSR_Mask), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-Mask" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, logicalChannelSR_DelayTimerApplied), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-DelayTimerApplied" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, bitRateQueryProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bitRateQueryProhibitTimer" + }, +}; +static const int asn_MAP_ASN_RRC_ul_SpecificParameters_oms_2[] = { 3, 4, 5, 6, 7, 8, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ul_SpecificParameters_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* priority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* prioritisedBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bucketSizeDuration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* allowedServingCells */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* allowedSCS-List */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxPUSCH-Duration */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* configuredGrantType1Allowed */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* logicalChannelGroup */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* schedulingRequestID */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* logicalChannelSR-Mask */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* logicalChannelSR-DelayTimerApplied */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* bitRateQueryProhibitTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ul_SpecificParameters_specs_2 = { + sizeof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters), + offsetof(struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters, _asn_ctx), + asn_MAP_ASN_RRC_ul_SpecificParameters_tag2el_2, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ul_SpecificParameters_oms_2, /* Optional members */ + 6, 1, /* Root/Additions */ + 11, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SpecificParameters_2 = { + "ul-SpecificParameters", + "ul-SpecificParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2, + sizeof(asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2) + /sizeof(asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2) + /sizeof(asn_DEF_ASN_RRC_ul_SpecificParameters_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ul_SpecificParameters_2, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_ul_SpecificParameters_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_LogicalChannelConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_LogicalChannelConfig, ul_SpecificParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_ul_SpecificParameters_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SpecificParameters" + }, +}; +static const int asn_MAP_ASN_RRC_LogicalChannelConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_LogicalChannelConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ul-SpecificParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LogicalChannelConfig_specs_1 = { + sizeof(struct ASN_RRC_LogicalChannelConfig), + offsetof(struct ASN_RRC_LogicalChannelConfig, _asn_ctx), + asn_MAP_ASN_RRC_LogicalChannelConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_LogicalChannelConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LogicalChannelConfig = { + "LogicalChannelConfig", + "LogicalChannelConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_LogicalChannelConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_LogicalChannelConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_LogicalChannelConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_LogicalChannelConfig.h b/src/asn/rrc/ASN_RRC_LogicalChannelConfig.h new file mode 100644 index 0000000..97fcb7d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LogicalChannelConfig.h @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_LogicalChannelConfig_H_ +#define _ASN_RRC_LogicalChannelConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_SchedulingRequestId.h" +#include +#include "ASN_RRC_ServCellIndex.h" +#include +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate { + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps0 = 0, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 = 1, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps16 = 2, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps32 = 3, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps64 = 4, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps128 = 5, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps256 = 6, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps512 = 7, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps1024 = 8, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps2048 = 9, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps4096 = 10, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8192 = 11, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps16384 = 12, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps32768 = 13, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps65536 = 14, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity = 15 +} e_ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate; +typedef enum ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration { + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5 = 0, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms10 = 1, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms20 = 2, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50 = 3, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms100 = 4, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms150 = 5, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms300 = 6, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms500 = 7, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms1000 = 8, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare7 = 9, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare6 = 10, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare5 = 11, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare4 = 12, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare3 = 13, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare2 = 14, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare1 = 15 +} e_ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration; +typedef enum ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration { + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p02 = 0, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p04 = 1, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p0625 = 2, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p125 = 3, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p25 = 4, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p5 = 5, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_spare2 = 6, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_spare1 = 7 +} e_ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration; +typedef enum ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed { + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed_true = 0 +} e_ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed; +typedef enum ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer { + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0 = 0, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0dot4 = 1, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0dot8 = 2, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s1dot6 = 3, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s3 = 4, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s6 = 5, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s12 = 6, + ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s30 = 7 +} e_ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer; + +/* ASN_RRC_LogicalChannelConfig */ +typedef struct ASN_RRC_LogicalChannelConfig { + struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters { + long priority; + long prioritisedBitRate; + long bucketSizeDuration; + struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedServingCells { + A_SEQUENCE_OF(ASN_RRC_ServCellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *allowedServingCells; + struct ASN_RRC_LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List { + A_SEQUENCE_OF(ASN_RRC_SubcarrierSpacing_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *allowedSCS_List; + long *maxPUSCH_Duration; /* OPTIONAL */ + long *configuredGrantType1Allowed; /* OPTIONAL */ + long *logicalChannelGroup; /* OPTIONAL */ + ASN_RRC_SchedulingRequestId_t *schedulingRequestID; /* OPTIONAL */ + BOOLEAN_t logicalChannelSR_Mask; + BOOLEAN_t logicalChannelSR_DelayTimerApplied; + /* + * This type is extensible, + * possible extensions are below. + */ + long *bitRateQueryProhibitTimer; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ul_SpecificParameters; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_LogicalChannelConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_prioritisedBitRate_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bucketSizeDuration_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxPUSCH_Duration_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredGrantType1Allowed_51; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bitRateQueryProhibitTimer_58; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LogicalChannelConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_LogicalChannelConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_LogicalChannelConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_LogicalChannelConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.c b/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.c new file mode 100644 index 0000000..17531ed --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_LogicalChannelIdentity.h" + +int +ASN_RRC_LogicalChannelIdentity_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_ASN_RRC_LogicalChannelIdentity_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_ASN_RRC_LogicalChannelIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LogicalChannelIdentity = { + "LogicalChannelIdentity", + "LogicalChannelIdentity", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1, + sizeof(asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1) + /sizeof(asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1) + /sizeof(asn_DEF_ASN_RRC_LogicalChannelIdentity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_LogicalChannelIdentity_constr_1, ASN_RRC_LogicalChannelIdentity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.h b/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.h new file mode 100644 index 0000000..5757289 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_LogicalChannelIdentity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_LogicalChannelIdentity_H_ +#define _ASN_RRC_LogicalChannelIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_LogicalChannelIdentity */ +typedef long ASN_RRC_LogicalChannelIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_LogicalChannelIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_LogicalChannelIdentity; +asn_struct_free_f ASN_RRC_LogicalChannelIdentity_free; +asn_struct_print_f ASN_RRC_LogicalChannelIdentity_print; +asn_constr_check_f ASN_RRC_LogicalChannelIdentity_constraint; +ber_type_decoder_f ASN_RRC_LogicalChannelIdentity_decode_ber; +der_type_encoder_f ASN_RRC_LogicalChannelIdentity_encode_der; +xer_type_decoder_f ASN_RRC_LogicalChannelIdentity_decode_xer; +xer_type_encoder_f ASN_RRC_LogicalChannelIdentity_encode_xer; +per_type_decoder_f ASN_RRC_LogicalChannelIdentity_decode_uper; +per_type_encoder_f ASN_RRC_LogicalChannelIdentity_encode_uper; +per_type_decoder_f ASN_RRC_LogicalChannelIdentity_decode_aper; +per_type_encoder_f ASN_RRC_LogicalChannelIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_LogicalChannelIdentity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.c b/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.c new file mode 100644 index 0000000..405c109 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MAC-CellGroupConfig.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_SchedulingRequestConfig.h" +#include "ASN_RRC_BSR-Config.h" +#include "ASN_RRC_TAG-Config.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_9[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_CellGroupConfig__ext1, csi_Mask), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-Mask" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_CellGroupConfig__ext1, dataInactivityTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DataInactivityTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataInactivityTimer" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_9[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-Mask */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dataInactivityTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_9 = { + sizeof(struct ASN_RRC_MAC_CellGroupConfig__ext1), + offsetof(struct ASN_RRC_MAC_CellGroupConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_9, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_9, + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_9, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_CellGroupConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MAC_CellGroupConfig, drx_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-Config" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MAC_CellGroupConfig, schedulingRequestConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SchedulingRequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MAC_CellGroupConfig, bsr_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BSR_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bsr-Config" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_CellGroupConfig, tag_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TAG_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Config" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_CellGroupConfig, phr_Config), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PHR_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MAC_CellGroupConfig, skipUplinkTxDynamic), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "skipUplinkTxDynamic" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_CellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MAC_CellGroupConfig_oms_1[] = { 0, 1, 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MAC_CellGroupConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drx-Config */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* schedulingRequestConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bsr-Config */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tag-Config */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* phr-Config */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* skipUplinkTxDynamic */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_CellGroupConfig_specs_1 = { + sizeof(struct ASN_RRC_MAC_CellGroupConfig), + offsetof(struct ASN_RRC_MAC_CellGroupConfig, _asn_ctx), + asn_MAP_ASN_RRC_MAC_CellGroupConfig_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MAC_CellGroupConfig_oms_1, /* Optional members */ + 5, 1, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_CellGroupConfig = { + "MAC-CellGroupConfig", + "MAC-CellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_CellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MAC_CellGroupConfig_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_MAC_CellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.h b/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.h new file mode 100644 index 0000000..e9bf606 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-CellGroupConfig.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MAC_CellGroupConfig_H_ +#define _ASN_RRC_MAC_CellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_DRX_Config; +struct ASN_RRC_SchedulingRequestConfig; +struct ASN_RRC_BSR_Config; +struct ASN_RRC_TAG_Config; +struct ASN_RRC_SetupRelease_PHR_Config; +struct ASN_RRC_SetupRelease_DataInactivityTimer; + +/* ASN_RRC_MAC-CellGroupConfig */ +typedef struct ASN_RRC_MAC_CellGroupConfig { + struct ASN_RRC_SetupRelease_DRX_Config *drx_Config; /* OPTIONAL */ + struct ASN_RRC_SchedulingRequestConfig *schedulingRequestConfig; /* OPTIONAL */ + struct ASN_RRC_BSR_Config *bsr_Config; /* OPTIONAL */ + struct ASN_RRC_TAG_Config *tag_Config; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PHR_Config *phr_Config; /* OPTIONAL */ + BOOLEAN_t skipUplinkTxDynamic; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MAC_CellGroupConfig__ext1 { + BOOLEAN_t *csi_Mask; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_DataInactivityTimer *dataInactivityTimer; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MAC_CellGroupConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_CellGroupConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_CellGroupConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_CellGroupConfig_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MAC_CellGroupConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MAC-Parameters.c b/src/asn/rrc/ASN_RRC_MAC-Parameters.c new file mode 100644 index 0000000..e93bf19 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-Parameters.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MAC-Parameters.h" + +#include "ASN_RRC_MAC-ParametersCommon.h" +#include "ASN_RRC_MAC-ParametersXDD-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_Parameters_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_Parameters, mac_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MAC_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_Parameters, mac_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersXDD-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_MAC_Parameters_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MAC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MAC_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mac-ParametersCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mac-ParametersXDD-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_Parameters_specs_1 = { + sizeof(struct ASN_RRC_MAC_Parameters), + offsetof(struct ASN_RRC_MAC_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_MAC_Parameters_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MAC_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_Parameters = { + "MAC-Parameters", + "MAC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MAC_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_MAC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MAC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MAC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MAC_Parameters_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MAC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MAC-Parameters.h b/src/asn/rrc/ASN_RRC_MAC-Parameters.h new file mode 100644 index 0000000..d16dc10 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-Parameters.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MAC_Parameters_H_ +#define _ASN_RRC_MAC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MAC_ParametersCommon; +struct ASN_RRC_MAC_ParametersXDD_Diff; + +/* ASN_RRC_MAC-Parameters */ +typedef struct ASN_RRC_MAC_Parameters { + struct ASN_RRC_MAC_ParametersCommon *mac_ParametersCommon; /* OPTIONAL */ + struct ASN_RRC_MAC_ParametersXDD_Diff *mac_ParametersXDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MAC_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_Parameters_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MAC_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.c b/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.c new file mode 100644 index 0000000..23f68d0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.c @@ -0,0 +1,357 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MAC-ParametersCommon.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_lcp_Restriction_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_lch_ToSCellRestriction_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_recommendedBitRate_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_recommendedBitRateQuery_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_lcp_Restriction_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_lcp_Restriction_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_lcp_Restriction_specs_2 = { + asn_MAP_ASN_RRC_lcp_Restriction_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_lcp_Restriction_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_lcp_Restriction_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_ASN_RRC_lcp_Restriction_2 = { + "lcp-Restriction", + "lcp-Restriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_lcp_Restriction_tags_2, + sizeof(asn_DEF_ASN_RRC_lcp_Restriction_tags_2) + /sizeof(asn_DEF_ASN_RRC_lcp_Restriction_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_lcp_Restriction_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_lcp_Restriction_tags_2) + /sizeof(asn_DEF_ASN_RRC_lcp_Restriction_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_lcp_Restriction_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_lcp_Restriction_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_4 = { + asn_MAP_ASN_RRC_dummy_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_tags_4[] = { + (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_ASN_RRC_dummy_4 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_4, + sizeof(asn_DEF_ASN_RRC_dummy_tags_4) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_4) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_lch_ToSCellRestriction_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_lch_ToSCellRestriction_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_lch_ToSCellRestriction_specs_6 = { + asn_MAP_ASN_RRC_lch_ToSCellRestriction_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_lch_ToSCellRestriction_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6[] = { + (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_ASN_RRC_lch_ToSCellRestriction_6 = { + "lch-ToSCellRestriction", + "lch-ToSCellRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6, + sizeof(asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6) + /sizeof(asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6) + /sizeof(asn_DEF_ASN_RRC_lch_ToSCellRestriction_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_lch_ToSCellRestriction_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_lch_ToSCellRestriction_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_recommendedBitRate_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_recommendedBitRate_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_recommendedBitRate_specs_10 = { + asn_MAP_ASN_RRC_recommendedBitRate_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_recommendedBitRate_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_recommendedBitRate_tags_10[] = { + (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_ASN_RRC_recommendedBitRate_10 = { + "recommendedBitRate", + "recommendedBitRate", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_recommendedBitRate_tags_10, + sizeof(asn_DEF_ASN_RRC_recommendedBitRate_tags_10) + /sizeof(asn_DEF_ASN_RRC_recommendedBitRate_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_recommendedBitRate_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_recommendedBitRate_tags_10) + /sizeof(asn_DEF_ASN_RRC_recommendedBitRate_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_recommendedBitRate_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_recommendedBitRate_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_recommendedBitRateQuery_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_recommendedBitRateQuery_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_recommendedBitRateQuery_specs_12 = { + asn_MAP_ASN_RRC_recommendedBitRateQuery_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_recommendedBitRateQuery_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12[] = { + (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_ASN_RRC_recommendedBitRateQuery_12 = { + "recommendedBitRateQuery", + "recommendedBitRateQuery", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12, + sizeof(asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12) + /sizeof(asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12) + /sizeof(asn_DEF_ASN_RRC_recommendedBitRateQuery_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_recommendedBitRateQuery_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_recommendedBitRateQuery_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_9[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_ParametersCommon__ext1, recommendedBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_recommendedBitRate_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedBitRate" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_ParametersCommon__ext1, recommendedBitRateQuery), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_recommendedBitRateQuery_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedBitRateQuery" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_9[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* recommendedBitRate */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* recommendedBitRateQuery */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_9 = { + sizeof(struct ASN_RRC_MAC_ParametersCommon__ext1), + offsetof(struct ASN_RRC_MAC_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_9, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_9, + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_9, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_ParametersCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MAC_ParametersCommon, lcp_Restriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_lcp_Restriction_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lcp-Restriction" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MAC_ParametersCommon, dummy), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_ParametersCommon, lch_ToSCellRestriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_lch_ToSCellRestriction_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lch-ToSCellRestriction" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MAC_ParametersCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MAC_ParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lcp-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lch-ToSCellRestriction */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_ParametersCommon_specs_1 = { + sizeof(struct ASN_RRC_MAC_ParametersCommon), + offsetof(struct ASN_RRC_MAC_ParametersCommon, _asn_ctx), + asn_MAP_ASN_RRC_MAC_ParametersCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MAC_ParametersCommon_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_ParametersCommon = { + "MAC-ParametersCommon", + "MAC-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MAC_ParametersCommon_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MAC_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.h b/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.h new file mode 100644 index 0000000..326976c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-ParametersCommon.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MAC_ParametersCommon_H_ +#define _ASN_RRC_MAC_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MAC_ParametersCommon__lcp_Restriction { + ASN_RRC_MAC_ParametersCommon__lcp_Restriction_supported = 0 +} e_ASN_RRC_MAC_ParametersCommon__lcp_Restriction; +typedef enum ASN_RRC_MAC_ParametersCommon__dummy { + ASN_RRC_MAC_ParametersCommon__dummy_supported = 0 +} e_ASN_RRC_MAC_ParametersCommon__dummy; +typedef enum ASN_RRC_MAC_ParametersCommon__lch_ToSCellRestriction { + ASN_RRC_MAC_ParametersCommon__lch_ToSCellRestriction_supported = 0 +} e_ASN_RRC_MAC_ParametersCommon__lch_ToSCellRestriction; +typedef enum ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRate { + ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRate_supported = 0 +} e_ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRate; +typedef enum ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRateQuery { + ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRateQuery_supported = 0 +} e_ASN_RRC_MAC_ParametersCommon__ext1__recommendedBitRateQuery; + +/* ASN_RRC_MAC-ParametersCommon */ +typedef struct ASN_RRC_MAC_ParametersCommon { + long *lcp_Restriction; /* OPTIONAL */ + long *dummy; /* OPTIONAL */ + long *lch_ToSCellRestriction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MAC_ParametersCommon__ext1 { + long *recommendedBitRate; /* OPTIONAL */ + long *recommendedBitRateQuery; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MAC_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_lcp_Restriction_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_lch_ToSCellRestriction_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_recommendedBitRate_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_recommendedBitRateQuery_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_ParametersCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MAC_ParametersCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.c b/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.c new file mode 100644 index 0000000..5167e0b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.c @@ -0,0 +1,366 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MAC-ParametersXDD-Diff.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. + */ +/* + * 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_ASN_RRC_skipUplinkTxDynamic_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_logicalChannelSR_DelayTimer_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_longDRX_Cycle_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_shortDRX_Cycle_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_multipleSR_Configurations_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_multipleConfiguredGrants_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_skipUplinkTxDynamic_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_skipUplinkTxDynamic_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_skipUplinkTxDynamic_specs_2 = { + asn_MAP_ASN_RRC_skipUplinkTxDynamic_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_skipUplinkTxDynamic_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_skipUplinkTxDynamic_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_ASN_RRC_skipUplinkTxDynamic_2 = { + "skipUplinkTxDynamic", + "skipUplinkTxDynamic", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2, + sizeof(asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2) + /sizeof(asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2) + /sizeof(asn_DEF_ASN_RRC_skipUplinkTxDynamic_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_skipUplinkTxDynamic_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_skipUplinkTxDynamic_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_logicalChannelSR_DelayTimer_specs_4 = { + asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_logicalChannelSR_DelayTimer_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4[] = { + (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_ASN_RRC_logicalChannelSR_DelayTimer_4 = { + "logicalChannelSR-DelayTimer", + "logicalChannelSR-DelayTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4, + sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4) + /sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4) + /sizeof(asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_logicalChannelSR_DelayTimer_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_logicalChannelSR_DelayTimer_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_longDRX_Cycle_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_longDRX_Cycle_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_longDRX_Cycle_specs_6 = { + asn_MAP_ASN_RRC_longDRX_Cycle_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_longDRX_Cycle_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_longDRX_Cycle_tags_6[] = { + (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_ASN_RRC_longDRX_Cycle_6 = { + "longDRX-Cycle", + "longDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_longDRX_Cycle_tags_6, + sizeof(asn_DEF_ASN_RRC_longDRX_Cycle_tags_6) + /sizeof(asn_DEF_ASN_RRC_longDRX_Cycle_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_longDRX_Cycle_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_longDRX_Cycle_tags_6) + /sizeof(asn_DEF_ASN_RRC_longDRX_Cycle_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_longDRX_Cycle_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_longDRX_Cycle_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_shortDRX_Cycle_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_shortDRX_Cycle_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_shortDRX_Cycle_specs_8 = { + asn_MAP_ASN_RRC_shortDRX_Cycle_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_shortDRX_Cycle_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_shortDRX_Cycle_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_ASN_RRC_shortDRX_Cycle_8 = { + "shortDRX-Cycle", + "shortDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8, + sizeof(asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8) + /sizeof(asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8) + /sizeof(asn_DEF_ASN_RRC_shortDRX_Cycle_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_shortDRX_Cycle_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_shortDRX_Cycle_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multipleSR_Configurations_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multipleSR_Configurations_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multipleSR_Configurations_specs_10 = { + asn_MAP_ASN_RRC_multipleSR_Configurations_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multipleSR_Configurations_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10[] = { + (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_ASN_RRC_multipleSR_Configurations_10 = { + "multipleSR-Configurations", + "multipleSR-Configurations", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10, + sizeof(asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10) + /sizeof(asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10) + /sizeof(asn_DEF_ASN_RRC_multipleSR_Configurations_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multipleSR_Configurations_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multipleSR_Configurations_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multipleConfiguredGrants_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multipleConfiguredGrants_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multipleConfiguredGrants_specs_12 = { + asn_MAP_ASN_RRC_multipleConfiguredGrants_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multipleConfiguredGrants_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12[] = { + (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_ASN_RRC_multipleConfiguredGrants_12 = { + "multipleConfiguredGrants", + "multipleConfiguredGrants", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12, + sizeof(asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12) + /sizeof(asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12) + /sizeof(asn_DEF_ASN_RRC_multipleConfiguredGrants_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multipleConfiguredGrants_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multipleConfiguredGrants_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, skipUplinkTxDynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_skipUplinkTxDynamic_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "skipUplinkTxDynamic" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, logicalChannelSR_DelayTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-DelayTimer" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, longDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_longDRX_Cycle_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longDRX-Cycle" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, shortDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_shortDRX_Cycle_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX-Cycle" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, multipleSR_Configurations), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multipleSR_Configurations_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleSR-Configurations" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, multipleConfiguredGrants), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multipleConfiguredGrants_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleConfiguredGrants" + }, +}; +static const int asn_MAP_ASN_RRC_MAC_ParametersXDD_Diff_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MAC_ParametersXDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* skipUplinkTxDynamic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* logicalChannelSR-DelayTimer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* longDRX-Cycle */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* shortDRX-Cycle */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* multipleSR-Configurations */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* multipleConfiguredGrants */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_ParametersXDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_MAC_ParametersXDD_Diff), + offsetof(struct ASN_RRC_MAC_ParametersXDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_MAC_ParametersXDD_Diff_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MAC_ParametersXDD_Diff_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff = { + "MAC-ParametersXDD-Diff", + "MAC-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MAC_ParametersXDD_Diff_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_MAC_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.h b/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.h new file mode 100644 index 0000000..199002d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MAC-ParametersXDD-Diff.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MAC_ParametersXDD_Diff_H_ +#define _ASN_RRC_MAC_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__skipUplinkTxDynamic { + ASN_RRC_MAC_ParametersXDD_Diff__skipUplinkTxDynamic_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__skipUplinkTxDynamic; +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer { + ASN_RRC_MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer; +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__longDRX_Cycle { + ASN_RRC_MAC_ParametersXDD_Diff__longDRX_Cycle_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__longDRX_Cycle; +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__shortDRX_Cycle { + ASN_RRC_MAC_ParametersXDD_Diff__shortDRX_Cycle_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__shortDRX_Cycle; +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__multipleSR_Configurations { + ASN_RRC_MAC_ParametersXDD_Diff__multipleSR_Configurations_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__multipleSR_Configurations; +typedef enum ASN_RRC_MAC_ParametersXDD_Diff__multipleConfiguredGrants { + ASN_RRC_MAC_ParametersXDD_Diff__multipleConfiguredGrants_supported = 0 +} e_ASN_RRC_MAC_ParametersXDD_Diff__multipleConfiguredGrants; + +/* ASN_RRC_MAC-ParametersXDD-Diff */ +typedef struct ASN_RRC_MAC_ParametersXDD_Diff { + long *skipUplinkTxDynamic; /* OPTIONAL */ + long *logicalChannelSR_DelayTimer; /* OPTIONAL */ + long *longDRX_Cycle; /* OPTIONAL */ + long *shortDRX_Cycle; /* OPTIONAL */ + long *multipleSR_Configurations; /* OPTIONAL */ + long *multipleConfiguredGrants; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MAC_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_skipUplinkTxDynamic_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_logicalChannelSR_DelayTimer_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_longDRX_Cycle_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_shortDRX_Cycle_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleSR_Configurations_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleConfiguredGrants_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MAC_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MAC_ParametersXDD_Diff_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MAC_ParametersXDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.c b/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.c new file mode 100644 index 0000000..f190ff2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MCC-MNC-Digit.h" + +int +ASN_RRC_MCC_MNC_Digit_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 <= 9)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_MCC_MNC_Digit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MCC_MNC_Digit = { + "MCC-MNC-Digit", + "MCC-MNC-Digit", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1, + sizeof(asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1) + /sizeof(asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1) + /sizeof(asn_DEF_ASN_RRC_MCC_MNC_Digit_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MCC_MNC_Digit_constr_1, ASN_RRC_MCC_MNC_Digit_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.h b/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.h new file mode 100644 index 0000000..d0e8cc0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MCC-MNC-Digit.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MCC_MNC_Digit_H_ +#define _ASN_RRC_MCC_MNC_Digit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MCC-MNC-Digit */ +typedef long ASN_RRC_MCC_MNC_Digit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MCC_MNC_Digit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MCC_MNC_Digit; +asn_struct_free_f ASN_RRC_MCC_MNC_Digit_free; +asn_struct_print_f ASN_RRC_MCC_MNC_Digit_print; +asn_constr_check_f ASN_RRC_MCC_MNC_Digit_constraint; +ber_type_decoder_f ASN_RRC_MCC_MNC_Digit_decode_ber; +der_type_encoder_f ASN_RRC_MCC_MNC_Digit_encode_der; +xer_type_decoder_f ASN_RRC_MCC_MNC_Digit_decode_xer; +xer_type_encoder_f ASN_RRC_MCC_MNC_Digit_encode_xer; +per_type_decoder_f ASN_RRC_MCC_MNC_Digit_decode_uper; +per_type_encoder_f ASN_RRC_MCC_MNC_Digit_encode_uper; +per_type_decoder_f ASN_RRC_MCC_MNC_Digit_decode_aper; +per_type_encoder_f ASN_RRC_MCC_MNC_Digit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MCC_MNC_Digit_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MCC.c b/src/asn/rrc/ASN_RRC_MCC.c new file mode 100644 index 0000000..8263775 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MCC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MCC.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MCC_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 */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MCC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_MCC_MNC_Digit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MCC_specs_1 = { + sizeof(struct ASN_RRC_MCC), + offsetof(struct ASN_RRC_MCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MCC = { + "MCC", + "MCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MCC_tags_1, + sizeof(asn_DEF_ASN_RRC_MCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MCC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MCC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MCC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MCC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MCC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MCC_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MCC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MCC.h b/src/asn/rrc/ASN_RRC_MCC.h new file mode 100644 index 0000000..96629a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MCC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MCC_H_ +#define _ASN_RRC_MCC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MCC-MNC-Digit.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MCC */ +typedef struct ASN_RRC_MCC { + A_SEQUENCE_OF(ASN_RRC_MCC_MNC_Digit_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MCC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MCC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MCC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MCC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MCC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MCC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MIB.c b/src/asn/rrc/ASN_RRC_MIB.c new file mode 100644 index 0000000..4dbb78c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIB.c @@ -0,0 +1,406 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MIB.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_ASN_RRC_systemFrameNumber_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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_ssb_SubcarrierOffset_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_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_subCarrierSpacingCommon_constr_3 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_type_ASN_RRC_dmrs_TypeA_Position_constr_7 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_type_ASN_RRC_cellBarred_constr_11 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_type_ASN_RRC_intraFreqReselection_constr_14 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_ASN_RRC_systemFrameNumber_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ssb_SubcarrierOffset_constr_6 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_ASN_RRC_spare_constr_17 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_subCarrierSpacingCommon_value2enum_3[] = { + { 0, 9, "scs15or60" }, + { 1, 10, "scs30or120" } +}; +static const unsigned int asn_MAP_ASN_RRC_subCarrierSpacingCommon_enum2value_3[] = { + 0, /* scs15or60(0) */ + 1 /* scs30or120(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_subCarrierSpacingCommon_specs_3 = { + asn_MAP_ASN_RRC_subCarrierSpacingCommon_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_subCarrierSpacingCommon_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_subCarrierSpacingCommon_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_ASN_RRC_subCarrierSpacingCommon_3 = { + "subCarrierSpacingCommon", + "subCarrierSpacingCommon", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3, + sizeof(asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3) + /sizeof(asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3) + /sizeof(asn_DEF_ASN_RRC_subCarrierSpacingCommon_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_subCarrierSpacingCommon_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_subCarrierSpacingCommon_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_TypeA_Position_value2enum_7[] = { + { 0, 4, "pos2" }, + { 1, 4, "pos3" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_TypeA_Position_enum2value_7[] = { + 0, /* pos2(0) */ + 1 /* pos3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_TypeA_Position_specs_7 = { + asn_MAP_ASN_RRC_dmrs_TypeA_Position_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_TypeA_Position_enum2value_7, /* 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_ASN_RRC_dmrs_TypeA_Position_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_ASN_RRC_dmrs_TypeA_Position_7 = { + "dmrs-TypeA-Position", + "dmrs-TypeA-Position", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7, + sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7) + /sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7) + /sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_TypeA_Position_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_TypeA_Position_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cellBarred_value2enum_11[] = { + { 0, 6, "barred" }, + { 1, 9, "notBarred" } +}; +static const unsigned int asn_MAP_ASN_RRC_cellBarred_enum2value_11[] = { + 0, /* barred(0) */ + 1 /* notBarred(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cellBarred_specs_11 = { + asn_MAP_ASN_RRC_cellBarred_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cellBarred_enum2value_11, /* 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_ASN_RRC_cellBarred_tags_11[] = { + (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_ASN_RRC_cellBarred_11 = { + "cellBarred", + "cellBarred", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cellBarred_tags_11, + sizeof(asn_DEF_ASN_RRC_cellBarred_tags_11) + /sizeof(asn_DEF_ASN_RRC_cellBarred_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellBarred_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellBarred_tags_11) + /sizeof(asn_DEF_ASN_RRC_cellBarred_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cellBarred_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cellBarred_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_intraFreqReselection_value2enum_14[] = { + { 0, 7, "allowed" }, + { 1, 10, "notAllowed" } +}; +static const unsigned int asn_MAP_ASN_RRC_intraFreqReselection_enum2value_14[] = { + 0, /* allowed(0) */ + 1 /* notAllowed(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_intraFreqReselection_specs_14 = { + asn_MAP_ASN_RRC_intraFreqReselection_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_intraFreqReselection_enum2value_14, /* 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_ASN_RRC_intraFreqReselection_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraFreqReselection_14 = { + "intraFreqReselection", + "intraFreqReselection", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_intraFreqReselection_tags_14, + sizeof(asn_DEF_ASN_RRC_intraFreqReselection_tags_14) + /sizeof(asn_DEF_ASN_RRC_intraFreqReselection_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraFreqReselection_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraFreqReselection_tags_14) + /sizeof(asn_DEF_ASN_RRC_intraFreqReselection_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_intraFreqReselection_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_intraFreqReselection_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, systemFrameNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_systemFrameNumber_constr_2, memb_ASN_RRC_systemFrameNumber_constraint_1 }, + 0, 0, /* No default value */ + "systemFrameNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, subCarrierSpacingCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_subCarrierSpacingCommon_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCarrierSpacingCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, ssb_SubcarrierOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ssb_SubcarrierOffset_constr_6, memb_ASN_RRC_ssb_SubcarrierOffset_constraint_1 }, + 0, 0, /* No default value */ + "ssb-SubcarrierOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, dmrs_TypeA_Position), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_TypeA_Position_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-TypeA-Position" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, pdcch_ConfigSIB1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_ConfigSIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigSIB1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, cellBarred), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cellBarred_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBarred" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, intraFreqReselection), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_intraFreqReselection_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqReselection" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIB, spare), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_17, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* systemFrameNumber */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subCarrierSpacingCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ssb-SubcarrierOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dmrs-TypeA-Position */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pdcch-ConfigSIB1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* cellBarred */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* intraFreqReselection */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MIB_specs_1 = { + sizeof(struct ASN_RRC_MIB), + offsetof(struct ASN_RRC_MIB, _asn_ctx), + asn_MAP_ASN_RRC_MIB_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIB = { + "MIB", + "MIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MIB_tags_1, + sizeof(asn_DEF_ASN_RRC_MIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MIB_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_MIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MIB.h b/src/asn/rrc/ASN_RRC_MIB.h new file mode 100644 index 0000000..2f78f7a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIB.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MIB_H_ +#define _ASN_RRC_MIB_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "ASN_RRC_PDCCH-ConfigSIB1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MIB__subCarrierSpacingCommon { + ASN_RRC_MIB__subCarrierSpacingCommon_scs15or60 = 0, + ASN_RRC_MIB__subCarrierSpacingCommon_scs30or120 = 1 +} e_ASN_RRC_MIB__subCarrierSpacingCommon; +typedef enum ASN_RRC_MIB__dmrs_TypeA_Position { + ASN_RRC_MIB__dmrs_TypeA_Position_pos2 = 0, + ASN_RRC_MIB__dmrs_TypeA_Position_pos3 = 1 +} e_ASN_RRC_MIB__dmrs_TypeA_Position; +typedef enum ASN_RRC_MIB__cellBarred { + ASN_RRC_MIB__cellBarred_barred = 0, + ASN_RRC_MIB__cellBarred_notBarred = 1 +} e_ASN_RRC_MIB__cellBarred; +typedef enum ASN_RRC_MIB__intraFreqReselection { + ASN_RRC_MIB__intraFreqReselection_allowed = 0, + ASN_RRC_MIB__intraFreqReselection_notAllowed = 1 +} e_ASN_RRC_MIB__intraFreqReselection; + +/* ASN_RRC_MIB */ +typedef struct ASN_RRC_MIB { + BIT_STRING_t systemFrameNumber; + long subCarrierSpacingCommon; + long ssb_SubcarrierOffset; + long dmrs_TypeA_Position; + ASN_RRC_PDCCH_ConfigSIB1_t pdcch_ConfigSIB1; + long cellBarred; + long intraFreqReselection; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subCarrierSpacingCommon_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_TypeA_Position_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellBarred_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraFreqReselection_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MIB_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MIMO-LayersDL.c b/src/asn/rrc/ASN_RRC_MIMO-LayersDL.c new file mode 100644 index 0000000..49a5fa9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-LayersDL.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MIMO-LayersDL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_MIMO_LayersDL_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_ASN_RRC_MIMO_LayersDL_value2enum_1[] = { + { 0, 9, "twoLayers" }, + { 1, 10, "fourLayers" }, + { 2, 11, "eightLayers" } +}; +static const unsigned int asn_MAP_ASN_RRC_MIMO_LayersDL_enum2value_1[] = { + 2, /* eightLayers(2) */ + 1, /* fourLayers(1) */ + 0 /* twoLayers(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MIMO_LayersDL_specs_1 = { + asn_MAP_ASN_RRC_MIMO_LayersDL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_MIMO_LayersDL_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_ASN_RRC_MIMO_LayersDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_LayersDL = { + "MIMO-LayersDL", + "MIMO-LayersDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1, + sizeof(asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_LayersDL_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MIMO_LayersDL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_MIMO_LayersDL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MIMO-LayersDL.h b/src/asn/rrc/ASN_RRC_MIMO-LayersDL.h new file mode 100644 index 0000000..31de100 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-LayersDL.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MIMO_LayersDL_H_ +#define _ASN_RRC_MIMO_LayersDL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MIMO_LayersDL { + ASN_RRC_MIMO_LayersDL_twoLayers = 0, + ASN_RRC_MIMO_LayersDL_fourLayers = 1, + ASN_RRC_MIMO_LayersDL_eightLayers = 2 +} e_ASN_RRC_MIMO_LayersDL; + +/* ASN_RRC_MIMO-LayersDL */ +typedef long ASN_RRC_MIMO_LayersDL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MIMO_LayersDL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_LayersDL; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MIMO_LayersDL_specs_1; +asn_struct_free_f ASN_RRC_MIMO_LayersDL_free; +asn_struct_print_f ASN_RRC_MIMO_LayersDL_print; +asn_constr_check_f ASN_RRC_MIMO_LayersDL_constraint; +ber_type_decoder_f ASN_RRC_MIMO_LayersDL_decode_ber; +der_type_encoder_f ASN_RRC_MIMO_LayersDL_encode_der; +xer_type_decoder_f ASN_RRC_MIMO_LayersDL_decode_xer; +xer_type_encoder_f ASN_RRC_MIMO_LayersDL_encode_xer; +per_type_decoder_f ASN_RRC_MIMO_LayersDL_decode_uper; +per_type_encoder_f ASN_RRC_MIMO_LayersDL_encode_uper; +per_type_decoder_f ASN_RRC_MIMO_LayersDL_decode_aper; +per_type_encoder_f ASN_RRC_MIMO_LayersDL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MIMO_LayersDL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MIMO-LayersUL.c b/src/asn/rrc/ASN_RRC_MIMO-LayersUL.c new file mode 100644 index 0000000..33fb6a1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-LayersUL.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MIMO-LayersUL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_MIMO_LayersUL_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_ASN_RRC_MIMO_LayersUL_value2enum_1[] = { + { 0, 8, "oneLayer" }, + { 1, 9, "twoLayers" }, + { 2, 10, "fourLayers" } +}; +static const unsigned int asn_MAP_ASN_RRC_MIMO_LayersUL_enum2value_1[] = { + 2, /* fourLayers(2) */ + 0, /* oneLayer(0) */ + 1 /* twoLayers(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MIMO_LayersUL_specs_1 = { + asn_MAP_ASN_RRC_MIMO_LayersUL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_MIMO_LayersUL_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_ASN_RRC_MIMO_LayersUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_LayersUL = { + "MIMO-LayersUL", + "MIMO-LayersUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1, + sizeof(asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_LayersUL_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MIMO_LayersUL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_MIMO_LayersUL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MIMO-LayersUL.h b/src/asn/rrc/ASN_RRC_MIMO-LayersUL.h new file mode 100644 index 0000000..8b77046 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-LayersUL.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MIMO_LayersUL_H_ +#define _ASN_RRC_MIMO_LayersUL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MIMO_LayersUL { + ASN_RRC_MIMO_LayersUL_oneLayer = 0, + ASN_RRC_MIMO_LayersUL_twoLayers = 1, + ASN_RRC_MIMO_LayersUL_fourLayers = 2 +} e_ASN_RRC_MIMO_LayersUL; + +/* ASN_RRC_MIMO-LayersUL */ +typedef long ASN_RRC_MIMO_LayersUL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MIMO_LayersUL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_LayersUL; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MIMO_LayersUL_specs_1; +asn_struct_free_f ASN_RRC_MIMO_LayersUL_free; +asn_struct_print_f ASN_RRC_MIMO_LayersUL_print; +asn_constr_check_f ASN_RRC_MIMO_LayersUL_constraint; +ber_type_decoder_f ASN_RRC_MIMO_LayersUL_decode_ber; +der_type_encoder_f ASN_RRC_MIMO_LayersUL_encode_der; +xer_type_decoder_f ASN_RRC_MIMO_LayersUL_decode_xer; +xer_type_encoder_f ASN_RRC_MIMO_LayersUL_encode_xer; +per_type_decoder_f ASN_RRC_MIMO_LayersUL_decode_uper; +per_type_encoder_f ASN_RRC_MIMO_LayersUL_encode_uper; +per_type_decoder_f ASN_RRC_MIMO_LayersUL_decode_aper; +per_type_encoder_f ASN_RRC_MIMO_LayersUL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MIMO_LayersUL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.c b/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.c new file mode 100644 index 0000000..3c4b06f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.c @@ -0,0 +1,2458 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MIMO-ParametersPerBand.h" + +#include "ASN_RRC_DummyG.h" +#include "ASN_RRC_SRS-Resources.h" +#include "ASN_RRC_DummyH.h" +#include "ASN_RRC_PTRS-DensityRecommendationDL.h" +#include "ASN_RRC_PTRS-DensityRecommendationUL.h" +#include "ASN_RRC_BeamManagementSSB-CSI-RS.h" +#include "ASN_RRC_CodebookParameters.h" +#include "ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h" +#include "ASN_RRC_CSI-RS-ProcFrameworkForSRS.h" +#include "ASN_RRC_CSI-ReportFramework.h" +#include "ASN_RRC_CSI-RS-ForTracking.h" +#include "ASN_RRC_SpatialRelations.h" +#include "ASN_RRC_SupportedCSI-RS-Resource.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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxNumberSRS_ResourceSet_constraint_60(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_srs_AssocCSI_RS_constraint_108(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 <= 7)) { + /* 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 int +memb_ASN_RRC_maxNumberRxBeam_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 >= 2 && 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 int +memb_ASN_RRC_maxNumberCSI_RS_BFD_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxNumberSSB_BFD_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxNumberCSI_RS_SSB_CBD_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 <= 256)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_dummy3_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 <= 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_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberActiveTCI_PerBWP_constr_10 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_type_ASN_RRC_additionalActiveTCI_StatePDCCH_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_TransCoherence_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_periodicBeamReport_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_aperiodicBeamReport_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_BeamReportPUCCH_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_BeamReportPUSCH_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_15kHz_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_30kHz_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_60kHz_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_120kHz_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_240kHz_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_maxNumberNonGroupBeamReporting_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_groupBeamReporting_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_constr_61 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_ASN_RRC_maxNumberSRS_ResourceSet_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_dummy2_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoPortsPTRS_UL_constr_72 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_15kHz_constr_77 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_30kHz_constr_81 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_type_ASN_RRC_scs_60kHz_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_scs_120kHz_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_aperiodicTRS_constr_105 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy6_constr_109 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_60kHz_constr_113 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_scs_120kHz_constr_119 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_srs_AssocCSI_RS_constr_130 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_srs_AssocCSI_RS_constr_130 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 7 } /* (SIZE(1..7)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberRxBeam_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 2, 8 } /* (2..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_BFD_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSSB_BFD_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberCSI_RS_SSB_CBD_constr_69 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (1..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dummy3_constr_75 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_value2enum_3[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n16" }, + { 3, 3, "n32" }, + { 4, 3, "n64" }, + { 5, 4, "n128" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_enum2value_3[] = { + 5, /* n128(5) */ + 2, /* n16(2) */ + 3, /* n32(3) */ + 0, /* n4(0) */ + 4, /* n64(4) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_specs_3 = { + asn_MAP_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_enum2value_3, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3[] = { + (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_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_3 = { + "maxNumberConfiguredTCIstatesPerCC", + "maxNumberConfiguredTCIstatesPerCC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3, + sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3) + /sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3) + /sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberActiveTCI_PerBWP_value2enum_10[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberActiveTCI_PerBWP_enum2value_10[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberActiveTCI_PerBWP_specs_10 = { + asn_MAP_ASN_RRC_maxNumberActiveTCI_PerBWP_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberActiveTCI_PerBWP_enum2value_10, /* 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_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10[] = { + (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_ASN_RRC_maxNumberActiveTCI_PerBWP_10 = { + "maxNumberActiveTCI-PerBWP", + "maxNumberActiveTCI-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10, + sizeof(asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10) + /sizeof(asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10) + /sizeof(asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberActiveTCI_PerBWP_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberActiveTCI_PerBWP_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_tci_StatePDSCH_2[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH, maxNumberConfiguredTCIstatesPerCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberConfiguredTCIstatesPerCC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH, maxNumberActiveTCI_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberActiveTCI-PerBWP" + }, +}; +static const int asn_MAP_ASN_RRC_tci_StatePDSCH_oms_2[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_tci_StatePDSCH_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberConfiguredTCIstatesPerCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxNumberActiveTCI-PerBWP */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_tci_StatePDSCH_specs_2 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH, _asn_ctx), + asn_MAP_ASN_RRC_tci_StatePDSCH_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_tci_StatePDSCH_oms_2, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_StatePDSCH_2 = { + "tci-StatePDSCH", + "tci-StatePDSCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2, + sizeof(asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_tci_StatePDSCH_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_tci_StatePDSCH_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_tci_StatePDSCH_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_additionalActiveTCI_StatePDCCH_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_additionalActiveTCI_StatePDCCH_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_additionalActiveTCI_StatePDCCH_specs_15 = { + asn_MAP_ASN_RRC_additionalActiveTCI_StatePDCCH_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_additionalActiveTCI_StatePDCCH_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15[] = { + (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_ASN_RRC_additionalActiveTCI_StatePDCCH_15 = { + "additionalActiveTCI-StatePDCCH", + "additionalActiveTCI-StatePDCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15, + sizeof(asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15) + /sizeof(asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15) + /sizeof(asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_additionalActiveTCI_StatePDCCH_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_additionalActiveTCI_StatePDCCH_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_TransCoherence_value2enum_17[] = { + { 0, 11, "nonCoherent" }, + { 1, 15, "partialCoherent" }, + { 2, 12, "fullCoherent" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_TransCoherence_enum2value_17[] = { + 2, /* fullCoherent(2) */ + 0, /* nonCoherent(0) */ + 1 /* partialCoherent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_TransCoherence_specs_17 = { + asn_MAP_ASN_RRC_pusch_TransCoherence_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_TransCoherence_enum2value_17, /* 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_ASN_RRC_pusch_TransCoherence_tags_17[] = { + (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_ASN_RRC_pusch_TransCoherence_17 = { + "pusch-TransCoherence", + "pusch-TransCoherence", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17, + sizeof(asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17) + /sizeof(asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17) + /sizeof(asn_DEF_ASN_RRC_pusch_TransCoherence_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_TransCoherence_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_TransCoherence_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_value2enum_21[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_enum2value_21[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_specs_21 = { + asn_MAP_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_enum2value_21, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21[] = { + (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_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_21 = { + "beamCorrespondenceWithoutUL-BeamSweeping", + "beamCorrespondenceWithoutUL-BeamSweeping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21, + sizeof(asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21) + /sizeof(asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21) + /sizeof(asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicBeamReport_value2enum_23[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicBeamReport_enum2value_23[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicBeamReport_specs_23 = { + asn_MAP_ASN_RRC_periodicBeamReport_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicBeamReport_enum2value_23, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodicBeamReport_tags_23[] = { + (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_ASN_RRC_periodicBeamReport_23 = { + "periodicBeamReport", + "periodicBeamReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicBeamReport_tags_23, + sizeof(asn_DEF_ASN_RRC_periodicBeamReport_tags_23) + /sizeof(asn_DEF_ASN_RRC_periodicBeamReport_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicBeamReport_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicBeamReport_tags_23) + /sizeof(asn_DEF_ASN_RRC_periodicBeamReport_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicBeamReport_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicBeamReport_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aperiodicBeamReport_value2enum_25[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_aperiodicBeamReport_enum2value_25[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aperiodicBeamReport_specs_25 = { + asn_MAP_ASN_RRC_aperiodicBeamReport_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aperiodicBeamReport_enum2value_25, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25[] = { + (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_ASN_RRC_aperiodicBeamReport_25 = { + "aperiodicBeamReport", + "aperiodicBeamReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25, + sizeof(asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25) + /sizeof(asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25) + /sizeof(asn_DEF_ASN_RRC_aperiodicBeamReport_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aperiodicBeamReport_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aperiodicBeamReport_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_BeamReportPUCCH_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_BeamReportPUCCH_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_BeamReportPUCCH_specs_27 = { + asn_MAP_ASN_RRC_sp_BeamReportPUCCH_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_BeamReportPUCCH_enum2value_27, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_BeamReportPUCCH_27 = { + "sp-BeamReportPUCCH", + "sp-BeamReportPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27, + sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27) + /sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27) + /sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUCCH_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_BeamReportPUCCH_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_BeamReportPUCCH_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_BeamReportPUSCH_value2enum_29[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_BeamReportPUSCH_enum2value_29[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_BeamReportPUSCH_specs_29 = { + asn_MAP_ASN_RRC_sp_BeamReportPUSCH_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_BeamReportPUSCH_enum2value_29, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_BeamReportPUSCH_29 = { + "sp-BeamReportPUSCH", + "sp-BeamReportPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29, + sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29) + /sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29) + /sizeof(asn_DEF_ASN_RRC_sp_BeamReportPUSCH_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_BeamReportPUSCH_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_BeamReportPUSCH_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_15kHz_value2enum_34[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_15kHz_enum2value_34[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_15kHz_specs_34 = { + asn_MAP_ASN_RRC_scs_15kHz_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_15kHz_enum2value_34, /* 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_ASN_RRC_scs_15kHz_tags_34[] = { + (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_ASN_RRC_scs_15kHz_34 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_15kHz_tags_34, + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_15kHz_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_34) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_15kHz_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_15kHz_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_30kHz_value2enum_38[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_30kHz_enum2value_38[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_30kHz_specs_38 = { + asn_MAP_ASN_RRC_scs_30kHz_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_30kHz_enum2value_38, /* 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_ASN_RRC_scs_30kHz_tags_38[] = { + (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_ASN_RRC_scs_30kHz_38 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_30kHz_tags_38, + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_38) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_30kHz_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_38) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_38[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_30kHz_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_30kHz_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_42[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_42[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_42 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_42, /* 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_ASN_RRC_scs_60kHz_tags_42[] = { + (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_ASN_RRC_scs_60kHz_42 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_42, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_42) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_42) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_42[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_46[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_46[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_46 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_46, /* 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_ASN_RRC_scs_120kHz_tags_46[] = { + (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_ASN_RRC_scs_120kHz_46 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_46, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_46) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_46) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_46[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_240kHz_value2enum_50[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_240kHz_enum2value_50[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_240kHz_specs_50 = { + asn_MAP_ASN_RRC_scs_240kHz_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_240kHz_enum2value_50, /* 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_ASN_RRC_scs_240kHz_tags_50[] = { + (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_ASN_RRC_scs_240kHz_50 = { + "scs-240kHz", + "scs-240kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_240kHz_tags_50, + sizeof(asn_DEF_ASN_RRC_scs_240kHz_tags_50) + /sizeof(asn_DEF_ASN_RRC_scs_240kHz_tags_50[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_240kHz_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_240kHz_tags_50) + /sizeof(asn_DEF_ASN_RRC_scs_240kHz_tags_50[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_240kHz_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_240kHz_specs_50 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_maxNumberRxTxBeamSwitchDL_33[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_15kHz_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_30kHz_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_240kHz), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_240kHz_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-240kHz" + }, +}; +static const int asn_MAP_ASN_RRC_maxNumberRxTxBeamSwitchDL_oms_33[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_maxNumberRxTxBeamSwitchDL_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* scs-120kHz */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* scs-240kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_maxNumberRxTxBeamSwitchDL_specs_33 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, _asn_ctx), + asn_MAP_ASN_RRC_maxNumberRxTxBeamSwitchDL_tag2el_33, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_maxNumberRxTxBeamSwitchDL_oms_33, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_33 = { + "maxNumberRxTxBeamSwitchDL", + "maxNumberRxTxBeamSwitchDL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33, + sizeof(asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33) + /sizeof(asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33) + /sizeof(asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_tags_33[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_maxNumberRxTxBeamSwitchDL_33, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_maxNumberRxTxBeamSwitchDL_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberNonGroupBeamReporting_value2enum_54[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberNonGroupBeamReporting_enum2value_54[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberNonGroupBeamReporting_specs_54 = { + asn_MAP_ASN_RRC_maxNumberNonGroupBeamReporting_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberNonGroupBeamReporting_enum2value_54, /* 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_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_54 = { + "maxNumberNonGroupBeamReporting", + "maxNumberNonGroupBeamReporting", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54, + sizeof(asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54) + /sizeof(asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54) + /sizeof(asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberNonGroupBeamReporting_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberNonGroupBeamReporting_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_groupBeamReporting_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_groupBeamReporting_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_groupBeamReporting_specs_58 = { + asn_MAP_ASN_RRC_groupBeamReporting_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_groupBeamReporting_enum2value_58, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_groupBeamReporting_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupBeamReporting_58 = { + "groupBeamReporting", + "groupBeamReporting", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_groupBeamReporting_tags_58, + sizeof(asn_DEF_ASN_RRC_groupBeamReporting_tags_58) + /sizeof(asn_DEF_ASN_RRC_groupBeamReporting_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_groupBeamReporting_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_groupBeamReporting_tags_58) + /sizeof(asn_DEF_ASN_RRC_groupBeamReporting_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_groupBeamReporting_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_groupBeamReporting_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_value2enum_61[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_enum2value_61[] = { + 3, /* n16(3) */ + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_specs_61 = { + asn_MAP_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_value2enum_61, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_enum2value_61, /* 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_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61[] = { + (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_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_61 = { + "maxNumberSRS-ResourcePerSet-BM", + "maxNumberSRS-ResourcePerSet-BM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61, + sizeof(asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61) + /sizeof(asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61) + /sizeof(asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_tags_61[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_constr_61, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uplinkBeamManagement_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement, maxNumberSRS_ResourcePerSet_BM), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourcePerSet-BM" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement, maxNumberSRS_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSRS_ResourceSet_constr_66, memb_ASN_RRC_maxNumberSRS_ResourceSet_constraint_60 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_uplinkBeamManagement_tag2el_60[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSRS-ResourcePerSet-BM */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxNumberSRS-ResourceSet */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_uplinkBeamManagement_specs_60 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement, _asn_ctx), + asn_MAP_ASN_RRC_uplinkBeamManagement_tag2el_60, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkBeamManagement_60 = { + "uplinkBeamManagement", + "uplinkBeamManagement", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60, + sizeof(asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60) + /sizeof(asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60) + /sizeof(asn_DEF_ASN_RRC_uplinkBeamManagement_tags_60[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_uplinkBeamManagement_60, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_uplinkBeamManagement_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy2_value2enum_70[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy2_enum2value_70[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy2_specs_70 = { + asn_MAP_ASN_RRC_dummy2_value2enum_70, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy2_enum2value_70, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy2_tags_70[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy2_70 = { + "dummy2", + "dummy2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy2_tags_70, + sizeof(asn_DEF_ASN_RRC_dummy2_tags_70) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_70[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy2_tags_70, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy2_tags_70) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_70[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy2_constr_70, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy2_specs_70 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPortsPTRS_UL_value2enum_72[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPortsPTRS_UL_enum2value_72[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPortsPTRS_UL_specs_72 = { + asn_MAP_ASN_RRC_twoPortsPTRS_UL_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPortsPTRS_UL_enum2value_72, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPortsPTRS_UL_72 = { + "twoPortsPTRS-UL", + "twoPortsPTRS-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72, + sizeof(asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72) + /sizeof(asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72) + /sizeof(asn_DEF_ASN_RRC_twoPortsPTRS_UL_tags_72[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPortsPTRS_UL_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPortsPTRS_UL_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_15kHz_value2enum_77[] = { + { 0, 4, "sym2" }, + { 1, 4, "sym4" }, + { 2, 4, "sym8" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_15kHz_enum2value_77[] = { + 0, /* sym2(0) */ + 1, /* sym4(1) */ + 2 /* sym8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_15kHz_specs_77 = { + asn_MAP_ASN_RRC_scs_15kHz_value2enum_77, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_15kHz_enum2value_77, /* 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_ASN_RRC_scs_15kHz_tags_77[] = { + (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_ASN_RRC_scs_15kHz_77 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_15kHz_tags_77, + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_77) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_77[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_15kHz_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_77) + /sizeof(asn_DEF_ASN_RRC_scs_15kHz_tags_77[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_15kHz_constr_77, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_15kHz_specs_77 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_30kHz_value2enum_81[] = { + { 0, 4, "sym4" }, + { 1, 4, "sym8" }, + { 2, 5, "sym14" }, + { 3, 5, "sym28" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_30kHz_enum2value_81[] = { + 2, /* sym14(2) */ + 3, /* sym28(3) */ + 0, /* sym4(0) */ + 1 /* sym8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_30kHz_specs_81 = { + asn_MAP_ASN_RRC_scs_30kHz_value2enum_81, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_30kHz_enum2value_81, /* 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_ASN_RRC_scs_30kHz_tags_81[] = { + (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_ASN_RRC_scs_30kHz_81 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_30kHz_tags_81, + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_81) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_81[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_30kHz_tags_81, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_81) + /sizeof(asn_DEF_ASN_RRC_scs_30kHz_tags_81[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_30kHz_constr_81, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_30kHz_specs_81 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_86[] = { + { 0, 4, "sym8" }, + { 1, 5, "sym14" }, + { 2, 5, "sym28" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_86[] = { + 1, /* sym14(1) */ + 2, /* sym28(2) */ + 0 /* sym8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_86 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_86, /* 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_ASN_RRC_scs_60kHz_tags_86[] = { + (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_ASN_RRC_scs_60kHz_86 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_86, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_86) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_86[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_86, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_86) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_86[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_90[] = { + { 0, 5, "sym14" }, + { 1, 5, "sym28" }, + { 2, 5, "sym56" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_90[] = { + 0, /* sym14(0) */ + 1, /* sym28(1) */ + 2 /* sym56(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_90 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_90, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_90, /* 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_ASN_RRC_scs_120kHz_tags_90[] = { + (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_ASN_RRC_scs_120kHz_90 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_90, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_90) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_90[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_90, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_90) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_90[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_90, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_90 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_beamReportTiming_76[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_15kHz_77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_30kHz_81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_beamReportTiming_oms_76[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_beamReportTiming_tags_76[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_beamReportTiming_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_beamReportTiming_specs_76 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming, _asn_ctx), + asn_MAP_ASN_RRC_beamReportTiming_tag2el_76, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_beamReportTiming_oms_76, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamReportTiming_76 = { + "beamReportTiming", + "beamReportTiming", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_beamReportTiming_tags_76, + sizeof(asn_DEF_ASN_RRC_beamReportTiming_tags_76) + /sizeof(asn_DEF_ASN_RRC_beamReportTiming_tags_76[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamReportTiming_tags_76, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamReportTiming_tags_76) + /sizeof(asn_DEF_ASN_RRC_beamReportTiming_tags_76[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_beamReportTiming_76, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_beamReportTiming_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ptrs_DensityRecommendationSetDL_94[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetDL_oms_94[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetDL_tag2el_94[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ptrs_DensityRecommendationSetDL_specs_94 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, _asn_ctx), + asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetDL_tag2el_94, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetDL_oms_94, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_94 = { + "ptrs-DensityRecommendationSetDL", + "ptrs-DensityRecommendationSetDL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94, + sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94) + /sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94) + /sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_tags_94[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ptrs_DensityRecommendationSetDL_94, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ptrs_DensityRecommendationSetDL_specs_94 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ptrs_DensityRecommendationSetUL_99[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetUL_oms_99[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99[] = { + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetUL_tag2el_99[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-15kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-30kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ptrs_DensityRecommendationSetUL_specs_99 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, _asn_ctx), + asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetUL_tag2el_99, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ptrs_DensityRecommendationSetUL_oms_99, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_99 = { + "ptrs-DensityRecommendationSetUL", + "ptrs-DensityRecommendationSetUL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99, + sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99) + /sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99) + /sizeof(asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_tags_99[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ptrs_DensityRecommendationSetUL_99, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ptrs_DensityRecommendationSetUL_specs_99 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aperiodicTRS_value2enum_105[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_aperiodicTRS_enum2value_105[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aperiodicTRS_specs_105 = { + asn_MAP_ASN_RRC_aperiodicTRS_value2enum_105, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aperiodicTRS_enum2value_105, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodicTRS_tags_105[] = { + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodicTRS_105 = { + "aperiodicTRS", + "aperiodicTRS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aperiodicTRS_tags_105, + sizeof(asn_DEF_ASN_RRC_aperiodicTRS_tags_105) + /sizeof(asn_DEF_ASN_RRC_aperiodicTRS_tags_105[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodicTRS_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodicTRS_tags_105) + /sizeof(asn_DEF_ASN_RRC_aperiodicTRS_tags_105[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aperiodicTRS_constr_105, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aperiodicTRS_specs_105 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy6_value2enum_109[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy6_enum2value_109[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy6_specs_109 = { + asn_MAP_ASN_RRC_dummy6_value2enum_109, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy6_enum2value_109, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy6_tags_109[] = { + (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_ASN_RRC_dummy6_109 = { + "dummy6", + "dummy6", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy6_tags_109, + sizeof(asn_DEF_ASN_RRC_dummy6_tags_109) + /sizeof(asn_DEF_ASN_RRC_dummy6_tags_109[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy6_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy6_tags_109) + /sizeof(asn_DEF_ASN_RRC_dummy6_tags_109[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy6_constr_109, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy6_specs_109 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_113[] = { + { 0, 5, "sym14" }, + { 1, 5, "sym28" }, + { 2, 5, "sym48" }, + { 3, 6, "sym224" }, + { 4, 6, "sym336" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_113[] = { + 0, /* sym14(0) */ + 3, /* sym224(3) */ + 1, /* sym28(1) */ + 4, /* sym336(4) */ + 2 /* sym48(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_113 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_113, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_113, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_scs_60kHz_tags_113[] = { + (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_ASN_RRC_scs_60kHz_113 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_113, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_113) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_113[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_113) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_113[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_113, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_113 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_120kHz_value2enum_119[] = { + { 0, 5, "sym14" }, + { 1, 5, "sym28" }, + { 2, 5, "sym48" }, + { 3, 6, "sym224" }, + { 4, 6, "sym336" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_120kHz_enum2value_119[] = { + 0, /* sym14(0) */ + 3, /* sym224(3) */ + 1, /* sym28(1) */ + 4, /* sym336(4) */ + 2 /* sym48(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_120kHz_specs_119 = { + asn_MAP_ASN_RRC_scs_120kHz_value2enum_119, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_120kHz_enum2value_119, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_scs_120kHz_tags_119[] = { + (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_ASN_RRC_scs_120kHz_119 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_120kHz_tags_119, + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_119) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_119[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_120kHz_tags_119, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_119) + /sizeof(asn_DEF_ASN_RRC_scs_120kHz_tags_119[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_120kHz_constr_119, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_120kHz_specs_119 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_beamSwitchTiming_112[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_120kHz_119, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ASN_RRC_beamSwitchTiming_oms_112[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_beamSwitchTiming_tags_112[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_beamSwitchTiming_tag2el_112[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scs-120kHz */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_beamSwitchTiming_specs_112 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming, _asn_ctx), + asn_MAP_ASN_RRC_beamSwitchTiming_tag2el_112, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_beamSwitchTiming_oms_112, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamSwitchTiming_112 = { + "beamSwitchTiming", + "beamSwitchTiming", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_beamSwitchTiming_tags_112, + sizeof(asn_DEF_ASN_RRC_beamSwitchTiming_tags_112) + /sizeof(asn_DEF_ASN_RRC_beamSwitchTiming_tags_112[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamSwitchTiming_tags_112, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamSwitchTiming_tags_112) + /sizeof(asn_DEF_ASN_RRC_beamSwitchTiming_tags_112[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_beamSwitchTiming_112, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_beamSwitchTiming_specs_112 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_AssocCSI_RS_130[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SupportedCSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_AssocCSI_RS_specs_130 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__srs_AssocCSI_RS), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1__srs_AssocCSI_RS, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_AssocCSI_RS_130 = { + "srs-AssocCSI-RS", + "srs-AssocCSI-RS", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130, + sizeof(asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130) + /sizeof(asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130) + /sizeof(asn_DEF_ASN_RRC_srs_AssocCSI_RS_tags_130[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_AssocCSI_RS_constr_130, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_AssocCSI_RS_130, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_AssocCSI_RS_specs_130 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_108[] = { + { ATF_POINTER, 10, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, dummy6), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy6_109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy6" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, beamManagementSSB_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BeamManagementSSB_CSI_RS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamManagementSSB-CSI-RS" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, beamSwitchTiming), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_beamSwitchTiming_112, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamSwitchTiming" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, codebookParameters), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CodebookParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookParameters" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, csi_RS_IM_ReceptionForFeedback), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-IM-ReceptionForFeedback" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, csi_RS_ProcFrameworkForSRS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ProcFrameworkForSRS" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, csi_ReportFramework), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportFramework, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportFramework" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, csi_RS_ForTracking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ForTracking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ForTracking" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, srs_AssocCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_AssocCSI_RS_130, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_AssocCSI_RS_constr_130, memb_ASN_RRC_srs_AssocCSI_RS_constraint_108 }, + 0, 0, /* No default value */ + "srs-AssocCSI-RS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, spatialRelations), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SpatialRelations, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spatialRelations" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_108[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_108[] = { + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_108[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dummy6 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* beamManagementSSB-CSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* beamSwitchTiming */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* codebookParameters */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* csi-RS-IM-ReceptionForFeedback */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* csi-RS-ProcFrameworkForSRS */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* csi-ReportFramework */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* csi-RS-ForTracking */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* srs-AssocCSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* spatialRelations */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_108 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand__ext1), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_108, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_108, /* Optional members */ + 10, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_108 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_108, + sizeof(asn_DEF_ASN_RRC_ext1_tags_108) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_108[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_108, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_108) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_108[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_108, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_108 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MIMO_ParametersPerBand_1[] = { + { ATF_POINTER, 27, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, tci_StatePDSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_tci_StatePDSCH_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-StatePDSCH" + }, + { ATF_POINTER, 26, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, additionalActiveTCI_StatePDCCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalActiveTCI-StatePDCCH" + }, + { ATF_POINTER, 25, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, pusch_TransCoherence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_TransCoherence_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TransCoherence" + }, + { ATF_POINTER, 24, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, beamCorrespondenceWithoutUL_BeamSweeping), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamCorrespondenceWithoutUL-BeamSweeping" + }, + { ATF_POINTER, 23, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, periodicBeamReport), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicBeamReport_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicBeamReport" + }, + { ATF_POINTER, 22, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, aperiodicBeamReport), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aperiodicBeamReport_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicBeamReport" + }, + { ATF_POINTER, 21, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, sp_BeamReportPUCCH), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_BeamReportPUCCH_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-BeamReportPUCCH" + }, + { ATF_POINTER, 20, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, sp_BeamReportPUSCH), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_BeamReportPUSCH_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-BeamReportPUSCH" + }, + { ATF_POINTER, 19, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, dummy1), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DummyG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_POINTER, 18, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberRxBeam), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberRxBeam_constr_32, memb_ASN_RRC_maxNumberRxBeam_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberRxBeam" + }, + { ATF_POINTER, 17, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberRxTxBeamSwitchDL), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_maxNumberRxTxBeamSwitchDL_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberRxTxBeamSwitchDL" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberNonGroupBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberNonGroupBeamReporting" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, groupBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_groupBeamReporting_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBeamReporting" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, uplinkBeamManagement), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkBeamManagement_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBeamManagement" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberCSI_RS_BFD), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_BFD_constr_67, memb_ASN_RRC_maxNumberCSI_RS_BFD_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-BFD" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberSSB_BFD), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSSB_BFD_constr_68, memb_ASN_RRC_maxNumberSSB_BFD_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSSB-BFD" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, maxNumberCSI_RS_SSB_CBD), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberCSI_RS_SSB_CBD_constr_69, memb_ASN_RRC_maxNumberCSI_RS_SSB_CBD_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-SSB-CBD" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, dummy2), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy2_70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy2" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, twoPortsPTRS_UL), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPortsPTRS_UL_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPortsPTRS-UL" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, dummy5), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_Resources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy5" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, dummy3), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy3_constr_75, memb_ASN_RRC_dummy3_constraint_1 }, + 0, 0, /* No default value */ + "dummy3" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, beamReportTiming), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + 0, + &asn_DEF_ASN_RRC_beamReportTiming_76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamReportTiming" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, ptrs_DensityRecommendationSetDL), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + 0, + &asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetDL_94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-DensityRecommendationSetDL" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, ptrs_DensityRecommendationSetUL), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + 0, + &asn_DEF_ASN_RRC_ptrs_DensityRecommendationSetUL_99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-DensityRecommendationSetUL" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, dummy4), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DummyH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy4" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, aperiodicTRS), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aperiodicTRS_105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicTRS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MIMO_ParametersPerBand, ext1), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MIMO_ParametersPerBand_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MIMO_ParametersPerBand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tci-StatePDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalActiveTCI-StatePDCCH */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pusch-TransCoherence */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* beamCorrespondenceWithoutUL-BeamSweeping */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* periodicBeamReport */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* aperiodicBeamReport */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sp-BeamReportPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sp-BeamReportPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* dummy1 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* maxNumberRxBeam */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* maxNumberRxTxBeamSwitchDL */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* maxNumberNonGroupBeamReporting */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* groupBeamReporting */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* uplinkBeamManagement */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* maxNumberCSI-RS-BFD */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* maxNumberSSB-BFD */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* maxNumberCSI-RS-SSB-CBD */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* dummy2 */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* twoPortsPTRS-UL */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* dummy5 */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* dummy3 */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* beamReportTiming */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* ptrs-DensityRecommendationSetDL */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* ptrs-DensityRecommendationSetUL */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* dummy4 */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* aperiodicTRS */ + { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MIMO_ParametersPerBand_specs_1 = { + sizeof(struct ASN_RRC_MIMO_ParametersPerBand), + offsetof(struct ASN_RRC_MIMO_ParametersPerBand, _asn_ctx), + asn_MAP_ASN_RRC_MIMO_ParametersPerBand_tag2el_1, + 27, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MIMO_ParametersPerBand_oms_1, /* Optional members */ + 26, 1, /* Root/Additions */ + 26, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_ParametersPerBand = { + "MIMO-ParametersPerBand", + "MIMO-ParametersPerBand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1, + sizeof(asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1) + /sizeof(asn_DEF_ASN_RRC_MIMO_ParametersPerBand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MIMO_ParametersPerBand_1, + 27, /* Elements count */ + &asn_SPC_ASN_RRC_MIMO_ParametersPerBand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.h b/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.h new file mode 100644 index 0000000..135b2f9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MIMO-ParametersPerBand.h @@ -0,0 +1,310 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MIMO_ParametersPerBand_H_ +#define _ASN_RRC_MIMO_ParametersPerBand_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC { + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n8 = 1, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n16 = 2, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n32 = 3, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n64 = 4, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n128 = 5 +} e_ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC; +typedef enum ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP { + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n1 = 0, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n2 = 1, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n4 = 2, + ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n8 = 3 +} e_ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP; +typedef enum ASN_RRC_MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH { + ASN_RRC_MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH; +typedef enum ASN_RRC_MIMO_ParametersPerBand__pusch_TransCoherence { + ASN_RRC_MIMO_ParametersPerBand__pusch_TransCoherence_nonCoherent = 0, + ASN_RRC_MIMO_ParametersPerBand__pusch_TransCoherence_partialCoherent = 1, + ASN_RRC_MIMO_ParametersPerBand__pusch_TransCoherence_fullCoherent = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__pusch_TransCoherence; +typedef enum ASN_RRC_MIMO_ParametersPerBand__beamCorrespondenceWithoutUL_BeamSweeping { + ASN_RRC_MIMO_ParametersPerBand__beamCorrespondenceWithoutUL_BeamSweeping_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__beamCorrespondenceWithoutUL_BeamSweeping; +typedef enum ASN_RRC_MIMO_ParametersPerBand__periodicBeamReport { + ASN_RRC_MIMO_ParametersPerBand__periodicBeamReport_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__periodicBeamReport; +typedef enum ASN_RRC_MIMO_ParametersPerBand__aperiodicBeamReport { + ASN_RRC_MIMO_ParametersPerBand__aperiodicBeamReport_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__aperiodicBeamReport; +typedef enum ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUCCH { + ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUCCH_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUCCH; +typedef enum ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUSCH { + ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUSCH_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__sp_BeamReportPUSCH; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz { + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n7 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n14 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz { + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n7 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n14 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz { + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n7 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n14 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz { + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n7 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n14 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz { + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n4 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n7 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n14 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting { + ASN_RRC_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n1 = 0, + ASN_RRC_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n2 = 1, + ASN_RRC_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n4 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting; +typedef enum ASN_RRC_MIMO_ParametersPerBand__groupBeamReporting { + ASN_RRC_MIMO_ParametersPerBand__groupBeamReporting_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__groupBeamReporting; +typedef enum ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM { + ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n2 = 0, + ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n4 = 1, + ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n8 = 2, + ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n16 = 3 +} e_ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM; +typedef enum ASN_RRC_MIMO_ParametersPerBand__dummy2 { + ASN_RRC_MIMO_ParametersPerBand__dummy2_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__dummy2; +typedef enum ASN_RRC_MIMO_ParametersPerBand__twoPortsPTRS_UL { + ASN_RRC_MIMO_ParametersPerBand__twoPortsPTRS_UL_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__twoPortsPTRS_UL; +typedef enum ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz { + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym2 = 0, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym4 = 1, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym8 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz { + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym4 = 0, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym8 = 1, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym14 = 2, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym28 = 3 +} e_ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz { + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym8 = 0, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym14 = 1, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym28 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz { + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym14 = 0, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym28 = 1, + ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym56 = 2 +} e_ASN_RRC_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__aperiodicTRS { + ASN_RRC_MIMO_ParametersPerBand__aperiodicTRS_supported = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__aperiodicTRS; +typedef enum ASN_RRC_MIMO_ParametersPerBand__ext1__dummy6 { + ASN_RRC_MIMO_ParametersPerBand__ext1__dummy6_true = 0 +} e_ASN_RRC_MIMO_ParametersPerBand__ext1__dummy6; +typedef enum ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz { + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz_sym14 = 0, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz_sym28 = 1, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz_sym48 = 2, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz_sym224 = 3, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz_sym336 = 4 +} e_ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_60kHz; +typedef enum ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz { + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz_sym14 = 0, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz_sym28 = 1, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz_sym48 = 2, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz_sym224 = 3, + ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz_sym336 = 4 +} e_ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming__scs_120kHz; + +/* Forward declarations */ +struct ASN_RRC_DummyG; +struct ASN_RRC_SRS_Resources; +struct ASN_RRC_DummyH; +struct ASN_RRC_PTRS_DensityRecommendationDL; +struct ASN_RRC_PTRS_DensityRecommendationUL; +struct ASN_RRC_BeamManagementSSB_CSI_RS; +struct ASN_RRC_CodebookParameters; +struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback; +struct ASN_RRC_CSI_RS_ProcFrameworkForSRS; +struct ASN_RRC_CSI_ReportFramework; +struct ASN_RRC_CSI_RS_ForTracking; +struct ASN_RRC_SpatialRelations; +struct ASN_RRC_SupportedCSI_RS_Resource; + +/* ASN_RRC_MIMO-ParametersPerBand */ +typedef struct ASN_RRC_MIMO_ParametersPerBand { + struct ASN_RRC_MIMO_ParametersPerBand__tci_StatePDSCH { + long *maxNumberConfiguredTCIstatesPerCC; /* OPTIONAL */ + long *maxNumberActiveTCI_PerBWP; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatePDSCH; + long *additionalActiveTCI_StatePDCCH; /* OPTIONAL */ + long *pusch_TransCoherence; /* OPTIONAL */ + long *beamCorrespondenceWithoutUL_BeamSweeping; /* OPTIONAL */ + long *periodicBeamReport; /* OPTIONAL */ + long *aperiodicBeamReport; /* OPTIONAL */ + long *sp_BeamReportPUCCH; /* OPTIONAL */ + long *sp_BeamReportPUSCH; /* OPTIONAL */ + struct ASN_RRC_DummyG *dummy1; /* OPTIONAL */ + long *maxNumberRxBeam; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL { + long *scs_15kHz; /* OPTIONAL */ + long *scs_30kHz; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + long *scs_240kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *maxNumberRxTxBeamSwitchDL; + long *maxNumberNonGroupBeamReporting; /* OPTIONAL */ + long *groupBeamReporting; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand__uplinkBeamManagement { + long maxNumberSRS_ResourcePerSet_BM; + long maxNumberSRS_ResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkBeamManagement; + long *maxNumberCSI_RS_BFD; /* OPTIONAL */ + long *maxNumberSSB_BFD; /* OPTIONAL */ + long *maxNumberCSI_RS_SSB_CBD; /* OPTIONAL */ + long *dummy2; /* OPTIONAL */ + long *twoPortsPTRS_UL; /* OPTIONAL */ + struct ASN_RRC_SRS_Resources *dummy5; /* OPTIONAL */ + long *dummy3; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand__beamReportTiming { + long *scs_15kHz; /* OPTIONAL */ + long *scs_30kHz; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *beamReportTiming; + struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL { + struct ASN_RRC_PTRS_DensityRecommendationDL *scs_15kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationDL *scs_30kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationDL *scs_60kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationDL *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ptrs_DensityRecommendationSetDL; + struct ASN_RRC_MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL { + struct ASN_RRC_PTRS_DensityRecommendationUL *scs_15kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationUL *scs_30kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationUL *scs_60kHz; /* OPTIONAL */ + struct ASN_RRC_PTRS_DensityRecommendationUL *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ptrs_DensityRecommendationSetUL; + struct ASN_RRC_DummyH *dummy4; /* OPTIONAL */ + long *aperiodicTRS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MIMO_ParametersPerBand__ext1 { + long *dummy6; /* OPTIONAL */ + struct ASN_RRC_BeamManagementSSB_CSI_RS *beamManagementSSB_CSI_RS; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand__ext1__beamSwitchTiming { + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *beamSwitchTiming; + struct ASN_RRC_CodebookParameters *codebookParameters; /* OPTIONAL */ + struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback *csi_RS_IM_ReceptionForFeedback; /* OPTIONAL */ + struct ASN_RRC_CSI_RS_ProcFrameworkForSRS *csi_RS_ProcFrameworkForSRS; /* OPTIONAL */ + struct ASN_RRC_CSI_ReportFramework *csi_ReportFramework; /* OPTIONAL */ + struct ASN_RRC_CSI_RS_ForTracking *csi_RS_ForTracking; /* OPTIONAL */ + struct ASN_RRC_MIMO_ParametersPerBand__ext1__srs_AssocCSI_RS { + A_SEQUENCE_OF(struct ASN_RRC_SupportedCSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_AssocCSI_RS; + struct ASN_RRC_SpatialRelations *spatialRelations; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MIMO_ParametersPerBand_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberConfiguredTCIstatesPerCC_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberActiveTCI_PerBWP_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_additionalActiveTCI_StatePDCCH_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_TransCoherence_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamCorrespondenceWithoutUL_BeamSweeping_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicBeamReport_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodicBeamReport_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_BeamReportPUCCH_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_BeamReportPUSCH_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_15kHz_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_30kHz_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_240kHz_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberNonGroupBeamReporting_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupBeamReporting_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSRS_ResourcePerSet_BM_61; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy2_70; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPortsPTRS_UL_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_15kHz_77; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_30kHz_81; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_90; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodicTRS_105; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy6_109; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_113; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_120kHz_119; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MIMO_ParametersPerBand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MIMO_ParametersPerBand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MIMO_ParametersPerBand_1[27]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MIMO_ParametersPerBand_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MNC.c b/src/asn/rrc/ASN_RRC_MNC.c new file mode 100644 index 0000000..c32b7da --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MNC.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MNC.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MNC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 1, 1, 2, 3 } /* (SIZE(2..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MNC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_MCC_MNC_Digit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MNC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MNC_specs_1 = { + sizeof(struct ASN_RRC_MNC), + offsetof(struct ASN_RRC_MNC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MNC = { + "MNC", + "MNC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MNC_tags_1, + sizeof(asn_DEF_ASN_RRC_MNC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MNC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MNC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MNC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MNC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MNC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MNC_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MNC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MNC.h b/src/asn/rrc/ASN_RRC_MNC.h new file mode 100644 index 0000000..dc5de6b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MNC.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MNC_H_ +#define _ASN_RRC_MNC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MCC-MNC-Digit.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MNC */ +typedef struct ASN_RRC_MNC { + A_SEQUENCE_OF(ASN_RRC_MCC_MNC_Digit_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MNC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MNC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MNC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MNC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MNC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MNC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.c b/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.c new file mode 100644 index 0000000..8d72bf7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MRDC-AssistanceInfo.h" + +#include "ASN_RRC_AffectedCarrierFreqCombInfoMRDC.h" +static int +memb_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_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 <= 128)) { + /* 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_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_constr_2 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_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_AffectedCarrierFreqCombInfoMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_specs_2 = { + sizeof(struct ASN_RRC_MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC), + offsetof(struct ASN_RRC_MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_2 = { + "affectedCarrierFreqCombInfoListMRDC", + "affectedCarrierFreqCombInfoListMRDC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2, + sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2) + /sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2) + /sizeof(asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_AssistanceInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MRDC_AssistanceInfo, affectedCarrierFreqCombInfoListMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_constr_2, memb_ASN_RRC_affectedCarrierFreqCombInfoListMRDC_constraint_1 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombInfoListMRDC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MRDC_AssistanceInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* affectedCarrierFreqCombInfoListMRDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_AssistanceInfo_specs_1 = { + sizeof(struct ASN_RRC_MRDC_AssistanceInfo), + offsetof(struct ASN_RRC_MRDC_AssistanceInfo, _asn_ctx), + asn_MAP_ASN_RRC_MRDC_AssistanceInfo_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_ASN_RRC_MRDC_AssistanceInfo = { + "MRDC-AssistanceInfo", + "MRDC-AssistanceInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_AssistanceInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MRDC_AssistanceInfo_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MRDC_AssistanceInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.h b/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.h new file mode 100644 index 0000000..fa59a79 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-AssistanceInfo.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MRDC_AssistanceInfo_H_ +#define _ASN_RRC_MRDC_AssistanceInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC; + +/* ASN_RRC_MRDC-AssistanceInfo */ +typedef struct ASN_RRC_MRDC_AssistanceInfo { + struct ASN_RRC_MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC { + A_SEQUENCE_OF(struct ASN_RRC_AffectedCarrierFreqCombInfoMRDC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } affectedCarrierFreqCombInfoListMRDC; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MRDC_AssistanceInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MRDC_AssistanceInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_AssistanceInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_AssistanceInfo_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MRDC_AssistanceInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MRDC-Parameters.c b/src/asn/rrc/ASN_RRC_MRDC-Parameters.c new file mode 100644 index 0000000..a462ef6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-Parameters.c @@ -0,0 +1,635 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MRDC-Parameters.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_singleUL_Transmission_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicPowerSharing_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tdm_Pattern_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ul_SharingEUTRA_NR_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_ul_SwitchingTimeEUTRA_NR_constr_12 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_type_ASN_RRC_simultaneousRxTxInterBandENDC_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_asyncIntraBandENDC_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dualPA_Architecture_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_intraBandENDC_Support_v1540_constr_23 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_type_ASN_RRC_ul_TimingAlignmentEUTRA_NR_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_singleUL_Transmission_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_singleUL_Transmission_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_singleUL_Transmission_specs_2 = { + asn_MAP_ASN_RRC_singleUL_Transmission_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_singleUL_Transmission_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_singleUL_Transmission_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_ASN_RRC_singleUL_Transmission_2 = { + "singleUL-Transmission", + "singleUL-Transmission", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_singleUL_Transmission_tags_2, + sizeof(asn_DEF_ASN_RRC_singleUL_Transmission_tags_2) + /sizeof(asn_DEF_ASN_RRC_singleUL_Transmission_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_singleUL_Transmission_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_singleUL_Transmission_tags_2) + /sizeof(asn_DEF_ASN_RRC_singleUL_Transmission_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_singleUL_Transmission_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_singleUL_Transmission_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicPowerSharing_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicPowerSharing_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicPowerSharing_specs_4 = { + asn_MAP_ASN_RRC_dynamicPowerSharing_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicPowerSharing_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4[] = { + (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_ASN_RRC_dynamicPowerSharing_4 = { + "dynamicPowerSharing", + "dynamicPowerSharing", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4, + sizeof(asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4) + /sizeof(asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4) + /sizeof(asn_DEF_ASN_RRC_dynamicPowerSharing_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicPowerSharing_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicPowerSharing_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tdm_Pattern_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_tdm_Pattern_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tdm_Pattern_specs_6 = { + asn_MAP_ASN_RRC_tdm_Pattern_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tdm_Pattern_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tdm_Pattern_tags_6[] = { + (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_ASN_RRC_tdm_Pattern_6 = { + "tdm-Pattern", + "tdm-Pattern", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tdm_Pattern_tags_6, + sizeof(asn_DEF_ASN_RRC_tdm_Pattern_tags_6) + /sizeof(asn_DEF_ASN_RRC_tdm_Pattern_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tdm_Pattern_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tdm_Pattern_tags_6) + /sizeof(asn_DEF_ASN_RRC_tdm_Pattern_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tdm_Pattern_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tdm_Pattern_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_SharingEUTRA_NR_value2enum_8[] = { + { 0, 3, "tdm" }, + { 1, 3, "fdm" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_SharingEUTRA_NR_enum2value_8[] = { + 2, /* both(2) */ + 1, /* fdm(1) */ + 0 /* tdm(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_SharingEUTRA_NR_specs_8 = { + asn_MAP_ASN_RRC_ul_SharingEUTRA_NR_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_SharingEUTRA_NR_enum2value_8, /* 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_ASN_RRC_ul_SharingEUTRA_NR_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_ASN_RRC_ul_SharingEUTRA_NR_8 = { + "ul-SharingEUTRA-NR", + "ul-SharingEUTRA-NR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8, + sizeof(asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8) + /sizeof(asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8) + /sizeof(asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_SharingEUTRA_NR_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_SharingEUTRA_NR_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_SwitchingTimeEUTRA_NR_value2enum_12[] = { + { 0, 5, "type1" }, + { 1, 5, "type2" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_SwitchingTimeEUTRA_NR_enum2value_12[] = { + 0, /* type1(0) */ + 1 /* type2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_SwitchingTimeEUTRA_NR_specs_12 = { + asn_MAP_ASN_RRC_ul_SwitchingTimeEUTRA_NR_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_SwitchingTimeEUTRA_NR_enum2value_12, /* 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_ASN_RRC_ul_SwitchingTimeEUTRA_NR_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_ASN_RRC_ul_SwitchingTimeEUTRA_NR_12 = { + "ul-SwitchingTimeEUTRA-NR", + "ul-SwitchingTimeEUTRA-NR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12, + sizeof(asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12) + /sizeof(asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12) + /sizeof(asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_SwitchingTimeEUTRA_NR_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_SwitchingTimeEUTRA_NR_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousRxTxInterBandENDC_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRxTxInterBandENDC_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRxTxInterBandENDC_specs_15 = { + asn_MAP_ASN_RRC_simultaneousRxTxInterBandENDC_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRxTxInterBandENDC_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15[] = { + (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_ASN_RRC_simultaneousRxTxInterBandENDC_15 = { + "simultaneousRxTxInterBandENDC", + "simultaneousRxTxInterBandENDC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15, + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRxTxInterBandENDC_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRxTxInterBandENDC_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_asyncIntraBandENDC_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_asyncIntraBandENDC_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_asyncIntraBandENDC_specs_17 = { + asn_MAP_ASN_RRC_asyncIntraBandENDC_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_asyncIntraBandENDC_enum2value_17, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_asyncIntraBandENDC_17 = { + "asyncIntraBandENDC", + "asyncIntraBandENDC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17, + sizeof(asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17) + /sizeof(asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17) + /sizeof(asn_DEF_ASN_RRC_asyncIntraBandENDC_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_asyncIntraBandENDC_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_asyncIntraBandENDC_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dualPA_Architecture_value2enum_21[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dualPA_Architecture_enum2value_21[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dualPA_Architecture_specs_21 = { + asn_MAP_ASN_RRC_dualPA_Architecture_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dualPA_Architecture_enum2value_21, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dualPA_Architecture_tags_21[] = { + (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_ASN_RRC_dualPA_Architecture_21 = { + "dualPA-Architecture", + "dualPA-Architecture", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dualPA_Architecture_tags_21, + sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_21) + /sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dualPA_Architecture_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_21) + /sizeof(asn_DEF_ASN_RRC_dualPA_Architecture_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dualPA_Architecture_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dualPA_Architecture_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_intraBandENDC_Support_v1540_value2enum_23[] = { + { 0, 14, "non-contiguous" }, + { 1, 4, "both" } +}; +static const unsigned int asn_MAP_ASN_RRC_intraBandENDC_Support_v1540_enum2value_23[] = { + 1, /* both(1) */ + 0 /* non-contiguous(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_intraBandENDC_Support_v1540_specs_23 = { + asn_MAP_ASN_RRC_intraBandENDC_Support_v1540_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_intraBandENDC_Support_v1540_enum2value_23, /* 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_ASN_RRC_intraBandENDC_Support_v1540_tags_23[] = { + (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_ASN_RRC_intraBandENDC_Support_v1540_23 = { + "intraBandENDC-Support-v1540", + "intraBandENDC-Support-v1540", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23, + sizeof(asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23) + /sizeof(asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23) + /sizeof(asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_intraBandENDC_Support_v1540_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_intraBandENDC_Support_v1540_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_TimingAlignmentEUTRA_NR_value2enum_26[] = { + { 0, 8, "required" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_TimingAlignmentEUTRA_NR_enum2value_26[] = { + 0 /* required(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_TimingAlignmentEUTRA_NR_specs_26 = { + asn_MAP_ASN_RRC_ul_TimingAlignmentEUTRA_NR_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_TimingAlignmentEUTRA_NR_enum2value_26, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26[] = { + (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_ASN_RRC_ul_TimingAlignmentEUTRA_NR_26 = { + "ul-TimingAlignmentEUTRA-NR", + "ul-TimingAlignmentEUTRA-NR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26, + sizeof(asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26) + /sizeof(asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26) + /sizeof(asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_TimingAlignmentEUTRA_NR_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_TimingAlignmentEUTRA_NR_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_20[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MRDC_Parameters__ext1, dualPA_Architecture), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dualPA_Architecture_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dualPA-Architecture" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MRDC_Parameters__ext1, intraBandENDC_Support_v1540), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraBandENDC-Support-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MRDC_Parameters__ext1, ul_TimingAlignmentEUTRA_NR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-TimingAlignmentEUTRA-NR" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_20[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_20[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dualPA-Architecture */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intraBandENDC-Support-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-TimingAlignmentEUTRA-NR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_20 = { + sizeof(struct ASN_RRC_MRDC_Parameters__ext1), + offsetof(struct ASN_RRC_MRDC_Parameters__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_20, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_20, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_20 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_20, + sizeof(asn_DEF_ASN_RRC_ext1_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_20[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_20, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_Parameters_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_MRDC_Parameters, singleUL_Transmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_singleUL_Transmission_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "singleUL-Transmission" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MRDC_Parameters, dynamicPowerSharing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicPowerSharing_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicPowerSharing" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MRDC_Parameters, tdm_Pattern), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tdm_Pattern_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdm-Pattern" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MRDC_Parameters, ul_SharingEUTRA_NR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SharingEUTRA-NR" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MRDC_Parameters, ul_SwitchingTimeEUTRA_NR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SwitchingTimeEUTRA-NR" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MRDC_Parameters, simultaneousRxTxInterBandENDC), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxInterBandENDC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MRDC_Parameters, asyncIntraBandENDC), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_asyncIntraBandENDC_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "asyncIntraBandENDC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MRDC_Parameters, ext1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MRDC_Parameters_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MRDC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MRDC_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* singleUL-Transmission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dynamicPowerSharing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tdm-Pattern */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ul-SharingEUTRA-NR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ul-SwitchingTimeEUTRA-NR */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* simultaneousRxTxInterBandENDC */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* asyncIntraBandENDC */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_Parameters_specs_1 = { + sizeof(struct ASN_RRC_MRDC_Parameters), + offsetof(struct ASN_RRC_MRDC_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_MRDC_Parameters_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MRDC_Parameters_oms_1, /* Optional members */ + 7, 1, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MRDC_Parameters = { + "MRDC-Parameters", + "MRDC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MRDC_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_MRDC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MRDC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MRDC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MRDC_Parameters_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_MRDC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MRDC-Parameters.h b/src/asn/rrc/ASN_RRC_MRDC-Parameters.h new file mode 100644 index 0000000..9210fd9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-Parameters.h @@ -0,0 +1,104 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MRDC_Parameters_H_ +#define _ASN_RRC_MRDC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MRDC_Parameters__singleUL_Transmission { + ASN_RRC_MRDC_Parameters__singleUL_Transmission_supported = 0 +} e_ASN_RRC_MRDC_Parameters__singleUL_Transmission; +typedef enum ASN_RRC_MRDC_Parameters__dynamicPowerSharing { + ASN_RRC_MRDC_Parameters__dynamicPowerSharing_supported = 0 +} e_ASN_RRC_MRDC_Parameters__dynamicPowerSharing; +typedef enum ASN_RRC_MRDC_Parameters__tdm_Pattern { + ASN_RRC_MRDC_Parameters__tdm_Pattern_supported = 0 +} e_ASN_RRC_MRDC_Parameters__tdm_Pattern; +typedef enum ASN_RRC_MRDC_Parameters__ul_SharingEUTRA_NR { + ASN_RRC_MRDC_Parameters__ul_SharingEUTRA_NR_tdm = 0, + ASN_RRC_MRDC_Parameters__ul_SharingEUTRA_NR_fdm = 1, + ASN_RRC_MRDC_Parameters__ul_SharingEUTRA_NR_both = 2 +} e_ASN_RRC_MRDC_Parameters__ul_SharingEUTRA_NR; +typedef enum ASN_RRC_MRDC_Parameters__ul_SwitchingTimeEUTRA_NR { + ASN_RRC_MRDC_Parameters__ul_SwitchingTimeEUTRA_NR_type1 = 0, + ASN_RRC_MRDC_Parameters__ul_SwitchingTimeEUTRA_NR_type2 = 1 +} e_ASN_RRC_MRDC_Parameters__ul_SwitchingTimeEUTRA_NR; +typedef enum ASN_RRC_MRDC_Parameters__simultaneousRxTxInterBandENDC { + ASN_RRC_MRDC_Parameters__simultaneousRxTxInterBandENDC_supported = 0 +} e_ASN_RRC_MRDC_Parameters__simultaneousRxTxInterBandENDC; +typedef enum ASN_RRC_MRDC_Parameters__asyncIntraBandENDC { + ASN_RRC_MRDC_Parameters__asyncIntraBandENDC_supported = 0 +} e_ASN_RRC_MRDC_Parameters__asyncIntraBandENDC; +typedef enum ASN_RRC_MRDC_Parameters__ext1__dualPA_Architecture { + ASN_RRC_MRDC_Parameters__ext1__dualPA_Architecture_supported = 0 +} e_ASN_RRC_MRDC_Parameters__ext1__dualPA_Architecture; +typedef enum ASN_RRC_MRDC_Parameters__ext1__intraBandENDC_Support_v1540 { + ASN_RRC_MRDC_Parameters__ext1__intraBandENDC_Support_v1540_non_contiguous = 0, + ASN_RRC_MRDC_Parameters__ext1__intraBandENDC_Support_v1540_both = 1 +} e_ASN_RRC_MRDC_Parameters__ext1__intraBandENDC_Support_v1540; +typedef enum ASN_RRC_MRDC_Parameters__ext1__ul_TimingAlignmentEUTRA_NR { + ASN_RRC_MRDC_Parameters__ext1__ul_TimingAlignmentEUTRA_NR_required = 0 +} e_ASN_RRC_MRDC_Parameters__ext1__ul_TimingAlignmentEUTRA_NR; + +/* ASN_RRC_MRDC-Parameters */ +typedef struct ASN_RRC_MRDC_Parameters { + long *singleUL_Transmission; /* OPTIONAL */ + long *dynamicPowerSharing; /* OPTIONAL */ + long *tdm_Pattern; /* OPTIONAL */ + long *ul_SharingEUTRA_NR; /* OPTIONAL */ + long *ul_SwitchingTimeEUTRA_NR; /* OPTIONAL */ + long *simultaneousRxTxInterBandENDC; /* OPTIONAL */ + long *asyncIntraBandENDC; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MRDC_Parameters__ext1 { + long *dualPA_Architecture; /* OPTIONAL */ + long *intraBandENDC_Support_v1540; /* OPTIONAL */ + long *ul_TimingAlignmentEUTRA_NR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MRDC_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_singleUL_Transmission_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicPowerSharing_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tdm_Pattern_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SharingEUTRA_NR_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SwitchingTimeEUTRA_NR_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRxTxInterBandENDC_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_asyncIntraBandENDC_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dualPA_Architecture_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraBandENDC_Support_v1540_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_TimingAlignmentEUTRA_NR_26; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MRDC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_Parameters_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MRDC_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.c b/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.c new file mode 100644 index 0000000..609b72e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MRDC-SecondaryCellGroupConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_nr_SCG_constraint_4(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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_mrdc_ReleaseAndAdd_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_nr_SCG_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_mrdc_SecondaryCellGroup_constr_4 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_ASN_RRC_mrdc_ReleaseAndAdd_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_mrdc_ReleaseAndAdd_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mrdc_ReleaseAndAdd_specs_2 = { + asn_MAP_ASN_RRC_mrdc_ReleaseAndAdd_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mrdc_ReleaseAndAdd_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_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_ASN_RRC_mrdc_ReleaseAndAdd_2 = { + "mrdc-ReleaseAndAdd", + "mrdc-ReleaseAndAdd", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2, + sizeof(asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2) + /sizeof(asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2) + /sizeof(asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mrdc_ReleaseAndAdd_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mrdc_ReleaseAndAdd_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mrdc_SecondaryCellGroup_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup, choice.nr_SCG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_nr_SCG_constr_5, memb_ASN_RRC_nr_SCG_constraint_4 }, + 0, 0, /* No default value */ + "nr-SCG" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup, choice.eutra_SCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-SCG" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_mrdc_SecondaryCellGroup_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr-SCG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-SCG */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_mrdc_SecondaryCellGroup_specs_4 = { + sizeof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup), + offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup, _asn_ctx), + offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup, present), + sizeof(((struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup *)0)->present), + asn_MAP_ASN_RRC_mrdc_SecondaryCellGroup_tag2el_4, + 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_ASN_RRC_mrdc_SecondaryCellGroup_4 = { + "mrdc-SecondaryCellGroup", + "mrdc-SecondaryCellGroup", + &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_ASN_RRC_mrdc_SecondaryCellGroup_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_mrdc_SecondaryCellGroup_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_mrdc_SecondaryCellGroup_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_SecondaryCellGroupConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig, mrdc_ReleaseAndAdd), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-ReleaseAndAdd" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig, mrdc_SecondaryCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mrdc_SecondaryCellGroup_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-SecondaryCellGroup" + }, +}; +static const int asn_MAP_ASN_RRC_MRDC_SecondaryCellGroupConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MRDC_SecondaryCellGroupConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mrdc-ReleaseAndAdd */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mrdc-SecondaryCellGroup */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_SecondaryCellGroupConfig_specs_1 = { + sizeof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig), + offsetof(struct ASN_RRC_MRDC_SecondaryCellGroupConfig, _asn_ctx), + asn_MAP_ASN_RRC_MRDC_SecondaryCellGroupConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MRDC_SecondaryCellGroupConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig = { + "MRDC-SecondaryCellGroupConfig", + "MRDC-SecondaryCellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MRDC_SecondaryCellGroupConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MRDC_SecondaryCellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.h b/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.h new file mode 100644 index 0000000..16eb8f8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MRDC-SecondaryCellGroupConfig.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MRDC_SecondaryCellGroupConfig_H_ +#define _ASN_RRC_MRDC_SecondaryCellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_ReleaseAndAdd { + ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_ReleaseAndAdd_true = 0 +} e_ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_ReleaseAndAdd; +typedef enum ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR { + ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR_NOTHING, /* No components present */ + ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR_nr_SCG, + ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR_eutra_SCG +} ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR; + +/* ASN_RRC_MRDC-SecondaryCellGroupConfig */ +typedef struct ASN_RRC_MRDC_SecondaryCellGroupConfig { + long *mrdc_ReleaseAndAdd; /* OPTIONAL */ + struct ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup { + ASN_RRC_MRDC_SecondaryCellGroupConfig__mrdc_SecondaryCellGroup_PR present; + union ASN_RRC_MRDC_SecondaryCellGroupConfig__ASN_RRC_mrdc_SecondaryCellGroup_u { + OCTET_STRING_t nr_SCG; + OCTET_STRING_t eutra_SCG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } mrdc_SecondaryCellGroup; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MRDC_SecondaryCellGroupConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mrdc_ReleaseAndAdd_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MRDC_SecondaryCellGroupConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MRDC_SecondaryCellGroupConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MRDC_SecondaryCellGroupConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MasterKeyUpdate.c b/src/asn/rrc/ASN_RRC_MasterKeyUpdate.c new file mode 100644 index 0000000..68e3124 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MasterKeyUpdate.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MasterKeyUpdate.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_MasterKeyUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MasterKeyUpdate, keySetChangeIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "keySetChangeIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MasterKeyUpdate, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MasterKeyUpdate, nas_Container), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nas-Container" + }, +}; +static const int asn_MAP_ASN_RRC_MasterKeyUpdate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MasterKeyUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* keySetChangeIndicator */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nextHopChainingCount */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nas-Container */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MasterKeyUpdate_specs_1 = { + sizeof(struct ASN_RRC_MasterKeyUpdate), + offsetof(struct ASN_RRC_MasterKeyUpdate, _asn_ctx), + asn_MAP_ASN_RRC_MasterKeyUpdate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MasterKeyUpdate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MasterKeyUpdate = { + "MasterKeyUpdate", + "MasterKeyUpdate", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1, + sizeof(asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1) + /sizeof(asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1) + /sizeof(asn_DEF_ASN_RRC_MasterKeyUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MasterKeyUpdate_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MasterKeyUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MasterKeyUpdate.h b/src/asn/rrc/ASN_RRC_MasterKeyUpdate.h new file mode 100644 index 0000000..ac381f3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MasterKeyUpdate.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MasterKeyUpdate_H_ +#define _ASN_RRC_MasterKeyUpdate_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_NextHopChainingCount.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MasterKeyUpdate */ +typedef struct ASN_RRC_MasterKeyUpdate { + BOOLEAN_t keySetChangeIndicator; + ASN_RRC_NextHopChainingCount_t nextHopChainingCount; + OCTET_STRING_t *nas_Container; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MasterKeyUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MasterKeyUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MasterKeyUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MasterKeyUpdate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MasterKeyUpdate_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParameters.c b/src/asn/rrc/ASN_RRC_MeasAndMobParameters.c new file mode 100644 index 0000000..ce5880d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParameters.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParameters.h" + +#include "ASN_RRC_MeasAndMobParametersCommon.h" +#include "ASN_RRC_MeasAndMobParametersXDD-Diff.h" +#include "ASN_RRC_MeasAndMobParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParameters_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParameters, measAndMobParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersCommon" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParameters, measAndMobParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersXDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParameters, measAndMobParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersFRX-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParameters_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measAndMobParametersXDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measAndMobParametersFRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParameters_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParameters), + offsetof(struct ASN_RRC_MeasAndMobParameters, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParameters_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParameters = { + "MeasAndMobParameters", + "MeasAndMobParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParameters.h b/src/asn/rrc/ASN_RRC_MeasAndMobParameters.h new file mode 100644 index 0000000..6d28265 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParameters.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParameters_H_ +#define _ASN_RRC_MeasAndMobParameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersCommon; +struct ASN_RRC_MeasAndMobParametersXDD_Diff; +struct ASN_RRC_MeasAndMobParametersFRX_Diff; + +/* ASN_RRC_MeasAndMobParameters */ +typedef struct ASN_RRC_MeasAndMobParameters { + struct ASN_RRC_MeasAndMobParametersCommon *measAndMobParametersCommon; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersXDD_Diff *measAndMobParametersXDD_Diff; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersFRX_Diff *measAndMobParametersFRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.c new file mode 100644 index 0000000..6fec7b2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.c @@ -0,0 +1,827 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersCommon.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_supportedGapPattern_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)) { + /* Constraint 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_ASN_RRC_ssb_RLM_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ssb_AndCSI_RS_RLM_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_eventB_MeasAndReport_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverFDD_TDD_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_eutra_CGI_Reporting_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_nr_CGI_Reporting_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_independentGapConfig_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_periodicEUTRA_MeasAndReport_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverFR1_FR2_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_nr_CGI_Reporting_ENDC_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_supportedGapPattern_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 22, 22 } /* (SIZE(22..22)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_RLM_value2enum_3[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_RLM_enum2value_3[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_RLM_specs_3 = { + asn_MAP_ASN_RRC_ssb_RLM_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_RLM_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_RLM_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_ASN_RRC_ssb_RLM_3 = { + "ssb-RLM", + "ssb-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_RLM_tags_3, + sizeof(asn_DEF_ASN_RRC_ssb_RLM_tags_3) + /sizeof(asn_DEF_ASN_RRC_ssb_RLM_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_RLM_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_RLM_tags_3) + /sizeof(asn_DEF_ASN_RRC_ssb_RLM_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_RLM_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_RLM_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_AndCSI_RS_RLM_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_AndCSI_RS_RLM_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_AndCSI_RS_RLM_specs_5 = { + asn_MAP_ASN_RRC_ssb_AndCSI_RS_RLM_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_AndCSI_RS_RLM_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5[] = { + (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_ASN_RRC_ssb_AndCSI_RS_RLM_5 = { + "ssb-AndCSI-RS-RLM", + "ssb-AndCSI-RS-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5, + sizeof(asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5) + /sizeof(asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5) + /sizeof(asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_AndCSI_RS_RLM_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_AndCSI_RS_RLM_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_eventB_MeasAndReport_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_eventB_MeasAndReport_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_eventB_MeasAndReport_specs_9 = { + asn_MAP_ASN_RRC_eventB_MeasAndReport_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_eventB_MeasAndReport_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9[] = { + (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_ASN_RRC_eventB_MeasAndReport_9 = { + "eventB-MeasAndReport", + "eventB-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9, + sizeof(asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9) + /sizeof(asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9) + /sizeof(asn_DEF_ASN_RRC_eventB_MeasAndReport_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_eventB_MeasAndReport_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_eventB_MeasAndReport_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverFDD_TDD_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverFDD_TDD_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverFDD_TDD_specs_11 = { + asn_MAP_ASN_RRC_handoverFDD_TDD_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverFDD_TDD_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11[] = { + (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_ASN_RRC_handoverFDD_TDD_11 = { + "handoverFDD-TDD", + "handoverFDD-TDD", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11, + sizeof(asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11) + /sizeof(asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11) + /sizeof(asn_DEF_ASN_RRC_handoverFDD_TDD_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverFDD_TDD_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverFDD_TDD_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_eutra_CGI_Reporting_value2enum_13[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_eutra_CGI_Reporting_enum2value_13[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_eutra_CGI_Reporting_specs_13 = { + asn_MAP_ASN_RRC_eutra_CGI_Reporting_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_eutra_CGI_Reporting_enum2value_13, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13[] = { + (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_ASN_RRC_eutra_CGI_Reporting_13 = { + "eutra-CGI-Reporting", + "eutra-CGI-Reporting", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13, + sizeof(asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13) + /sizeof(asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13) + /sizeof(asn_DEF_ASN_RRC_eutra_CGI_Reporting_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_eutra_CGI_Reporting_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_eutra_CGI_Reporting_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nr_CGI_Reporting_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_nr_CGI_Reporting_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nr_CGI_Reporting_specs_15 = { + asn_MAP_ASN_RRC_nr_CGI_Reporting_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nr_CGI_Reporting_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15[] = { + (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_ASN_RRC_nr_CGI_Reporting_15 = { + "nr-CGI-Reporting", + "nr-CGI-Reporting", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15, + sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15) + /sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15) + /sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nr_CGI_Reporting_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nr_CGI_Reporting_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_8[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext1, eventB_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eventB_MeasAndReport_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB-MeasAndReport" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext1, handoverFDD_TDD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverFDD_TDD_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverFDD-TDD" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext1, eutra_CGI_Reporting), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eutra_CGI_Reporting_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-CGI-Reporting" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext1, nr_CGI_Reporting), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nr_CGI_Reporting_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-CGI-Reporting" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_8[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventB-MeasAndReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverFDD-TDD */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* eutra-CGI-Reporting */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nr-CGI-Reporting */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_8 = { + sizeof(struct ASN_RRC_MeasAndMobParametersCommon__ext1), + offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_8, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_8, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_8, + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_8, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_independentGapConfig_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_independentGapConfig_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_independentGapConfig_specs_18 = { + asn_MAP_ASN_RRC_independentGapConfig_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_independentGapConfig_enum2value_18, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_independentGapConfig_tags_18[] = { + (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_ASN_RRC_independentGapConfig_18 = { + "independentGapConfig", + "independentGapConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_independentGapConfig_tags_18, + sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_18) + /sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_independentGapConfig_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_18) + /sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_independentGapConfig_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_independentGapConfig_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicEUTRA_MeasAndReport_value2enum_20[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicEUTRA_MeasAndReport_enum2value_20[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicEUTRA_MeasAndReport_specs_20 = { + asn_MAP_ASN_RRC_periodicEUTRA_MeasAndReport_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicEUTRA_MeasAndReport_enum2value_20, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20[] = { + (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_ASN_RRC_periodicEUTRA_MeasAndReport_20 = { + "periodicEUTRA-MeasAndReport", + "periodicEUTRA-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20, + sizeof(asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20) + /sizeof(asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20) + /sizeof(asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicEUTRA_MeasAndReport_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicEUTRA_MeasAndReport_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverFR1_FR2_value2enum_22[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverFR1_FR2_enum2value_22[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverFR1_FR2_specs_22 = { + asn_MAP_ASN_RRC_handoverFR1_FR2_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverFR1_FR2_enum2value_22, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22[] = { + (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_ASN_RRC_handoverFR1_FR2_22 = { + "handoverFR1-FR2", + "handoverFR1-FR2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22, + sizeof(asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22) + /sizeof(asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22) + /sizeof(asn_DEF_ASN_RRC_handoverFR1_FR2_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverFR1_FR2_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverFR1_FR2_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_value2enum_24[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n16" }, + { 3, 3, "n32" }, + { 4, 3, "n64" }, + { 5, 3, "n96" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_enum2value_24[] = { + 2, /* n16(2) */ + 3, /* n32(3) */ + 0, /* n4(0) */ + 4, /* n64(4) */ + 1, /* n8(1) */ + 5 /* n96(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_specs_24 = { + asn_MAP_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_enum2value_24, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24[] = { + (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_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_24 = { + "maxNumberCSI-RS-RRM-RS-SINR", + "maxNumberCSI-RS-RRM-RS-SINR", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24, + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24) + /sizeof(asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_17[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext2, independentGapConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_independentGapConfig_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "independentGapConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext2, periodicEUTRA_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicEUTRA-MeasAndReport" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext2, handoverFR1_FR2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverFR1_FR2_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverFR1-FR2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext2, maxNumberCSI_RS_RRM_RS_SINR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-RRM-RS-SINR" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_17[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* independentGapConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicEUTRA-MeasAndReport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* handoverFR1-FR2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxNumberCSI-RS-RRM-RS-SINR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_17 = { + sizeof(struct ASN_RRC_MeasAndMobParametersCommon__ext2), + offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_17, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_17, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_17 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_17, + sizeof(asn_DEF_ASN_RRC_ext2_tags_17) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_17) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_17, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nr_CGI_Reporting_ENDC_value2enum_32[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_nr_CGI_Reporting_ENDC_enum2value_32[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nr_CGI_Reporting_ENDC_specs_32 = { + asn_MAP_ASN_RRC_nr_CGI_Reporting_ENDC_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nr_CGI_Reporting_ENDC_enum2value_32, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32[] = { + (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_ASN_RRC_nr_CGI_Reporting_ENDC_32 = { + "nr-CGI-Reporting-ENDC", + "nr-CGI-Reporting-ENDC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32, + sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32) + /sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32) + /sizeof(asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nr_CGI_Reporting_ENDC_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nr_CGI_Reporting_ENDC_specs_32 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_31[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext3, nr_CGI_Reporting_ENDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-CGI-Reporting-ENDC" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_31[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nr-CGI-Reporting-ENDC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_31 = { + sizeof(struct ASN_RRC_MeasAndMobParametersCommon__ext3), + offsetof(struct ASN_RRC_MeasAndMobParametersCommon__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_31, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_31, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_31 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_31, + sizeof(asn_DEF_ASN_RRC_ext3_tags_31) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_31[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_31) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_31[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_31, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersCommon_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, supportedGapPattern), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedGapPattern_constr_2, memb_ASN_RRC_supportedGapPattern_constraint_1 }, + 0, 0, /* No default value */ + "supportedGapPattern" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, ssb_RLM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_RLM_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RLM" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, ssb_AndCSI_RS_RLM), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-AndCSI-RS-RLM" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, ext2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersCommon, ext3), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersCommon_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedGapPattern */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ssb-RLM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ssb-AndCSI-RS-RLM */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersCommon_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersCommon), + offsetof(struct ASN_RRC_MeasAndMobParametersCommon, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersCommon_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersCommon_oms_1, /* Optional members */ + 3, 3, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersCommon = { + "MeasAndMobParametersCommon", + "MeasAndMobParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersCommon_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.h new file mode 100644 index 0000000..ca833d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersCommon.h @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersCommon_H_ +#define _ASN_RRC_MeasAndMobParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersCommon__ssb_RLM { + ASN_RRC_MeasAndMobParametersCommon__ssb_RLM_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ssb_RLM; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM { + ASN_RRC_MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext1__eventB_MeasAndReport { + ASN_RRC_MeasAndMobParametersCommon__ext1__eventB_MeasAndReport_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext1__eventB_MeasAndReport; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext1__handoverFDD_TDD { + ASN_RRC_MeasAndMobParametersCommon__ext1__handoverFDD_TDD_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext1__handoverFDD_TDD; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting { + ASN_RRC_MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext1__nr_CGI_Reporting { + ASN_RRC_MeasAndMobParametersCommon__ext1__nr_CGI_Reporting_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext1__nr_CGI_Reporting; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext2__independentGapConfig { + ASN_RRC_MeasAndMobParametersCommon__ext2__independentGapConfig_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext2__independentGapConfig; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext2__periodicEUTRA_MeasAndReport { + ASN_RRC_MeasAndMobParametersCommon__ext2__periodicEUTRA_MeasAndReport_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext2__periodicEUTRA_MeasAndReport; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext2__handoverFR1_FR2 { + ASN_RRC_MeasAndMobParametersCommon__ext2__handoverFR1_FR2_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext2__handoverFR1_FR2; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR { + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n4 = 0, + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n8 = 1, + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n16 = 2, + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n32 = 3, + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n64 = 4, + ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR_n96 = 5 +} e_ASN_RRC_MeasAndMobParametersCommon__ext2__maxNumberCSI_RS_RRM_RS_SINR; +typedef enum ASN_RRC_MeasAndMobParametersCommon__ext3__nr_CGI_Reporting_ENDC { + ASN_RRC_MeasAndMobParametersCommon__ext3__nr_CGI_Reporting_ENDC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersCommon__ext3__nr_CGI_Reporting_ENDC; + +/* ASN_RRC_MeasAndMobParametersCommon */ +typedef struct ASN_RRC_MeasAndMobParametersCommon { + BIT_STRING_t *supportedGapPattern; /* OPTIONAL */ + long *ssb_RLM; /* OPTIONAL */ + long *ssb_AndCSI_RS_RLM; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasAndMobParametersCommon__ext1 { + long *eventB_MeasAndReport; /* OPTIONAL */ + long *handoverFDD_TDD; /* OPTIONAL */ + long *eutra_CGI_Reporting; /* OPTIONAL */ + long *nr_CGI_Reporting; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_MeasAndMobParametersCommon__ext2 { + long *independentGapConfig; /* OPTIONAL */ + long *periodicEUTRA_MeasAndReport; /* OPTIONAL */ + long *handoverFR1_FR2; /* OPTIONAL */ + long *maxNumberCSI_RS_RRM_RS_SINR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_MeasAndMobParametersCommon__ext3 { + long *nr_CGI_Reporting_ENDC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_RLM_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_AndCSI_RS_RLM_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventB_MeasAndReport_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverFDD_TDD_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eutra_CGI_Reporting_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nr_CGI_Reporting_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_independentGapConfig_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicEUTRA_MeasAndReport_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverFR1_FR2_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberCSI_RS_RRM_RS_SINR_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nr_CGI_Reporting_ENDC_32; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersCommon_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.c new file mode 100644 index 0000000..da8429e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.c @@ -0,0 +1,723 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersFRX-Diff.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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_ss_SINR_Meas_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_SINR_Meas_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_RS_RLM_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverInterF_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverLTE_EPC_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverLTE_5GC_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberResource_CSI_RS_RLM_constr_21 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_type_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ss_SINR_Meas_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ss_SINR_Meas_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ss_SINR_Meas_specs_2 = { + asn_MAP_ASN_RRC_ss_SINR_Meas_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ss_SINR_Meas_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ss_SINR_Meas_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_ASN_RRC_ss_SINR_Meas_2 = { + "ss-SINR-Meas", + "ss-SINR-Meas", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2, + sizeof(asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2) + /sizeof(asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2) + /sizeof(asn_DEF_ASN_RRC_ss_SINR_Meas_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ss_SINR_Meas_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ss_SINR_Meas_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_specs_4 = { + asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4[] = { + (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_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_4 = { + "csi-RSRP-AndRSRQ-MeasWithSSB", + "csi-RSRP-AndRSRQ-MeasWithSSB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4, + sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4) + /sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4) + /sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_specs_6 = { + asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6[] = { + (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_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_6 = { + "csi-RSRP-AndRSRQ-MeasWithoutSSB", + "csi-RSRP-AndRSRQ-MeasWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6, + sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6) + /sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6) + /sizeof(asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_SINR_Meas_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_SINR_Meas_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_SINR_Meas_specs_8 = { + asn_MAP_ASN_RRC_csi_SINR_Meas_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_SINR_Meas_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_SINR_Meas_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_ASN_RRC_csi_SINR_Meas_8 = { + "csi-SINR-Meas", + "csi-SINR-Meas", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8, + sizeof(asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8) + /sizeof(asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8) + /sizeof(asn_DEF_ASN_RRC_csi_SINR_Meas_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_SINR_Meas_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_SINR_Meas_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_RS_RLM_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_RS_RLM_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_RS_RLM_specs_10 = { + asn_MAP_ASN_RRC_csi_RS_RLM_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_RS_RLM_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RS_RLM_tags_10[] = { + (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_ASN_RRC_csi_RS_RLM_10 = { + "csi-RS-RLM", + "csi-RS-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_RS_RLM_tags_10, + sizeof(asn_DEF_ASN_RRC_csi_RS_RLM_tags_10) + /sizeof(asn_DEF_ASN_RRC_csi_RS_RLM_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RS_RLM_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RS_RLM_tags_10) + /sizeof(asn_DEF_ASN_RRC_csi_RS_RLM_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RS_RLM_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_RS_RLM_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverInterF_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverInterF_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverInterF_specs_14 = { + asn_MAP_ASN_RRC_handoverInterF_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverInterF_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverInterF_tags_14[] = { + (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_ASN_RRC_handoverInterF_14 = { + "handoverInterF", + "handoverInterF", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverInterF_tags_14, + sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_14) + /sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverInterF_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_14) + /sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverInterF_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverInterF_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverLTE_EPC_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverLTE_EPC_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverLTE_EPC_specs_16 = { + asn_MAP_ASN_RRC_handoverLTE_EPC_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverLTE_EPC_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16[] = { + (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_ASN_RRC_handoverLTE_EPC_16 = { + "handoverLTE-EPC", + "handoverLTE-EPC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16, + sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverLTE_EPC_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverLTE_EPC_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverLTE_5GC_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverLTE_5GC_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverLTE_5GC_specs_18 = { + asn_MAP_ASN_RRC_handoverLTE_5GC_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverLTE_5GC_enum2value_18, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18[] = { + (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_ASN_RRC_handoverLTE_5GC_18 = { + "handoverLTE-5GC", + "handoverLTE-5GC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18, + sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverLTE_5GC_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverLTE_5GC_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_13[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1, handoverInterF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverInterF_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverInterF" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1, handoverLTE_EPC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverLTE_EPC_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE-EPC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1, handoverLTE_5GC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverLTE_5GC_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE-5GC" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_13[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverInterF */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverLTE-EPC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* handoverLTE-5GC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_13 = { + sizeof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1), + offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_13, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_13, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_13, + sizeof(asn_DEF_ASN_RRC_ext1_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_13, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberResource_CSI_RS_RLM_value2enum_21[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberResource_CSI_RS_RLM_enum2value_21[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2, /* n6(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberResource_CSI_RS_RLM_specs_21 = { + asn_MAP_ASN_RRC_maxNumberResource_CSI_RS_RLM_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberResource_CSI_RS_RLM_enum2value_21, /* 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_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21[] = { + (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_ASN_RRC_maxNumberResource_CSI_RS_RLM_21 = { + "maxNumberResource-CSI-RS-RLM", + "maxNumberResource-CSI-RS-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21, + sizeof(asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21) + /sizeof(asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21) + /sizeof(asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberResource_CSI_RS_RLM_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberResource_CSI_RS_RLM_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_20[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext2, maxNumberResource_CSI_RS_RLM), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberResource-CSI-RS-RLM" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_20[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_20[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxNumberResource-CSI-RS-RLM */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_20 = { + sizeof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext2), + offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_20, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_20, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_20 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_20, + sizeof(asn_DEF_ASN_RRC_ext2_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_20) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_20[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_20, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_specs_27 = { + asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_enum2value_27, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27[] = { + (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_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_27 = { + "simultaneousRxDataSSB-DiffNumerology", + "simultaneousRxDataSSB-DiffNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27, + sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_26[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext3, simultaneousRxDataSSB_DiffNumerology), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxDataSSB-DiffNumerology" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_26[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_26[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* simultaneousRxDataSSB-DiffNumerology */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_26 = { + sizeof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext3), + offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_26, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_26, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_26 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_26, + sizeof(asn_DEF_ASN_RRC_ext3_tags_26) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_26) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_26[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_26, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_26 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersFRX_Diff_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, ss_SINR_Meas), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ss_SINR_Meas_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-SINR-Meas" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, csi_RSRP_AndRSRQ_MeasWithSSB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP-AndRSRQ-MeasWithSSB" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, csi_RSRP_AndRSRQ_MeasWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP-AndRSRQ-MeasWithoutSSB" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, csi_SINR_Meas), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_SINR_Meas_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-SINR-Meas" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, csi_RS_RLM), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RS_RLM_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-RLM" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, ext2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, ext3), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersFRX_Diff_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersFRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ss-SINR-Meas */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RSRP-AndRSRQ-MeasWithSSB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* csi-RSRP-AndRSRQ-MeasWithoutSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* csi-SINR-Meas */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* csi-RS-RLM */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersFRX_Diff_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersFRX_Diff), + offsetof(struct ASN_RRC_MeasAndMobParametersFRX_Diff, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersFRX_Diff_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersFRX_Diff_oms_1, /* Optional members */ + 5, 3, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff = { + "MeasAndMobParametersFRX-Diff", + "MeasAndMobParametersFRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersFRX_Diff_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersFRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.h new file mode 100644 index 0000000..ad0b996 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersFRX-Diff.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersFRX_Diff_H_ +#define _ASN_RRC_MeasAndMobParametersFRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ss_SINR_Meas { + ASN_RRC_MeasAndMobParametersFRX_Diff__ss_SINR_Meas_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ss_SINR_Meas; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB { + ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB { + ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__csi_SINR_Meas { + ASN_RRC_MeasAndMobParametersFRX_Diff__csi_SINR_Meas_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__csi_SINR_Meas; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RS_RLM { + ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RS_RLM_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__csi_RS_RLM; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverInterF { + ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverInterF_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverInterF; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_EPC { + ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_EPC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_EPC; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_5GC { + ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_5GC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ext1__handoverLTE_5GC; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM { + ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM_n2 = 0, + ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM_n4 = 1, + ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM_n6 = 2, + ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM_n8 = 3 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ext2__maxNumberResource_CSI_RS_RLM; +typedef enum ASN_RRC_MeasAndMobParametersFRX_Diff__ext3__simultaneousRxDataSSB_DiffNumerology { + ASN_RRC_MeasAndMobParametersFRX_Diff__ext3__simultaneousRxDataSSB_DiffNumerology_supported = 0 +} e_ASN_RRC_MeasAndMobParametersFRX_Diff__ext3__simultaneousRxDataSSB_DiffNumerology; + +/* ASN_RRC_MeasAndMobParametersFRX-Diff */ +typedef struct ASN_RRC_MeasAndMobParametersFRX_Diff { + long *ss_SINR_Meas; /* OPTIONAL */ + long *csi_RSRP_AndRSRQ_MeasWithSSB; /* OPTIONAL */ + long *csi_RSRP_AndRSRQ_MeasWithoutSSB; /* OPTIONAL */ + long *csi_SINR_Meas; /* OPTIONAL */ + long *csi_RS_RLM; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext1 { + long *handoverInterF; /* OPTIONAL */ + long *handoverLTE_EPC; /* OPTIONAL */ + long *handoverLTE_5GC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext2 { + long *maxNumberResource_CSI_RS_RLM; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_MeasAndMobParametersFRX_Diff__ext3 { + long *simultaneousRxDataSSB_DiffNumerology; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersFRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ss_SINR_Meas_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithSSB_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RSRP_AndRSRQ_MeasWithoutSSB_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_SINR_Meas_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RS_RLM_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverInterF_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverLTE_EPC_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverLTE_5GC_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberResource_CSI_RS_RLM_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_27; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersFRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersFRX_Diff_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersFRX_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.c new file mode 100644 index 0000000..68dcade --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC-Common.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_independentGapConfig_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_independentGapConfig_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_independentGapConfig_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_independentGapConfig_specs_2 = { + asn_MAP_ASN_RRC_independentGapConfig_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_independentGapConfig_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_independentGapConfig_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_ASN_RRC_independentGapConfig_2 = { + "independentGapConfig", + "independentGapConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_independentGapConfig_tags_2, + sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_2) + /sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_independentGapConfig_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_2) + /sizeof(asn_DEF_ASN_RRC_independentGapConfig_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_independentGapConfig_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_independentGapConfig_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_Common_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_Common, independentGapConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_independentGapConfig_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "independentGapConfig" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_Common_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_Common_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* independentGapConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_Common_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC_Common), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_Common, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_Common_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_Common_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common = { + "MeasAndMobParametersMRDC-Common", + "MeasAndMobParametersMRDC-Common", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_Common_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_Common_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.h new file mode 100644 index 0000000..cc5ce14 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-Common.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_Common_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_Common_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersMRDC_Common__independentGapConfig { + ASN_RRC_MeasAndMobParametersMRDC_Common__independentGapConfig_supported = 0 +} e_ASN_RRC_MeasAndMobParametersMRDC_Common__independentGapConfig; + +/* ASN_RRC_MeasAndMobParametersMRDC-Common */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC_Common { + long *independentGapConfig; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_Common_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_independentGapConfig_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_Common_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_Common_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_Common_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.c new file mode 100644 index 0000000..e78c219 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_specs_2 = { + asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_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_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_2 = { + "simultaneousRxDataSSB-DiffNumerology", + "simultaneousRxDataSSB-DiffNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2, + sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2) + /sizeof(asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff, simultaneousRxDataSSB_DiffNumerology), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxDataSSB-DiffNumerology" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* simultaneousRxDataSSB-DiffNumerology */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff = { + "MeasAndMobParametersMRDC-FRX-Diff", + "MeasAndMobParametersMRDC-FRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h new file mode 100644 index 0000000..e81b7d2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology { + ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology_supported = 0 +} e_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology; + +/* ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff { + long *simultaneousRxDataSSB_DiffNumerology; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousRxDataSSB_DiffNumerology_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.c new file mode 100644 index 0000000..83195e9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_sftd_MeasPSCell_NEDC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sftd_MeasPSCell_NEDC_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sftd_MeasPSCell_NEDC_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sftd_MeasPSCell_NEDC_specs_2 = { + asn_MAP_ASN_RRC_sftd_MeasPSCell_NEDC_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sftd_MeasPSCell_NEDC_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_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_ASN_RRC_sftd_MeasPSCell_NEDC_2 = { + "sftd-MeasPSCell-NEDC", + "sftd-MeasPSCell-NEDC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2, + sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sftd_MeasPSCell_NEDC_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sftd_MeasPSCell_NEDC_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560, sftd_MeasPSCell_NEDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sftd-MeasPSCell-NEDC" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sftd-MeasPSCell-NEDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560 = { + "MeasAndMobParametersMRDC-XDD-Diff-v1560", + "MeasAndMobParametersMRDC-XDD-Diff-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h new file mode 100644 index 0000000..7a4a51b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560__sftd_MeasPSCell_NEDC { + ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560__sftd_MeasPSCell_NEDC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560__sftd_MeasPSCell_NEDC; + +/* ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560 */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560 { + long *sftd_MeasPSCell_NEDC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sftd_MeasPSCell_NEDC_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.c new file mode 100644 index 0000000..53e06a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.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_ASN_RRC_sftd_MeasPSCell_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sftd_MeasNR_Cell_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sftd_MeasPSCell_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sftd_MeasPSCell_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sftd_MeasPSCell_specs_2 = { + asn_MAP_ASN_RRC_sftd_MeasPSCell_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sftd_MeasPSCell_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sftd_MeasPSCell_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_ASN_RRC_sftd_MeasPSCell_2 = { + "sftd-MeasPSCell", + "sftd-MeasPSCell", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2, + sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasPSCell_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sftd_MeasPSCell_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sftd_MeasPSCell_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sftd_MeasNR_Cell_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sftd_MeasNR_Cell_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sftd_MeasNR_Cell_specs_4 = { + asn_MAP_ASN_RRC_sftd_MeasNR_Cell_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sftd_MeasNR_Cell_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4[] = { + (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_ASN_RRC_sftd_MeasNR_Cell_4 = { + "sftd-MeasNR-Cell", + "sftd-MeasNR-Cell", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4, + sizeof(asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4) + /sizeof(asn_DEF_ASN_RRC_sftd_MeasNR_Cell_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sftd_MeasNR_Cell_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sftd_MeasNR_Cell_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff, sftd_MeasPSCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sftd_MeasPSCell_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sftd-MeasPSCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff, sftd_MeasNR_Cell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sftd_MeasNR_Cell_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sftd-MeasNR-Cell" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sftd-MeasPSCell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sftd-MeasNR-Cell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff = { + "MeasAndMobParametersMRDC-XDD-Diff", + "MeasAndMobParametersMRDC-XDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h new file mode 100644 index 0000000..912ca4e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell { + ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell_supported = 0 +} e_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell; +typedef enum ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell { + ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell_supported = 0 +} e_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell; + +/* ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff { + long *sftd_MeasPSCell; /* OPTIONAL */ + long *sftd_MeasNR_Cell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sftd_MeasPSCell_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sftd_MeasNR_Cell_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.c new file mode 100644 index 0000000..87df897 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC-v1560.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_v1560_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_v1560, measAndMobParametersMRDC_XDD_Diff_v1560), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff-v1560" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_v1560_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measAndMobParametersMRDC-XDD-Diff-v1560 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_v1560_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC_v1560), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC_v1560, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_v1560_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_v1560_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560 = { + "MeasAndMobParametersMRDC-v1560", + "MeasAndMobParametersMRDC-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_v1560_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.h new file mode 100644 index 0000000..47356a5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC-v1560.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_v1560_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_v1560_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560; + +/* ASN_RRC_MeasAndMobParametersMRDC-v1560 */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC_v1560 { + struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560 *measAndMobParametersMRDC_XDD_Diff_v1560; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_v1560_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.c new file mode 100644 index 0000000..d8e0f6e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersMRDC.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC-Common.h" +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h" +#include "ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC, measAndMobParametersMRDC_Common), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_Common, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-Common" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC, measAndMobParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersMRDC, measAndMobParametersMRDC_FRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-FRX-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersMRDC-Common */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measAndMobParametersMRDC-XDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measAndMobParametersMRDC-FRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersMRDC), + offsetof(struct ASN_RRC_MeasAndMobParametersMRDC, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersMRDC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC = { + "MeasAndMobParametersMRDC", + "MeasAndMobParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.h new file mode 100644 index 0000000..02e744d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersMRDC.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersMRDC_H_ +#define _ASN_RRC_MeasAndMobParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC_Common; +struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff; +struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff; + +/* ASN_RRC_MeasAndMobParametersMRDC */ +typedef struct ASN_RRC_MeasAndMobParametersMRDC { + struct ASN_RRC_MeasAndMobParametersMRDC_Common *measAndMobParametersMRDC_Common; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff *measAndMobParametersMRDC_XDD_Diff; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff *measAndMobParametersMRDC_FRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersMRDC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.c b/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.c new file mode 100644 index 0000000..d8dd843 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.c @@ -0,0 +1,357 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasAndMobParametersXDD-Diff.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_intraAndInterF_MeasAndReport_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_eventA_MeasAndReport_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverInterF_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverLTE_EPC_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_handoverLTE_5GC_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_intraAndInterF_MeasAndReport_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_intraAndInterF_MeasAndReport_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_intraAndInterF_MeasAndReport_specs_2 = { + asn_MAP_ASN_RRC_intraAndInterF_MeasAndReport_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_intraAndInterF_MeasAndReport_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_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_ASN_RRC_intraAndInterF_MeasAndReport_2 = { + "intraAndInterF-MeasAndReport", + "intraAndInterF-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2, + sizeof(asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2) + /sizeof(asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2) + /sizeof(asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_intraAndInterF_MeasAndReport_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_intraAndInterF_MeasAndReport_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_eventA_MeasAndReport_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_eventA_MeasAndReport_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_eventA_MeasAndReport_specs_4 = { + asn_MAP_ASN_RRC_eventA_MeasAndReport_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_eventA_MeasAndReport_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4[] = { + (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_ASN_RRC_eventA_MeasAndReport_4 = { + "eventA-MeasAndReport", + "eventA-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4, + sizeof(asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4) + /sizeof(asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4) + /sizeof(asn_DEF_ASN_RRC_eventA_MeasAndReport_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_eventA_MeasAndReport_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_eventA_MeasAndReport_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverInterF_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverInterF_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverInterF_specs_8 = { + asn_MAP_ASN_RRC_handoverInterF_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverInterF_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverInterF_tags_8[] = { + (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_ASN_RRC_handoverInterF_8 = { + "handoverInterF", + "handoverInterF", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverInterF_tags_8, + sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_8) + /sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverInterF_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_8) + /sizeof(asn_DEF_ASN_RRC_handoverInterF_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverInterF_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverInterF_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverLTE_EPC_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverLTE_EPC_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverLTE_EPC_specs_10 = { + asn_MAP_ASN_RRC_handoverLTE_EPC_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverLTE_EPC_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10[] = { + (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_ASN_RRC_handoverLTE_EPC_10 = { + "handoverLTE-EPC", + "handoverLTE-EPC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10, + sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_EPC_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverLTE_EPC_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverLTE_EPC_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_handoverLTE_5GC_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_handoverLTE_5GC_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_handoverLTE_5GC_specs_12 = { + asn_MAP_ASN_RRC_handoverLTE_5GC_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_handoverLTE_5GC_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12[] = { + (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_ASN_RRC_handoverLTE_5GC_12 = { + "handoverLTE-5GC", + "handoverLTE-5GC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12, + sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12) + /sizeof(asn_DEF_ASN_RRC_handoverLTE_5GC_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_handoverLTE_5GC_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_handoverLTE_5GC_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_7[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1, handoverInterF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverInterF_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverInterF" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1, handoverLTE_EPC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverLTE_EPC_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE-EPC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1, handoverLTE_5GC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_handoverLTE_5GC_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE-5GC" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_7[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverInterF */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverLTE-EPC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* handoverLTE-5GC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_7 = { + sizeof(struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1), + offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_7, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_7, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_7, + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_7, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersXDD_Diff_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff, intraAndInterF_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraAndInterF-MeasAndReport" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff, eventA_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eventA_MeasAndReport_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA-MeasAndReport" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasAndMobParametersXDD_Diff_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasAndMobParametersXDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* intraAndInterF-MeasAndReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventA-MeasAndReport */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersXDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_MeasAndMobParametersXDD_Diff), + offsetof(struct ASN_RRC_MeasAndMobParametersXDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_MeasAndMobParametersXDD_Diff_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasAndMobParametersXDD_Diff_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff = { + "MeasAndMobParametersXDD-Diff", + "MeasAndMobParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasAndMobParametersXDD_Diff_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasAndMobParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.h b/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.h new file mode 100644 index 0000000..bc54b69 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasAndMobParametersXDD-Diff.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasAndMobParametersXDD_Diff_H_ +#define _ASN_RRC_MeasAndMobParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport { + ASN_RRC_MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport_supported = 0 +} e_ASN_RRC_MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport; +typedef enum ASN_RRC_MeasAndMobParametersXDD_Diff__eventA_MeasAndReport { + ASN_RRC_MeasAndMobParametersXDD_Diff__eventA_MeasAndReport_supported = 0 +} e_ASN_RRC_MeasAndMobParametersXDD_Diff__eventA_MeasAndReport; +typedef enum ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverInterF { + ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverInterF_supported = 0 +} e_ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverInterF; +typedef enum ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_EPC { + ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_EPC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_EPC; +typedef enum ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_5GC { + ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_5GC_supported = 0 +} e_ASN_RRC_MeasAndMobParametersXDD_Diff__ext1__handoverLTE_5GC; + +/* ASN_RRC_MeasAndMobParametersXDD-Diff */ +typedef struct ASN_RRC_MeasAndMobParametersXDD_Diff { + long *intraAndInterF_MeasAndReport; /* OPTIONAL */ + long *eventA_MeasAndReport; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasAndMobParametersXDD_Diff__ext1 { + long *handoverInterF; /* OPTIONAL */ + long *handoverLTE_EPC; /* OPTIONAL */ + long *handoverLTE_5GC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasAndMobParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraAndInterF_MeasAndReport_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eventA_MeasAndReport_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverInterF_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverLTE_EPC_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_handoverLTE_5GC_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasAndMobParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasAndMobParametersXDD_Diff_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasAndMobParametersXDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasConfig.c b/src/asn/rrc/ASN_RRC_MeasConfig.c new file mode 100644 index 0000000..7be9bd4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfig.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasConfig.h" + +#include "ASN_RRC_MeasObjectToRemoveList.h" +#include "ASN_RRC_MeasObjectToAddModList.h" +#include "ASN_RRC_ReportConfigToRemoveList.h" +#include "ASN_RRC_ReportConfigToAddModList.h" +#include "ASN_RRC_MeasIdToRemoveList.h" +#include "ASN_RRC_MeasIdToAddModList.h" +#include "ASN_RRC_QuantityConfig.h" +#include "ASN_RRC_MeasGapConfig.h" +#include "ASN_RRC_MeasGapSharingConfig.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_s_MeasureConfig_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_s_MeasureConfig_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasConfig__s_MeasureConfig, choice.ssb_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasConfig__s_MeasureConfig, choice.csi_RSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_s_MeasureConfig_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-RSRP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RSRP */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_s_MeasureConfig_specs_8 = { + sizeof(struct ASN_RRC_MeasConfig__s_MeasureConfig), + offsetof(struct ASN_RRC_MeasConfig__s_MeasureConfig, _asn_ctx), + offsetof(struct ASN_RRC_MeasConfig__s_MeasureConfig, present), + sizeof(((struct ASN_RRC_MeasConfig__s_MeasureConfig *)0)->present), + asn_MAP_ASN_RRC_s_MeasureConfig_tag2el_8, + 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_ASN_RRC_s_MeasureConfig_8 = { + "s-MeasureConfig", + "s-MeasureConfig", + &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_ASN_RRC_s_MeasureConfig_constr_8, CHOICE_constraint }, + asn_MBR_ASN_RRC_s_MeasureConfig_8, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_s_MeasureConfig_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfig_1[] = { + { ATF_POINTER, 10, offsetof(struct ASN_RRC_MeasConfig, measObjectToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectToRemoveList" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_MeasConfig, measObjectToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectToAddModList" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_MeasConfig, reportConfigToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigToRemoveList" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MeasConfig, reportConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MeasConfig, measIdToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasIdToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdToRemoveList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MeasConfig, measIdToAddModList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasIdToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasConfig, s_MeasureConfig), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_s_MeasureConfig_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-MeasureConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasConfig, quantityConfig), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QuantityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasConfig, measGapConfig), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasGapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasConfig, measGapSharingConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasGapSharingConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapSharingConfig" + }, +}; +static const int asn_MAP_ASN_RRC_MeasConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measObjectToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measObjectToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportConfigToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reportConfigToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* measIdToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* measIdToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* s-MeasureConfig */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* quantityConfig */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* measGapConfig */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* measGapSharingConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfig_specs_1 = { + sizeof(struct ASN_RRC_MeasConfig), + offsetof(struct ASN_RRC_MeasConfig, _asn_ctx), + asn_MAP_ASN_RRC_MeasConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasConfig_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfig = { + "MeasConfig", + "MeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasConfig_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_MeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasConfig.h b/src/asn/rrc/ASN_RRC_MeasConfig.h new file mode 100644 index 0000000..2ed7f17 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfig.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasConfig_H_ +#define _ASN_RRC_MeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-Range.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasConfig__s_MeasureConfig_PR { + ASN_RRC_MeasConfig__s_MeasureConfig_PR_NOTHING, /* No components present */ + ASN_RRC_MeasConfig__s_MeasureConfig_PR_ssb_RSRP, + ASN_RRC_MeasConfig__s_MeasureConfig_PR_csi_RSRP +} ASN_RRC_MeasConfig__s_MeasureConfig_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasObjectToRemoveList; +struct ASN_RRC_MeasObjectToAddModList; +struct ASN_RRC_ReportConfigToRemoveList; +struct ASN_RRC_ReportConfigToAddModList; +struct ASN_RRC_MeasIdToRemoveList; +struct ASN_RRC_MeasIdToAddModList; +struct ASN_RRC_QuantityConfig; +struct ASN_RRC_MeasGapConfig; +struct ASN_RRC_MeasGapSharingConfig; + +/* ASN_RRC_MeasConfig */ +typedef struct ASN_RRC_MeasConfig { + struct ASN_RRC_MeasObjectToRemoveList *measObjectToRemoveList; /* OPTIONAL */ + struct ASN_RRC_MeasObjectToAddModList *measObjectToAddModList; /* OPTIONAL */ + struct ASN_RRC_ReportConfigToRemoveList *reportConfigToRemoveList; /* OPTIONAL */ + struct ASN_RRC_ReportConfigToAddModList *reportConfigToAddModList; /* OPTIONAL */ + struct ASN_RRC_MeasIdToRemoveList *measIdToRemoveList; /* OPTIONAL */ + struct ASN_RRC_MeasIdToAddModList *measIdToAddModList; /* OPTIONAL */ + struct ASN_RRC_MeasConfig__s_MeasureConfig { + ASN_RRC_MeasConfig__s_MeasureConfig_PR present; + union ASN_RRC_MeasConfig__ASN_RRC_s_MeasureConfig_u { + ASN_RRC_RSRP_Range_t ssb_RSRP; + ASN_RRC_RSRP_Range_t csi_RSRP; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *s_MeasureConfig; + struct ASN_RRC_QuantityConfig *quantityConfig; /* OPTIONAL */ + struct ASN_RRC_MeasGapConfig *measGapConfig; /* OPTIONAL */ + struct ASN_RRC_MeasGapSharingConfig *measGapSharingConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasConfigMN.c b/src/asn/rrc/ASN_RRC_MeasConfigMN.c new file mode 100644 index 0000000..d4e432c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfigMN.c @@ -0,0 +1,248 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasConfigMN.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_NR-FreqInfo.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_measuredFrequenciesMN_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_ASN_RRC_measuredFrequenciesMN_constr_2 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_type_ASN_RRC_gapPurpose_constr_5 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_ASN_RRC_measuredFrequenciesMN_constr_2 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_ASN_RRC_measuredFrequenciesMN_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NR_FreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_measuredFrequenciesMN_specs_2 = { + sizeof(struct ASN_RRC_MeasConfigMN__measuredFrequenciesMN), + offsetof(struct ASN_RRC_MeasConfigMN__measuredFrequenciesMN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measuredFrequenciesMN_2 = { + "measuredFrequenciesMN", + "measuredFrequenciesMN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2, + sizeof(asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2) + /sizeof(asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2) + /sizeof(asn_DEF_ASN_RRC_measuredFrequenciesMN_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_measuredFrequenciesMN_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_measuredFrequenciesMN_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_measuredFrequenciesMN_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_gapPurpose_value2enum_5[] = { + { 0, 5, "perUE" }, + { 1, 6, "perFR1" } +}; +static const unsigned int asn_MAP_ASN_RRC_gapPurpose_enum2value_5[] = { + 1, /* perFR1(1) */ + 0 /* perUE(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_gapPurpose_specs_5 = { + asn_MAP_ASN_RRC_gapPurpose_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_gapPurpose_enum2value_5, /* 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_ASN_RRC_gapPurpose_tags_5[] = { + (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_ASN_RRC_gapPurpose_5 = { + "gapPurpose", + "gapPurpose", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_gapPurpose_tags_5, + sizeof(asn_DEF_ASN_RRC_gapPurpose_tags_5) + /sizeof(asn_DEF_ASN_RRC_gapPurpose_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_gapPurpose_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_gapPurpose_tags_5) + /sizeof(asn_DEF_ASN_RRC_gapPurpose_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_gapPurpose_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_gapPurpose_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_9[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasConfigMN__ext1, measGapConfigFR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfigFR2" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_9[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measGapConfigFR2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_9 = { + sizeof(struct ASN_RRC_MeasConfigMN__ext1), + offsetof(struct ASN_RRC_MeasConfigMN__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_9, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_9, + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_9, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfigMN_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasConfigMN, measuredFrequenciesMN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_measuredFrequenciesMN_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_measuredFrequenciesMN_constr_2, memb_ASN_RRC_measuredFrequenciesMN_constraint_1 }, + 0, 0, /* No default value */ + "measuredFrequenciesMN" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasConfigMN, measGapConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasConfigMN, gapPurpose), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_gapPurpose_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapPurpose" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasConfigMN, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasConfigMN_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasConfigMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasConfigMN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measuredFrequenciesMN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measGapConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gapPurpose */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfigMN_specs_1 = { + sizeof(struct ASN_RRC_MeasConfigMN), + offsetof(struct ASN_RRC_MeasConfigMN, _asn_ctx), + asn_MAP_ASN_RRC_MeasConfigMN_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasConfigMN_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfigMN = { + "MeasConfigMN", + "MeasConfigMN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasConfigMN_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasConfigMN_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfigMN_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasConfigMN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasConfigMN_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfigMN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasConfigMN_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MeasConfigMN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasConfigMN.h b/src/asn/rrc/ASN_RRC_MeasConfigMN.h new file mode 100644 index 0000000..8ee967d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfigMN.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasConfigMN_H_ +#define _ASN_RRC_MeasConfigMN_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasConfigMN__gapPurpose { + ASN_RRC_MeasConfigMN__gapPurpose_perUE = 0, + ASN_RRC_MeasConfigMN__gapPurpose_perFR1 = 1 +} e_ASN_RRC_MeasConfigMN__gapPurpose; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_GapConfig; +struct ASN_RRC_NR_FreqInfo; + +/* ASN_RRC_MeasConfigMN */ +typedef struct ASN_RRC_MeasConfigMN { + struct ASN_RRC_MeasConfigMN__measuredFrequenciesMN { + A_SEQUENCE_OF(struct ASN_RRC_NR_FreqInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measuredFrequenciesMN; + struct ASN_RRC_SetupRelease_GapConfig *measGapConfig; /* OPTIONAL */ + long *gapPurpose; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasConfigMN__ext1 { + struct ASN_RRC_SetupRelease_GapConfig *measGapConfigFR2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasConfigMN_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_gapPurpose_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfigMN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfigMN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfigMN_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasConfigMN_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasConfigSN.c b/src/asn/rrc/ASN_RRC_MeasConfigSN.c new file mode 100644 index 0000000..916a39a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfigSN.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasConfigSN.h" + +#include "ASN_RRC_NR-FreqInfo.h" +static int +memb_ASN_RRC_measuredFrequenciesSN_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_ASN_RRC_measuredFrequenciesSN_constr_2 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_ASN_RRC_measuredFrequenciesSN_constr_2 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_ASN_RRC_measuredFrequenciesSN_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NR_FreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_measuredFrequenciesSN_specs_2 = { + sizeof(struct ASN_RRC_MeasConfigSN__measuredFrequenciesSN), + offsetof(struct ASN_RRC_MeasConfigSN__measuredFrequenciesSN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measuredFrequenciesSN_2 = { + "measuredFrequenciesSN", + "measuredFrequenciesSN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2, + sizeof(asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2) + /sizeof(asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2) + /sizeof(asn_DEF_ASN_RRC_measuredFrequenciesSN_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_measuredFrequenciesSN_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_measuredFrequenciesSN_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_measuredFrequenciesSN_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfigSN_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasConfigSN, measuredFrequenciesSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_measuredFrequenciesSN_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_measuredFrequenciesSN_constr_2, memb_ASN_RRC_measuredFrequenciesSN_constraint_1 }, + 0, 0, /* No default value */ + "measuredFrequenciesSN" + }, +}; +static const int asn_MAP_ASN_RRC_MeasConfigSN_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasConfigSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasConfigSN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measuredFrequenciesSN */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfigSN_specs_1 = { + sizeof(struct ASN_RRC_MeasConfigSN), + offsetof(struct ASN_RRC_MeasConfigSN, _asn_ctx), + asn_MAP_ASN_RRC_MeasConfigSN_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasConfigSN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfigSN = { + "MeasConfigSN", + "MeasConfigSN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasConfigSN_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasConfigSN_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfigSN_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasConfigSN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasConfigSN_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasConfigSN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasConfigSN_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasConfigSN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasConfigSN.h b/src/asn/rrc/ASN_RRC_MeasConfigSN.h new file mode 100644 index 0000000..5a64413 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasConfigSN.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasConfigSN_H_ +#define _ASN_RRC_MeasConfigSN_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NR_FreqInfo; + +/* ASN_RRC_MeasConfigSN */ +typedef struct ASN_RRC_MeasConfigSN { + struct ASN_RRC_MeasConfigSN__measuredFrequenciesSN { + A_SEQUENCE_OF(struct ASN_RRC_NR_FreqInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measuredFrequenciesSN; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasConfigSN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasConfigSN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasConfigSN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasConfigSN_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasConfigSN_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasGapConfig.c b/src/asn/rrc/ASN_RRC_MeasGapConfig.c new file mode 100644 index 0000000..2aadfe6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapConfig.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasGapConfig.h" + +#include "ASN_RRC_SetupRelease.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_4[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasGapConfig__ext1, gapFR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapFR1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasGapConfig__ext1, gapUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapUE" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gapFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gapUE */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_4 = { + sizeof(struct ASN_RRC_MeasGapConfig__ext1), + offsetof(struct ASN_RRC_MeasGapConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_4, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_4 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_4, + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasGapConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasGapConfig, gapFR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapFR2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasGapConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasGapConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasGapConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasGapConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gapFR2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasGapConfig_specs_1 = { + sizeof(struct ASN_RRC_MeasGapConfig), + offsetof(struct ASN_RRC_MeasGapConfig, _asn_ctx), + asn_MAP_ASN_RRC_MeasGapConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasGapConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapConfig = { + "MeasGapConfig", + "MeasGapConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasGapConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasGapConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasGapConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasGapConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasGapConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasGapConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasGapConfig.h b/src/asn/rrc/ASN_RRC_MeasGapConfig.h new file mode 100644 index 0000000..30e4930 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasGapConfig_H_ +#define _ASN_RRC_MeasGapConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_GapConfig; + +/* ASN_RRC_MeasGapConfig */ +typedef struct ASN_RRC_MeasGapConfig { + struct ASN_RRC_SetupRelease_GapConfig *gapFR2; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasGapConfig__ext1 { + struct ASN_RRC_SetupRelease_GapConfig *gapFR1; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_GapConfig *gapUE; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasGapConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasGapConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasGapConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasGapConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.c b/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.c new file mode 100644 index 0000000..44a1d42 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.c @@ -0,0 +1,118 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasGapSharingConfig.h" + +#include "ASN_RRC_SetupRelease.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_4[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasGapSharingConfig__ext1, gapSharingFR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingFR1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasGapSharingConfig__ext1, gapSharingUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingUE" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gapSharingFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* gapSharingUE */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_4 = { + sizeof(struct ASN_RRC_MeasGapSharingConfig__ext1), + offsetof(struct ASN_RRC_MeasGapSharingConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_4, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_4 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_4, + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_4) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasGapSharingConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasGapSharingConfig, gapSharingFR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingFR2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasGapSharingConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasGapSharingConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasGapSharingConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gapSharingFR2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasGapSharingConfig_specs_1 = { + sizeof(struct ASN_RRC_MeasGapSharingConfig), + offsetof(struct ASN_RRC_MeasGapSharingConfig, _asn_ctx), + asn_MAP_ASN_RRC_MeasGapSharingConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasGapSharingConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapSharingConfig = { + "MeasGapSharingConfig", + "MeasGapSharingConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapSharingConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasGapSharingConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasGapSharingConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.h b/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.h new file mode 100644 index 0000000..0a411c4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapSharingConfig.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasGapSharingConfig_H_ +#define _ASN_RRC_MeasGapSharingConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_MeasGapSharingScheme; + +/* ASN_RRC_MeasGapSharingConfig */ +typedef struct ASN_RRC_MeasGapSharingConfig { + struct ASN_RRC_SetupRelease_MeasGapSharingScheme *gapSharingFR2; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasGapSharingConfig__ext1 { + struct ASN_RRC_SetupRelease_MeasGapSharingScheme *gapSharingFR1; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_MeasGapSharingScheme *gapSharingUE; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasGapSharingConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapSharingConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasGapSharingConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasGapSharingConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasGapSharingConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.c b/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.c new file mode 100644 index 0000000..e40b8c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasGapSharingScheme.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasGapSharingScheme_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_ASN_RRC_MeasGapSharingScheme_value2enum_1[] = { + { 0, 8, "scheme00" }, + { 1, 8, "scheme01" }, + { 2, 8, "scheme10" }, + { 3, 8, "scheme11" } +}; +static const unsigned int asn_MAP_ASN_RRC_MeasGapSharingScheme_enum2value_1[] = { + 0, /* scheme00(0) */ + 1, /* scheme01(1) */ + 2, /* scheme10(2) */ + 3 /* scheme11(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MeasGapSharingScheme_specs_1 = { + asn_MAP_ASN_RRC_MeasGapSharingScheme_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_MeasGapSharingScheme_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_ASN_RRC_MeasGapSharingScheme_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapSharingScheme = { + "MeasGapSharingScheme", + "MeasGapSharingScheme", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasGapSharingScheme_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasGapSharingScheme_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_MeasGapSharingScheme_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.h b/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.h new file mode 100644 index 0000000..220268f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasGapSharingScheme.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasGapSharingScheme_H_ +#define _ASN_RRC_MeasGapSharingScheme_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasGapSharingScheme { + ASN_RRC_MeasGapSharingScheme_scheme00 = 0, + ASN_RRC_MeasGapSharingScheme_scheme01 = 1, + ASN_RRC_MeasGapSharingScheme_scheme10 = 2, + ASN_RRC_MeasGapSharingScheme_scheme11 = 3 +} e_ASN_RRC_MeasGapSharingScheme; + +/* ASN_RRC_MeasGapSharingScheme */ +typedef long ASN_RRC_MeasGapSharingScheme_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasGapSharingScheme_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasGapSharingScheme; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_MeasGapSharingScheme_specs_1; +asn_struct_free_f ASN_RRC_MeasGapSharingScheme_free; +asn_struct_print_f ASN_RRC_MeasGapSharingScheme_print; +asn_constr_check_f ASN_RRC_MeasGapSharingScheme_constraint; +ber_type_decoder_f ASN_RRC_MeasGapSharingScheme_decode_ber; +der_type_encoder_f ASN_RRC_MeasGapSharingScheme_encode_der; +xer_type_decoder_f ASN_RRC_MeasGapSharingScheme_decode_xer; +xer_type_encoder_f ASN_RRC_MeasGapSharingScheme_encode_xer; +per_type_decoder_f ASN_RRC_MeasGapSharingScheme_decode_uper; +per_type_encoder_f ASN_RRC_MeasGapSharingScheme_encode_uper; +per_type_decoder_f ASN_RRC_MeasGapSharingScheme_decode_aper; +per_type_encoder_f ASN_RRC_MeasGapSharingScheme_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasGapSharingScheme_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasId.c b/src/asn/rrc/ASN_RRC_MeasId.c new file mode 100644 index 0000000..5deb1ec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasId.h" + +int +ASN_RRC_MeasId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasId = { + "MeasId", + "MeasId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_MeasId_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasId_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasId_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasId_constr_1, ASN_RRC_MeasId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasId.h b/src/asn/rrc/ASN_RRC_MeasId.h new file mode 100644 index 0000000..be16678 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasId_H_ +#define _ASN_RRC_MeasId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasId */ +typedef long ASN_RRC_MeasId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasId; +asn_struct_free_f ASN_RRC_MeasId_free; +asn_struct_print_f ASN_RRC_MeasId_print; +asn_constr_check_f ASN_RRC_MeasId_constraint; +ber_type_decoder_f ASN_RRC_MeasId_decode_ber; +der_type_encoder_f ASN_RRC_MeasId_encode_der; +xer_type_decoder_f ASN_RRC_MeasId_decode_xer; +xer_type_encoder_f ASN_RRC_MeasId_encode_xer; +per_type_decoder_f ASN_RRC_MeasId_decode_uper; +per_type_encoder_f ASN_RRC_MeasId_encode_uper; +per_type_decoder_f ASN_RRC_MeasId_decode_aper; +per_type_encoder_f ASN_RRC_MeasId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasIdToAddMod.c b/src/asn/rrc/ASN_RRC_MeasIdToAddMod.c new file mode 100644 index 0000000..a1cfee9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToAddMod.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasIdToAddMod.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasIdToAddMod, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasIdToAddMod, measObjectId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasIdToAddMod, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasIdToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measObjectId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* reportConfigId */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasIdToAddMod_specs_1 = { + sizeof(struct ASN_RRC_MeasIdToAddMod), + offsetof(struct ASN_RRC_MeasIdToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_MeasIdToAddMod_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_ASN_RRC_MeasIdToAddMod = { + "MeasIdToAddMod", + "MeasIdToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasIdToAddMod_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasIdToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasIdToAddMod.h b/src/asn/rrc/ASN_RRC_MeasIdToAddMod.h new file mode 100644 index 0000000..b6e7511 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToAddMod.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasIdToAddMod_H_ +#define _ASN_RRC_MeasIdToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasId.h" +#include "ASN_RRC_MeasObjectId.h" +#include "ASN_RRC_ReportConfigId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasIdToAddMod */ +typedef struct ASN_RRC_MeasIdToAddMod { + ASN_RRC_MeasId_t measId; + ASN_RRC_MeasObjectId_t measObjectId; + ASN_RRC_ReportConfigId_t reportConfigId; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasIdToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasIdToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasIdToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToAddMod_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasIdToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasIdToAddModList.c b/src/asn/rrc/ASN_RRC_MeasIdToAddModList.c new file mode 100644 index 0000000..c0a6ce6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasIdToAddModList.h" + +#include "ASN_RRC_MeasIdToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasIdToAddModList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasIdToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasIdToAddModList_specs_1 = { + sizeof(struct ASN_RRC_MeasIdToAddModList), + offsetof(struct ASN_RRC_MeasIdToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasIdToAddModList = { + "MeasIdToAddModList", + "MeasIdToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasIdToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasIdToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasIdToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasIdToAddModList.h b/src/asn/rrc/ASN_RRC_MeasIdToAddModList.h new file mode 100644 index 0000000..71564d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasIdToAddModList_H_ +#define _ASN_RRC_MeasIdToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasIdToAddMod; + +/* ASN_RRC_MeasIdToAddModList */ +typedef struct ASN_RRC_MeasIdToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_MeasIdToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasIdToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasIdToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasIdToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasIdToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasIdToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.c b/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.c new file mode 100644 index 0000000..64405c9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasIdToRemoveList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasIdToRemoveList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasIdToRemoveList_specs_1 = { + sizeof(struct ASN_RRC_MeasIdToRemoveList), + offsetof(struct ASN_RRC_MeasIdToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasIdToRemoveList = { + "MeasIdToRemoveList", + "MeasIdToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasIdToRemoveList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasIdToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasIdToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasIdToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.h b/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.h new file mode 100644 index 0000000..fe362c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasIdToRemoveList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasIdToRemoveList_H_ +#define _ASN_RRC_MeasIdToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasIdToRemoveList */ +typedef struct ASN_RRC_MeasIdToRemoveList { + A_SEQUENCE_OF(ASN_RRC_MeasId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasIdToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasIdToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasIdToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasIdToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasIdToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasIdToRemoveList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.c b/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.c new file mode 100644 index 0000000..4160fc9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.c @@ -0,0 +1,281 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectEUTRA.h" + +#include "ASN_RRC_EUTRA-CellIndexList.h" +#include "ASN_RRC_EUTRA-Cell.h" +#include "ASN_RRC_EUTRA-BlackCell.h" +static int +memb_ASN_RRC_cellsToAddModListEUTRAN_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 int +memb_ASN_RRC_blackCellsToAddModListEUTRAN_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_ASN_RRC_cellsToAddModListEUTRAN_constr_5 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_type_ASN_RRC_blackCellsToAddModListEUTRAN_constr_8 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_ASN_RRC_cellsToAddModListEUTRAN_constr_5 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_ASN_RRC_blackCellsToAddModListEUTRAN_constr_8 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_ASN_RRC_cellsToAddModListEUTRAN_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_Cell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_cellsToAddModListEUTRAN_specs_5 = { + sizeof(struct ASN_RRC_MeasObjectEUTRA__cellsToAddModListEUTRAN), + offsetof(struct ASN_RRC_MeasObjectEUTRA__cellsToAddModListEUTRAN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_5 = { + "cellsToAddModListEUTRAN", + "cellsToAddModListEUTRAN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5, + sizeof(asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5) + /sizeof(asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5) + /sizeof(asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cellsToAddModListEUTRAN_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_cellsToAddModListEUTRAN_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_cellsToAddModListEUTRAN_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_blackCellsToAddModListEUTRAN_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_EUTRA_BlackCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_blackCellsToAddModListEUTRAN_specs_8 = { + sizeof(struct ASN_RRC_MeasObjectEUTRA__blackCellsToAddModListEUTRAN), + offsetof(struct ASN_RRC_MeasObjectEUTRA__blackCellsToAddModListEUTRAN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_8 = { + "blackCellsToAddModListEUTRAN", + "blackCellsToAddModListEUTRAN", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8, + sizeof(asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8) + /sizeof(asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8) + /sizeof(asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_blackCellsToAddModListEUTRAN_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_blackCellsToAddModListEUTRAN_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_blackCellsToAddModListEUTRAN_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectEUTRA, allowedMeasBandwidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_AllowedMeasBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedMeasBandwidth" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasObjectEUTRA, cellsToRemoveListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_CellIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToRemoveListEUTRAN" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasObjectEUTRA, cellsToAddModListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_cellsToAddModListEUTRAN_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_cellsToAddModListEUTRAN_constr_5, memb_ASN_RRC_cellsToAddModListEUTRAN_constraint_1 }, + 0, 0, /* No default value */ + "cellsToAddModListEUTRAN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasObjectEUTRA, blackCellsToRemoveListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_CellIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "blackCellsToRemoveListEUTRAN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectEUTRA, blackCellsToAddModListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_blackCellsToAddModListEUTRAN_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_blackCellsToAddModListEUTRAN_constr_8, memb_ASN_RRC_blackCellsToAddModListEUTRAN_constraint_1 }, + 0, 0, /* No default value */ + "blackCellsToAddModListEUTRAN" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectEUTRA, eutra_PresenceAntennaPort1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PresenceAntennaPort1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PresenceAntennaPort1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectEUTRA, eutra_Q_OffsetRange), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-Q-OffsetRange" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectEUTRA, widebandRSRQ_Meas), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "widebandRSRQ-Meas" + }, +}; +static const int asn_MAP_ASN_RRC_MeasObjectEUTRA_oms_1[] = { 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasObjectEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allowedMeasBandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cellsToRemoveListEUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cellsToAddModListEUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* blackCellsToRemoveListEUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* blackCellsToAddModListEUTRAN */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eutra-PresenceAntennaPort1 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* eutra-Q-OffsetRange */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* widebandRSRQ-Meas */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasObjectEUTRA), + offsetof(struct ASN_RRC_MeasObjectEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_MeasObjectEUTRA_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasObjectEUTRA_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectEUTRA = { + "MeasObjectEUTRA", + "MeasObjectEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasObjectEUTRA_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_MeasObjectEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.h b/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.h new file mode 100644 index 0000000..5519abb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectEUTRA.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectEUTRA_H_ +#define _ASN_RRC_MeasObjectEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include "ASN_RRC_EUTRA-AllowedMeasBandwidth.h" +#include "ASN_RRC_EUTRA-PresenceAntennaPort1.h" +#include "ASN_RRC_EUTRA-Q-OffsetRange.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_EUTRA_CellIndexList; +struct ASN_RRC_EUTRA_Cell; +struct ASN_RRC_EUTRA_BlackCell; + +/* ASN_RRC_MeasObjectEUTRA */ +typedef struct ASN_RRC_MeasObjectEUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t carrierFreq; + ASN_RRC_EUTRA_AllowedMeasBandwidth_t allowedMeasBandwidth; + struct ASN_RRC_EUTRA_CellIndexList *cellsToRemoveListEUTRAN; /* OPTIONAL */ + struct ASN_RRC_MeasObjectEUTRA__cellsToAddModListEUTRAN { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_Cell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cellsToAddModListEUTRAN; + struct ASN_RRC_EUTRA_CellIndexList *blackCellsToRemoveListEUTRAN; /* OPTIONAL */ + struct ASN_RRC_MeasObjectEUTRA__blackCellsToAddModListEUTRAN { + A_SEQUENCE_OF(struct ASN_RRC_EUTRA_BlackCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *blackCellsToAddModListEUTRAN; + ASN_RRC_EUTRA_PresenceAntennaPort1_t eutra_PresenceAntennaPort1; + ASN_RRC_EUTRA_Q_OffsetRange_t *eutra_Q_OffsetRange; /* OPTIONAL */ + BOOLEAN_t widebandRSRQ_Meas; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasObjectEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectEUTRA_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectId.c b/src/asn/rrc/ASN_RRC_MeasObjectId.c new file mode 100644 index 0000000..3603127 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectId.h" + +int +ASN_RRC_MeasObjectId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectId = { + "MeasObjectId", + "MeasObjectId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_MeasObjectId_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectId_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectId_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasObjectId_constr_1, ASN_RRC_MeasObjectId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectId.h b/src/asn/rrc/ASN_RRC_MeasObjectId.h new file mode 100644 index 0000000..166a9b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectId_H_ +#define _ASN_RRC_MeasObjectId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasObjectId */ +typedef long ASN_RRC_MeasObjectId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectId; +asn_struct_free_f ASN_RRC_MeasObjectId_free; +asn_struct_print_f ASN_RRC_MeasObjectId_print; +asn_constr_check_f ASN_RRC_MeasObjectId_constraint; +ber_type_decoder_f ASN_RRC_MeasObjectId_decode_ber; +der_type_encoder_f ASN_RRC_MeasObjectId_encode_der; +xer_type_decoder_f ASN_RRC_MeasObjectId_decode_xer; +xer_type_encoder_f ASN_RRC_MeasObjectId_encode_xer; +per_type_decoder_f ASN_RRC_MeasObjectId_decode_uper; +per_type_encoder_f ASN_RRC_MeasObjectId_encode_uper; +per_type_decoder_f ASN_RRC_MeasObjectId_decode_aper; +per_type_encoder_f ASN_RRC_MeasObjectId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectNR.c b/src/asn/rrc/ASN_RRC_MeasObjectNR.c new file mode 100644 index 0000000..4764ae9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectNR.c @@ -0,0 +1,586 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectNR.h" + +#include "ASN_RRC_SSB-MTC.h" +#include "ASN_RRC_SSB-MTC2.h" +#include "ASN_RRC_ThresholdNR.h" +#include "ASN_RRC_PCI-List.h" +#include "ASN_RRC_CellsToAddModList.h" +#include "ASN_RRC_PCI-RangeIndexList.h" +#include "ASN_RRC_PCI-RangeElement.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_nrofSS_BlocksToAverage_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 >= 2 && value <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofCSI_RS_ResourcesToAverage_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 >= 2 && value <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_quantityConfigIndex_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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_blackCellsToAddModList_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 <= 8)) { + /* 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 int +memb_ASN_RRC_whiteCellsToAddModList_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 <= 8)) { + /* 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_ASN_RRC_blackCellsToAddModList_constr_17 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_per_constraints_t asn_PER_type_ASN_RRC_whiteCellsToAddModList_constr_20 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_per_constraints_t asn_PER_type_ASN_RRC_measCycleSCell_v1530_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofSS_BlocksToAverage_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 2, 16 } /* (2..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofCSI_RS_ResourcesToAverage_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 2, 16 } /* (2..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_quantityConfigIndex_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_blackCellsToAddModList_constr_17 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_per_constraints_t asn_PER_memb_ASN_RRC_whiteCellsToAddModList_constr_20 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_ASN_RRC_blackCellsToAddModList_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PCI_RangeElement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_blackCellsToAddModList_specs_17 = { + sizeof(struct ASN_RRC_MeasObjectNR__blackCellsToAddModList), + offsetof(struct ASN_RRC_MeasObjectNR__blackCellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_blackCellsToAddModList_17 = { + "blackCellsToAddModList", + "blackCellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17, + sizeof(asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17) + /sizeof(asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17) + /sizeof(asn_DEF_ASN_RRC_blackCellsToAddModList_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_blackCellsToAddModList_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_blackCellsToAddModList_17, + 1, /* Single element */ + &asn_SPC_ASN_RRC_blackCellsToAddModList_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_whiteCellsToAddModList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PCI_RangeElement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_whiteCellsToAddModList_specs_20 = { + sizeof(struct ASN_RRC_MeasObjectNR__whiteCellsToAddModList), + offsetof(struct ASN_RRC_MeasObjectNR__whiteCellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_whiteCellsToAddModList_20 = { + "whiteCellsToAddModList", + "whiteCellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20, + sizeof(asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20) + /sizeof(asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20) + /sizeof(asn_DEF_ASN_RRC_whiteCellsToAddModList_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_whiteCellsToAddModList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_whiteCellsToAddModList_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_whiteCellsToAddModList_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_measCycleSCell_v1530_value2enum_25[] = { + { 0, 5, "sf160" }, + { 1, 5, "sf256" }, + { 2, 5, "sf320" }, + { 3, 5, "sf512" }, + { 4, 5, "sf640" }, + { 5, 6, "sf1024" }, + { 6, 6, "sf1280" } +}; +static const unsigned int asn_MAP_ASN_RRC_measCycleSCell_v1530_enum2value_25[] = { + 5, /* sf1024(5) */ + 6, /* sf1280(6) */ + 0, /* sf160(0) */ + 1, /* sf256(1) */ + 2, /* sf320(2) */ + 3, /* sf512(3) */ + 4 /* sf640(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_measCycleSCell_v1530_specs_25 = { + asn_MAP_ASN_RRC_measCycleSCell_v1530_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_measCycleSCell_v1530_enum2value_25, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_measCycleSCell_v1530_tags_25[] = { + (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_ASN_RRC_measCycleSCell_v1530_25 = { + "measCycleSCell-v1530", + "measCycleSCell-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25, + sizeof(asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25) + /sizeof(asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25) + /sizeof(asn_DEF_ASN_RRC_measCycleSCell_v1530_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_measCycleSCell_v1530_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_measCycleSCell_v1530_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_23[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasObjectNR__ext1, freqBandIndicatorNR_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorNR-v1530" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectNR__ext1, measCycleSCell_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_measCycleSCell_v1530_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measCycleSCell-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_23[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNR-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measCycleSCell-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_23 = { + sizeof(struct ASN_RRC_MeasObjectNR__ext1), + offsetof(struct ASN_RRC_MeasObjectNR__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_23, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_23, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_23 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_23, + sizeof(asn_DEF_ASN_RRC_ext1_tags_23) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_23) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_23, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectNR_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MeasObjectNR, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasObjectNR, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasObjectNR, smtc1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasObjectNR, smtc2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectNR, refFreqCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refFreqCSI-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectNR, referenceSignalConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReferenceSignalConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignalConfig" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasObjectNR, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasObjectNR, absThreshCSI_RS_Consolidation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshCSI-RS-Consolidation" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasObjectNR, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSS_BlocksToAverage_constr_10, memb_ASN_RRC_nrofSS_BlocksToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectNR, nrofCSI_RS_ResourcesToAverage), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofCSI_RS_ResourcesToAverage_constr_11, memb_ASN_RRC_nrofCSI_RS_ResourcesToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofCSI-RS-ResourcesToAverage" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectNR, quantityConfigIndex), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_quantityConfigIndex_constr_12, memb_ASN_RRC_quantityConfigIndex_constraint_1 }, + 0, 0, /* No default value */ + "quantityConfigIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectNR, offsetMO), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRangeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetMO" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_MeasObjectNR, cellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCI_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToRemoveList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_MeasObjectNR, cellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellsToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_MeasObjectNR, blackCellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCI_RangeIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "blackCellsToRemoveList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasObjectNR, blackCellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ASN_RRC_blackCellsToAddModList_17, + 0, + { 0, &asn_PER_memb_ASN_RRC_blackCellsToAddModList_constr_17, memb_ASN_RRC_blackCellsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "blackCellsToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasObjectNR, whiteCellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCI_RangeIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "whiteCellsToRemoveList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasObjectNR, whiteCellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_ASN_RRC_whiteCellsToAddModList_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_whiteCellsToAddModList_constr_20, memb_ASN_RRC_whiteCellsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "whiteCellsToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasObjectNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasObjectNR_oms_1[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasObjectNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssbFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ssbSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* smtc1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* smtc2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* refFreqCSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* referenceSignalConfig */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* absThreshSS-BlocksConsolidation */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* absThreshCSI-RS-Consolidation */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* nrofSS-BlocksToAverage */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* nrofCSI-RS-ResourcesToAverage */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* quantityConfigIndex */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* offsetMO */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* cellsToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* cellsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* blackCellsToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* blackCellsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* whiteCellsToRemoveList */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* whiteCellsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectNR_specs_1 = { + sizeof(struct ASN_RRC_MeasObjectNR), + offsetof(struct ASN_RRC_MeasObjectNR, _asn_ctx), + asn_MAP_ASN_RRC_MeasObjectNR_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasObjectNR_oms_1, /* Optional members */ + 15, 1, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectNR = { + "MeasObjectNR", + "MeasObjectNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasObjectNR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasObjectNR_1, + 19, /* Elements count */ + &asn_SPC_ASN_RRC_MeasObjectNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectNR.h b/src/asn/rrc/ASN_RRC_MeasObjectNR.h new file mode 100644 index 0000000..dd5af62 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectNR.h @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectNR_H_ +#define _ASN_RRC_MeasObjectNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include "ASN_RRC_ReferenceSignalConfig.h" +#include +#include "ASN_RRC_Q-OffsetRangeList.h" +#include +#include +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530 { + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf160 = 0, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf256 = 1, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf320 = 2, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf512 = 3, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf640 = 4, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf1024 = 5, + ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530_sf1280 = 6 +} e_ASN_RRC_MeasObjectNR__ext1__measCycleSCell_v1530; + +/* Forward declarations */ +struct ASN_RRC_SSB_MTC; +struct ASN_RRC_SSB_MTC2; +struct ASN_RRC_ThresholdNR; +struct ASN_RRC_PCI_List; +struct ASN_RRC_CellsToAddModList; +struct ASN_RRC_PCI_RangeIndexList; +struct ASN_RRC_PCI_RangeElement; + +/* ASN_RRC_MeasObjectNR */ +typedef struct ASN_RRC_MeasObjectNR { + ASN_RRC_ARFCN_ValueNR_t *ssbFrequency; /* OPTIONAL */ + ASN_RRC_SubcarrierSpacing_t *ssbSubcarrierSpacing; /* OPTIONAL */ + struct ASN_RRC_SSB_MTC *smtc1; /* OPTIONAL */ + struct ASN_RRC_SSB_MTC2 *smtc2; /* OPTIONAL */ + ASN_RRC_ARFCN_ValueNR_t *refFreqCSI_RS; /* OPTIONAL */ + ASN_RRC_ReferenceSignalConfig_t referenceSignalConfig; + struct ASN_RRC_ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + struct ASN_RRC_ThresholdNR *absThreshCSI_RS_Consolidation; /* OPTIONAL */ + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + long *nrofCSI_RS_ResourcesToAverage; /* OPTIONAL */ + long quantityConfigIndex; + ASN_RRC_Q_OffsetRangeList_t offsetMO; + struct ASN_RRC_PCI_List *cellsToRemoveList; /* OPTIONAL */ + struct ASN_RRC_CellsToAddModList *cellsToAddModList; /* OPTIONAL */ + struct ASN_RRC_PCI_RangeIndexList *blackCellsToRemoveList; /* OPTIONAL */ + struct ASN_RRC_MeasObjectNR__blackCellsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PCI_RangeElement) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *blackCellsToAddModList; + struct ASN_RRC_PCI_RangeIndexList *whiteCellsToRemoveList; /* OPTIONAL */ + struct ASN_RRC_MeasObjectNR__whiteCellsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PCI_RangeElement) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *whiteCellsToAddModList; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasObjectNR__ext1 { + ASN_RRC_FreqBandIndicatorNR_t *freqBandIndicatorNR_v1530; /* OPTIONAL */ + long *measCycleSCell_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasObjectNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measCycleSCell_v1530_25; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectNR_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.c b/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.c new file mode 100644 index 0000000..089285b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectToAddMod.h" + +#include "ASN_RRC_MeasObjectNR.h" +#include "ASN_RRC_MeasObjectEUTRA.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_measObject_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_TYPE_member_t asn_MBR_ASN_RRC_measObject_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasObjectToAddMod__measObject, choice.measObjectNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasObjectToAddMod__measObject, choice.measObjectEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_measObject_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measObjectNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measObjectEUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_measObject_specs_3 = { + sizeof(struct ASN_RRC_MeasObjectToAddMod__measObject), + offsetof(struct ASN_RRC_MeasObjectToAddMod__measObject, _asn_ctx), + offsetof(struct ASN_RRC_MeasObjectToAddMod__measObject, present), + sizeof(((struct ASN_RRC_MeasObjectToAddMod__measObject *)0)->present), + asn_MAP_ASN_RRC_measObject_tag2el_3, + 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_ASN_RRC_measObject_3 = { + "measObject", + "measObject", + &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_ASN_RRC_measObject_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_measObject_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_measObject_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectToAddMod, measObjectId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasObjectToAddMod, measObject), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_measObject_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObject" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasObjectToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measObjectId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measObject */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectToAddMod_specs_1 = { + sizeof(struct ASN_RRC_MeasObjectToAddMod), + offsetof(struct ASN_RRC_MeasObjectToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_MeasObjectToAddMod_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToAddMod = { + "MeasObjectToAddMod", + "MeasObjectToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasObjectToAddMod_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasObjectToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.h b/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.h new file mode 100644 index 0000000..92be793 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToAddMod.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectToAddMod_H_ +#define _ASN_RRC_MeasObjectToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasObjectId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasObjectToAddMod__measObject_PR { + ASN_RRC_MeasObjectToAddMod__measObject_PR_NOTHING, /* No components present */ + ASN_RRC_MeasObjectToAddMod__measObject_PR_measObjectNR, + /* Extensions may appear below */ + ASN_RRC_MeasObjectToAddMod__measObject_PR_measObjectEUTRA +} ASN_RRC_MeasObjectToAddMod__measObject_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasObjectNR; +struct ASN_RRC_MeasObjectEUTRA; + +/* ASN_RRC_MeasObjectToAddMod */ +typedef struct ASN_RRC_MeasObjectToAddMod { + ASN_RRC_MeasObjectId_t measObjectId; + struct ASN_RRC_MeasObjectToAddMod__measObject { + ASN_RRC_MeasObjectToAddMod__measObject_PR present; + union ASN_RRC_MeasObjectToAddMod__ASN_RRC_measObject_u { + struct ASN_RRC_MeasObjectNR *measObjectNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasObjectEUTRA *measObjectEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } measObject; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasObjectToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasObjectToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.c b/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.c new file mode 100644 index 0000000..070837f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectToAddModList.h" + +#include "ASN_RRC_MeasObjectToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectToAddModList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasObjectToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasObjectToAddModList_specs_1 = { + sizeof(struct ASN_RRC_MeasObjectToAddModList), + offsetof(struct ASN_RRC_MeasObjectToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToAddModList = { + "MeasObjectToAddModList", + "MeasObjectToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasObjectToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasObjectToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasObjectToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.h b/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.h new file mode 100644 index 0000000..2c44cee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectToAddModList_H_ +#define _ASN_RRC_MeasObjectToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasObjectToAddMod; + +/* ASN_RRC_MeasObjectToAddModList */ +typedef struct ASN_RRC_MeasObjectToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_MeasObjectToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasObjectToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasObjectToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.c b/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.c new file mode 100644 index 0000000..bbcbce9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasObjectToRemoveList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectToRemoveList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasObjectToRemoveList_specs_1 = { + sizeof(struct ASN_RRC_MeasObjectToRemoveList), + offsetof(struct ASN_RRC_MeasObjectToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToRemoveList = { + "MeasObjectToRemoveList", + "MeasObjectToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasObjectToRemoveList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasObjectToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasObjectToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasObjectToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.h b/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.h new file mode 100644 index 0000000..03f6931 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasObjectToRemoveList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasObjectToRemoveList_H_ +#define _ASN_RRC_MeasObjectToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasObjectId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasObjectToRemoveList */ +typedef struct ASN_RRC_MeasObjectToRemoveList { + A_SEQUENCE_OF(ASN_RRC_MeasObjectId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasObjectToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasObjectToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasObjectToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasObjectToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasObjectToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasObjectToRemoveList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasQuantityResults.c b/src/asn/rrc/ASN_RRC_MeasQuantityResults.c new file mode 100644 index 0000000..811c090 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasQuantityResults.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasQuantityResults.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasQuantityResults_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasQuantityResults, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasQuantityResults, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasQuantityResults, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_ASN_RRC_MeasQuantityResults_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasQuantityResults_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasQuantityResults_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasQuantityResults_specs_1 = { + sizeof(struct ASN_RRC_MeasQuantityResults), + offsetof(struct ASN_RRC_MeasQuantityResults, _asn_ctx), + asn_MAP_ASN_RRC_MeasQuantityResults_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasQuantityResults_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasQuantityResults = { + "MeasQuantityResults", + "MeasQuantityResults", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasQuantityResults_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasQuantityResults_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasQuantityResults_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasQuantityResults_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasQuantityResults_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasQuantityResults_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasQuantityResults.h b/src/asn/rrc/ASN_RRC_MeasQuantityResults.h new file mode 100644 index 0000000..315accb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasQuantityResults.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasQuantityResults_H_ +#define _ASN_RRC_MeasQuantityResults_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-Range.h" +#include "ASN_RRC_RSRQ-Range.h" +#include "ASN_RRC_SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasQuantityResults */ +typedef struct ASN_RRC_MeasQuantityResults { + ASN_RRC_RSRP_Range_t *rsrp; /* OPTIONAL */ + ASN_RRC_RSRQ_Range_t *rsrq; /* OPTIONAL */ + ASN_RRC_SINR_Range_t *sinr; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasQuantityResults_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasQuantityResults; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasQuantityResults_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasQuantityResults_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasQuantityResults_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.c b/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.c new file mode 100644 index 0000000..9d7aaf4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasQuantityResultsEUTRA.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasQuantityResultsEUTRA_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasQuantityResultsEUTRA, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasQuantityResultsEUTRA, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRQ_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasQuantityResultsEUTRA, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SINR_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_ASN_RRC_MeasQuantityResultsEUTRA_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasQuantityResultsEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasQuantityResultsEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasQuantityResultsEUTRA), + offsetof(struct ASN_RRC_MeasQuantityResultsEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_MeasQuantityResultsEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasQuantityResultsEUTRA_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA = { + "MeasQuantityResultsEUTRA", + "MeasQuantityResultsEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasQuantityResultsEUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasQuantityResultsEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.h b/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.h new file mode 100644 index 0000000..ac4c4a6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasQuantityResultsEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasQuantityResultsEUTRA_H_ +#define _ASN_RRC_MeasQuantityResultsEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-RangeEUTRA.h" +#include "ASN_RRC_RSRQ-RangeEUTRA.h" +#include "ASN_RRC_SINR-RangeEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasQuantityResultsEUTRA */ +typedef struct ASN_RRC_MeasQuantityResultsEUTRA { + ASN_RRC_RSRP_RangeEUTRA_t *rsrp; /* OPTIONAL */ + ASN_RRC_RSRQ_RangeEUTRA_t *rsrq; /* OPTIONAL */ + ASN_RRC_SINR_RangeEUTRA_t *sinr; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasQuantityResultsEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasQuantityResultsEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasQuantityResultsEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasQuantityResultsEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasReportQuantity.c b/src/asn/rrc/ASN_RRC_MeasReportQuantity.c new file mode 100644 index 0000000..209827a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasReportQuantity.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasReportQuantity.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasReportQuantity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasReportQuantity, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasReportQuantity, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasReportQuantity, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasReportQuantity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasReportQuantity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasReportQuantity_specs_1 = { + sizeof(struct ASN_RRC_MeasReportQuantity), + offsetof(struct ASN_RRC_MeasReportQuantity, _asn_ctx), + asn_MAP_ASN_RRC_MeasReportQuantity_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_ASN_RRC_MeasReportQuantity = { + "MeasReportQuantity", + "MeasReportQuantity", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasReportQuantity_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasReportQuantity_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasReportQuantity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasReportQuantity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasReportQuantity_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasReportQuantity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasReportQuantity_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasReportQuantity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasReportQuantity.h b/src/asn/rrc/ASN_RRC_MeasReportQuantity.h new file mode 100644 index 0000000..0069c76 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasReportQuantity.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasReportQuantity_H_ +#define _ASN_RRC_MeasReportQuantity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasReportQuantity */ +typedef struct ASN_RRC_MeasReportQuantity { + BOOLEAN_t rsrp; + BOOLEAN_t rsrq; + BOOLEAN_t sinr; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasReportQuantity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasReportQuantity; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasReportQuantity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasReportQuantity_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasReportQuantity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.c b/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.c new file mode 100644 index 0000000..7c3fbce --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResult2EUTRA.h" + +#include "ASN_RRC_MeasResultEUTRA.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResult2EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResult2EUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResult2EUTRA, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResult2EUTRA, measResultBestNeighCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultBestNeighCell" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResult2EUTRA_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResult2EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultBestNeighCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResult2EUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasResult2EUTRA), + offsetof(struct ASN_RRC_MeasResult2EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_MeasResult2EUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResult2EUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResult2EUTRA = { + "MeasResult2EUTRA", + "MeasResult2EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResult2EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResult2EUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResult2EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.h b/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.h new file mode 100644 index 0000000..893a1a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResult2EUTRA.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResult2EUTRA_H_ +#define _ASN_RRC_MeasResult2EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultEUTRA; + +/* ASN_RRC_MeasResult2EUTRA */ +typedef struct ASN_RRC_MeasResult2EUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t carrierFreq; + struct ASN_RRC_MeasResultEUTRA *measResultServingCell; /* OPTIONAL */ + struct ASN_RRC_MeasResultEUTRA *measResultBestNeighCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResult2EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResult2EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResult2EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResult2EUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResult2EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResult2NR.c b/src/asn/rrc/ASN_RRC_MeasResult2NR.c new file mode 100644 index 0000000..a9398d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResult2NR.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResult2NR.h" + +#include "ASN_RRC_MeasResultNR.h" +#include "ASN_RRC_MeasResultListNR.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResult2NR_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasResult2NR, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasResult2NR, refFreqCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refFreqCSI-RS" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResult2NR, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResult2NR, measResultNeighCellListNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultNeighCellListNR" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResult2NR_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResult2NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResult2NR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssbFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* refFreqCSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measResultServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* measResultNeighCellListNR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResult2NR_specs_1 = { + sizeof(struct ASN_RRC_MeasResult2NR), + offsetof(struct ASN_RRC_MeasResult2NR, _asn_ctx), + asn_MAP_ASN_RRC_MeasResult2NR_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResult2NR_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResult2NR = { + "MeasResult2NR", + "MeasResult2NR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResult2NR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResult2NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResult2NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResult2NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResult2NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResult2NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResult2NR_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResult2NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResult2NR.h b/src/asn/rrc/ASN_RRC_MeasResult2NR.h new file mode 100644 index 0000000..8983436 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResult2NR.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResult2NR_H_ +#define _ASN_RRC_MeasResult2NR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultNR; +struct ASN_RRC_MeasResultListNR; + +/* ASN_RRC_MeasResult2NR */ +typedef struct ASN_RRC_MeasResult2NR { + ASN_RRC_ARFCN_ValueNR_t *ssbFrequency; /* OPTIONAL */ + ASN_RRC_ARFCN_ValueNR_t *refFreqCSI_RS; /* OPTIONAL */ + struct ASN_RRC_MeasResultNR *measResultServingCell; /* OPTIONAL */ + struct ASN_RRC_MeasResultListNR *measResultNeighCellListNR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResult2NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResult2NR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResult2NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResult2NR_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResult2NR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.c b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.c new file mode 100644 index 0000000..b3dbed4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultCellListSFTD-EUTRA.h" + +#include "ASN_RRC_MeasResultSFTD-EUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultCellListSFTD_EUTRA_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellListSFTD_EUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultCellListSFTD_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasResultCellListSFTD_EUTRA), + offsetof(struct ASN_RRC_MeasResultCellListSFTD_EUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA = { + "MeasResultCellListSFTD-EUTRA", + "MeasResultCellListSFTD-EUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultCellListSFTD_EUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultCellListSFTD_EUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultCellListSFTD_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.h b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.h new file mode 100644 index 0000000..bb5feea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultCellListSFTD_EUTRA_H_ +#define _ASN_RRC_MeasResultCellListSFTD_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultSFTD_EUTRA; + +/* ASN_RRC_MeasResultCellListSFTD-EUTRA */ +typedef struct ASN_RRC_MeasResultCellListSFTD_EUTRA { + A_SEQUENCE_OF(struct ASN_RRC_MeasResultSFTD_EUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultCellListSFTD_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_EUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultCellListSFTD_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellListSFTD_EUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultCellListSFTD_EUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultCellListSFTD_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.c b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.c new file mode 100644 index 0000000..7c3fc31 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultCellListSFTD-NR.h" + +#include "ASN_RRC_MeasResultCellSFTD-NR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultCellListSFTD_NR_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellListSFTD_NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResultCellSFTD_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultCellListSFTD_NR_specs_1 = { + sizeof(struct ASN_RRC_MeasResultCellListSFTD_NR), + offsetof(struct ASN_RRC_MeasResultCellListSFTD_NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR = { + "MeasResultCellListSFTD-NR", + "MeasResultCellListSFTD-NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultCellListSFTD_NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultCellListSFTD_NR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultCellListSFTD_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.h b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.h new file mode 100644 index 0000000..c3dac34 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellListSFTD-NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultCellListSFTD_NR_H_ +#define _ASN_RRC_MeasResultCellListSFTD_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultCellSFTD_NR; + +/* ASN_RRC_MeasResultCellListSFTD-NR */ +typedef struct ASN_RRC_MeasResultCellListSFTD_NR { + A_SEQUENCE_OF(struct ASN_RRC_MeasResultCellSFTD_NR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultCellListSFTD_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellListSFTD_NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultCellListSFTD_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellListSFTD_NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultCellListSFTD_NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultCellListSFTD_NR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.c b/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.c new file mode 100644 index 0000000..2fec0c4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultCellSFTD-NR.h" + +static int +memb_ASN_RRC_sfn_OffsetResult_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_ASN_RRC_frameBoundaryOffsetResult_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 >= -30720 && value <= 30719)) { + /* Constraint 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_ASN_RRC_sfn_OffsetResult_constr_3 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_ASN_RRC_frameBoundaryOffsetResult_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -30720, 30719 } /* (-30720..30719) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellSFTD_NR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultCellSFTD_NR, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultCellSFTD_NR, sfn_OffsetResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sfn_OffsetResult_constr_3, memb_ASN_RRC_sfn_OffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "sfn-OffsetResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultCellSFTD_NR, frameBoundaryOffsetResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frameBoundaryOffsetResult_constr_4, memb_ASN_RRC_frameBoundaryOffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "frameBoundaryOffsetResult" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultCellSFTD_NR, rsrp_Result), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-Result" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResultCellSFTD_NR_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultCellSFTD_NR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sfn-OffsetResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frameBoundaryOffsetResult */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* rsrp-Result */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultCellSFTD_NR_specs_1 = { + sizeof(struct ASN_RRC_MeasResultCellSFTD_NR), + offsetof(struct ASN_RRC_MeasResultCellSFTD_NR, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultCellSFTD_NR_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResultCellSFTD_NR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellSFTD_NR = { + "MeasResultCellSFTD-NR", + "MeasResultCellSFTD-NR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultCellSFTD_NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultCellSFTD_NR_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultCellSFTD_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.h b/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.h new file mode 100644 index 0000000..069d752 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultCellSFTD-NR.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultCellSFTD_NR_H_ +#define _ASN_RRC_MeasResultCellSFTD_NR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include +#include "ASN_RRC_RSRP-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasResultCellSFTD-NR */ +typedef struct ASN_RRC_MeasResultCellSFTD_NR { + ASN_RRC_PhysCellId_t physCellId; + long sfn_OffsetResult; + long frameBoundaryOffsetResult; + ASN_RRC_RSRP_Range_t *rsrp_Result; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultCellSFTD_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultCellSFTD_NR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultCellSFTD_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultCellSFTD_NR_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultCellSFTD_NR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultEUTRA.c b/src/asn/rrc/ASN_RRC_MeasResultEUTRA.c new file mode 100644 index 0000000..069fc29 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultEUTRA.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultEUTRA.h" + +#include "ASN_RRC_CGI-InfoEUTRA.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultEUTRA, eutra_PhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultEUTRA, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasQuantityResultsEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultEUTRA, cgi_Info), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CGI_InfoEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-Info" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResultEUTRA_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cgi-Info */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasResultEUTRA), + offsetof(struct ASN_RRC_MeasResultEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResultEUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultEUTRA = { + "MeasResultEUTRA", + "MeasResultEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultEUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultEUTRA.h b/src/asn/rrc/ASN_RRC_MeasResultEUTRA.h new file mode 100644 index 0000000..44be3e4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultEUTRA.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultEUTRA_H_ +#define _ASN_RRC_MeasResultEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_MeasQuantityResultsEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CGI_InfoEUTRA; + +/* ASN_RRC_MeasResultEUTRA */ +typedef struct ASN_RRC_MeasResultEUTRA { + ASN_RRC_PhysCellId_t eutra_PhysCellId; + ASN_RRC_MeasQuantityResultsEUTRA_t measResult; + struct ASN_RRC_CGI_InfoEUTRA *cgi_Info; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultFreqList.c b/src/asn/rrc/ASN_RRC_MeasResultFreqList.c new file mode 100644 index 0000000..84d2827 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultFreqList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultFreqList.h" + +#include "ASN_RRC_MeasResult2NR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultFreqList_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_ASN_RRC_MeasResultFreqList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResult2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultFreqList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultFreqList_specs_1 = { + sizeof(struct ASN_RRC_MeasResultFreqList), + offsetof(struct ASN_RRC_MeasResultFreqList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultFreqList = { + "MeasResultFreqList", + "MeasResultFreqList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultFreqList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultFreqList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultFreqList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultFreqList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultFreqList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultFreqList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultFreqList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultFreqList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultFreqList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultFreqList.h b/src/asn/rrc/ASN_RRC_MeasResultFreqList.h new file mode 100644 index 0000000..72aec70 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultFreqList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultFreqList_H_ +#define _ASN_RRC_MeasResultFreqList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResult2NR; + +/* ASN_RRC_MeasResultFreqList */ +typedef struct ASN_RRC_MeasResultFreqList { + A_SEQUENCE_OF(struct ASN_RRC_MeasResult2NR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultFreqList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultFreqList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultFreqList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultFreqList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultFreqList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultFreqList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.c b/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.c new file mode 100644 index 0000000..6104068 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultFreqListFailMRDC.h" + +#include "ASN_RRC_MeasResult2EUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultFreqListFailMRDC_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_ASN_RRC_MeasResultFreqListFailMRDC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResult2EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultFreqListFailMRDC_specs_1 = { + sizeof(struct ASN_RRC_MeasResultFreqListFailMRDC), + offsetof(struct ASN_RRC_MeasResultFreqListFailMRDC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC = { + "MeasResultFreqListFailMRDC", + "MeasResultFreqListFailMRDC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultFreqListFailMRDC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultFreqListFailMRDC_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultFreqListFailMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.h b/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.h new file mode 100644 index 0000000..46e0973 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultFreqListFailMRDC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultFreqListFailMRDC_H_ +#define _ASN_RRC_MeasResultFreqListFailMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResult2EUTRA; + +/* ASN_RRC_MeasResultFreqListFailMRDC */ +typedef struct ASN_RRC_MeasResultFreqListFailMRDC { + A_SEQUENCE_OF(struct ASN_RRC_MeasResult2EUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultFreqListFailMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultFreqListFailMRDC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultFreqListFailMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultFreqListFailMRDC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultFreqListFailMRDC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultFreqListFailMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultList2NR.c b/src/asn/rrc/ASN_RRC_MeasResultList2NR.c new file mode 100644 index 0000000..206c5cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultList2NR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultList2NR.h" + +#include "ASN_RRC_MeasResult2NR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultList2NR_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_ASN_RRC_MeasResultList2NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResult2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultList2NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultList2NR_specs_1 = { + sizeof(struct ASN_RRC_MeasResultList2NR), + offsetof(struct ASN_RRC_MeasResultList2NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultList2NR = { + "MeasResultList2NR", + "MeasResultList2NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultList2NR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultList2NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultList2NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultList2NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultList2NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultList2NR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultList2NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultList2NR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultList2NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultList2NR.h b/src/asn/rrc/ASN_RRC_MeasResultList2NR.h new file mode 100644 index 0000000..e8f471e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultList2NR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultList2NR_H_ +#define _ASN_RRC_MeasResultList2NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResult2NR; + +/* ASN_RRC_MeasResultList2NR */ +typedef struct ASN_RRC_MeasResultList2NR { + A_SEQUENCE_OF(struct ASN_RRC_MeasResult2NR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultList2NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultList2NR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultList2NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultList2NR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultList2NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultList2NR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.c b/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.c new file mode 100644 index 0000000..2be8437 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultListEUTRA.h" + +#include "ASN_RRC_MeasResultEUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultListEUTRA_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_ASN_RRC_MeasResultListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResultEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultListEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasResultListEUTRA), + offsetof(struct ASN_RRC_MeasResultListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultListEUTRA = { + "MeasResultListEUTRA", + "MeasResultListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultListEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultListEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.h b/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.h new file mode 100644 index 0000000..d0c6311 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultListEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultListEUTRA_H_ +#define _ASN_RRC_MeasResultListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultEUTRA; + +/* ASN_RRC_MeasResultListEUTRA */ +typedef struct ASN_RRC_MeasResultListEUTRA { + A_SEQUENCE_OF(struct ASN_RRC_MeasResultEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultListEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultListNR.c b/src/asn/rrc/ASN_RRC_MeasResultListNR.c new file mode 100644 index 0000000..d8ca01c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultListNR.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultListNR.h" + +#include "ASN_RRC_MeasResultNR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultListNR_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_ASN_RRC_MeasResultListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultListNR_specs_1 = { + sizeof(struct ASN_RRC_MeasResultListNR), + offsetof(struct ASN_RRC_MeasResultListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultListNR = { + "MeasResultListNR", + "MeasResultListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultListNR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultListNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultListNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultListNR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultListNR.h b/src/asn/rrc/ASN_RRC_MeasResultListNR.h new file mode 100644 index 0000000..51c84b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultListNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultListNR_H_ +#define _ASN_RRC_MeasResultListNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultNR; + +/* ASN_RRC_MeasResultListNR */ +typedef struct ASN_RRC_MeasResultListNR { + A_SEQUENCE_OF(struct ASN_RRC_MeasResultNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultListNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultListNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultNR.c b/src/asn/rrc/ASN_RRC_MeasResultNR.c new file mode 100644 index 0000000..79353bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultNR.c @@ -0,0 +1,286 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultNR.h" + +#include "ASN_RRC_MeasQuantityResults.h" +#include "ASN_RRC_ResultsPerSSB-IndexList.h" +#include "ASN_RRC_ResultsPerCSI-RS-IndexList.h" +#include "ASN_RRC_CGI-InfoNR.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_cellResults_4[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResultNR__measResult__cellResults, resultsSSB_Cell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Cell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR__measResult__cellResults, resultsCSI_RS_Cell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Cell" + }, +}; +static const int asn_MAP_ASN_RRC_cellResults_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellResults_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cellResults_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Cell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Cell */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cellResults_specs_4 = { + sizeof(struct ASN_RRC_MeasResultNR__measResult__cellResults), + offsetof(struct ASN_RRC_MeasResultNR__measResult__cellResults, _asn_ctx), + asn_MAP_ASN_RRC_cellResults_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cellResults_oms_4, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellResults_4 = { + "cellResults", + "cellResults", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cellResults_tags_4, + sizeof(asn_DEF_ASN_RRC_cellResults_tags_4) + /sizeof(asn_DEF_ASN_RRC_cellResults_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellResults_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellResults_tags_4) + /sizeof(asn_DEF_ASN_RRC_cellResults_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cellResults_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_cellResults_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rsIndexResults_7[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResultNR__measResult__rsIndexResults, resultsSSB_Indexes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ResultsPerSSB_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR__measResult__rsIndexResults, resultsCSI_RS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Indexes" + }, +}; +static const int asn_MAP_ASN_RRC_rsIndexResults_oms_7[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rsIndexResults_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rsIndexResults_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resultsSSB-Indexes */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* resultsCSI-RS-Indexes */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_rsIndexResults_specs_7 = { + sizeof(struct ASN_RRC_MeasResultNR__measResult__rsIndexResults), + offsetof(struct ASN_RRC_MeasResultNR__measResult__rsIndexResults, _asn_ctx), + asn_MAP_ASN_RRC_rsIndexResults_tag2el_7, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_rsIndexResults_oms_7, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rsIndexResults_7 = { + "rsIndexResults", + "rsIndexResults", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_rsIndexResults_tags_7, + sizeof(asn_DEF_ASN_RRC_rsIndexResults_tags_7) + /sizeof(asn_DEF_ASN_RRC_rsIndexResults_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rsIndexResults_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rsIndexResults_tags_7) + /sizeof(asn_DEF_ASN_RRC_rsIndexResults_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_rsIndexResults_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_rsIndexResults_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_measResult_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultNR__measResult, cellResults), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_cellResults_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellResults" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR__measResult, rsIndexResults), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rsIndexResults_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsIndexResults" + }, +}; +static const int asn_MAP_ASN_RRC_measResult_oms_3[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_measResult_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_measResult_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellResults */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rsIndexResults */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_measResult_specs_3 = { + sizeof(struct ASN_RRC_MeasResultNR__measResult), + offsetof(struct ASN_RRC_MeasResultNR__measResult, _asn_ctx), + asn_MAP_ASN_RRC_measResult_tag2el_3, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_measResult_oms_3, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_measResult_3 = { + "measResult", + "measResult", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_measResult_tags_3, + sizeof(asn_DEF_ASN_RRC_measResult_tags_3) + /sizeof(asn_DEF_ASN_RRC_measResult_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_measResult_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_measResult_tags_3) + /sizeof(asn_DEF_ASN_RRC_measResult_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_measResult_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_measResult_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_11[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR__ext1, cgi_Info), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CGI_InfoNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-Info" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_11[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cgi-Info */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_11 = { + sizeof(struct ASN_RRC_MeasResultNR__ext1), + offsetof(struct ASN_RRC_MeasResultNR__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_11, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_11, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_11, + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_11, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultNR_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultNR, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_measResult_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResultNR_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultNR_specs_1 = { + sizeof(struct ASN_RRC_MeasResultNR), + offsetof(struct ASN_RRC_MeasResultNR, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResultNR_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultNR = { + "MeasResultNR", + "MeasResultNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultNR_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultNR_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultNR.h b/src/asn/rrc/ASN_RRC_MeasResultNR.h new file mode 100644 index 0000000..81b3d1d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultNR.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultNR_H_ +#define _ASN_RRC_MeasResultNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasQuantityResults; +struct ASN_RRC_ResultsPerSSB_IndexList; +struct ASN_RRC_ResultsPerCSI_RS_IndexList; +struct ASN_RRC_CGI_InfoNR; + +/* ASN_RRC_MeasResultNR */ +typedef struct ASN_RRC_MeasResultNR { + ASN_RRC_PhysCellId_t *physCellId; /* OPTIONAL */ + struct ASN_RRC_MeasResultNR__measResult { + struct ASN_RRC_MeasResultNR__measResult__cellResults { + struct ASN_RRC_MeasQuantityResults *resultsSSB_Cell; /* OPTIONAL */ + struct ASN_RRC_MeasQuantityResults *resultsCSI_RS_Cell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cellResults; + struct ASN_RRC_MeasResultNR__measResult__rsIndexResults { + struct ASN_RRC_ResultsPerSSB_IndexList *resultsSSB_Indexes; /* OPTIONAL */ + struct ASN_RRC_ResultsPerCSI_RS_IndexList *resultsCSI_RS_Indexes; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rsIndexResults; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } measResult; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasResultNR__ext1 { + struct ASN_RRC_CGI_InfoNR *cgi_Info; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.c b/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.c new file mode 100644 index 0000000..7526f8f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultSCG-Failure.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultSCG_Failure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultSCG_Failure, measResultPerMOList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultPerMOList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultSCG_Failure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measResultPerMOList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultSCG_Failure_specs_1 = { + sizeof(struct ASN_RRC_MeasResultSCG_Failure), + offsetof(struct ASN_RRC_MeasResultSCG_Failure, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultSCG_Failure_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_ASN_RRC_MeasResultSCG_Failure = { + "MeasResultSCG-Failure", + "MeasResultSCG-Failure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultSCG_Failure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultSCG_Failure_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultSCG_Failure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.h b/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.h new file mode 100644 index 0000000..878b16d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultSCG-Failure.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultSCG_Failure_H_ +#define _ASN_RRC_MeasResultSCG_Failure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasResultList2NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasResultSCG-Failure */ +typedef struct ASN_RRC_MeasResultSCG_Failure { + ASN_RRC_MeasResultList2NR_t measResultPerMOList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultSCG_Failure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultSCG_Failure; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultSCG_Failure_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.c b/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.c new file mode 100644 index 0000000..d1d5c09 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultSFTD-EUTRA.h" + +static int +memb_ASN_RRC_sfn_OffsetResult_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_ASN_RRC_frameBoundaryOffsetResult_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 >= -30720 && value <= 30719)) { + /* Constraint 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_ASN_RRC_sfn_OffsetResult_constr_3 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_ASN_RRC_frameBoundaryOffsetResult_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, -30720, 30719 } /* (-30720..30719) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultSFTD_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultSFTD_EUTRA, eutra_PhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultSFTD_EUTRA, sfn_OffsetResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sfn_OffsetResult_constr_3, memb_ASN_RRC_sfn_OffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "sfn-OffsetResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultSFTD_EUTRA, frameBoundaryOffsetResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frameBoundaryOffsetResult_constr_4, memb_ASN_RRC_frameBoundaryOffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "frameBoundaryOffsetResult" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultSFTD_EUTRA, rsrp_Result), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-Result" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResultSFTD_EUTRA_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultSFTD_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutra-PhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sfn-OffsetResult */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frameBoundaryOffsetResult */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* rsrp-Result */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultSFTD_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasResultSFTD_EUTRA), + offsetof(struct ASN_RRC_MeasResultSFTD_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultSFTD_EUTRA_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResultSFTD_EUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA = { + "MeasResultSFTD-EUTRA", + "MeasResultSFTD-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultSFTD_EUTRA_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultSFTD_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.h b/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.h new file mode 100644 index 0000000..c6e9a65 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultSFTD-EUTRA.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultSFTD_EUTRA_H_ +#define _ASN_RRC_MeasResultSFTD_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include +#include "ASN_RRC_RSRP-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasResultSFTD-EUTRA */ +typedef struct ASN_RRC_MeasResultSFTD_EUTRA { + ASN_RRC_EUTRA_PhysCellId_t eutra_PhysCellId; + long sfn_OffsetResult; + long frameBoundaryOffsetResult; + ASN_RRC_RSRP_Range_t *rsrp_Result; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultSFTD_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultSFTD_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultSFTD_EUTRA_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultSFTD_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.c b/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.c new file mode 100644 index 0000000..5ffb50e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultServFreqListEUTRA-SCG.h" + +#include "ASN_RRC_MeasResult2EUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServFreqListEUTRA_SCG_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_ASN_RRC_MeasResultServFreqListEUTRA_SCG_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResult2EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServFreqListEUTRA_SCG_specs_1 = { + sizeof(struct ASN_RRC_MeasResultServFreqListEUTRA_SCG), + offsetof(struct ASN_RRC_MeasResultServFreqListEUTRA_SCG, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG = { + "MeasResultServFreqListEUTRA-SCG", + "MeasResultServFreqListEUTRA-SCG", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultServFreqListEUTRA_SCG_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultServFreqListEUTRA_SCG_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultServFreqListEUTRA_SCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.h b/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.h new file mode 100644 index 0000000..6cc1945 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServFreqListEUTRA-SCG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultServFreqListEUTRA_SCG_H_ +#define _ASN_RRC_MeasResultServFreqListEUTRA_SCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResult2EUTRA; + +/* ASN_RRC_MeasResultServFreqListEUTRA-SCG */ +typedef struct ASN_RRC_MeasResultServFreqListEUTRA_SCG { + A_SEQUENCE_OF(struct ASN_RRC_MeasResult2EUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultServFreqListEUTRA_SCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServFreqListEUTRA_SCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultServFreqListEUTRA_SCG_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServFreqListEUTRA_SCG_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultServFreqListEUTRA_SCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.c b/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.c new file mode 100644 index 0000000..93e688a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultServFreqListNR-SCG.h" + +#include "ASN_RRC_MeasResult2NR.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServFreqListNR_SCG_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_ASN_RRC_MeasResultServFreqListNR_SCG_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResult2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServFreqListNR_SCG_specs_1 = { + sizeof(struct ASN_RRC_MeasResultServFreqListNR_SCG), + offsetof(struct ASN_RRC_MeasResultServFreqListNR_SCG, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG = { + "MeasResultServFreqListNR-SCG", + "MeasResultServFreqListNR-SCG", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultServFreqListNR_SCG_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultServFreqListNR_SCG_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultServFreqListNR_SCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.h b/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.h new file mode 100644 index 0000000..7e25b99 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServFreqListNR-SCG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultServFreqListNR_SCG_H_ +#define _ASN_RRC_MeasResultServFreqListNR_SCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResult2NR; + +/* ASN_RRC_MeasResultServFreqListNR-SCG */ +typedef struct ASN_RRC_MeasResultServFreqListNR_SCG { + A_SEQUENCE_OF(struct ASN_RRC_MeasResult2NR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultServFreqListNR_SCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServFreqListNR_SCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultServFreqListNR_SCG_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServFreqListNR_SCG_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultServFreqListNR_SCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultServMO.c b/src/asn/rrc/ASN_RRC_MeasResultServMO.c new file mode 100644 index 0000000..2b49aaa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServMO.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultServMO.h" + +#include "ASN_RRC_MeasResultNR.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultServMO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultServMO, servCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResultServMO, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResultServMO, measResultBestNeighCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultBestNeighCell" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResultServMO_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultServMO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResultServMO_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measResultBestNeighCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultServMO_specs_1 = { + sizeof(struct ASN_RRC_MeasResultServMO), + offsetof(struct ASN_RRC_MeasResultServMO, _asn_ctx), + asn_MAP_ASN_RRC_MeasResultServMO_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResultServMO_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServMO = { + "MeasResultServMO", + "MeasResultServMO", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResultServMO_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultServMO_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServMO_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultServMO_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultServMO_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServMO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResultServMO_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResultServMO_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultServMO.h b/src/asn/rrc/ASN_RRC_MeasResultServMO.h new file mode 100644 index 0000000..5866e22 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServMO.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultServMO_H_ +#define _ASN_RRC_MeasResultServMO_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_MeasResultNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultNR; + +/* ASN_RRC_MeasResultServMO */ +typedef struct ASN_RRC_MeasResultServMO { + ASN_RRC_ServCellIndex_t servCellId; + ASN_RRC_MeasResultNR_t measResultServingCell; + struct ASN_RRC_MeasResultNR *measResultBestNeighCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultServMO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServMO; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResultServMO_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultServMO_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultServMO_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResultServMOList.c b/src/asn/rrc/ASN_RRC_MeasResultServMOList.c new file mode 100644 index 0000000..24485d5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServMOList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResultServMOList.h" + +#include "ASN_RRC_MeasResultServMO.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServMOList_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_ASN_RRC_MeasResultServMOList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasResultServMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResultServMOList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServMOList_specs_1 = { + sizeof(struct ASN_RRC_MeasResultServMOList), + offsetof(struct ASN_RRC_MeasResultServMOList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServMOList = { + "MeasResultServMOList", + "MeasResultServMOList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasResultServMOList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServMOList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResultServMOList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResultServMOList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasResultServMOList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasResultServMOList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasResultServMOList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResultServMOList.h b/src/asn/rrc/ASN_RRC_MeasResultServMOList.h new file mode 100644 index 0000000..988e240 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResultServMOList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResultServMOList_H_ +#define _ASN_RRC_MeasResultServMOList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasResultServMO; + +/* ASN_RRC_MeasResultServMOList */ +typedef struct ASN_RRC_MeasResultServMOList { + A_SEQUENCE_OF(struct ASN_RRC_MeasResultServMO) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResultServMOList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResultServMOList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasResultServMOList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResultServMOList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasResultServMOList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResultServMOList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasResults.c b/src/asn/rrc/ASN_RRC_MeasResults.c new file mode 100644 index 0000000..c0ec2f9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResults.c @@ -0,0 +1,217 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasResults.h" + +#include "ASN_RRC_MeasResultListNR.h" +#include "ASN_RRC_MeasResultListEUTRA.h" +#include "ASN_RRC_MeasResultServFreqListEUTRA-SCG.h" +#include "ASN_RRC_MeasResultServFreqListNR-SCG.h" +#include "ASN_RRC_MeasResultSFTD-EUTRA.h" +#include "ASN_RRC_MeasResultCellSFTD-NR.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_measResultNeighCells_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_TYPE_member_t asn_MBR_ASN_RRC_measResultNeighCells_4[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasResults__measResultNeighCells, choice.measResultListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasResults__measResultNeighCells, choice.measResultListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_measResultNeighCells_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measResultListNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measResultListEUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_measResultNeighCells_specs_4 = { + sizeof(struct ASN_RRC_MeasResults__measResultNeighCells), + offsetof(struct ASN_RRC_MeasResults__measResultNeighCells, _asn_ctx), + offsetof(struct ASN_RRC_MeasResults__measResultNeighCells, present), + sizeof(((struct ASN_RRC_MeasResults__measResultNeighCells *)0)->present), + asn_MAP_ASN_RRC_measResultNeighCells_tag2el_4, + 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_ASN_RRC_measResultNeighCells_4 = { + "measResultNeighCells", + "measResultNeighCells", + &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_ASN_RRC_measResultNeighCells_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_measResultNeighCells_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_measResultNeighCells_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_9[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_MeasResults__ext1, measResultServFreqListEUTRA_SCG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServFreqListEUTRA-SCG" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MeasResults__ext1, measResultServFreqListNR_SCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultServFreqListNR_SCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServFreqListNR-SCG" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResults__ext1, measResultSFTD_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultSFTD_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultSFTD-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResults__ext1, measResultSFTD_NR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultCellSFTD_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultSFTD-NR" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_9[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measResultServFreqListEUTRA-SCG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServFreqListNR-SCG */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measResultSFTD-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* measResultSFTD-NR */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_9 = { + sizeof(struct ASN_RRC_MeasResults__ext1), + offsetof(struct ASN_RRC_MeasResults__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_9, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_9, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_9, + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_9, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResults_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResults, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasResults, measResultServingMOList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultServMOList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingMOList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasResults, measResultNeighCells), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_measResultNeighCells_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultNeighCells" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasResults, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasResults_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasResults_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasResults_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measResultServingMOList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measResultNeighCells */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResults_specs_1 = { + sizeof(struct ASN_RRC_MeasResults), + offsetof(struct ASN_RRC_MeasResults, _asn_ctx), + asn_MAP_ASN_RRC_MeasResults_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasResults_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResults = { + "MeasResults", + "MeasResults", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasResults_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasResults_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResults_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasResults_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasResults_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasResults_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasResults_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MeasResults_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasResults.h b/src/asn/rrc/ASN_RRC_MeasResults.h new file mode 100644 index 0000000..a7f4daf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasResults.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasResults_H_ +#define _ASN_RRC_MeasResults_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasId.h" +#include "ASN_RRC_MeasResultServMOList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasResults__measResultNeighCells_PR { + ASN_RRC_MeasResults__measResultNeighCells_PR_NOTHING, /* No components present */ + ASN_RRC_MeasResults__measResultNeighCells_PR_measResultListNR, + /* Extensions may appear below */ + ASN_RRC_MeasResults__measResultNeighCells_PR_measResultListEUTRA +} ASN_RRC_MeasResults__measResultNeighCells_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasResultListNR; +struct ASN_RRC_MeasResultListEUTRA; +struct ASN_RRC_MeasResultServFreqListEUTRA_SCG; +struct ASN_RRC_MeasResultServFreqListNR_SCG; +struct ASN_RRC_MeasResultSFTD_EUTRA; +struct ASN_RRC_MeasResultCellSFTD_NR; + +/* ASN_RRC_MeasResults */ +typedef struct ASN_RRC_MeasResults { + ASN_RRC_MeasId_t measId; + ASN_RRC_MeasResultServMOList_t measResultServingMOList; + struct ASN_RRC_MeasResults__measResultNeighCells { + ASN_RRC_MeasResults__measResultNeighCells_PR present; + union ASN_RRC_MeasResults__ASN_RRC_measResultNeighCells_u { + struct ASN_RRC_MeasResultListNR *measResultListNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasResultListEUTRA *measResultListEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measResultNeighCells; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasResults__ext1 { + struct ASN_RRC_MeasResultServFreqListEUTRA_SCG *measResultServFreqListEUTRA_SCG; /* OPTIONAL */ + struct ASN_RRC_MeasResultServFreqListNR_SCG *measResultServFreqListNR_SCG; /* OPTIONAL */ + struct ASN_RRC_MeasResultSFTD_EUTRA *measResultSFTD_EUTRA; /* OPTIONAL */ + struct ASN_RRC_MeasResultCellSFTD_NR *measResultSFTD_NR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasResults_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasResults; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasResults_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasResults_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasResults_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasTiming.c b/src/asn/rrc/ASN_RRC_MeasTiming.c new file mode 100644 index 0000000..89d11b0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTiming.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasTiming.h" + +#include "ASN_RRC_SS-RSSI-Measurement.h" +#include "ASN_RRC_SSB-ToMeasure.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_frequencyAndTiming_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTiming__frequencyAndTiming, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTiming__frequencyAndTiming, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTiming__frequencyAndTiming, ssb_MeasurementTimingConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-MeasurementTimingConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasTiming__frequencyAndTiming, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, +}; +static const int asn_MAP_ASN_RRC_frequencyAndTiming_oms_2[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyAndTiming_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_frequencyAndTiming_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreq */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ssbSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ssb-MeasurementTimingConfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ss-RSSI-Measurement */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_frequencyAndTiming_specs_2 = { + sizeof(struct ASN_RRC_MeasTiming__frequencyAndTiming), + offsetof(struct ASN_RRC_MeasTiming__frequencyAndTiming, _asn_ctx), + asn_MAP_ASN_RRC_frequencyAndTiming_tag2el_2, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_frequencyAndTiming_oms_2, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyAndTiming_2 = { + "frequencyAndTiming", + "frequencyAndTiming", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_frequencyAndTiming_tags_2, + sizeof(asn_DEF_ASN_RRC_frequencyAndTiming_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyAndTiming_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyAndTiming_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyAndTiming_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyAndTiming_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_frequencyAndTiming_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_frequencyAndTiming_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_8[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasTiming__ext1, ssb_ToMeasure_v1540), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasTiming__ext1, physCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_8[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-ToMeasure-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* physCellId */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_8 = { + sizeof(struct ASN_RRC_MeasTiming__ext1), + offsetof(struct ASN_RRC_MeasTiming__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_8, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_8, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_8, + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_8, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTiming_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasTiming, frequencyAndTiming), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_frequencyAndTiming_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyAndTiming" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasTiming, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_MeasTiming_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasTiming_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasTiming_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyAndTiming */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasTiming_specs_1 = { + sizeof(struct ASN_RRC_MeasTiming), + offsetof(struct ASN_RRC_MeasTiming, _asn_ctx), + asn_MAP_ASN_RRC_MeasTiming_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasTiming_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTiming = { + "MeasTiming", + "MeasTiming", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasTiming_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasTiming_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasTiming_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasTiming_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasTiming_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasTiming_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasTiming_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasTiming_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasTiming.h b/src/asn/rrc/ASN_RRC_MeasTiming.h new file mode 100644 index 0000000..a5cbd4b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTiming.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasTiming_H_ +#define _ASN_RRC_MeasTiming_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include "ASN_RRC_SSB-MTC.h" +#include +#include "ASN_RRC_PhysCellId.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SS_RSSI_Measurement; +struct ASN_RRC_SSB_ToMeasure; + +/* ASN_RRC_MeasTiming */ +typedef struct ASN_RRC_MeasTiming { + struct ASN_RRC_MeasTiming__frequencyAndTiming { + ASN_RRC_ARFCN_ValueNR_t carrierFreq; + ASN_RRC_SubcarrierSpacing_t ssbSubcarrierSpacing; + ASN_RRC_SSB_MTC_t ssb_MeasurementTimingConfiguration; + struct ASN_RRC_SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyAndTiming; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_MeasTiming__ext1 { + struct ASN_RRC_SSB_ToMeasure *ssb_ToMeasure_v1540; /* OPTIONAL */ + ASN_RRC_PhysCellId_t *physCellId; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasTiming_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTiming; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasTiming_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTiming_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasTiming_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasTimingList.c b/src/asn/rrc/ASN_RRC_MeasTimingList.c new file mode 100644 index 0000000..7d6b83a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTimingList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasTimingList.h" + +#include "ASN_RRC_MeasTiming.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTimingList_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_ASN_RRC_MeasTimingList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_MeasTiming, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasTimingList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasTimingList_specs_1 = { + sizeof(struct ASN_RRC_MeasTimingList), + offsetof(struct ASN_RRC_MeasTimingList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTimingList = { + "MeasTimingList", + "MeasTimingList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MeasTimingList_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasTimingList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasTimingList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasTimingList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasTimingList_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasTimingList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MeasTimingList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MeasTimingList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MeasTimingList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasTimingList.h b/src/asn/rrc/ASN_RRC_MeasTimingList.h new file mode 100644 index 0000000..90f1ce2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTimingList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasTimingList_H_ +#define _ASN_RRC_MeasTimingList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasTiming; + +/* ASN_RRC_MeasTimingList */ +typedef struct ASN_RRC_MeasTimingList { + A_SEQUENCE_OF(struct ASN_RRC_MeasTiming) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasTimingList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTimingList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MeasTimingList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTimingList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTimingList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasTimingList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.c b/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.c new file mode 100644 index 0000000..88f3281 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasTriggerQuantity.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantity, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantity, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantity, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasTriggerQuantity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantity_specs_1 = { + sizeof(struct ASN_RRC_MeasTriggerQuantity), + offsetof(struct ASN_RRC_MeasTriggerQuantity, _asn_ctx), + offsetof(struct ASN_RRC_MeasTriggerQuantity, present), + sizeof(((struct ASN_RRC_MeasTriggerQuantity *)0)->present), + asn_MAP_ASN_RRC_MeasTriggerQuantity_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantity = { + "MeasTriggerQuantity", + "MeasTriggerQuantity", + &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_ASN_RRC_MeasTriggerQuantity_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_MeasTriggerQuantity_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasTriggerQuantity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.h b/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.h new file mode 100644 index 0000000..7fa8ad8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantity.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasTriggerQuantity_H_ +#define _ASN_RRC_MeasTriggerQuantity_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-Range.h" +#include "ASN_RRC_RSRQ-Range.h" +#include "ASN_RRC_SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasTriggerQuantity_PR { + ASN_RRC_MeasTriggerQuantity_PR_NOTHING, /* No components present */ + ASN_RRC_MeasTriggerQuantity_PR_rsrp, + ASN_RRC_MeasTriggerQuantity_PR_rsrq, + ASN_RRC_MeasTriggerQuantity_PR_sinr +} ASN_RRC_MeasTriggerQuantity_PR; + +/* ASN_RRC_MeasTriggerQuantity */ +typedef struct ASN_RRC_MeasTriggerQuantity { + ASN_RRC_MeasTriggerQuantity_PR present; + union ASN_RRC_MeasTriggerQuantity_u { + ASN_RRC_RSRP_Range_t rsrp; + ASN_RRC_RSRQ_Range_t rsrq; + ASN_RRC_SINR_Range_t sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasTriggerQuantity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantity; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantity_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasTriggerQuantity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.c b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.c new file mode 100644 index 0000000..23a40d8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasTriggerQuantityEUTRA.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantityEUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantityEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityEUTRA, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityEUTRA, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRQ_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityEUTRA, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SINR_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasTriggerQuantityEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantityEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MeasTriggerQuantityEUTRA), + offsetof(struct ASN_RRC_MeasTriggerQuantityEUTRA, _asn_ctx), + offsetof(struct ASN_RRC_MeasTriggerQuantityEUTRA, present), + sizeof(((struct ASN_RRC_MeasTriggerQuantityEUTRA *)0)->present), + asn_MAP_ASN_RRC_MeasTriggerQuantityEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantityEUTRA = { + "MeasTriggerQuantityEUTRA", + "MeasTriggerQuantityEUTRA", + &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_ASN_RRC_MeasTriggerQuantityEUTRA_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_MeasTriggerQuantityEUTRA_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasTriggerQuantityEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.h b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.h new file mode 100644 index 0000000..56d8353 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityEUTRA.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasTriggerQuantityEUTRA_H_ +#define _ASN_RRC_MeasTriggerQuantityEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-RangeEUTRA.h" +#include "ASN_RRC_RSRQ-RangeEUTRA.h" +#include "ASN_RRC_SINR-RangeEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasTriggerQuantityEUTRA_PR { + ASN_RRC_MeasTriggerQuantityEUTRA_PR_NOTHING, /* No components present */ + ASN_RRC_MeasTriggerQuantityEUTRA_PR_rsrp, + ASN_RRC_MeasTriggerQuantityEUTRA_PR_rsrq, + ASN_RRC_MeasTriggerQuantityEUTRA_PR_sinr +} ASN_RRC_MeasTriggerQuantityEUTRA_PR; + +/* ASN_RRC_MeasTriggerQuantityEUTRA */ +typedef struct ASN_RRC_MeasTriggerQuantityEUTRA { + ASN_RRC_MeasTriggerQuantityEUTRA_PR present; + union ASN_RRC_MeasTriggerQuantityEUTRA_u { + ASN_RRC_RSRP_RangeEUTRA_t rsrp; + ASN_RRC_RSRQ_RangeEUTRA_t rsrq; + ASN_RRC_SINR_RangeEUTRA_t sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasTriggerQuantityEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantityEUTRA; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantityEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantityEUTRA_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantityEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasTriggerQuantityEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.c b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.c new file mode 100644 index 0000000..38b52ad --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasTriggerQuantityOffset.h" + +static int +memb_ASN_RRC_rsrp_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 >= -30 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_rsrq_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 >= -30 && value <= 30)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sinr_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 >= -30 && value <= 30)) { + /* Constraint 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_ASN_RRC_rsrp_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 30 } /* (-30..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rsrq_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 30 } /* (-30..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sinr_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 30 } /* (-30..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantityOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantityOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityOffset, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_rsrp_constr_2, memb_ASN_RRC_rsrp_constraint_1 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityOffset, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_rsrq_constr_3, memb_ASN_RRC_rsrq_constraint_1 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasTriggerQuantityOffset, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sinr_constr_4, memb_ASN_RRC_sinr_constraint_1 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasTriggerQuantityOffset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrp */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrq */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sinr */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantityOffset_specs_1 = { + sizeof(struct ASN_RRC_MeasTriggerQuantityOffset), + offsetof(struct ASN_RRC_MeasTriggerQuantityOffset, _asn_ctx), + offsetof(struct ASN_RRC_MeasTriggerQuantityOffset, present), + sizeof(((struct ASN_RRC_MeasTriggerQuantityOffset *)0)->present), + asn_MAP_ASN_RRC_MeasTriggerQuantityOffset_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantityOffset = { + "MeasTriggerQuantityOffset", + "MeasTriggerQuantityOffset", + &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_ASN_RRC_MeasTriggerQuantityOffset_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_MeasTriggerQuantityOffset_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasTriggerQuantityOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.h b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.h new file mode 100644 index 0000000..d7075cf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasTriggerQuantityOffset.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasTriggerQuantityOffset_H_ +#define _ASN_RRC_MeasTriggerQuantityOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasTriggerQuantityOffset_PR { + ASN_RRC_MeasTriggerQuantityOffset_PR_NOTHING, /* No components present */ + ASN_RRC_MeasTriggerQuantityOffset_PR_rsrp, + ASN_RRC_MeasTriggerQuantityOffset_PR_rsrq, + ASN_RRC_MeasTriggerQuantityOffset_PR_sinr +} ASN_RRC_MeasTriggerQuantityOffset_PR; + +/* ASN_RRC_MeasTriggerQuantityOffset */ +typedef struct ASN_RRC_MeasTriggerQuantityOffset { + ASN_RRC_MeasTriggerQuantityOffset_PR present; + union ASN_RRC_MeasTriggerQuantityOffset_u { + long rsrp; + long rsrq; + long sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasTriggerQuantityOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasTriggerQuantityOffset; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_MeasTriggerQuantityOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasTriggerQuantityOffset_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MeasTriggerQuantityOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasTriggerQuantityOffset_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.c b/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.c new file mode 100644 index 0000000..9e5730f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasurementReport-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_MeasurementReport_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_MeasurementReport_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementReport_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementReport_IEs, measResults), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResults" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasurementReport_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasurementReport_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_MeasurementReport_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasurementReport_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measResults */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementReport_IEs_specs_1 = { + sizeof(struct ASN_RRC_MeasurementReport_IEs), + offsetof(struct ASN_RRC_MeasurementReport_IEs, _asn_ctx), + asn_MAP_ASN_RRC_MeasurementReport_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasurementReport_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementReport_IEs = { + "MeasurementReport-IEs", + "MeasurementReport-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementReport_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasurementReport_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasurementReport_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.h b/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.h new file mode 100644 index 0000000..8ab10f7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementReport-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasurementReport_IEs_H_ +#define _ASN_RRC_MeasurementReport_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasResults.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasurementReport-IEs */ +typedef struct ASN_RRC_MeasurementReport_IEs { + ASN_RRC_MeasResults_t measResults; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_MeasurementReport_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasurementReport_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementReport_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementReport_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementReport_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasurementReport_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasurementReport.c b/src/asn/rrc/ASN_RRC_MeasurementReport.c new file mode 100644 index 0000000..4ba40d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementReport.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasurementReport.h" + +#include "ASN_RRC_MeasurementReport-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_MeasurementReport__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_MeasurementReport__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasurementReport__criticalExtensions, choice.measurementReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasurementReport_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementReport" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasurementReport__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_MeasurementReport__criticalExtensions), + offsetof(struct ASN_RRC_MeasurementReport__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_MeasurementReport__criticalExtensions, present), + sizeof(((struct ASN_RRC_MeasurementReport__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementReport, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasurementReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasurementReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementReport_specs_1 = { + sizeof(struct ASN_RRC_MeasurementReport), + offsetof(struct ASN_RRC_MeasurementReport, _asn_ctx), + asn_MAP_ASN_RRC_MeasurementReport_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_ASN_RRC_MeasurementReport = { + "MeasurementReport", + "MeasurementReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasurementReport_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasurementReport_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasurementReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasurementReport_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasurementReport_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasurementReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasurementReport.h b/src/asn/rrc/ASN_RRC_MeasurementReport.h new file mode 100644 index 0000000..6ff4ace --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementReport.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasurementReport_H_ +#define _ASN_RRC_MeasurementReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasurementReport__criticalExtensions_PR { + ASN_RRC_MeasurementReport__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_MeasurementReport__criticalExtensions_PR_measurementReport, + ASN_RRC_MeasurementReport__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_MeasurementReport__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasurementReport_IEs; + +/* ASN_RRC_MeasurementReport */ +typedef struct ASN_RRC_MeasurementReport { + struct ASN_RRC_MeasurementReport__criticalExtensions { + ASN_RRC_MeasurementReport__criticalExtensions_PR present; + union ASN_RRC_MeasurementReport__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_MeasurementReport_IEs *measurementReport; + struct ASN_RRC_MeasurementReport__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasurementReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasurementReport_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.c b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.c new file mode 100644 index 0000000..5d484d9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasurementTimingConfiguration-IEs.h" + +#include "ASN_RRC_MeasTimingList.h" +#include "ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementTimingConfiguration_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MeasurementTimingConfiguration_IEs, measTiming), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasTimingList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measTiming" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasurementTimingConfiguration_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_MeasurementTimingConfiguration_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasurementTimingConfiguration_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measTiming */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementTimingConfiguration_IEs_specs_1 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration_IEs), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration_IEs, _asn_ctx), + asn_MAP_ASN_RRC_MeasurementTimingConfiguration_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasurementTimingConfiguration_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs = { + "MeasurementTimingConfiguration-IEs", + "MeasurementTimingConfiguration-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasurementTimingConfiguration_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MeasurementTimingConfiguration_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.h b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.h new file mode 100644 index 0000000..480b1c7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasurementTimingConfiguration_IEs_H_ +#define _ASN_RRC_MeasurementTimingConfiguration_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasTimingList; +struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs; + +/* ASN_RRC_MeasurementTimingConfiguration-IEs */ +typedef struct ASN_RRC_MeasurementTimingConfiguration_IEs { + struct ASN_RRC_MeasTimingList *measTiming; /* OPTIONAL */ + struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasurementTimingConfiguration_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementTimingConfiguration_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementTimingConfiguration_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasurementTimingConfiguration_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.c b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.c new file mode 100644 index 0000000..a6f0af7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs, campOnFirstSSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "campOnFirstSSB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs, psCellOnlyOnFirstSSB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "psCellOnlyOnFirstSSB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* campOnFirstSSB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* psCellOnlyOnFirstSSB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_specs_1 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs, _asn_ctx), + asn_MAP_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs = { + "MeasurementTimingConfiguration-v1550-IEs", + "MeasurementTimingConfiguration-v1550-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h new file mode 100644 index 0000000..346e7d4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration-v1550-IEs.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_H_ +#define _ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MeasurementTimingConfiguration-v1550-IEs */ +typedef struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs { + BOOLEAN_t campOnFirstSSB; + BOOLEAN_t psCellOnlyOnFirstSSB; + struct ASN_RRC_MeasurementTimingConfiguration_v1550_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasurementTimingConfiguration_v1550_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.c b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.c new file mode 100644 index 0000000..44a34c4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MeasurementTimingConfiguration.h" + +#include "ASN_RRC_MeasurementTimingConfiguration-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, choice.measTimingConf), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasurementTimingConfiguration_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measTimingConf" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measTimingConf */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions, present), + sizeof(((struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_MeasurementTimingConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MeasurementTimingConfiguration, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MeasurementTimingConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MeasurementTimingConfiguration_specs_1 = { + sizeof(struct ASN_RRC_MeasurementTimingConfiguration), + offsetof(struct ASN_RRC_MeasurementTimingConfiguration, _asn_ctx), + asn_MAP_ASN_RRC_MeasurementTimingConfiguration_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_ASN_RRC_MeasurementTimingConfiguration = { + "MeasurementTimingConfiguration", + "MeasurementTimingConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1, + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_ASN_RRC_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MeasurementTimingConfiguration_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_MeasurementTimingConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.h b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.h new file mode 100644 index 0000000..e6245a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MeasurementTimingConfiguration.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MeasurementTimingConfiguration_H_ +#define _ASN_RRC_MeasurementTimingConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR { + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR_c1, + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR; +typedef enum ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR { + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR_measTimingConf, + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare3, + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare2, + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare1 +} ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasurementTimingConfiguration_IEs; + +/* ASN_RRC_MeasurementTimingConfiguration */ +typedef struct ASN_RRC_MeasurementTimingConfiguration { + struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions { + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions_PR present; + union ASN_RRC_MeasurementTimingConfiguration__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1 { + ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__c1_PR present; + union ASN_RRC_MeasurementTimingConfiguration__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_MeasurementTimingConfiguration_IEs *measTimingConf; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_MeasurementTimingConfiguration__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MeasurementTimingConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MeasurementTimingConfiguration; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MeasurementTimingConfiguration_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.c b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.c new file mode 100644 index 0000000..530b684 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MobilityFromNRCommand-IEs.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_targetRAT_Type_constr_2 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_ASN_RRC_targetRAT_Type_value2enum_2[] = { + { 0, 5, "eutra" }, + { 1, 6, "spare3" }, + { 2, 6, "spare2" }, + { 3, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_targetRAT_Type_enum2value_2[] = { + 0, /* eutra(0) */ + 3, /* spare1(3) */ + 2, /* spare2(2) */ + 1 /* spare3(1) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_targetRAT_Type_specs_2 = { + asn_MAP_ASN_RRC_targetRAT_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_targetRAT_Type_enum2value_2, /* 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_ASN_RRC_targetRAT_Type_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_ASN_RRC_targetRAT_Type_2 = { + "targetRAT-Type", + "targetRAT-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_targetRAT_Type_tags_2, + sizeof(asn_DEF_ASN_RRC_targetRAT_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_targetRAT_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_targetRAT_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_targetRAT_Type_tags_2) + /sizeof(asn_DEF_ASN_RRC_targetRAT_Type_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_targetRAT_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_targetRAT_Type_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_11 = { + sizeof(struct ASN_RRC_MobilityFromNRCommand_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_11 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_11, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityFromNRCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, targetRAT_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_targetRAT_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRAT-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, targetRAT_MessageContainer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRAT-MessageContainer" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, nas_SecurityParamFromNR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nas-SecurityParamFromNR" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_MobilityFromNRCommand_IEs_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MobilityFromNRCommand_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* targetRAT-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetRAT-MessageContainer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nas-SecurityParamFromNR */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityFromNRCommand_IEs_specs_1 = { + sizeof(struct ASN_RRC_MobilityFromNRCommand_IEs), + offsetof(struct ASN_RRC_MobilityFromNRCommand_IEs, _asn_ctx), + asn_MAP_ASN_RRC_MobilityFromNRCommand_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_MobilityFromNRCommand_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs = { + "MobilityFromNRCommand-IEs", + "MobilityFromNRCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MobilityFromNRCommand_IEs_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_MobilityFromNRCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.h b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.h new file mode 100644 index 0000000..df1f5c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand-IEs.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MobilityFromNRCommand_IEs_H_ +#define _ASN_RRC_MobilityFromNRCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type { + ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type_eutra = 0, + ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type_spare3 = 1, + ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type_spare2 = 2, + ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type_spare1 = 3 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_MobilityFromNRCommand_IEs__targetRAT_Type; + +/* ASN_RRC_MobilityFromNRCommand-IEs */ +typedef struct ASN_RRC_MobilityFromNRCommand_IEs { + long targetRAT_Type; + OCTET_STRING_t targetRAT_MessageContainer; + OCTET_STRING_t *nas_SecurityParamFromNR; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_MobilityFromNRCommand_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MobilityFromNRCommand_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_targetRAT_Type_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityFromNRCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityFromNRCommand_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MobilityFromNRCommand_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.c b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.c new file mode 100644 index 0000000..e983c3a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MobilityFromNRCommand.h" + +#include "ASN_RRC_MobilityFromNRCommand-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions, choice.mobilityFromNRCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MobilityFromNRCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityFromNRCommand" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mobilityFromNRCommand */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions), + offsetof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_MobilityFromNRCommand__criticalExtensions, present), + sizeof(((struct ASN_RRC_MobilityFromNRCommand__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityFromNRCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityFromNRCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MobilityFromNRCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityFromNRCommand_specs_1 = { + sizeof(struct ASN_RRC_MobilityFromNRCommand), + offsetof(struct ASN_RRC_MobilityFromNRCommand, _asn_ctx), + asn_MAP_ASN_RRC_MobilityFromNRCommand_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityFromNRCommand = { + "MobilityFromNRCommand", + "MobilityFromNRCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1, + sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityFromNRCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MobilityFromNRCommand_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_MobilityFromNRCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.h b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.h new file mode 100644 index 0000000..96d9fcf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityFromNRCommand.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MobilityFromNRCommand_H_ +#define _ASN_RRC_MobilityFromNRCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR { + ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR_mobilityFromNRCommand, + ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_MobilityFromNRCommand_IEs; + +/* ASN_RRC_MobilityFromNRCommand */ +typedef struct ASN_RRC_MobilityFromNRCommand { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_MobilityFromNRCommand__criticalExtensions { + ASN_RRC_MobilityFromNRCommand__criticalExtensions_PR present; + union ASN_RRC_MobilityFromNRCommand__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_MobilityFromNRCommand_IEs *mobilityFromNRCommand; + struct ASN_RRC_MobilityFromNRCommand__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MobilityFromNRCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityFromNRCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityFromNRCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityFromNRCommand_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MobilityFromNRCommand_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MobilityStateParameters.c b/src/asn/rrc/ASN_RRC_MobilityStateParameters.c new file mode 100644 index 0000000..d5ac2ce --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityStateParameters.c @@ -0,0 +1,256 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MobilityStateParameters.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 int +memb_ASN_RRC_n_CellChangeMedium_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_n_CellChangeHigh_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 <= 16)) { + /* Constraint 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_ASN_RRC_t_Evaluation_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t_HystNormal_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_n_CellChangeMedium_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_n_CellChangeHigh_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t_Evaluation_value2enum_2[] = { + { 0, 3, "s30" }, + { 1, 3, "s60" }, + { 2, 4, "s120" }, + { 3, 4, "s180" }, + { 4, 4, "s240" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_t_Evaluation_enum2value_2[] = { + 2, /* s120(2) */ + 3, /* s180(3) */ + 4, /* s240(4) */ + 0, /* s30(0) */ + 1, /* s60(1) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5 /* spare3(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t_Evaluation_specs_2 = { + asn_MAP_ASN_RRC_t_Evaluation_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t_Evaluation_enum2value_2, /* 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_ASN_RRC_t_Evaluation_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_ASN_RRC_t_Evaluation_2 = { + "t-Evaluation", + "t-Evaluation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t_Evaluation_tags_2, + sizeof(asn_DEF_ASN_RRC_t_Evaluation_tags_2) + /sizeof(asn_DEF_ASN_RRC_t_Evaluation_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t_Evaluation_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t_Evaluation_tags_2) + /sizeof(asn_DEF_ASN_RRC_t_Evaluation_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t_Evaluation_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t_Evaluation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t_HystNormal_value2enum_11[] = { + { 0, 3, "s30" }, + { 1, 3, "s60" }, + { 2, 4, "s120" }, + { 3, 4, "s180" }, + { 4, 4, "s240" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_t_HystNormal_enum2value_11[] = { + 2, /* s120(2) */ + 3, /* s180(3) */ + 4, /* s240(4) */ + 0, /* s30(0) */ + 1, /* s60(1) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5 /* spare3(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t_HystNormal_specs_11 = { + asn_MAP_ASN_RRC_t_HystNormal_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t_HystNormal_enum2value_11, /* 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_ASN_RRC_t_HystNormal_tags_11[] = { + (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_ASN_RRC_t_HystNormal_11 = { + "t-HystNormal", + "t-HystNormal", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t_HystNormal_tags_11, + sizeof(asn_DEF_ASN_RRC_t_HystNormal_tags_11) + /sizeof(asn_DEF_ASN_RRC_t_HystNormal_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t_HystNormal_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t_HystNormal_tags_11) + /sizeof(asn_DEF_ASN_RRC_t_HystNormal_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t_HystNormal_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t_HystNormal_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityStateParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityStateParameters, t_Evaluation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t_Evaluation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Evaluation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityStateParameters, t_HystNormal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t_HystNormal_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-HystNormal" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityStateParameters, n_CellChangeMedium), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_n_CellChangeMedium_constr_20, memb_ASN_RRC_n_CellChangeMedium_constraint_1 }, + 0, 0, /* No default value */ + "n-CellChangeMedium" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_MobilityStateParameters, n_CellChangeHigh), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_n_CellChangeHigh_constr_21, memb_ASN_RRC_n_CellChangeHigh_constraint_1 }, + 0, 0, /* No default value */ + "n-CellChangeHigh" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MobilityStateParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_MobilityStateParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* t-Evaluation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* t-HystNormal */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* n-CellChangeMedium */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* n-CellChangeHigh */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityStateParameters_specs_1 = { + sizeof(struct ASN_RRC_MobilityStateParameters), + offsetof(struct ASN_RRC_MobilityStateParameters, _asn_ctx), + asn_MAP_ASN_RRC_MobilityStateParameters_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityStateParameters = { + "MobilityStateParameters", + "MobilityStateParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_MobilityStateParameters_tags_1, + sizeof(asn_DEF_ASN_RRC_MobilityStateParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityStateParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MobilityStateParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MobilityStateParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_MobilityStateParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_MobilityStateParameters_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_MobilityStateParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MobilityStateParameters.h b/src/asn/rrc/ASN_RRC_MobilityStateParameters.h new file mode 100644 index 0000000..4f8c99d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MobilityStateParameters.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MobilityStateParameters_H_ +#define _ASN_RRC_MobilityStateParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_MobilityStateParameters__t_Evaluation { + ASN_RRC_MobilityStateParameters__t_Evaluation_s30 = 0, + ASN_RRC_MobilityStateParameters__t_Evaluation_s60 = 1, + ASN_RRC_MobilityStateParameters__t_Evaluation_s120 = 2, + ASN_RRC_MobilityStateParameters__t_Evaluation_s180 = 3, + ASN_RRC_MobilityStateParameters__t_Evaluation_s240 = 4, + ASN_RRC_MobilityStateParameters__t_Evaluation_spare3 = 5, + ASN_RRC_MobilityStateParameters__t_Evaluation_spare2 = 6, + ASN_RRC_MobilityStateParameters__t_Evaluation_spare1 = 7 +} e_ASN_RRC_MobilityStateParameters__t_Evaluation; +typedef enum ASN_RRC_MobilityStateParameters__t_HystNormal { + ASN_RRC_MobilityStateParameters__t_HystNormal_s30 = 0, + ASN_RRC_MobilityStateParameters__t_HystNormal_s60 = 1, + ASN_RRC_MobilityStateParameters__t_HystNormal_s120 = 2, + ASN_RRC_MobilityStateParameters__t_HystNormal_s180 = 3, + ASN_RRC_MobilityStateParameters__t_HystNormal_s240 = 4, + ASN_RRC_MobilityStateParameters__t_HystNormal_spare3 = 5, + ASN_RRC_MobilityStateParameters__t_HystNormal_spare2 = 6, + ASN_RRC_MobilityStateParameters__t_HystNormal_spare1 = 7 +} e_ASN_RRC_MobilityStateParameters__t_HystNormal; + +/* ASN_RRC_MobilityStateParameters */ +typedef struct ASN_RRC_MobilityStateParameters { + long t_Evaluation; + long t_HystNormal; + long n_CellChangeMedium; + long n_CellChangeHigh; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MobilityStateParameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t_Evaluation_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t_HystNormal_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MobilityStateParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_MobilityStateParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MobilityStateParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MobilityStateParameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ModulationOrder.c b/src/asn/rrc/ASN_RRC_ModulationOrder.c new file mode 100644 index 0000000..dd25d3b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ModulationOrder.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ModulationOrder.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ModulationOrder_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ModulationOrder_value2enum_1[] = { + { 0, 11, "bpsk-halfpi" }, + { 1, 4, "bpsk" }, + { 2, 4, "qpsk" }, + { 3, 5, "qam16" }, + { 4, 5, "qam64" }, + { 5, 6, "qam256" } +}; +static const unsigned int asn_MAP_ASN_RRC_ModulationOrder_enum2value_1[] = { + 1, /* bpsk(1) */ + 0, /* bpsk-halfpi(0) */ + 3, /* qam16(3) */ + 5, /* qam256(5) */ + 4, /* qam64(4) */ + 2 /* qpsk(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ModulationOrder_specs_1 = { + asn_MAP_ASN_RRC_ModulationOrder_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ModulationOrder_enum2value_1, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ModulationOrder_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ModulationOrder = { + "ModulationOrder", + "ModulationOrder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ModulationOrder_tags_1, + sizeof(asn_DEF_ASN_RRC_ModulationOrder_tags_1) + /sizeof(asn_DEF_ASN_RRC_ModulationOrder_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ModulationOrder_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ModulationOrder_tags_1) + /sizeof(asn_DEF_ASN_RRC_ModulationOrder_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ModulationOrder_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ModulationOrder_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ModulationOrder.h b/src/asn/rrc/ASN_RRC_ModulationOrder.h new file mode 100644 index 0000000..bf1cf6f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ModulationOrder.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ModulationOrder_H_ +#define _ASN_RRC_ModulationOrder_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ModulationOrder { + ASN_RRC_ModulationOrder_bpsk_halfpi = 0, + ASN_RRC_ModulationOrder_bpsk = 1, + ASN_RRC_ModulationOrder_qpsk = 2, + ASN_RRC_ModulationOrder_qam16 = 3, + ASN_RRC_ModulationOrder_qam64 = 4, + ASN_RRC_ModulationOrder_qam256 = 5 +} e_ASN_RRC_ModulationOrder; + +/* ASN_RRC_ModulationOrder */ +typedef long ASN_RRC_ModulationOrder_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ModulationOrder_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ModulationOrder; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ModulationOrder_specs_1; +asn_struct_free_f ASN_RRC_ModulationOrder_free; +asn_struct_print_f ASN_RRC_ModulationOrder_print; +asn_constr_check_f ASN_RRC_ModulationOrder_constraint; +ber_type_decoder_f ASN_RRC_ModulationOrder_decode_ber; +der_type_encoder_f ASN_RRC_ModulationOrder_encode_der; +xer_type_decoder_f ASN_RRC_ModulationOrder_decode_xer; +xer_type_encoder_f ASN_RRC_ModulationOrder_encode_xer; +per_type_decoder_f ASN_RRC_ModulationOrder_decode_uper; +per_type_encoder_f ASN_RRC_ModulationOrder_encode_uper; +per_type_decoder_f ASN_RRC_ModulationOrder_decode_aper; +per_type_encoder_f ASN_RRC_ModulationOrder_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ModulationOrder_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.c b/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.c new file mode 100644 index 0000000..daae358 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MultiBandInfoListEUTRA.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MultiBandInfoListEUTRA_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_ASN_RRC_MultiBandInfoListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiBandInfoListEUTRA_specs_1 = { + sizeof(struct ASN_RRC_MultiBandInfoListEUTRA), + offsetof(struct ASN_RRC_MultiBandInfoListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiBandInfoListEUTRA = { + "MultiBandInfoListEUTRA", + "MultiBandInfoListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiBandInfoListEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MultiBandInfoListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MultiBandInfoListEUTRA_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MultiBandInfoListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.h b/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.h new file mode 100644 index 0000000..0f655bc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiBandInfoListEUTRA.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MultiBandInfoListEUTRA_H_ +#define _ASN_RRC_MultiBandInfoListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MultiBandInfoListEUTRA */ +typedef struct ASN_RRC_MultiBandInfoListEUTRA { + A_SEQUENCE_OF(ASN_RRC_FreqBandIndicatorEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MultiBandInfoListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiBandInfoListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiBandInfoListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MultiBandInfoListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MultiBandInfoListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MultiBandInfoListEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.c b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.c new file mode 100644 index 0000000..5043467 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MultiFrequencyBandListNR-SIB.h" + +#include "ASN_RRC_NR-MultiBandInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_SIB_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_ASN_RRC_MultiFrequencyBandListNR_SIB_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NR_MultiBandInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiFrequencyBandListNR_SIB_specs_1 = { + sizeof(struct ASN_RRC_MultiFrequencyBandListNR_SIB), + offsetof(struct ASN_RRC_MultiFrequencyBandListNR_SIB, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB = { + "MultiFrequencyBandListNR-SIB", + "MultiFrequencyBandListNR-SIB", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1, + sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_SIB_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MultiFrequencyBandListNR_SIB_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MultiFrequencyBandListNR_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.h b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.h new file mode 100644 index 0000000..376b4db --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR-SIB.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MultiFrequencyBandListNR_SIB_H_ +#define _ASN_RRC_MultiFrequencyBandListNR_SIB_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NR_MultiBandInfo; + +/* ASN_RRC_MultiFrequencyBandListNR-SIB */ +typedef struct ASN_RRC_MultiFrequencyBandListNR_SIB { + A_SEQUENCE_OF(struct ASN_RRC_NR_MultiBandInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MultiFrequencyBandListNR_SIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiFrequencyBandListNR_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MultiFrequencyBandListNR_SIB_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_SIB_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MultiFrequencyBandListNR_SIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.c b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.c new file mode 100644 index 0000000..050b224 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_MultiFrequencyBandListNR.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_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_ASN_RRC_MultiFrequencyBandListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiFrequencyBandListNR_specs_1 = { + sizeof(struct ASN_RRC_MultiFrequencyBandListNR), + offsetof(struct ASN_RRC_MultiFrequencyBandListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR = { + "MultiFrequencyBandListNR", + "MultiFrequencyBandListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1, + sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_MultiFrequencyBandListNR_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_MultiFrequencyBandListNR_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_MultiFrequencyBandListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.h b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.h new file mode 100644 index 0000000..fcbfc1a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_MultiFrequencyBandListNR.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_MultiFrequencyBandListNR_H_ +#define _ASN_RRC_MultiFrequencyBandListNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_MultiFrequencyBandListNR */ +typedef struct ASN_RRC_MultiFrequencyBandListNR { + A_SEQUENCE_OF(ASN_RRC_FreqBandIndicatorNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_MultiFrequencyBandListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_MultiFrequencyBandListNR; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_MultiFrequencyBandListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_MultiFrequencyBandListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_MultiFrequencyBandListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_MultiFrequencyBandListNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.c b/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.c new file mode 100644 index 0000000..ee37422 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NAICS-Capability-Entry.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_numberOfNAICS_CapableCC_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 <= 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_type_ASN_RRC_numberOfAggregatedPRB_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_ASN_RRC_numberOfNAICS_CapableCC_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (1..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_numberOfAggregatedPRB_value2enum_3[] = { + { 0, 3, "n50" }, + { 1, 3, "n75" }, + { 2, 4, "n100" }, + { 3, 4, "n125" }, + { 4, 4, "n150" }, + { 5, 4, "n175" }, + { 6, 4, "n200" }, + { 7, 4, "n225" }, + { 8, 4, "n250" }, + { 9, 4, "n275" }, + { 10, 4, "n300" }, + { 11, 4, "n350" }, + { 12, 4, "n400" }, + { 13, 4, "n450" }, + { 14, 4, "n500" }, + { 15, 5, "spare" } +}; +static const unsigned int asn_MAP_ASN_RRC_numberOfAggregatedPRB_enum2value_3[] = { + 2, /* n100(2) */ + 3, /* n125(3) */ + 4, /* n150(4) */ + 5, /* n175(5) */ + 6, /* n200(6) */ + 7, /* n225(7) */ + 8, /* n250(8) */ + 9, /* n275(9) */ + 10, /* n300(10) */ + 11, /* n350(11) */ + 12, /* n400(12) */ + 13, /* n450(13) */ + 0, /* n50(0) */ + 14, /* n500(14) */ + 1, /* n75(1) */ + 15 /* spare(15) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_numberOfAggregatedPRB_specs_3 = { + asn_MAP_ASN_RRC_numberOfAggregatedPRB_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_numberOfAggregatedPRB_enum2value_3, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_numberOfAggregatedPRB_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_ASN_RRC_numberOfAggregatedPRB_3 = { + "numberOfAggregatedPRB", + "numberOfAggregatedPRB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3, + sizeof(asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3) + /sizeof(asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3) + /sizeof(asn_DEF_ASN_RRC_numberOfAggregatedPRB_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_numberOfAggregatedPRB_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_numberOfAggregatedPRB_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_NAICS_Capability_Entry_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NAICS_Capability_Entry, numberOfNAICS_CapableCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_numberOfNAICS_CapableCC_constr_2, memb_ASN_RRC_numberOfNAICS_CapableCC_constraint_1 }, + 0, 0, /* No default value */ + "numberOfNAICS-CapableCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NAICS_Capability_Entry, numberOfAggregatedPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_numberOfAggregatedPRB_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfAggregatedPRB" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NAICS_Capability_Entry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* numberOfNAICS-CapableCC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* numberOfAggregatedPRB */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NAICS_Capability_Entry_specs_1 = { + sizeof(struct ASN_RRC_NAICS_Capability_Entry), + offsetof(struct ASN_RRC_NAICS_Capability_Entry, _asn_ctx), + asn_MAP_ASN_RRC_NAICS_Capability_Entry_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_ASN_RRC_NAICS_Capability_Entry = { + "NAICS-Capability-Entry", + "NAICS-Capability-Entry", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1, + sizeof(asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1) + /sizeof(asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1) + /sizeof(asn_DEF_ASN_RRC_NAICS_Capability_Entry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NAICS_Capability_Entry_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_NAICS_Capability_Entry_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.h b/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.h new file mode 100644 index 0000000..3c1ad5b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NAICS-Capability-Entry.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NAICS_Capability_Entry_H_ +#define _ASN_RRC_NAICS_Capability_Entry_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB { + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n50 = 0, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n75 = 1, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n100 = 2, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n125 = 3, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n150 = 4, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n175 = 5, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n200 = 6, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n225 = 7, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n250 = 8, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n275 = 9, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n300 = 10, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n350 = 11, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n400 = 12, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n450 = 13, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_n500 = 14, + ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB_spare = 15 +} e_ASN_RRC_NAICS_Capability_Entry__numberOfAggregatedPRB; + +/* ASN_RRC_NAICS-Capability-Entry */ +typedef struct ASN_RRC_NAICS_Capability_Entry { + long numberOfNAICS_CapableCC; + long numberOfAggregatedPRB; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NAICS_Capability_Entry_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_numberOfAggregatedPRB_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NAICS_Capability_Entry; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NAICS_Capability_Entry_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NAICS_Capability_Entry_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NAICS_Capability_Entry_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.c b/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.c new file mode 100644 index 0000000..1592e30 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NG-5G-S-TMSI.h" + +int +ASN_RRC_NG_5G_S_TMSI_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_ASN_RRC_NG_5G_S_TMSI_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_ASN_RRC_NG_5G_S_TMSI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NG_5G_S_TMSI = { + "NG-5G-S-TMSI", + "NG-5G-S-TMSI", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1, + sizeof(asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1) + /sizeof(asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1) + /sizeof(asn_DEF_ASN_RRC_NG_5G_S_TMSI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NG_5G_S_TMSI_constr_1, ASN_RRC_NG_5G_S_TMSI_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.h b/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.h new file mode 100644 index 0000000..7c052bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NG-5G-S-TMSI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NG_5G_S_TMSI_H_ +#define _ASN_RRC_NG_5G_S_TMSI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NG-5G-S-TMSI */ +typedef BIT_STRING_t ASN_RRC_NG_5G_S_TMSI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NG_5G_S_TMSI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NG_5G_S_TMSI; +asn_struct_free_f ASN_RRC_NG_5G_S_TMSI_free; +asn_struct_print_f ASN_RRC_NG_5G_S_TMSI_print; +asn_constr_check_f ASN_RRC_NG_5G_S_TMSI_constraint; +ber_type_decoder_f ASN_RRC_NG_5G_S_TMSI_decode_ber; +der_type_encoder_f ASN_RRC_NG_5G_S_TMSI_encode_der; +xer_type_decoder_f ASN_RRC_NG_5G_S_TMSI_decode_xer; +xer_type_encoder_f ASN_RRC_NG_5G_S_TMSI_encode_xer; +per_type_decoder_f ASN_RRC_NG_5G_S_TMSI_decode_uper; +per_type_encoder_f ASN_RRC_NG_5G_S_TMSI_encode_uper; +per_type_decoder_f ASN_RRC_NG_5G_S_TMSI_decode_aper; +per_type_encoder_f ASN_RRC_NG_5G_S_TMSI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NG_5G_S_TMSI_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NR-FreqInfo.c b/src/asn/rrc/ASN_RRC_NR-FreqInfo.c new file mode 100644 index 0000000..4b99bae --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-FreqInfo.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NR-FreqInfo.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_NR_FreqInfo_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NR_FreqInfo, measuredFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measuredFrequency" + }, +}; +static const int asn_MAP_ASN_RRC_NR_FreqInfo_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NR_FreqInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NR_FreqInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measuredFrequency */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_FreqInfo_specs_1 = { + sizeof(struct ASN_RRC_NR_FreqInfo), + offsetof(struct ASN_RRC_NR_FreqInfo, _asn_ctx), + asn_MAP_ASN_RRC_NR_FreqInfo_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NR_FreqInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_FreqInfo = { + "NR-FreqInfo", + "NR-FreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NR_FreqInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_NR_FreqInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_FreqInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NR_FreqInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NR_FreqInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_FreqInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NR_FreqInfo_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_NR_FreqInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NR-FreqInfo.h b/src/asn/rrc/ASN_RRC_NR-FreqInfo.h new file mode 100644 index 0000000..8290009 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-FreqInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NR_FreqInfo_H_ +#define _ASN_RRC_NR_FreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NR-FreqInfo */ +typedef struct ASN_RRC_NR_FreqInfo { + ASN_RRC_ARFCN_ValueNR_t *measuredFrequency; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NR_FreqInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_FreqInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_FreqInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NR_FreqInfo_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NR_FreqInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.c b/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.c new file mode 100644 index 0000000..39ddc87 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NR-MultiBandInfo.h" + +#include "ASN_RRC_NR-NS-PmaxList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_NR_MultiBandInfo_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_NR_MultiBandInfo, freqBandIndicatorNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorNR" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NR_MultiBandInfo, nr_NS_PmaxList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NR_NS_PmaxList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-NS-PmaxList" + }, +}; +static const int asn_MAP_ASN_RRC_NR_MultiBandInfo_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NR_MultiBandInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* freqBandIndicatorNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nr-NS-PmaxList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_MultiBandInfo_specs_1 = { + sizeof(struct ASN_RRC_NR_MultiBandInfo), + offsetof(struct ASN_RRC_NR_MultiBandInfo, _asn_ctx), + asn_MAP_ASN_RRC_NR_MultiBandInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NR_MultiBandInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_MultiBandInfo = { + "NR-MultiBandInfo", + "NR-MultiBandInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_MultiBandInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NR_MultiBandInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_NR_MultiBandInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.h b/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.h new file mode 100644 index 0000000..a80008f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-MultiBandInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NR_MultiBandInfo_H_ +#define _ASN_RRC_NR_MultiBandInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NR_NS_PmaxList; + +/* ASN_RRC_NR-MultiBandInfo */ +typedef struct ASN_RRC_NR_MultiBandInfo { + ASN_RRC_FreqBandIndicatorNR_t *freqBandIndicatorNR; /* OPTIONAL */ + struct ASN_RRC_NR_NS_PmaxList *nr_NS_PmaxList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NR_MultiBandInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_MultiBandInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_MultiBandInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NR_MultiBandInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NR_MultiBandInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.c b/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.c new file mode 100644 index 0000000..db60389 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NR-NS-PmaxList.h" + +#include "ASN_RRC_NR-NS-PmaxValue.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_NR_NS_PmaxList_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_ASN_RRC_NR_NS_PmaxList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NR_NS_PmaxValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_NR_NS_PmaxList_specs_1 = { + sizeof(struct ASN_RRC_NR_NS_PmaxList), + offsetof(struct ASN_RRC_NR_NS_PmaxList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_NS_PmaxList = { + "NR-NS-PmaxList", + "NR-NS-PmaxList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1, + sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NR_NS_PmaxList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_NR_NS_PmaxList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_NR_NS_PmaxList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.h b/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.h new file mode 100644 index 0000000..2c6da20 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-NS-PmaxList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NR_NS_PmaxList_H_ +#define _ASN_RRC_NR_NS_PmaxList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NR_NS_PmaxValue; + +/* ASN_RRC_NR-NS-PmaxList */ +typedef struct ASN_RRC_NR_NS_PmaxList { + A_SEQUENCE_OF(struct ASN_RRC_NR_NS_PmaxValue) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NR_NS_PmaxList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_NS_PmaxList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_NR_NS_PmaxList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NR_NS_PmaxList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NR_NS_PmaxList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NR_NS_PmaxList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.c b/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.c new file mode 100644 index 0000000..688f716 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NR-NS-PmaxValue.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_NR_NS_PmaxValue_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NR_NS_PmaxValue, additionalPmax), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalPmax" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NR_NS_PmaxValue, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AdditionalSpectrumEmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, +}; +static const int asn_MAP_ASN_RRC_NR_NS_PmaxValue_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NR_NS_PmaxValue_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* additionalPmax */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* additionalSpectrumEmission */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_NS_PmaxValue_specs_1 = { + sizeof(struct ASN_RRC_NR_NS_PmaxValue), + offsetof(struct ASN_RRC_NR_NS_PmaxValue, _asn_ctx), + asn_MAP_ASN_RRC_NR_NS_PmaxValue_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NR_NS_PmaxValue_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_NS_PmaxValue = { + "NR-NS-PmaxValue", + "NR-NS-PmaxValue", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1, + sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_NS_PmaxValue_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NR_NS_PmaxValue_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_NR_NS_PmaxValue_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.h b/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.h new file mode 100644 index 0000000..a8ac2da --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-NS-PmaxValue.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NR_NS_PmaxValue_H_ +#define _ASN_RRC_NR_NS_PmaxValue_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_P-Max.h" +#include "ASN_RRC_AdditionalSpectrumEmission.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NR-NS-PmaxValue */ +typedef struct ASN_RRC_NR_NS_PmaxValue { + ASN_RRC_P_Max_t *additionalPmax; /* OPTIONAL */ + ASN_RRC_AdditionalSpectrumEmission_t additionalSpectrumEmission; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NR_NS_PmaxValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_NS_PmaxValue; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NR_NS_PmaxValue_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NR_NS_PmaxValue_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NR_NS_PmaxValue_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NR-RS-Type.c b/src/asn/rrc/ASN_RRC_NR-RS-Type.c new file mode 100644 index 0000000..e380838 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-RS-Type.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NR-RS-Type.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_NR_RS_Type_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_ASN_RRC_NR_RS_Type_value2enum_1[] = { + { 0, 3, "ssb" }, + { 1, 6, "csi-rs" } +}; +static const unsigned int asn_MAP_ASN_RRC_NR_RS_Type_enum2value_1[] = { + 1, /* csi-rs(1) */ + 0 /* ssb(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_NR_RS_Type_specs_1 = { + asn_MAP_ASN_RRC_NR_RS_Type_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_NR_RS_Type_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_ASN_RRC_NR_RS_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_RS_Type = { + "NR-RS-Type", + "NR-RS-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_NR_RS_Type_tags_1, + sizeof(asn_DEF_ASN_RRC_NR_RS_Type_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_RS_Type_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NR_RS_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NR_RS_Type_tags_1) + /sizeof(asn_DEF_ASN_RRC_NR_RS_Type_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NR_RS_Type_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_NR_RS_Type_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NR-RS-Type.h b/src/asn/rrc/ASN_RRC_NR-RS-Type.h new file mode 100644 index 0000000..e7cb6fb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NR-RS-Type.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NR_RS_Type_H_ +#define _ASN_RRC_NR_RS_Type_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_NR_RS_Type { + ASN_RRC_NR_RS_Type_ssb = 0, + ASN_RRC_NR_RS_Type_csi_rs = 1 +} e_ASN_RRC_NR_RS_Type; + +/* ASN_RRC_NR-RS-Type */ +typedef long ASN_RRC_NR_RS_Type_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NR_RS_Type_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NR_RS_Type; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_NR_RS_Type_specs_1; +asn_struct_free_f ASN_RRC_NR_RS_Type_free; +asn_struct_print_f ASN_RRC_NR_RS_Type_print; +asn_constr_check_f ASN_RRC_NR_RS_Type_constraint; +ber_type_decoder_f ASN_RRC_NR_RS_Type_decode_ber; +der_type_encoder_f ASN_RRC_NR_RS_Type_encode_der; +xer_type_decoder_f ASN_RRC_NR_RS_Type_decode_xer; +xer_type_encoder_f ASN_RRC_NR_RS_Type_encode_xer; +per_type_decoder_f ASN_RRC_NR_RS_Type_decode_uper; +per_type_encoder_f ASN_RRC_NR_RS_Type_encode_uper; +per_type_decoder_f ASN_RRC_NR_RS_Type_decode_aper; +per_type_encoder_f ASN_RRC_NR_RS_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NR_RS_Type_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NRDC-Parameters.c b/src/asn/rrc/ASN_RRC_NRDC-Parameters.c new file mode 100644 index 0000000..2313205 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NRDC-Parameters.c @@ -0,0 +1,154 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NRDC-Parameters.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC.h" +#include "ASN_RRC_GeneralParametersMRDC-XDD-Diff.h" +#include "ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h" +#include "ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_9 = { + sizeof(struct ASN_RRC_NRDC_Parameters__nonCriticalExtension), + offsetof(struct ASN_RRC_NRDC_Parameters__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_9 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_9, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_9) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_9) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_NRDC_Parameters_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_NRDC_Parameters, measAndMobParametersNRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersNRDC" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_NRDC_Parameters, generalParametersNRDC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generalParametersNRDC" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_NRDC_Parameters, fdd_Add_UE_NRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-NRDC-Capabilities" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_NRDC_Parameters, tdd_Add_UE_NRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-NRDC-Capabilities" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_NRDC_Parameters, fr1_Add_UE_NRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-NRDC-Capabilities" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_NRDC_Parameters, fr2_Add_UE_NRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-NRDC-Capabilities" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_NRDC_Parameters, lateNonCriticalExtension), + (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 */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NRDC_Parameters, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_NRDC_Parameters_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NRDC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NRDC_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersNRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* generalParametersNRDC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fdd-Add-UE-NRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tdd-Add-UE-NRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fr1-Add-UE-NRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* fr2-Add-UE-NRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NRDC_Parameters_specs_1 = { + sizeof(struct ASN_RRC_NRDC_Parameters), + offsetof(struct ASN_RRC_NRDC_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_NRDC_Parameters_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NRDC_Parameters_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NRDC_Parameters = { + "NRDC-Parameters", + "NRDC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NRDC_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_NRDC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_NRDC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NRDC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NRDC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_NRDC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NRDC_Parameters_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_NRDC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NRDC-Parameters.h b/src/asn/rrc/ASN_RRC_NRDC-Parameters.h new file mode 100644 index 0000000..a7685a3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NRDC-Parameters.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NRDC_Parameters_H_ +#define _ASN_RRC_NRDC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC; +struct ASN_RRC_GeneralParametersMRDC_XDD_Diff; +struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode; +struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode; + +/* ASN_RRC_NRDC-Parameters */ +typedef struct ASN_RRC_NRDC_Parameters { + struct ASN_RRC_MeasAndMobParametersMRDC *measAndMobParametersNRDC; /* OPTIONAL */ + struct ASN_RRC_GeneralParametersMRDC_XDD_Diff *generalParametersNRDC; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode *fdd_Add_UE_NRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode *tdd_Add_UE_NRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode *fr1_Add_UE_NRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode *fr2_Add_UE_NRDC_Capabilities; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_NRDC_Parameters__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NRDC_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NRDC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NRDC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NRDC_Parameters_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NRDC_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.c b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.c new file mode 100644 index 0000000..6d7eb9f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.c @@ -0,0 +1,193 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NZP-CSI-RS-Resource.h" + +#include "ASN_RRC_CSI-ResourcePeriodicityAndOffset.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_powerControlOffset_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 >= -8 && 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_type_ASN_RRC_powerControlOffsetSS_constr_5 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_ASN_RRC_powerControlOffset_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -8, 15 } /* (-8..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerControlOffsetSS_value2enum_5[] = { + { 0, 4, "db-3" }, + { 1, 3, "db0" }, + { 2, 3, "db3" }, + { 3, 3, "db6" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerControlOffsetSS_enum2value_5[] = { + 0, /* db-3(0) */ + 1, /* db0(1) */ + 2, /* db3(2) */ + 3 /* db6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerControlOffsetSS_specs_5 = { + asn_MAP_ASN_RRC_powerControlOffsetSS_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerControlOffsetSS_enum2value_5, /* 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_ASN_RRC_powerControlOffsetSS_tags_5[] = { + (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_ASN_RRC_powerControlOffsetSS_5 = { + "powerControlOffsetSS", + "powerControlOffsetSS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5, + sizeof(asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5) + /sizeof(asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5) + /sizeof(asn_DEF_ASN_RRC_powerControlOffsetSS_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerControlOffsetSS_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerControlOffsetSS_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_NZP_CSI_RS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, nzp_CSI_RS_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ResourceMapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, powerControlOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_powerControlOffset_constr_4, memb_ASN_RRC_powerControlOffset_constraint_1 }, + 0, 0, /* No default value */ + "powerControlOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, powerControlOffsetSS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerControlOffsetSS_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerControlOffsetSS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, scramblingID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ScramblingId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scramblingID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, qcl_InfoPeriodicCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-InfoPeriodicCSI-RS" + }, +}; +static const int asn_MAP_ASN_RRC_NZP_CSI_RS_Resource_oms_1[] = { 3, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NZP_CSI_RS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-RS-ResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceMapping */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* powerControlOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* powerControlOffsetSS */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* scramblingID */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* periodicityAndOffset */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* qcl-InfoPeriodicCSI-RS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NZP_CSI_RS_Resource_specs_1 = { + sizeof(struct ASN_RRC_NZP_CSI_RS_Resource), + offsetof(struct ASN_RRC_NZP_CSI_RS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_NZP_CSI_RS_Resource_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NZP_CSI_RS_Resource_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_Resource = { + "NZP-CSI-RS-Resource", + "NZP-CSI-RS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NZP_CSI_RS_Resource_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_NZP_CSI_RS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.h b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.h new file mode 100644 index 0000000..d0b62a6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-Resource.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NZP_CSI_RS_Resource_H_ +#define _ASN_RRC_NZP_CSI_RS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_CSI-RS-ResourceMapping.h" +#include +#include +#include "ASN_RRC_ScramblingId.h" +#include "ASN_RRC_TCI-StateId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS { + ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS_db_3 = 0, + ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS_db0 = 1, + ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS_db3 = 2, + ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS_db6 = 3 +} e_ASN_RRC_NZP_CSI_RS_Resource__powerControlOffsetSS; + +/* Forward declarations */ +struct ASN_RRC_CSI_ResourcePeriodicityAndOffset; + +/* ASN_RRC_NZP-CSI-RS-Resource */ +typedef struct ASN_RRC_NZP_CSI_RS_Resource { + ASN_RRC_NZP_CSI_RS_ResourceId_t nzp_CSI_RS_ResourceId; + ASN_RRC_CSI_RS_ResourceMapping_t resourceMapping; + long powerControlOffset; + long *powerControlOffsetSS; /* OPTIONAL */ + ASN_RRC_ScramblingId_t scramblingID; + struct ASN_RRC_CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + ASN_RRC_TCI_StateId_t *qcl_InfoPeriodicCSI_RS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NZP_CSI_RS_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerControlOffsetSS_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NZP_CSI_RS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NZP_CSI_RS_Resource_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NZP_CSI_RS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.c b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.c new file mode 100644 index 0000000..a2e5f18 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" + +int +ASN_RRC_NZP_CSI_RS_ResourceId_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 <= 191)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_NZP_CSI_RS_ResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 191 } /* (0..191) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId = { + "NZP-CSI-RS-ResourceId", + "NZP-CSI-RS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NZP_CSI_RS_ResourceId_constr_1, ASN_RRC_NZP_CSI_RS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.h b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.h new file mode 100644 index 0000000..b954f0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NZP_CSI_RS_ResourceId_H_ +#define _ASN_RRC_NZP_CSI_RS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NZP-CSI-RS-ResourceId */ +typedef long ASN_RRC_NZP_CSI_RS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NZP_CSI_RS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId; +asn_struct_free_f ASN_RRC_NZP_CSI_RS_ResourceId_free; +asn_struct_print_f ASN_RRC_NZP_CSI_RS_ResourceId_print; +asn_constr_check_f ASN_RRC_NZP_CSI_RS_ResourceId_constraint; +ber_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceId_decode_ber; +der_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceId_encode_der; +xer_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceId_encode_xer; +per_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceId_decode_uper; +per_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceId_encode_uper; +per_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceId_decode_aper; +per_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NZP_CSI_RS_ResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.c b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.c new file mode 100644 index 0000000..2c89403 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.c @@ -0,0 +1,285 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NZP-CSI-RS-ResourceSet.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 int +memb_ASN_RRC_nzp_CSI_RS_Resources_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 <= 64)) { + /* 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 int +memb_ASN_RRC_aperiodicTriggeringOffset_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 <= 6)) { + /* Constraint 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_ASN_RRC_nzp_CSI_RS_Resources_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_repetition_constr_5 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_type_ASN_RRC_trs_Info_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_nzp_CSI_RS_Resources_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_aperiodicTriggeringOffset_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_nzp_CSI_RS_Resources_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_Resources_specs_3 = { + sizeof(struct ASN_RRC_NZP_CSI_RS_ResourceSet__nzp_CSI_RS_Resources), + offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet__nzp_CSI_RS_Resources, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_3 = { + "nzp-CSI-RS-Resources", + "nzp-CSI-RS-Resources", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_Resources_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_nzp_CSI_RS_Resources_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_Resources_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repetition_value2enum_5[] = { + { 0, 2, "on" }, + { 1, 3, "off" } +}; +static const unsigned int asn_MAP_ASN_RRC_repetition_enum2value_5[] = { + 1, /* off(1) */ + 0 /* on(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repetition_specs_5 = { + asn_MAP_ASN_RRC_repetition_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_repetition_enum2value_5, /* 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_ASN_RRC_repetition_tags_5[] = { + (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_ASN_RRC_repetition_5 = { + "repetition", + "repetition", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_repetition_tags_5, + sizeof(asn_DEF_ASN_RRC_repetition_tags_5) + /sizeof(asn_DEF_ASN_RRC_repetition_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_repetition_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_repetition_tags_5) + /sizeof(asn_DEF_ASN_RRC_repetition_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_repetition_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_repetition_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_trs_Info_value2enum_9[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_trs_Info_enum2value_9[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_trs_Info_specs_9 = { + asn_MAP_ASN_RRC_trs_Info_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_trs_Info_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_trs_Info_tags_9[] = { + (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_ASN_RRC_trs_Info_9 = { + "trs-Info", + "trs-Info", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_trs_Info_tags_9, + sizeof(asn_DEF_ASN_RRC_trs_Info_tags_9) + /sizeof(asn_DEF_ASN_RRC_trs_Info_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_trs_Info_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_trs_Info_tags_9) + /sizeof(asn_DEF_ASN_RRC_trs_Info_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_trs_Info_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_trs_Info_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_NZP_CSI_RS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, nzp_CSI_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, nzp_CSI_RS_Resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nzp_CSI_RS_Resources_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_nzp_CSI_RS_Resources_constr_3, memb_ASN_RRC_nzp_CSI_RS_Resources_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-Resources" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, repetition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_repetition_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repetition" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, aperiodicTriggeringOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_aperiodicTriggeringOffset_constr_8, memb_ASN_RRC_aperiodicTriggeringOffset_constraint_1 }, + 0, 0, /* No default value */ + "aperiodicTriggeringOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, trs_Info), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_trs_Info_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trs-Info" + }, +}; +static const int asn_MAP_ASN_RRC_NZP_CSI_RS_ResourceSet_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_NZP_CSI_RS_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nzp-CSI-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nzp-CSI-RS-Resources */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* repetition */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* aperiodicTriggeringOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* trs-Info */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NZP_CSI_RS_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_NZP_CSI_RS_ResourceSet), + offsetof(struct ASN_RRC_NZP_CSI_RS_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_NZP_CSI_RS_ResourceSet_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_NZP_CSI_RS_ResourceSet_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet = { + "NZP-CSI-RS-ResourceSet", + "NZP-CSI-RS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_NZP_CSI_RS_ResourceSet_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_NZP_CSI_RS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.h b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.h new file mode 100644 index 0000000..a995928 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSet.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NZP_CSI_RS_ResourceSet_H_ +#define _ASN_RRC_NZP_CSI_RS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NZP-CSI-RS-ResourceSetId.h" +#include +#include +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_NZP_CSI_RS_ResourceSet__repetition { + ASN_RRC_NZP_CSI_RS_ResourceSet__repetition_on = 0, + ASN_RRC_NZP_CSI_RS_ResourceSet__repetition_off = 1 +} e_ASN_RRC_NZP_CSI_RS_ResourceSet__repetition; +typedef enum ASN_RRC_NZP_CSI_RS_ResourceSet__trs_Info { + ASN_RRC_NZP_CSI_RS_ResourceSet__trs_Info_true = 0 +} e_ASN_RRC_NZP_CSI_RS_ResourceSet__trs_Info; + +/* ASN_RRC_NZP-CSI-RS-ResourceSet */ +typedef struct ASN_RRC_NZP_CSI_RS_ResourceSet { + ASN_RRC_NZP_CSI_RS_ResourceSetId_t nzp_CSI_ResourceSetId; + struct ASN_RRC_NZP_CSI_RS_ResourceSet__nzp_CSI_RS_Resources { + A_SEQUENCE_OF(ASN_RRC_NZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } nzp_CSI_RS_Resources; + long *repetition; /* OPTIONAL */ + long *aperiodicTriggeringOffset; /* OPTIONAL */ + long *trs_Info; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_NZP_CSI_RS_ResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repetition_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_trs_Info_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_NZP_CSI_RS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_NZP_CSI_RS_ResourceSet_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NZP_CSI_RS_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.c b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.c new file mode 100644 index 0000000..f911b34 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NZP-CSI-RS-ResourceSetId.h" + +int +ASN_RRC_NZP_CSI_RS_ResourceSetId_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_NZP_CSI_RS_ResourceSetId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId = { + "NZP-CSI-RS-ResourceSetId", + "NZP-CSI-RS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NZP_CSI_RS_ResourceSetId_constr_1, ASN_RRC_NZP_CSI_RS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.h b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.h new file mode 100644 index 0000000..70702f1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NZP-CSI-RS-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NZP_CSI_RS_ResourceSetId_H_ +#define _ASN_RRC_NZP_CSI_RS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NZP-CSI-RS-ResourceSetId */ +typedef long ASN_RRC_NZP_CSI_RS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NZP_CSI_RS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceSetId; +asn_struct_free_f ASN_RRC_NZP_CSI_RS_ResourceSetId_free; +asn_struct_print_f ASN_RRC_NZP_CSI_RS_ResourceSetId_print; +asn_constr_check_f ASN_RRC_NZP_CSI_RS_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_NZP_CSI_RS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NZP_CSI_RS_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NextHopChainingCount.c b/src/asn/rrc/ASN_RRC_NextHopChainingCount.c new file mode 100644 index 0000000..33cf8da --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NextHopChainingCount.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NextHopChainingCount.h" + +int +ASN_RRC_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_ASN_RRC_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_ASN_RRC_NextHopChainingCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NextHopChainingCount = { + "NextHopChainingCount", + "NextHopChainingCount", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_NextHopChainingCount_tags_1, + sizeof(asn_DEF_ASN_RRC_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_ASN_RRC_NextHopChainingCount_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NextHopChainingCount_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_ASN_RRC_NextHopChainingCount_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NextHopChainingCount_constr_1, ASN_RRC_NextHopChainingCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NextHopChainingCount.h b/src/asn/rrc/ASN_RRC_NextHopChainingCount.h new file mode 100644 index 0000000..cc5c09d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NextHopChainingCount.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NextHopChainingCount_H_ +#define _ASN_RRC_NextHopChainingCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NextHopChainingCount */ +typedef long ASN_RRC_NextHopChainingCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NextHopChainingCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NextHopChainingCount; +asn_struct_free_f ASN_RRC_NextHopChainingCount_free; +asn_struct_print_f ASN_RRC_NextHopChainingCount_print; +asn_constr_check_f ASN_RRC_NextHopChainingCount_constraint; +ber_type_decoder_f ASN_RRC_NextHopChainingCount_decode_ber; +der_type_encoder_f ASN_RRC_NextHopChainingCount_encode_der; +xer_type_decoder_f ASN_RRC_NextHopChainingCount_decode_xer; +xer_type_encoder_f ASN_RRC_NextHopChainingCount_encode_xer; +per_type_decoder_f ASN_RRC_NextHopChainingCount_decode_uper; +per_type_encoder_f ASN_RRC_NextHopChainingCount_encode_uper; +per_type_decoder_f ASN_RRC_NextHopChainingCount_decode_aper; +per_type_encoder_f ASN_RRC_NextHopChainingCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NextHopChainingCount_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_NumberOfCarriers.c b/src/asn/rrc/ASN_RRC_NumberOfCarriers.c new file mode 100644 index 0000000..422437f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NumberOfCarriers.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_NumberOfCarriers.h" + +int +ASN_RRC_NumberOfCarriers_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_NumberOfCarriers_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_NumberOfCarriers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NumberOfCarriers = { + "NumberOfCarriers", + "NumberOfCarriers", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_NumberOfCarriers_tags_1, + sizeof(asn_DEF_ASN_RRC_NumberOfCarriers_tags_1) + /sizeof(asn_DEF_ASN_RRC_NumberOfCarriers_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_NumberOfCarriers_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_NumberOfCarriers_tags_1) + /sizeof(asn_DEF_ASN_RRC_NumberOfCarriers_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_NumberOfCarriers_constr_1, ASN_RRC_NumberOfCarriers_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_NumberOfCarriers.h b/src/asn/rrc/ASN_RRC_NumberOfCarriers.h new file mode 100644 index 0000000..05e32d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_NumberOfCarriers.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_NumberOfCarriers_H_ +#define _ASN_RRC_NumberOfCarriers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_NumberOfCarriers */ +typedef long ASN_RRC_NumberOfCarriers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_NumberOfCarriers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_NumberOfCarriers; +asn_struct_free_f ASN_RRC_NumberOfCarriers_free; +asn_struct_print_f ASN_RRC_NumberOfCarriers_print; +asn_constr_check_f ASN_RRC_NumberOfCarriers_constraint; +ber_type_decoder_f ASN_RRC_NumberOfCarriers_decode_ber; +der_type_encoder_f ASN_RRC_NumberOfCarriers_encode_der; +xer_type_decoder_f ASN_RRC_NumberOfCarriers_decode_xer; +xer_type_encoder_f ASN_RRC_NumberOfCarriers_encode_xer; +per_type_decoder_f ASN_RRC_NumberOfCarriers_decode_uper; +per_type_encoder_f ASN_RRC_NumberOfCarriers_encode_uper; +per_type_decoder_f ASN_RRC_NumberOfCarriers_decode_aper; +per_type_encoder_f ASN_RRC_NumberOfCarriers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_NumberOfCarriers_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_OtherConfig-v1540.c b/src/asn/rrc/ASN_RRC_OtherConfig-v1540.c new file mode 100644 index 0000000..956e22d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OtherConfig-v1540.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_OtherConfig-v1540.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_OtherConfig_v1540_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_OtherConfig_v1540, overheatingAssistanceConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_OverheatingAssistanceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overheatingAssistanceConfig" + }, +}; +static const int asn_MAP_ASN_RRC_OtherConfig_v1540_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_OtherConfig_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* overheatingAssistanceConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OtherConfig_v1540_specs_1 = { + sizeof(struct ASN_RRC_OtherConfig_v1540), + offsetof(struct ASN_RRC_OtherConfig_v1540, _asn_ctx), + asn_MAP_ASN_RRC_OtherConfig_v1540_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_OtherConfig_v1540_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OtherConfig_v1540 = { + "OtherConfig-v1540", + "OtherConfig-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_OtherConfig_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_OtherConfig_v1540_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_OtherConfig_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_OtherConfig-v1540.h b/src/asn/rrc/ASN_RRC_OtherConfig-v1540.h new file mode 100644 index 0000000..33b9de8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OtherConfig-v1540.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_OtherConfig_v1540_H_ +#define _ASN_RRC_OtherConfig_v1540_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig; + +/* ASN_RRC_OtherConfig-v1540 */ +typedef struct ASN_RRC_OtherConfig_v1540 { + struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig *overheatingAssistanceConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_OtherConfig_v1540_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OtherConfig_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OtherConfig_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_OtherConfig_v1540_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_OtherConfig_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_OtherConfig.c b/src/asn/rrc/ASN_RRC_OtherConfig.c new file mode 100644 index 0000000..0ffa32b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OtherConfig.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_OtherConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_delayBudgetReportingProhibitTimer_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_delayBudgetReportingConfig_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_delayBudgetReportingProhibitTimer_value2enum_5[] = { + { 0, 2, "s0" }, + { 1, 6, "s0dot4" }, + { 2, 6, "s0dot8" }, + { 3, 6, "s1dot6" }, + { 4, 2, "s3" }, + { 5, 2, "s6" }, + { 6, 3, "s12" }, + { 7, 3, "s30" } +}; +static const unsigned int asn_MAP_ASN_RRC_delayBudgetReportingProhibitTimer_enum2value_5[] = { + 0, /* s0(0) */ + 1, /* s0dot4(1) */ + 2, /* s0dot8(2) */ + 6, /* s12(6) */ + 3, /* s1dot6(3) */ + 4, /* s3(4) */ + 7, /* s30(7) */ + 5 /* s6(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_delayBudgetReportingProhibitTimer_specs_5 = { + asn_MAP_ASN_RRC_delayBudgetReportingProhibitTimer_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_delayBudgetReportingProhibitTimer_enum2value_5, /* 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_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5[] = { + (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_ASN_RRC_delayBudgetReportingProhibitTimer_5 = { + "delayBudgetReportingProhibitTimer", + "delayBudgetReportingProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5, + sizeof(asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5) + /sizeof(asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5) + /sizeof(asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_delayBudgetReportingProhibitTimer_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_delayBudgetReportingProhibitTimer_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_setup_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup, delayBudgetReportingProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReportingProhibitTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_setup_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_setup_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* delayBudgetReportingProhibitTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_setup_specs_4 = { + sizeof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup), + offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup, _asn_ctx), + asn_MAP_ASN_RRC_setup_tag2el_4, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_setup_4 = { + "setup", + "setup", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_setup_tags_4, + sizeof(asn_DEF_ASN_RRC_setup_tags_4) + /sizeof(asn_DEF_ASN_RRC_setup_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_setup_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_setup_tags_4) + /sizeof(asn_DEF_ASN_RRC_setup_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_setup_4, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_setup_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_delayBudgetReportingConfig_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_setup_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_delayBudgetReportingConfig_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_delayBudgetReportingConfig_specs_2 = { + sizeof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig), + offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig, _asn_ctx), + offsetof(struct ASN_RRC_OtherConfig__delayBudgetReportingConfig, present), + sizeof(((struct ASN_RRC_OtherConfig__delayBudgetReportingConfig *)0)->present), + asn_MAP_ASN_RRC_delayBudgetReportingConfig_tag2el_2, + 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_ASN_RRC_delayBudgetReportingConfig_2 = { + "delayBudgetReportingConfig", + "delayBudgetReportingConfig", + &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_ASN_RRC_delayBudgetReportingConfig_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_delayBudgetReportingConfig_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_delayBudgetReportingConfig_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_OtherConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_OtherConfig, delayBudgetReportingConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_delayBudgetReportingConfig_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReportingConfig" + }, +}; +static const int asn_MAP_ASN_RRC_OtherConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_OtherConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_OtherConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* delayBudgetReportingConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OtherConfig_specs_1 = { + sizeof(struct ASN_RRC_OtherConfig), + offsetof(struct ASN_RRC_OtherConfig, _asn_ctx), + asn_MAP_ASN_RRC_OtherConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_OtherConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OtherConfig = { + "OtherConfig", + "OtherConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_OtherConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_OtherConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_OtherConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_OtherConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_OtherConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_OtherConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_OtherConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_OtherConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_OtherConfig.h b/src/asn/rrc/ASN_RRC_OtherConfig.h new file mode 100644 index 0000000..3bd8391 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OtherConfig.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_OtherConfig_H_ +#define _ASN_RRC_OtherConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR { + ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR_NOTHING, /* No components present */ + ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR_release, + ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR_setup +} ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR; +typedef enum ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer { + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0 = 0, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0dot4 = 1, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0dot8 = 2, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s1dot6 = 3, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s3 = 4, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s6 = 5, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s12 = 6, + ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s30 = 7 +} e_ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer; + +/* ASN_RRC_OtherConfig */ +typedef struct ASN_RRC_OtherConfig { + struct ASN_RRC_OtherConfig__delayBudgetReportingConfig { + ASN_RRC_OtherConfig__delayBudgetReportingConfig_PR present; + union ASN_RRC_OtherConfig__ASN_RRC_delayBudgetReportingConfig_u { + NULL_t release; + struct ASN_RRC_OtherConfig__delayBudgetReportingConfig__setup { + long delayBudgetReportingProhibitTimer; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *delayBudgetReportingConfig; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_OtherConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_delayBudgetReportingProhibitTimer_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OtherConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OtherConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_OtherConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_OtherConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_OverheatingAssistance.c b/src/asn/rrc/ASN_RRC_OverheatingAssistance.c new file mode 100644 index 0000000..b82b139 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OverheatingAssistance.c @@ -0,0 +1,417 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_OverheatingAssistance.h" + +static int +memb_ASN_RRC_reducedCCsDL_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_reducedCCsUL_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 <= 31)) { + /* Constraint 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_ASN_RRC_reducedCCsDL_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_reducedCCsUL_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_reducedMaxCCs_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxCCs, reducedCCsDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_reducedCCsDL_constr_3, memb_ASN_RRC_reducedCCsDL_constraint_2 }, + 0, 0, /* No default value */ + "reducedCCsDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxCCs, reducedCCsUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_reducedCCsUL_constr_4, memb_ASN_RRC_reducedCCsUL_constraint_2 }, + 0, 0, /* No default value */ + "reducedCCsUL" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedMaxCCs_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reducedMaxCCs_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedCCsDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedCCsUL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reducedMaxCCs_specs_2 = { + sizeof(struct ASN_RRC_OverheatingAssistance__reducedMaxCCs), + offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxCCs, _asn_ctx), + asn_MAP_ASN_RRC_reducedMaxCCs_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedMaxCCs_2 = { + "reducedMaxCCs", + "reducedMaxCCs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reducedMaxCCs_tags_2, + sizeof(asn_DEF_ASN_RRC_reducedMaxCCs_tags_2) + /sizeof(asn_DEF_ASN_RRC_reducedMaxCCs_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedMaxCCs_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedMaxCCs_tags_2) + /sizeof(asn_DEF_ASN_RRC_reducedMaxCCs_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reducedMaxCCs_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reducedMaxCCs_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reducedMaxBW_FR1_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR1-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR1-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reducedMaxBW_FR1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedBW-FR1-DL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedBW-FR1-UL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reducedMaxBW_FR1_specs_5 = { + sizeof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR1), + offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR1, _asn_ctx), + asn_MAP_ASN_RRC_reducedMaxBW_FR1_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedMaxBW_FR1_5 = { + "reducedMaxBW-FR1", + "reducedMaxBW-FR1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5, + sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5) + /sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5) + /sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reducedMaxBW_FR1_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reducedMaxBW_FR1_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reducedMaxBW_FR2_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR2-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR2-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reducedMaxBW_FR2_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedBW-FR2-DL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedBW-FR2-UL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reducedMaxBW_FR2_specs_8 = { + sizeof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR2), + offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR2, _asn_ctx), + asn_MAP_ASN_RRC_reducedMaxBW_FR2_tag2el_8, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedMaxBW_FR2_8 = { + "reducedMaxBW-FR2", + "reducedMaxBW-FR2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8, + sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8) + /sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8) + /sizeof(asn_DEF_ASN_RRC_reducedMaxBW_FR2_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reducedMaxBW_FR2_8, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reducedMaxBW_FR2_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reducedMaxMIMO_LayersFR1_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR1-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR1-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reducedMaxMIMO_LayersFR1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMIMO-LayersFR1-DL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedMIMO-LayersFR1-UL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reducedMaxMIMO_LayersFR1_specs_11 = { + sizeof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR1), + offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR1, _asn_ctx), + asn_MAP_ASN_RRC_reducedMaxMIMO_LayersFR1_tag2el_11, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_11 = { + "reducedMaxMIMO-LayersFR1", + "reducedMaxMIMO-LayersFR1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11, + sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11) + /sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11) + /sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reducedMaxMIMO_LayersFR1_11, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reducedMaxMIMO_LayersFR1_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reducedMaxMIMO_LayersFR2_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR2-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR2-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reducedMaxMIMO_LayersFR2_tag2el_14[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMIMO-LayersFR2-DL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reducedMIMO-LayersFR2-UL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reducedMaxMIMO_LayersFR2_specs_14 = { + sizeof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR2), + offsetof(struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR2, _asn_ctx), + asn_MAP_ASN_RRC_reducedMaxMIMO_LayersFR2_tag2el_14, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_14 = { + "reducedMaxMIMO-LayersFR2", + "reducedMaxMIMO-LayersFR2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14, + sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14) + /sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14) + /sizeof(asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_reducedMaxMIMO_LayersFR2_14, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reducedMaxMIMO_LayersFR2_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_OverheatingAssistance_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_OverheatingAssistance, reducedMaxCCs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_reducedMaxCCs_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxCCs" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_OverheatingAssistance, reducedMaxBW_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_reducedMaxBW_FR1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxBW-FR1" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_OverheatingAssistance, reducedMaxBW_FR2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_reducedMaxBW_FR2_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxBW-FR2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_OverheatingAssistance, reducedMaxMIMO_LayersFR1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxMIMO-LayersFR1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_OverheatingAssistance, reducedMaxMIMO_LayersFR2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_reducedMaxMIMO_LayersFR2_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxMIMO-LayersFR2" + }, +}; +static const int asn_MAP_ASN_RRC_OverheatingAssistance_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_OverheatingAssistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_OverheatingAssistance_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedMaxCCs */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reducedMaxBW-FR1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reducedMaxBW-FR2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reducedMaxMIMO-LayersFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* reducedMaxMIMO-LayersFR2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OverheatingAssistance_specs_1 = { + sizeof(struct ASN_RRC_OverheatingAssistance), + offsetof(struct ASN_RRC_OverheatingAssistance, _asn_ctx), + asn_MAP_ASN_RRC_OverheatingAssistance_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_OverheatingAssistance_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OverheatingAssistance = { + "OverheatingAssistance", + "OverheatingAssistance", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_OverheatingAssistance_tags_1, + sizeof(asn_DEF_ASN_RRC_OverheatingAssistance_tags_1) + /sizeof(asn_DEF_ASN_RRC_OverheatingAssistance_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_OverheatingAssistance_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_OverheatingAssistance_tags_1) + /sizeof(asn_DEF_ASN_RRC_OverheatingAssistance_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_OverheatingAssistance_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_OverheatingAssistance_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_OverheatingAssistance.h b/src/asn/rrc/ASN_RRC_OverheatingAssistance.h new file mode 100644 index 0000000..f8d5eb8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OverheatingAssistance.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_OverheatingAssistance_H_ +#define _ASN_RRC_OverheatingAssistance_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_ReducedAggregatedBandwidth.h" +#include "ASN_RRC_MIMO-LayersDL.h" +#include "ASN_RRC_MIMO-LayersUL.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_OverheatingAssistance */ +typedef struct ASN_RRC_OverheatingAssistance { + struct ASN_RRC_OverheatingAssistance__reducedMaxCCs { + long reducedCCsDL; + long reducedCCsUL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxCCs; + struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR1 { + ASN_RRC_ReducedAggregatedBandwidth_t reducedBW_FR1_DL; + ASN_RRC_ReducedAggregatedBandwidth_t reducedBW_FR1_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxBW_FR1; + struct ASN_RRC_OverheatingAssistance__reducedMaxBW_FR2 { + ASN_RRC_ReducedAggregatedBandwidth_t reducedBW_FR2_DL; + ASN_RRC_ReducedAggregatedBandwidth_t reducedBW_FR2_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxBW_FR2; + struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR1 { + ASN_RRC_MIMO_LayersDL_t reducedMIMO_LayersFR1_DL; + ASN_RRC_MIMO_LayersUL_t reducedMIMO_LayersFR1_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxMIMO_LayersFR1; + struct ASN_RRC_OverheatingAssistance__reducedMaxMIMO_LayersFR2 { + ASN_RRC_MIMO_LayersDL_t reducedMIMO_LayersFR2_DL; + ASN_RRC_MIMO_LayersUL_t reducedMIMO_LayersFR2_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxMIMO_LayersFR2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_OverheatingAssistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OverheatingAssistance; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OverheatingAssistance_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_OverheatingAssistance_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_OverheatingAssistance_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.c b/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.c new file mode 100644 index 0000000..523449d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_OverheatingAssistanceConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_overheatingIndicationProhibitTimer_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_overheatingIndicationProhibitTimer_value2enum_2[] = { + { 0, 2, "s0" }, + { 1, 6, "s0dot5" }, + { 2, 2, "s1" }, + { 3, 2, "s2" }, + { 4, 2, "s5" }, + { 5, 3, "s10" }, + { 6, 3, "s20" }, + { 7, 3, "s30" }, + { 8, 3, "s60" }, + { 9, 3, "s90" }, + { 10, 4, "s120" }, + { 11, 4, "s300" }, + { 12, 4, "s600" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_overheatingIndicationProhibitTimer_enum2value_2[] = { + 0, /* s0(0) */ + 1, /* s0dot5(1) */ + 2, /* s1(2) */ + 5, /* s10(5) */ + 10, /* s120(10) */ + 3, /* s2(3) */ + 6, /* s20(6) */ + 7, /* s30(7) */ + 11, /* s300(11) */ + 4, /* s5(4) */ + 8, /* s60(8) */ + 12, /* s600(12) */ + 9, /* s90(9) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13 /* spare3(13) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_overheatingIndicationProhibitTimer_specs_2 = { + asn_MAP_ASN_RRC_overheatingIndicationProhibitTimer_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_overheatingIndicationProhibitTimer_enum2value_2, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_overheatingIndicationProhibitTimer_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_ASN_RRC_overheatingIndicationProhibitTimer_2 = { + "overheatingIndicationProhibitTimer", + "overheatingIndicationProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2, + sizeof(asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2) + /sizeof(asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2) + /sizeof(asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_overheatingIndicationProhibitTimer_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_overheatingIndicationProhibitTimer_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_OverheatingAssistanceConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_OverheatingAssistanceConfig, overheatingIndicationProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overheatingIndicationProhibitTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_OverheatingAssistanceConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* overheatingIndicationProhibitTimer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OverheatingAssistanceConfig_specs_1 = { + sizeof(struct ASN_RRC_OverheatingAssistanceConfig), + offsetof(struct ASN_RRC_OverheatingAssistanceConfig, _asn_ctx), + asn_MAP_ASN_RRC_OverheatingAssistanceConfig_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_ASN_RRC_OverheatingAssistanceConfig = { + "OverheatingAssistanceConfig", + "OverheatingAssistanceConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_OverheatingAssistanceConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_OverheatingAssistanceConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_OverheatingAssistanceConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.h b/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.h new file mode 100644 index 0000000..9db62d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_OverheatingAssistanceConfig.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_OverheatingAssistanceConfig_H_ +#define _ASN_RRC_OverheatingAssistanceConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer { + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s0 = 0, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s0dot5 = 1, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s1 = 2, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s2 = 3, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s5 = 4, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s10 = 5, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s20 = 6, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s30 = 7, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s60 = 8, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s90 = 9, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s120 = 10, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s300 = 11, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_s600 = 12, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_spare3 = 13, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_spare2 = 14, + ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer_spare1 = 15 +} e_ASN_RRC_OverheatingAssistanceConfig__overheatingIndicationProhibitTimer; + +/* ASN_RRC_OverheatingAssistanceConfig */ +typedef struct ASN_RRC_OverheatingAssistanceConfig { + long overheatingIndicationProhibitTimer; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_OverheatingAssistanceConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_overheatingIndicationProhibitTimer_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_OverheatingAssistanceConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_OverheatingAssistanceConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_OverheatingAssistanceConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_OverheatingAssistanceConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_P-Max.c b/src/asn/rrc/ASN_RRC_P-Max.c new file mode 100644 index 0000000..202cdb3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P-Max.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_P-Max.h" + +int +ASN_RRC_P_Max_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 >= -30 && value <= 33)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_P_Max_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -30, 33 } /* (-30..33) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_P_Max_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P_Max = { + "P-Max", + "P-Max", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_P_Max_tags_1, + sizeof(asn_DEF_ASN_RRC_P_Max_tags_1) + /sizeof(asn_DEF_ASN_RRC_P_Max_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_P_Max_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_P_Max_tags_1) + /sizeof(asn_DEF_ASN_RRC_P_Max_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_P_Max_constr_1, ASN_RRC_P_Max_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_P-Max.h b/src/asn/rrc/ASN_RRC_P-Max.h new file mode 100644 index 0000000..5f30618 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P-Max.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_P_Max_H_ +#define _ASN_RRC_P_Max_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_P-Max */ +typedef long ASN_RRC_P_Max_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_P_Max_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P_Max; +asn_struct_free_f ASN_RRC_P_Max_free; +asn_struct_print_f ASN_RRC_P_Max_print; +asn_constr_check_f ASN_RRC_P_Max_constraint; +ber_type_decoder_f ASN_RRC_P_Max_decode_ber; +der_type_encoder_f ASN_RRC_P_Max_encode_der; +xer_type_decoder_f ASN_RRC_P_Max_decode_xer; +xer_type_encoder_f ASN_RRC_P_Max_encode_xer; +per_type_decoder_f ASN_RRC_P_Max_decode_uper; +per_type_encoder_f ASN_RRC_P_Max_encode_uper; +per_type_decoder_f ASN_RRC_P_Max_decode_aper; +per_type_encoder_f ASN_RRC_P_Max_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_P_Max_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.c b/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.c new file mode 100644 index 0000000..998551a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_P0-PUCCH-Id.h" + +int +ASN_RRC_P0_PUCCH_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 <= 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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_P0_PUCCH_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_P0_PUCCH_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUCCH_Id = { + "P0-PUCCH-Id", + "P0-PUCCH-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUCCH_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_P0_PUCCH_Id_constr_1, ASN_RRC_P0_PUCCH_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.h b/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.h new file mode 100644 index 0000000..d3d7f3c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUCCH-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_P0_PUCCH_Id_H_ +#define _ASN_RRC_P0_PUCCH_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_P0-PUCCH-Id */ +typedef long ASN_RRC_P0_PUCCH_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_P0_PUCCH_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUCCH_Id; +asn_struct_free_f ASN_RRC_P0_PUCCH_Id_free; +asn_struct_print_f ASN_RRC_P0_PUCCH_Id_print; +asn_constr_check_f ASN_RRC_P0_PUCCH_Id_constraint; +ber_type_decoder_f ASN_RRC_P0_PUCCH_Id_decode_ber; +der_type_encoder_f ASN_RRC_P0_PUCCH_Id_encode_der; +xer_type_decoder_f ASN_RRC_P0_PUCCH_Id_decode_xer; +xer_type_encoder_f ASN_RRC_P0_PUCCH_Id_encode_xer; +per_type_decoder_f ASN_RRC_P0_PUCCH_Id_decode_uper; +per_type_encoder_f ASN_RRC_P0_PUCCH_Id_encode_uper; +per_type_decoder_f ASN_RRC_P0_PUCCH_Id_decode_aper; +per_type_encoder_f ASN_RRC_P0_PUCCH_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_P0_PUCCH_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_P0-PUCCH.c b/src/asn/rrc/ASN_RRC_P0-PUCCH.c new file mode 100644 index 0000000..0b90e7d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUCCH.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_P0-PUCCH.h" + +static int +memb_ASN_RRC_p0_PUCCH_Value_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 >= -16 && 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_ASN_RRC_p0_PUCCH_Value_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_P0_PUCCH_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_P0_PUCCH, p0_PUCCH_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUCCH_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUCCH-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_P0_PUCCH, p0_PUCCH_Value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_PUCCH_Value_constr_3, memb_ASN_RRC_p0_PUCCH_Value_constraint_1 }, + 0, 0, /* No default value */ + "p0-PUCCH-Value" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_P0_PUCCH_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_P0_PUCCH_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* p0-PUCCH-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* p0-PUCCH-Value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_P0_PUCCH_specs_1 = { + sizeof(struct ASN_RRC_P0_PUCCH), + offsetof(struct ASN_RRC_P0_PUCCH, _asn_ctx), + asn_MAP_ASN_RRC_P0_PUCCH_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUCCH = { + "P0-PUCCH", + "P0-PUCCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_P0_PUCCH_tags_1, + sizeof(asn_DEF_ASN_RRC_P0_PUCCH_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUCCH_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_P0_PUCCH_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_P0_PUCCH_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUCCH_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_P0_PUCCH_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_P0_PUCCH_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_P0-PUCCH.h b/src/asn/rrc/ASN_RRC_P0-PUCCH.h new file mode 100644 index 0000000..defdd0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUCCH.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_P0_PUCCH_H_ +#define _ASN_RRC_P0_PUCCH_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_P0-PUCCH-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_P0-PUCCH */ +typedef struct ASN_RRC_P0_PUCCH { + ASN_RRC_P0_PUCCH_Id_t p0_PUCCH_Id; + long p0_PUCCH_Value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_P0_PUCCH_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUCCH; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_P0_PUCCH_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_P0_PUCCH_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_P0_PUCCH_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.c b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.c new file mode 100644 index 0000000..f0567f1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.c @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_P0-PUSCH-AlphaSet.h" + +static int +memb_ASN_RRC_p0_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 >= -16 && 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_ASN_RRC_p0_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_P0_PUSCH_AlphaSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_P0_PUSCH_AlphaSet, p0_PUSCH_AlphaSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUSCH-AlphaSetId" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_P0_PUSCH_AlphaSet, p0), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_constr_3, memb_ASN_RRC_p0_constraint_1 }, + 0, 0, /* No default value */ + "p0" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_P0_PUSCH_AlphaSet, alpha), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alpha" + }, +}; +static const int asn_MAP_ASN_RRC_P0_PUSCH_AlphaSet_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_P0_PUSCH_AlphaSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* p0-PUSCH-AlphaSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* p0 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* alpha */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_P0_PUSCH_AlphaSet_specs_1 = { + sizeof(struct ASN_RRC_P0_PUSCH_AlphaSet), + offsetof(struct ASN_RRC_P0_PUSCH_AlphaSet, _asn_ctx), + asn_MAP_ASN_RRC_P0_PUSCH_AlphaSet_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_P0_PUSCH_AlphaSet_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet = { + "P0-PUSCH-AlphaSet", + "P0-PUSCH-AlphaSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1, + sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_P0_PUSCH_AlphaSet_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_P0_PUSCH_AlphaSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.h b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.h new file mode 100644 index 0000000..0d58f80 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSet.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_P0_PUSCH_AlphaSet_H_ +#define _ASN_RRC_P0_PUSCH_AlphaSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_P0-PUSCH-AlphaSetId.h" +#include +#include "ASN_RRC_Alpha.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_P0-PUSCH-AlphaSet */ +typedef struct ASN_RRC_P0_PUSCH_AlphaSet { + ASN_RRC_P0_PUSCH_AlphaSetId_t p0_PUSCH_AlphaSetId; + long *p0; /* OPTIONAL */ + ASN_RRC_Alpha_t *alpha; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_P0_PUSCH_AlphaSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_P0_PUSCH_AlphaSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_P0_PUSCH_AlphaSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_P0_PUSCH_AlphaSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.c b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.c new file mode 100644 index 0000000..d9825b6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_P0-PUSCH-AlphaSetId.h" + +int +ASN_RRC_P0_PUSCH_AlphaSetId_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 <= 29)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_P0_PUSCH_AlphaSetId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId = { + "P0-PUSCH-AlphaSetId", + "P0-PUSCH-AlphaSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_P0_PUSCH_AlphaSetId_constr_1, ASN_RRC_P0_PUSCH_AlphaSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.h b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.h new file mode 100644 index 0000000..23d8cf1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_P0-PUSCH-AlphaSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_P0_PUSCH_AlphaSetId_H_ +#define _ASN_RRC_P0_PUSCH_AlphaSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_P0-PUSCH-AlphaSetId */ +typedef long ASN_RRC_P0_PUSCH_AlphaSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_P0_PUSCH_AlphaSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId; +asn_struct_free_f ASN_RRC_P0_PUSCH_AlphaSetId_free; +asn_struct_print_f ASN_RRC_P0_PUSCH_AlphaSetId_print; +asn_constr_check_f ASN_RRC_P0_PUSCH_AlphaSetId_constraint; +ber_type_decoder_f ASN_RRC_P0_PUSCH_AlphaSetId_decode_ber; +der_type_encoder_f ASN_RRC_P0_PUSCH_AlphaSetId_encode_der; +xer_type_decoder_f ASN_RRC_P0_PUSCH_AlphaSetId_decode_xer; +xer_type_encoder_f ASN_RRC_P0_PUSCH_AlphaSetId_encode_xer; +per_type_decoder_f ASN_RRC_P0_PUSCH_AlphaSetId_decode_uper; +per_type_encoder_f ASN_RRC_P0_PUSCH_AlphaSetId_encode_uper; +per_type_decoder_f ASN_RRC_P0_PUSCH_AlphaSetId_decode_aper; +per_type_encoder_f ASN_RRC_P0_PUSCH_AlphaSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_P0_PUSCH_AlphaSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCCH-Config.c b/src/asn/rrc/ASN_RRC_PCCH-Config.c new file mode 100644 index 0000000..c0bf370 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-Config.c @@ -0,0 +1,1272 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCCH-Config.h" + +static int +memb_ASN_RRC_halfT_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_quarterT_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_oneEighthT_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_oneSixteenthT_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_NativeInteger_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 139)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_20(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2239)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_24(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4479)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_26(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8959)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 17919)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sCS15KHZoneT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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_memb_ASN_RRC_halfT_constr_5 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_ASN_RRC_quarterT_constr_6 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_ASN_RRC_oneEighthT_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_oneSixteenthT_constr_8 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_type_ASN_RRC_nAndPagingFrameOffset_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ns_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 139 } /* (0..139) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS15KHZoneT_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 279 } /* (0..279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 559 } /* (0..559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1119 } /* (0..1119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2239 } /* (0..2239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 4479 } /* (0..4479) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 8959 } /* (0..8959) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 17919 } /* (0..17919) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneSixteenthT_constr_28 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS15KHZoneT_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneSixteenthT_constr_28 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_per_constraints_t asn_PER_type_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_nAndPagingFrameOffset_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, choice.oneT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, choice.halfT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_halfT_constr_5, memb_ASN_RRC_halfT_constraint_3 }, + 0, 0, /* No default value */ + "halfT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, choice.quarterT), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_quarterT_constr_6, memb_ASN_RRC_quarterT_constraint_3 }, + 0, 0, /* No default value */ + "quarterT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, choice.oneEighthT), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_oneEighthT_constr_7, memb_ASN_RRC_oneEighthT_constraint_3 }, + 0, 0, /* No default value */ + "oneEighthT" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, choice.oneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_oneSixteenthT_constr_8, memb_ASN_RRC_oneSixteenthT_constraint_3 }, + 0, 0, /* No default value */ + "oneSixteenthT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nAndPagingFrameOffset_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneT */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* halfT */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* quarterT */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* oneEighthT */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* oneSixteenthT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_nAndPagingFrameOffset_specs_3 = { + sizeof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset), + offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, _asn_ctx), + offsetof(struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset, present), + sizeof(((struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset *)0)->present), + asn_MAP_ASN_RRC_nAndPagingFrameOffset_tag2el_3, + 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_ASN_RRC_nAndPagingFrameOffset_3 = { + "nAndPagingFrameOffset", + "nAndPagingFrameOffset", + &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_ASN_RRC_nAndPagingFrameOffset_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_nAndPagingFrameOffset_3, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_nAndPagingFrameOffset_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ns_value2enum_9[] = { + { 0, 4, "four" }, + { 1, 3, "two" }, + { 2, 3, "one" } +}; +static const unsigned int asn_MAP_ASN_RRC_ns_enum2value_9[] = { + 0, /* four(0) */ + 2, /* one(2) */ + 1 /* two(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ns_specs_9 = { + asn_MAP_ASN_RRC_ns_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ns_enum2value_9, /* 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_ASN_RRC_ns_tags_9[] = { + (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_ASN_RRC_ns_9 = { + "ns", + "ns", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ns_tags_9, + sizeof(asn_DEF_ASN_RRC_ns_tags_9) + /sizeof(asn_DEF_ASN_RRC_ns_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ns_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ns_tags_9) + /sizeof(asn_DEF_ASN_RRC_ns_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ns_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ns_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS15KHZoneT_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_15, memb_NativeInteger_constraint_14 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS15KHZoneT_specs_14 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS15KHZoneT_14 = { + "sCS15KHZoneT", + "sCS15KHZoneT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14, + sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS15KHZoneT_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS15KHZoneT_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS15KHZoneT_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_17, memb_NativeInteger_constraint_16 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16 = { + "sCS30KHZoneT-SCS15KHZhalfT", + "sCS30KHZoneT-SCS15KHZhalfT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16, + sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_19, memb_NativeInteger_constraint_18 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18 = { + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, + sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20 = { + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_23, memb_NativeInteger_constraint_22 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22 = { + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, + sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_25, memb_NativeInteger_constraint_24 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24 = { + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, + sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_27, memb_NativeInteger_constraint_26 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26 = { + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneSixteenthT_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_29, memb_NativeInteger_constraint_28 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneSixteenthT_specs_28 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_28 = { + "sCS120KHZoneSixteenthT", + "sCS120KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneSixteenthT_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneSixteenthT_28, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneSixteenthT_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS15KHZoneT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS15KHZoneT_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS15KHZoneT_constr_14, memb_ASN_RRC_sCS15KHZoneT_constraint_13 }, + 0, 0, /* No default value */ + "sCS15KHZoneT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS30KHZoneT_SCS15KHZhalfT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16, memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constraint_13 }, + 0, 0, /* No default value */ + "sCS30KHZoneT-SCS15KHZhalfT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13 }, + 0, 0, /* No default value */ + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_28, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneSixteenthT_constr_28, memb_ASN_RRC_sCS120KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneSixteenthT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCS15KHZoneT */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sCS30KHZoneT-SCS15KHZhalfT */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sCS120KHZoneEighthT-SCS60KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* sCS120KHZoneSixteenthT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_specs_13 = { + sizeof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, _asn_ctx), + offsetof(struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, present), + sizeof(((struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO *)0)->present), + asn_MAP_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_tag2el_13, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13 = { + "firstPDCCH-MonitoringOccasionOfPO", + "firstPDCCH-MonitoringOccasionOfPO", + &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_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PCCH_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config, defaultPagingCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PagingCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "defaultPagingCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config, nAndPagingFrameOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nAndPagingFrameOffset_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nAndPagingFrameOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Config, ns), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ns_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ns" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PCCH_Config, firstPDCCH_MonitoringOccasionOfPO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstPDCCH-MonitoringOccasionOfPO" + }, +}; +static const int asn_MAP_ASN_RRC_PCCH_Config_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* defaultPagingCycle */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nAndPagingFrameOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ns */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* firstPDCCH-MonitoringOccasionOfPO */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCCH_Config_specs_1 = { + sizeof(struct ASN_RRC_PCCH_Config), + offsetof(struct ASN_RRC_PCCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_PCCH_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PCCH_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCCH_Config = { + "PCCH-Config", + "PCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PCCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PCCH_Config_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCCH-Config.h b/src/asn/rrc/ASN_RRC_PCCH-Config.h new file mode 100644 index 0000000..56ae2e4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-Config.h @@ -0,0 +1,147 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCCH_Config_H_ +#define _ASN_RRC_PCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PagingCycle.h" +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR { + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_NOTHING, /* No components present */ + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_oneT, + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_halfT, + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_quarterT, + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_oneEighthT, + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR_oneSixteenthT +} ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR; +typedef enum ASN_RRC_PCCH_Config__ns { + ASN_RRC_PCCH_Config__ns_four = 0, + ASN_RRC_PCCH_Config__ns_two = 1, + ASN_RRC_PCCH_Config__ns_one = 2 +} e_ASN_RRC_PCCH_Config__ns; +typedef enum ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR { + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING, /* No components present */ + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS15KHZoneT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneSixteenthT +} ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR; + +/* ASN_RRC_PCCH-Config */ +typedef struct ASN_RRC_PCCH_Config { + ASN_RRC_PagingCycle_t defaultPagingCycle; + struct ASN_RRC_PCCH_Config__nAndPagingFrameOffset { + ASN_RRC_PCCH_Config__nAndPagingFrameOffset_PR present; + union ASN_RRC_PCCH_Config__ASN_RRC_nAndPagingFrameOffset_u { + NULL_t oneT; + long halfT; + long quarterT; + long oneEighthT; + long oneSixteenthT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } nAndPagingFrameOffset; + long ns; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO { + ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR present; + union ASN_RRC_PCCH_Config__ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_u { + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS15KHZoneT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS30KHZoneT_SCS15KHZhalfT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneEighthT_SCS60KHZoneSixteenthT; + struct ASN_RRC_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneSixteenthT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *firstPDCCH_MonitoringOccasionOfPO; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ns_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCCH_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCCH-Message.c b/src/asn/rrc/ASN_RRC_PCCH-Message.c new file mode 100644 index 0000000..fbe2a13 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_PCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCCH_Message_specs_1 = { + sizeof(struct ASN_RRC_PCCH_Message), + offsetof(struct ASN_RRC_PCCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_PCCH_Message_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_ASN_RRC_PCCH_Message = { + "PCCH-Message", + "PCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PCCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_PCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCCH-Message.h b/src/asn/rrc/ASN_RRC_PCCH-Message.h new file mode 100644 index 0000000..617be17 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCCH_Message_H_ +#define _ASN_RRC_PCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PCCH-Message */ +typedef struct ASN_RRC_PCCH_Message { + ASN_RRC_PCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCCH-MessageType.c b/src/asn/rrc/ASN_RRC_PCCH-MessageType.c new file mode 100644 index 0000000..cbd76ca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-MessageType.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCCH-MessageType.h" + +#include "ASN_RRC_Paging.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_PCCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_MessageType__c1, choice.paging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Paging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "paging" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCCH_MessageType__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* paging */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_PCCH_MessageType__c1), + offsetof(struct ASN_RRC_PCCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_PCCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_PCCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_5 = { + sizeof(struct ASN_RRC_PCCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_PCCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_5 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PCCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PCCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_PCCH_MessageType), + offsetof(struct ASN_RRC_PCCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_PCCH_MessageType, present), + sizeof(((struct ASN_RRC_PCCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_PCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCCH_MessageType = { + "PCCH-MessageType", + "PCCH-MessageType", + &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_ASN_RRC_PCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_PCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCCH-MessageType.h b/src/asn/rrc/ASN_RRC_PCCH-MessageType.h new file mode 100644 index 0000000..d94f1c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCCH-MessageType.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCCH_MessageType_H_ +#define _ASN_RRC_PCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PCCH_MessageType_PR { + ASN_RRC_PCCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_PCCH_MessageType_PR_c1, + ASN_RRC_PCCH_MessageType_PR_messageClassExtension +} ASN_RRC_PCCH_MessageType_PR; +typedef enum ASN_RRC_PCCH_MessageType__c1_PR { + ASN_RRC_PCCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_PCCH_MessageType__c1_PR_paging, + ASN_RRC_PCCH_MessageType__c1_PR_spare1 +} ASN_RRC_PCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_Paging; + +/* ASN_RRC_PCCH-MessageType */ +typedef struct ASN_RRC_PCCH_MessageType { + ASN_RRC_PCCH_MessageType_PR present; + union ASN_RRC_PCCH_MessageType_u { + struct ASN_RRC_PCCH_MessageType__c1 { + ASN_RRC_PCCH_MessageType__c1_PR present; + union ASN_RRC_PCCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_Paging *paging; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_PCCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCI-List.c b/src/asn/rrc/ASN_RRC_PCI-List.c new file mode 100644 index 0000000..a25110f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-List.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCI-List.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_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_ASN_RRC_PCI_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCI_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PCI_List_specs_1 = { + sizeof(struct ASN_RRC_PCI_List), + offsetof(struct ASN_RRC_PCI_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_List = { + "PCI-List", + "PCI-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PCI_List_tags_1, + sizeof(asn_DEF_ASN_RRC_PCI_List_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCI_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCI_List_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PCI_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PCI_List_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PCI_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCI-List.h b/src/asn/rrc/ASN_RRC_PCI-List.h new file mode 100644 index 0000000..05544c0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-List.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCI_List_H_ +#define _ASN_RRC_PCI_List_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PCI-List */ +typedef struct ASN_RRC_PCI_List { + A_SEQUENCE_OF(ASN_RRC_PhysCellId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCI_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PCI_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCI_List_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCI-Range.c b/src/asn/rrc/ASN_RRC_PCI-Range.c new file mode 100644 index 0000000..76c7ea5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-Range.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCI-Range.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_range_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_range_value2enum_3[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n24" }, + { 5, 3, "n32" }, + { 6, 3, "n48" }, + { 7, 3, "n64" }, + { 8, 3, "n84" }, + { 9, 3, "n96" }, + { 10, 4, "n128" }, + { 11, 4, "n168" }, + { 12, 4, "n252" }, + { 13, 4, "n504" }, + { 14, 5, "n1008" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_range_enum2value_3[] = { + 14, /* n1008(14) */ + 2, /* n12(2) */ + 10, /* n128(10) */ + 3, /* n16(3) */ + 11, /* n168(11) */ + 4, /* n24(4) */ + 12, /* n252(12) */ + 5, /* n32(5) */ + 0, /* n4(0) */ + 6, /* n48(6) */ + 13, /* n504(13) */ + 7, /* n64(7) */ + 1, /* n8(1) */ + 8, /* n84(8) */ + 9, /* n96(9) */ + 15 /* spare1(15) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_range_specs_3 = { + asn_MAP_ASN_RRC_range_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_range_enum2value_3, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_range_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_ASN_RRC_range_3 = { + "range", + "range", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_range_tags_3, + sizeof(asn_DEF_ASN_RRC_range_tags_3) + /sizeof(asn_DEF_ASN_RRC_range_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_range_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_range_tags_3) + /sizeof(asn_DEF_ASN_RRC_range_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_range_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_range_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_Range_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCI_Range, start), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "start" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PCI_Range, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_range_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, +}; +static const int asn_MAP_ASN_RRC_PCI_Range_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCI_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PCI_Range_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* start */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* range */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCI_Range_specs_1 = { + sizeof(struct ASN_RRC_PCI_Range), + offsetof(struct ASN_RRC_PCI_Range, _asn_ctx), + asn_MAP_ASN_RRC_PCI_Range_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PCI_Range_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_Range = { + "PCI-Range", + "PCI-Range", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PCI_Range_tags_1, + sizeof(asn_DEF_ASN_RRC_PCI_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_Range_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCI_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCI_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_Range_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PCI_Range_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PCI_Range_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCI-Range.h b/src/asn/rrc/ASN_RRC_PCI-Range.h new file mode 100644 index 0000000..6025a13 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-Range.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCI_Range_H_ +#define _ASN_RRC_PCI_Range_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PCI_Range__range { + ASN_RRC_PCI_Range__range_n4 = 0, + ASN_RRC_PCI_Range__range_n8 = 1, + ASN_RRC_PCI_Range__range_n12 = 2, + ASN_RRC_PCI_Range__range_n16 = 3, + ASN_RRC_PCI_Range__range_n24 = 4, + ASN_RRC_PCI_Range__range_n32 = 5, + ASN_RRC_PCI_Range__range_n48 = 6, + ASN_RRC_PCI_Range__range_n64 = 7, + ASN_RRC_PCI_Range__range_n84 = 8, + ASN_RRC_PCI_Range__range_n96 = 9, + ASN_RRC_PCI_Range__range_n128 = 10, + ASN_RRC_PCI_Range__range_n168 = 11, + ASN_RRC_PCI_Range__range_n252 = 12, + ASN_RRC_PCI_Range__range_n504 = 13, + ASN_RRC_PCI_Range__range_n1008 = 14, + ASN_RRC_PCI_Range__range_spare1 = 15 +} e_ASN_RRC_PCI_Range__range; + +/* ASN_RRC_PCI-Range */ +typedef struct ASN_RRC_PCI_Range { + ASN_RRC_PhysCellId_t start; + long *range; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCI_Range_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_range_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_Range; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCI_Range_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_Range_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCI_Range_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeElement.c b/src/asn/rrc/ASN_RRC_PCI-RangeElement.c new file mode 100644 index 0000000..c1fe783 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeElement.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCI-RangeElement.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_RangeElement_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCI_RangeElement, pci_RangeIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCI_RangeIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pci-RangeIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PCI_RangeElement, pci_Range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pci-Range" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCI_RangeElement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PCI_RangeElement_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pci-RangeIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pci-Range */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCI_RangeElement_specs_1 = { + sizeof(struct ASN_RRC_PCI_RangeElement), + offsetof(struct ASN_RRC_PCI_RangeElement, _asn_ctx), + asn_MAP_ASN_RRC_PCI_RangeElement_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeElement = { + "PCI-RangeElement", + "PCI-RangeElement", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PCI_RangeElement_tags_1, + sizeof(asn_DEF_ASN_RRC_PCI_RangeElement_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeElement_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCI_RangeElement_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCI_RangeElement_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeElement_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PCI_RangeElement_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PCI_RangeElement_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeElement.h b/src/asn/rrc/ASN_RRC_PCI-RangeElement.h new file mode 100644 index 0000000..53ae5e5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeElement.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCI_RangeElement_H_ +#define _ASN_RRC_PCI_RangeElement_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PCI-RangeIndex.h" +#include "ASN_RRC_PCI-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PCI-RangeElement */ +typedef struct ASN_RRC_PCI_RangeElement { + ASN_RRC_PCI_RangeIndex_t pci_RangeIndex; + ASN_RRC_PCI_Range_t pci_Range; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCI_RangeElement_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeElement; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PCI_RangeElement_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_RangeElement_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCI_RangeElement_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeIndex.c b/src/asn/rrc/ASN_RRC_PCI-RangeIndex.c new file mode 100644 index 0000000..cfbea34 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCI-RangeIndex.h" + +int +ASN_RRC_PCI_RangeIndex_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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_RangeIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_PCI_RangeIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeIndex = { + "PCI-RangeIndex", + "PCI-RangeIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PCI_RangeIndex_constr_1, ASN_RRC_PCI_RangeIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeIndex.h b/src/asn/rrc/ASN_RRC_PCI-RangeIndex.h new file mode 100644 index 0000000..0843828 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCI_RangeIndex_H_ +#define _ASN_RRC_PCI_RangeIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PCI-RangeIndex */ +typedef long ASN_RRC_PCI_RangeIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_RangeIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeIndex; +asn_struct_free_f ASN_RRC_PCI_RangeIndex_free; +asn_struct_print_f ASN_RRC_PCI_RangeIndex_print; +asn_constr_check_f ASN_RRC_PCI_RangeIndex_constraint; +ber_type_decoder_f ASN_RRC_PCI_RangeIndex_decode_ber; +der_type_encoder_f ASN_RRC_PCI_RangeIndex_encode_der; +xer_type_decoder_f ASN_RRC_PCI_RangeIndex_decode_xer; +xer_type_encoder_f ASN_RRC_PCI_RangeIndex_encode_xer; +per_type_decoder_f ASN_RRC_PCI_RangeIndex_decode_uper; +per_type_encoder_f ASN_RRC_PCI_RangeIndex_encode_uper; +per_type_decoder_f ASN_RRC_PCI_RangeIndex_decode_aper; +per_type_encoder_f ASN_RRC_PCI_RangeIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCI_RangeIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.c b/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.c new file mode 100644 index 0000000..1cfb783 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PCI-RangeIndexList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_RangeIndexList_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_ASN_RRC_PCI_RangeIndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PCI_RangeIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PCI_RangeIndexList_specs_1 = { + sizeof(struct ASN_RRC_PCI_RangeIndexList), + offsetof(struct ASN_RRC_PCI_RangeIndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeIndexList = { + "PCI-RangeIndexList", + "PCI-RangeIndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1, + sizeof(asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PCI_RangeIndexList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PCI_RangeIndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PCI_RangeIndexList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PCI_RangeIndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.h b/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.h new file mode 100644 index 0000000..3ceb5b6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PCI-RangeIndexList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PCI_RangeIndexList_H_ +#define _ASN_RRC_PCI_RangeIndexList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PCI-RangeIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PCI-RangeIndexList */ +typedef struct ASN_RRC_PCI_RangeIndexList { + A_SEQUENCE_OF(ASN_RRC_PCI_RangeIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PCI_RangeIndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PCI_RangeIndexList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PCI_RangeIndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PCI_RangeIndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PCI_RangeIndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PCI_RangeIndexList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.c b/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.c new file mode 100644 index 0000000..ebc20e2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCCH-BlindDetection.h" + +int +ASN_RRC_PDCCH_BlindDetection_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 <= 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_ASN_RRC_PDCCH_BlindDetection_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_BlindDetection = { + "PDCCH-BlindDetection", + "PDCCH-BlindDetection", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_BlindDetection_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PDCCH_BlindDetection_constr_1, ASN_RRC_PDCCH_BlindDetection_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.h b/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.h new file mode 100644 index 0000000..d93a289 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-BlindDetection.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCCH_BlindDetection_H_ +#define _ASN_RRC_PDCCH_BlindDetection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PDCCH-BlindDetection */ +typedef long ASN_RRC_PDCCH_BlindDetection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PDCCH_BlindDetection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_BlindDetection; +asn_struct_free_f ASN_RRC_PDCCH_BlindDetection_free; +asn_struct_print_f ASN_RRC_PDCCH_BlindDetection_print; +asn_constr_check_f ASN_RRC_PDCCH_BlindDetection_constraint; +ber_type_decoder_f ASN_RRC_PDCCH_BlindDetection_decode_ber; +der_type_encoder_f ASN_RRC_PDCCH_BlindDetection_encode_der; +xer_type_decoder_f ASN_RRC_PDCCH_BlindDetection_decode_xer; +xer_type_encoder_f ASN_RRC_PDCCH_BlindDetection_encode_xer; +per_type_decoder_f ASN_RRC_PDCCH_BlindDetection_decode_uper; +per_type_encoder_f ASN_RRC_PDCCH_BlindDetection_encode_uper; +per_type_decoder_f ASN_RRC_PDCCH_BlindDetection_decode_aper; +per_type_encoder_f ASN_RRC_PDCCH_BlindDetection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCCH_BlindDetection_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCCH-Config.c b/src/asn/rrc/ASN_RRC_PDCCH-Config.c new file mode 100644 index 0000000..a6c5a89 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-Config.c @@ -0,0 +1,417 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCCH-Config.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_ControlResourceSet.h" +#include "ASN_RRC_SearchSpace.h" +static int +memb_ASN_RRC_controlResourceSetToAddModList_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 <= 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 int +memb_ASN_RRC_controlResourceSetToReleaseList_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 <= 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 int +memb_ASN_RRC_searchSpacesToAddModList_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 <= 10)) { + /* 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 int +memb_ASN_RRC_searchSpacesToReleaseList_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 <= 10)) { + /* 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_ASN_RRC_controlResourceSetToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_controlResourceSetToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_searchSpacesToAddModList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_searchSpacesToReleaseList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_controlResourceSetToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_controlResourceSetToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (SIZE(1..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_searchSpacesToAddModList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_searchSpacesToReleaseList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_controlResourceSetToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ControlResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_controlResourceSetToAddModList_specs_2 = { + sizeof(struct ASN_RRC_PDCCH_Config__controlResourceSetToAddModList), + offsetof(struct ASN_RRC_PDCCH_Config__controlResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_controlResourceSetToAddModList_2 = { + "controlResourceSetToAddModList", + "controlResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_controlResourceSetToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_controlResourceSetToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_controlResourceSetToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_controlResourceSetToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_controlResourceSetToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_controlResourceSetToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_PDCCH_Config__controlResourceSetToReleaseList), + offsetof(struct ASN_RRC_PDCCH_Config__controlResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_controlResourceSetToReleaseList_4 = { + "controlResourceSetToReleaseList", + "controlResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_controlResourceSetToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_controlResourceSetToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_controlResourceSetToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_controlResourceSetToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_searchSpacesToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SearchSpace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_searchSpacesToAddModList_specs_6 = { + sizeof(struct ASN_RRC_PDCCH_Config__searchSpacesToAddModList), + offsetof(struct ASN_RRC_PDCCH_Config__searchSpacesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_searchSpacesToAddModList_6 = { + "searchSpacesToAddModList", + "searchSpacesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6, + sizeof(asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_searchSpacesToAddModList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_searchSpacesToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_searchSpacesToAddModList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_searchSpacesToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_searchSpacesToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_searchSpacesToReleaseList_specs_8 = { + sizeof(struct ASN_RRC_PDCCH_Config__searchSpacesToReleaseList), + offsetof(struct ASN_RRC_PDCCH_Config__searchSpacesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_searchSpacesToReleaseList_8 = { + "searchSpacesToReleaseList", + "searchSpacesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8, + sizeof(asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_searchSpacesToReleaseList_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_searchSpacesToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_searchSpacesToReleaseList_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_searchSpacesToReleaseList_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_Config_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PDCCH_Config, controlResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_controlResourceSetToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_controlResourceSetToAddModList_constr_2, memb_ASN_RRC_controlResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "controlResourceSetToAddModList" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PDCCH_Config, controlResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_controlResourceSetToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_controlResourceSetToReleaseList_constr_4, memb_ASN_RRC_controlResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "controlResourceSetToReleaseList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDCCH_Config, searchSpacesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_searchSpacesToAddModList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_searchSpacesToAddModList_constr_6, memb_ASN_RRC_searchSpacesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "searchSpacesToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDCCH_Config, searchSpacesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_searchSpacesToReleaseList_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_searchSpacesToReleaseList_constr_8, memb_ASN_RRC_searchSpacesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "searchSpacesToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDCCH_Config, downlinkPreemption), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DownlinkPreemption, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkPreemption" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCCH_Config, tpc_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCCH_Config, tpc_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCCH_Config, tpc_SRS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS" + }, +}; +static const int asn_MAP_ASN_RRC_PDCCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlResourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* controlResourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* searchSpacesToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* searchSpacesToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* downlinkPreemption */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tpc-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* tpc-PUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* tpc-SRS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_Config_specs_1 = { + sizeof(struct ASN_RRC_PDCCH_Config), + offsetof(struct ASN_RRC_PDCCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_PDCCH_Config_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCCH_Config_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_Config = { + "PDCCH-Config", + "PDCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCCH_Config_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_PDCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCCH-Config.h b/src/asn/rrc/ASN_RRC_PDCCH-Config.h new file mode 100644 index 0000000..8483fff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-Config.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCCH_Config_H_ +#define _ASN_RRC_PDCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_ControlResourceSetId.h" +#include "ASN_RRC_SearchSpaceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_DownlinkPreemption; +struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig; +struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig; +struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig; +struct ASN_RRC_ControlResourceSet; +struct ASN_RRC_SearchSpace; + +/* ASN_RRC_PDCCH-Config */ +typedef struct ASN_RRC_PDCCH_Config { + struct ASN_RRC_PDCCH_Config__controlResourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_ControlResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *controlResourceSetToAddModList; + struct ASN_RRC_PDCCH_Config__controlResourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_ControlResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *controlResourceSetToReleaseList; + struct ASN_RRC_PDCCH_Config__searchSpacesToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SearchSpace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchSpacesToAddModList; + struct ASN_RRC_PDCCH_Config__searchSpacesToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SearchSpaceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchSpacesToReleaseList; + struct ASN_RRC_SetupRelease_DownlinkPreemption *downlinkPreemption; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig *tpc_PUSCH; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig *tpc_PUCCH; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig *tpc_SRS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_Config_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.c b/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.c new file mode 100644 index 0000000..296c99c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.c @@ -0,0 +1,1190 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCCH-ConfigCommon.h" + +#include "ASN_RRC_ControlResourceSet.h" +#include "ASN_RRC_SearchSpace.h" +static int +memb_NativeInteger_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 139)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_18(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_20(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1119)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_22(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2239)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_24(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 4479)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_26(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 8959)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 17919)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sCS15KHZoneT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_sCS120KHZoneSixteenthT_constraint_13(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 <= 4)) { + /* 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 int +memb_ASN_RRC_commonSearchSpaceList_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 <= 4)) { + /* 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_ASN_RRC_commonSearchSpaceList_constr_5 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 139 } /* (0..139) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS15KHZoneT_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 279 } /* (0..279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 559 } /* (0..559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1119 } /* (0..1119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2239 } /* (0..2239) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 4479 } /* (0..4479) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 8959 } /* (0..8959) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 15, 15, 0, 17919 } /* (0..17919) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCS120KHZoneSixteenthT_constr_28 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS15KHZoneT_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 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_per_constraints_t asn_PER_memb_ASN_RRC_sCS120KHZoneSixteenthT_constr_28 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_per_constraints_t asn_PER_type_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_commonSearchSpaceList_constr_5 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_ASN_RRC_commonSearchSpaceList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SearchSpace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_commonSearchSpaceList_specs_5 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__commonSearchSpaceList), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__commonSearchSpaceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_commonSearchSpaceList_5 = { + "commonSearchSpaceList", + "commonSearchSpaceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5, + sizeof(asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5) + /sizeof(asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5) + /sizeof(asn_DEF_ASN_RRC_commonSearchSpaceList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_commonSearchSpaceList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_commonSearchSpaceList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_commonSearchSpaceList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS15KHZoneT_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_15, memb_NativeInteger_constraint_14 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS15KHZoneT_specs_14 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS15KHZoneT_14 = { + "sCS15KHZoneT", + "sCS15KHZoneT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14, + sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_ASN_RRC_sCS15KHZoneT_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS15KHZoneT_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS15KHZoneT_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS15KHZoneT_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_17, memb_NativeInteger_constraint_16 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16 = { + "sCS30KHZoneT-SCS15KHZhalfT", + "sCS30KHZoneT-SCS15KHZhalfT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16, + sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_19, memb_NativeInteger_constraint_18 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18 = { + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, + sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20 = { + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_23, memb_NativeInteger_constraint_22 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22 = { + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, + sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_25, memb_NativeInteger_constraint_24 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24 = { + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, + sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_27, memb_NativeInteger_constraint_26 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26 = { + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sCS120KHZoneSixteenthT_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_29, memb_NativeInteger_constraint_28 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sCS120KHZoneSixteenthT_specs_28 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_28 = { + "sCS120KHZoneSixteenthT", + "sCS120KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28, + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCS120KHZoneSixteenthT_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sCS120KHZoneSixteenthT_28, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sCS120KHZoneSixteenthT_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS15KHZoneT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS15KHZoneT_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS15KHZoneT_constr_14, memb_ASN_RRC_sCS15KHZoneT_constraint_13 }, + 0, 0, /* No default value */ + "sCS15KHZoneT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS30KHZoneT_SCS15KHZhalfT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constr_16, memb_ASN_RRC_sCS30KHZoneT_SCS15KHZhalfT_constraint_13 }, + 0, 0, /* No default value */ + "sCS30KHZoneT-SCS15KHZhalfT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, memb_ASN_RRC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13 }, + 0, 0, /* No default value */ + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, memb_ASN_RRC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, memb_ASN_RRC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, memb_ASN_RRC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, memb_ASN_RRC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_sCS120KHZoneSixteenthT_28, + 0, + { 0, &asn_PER_memb_ASN_RRC_sCS120KHZoneSixteenthT_constr_28, memb_ASN_RRC_sCS120KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneSixteenthT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCS15KHZoneT */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sCS30KHZoneT-SCS15KHZhalfT */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sCS120KHZoneEighthT-SCS60KHZoneSixteenthT */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* sCS120KHZoneSixteenthT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_specs_13 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, _asn_ctx), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, present), + sizeof(((struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO *)0)->present), + asn_MAP_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_tag2el_13, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13 = { + "firstPDCCH-MonitoringOccasionOfPO", + "firstPDCCH-MonitoringOccasionOfPO", + &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_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_12[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1, firstPDCCH_MonitoringOccasionOfPO), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstPDCCH-MonitoringOccasionOfPO" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_12[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* firstPDCCH-MonitoringOccasionOfPO */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_12 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon__ext1), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_12, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_12, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_12 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_12, + sizeof(asn_DEF_ASN_RRC_ext1_tags_12) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_12) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_12, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ConfigCommon_1[] = { + { ATF_POINTER, 9, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, controlResourceSetZero), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSetZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetZero" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, commonControlResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "commonControlResourceSet" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, searchSpaceZero), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceZero" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, commonSearchSpaceList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_commonSearchSpaceList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_commonSearchSpaceList_constr_5, memb_ASN_RRC_commonSearchSpaceList_constraint_1 }, + 0, 0, /* No default value */ + "commonSearchSpaceList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, searchSpaceSIB1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSIB1" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, searchSpaceOtherSystemInformation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceOtherSystemInformation" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, pagingSearchSpace), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingSearchSpace" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, ra_SearchSpace), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-SearchSpace" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCCH_ConfigCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_PDCCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCCH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlResourceSetZero */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* commonControlResourceSet */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* searchSpaceZero */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* commonSearchSpaceList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* searchSpaceSIB1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* searchSpaceOtherSystemInformation */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pagingSearchSpace */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ra-SearchSpace */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_PDCCH_ConfigCommon), + offsetof(struct ASN_RRC_PDCCH_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_PDCCH_ConfigCommon_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCCH_ConfigCommon_oms_1, /* Optional members */ + 8, 1, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ConfigCommon = { + "PDCCH-ConfigCommon", + "PDCCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCCH_ConfigCommon_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_PDCCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.h b/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.h new file mode 100644 index 0000000..8e8dbfa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ConfigCommon.h @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCCH_ConfigCommon_H_ +#define _ASN_RRC_PDCCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ControlResourceSetZero.h" +#include "ASN_RRC_SearchSpaceZero.h" +#include "ASN_RRC_SearchSpaceId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR { + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING, /* No components present */ + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS15KHZoneT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneSixteenthT +} ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR; + +/* Forward declarations */ +struct ASN_RRC_ControlResourceSet; +struct ASN_RRC_SearchSpace; + +/* ASN_RRC_PDCCH-ConfigCommon */ +typedef struct ASN_RRC_PDCCH_ConfigCommon { + ASN_RRC_ControlResourceSetZero_t *controlResourceSetZero; /* OPTIONAL */ + struct ASN_RRC_ControlResourceSet *commonControlResourceSet; /* OPTIONAL */ + ASN_RRC_SearchSpaceZero_t *searchSpaceZero; /* OPTIONAL */ + struct ASN_RRC_PDCCH_ConfigCommon__commonSearchSpaceList { + A_SEQUENCE_OF(struct ASN_RRC_SearchSpace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *commonSearchSpaceList; + ASN_RRC_SearchSpaceId_t *searchSpaceSIB1; /* OPTIONAL */ + ASN_RRC_SearchSpaceId_t *searchSpaceOtherSystemInformation; /* OPTIONAL */ + ASN_RRC_SearchSpaceId_t *pagingSearchSpace; /* OPTIONAL */ + ASN_RRC_SearchSpaceId_t *ra_SearchSpace; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_PDCCH_ConfigCommon__ext1 { + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO { + ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR present; + union ASN_RRC_PDCCH_ConfigCommon__ASN_RRC_ext1__ASN_RRC_firstPDCCH_MonitoringOccasionOfPO_u { + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS15KHZoneT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS30KHZoneT_SCS15KHZhalfT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneEighthT_SCS60KHZoneSixteenthT; + struct ASN_RRC_PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS120KHZoneSixteenthT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *firstPDCCH_MonitoringOccasionOfPO; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCCH_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ConfigCommon_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCCH_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.c b/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.c new file mode 100644 index 0000000..ab5d1ee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCCH-ConfigSIB1.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ConfigSIB1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCCH_ConfigSIB1, controlResourceSetZero), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSetZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetZero" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCCH_ConfigSIB1, searchSpaceZero), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceZero" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCCH_ConfigSIB1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* controlResourceSetZero */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* searchSpaceZero */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ConfigSIB1_specs_1 = { + sizeof(struct ASN_RRC_PDCCH_ConfigSIB1), + offsetof(struct ASN_RRC_PDCCH_ConfigSIB1, _asn_ctx), + asn_MAP_ASN_RRC_PDCCH_ConfigSIB1_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ConfigSIB1 = { + "PDCCH-ConfigSIB1", + "PDCCH-ConfigSIB1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCCH_ConfigSIB1_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PDCCH_ConfigSIB1_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.h b/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.h new file mode 100644 index 0000000..95640b1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ConfigSIB1.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCCH_ConfigSIB1_H_ +#define _ASN_RRC_PDCCH_ConfigSIB1_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ControlResourceSetZero.h" +#include "ASN_RRC_SearchSpaceZero.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PDCCH-ConfigSIB1 */ +typedef struct ASN_RRC_PDCCH_ConfigSIB1 { + ASN_RRC_ControlResourceSetZero_t controlResourceSetZero; + ASN_RRC_SearchSpaceZero_t searchSpaceZero; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCCH_ConfigSIB1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ConfigSIB1; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ConfigSIB1_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ConfigSIB1_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCCH_ConfigSIB1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.c b/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.c new file mode 100644 index 0000000..156320e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCCH-ServingCellConfig.h" + +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ServingCellConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCCH_ServingCellConfig, slotFormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SlotFormatIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotFormatIndicator" + }, +}; +static const int asn_MAP_ASN_RRC_PDCCH_ServingCellConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCCH_ServingCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slotFormatIndicator */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ServingCellConfig_specs_1 = { + sizeof(struct ASN_RRC_PDCCH_ServingCellConfig), + offsetof(struct ASN_RRC_PDCCH_ServingCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_PDCCH_ServingCellConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCCH_ServingCellConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ServingCellConfig = { + "PDCCH-ServingCellConfig", + "PDCCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCCH_ServingCellConfig_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PDCCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.h b/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.h new file mode 100644 index 0000000..8fbec11 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCCH-ServingCellConfig.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCCH_ServingCellConfig_H_ +#define _ASN_RRC_PDCCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_SlotFormatIndicator; + +/* ASN_RRC_PDCCH-ServingCellConfig */ +typedef struct ASN_RRC_PDCCH_ServingCellConfig { + struct ASN_RRC_SetupRelease_SlotFormatIndicator *slotFormatIndicator; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCCH_ServingCellConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCCH_ServingCellConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCCH_ServingCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCP-Config.c b/src/asn/rrc/ASN_RRC_PDCP-Config.c new file mode 100644 index 0000000..3558159 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-Config.c @@ -0,0 +1,1418 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCP-Config.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_ASN_RRC_maxCID_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxCID_constraint_42(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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 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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_discardTimer_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_type_ASN_RRC_pdcp_SN_SizeUL_constr_20 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_type_ASN_RRC_pdcp_SN_SizeDL_constr_23 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_type_ASN_RRC_drb_ContinueROHC_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_maxCID_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16383 } /* (1..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_drb_ContinueROHC_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_maxCID_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 1, 16383 } /* (1..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_headerCompression_constr_26 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_ASN_RRC_integrityProtection_constr_49 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_statusReportRequired_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_outOfOrderDelivery_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_t_Reordering_constr_61 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_cipheringDisabled_constr_128 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_discardTimer_value2enum_3[] = { + { 0, 4, "ms10" }, + { 1, 4, "ms20" }, + { 2, 4, "ms30" }, + { 3, 4, "ms40" }, + { 4, 4, "ms50" }, + { 5, 4, "ms60" }, + { 6, 4, "ms75" }, + { 7, 5, "ms100" }, + { 8, 5, "ms150" }, + { 9, 5, "ms200" }, + { 10, 5, "ms250" }, + { 11, 5, "ms300" }, + { 12, 5, "ms500" }, + { 13, 5, "ms750" }, + { 14, 6, "ms1500" }, + { 15, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_discardTimer_enum2value_3[] = { + 15, /* infinity(15) */ + 0, /* ms10(0) */ + 7, /* ms100(7) */ + 8, /* ms150(8) */ + 14, /* ms1500(14) */ + 1, /* ms20(1) */ + 9, /* ms200(9) */ + 10, /* ms250(10) */ + 2, /* ms30(2) */ + 11, /* ms300(11) */ + 3, /* ms40(3) */ + 4, /* ms50(4) */ + 12, /* ms500(12) */ + 5, /* ms60(5) */ + 6, /* ms75(6) */ + 13 /* ms750(13) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_discardTimer_specs_3 = { + asn_MAP_ASN_RRC_discardTimer_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_discardTimer_enum2value_3, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_discardTimer_tags_3[] = { + (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_ASN_RRC_discardTimer_3 = { + "discardTimer", + "discardTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_discardTimer_tags_3, + sizeof(asn_DEF_ASN_RRC_discardTimer_tags_3) + /sizeof(asn_DEF_ASN_RRC_discardTimer_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_discardTimer_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_discardTimer_tags_3) + /sizeof(asn_DEF_ASN_RRC_discardTimer_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_discardTimer_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_discardTimer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcp_SN_SizeUL_value2enum_20[] = { + { 0, 9, "len12bits" }, + { 1, 9, "len18bits" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_SN_SizeUL_enum2value_20[] = { + 0, /* len12bits(0) */ + 1 /* len18bits(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_SN_SizeUL_specs_20 = { + asn_MAP_ASN_RRC_pdcp_SN_SizeUL_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_SN_SizeUL_enum2value_20, /* 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_ASN_RRC_pdcp_SN_SizeUL_tags_20[] = { + (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_ASN_RRC_pdcp_SN_SizeUL_20 = { + "pdcp-SN-SizeUL", + "pdcp-SN-SizeUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20, + sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20) + /sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20) + /sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeUL_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_SN_SizeUL_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_SN_SizeUL_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcp_SN_SizeDL_value2enum_23[] = { + { 0, 9, "len12bits" }, + { 1, 9, "len18bits" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_SN_SizeDL_enum2value_23[] = { + 0, /* len12bits(0) */ + 1 /* len18bits(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_SN_SizeDL_specs_23 = { + asn_MAP_ASN_RRC_pdcp_SN_SizeDL_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_SN_SizeDL_enum2value_23, /* 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_ASN_RRC_pdcp_SN_SizeDL_tags_23[] = { + (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_ASN_RRC_pdcp_SN_SizeDL_23 = { + "pdcp-SN-SizeDL", + "pdcp-SN-SizeDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23, + sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23) + /sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23) + /sizeof(asn_DEF_ASN_RRC_pdcp_SN_SizeDL_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_SN_SizeDL_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_SN_SizeDL_specs_23 /* Additional specs */ +}; + +static int asn_DFL_29_cmp_15(const void *sptr) { + const long *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_29_set_15(void **sptr) { + long *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static asn_TYPE_member_t asn_MBR_ASN_RRC_profiles_30[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0001), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0001" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0002), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0002" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0003), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0003" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0004), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0004" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0006), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0006" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0101), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0101" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0102), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0102" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0103), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0103" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, profile0x0104), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0104" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_profiles_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_profiles_tag2el_30[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* profile0x0001 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* profile0x0002 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* profile0x0003 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* profile0x0004 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* profile0x0006 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* profile0x0101 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* profile0x0102 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* profile0x0103 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* profile0x0104 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_profiles_specs_30 = { + sizeof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles, _asn_ctx), + asn_MAP_ASN_RRC_profiles_tag2el_30, + 9, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_profiles_30 = { + "profiles", + "profiles", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_profiles_tags_30, + sizeof(asn_DEF_ASN_RRC_profiles_tags_30) + /sizeof(asn_DEF_ASN_RRC_profiles_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_profiles_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_profiles_tags_30) + /sizeof(asn_DEF_ASN_RRC_profiles_tags_30[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_profiles_30, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_profiles_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drb_ContinueROHC_value2enum_40[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_drb_ContinueROHC_enum2value_40[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drb_ContinueROHC_specs_40 = { + asn_MAP_ASN_RRC_drb_ContinueROHC_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drb_ContinueROHC_enum2value_40, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40[] = { + (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_ASN_RRC_drb_ContinueROHC_40 = { + "drb-ContinueROHC", + "drb-ContinueROHC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40, + sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40) + /sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40) + /sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_40[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drb_ContinueROHC_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drb_ContinueROHC_specs_40 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rohc_28[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc, maxCID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxCID_constr_29, memb_ASN_RRC_maxCID_constraint_28 }, + &asn_DFL_29_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_29_set_15, /* Set DEFAULT 15 */ + "maxCID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc, profiles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_profiles_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profiles" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc, drb_ContinueROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drb_ContinueROHC_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ContinueROHC" + }, +}; +static const int asn_MAP_ASN_RRC_rohc_oms_28[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rohc_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rohc_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxCID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* profiles */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drb-ContinueROHC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_rohc_specs_28 = { + sizeof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc, _asn_ctx), + asn_MAP_ASN_RRC_rohc_tag2el_28, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_rohc_oms_28, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rohc_28 = { + "rohc", + "rohc", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_rohc_tags_28, + sizeof(asn_DEF_ASN_RRC_rohc_tags_28) + /sizeof(asn_DEF_ASN_RRC_rohc_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rohc_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rohc_tags_28) + /sizeof(asn_DEF_ASN_RRC_rohc_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_rohc_28, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_rohc_specs_28 /* Additional specs */ +}; + +static int asn_DFL_43_cmp_15(const void *sptr) { + const long *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_43_set_15(void **sptr) { + long *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static asn_TYPE_member_t asn_MBR_ASN_RRC_profiles_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles, profile0x0006), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0006" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_profiles_tags_44[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_profiles_tag2el_44[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* profile0x0006 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_profiles_specs_44 = { + sizeof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles, _asn_ctx), + asn_MAP_ASN_RRC_profiles_tag2el_44, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_profiles_44 = { + "profiles", + "profiles", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_profiles_tags_44, + sizeof(asn_DEF_ASN_RRC_profiles_tags_44) + /sizeof(asn_DEF_ASN_RRC_profiles_tags_44[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_profiles_tags_44, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_profiles_tags_44) + /sizeof(asn_DEF_ASN_RRC_profiles_tags_44[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_profiles_44, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_profiles_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_drb_ContinueROHC_value2enum_46[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_drb_ContinueROHC_enum2value_46[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_drb_ContinueROHC_specs_46 = { + asn_MAP_ASN_RRC_drb_ContinueROHC_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_drb_ContinueROHC_enum2value_46, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46[] = { + (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_ASN_RRC_drb_ContinueROHC_46 = { + "drb-ContinueROHC", + "drb-ContinueROHC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46, + sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46) + /sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46) + /sizeof(asn_DEF_ASN_RRC_drb_ContinueROHC_tags_46[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_drb_ContinueROHC_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_drb_ContinueROHC_specs_46 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uplinkOnlyROHC_42[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC, maxCID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxCID_constr_43, memb_ASN_RRC_maxCID_constraint_42 }, + &asn_DFL_43_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_43_set_15, /* Set DEFAULT 15 */ + "maxCID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC, profiles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_profiles_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profiles" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC, drb_ContinueROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_drb_ContinueROHC_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ContinueROHC" + }, +}; +static const int asn_MAP_ASN_RRC_uplinkOnlyROHC_oms_42[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_uplinkOnlyROHC_tag2el_42[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxCID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* profiles */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* drb-ContinueROHC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_uplinkOnlyROHC_specs_42 = { + sizeof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC, _asn_ctx), + asn_MAP_ASN_RRC_uplinkOnlyROHC_tag2el_42, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_uplinkOnlyROHC_oms_42, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkOnlyROHC_42 = { + "uplinkOnlyROHC", + "uplinkOnlyROHC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42, + sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42) + /sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42) + /sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_tags_42[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_uplinkOnlyROHC_42, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_uplinkOnlyROHC_specs_42 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_headerCompression_26[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression, choice.notUsed), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "notUsed" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression, choice.rohc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rohc_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rohc" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression, choice.uplinkOnlyROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkOnlyROHC_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkOnlyROHC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_headerCompression_tag2el_26[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* notUsed */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rohc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* uplinkOnlyROHC */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_headerCompression_specs_26 = { + sizeof(struct ASN_RRC_PDCP_Config__drb__headerCompression), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression, _asn_ctx), + offsetof(struct ASN_RRC_PDCP_Config__drb__headerCompression, present), + sizeof(((struct ASN_RRC_PDCP_Config__drb__headerCompression *)0)->present), + asn_MAP_ASN_RRC_headerCompression_tag2el_26, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_headerCompression_26 = { + "headerCompression", + "headerCompression", + &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_ASN_RRC_headerCompression_constr_26, CHOICE_constraint }, + asn_MBR_ASN_RRC_headerCompression_26, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_headerCompression_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_integrityProtection_value2enum_49[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_integrityProtection_enum2value_49[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_integrityProtection_specs_49 = { + asn_MAP_ASN_RRC_integrityProtection_value2enum_49, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_integrityProtection_enum2value_49, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_integrityProtection_tags_49[] = { + (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_ASN_RRC_integrityProtection_49 = { + "integrityProtection", + "integrityProtection", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_integrityProtection_tags_49, + sizeof(asn_DEF_ASN_RRC_integrityProtection_tags_49) + /sizeof(asn_DEF_ASN_RRC_integrityProtection_tags_49[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_integrityProtection_tags_49, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_integrityProtection_tags_49) + /sizeof(asn_DEF_ASN_RRC_integrityProtection_tags_49[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_integrityProtection_constr_49, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_integrityProtection_specs_49 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_statusReportRequired_value2enum_51[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_statusReportRequired_enum2value_51[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_statusReportRequired_specs_51 = { + asn_MAP_ASN_RRC_statusReportRequired_value2enum_51, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_statusReportRequired_enum2value_51, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_statusReportRequired_tags_51[] = { + (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_ASN_RRC_statusReportRequired_51 = { + "statusReportRequired", + "statusReportRequired", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_statusReportRequired_tags_51, + sizeof(asn_DEF_ASN_RRC_statusReportRequired_tags_51) + /sizeof(asn_DEF_ASN_RRC_statusReportRequired_tags_51[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_statusReportRequired_tags_51, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_statusReportRequired_tags_51) + /sizeof(asn_DEF_ASN_RRC_statusReportRequired_tags_51[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_statusReportRequired_constr_51, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_statusReportRequired_specs_51 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_outOfOrderDelivery_value2enum_53[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_outOfOrderDelivery_enum2value_53[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_outOfOrderDelivery_specs_53 = { + asn_MAP_ASN_RRC_outOfOrderDelivery_value2enum_53, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_outOfOrderDelivery_enum2value_53, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_outOfOrderDelivery_53 = { + "outOfOrderDelivery", + "outOfOrderDelivery", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53, + sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53) + /sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53) + /sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_53[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_outOfOrderDelivery_constr_53, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_outOfOrderDelivery_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_drb_2[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCP_Config__drb, discardTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_discardTimer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "discardTimer" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Config__drb, pdcp_SN_SizeUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_SN_SizeUL_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-SN-SizeUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb, pdcp_SN_SizeDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_SN_SizeDL_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-SN-SizeDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__drb, headerCompression), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_headerCompression_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headerCompression" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCP_Config__drb, integrityProtection), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_integrityProtection_49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtection" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Config__drb, statusReportRequired), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_statusReportRequired_51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "statusReportRequired" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__drb, outOfOrderDelivery), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_outOfOrderDelivery_53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outOfOrderDelivery" + }, +}; +static const int asn_MAP_ASN_RRC_drb_oms_2[] = { 0, 1, 2, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_drb_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_drb_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* discardTimer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdcp-SN-SizeUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pdcp-SN-SizeDL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* headerCompression */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* integrityProtection */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* statusReportRequired */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* outOfOrderDelivery */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_drb_specs_2 = { + sizeof(struct ASN_RRC_PDCP_Config__drb), + offsetof(struct ASN_RRC_PDCP_Config__drb, _asn_ctx), + asn_MAP_ASN_RRC_drb_tag2el_2, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_drb_oms_2, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drb_2 = { + "drb", + "drb", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_drb_tags_2, + sizeof(asn_DEF_ASN_RRC_drb_tags_2) + /sizeof(asn_DEF_ASN_RRC_drb_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_drb_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_drb_tags_2) + /sizeof(asn_DEF_ASN_RRC_drb_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_drb_2, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_drb_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_primaryPath_56[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath, cellGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroup" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath, logicalChannel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannel" + }, +}; +static const int asn_MAP_ASN_RRC_primaryPath_oms_56[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_primaryPath_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_primaryPath_tag2el_56[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellGroup */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* logicalChannel */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_primaryPath_specs_56 = { + sizeof(struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath), + offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath, _asn_ctx), + asn_MAP_ASN_RRC_primaryPath_tag2el_56, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_primaryPath_oms_56, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_primaryPath_56 = { + "primaryPath", + "primaryPath", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_primaryPath_tags_56, + sizeof(asn_DEF_ASN_RRC_primaryPath_tags_56) + /sizeof(asn_DEF_ASN_RRC_primaryPath_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_primaryPath_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_primaryPath_tags_56) + /sizeof(asn_DEF_ASN_RRC_primaryPath_tags_56[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_primaryPath_56, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_primaryPath_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_moreThanOneRLC_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC, primaryPath), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_primaryPath_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "primaryPath" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC, ul_DataSplitThreshold), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_DataSplitThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-DataSplitThreshold" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC, pdcp_Duplication), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Duplication" + }, +}; +static const int asn_MAP_ASN_RRC_moreThanOneRLC_oms_55[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_moreThanOneRLC_tags_55[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_moreThanOneRLC_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* primaryPath */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-DataSplitThreshold */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pdcp-Duplication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_moreThanOneRLC_specs_55 = { + sizeof(struct ASN_RRC_PDCP_Config__moreThanOneRLC), + offsetof(struct ASN_RRC_PDCP_Config__moreThanOneRLC, _asn_ctx), + asn_MAP_ASN_RRC_moreThanOneRLC_tag2el_55, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_moreThanOneRLC_oms_55, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_moreThanOneRLC_55 = { + "moreThanOneRLC", + "moreThanOneRLC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_moreThanOneRLC_tags_55, + sizeof(asn_DEF_ASN_RRC_moreThanOneRLC_tags_55) + /sizeof(asn_DEF_ASN_RRC_moreThanOneRLC_tags_55[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_moreThanOneRLC_tags_55, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_moreThanOneRLC_tags_55) + /sizeof(asn_DEF_ASN_RRC_moreThanOneRLC_tags_55[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_moreThanOneRLC_55, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_moreThanOneRLC_specs_55 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t_Reordering_value2enum_61[] = { + { 0, 3, "ms0" }, + { 1, 3, "ms1" }, + { 2, 3, "ms2" }, + { 3, 3, "ms4" }, + { 4, 3, "ms5" }, + { 5, 3, "ms8" }, + { 6, 4, "ms10" }, + { 7, 4, "ms15" }, + { 8, 4, "ms20" }, + { 9, 4, "ms30" }, + { 10, 4, "ms40" }, + { 11, 4, "ms50" }, + { 12, 4, "ms60" }, + { 13, 4, "ms80" }, + { 14, 5, "ms100" }, + { 15, 5, "ms120" }, + { 16, 5, "ms140" }, + { 17, 5, "ms160" }, + { 18, 5, "ms180" }, + { 19, 5, "ms200" }, + { 20, 5, "ms220" }, + { 21, 5, "ms240" }, + { 22, 5, "ms260" }, + { 23, 5, "ms280" }, + { 24, 5, "ms300" }, + { 25, 5, "ms500" }, + { 26, 5, "ms750" }, + { 27, 6, "ms1000" }, + { 28, 6, "ms1250" }, + { 29, 6, "ms1500" }, + { 30, 6, "ms1750" }, + { 31, 6, "ms2000" }, + { 32, 6, "ms2250" }, + { 33, 6, "ms2500" }, + { 34, 6, "ms2750" }, + { 35, 6, "ms3000" }, + { 36, 7, "spare28" }, + { 37, 7, "spare27" }, + { 38, 7, "spare26" }, + { 39, 7, "spare25" }, + { 40, 7, "spare24" }, + { 41, 7, "spare23" }, + { 42, 7, "spare22" }, + { 43, 7, "spare21" }, + { 44, 7, "spare20" }, + { 45, 7, "spare19" }, + { 46, 7, "spare18" }, + { 47, 7, "spare17" }, + { 48, 7, "spare16" }, + { 49, 7, "spare15" }, + { 50, 7, "spare14" }, + { 51, 7, "spare13" }, + { 52, 7, "spare12" }, + { 53, 7, "spare11" }, + { 54, 7, "spare10" }, + { 55, 7, "spare09" }, + { 56, 7, "spare08" }, + { 57, 7, "spare07" }, + { 58, 7, "spare06" }, + { 59, 7, "spare05" }, + { 60, 7, "spare04" }, + { 61, 7, "spare03" }, + { 62, 7, "spare02" }, + { 63, 7, "spare01" } +}; +static const unsigned int asn_MAP_ASN_RRC_t_Reordering_enum2value_61[] = { + 0, /* ms0(0) */ + 1, /* ms1(1) */ + 6, /* ms10(6) */ + 14, /* ms100(14) */ + 27, /* ms1000(27) */ + 15, /* ms120(15) */ + 28, /* ms1250(28) */ + 16, /* ms140(16) */ + 7, /* ms15(7) */ + 29, /* ms1500(29) */ + 17, /* ms160(17) */ + 30, /* ms1750(30) */ + 18, /* ms180(18) */ + 2, /* ms2(2) */ + 8, /* ms20(8) */ + 19, /* ms200(19) */ + 31, /* ms2000(31) */ + 20, /* ms220(20) */ + 32, /* ms2250(32) */ + 21, /* ms240(21) */ + 33, /* ms2500(33) */ + 22, /* ms260(22) */ + 34, /* ms2750(34) */ + 23, /* ms280(23) */ + 9, /* ms30(9) */ + 24, /* ms300(24) */ + 35, /* ms3000(35) */ + 3, /* ms4(3) */ + 10, /* ms40(10) */ + 4, /* ms5(4) */ + 11, /* ms50(11) */ + 25, /* ms500(25) */ + 12, /* ms60(12) */ + 26, /* ms750(26) */ + 5, /* ms8(5) */ + 13, /* ms80(13) */ + 63, /* spare01(63) */ + 62, /* spare02(62) */ + 61, /* spare03(61) */ + 60, /* spare04(60) */ + 59, /* spare05(59) */ + 58, /* spare06(58) */ + 57, /* spare07(57) */ + 56, /* spare08(56) */ + 55, /* spare09(55) */ + 54, /* spare10(54) */ + 53, /* spare11(53) */ + 52, /* spare12(52) */ + 51, /* spare13(51) */ + 50, /* spare14(50) */ + 49, /* spare15(49) */ + 48, /* spare16(48) */ + 47, /* spare17(47) */ + 46, /* spare18(46) */ + 45, /* spare19(45) */ + 44, /* spare20(44) */ + 43, /* spare21(43) */ + 42, /* spare22(42) */ + 41, /* spare23(41) */ + 40, /* spare24(40) */ + 39, /* spare25(39) */ + 38, /* spare26(38) */ + 37, /* spare27(37) */ + 36 /* spare28(36) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t_Reordering_specs_61 = { + asn_MAP_ASN_RRC_t_Reordering_value2enum_61, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t_Reordering_enum2value_61, /* N => "tag"; sorted by N */ + 64, /* 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_ASN_RRC_t_Reordering_tags_61[] = { + (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_ASN_RRC_t_Reordering_61 = { + "t-Reordering", + "t-Reordering", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t_Reordering_tags_61, + sizeof(asn_DEF_ASN_RRC_t_Reordering_tags_61) + /sizeof(asn_DEF_ASN_RRC_t_Reordering_tags_61[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t_Reordering_tags_61, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t_Reordering_tags_61) + /sizeof(asn_DEF_ASN_RRC_t_Reordering_tags_61[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t_Reordering_constr_61, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t_Reordering_specs_61 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cipheringDisabled_value2enum_128[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_cipheringDisabled_enum2value_128[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cipheringDisabled_specs_128 = { + asn_MAP_ASN_RRC_cipheringDisabled_value2enum_128, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cipheringDisabled_enum2value_128, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cipheringDisabled_tags_128[] = { + (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_ASN_RRC_cipheringDisabled_128 = { + "cipheringDisabled", + "cipheringDisabled", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cipheringDisabled_tags_128, + sizeof(asn_DEF_ASN_RRC_cipheringDisabled_tags_128) + /sizeof(asn_DEF_ASN_RRC_cipheringDisabled_tags_128[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cipheringDisabled_tags_128, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cipheringDisabled_tags_128) + /sizeof(asn_DEF_ASN_RRC_cipheringDisabled_tags_128[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cipheringDisabled_constr_128, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cipheringDisabled_specs_128 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_127[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config__ext1, cipheringDisabled), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cipheringDisabled_128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cipheringDisabled" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_127[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_127[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_127[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cipheringDisabled */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_127 = { + sizeof(struct ASN_RRC_PDCP_Config__ext1), + offsetof(struct ASN_RRC_PDCP_Config__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_127, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_127, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_127 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_127, + sizeof(asn_DEF_ASN_RRC_ext1_tags_127) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_127[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_127, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_127) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_127[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_127, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_Config_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDCP_Config, drb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_drb_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCP_Config, moreThanOneRLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_moreThanOneRLC_55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moreThanOneRLC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Config, t_Reordering), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t_Reordering_61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reordering" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Config, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_127, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_PDCP_Config_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCP_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCP_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* drb */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* moreThanOneRLC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* t-Reordering */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_Config_specs_1 = { + sizeof(struct ASN_RRC_PDCP_Config), + offsetof(struct ASN_RRC_PDCP_Config, _asn_ctx), + asn_MAP_ASN_RRC_PDCP_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCP_Config_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_Config = { + "PDCP-Config", + "PDCP-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCP_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCP_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCP_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCP_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCP_Config_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PDCP_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCP-Config.h b/src/asn/rrc/ASN_RRC_PDCP-Config.h new file mode 100644 index 0000000..6a17972 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-Config.h @@ -0,0 +1,259 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCP_Config_H_ +#define _ASN_RRC_PDCP_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include "ASN_RRC_UL-DataSplitThreshold.h" +#include "ASN_RRC_CellGroupId.h" +#include "ASN_RRC_LogicalChannelIdentity.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDCP_Config__drb__discardTimer { + ASN_RRC_PDCP_Config__drb__discardTimer_ms10 = 0, + ASN_RRC_PDCP_Config__drb__discardTimer_ms20 = 1, + ASN_RRC_PDCP_Config__drb__discardTimer_ms30 = 2, + ASN_RRC_PDCP_Config__drb__discardTimer_ms40 = 3, + ASN_RRC_PDCP_Config__drb__discardTimer_ms50 = 4, + ASN_RRC_PDCP_Config__drb__discardTimer_ms60 = 5, + ASN_RRC_PDCP_Config__drb__discardTimer_ms75 = 6, + ASN_RRC_PDCP_Config__drb__discardTimer_ms100 = 7, + ASN_RRC_PDCP_Config__drb__discardTimer_ms150 = 8, + ASN_RRC_PDCP_Config__drb__discardTimer_ms200 = 9, + ASN_RRC_PDCP_Config__drb__discardTimer_ms250 = 10, + ASN_RRC_PDCP_Config__drb__discardTimer_ms300 = 11, + ASN_RRC_PDCP_Config__drb__discardTimer_ms500 = 12, + ASN_RRC_PDCP_Config__drb__discardTimer_ms750 = 13, + ASN_RRC_PDCP_Config__drb__discardTimer_ms1500 = 14, + ASN_RRC_PDCP_Config__drb__discardTimer_infinity = 15 +} e_ASN_RRC_PDCP_Config__drb__discardTimer; +typedef enum ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL { + ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL_len12bits = 0, + ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL_len18bits = 1 +} e_ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL; +typedef enum ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL { + ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL_len12bits = 0, + ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL_len18bits = 1 +} e_ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL; +typedef enum ASN_RRC_PDCP_Config__drb__headerCompression_PR { + ASN_RRC_PDCP_Config__drb__headerCompression_PR_NOTHING, /* No components present */ + ASN_RRC_PDCP_Config__drb__headerCompression_PR_notUsed, + ASN_RRC_PDCP_Config__drb__headerCompression_PR_rohc, + ASN_RRC_PDCP_Config__drb__headerCompression_PR_uplinkOnlyROHC + /* Extensions may appear below */ + +} ASN_RRC_PDCP_Config__drb__headerCompression_PR; +typedef enum ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC { + ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC_true = 0 +} e_ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC; +typedef enum ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC { + ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC_true = 0 +} e_ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC; +typedef enum ASN_RRC_PDCP_Config__drb__integrityProtection { + ASN_RRC_PDCP_Config__drb__integrityProtection_enabled = 0 +} e_ASN_RRC_PDCP_Config__drb__integrityProtection; +typedef enum ASN_RRC_PDCP_Config__drb__statusReportRequired { + ASN_RRC_PDCP_Config__drb__statusReportRequired_true = 0 +} e_ASN_RRC_PDCP_Config__drb__statusReportRequired; +typedef enum ASN_RRC_PDCP_Config__drb__outOfOrderDelivery { + ASN_RRC_PDCP_Config__drb__outOfOrderDelivery_true = 0 +} e_ASN_RRC_PDCP_Config__drb__outOfOrderDelivery; +typedef enum ASN_RRC_PDCP_Config__t_Reordering { + ASN_RRC_PDCP_Config__t_Reordering_ms0 = 0, + ASN_RRC_PDCP_Config__t_Reordering_ms1 = 1, + ASN_RRC_PDCP_Config__t_Reordering_ms2 = 2, + ASN_RRC_PDCP_Config__t_Reordering_ms4 = 3, + ASN_RRC_PDCP_Config__t_Reordering_ms5 = 4, + ASN_RRC_PDCP_Config__t_Reordering_ms8 = 5, + ASN_RRC_PDCP_Config__t_Reordering_ms10 = 6, + ASN_RRC_PDCP_Config__t_Reordering_ms15 = 7, + ASN_RRC_PDCP_Config__t_Reordering_ms20 = 8, + ASN_RRC_PDCP_Config__t_Reordering_ms30 = 9, + ASN_RRC_PDCP_Config__t_Reordering_ms40 = 10, + ASN_RRC_PDCP_Config__t_Reordering_ms50 = 11, + ASN_RRC_PDCP_Config__t_Reordering_ms60 = 12, + ASN_RRC_PDCP_Config__t_Reordering_ms80 = 13, + ASN_RRC_PDCP_Config__t_Reordering_ms100 = 14, + ASN_RRC_PDCP_Config__t_Reordering_ms120 = 15, + ASN_RRC_PDCP_Config__t_Reordering_ms140 = 16, + ASN_RRC_PDCP_Config__t_Reordering_ms160 = 17, + ASN_RRC_PDCP_Config__t_Reordering_ms180 = 18, + ASN_RRC_PDCP_Config__t_Reordering_ms200 = 19, + ASN_RRC_PDCP_Config__t_Reordering_ms220 = 20, + ASN_RRC_PDCP_Config__t_Reordering_ms240 = 21, + ASN_RRC_PDCP_Config__t_Reordering_ms260 = 22, + ASN_RRC_PDCP_Config__t_Reordering_ms280 = 23, + ASN_RRC_PDCP_Config__t_Reordering_ms300 = 24, + ASN_RRC_PDCP_Config__t_Reordering_ms500 = 25, + ASN_RRC_PDCP_Config__t_Reordering_ms750 = 26, + ASN_RRC_PDCP_Config__t_Reordering_ms1000 = 27, + ASN_RRC_PDCP_Config__t_Reordering_ms1250 = 28, + ASN_RRC_PDCP_Config__t_Reordering_ms1500 = 29, + ASN_RRC_PDCP_Config__t_Reordering_ms1750 = 30, + ASN_RRC_PDCP_Config__t_Reordering_ms2000 = 31, + ASN_RRC_PDCP_Config__t_Reordering_ms2250 = 32, + ASN_RRC_PDCP_Config__t_Reordering_ms2500 = 33, + ASN_RRC_PDCP_Config__t_Reordering_ms2750 = 34, + ASN_RRC_PDCP_Config__t_Reordering_ms3000 = 35, + ASN_RRC_PDCP_Config__t_Reordering_spare28 = 36, + ASN_RRC_PDCP_Config__t_Reordering_spare27 = 37, + ASN_RRC_PDCP_Config__t_Reordering_spare26 = 38, + ASN_RRC_PDCP_Config__t_Reordering_spare25 = 39, + ASN_RRC_PDCP_Config__t_Reordering_spare24 = 40, + ASN_RRC_PDCP_Config__t_Reordering_spare23 = 41, + ASN_RRC_PDCP_Config__t_Reordering_spare22 = 42, + ASN_RRC_PDCP_Config__t_Reordering_spare21 = 43, + ASN_RRC_PDCP_Config__t_Reordering_spare20 = 44, + ASN_RRC_PDCP_Config__t_Reordering_spare19 = 45, + ASN_RRC_PDCP_Config__t_Reordering_spare18 = 46, + ASN_RRC_PDCP_Config__t_Reordering_spare17 = 47, + ASN_RRC_PDCP_Config__t_Reordering_spare16 = 48, + ASN_RRC_PDCP_Config__t_Reordering_spare15 = 49, + ASN_RRC_PDCP_Config__t_Reordering_spare14 = 50, + ASN_RRC_PDCP_Config__t_Reordering_spare13 = 51, + ASN_RRC_PDCP_Config__t_Reordering_spare12 = 52, + ASN_RRC_PDCP_Config__t_Reordering_spare11 = 53, + ASN_RRC_PDCP_Config__t_Reordering_spare10 = 54, + ASN_RRC_PDCP_Config__t_Reordering_spare09 = 55, + ASN_RRC_PDCP_Config__t_Reordering_spare08 = 56, + ASN_RRC_PDCP_Config__t_Reordering_spare07 = 57, + ASN_RRC_PDCP_Config__t_Reordering_spare06 = 58, + ASN_RRC_PDCP_Config__t_Reordering_spare05 = 59, + ASN_RRC_PDCP_Config__t_Reordering_spare04 = 60, + ASN_RRC_PDCP_Config__t_Reordering_spare03 = 61, + ASN_RRC_PDCP_Config__t_Reordering_spare02 = 62, + ASN_RRC_PDCP_Config__t_Reordering_spare01 = 63 +} e_ASN_RRC_PDCP_Config__t_Reordering; +typedef enum ASN_RRC_PDCP_Config__ext1__cipheringDisabled { + ASN_RRC_PDCP_Config__ext1__cipheringDisabled_true = 0 +} e_ASN_RRC_PDCP_Config__ext1__cipheringDisabled; + +/* ASN_RRC_PDCP-Config */ +typedef struct ASN_RRC_PDCP_Config { + struct ASN_RRC_PDCP_Config__drb { + long *discardTimer; /* OPTIONAL */ + long *pdcp_SN_SizeUL; /* OPTIONAL */ + long *pdcp_SN_SizeDL; /* OPTIONAL */ + struct ASN_RRC_PDCP_Config__drb__headerCompression { + ASN_RRC_PDCP_Config__drb__headerCompression_PR present; + union ASN_RRC_PDCP_Config__ASN_RRC_drb__ASN_RRC_headerCompression_u { + NULL_t notUsed; + struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc { + long *maxCID; /* DEFAULT 15 */ + struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles { + BOOLEAN_t profile0x0001; + BOOLEAN_t profile0x0002; + BOOLEAN_t profile0x0003; + BOOLEAN_t profile0x0004; + BOOLEAN_t profile0x0006; + BOOLEAN_t profile0x0101; + BOOLEAN_t profile0x0102; + BOOLEAN_t profile0x0103; + BOOLEAN_t profile0x0104; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } profiles; + long *drb_ContinueROHC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rohc; + struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC { + long *maxCID; /* DEFAULT 15 */ + struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles { + BOOLEAN_t profile0x0006; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } profiles; + long *drb_ContinueROHC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkOnlyROHC; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } headerCompression; + long *integrityProtection; /* OPTIONAL */ + long *statusReportRequired; /* OPTIONAL */ + long *outOfOrderDelivery; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *drb; + struct ASN_RRC_PDCP_Config__moreThanOneRLC { + struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath { + ASN_RRC_CellGroupId_t *cellGroup; /* OPTIONAL */ + ASN_RRC_LogicalChannelIdentity_t *logicalChannel; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } primaryPath; + ASN_RRC_UL_DataSplitThreshold_t *ul_DataSplitThreshold; /* OPTIONAL */ + BOOLEAN_t *pdcp_Duplication; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *moreThanOneRLC; + long *t_Reordering; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_PDCP_Config__ext1 { + long *cipheringDisabled; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCP_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_discardTimer_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_SN_SizeUL_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_SN_SizeDL_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drb_ContinueROHC_40; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drb_ContinueROHC_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_integrityProtection_49; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_statusReportRequired_51; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_outOfOrderDelivery_53; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t_Reordering_61; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cipheringDisabled_128; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCP_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCP-Parameters.c b/src/asn/rrc/ASN_RRC_PDCP-Parameters.c new file mode 100644 index 0000000..40f61eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-Parameters.c @@ -0,0 +1,593 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCP-Parameters.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. + */ +/* + * 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_ASN_RRC_maxNumberROHC_ContextSessions_constr_13 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_type_ASN_RRC_uplinkOnlyROHC_Profiles_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_continueROHC_Context_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_outOfOrderDelivery_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_shortSN_constr_36 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcp_DuplicationSRB_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_supportedROHC_Profiles_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0000), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0000" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0001), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0001" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0002), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0002" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0003), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0003" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0004), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0004" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0006), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0006" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0101), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0101" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0102), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0102" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0103), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0103" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, profile0x0104), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profile0x0104" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_supportedROHC_Profiles_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* profile0x0000 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* profile0x0001 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* profile0x0002 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* profile0x0003 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* profile0x0004 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* profile0x0006 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* profile0x0101 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* profile0x0102 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* profile0x0103 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* profile0x0104 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_supportedROHC_Profiles_specs_2 = { + sizeof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles), + offsetof(struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles, _asn_ctx), + asn_MAP_ASN_RRC_supportedROHC_Profiles_tag2el_2, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedROHC_Profiles_2 = { + "supportedROHC-Profiles", + "supportedROHC-Profiles", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2, + sizeof(asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedROHC_Profiles_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_supportedROHC_Profiles_2, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_supportedROHC_Profiles_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberROHC_ContextSessions_value2enum_13[] = { + { 0, 3, "cs2" }, + { 1, 3, "cs4" }, + { 2, 3, "cs8" }, + { 3, 4, "cs12" }, + { 4, 4, "cs16" }, + { 5, 4, "cs24" }, + { 6, 4, "cs32" }, + { 7, 4, "cs48" }, + { 8, 4, "cs64" }, + { 9, 5, "cs128" }, + { 10, 5, "cs256" }, + { 11, 5, "cs512" }, + { 12, 6, "cs1024" }, + { 13, 7, "cs16384" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberROHC_ContextSessions_enum2value_13[] = { + 12, /* cs1024(12) */ + 3, /* cs12(3) */ + 9, /* cs128(9) */ + 4, /* cs16(4) */ + 13, /* cs16384(13) */ + 0, /* cs2(0) */ + 5, /* cs24(5) */ + 10, /* cs256(10) */ + 6, /* cs32(6) */ + 1, /* cs4(1) */ + 7, /* cs48(7) */ + 11, /* cs512(11) */ + 8, /* cs64(8) */ + 2, /* cs8(2) */ + 15, /* spare1(15) */ + 14 /* spare2(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberROHC_ContextSessions_specs_13 = { + asn_MAP_ASN_RRC_maxNumberROHC_ContextSessions_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberROHC_ContextSessions_enum2value_13, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_maxNumberROHC_ContextSessions_tags_13[] = { + (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_ASN_RRC_maxNumberROHC_ContextSessions_13 = { + "maxNumberROHC-ContextSessions", + "maxNumberROHC-ContextSessions", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13, + sizeof(asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13) + /sizeof(asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13) + /sizeof(asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberROHC_ContextSessions_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberROHC_ContextSessions_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_uplinkOnlyROHC_Profiles_value2enum_30[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_uplinkOnlyROHC_Profiles_enum2value_30[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_uplinkOnlyROHC_Profiles_specs_30 = { + asn_MAP_ASN_RRC_uplinkOnlyROHC_Profiles_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_uplinkOnlyROHC_Profiles_enum2value_30, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30[] = { + (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_ASN_RRC_uplinkOnlyROHC_Profiles_30 = { + "uplinkOnlyROHC-Profiles", + "uplinkOnlyROHC-Profiles", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30, + sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30) + /sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30) + /sizeof(asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_tags_30[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkOnlyROHC_Profiles_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_uplinkOnlyROHC_Profiles_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_continueROHC_Context_value2enum_32[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_continueROHC_Context_enum2value_32[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_continueROHC_Context_specs_32 = { + asn_MAP_ASN_RRC_continueROHC_Context_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_continueROHC_Context_enum2value_32, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_continueROHC_Context_tags_32[] = { + (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_ASN_RRC_continueROHC_Context_32 = { + "continueROHC-Context", + "continueROHC-Context", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_continueROHC_Context_tags_32, + sizeof(asn_DEF_ASN_RRC_continueROHC_Context_tags_32) + /sizeof(asn_DEF_ASN_RRC_continueROHC_Context_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_continueROHC_Context_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_continueROHC_Context_tags_32) + /sizeof(asn_DEF_ASN_RRC_continueROHC_Context_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_continueROHC_Context_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_continueROHC_Context_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_outOfOrderDelivery_value2enum_34[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_outOfOrderDelivery_enum2value_34[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_outOfOrderDelivery_specs_34 = { + asn_MAP_ASN_RRC_outOfOrderDelivery_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_outOfOrderDelivery_enum2value_34, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34[] = { + (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_ASN_RRC_outOfOrderDelivery_34 = { + "outOfOrderDelivery", + "outOfOrderDelivery", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34, + sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34) + /sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34) + /sizeof(asn_DEF_ASN_RRC_outOfOrderDelivery_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_outOfOrderDelivery_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_outOfOrderDelivery_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_shortSN_value2enum_36[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_shortSN_enum2value_36[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_shortSN_specs_36 = { + asn_MAP_ASN_RRC_shortSN_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_shortSN_enum2value_36, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_shortSN_tags_36[] = { + (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_ASN_RRC_shortSN_36 = { + "shortSN", + "shortSN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_shortSN_tags_36, + sizeof(asn_DEF_ASN_RRC_shortSN_tags_36) + /sizeof(asn_DEF_ASN_RRC_shortSN_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_shortSN_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_shortSN_tags_36) + /sizeof(asn_DEF_ASN_RRC_shortSN_tags_36[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_shortSN_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_shortSN_specs_36 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcp_DuplicationSRB_value2enum_38[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_DuplicationSRB_enum2value_38[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_DuplicationSRB_specs_38 = { + asn_MAP_ASN_RRC_pdcp_DuplicationSRB_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_DuplicationSRB_enum2value_38, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationSRB_38 = { + "pdcp-DuplicationSRB", + "pdcp-DuplicationSRB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38, + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSRB_tags_38[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_DuplicationSRB_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_DuplicationSRB_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_value2enum_40[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_enum2value_40[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_specs_40 = { + asn_MAP_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_enum2value_40, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_40 = { + "pdcp-DuplicationMCG-OrSCG-DRB", + "pdcp-DuplicationMCG-OrSCG-DRB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40, + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_tags_40[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters, supportedROHC_Profiles), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedROHC_Profiles_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedROHC-Profiles" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDCP_Parameters, maxNumberROHC_ContextSessions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberROHC-ContextSessions" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDCP_Parameters, uplinkOnlyROHC_Profiles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkOnlyROHC-Profiles" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDCP_Parameters, continueROHC_Context), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_continueROHC_Context_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "continueROHC-Context" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDCP_Parameters, outOfOrderDelivery), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_outOfOrderDelivery_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outOfOrderDelivery" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDCP_Parameters, shortSN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_shortSN_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortSN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_Parameters, pdcp_DuplicationSRB), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_DuplicationSRB_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSRB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_Parameters, pdcp_DuplicationMCG_OrSCG_DRB), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationMCG-OrSCG-DRB" + }, +}; +static const int asn_MAP_ASN_RRC_PDCP_Parameters_oms_1[] = { 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCP_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCP_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedROHC-Profiles */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberROHC-ContextSessions */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uplinkOnlyROHC-Profiles */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* continueROHC-Context */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* outOfOrderDelivery */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* shortSN */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pdcp-DuplicationSRB */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* pdcp-DuplicationMCG-OrSCG-DRB */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_Parameters_specs_1 = { + sizeof(struct ASN_RRC_PDCP_Parameters), + offsetof(struct ASN_RRC_PDCP_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_PDCP_Parameters_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCP_Parameters_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_Parameters = { + "PDCP-Parameters", + "PDCP-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCP_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCP_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCP_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCP_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCP_Parameters_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_PDCP_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCP-Parameters.h b/src/asn/rrc/ASN_RRC_PDCP-Parameters.h new file mode 100644 index 0000000..6238826 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-Parameters.h @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCP_Parameters_H_ +#define _ASN_RRC_PDCP_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions { + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs2 = 0, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs4 = 1, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs8 = 2, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs12 = 3, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs16 = 4, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs24 = 5, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs32 = 6, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs48 = 7, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs64 = 8, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs128 = 9, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs256 = 10, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs512 = 11, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs1024 = 12, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_cs16384 = 13, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_spare2 = 14, + ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions_spare1 = 15 +} e_ASN_RRC_PDCP_Parameters__maxNumberROHC_ContextSessions; +typedef enum ASN_RRC_PDCP_Parameters__uplinkOnlyROHC_Profiles { + ASN_RRC_PDCP_Parameters__uplinkOnlyROHC_Profiles_supported = 0 +} e_ASN_RRC_PDCP_Parameters__uplinkOnlyROHC_Profiles; +typedef enum ASN_RRC_PDCP_Parameters__continueROHC_Context { + ASN_RRC_PDCP_Parameters__continueROHC_Context_supported = 0 +} e_ASN_RRC_PDCP_Parameters__continueROHC_Context; +typedef enum ASN_RRC_PDCP_Parameters__outOfOrderDelivery { + ASN_RRC_PDCP_Parameters__outOfOrderDelivery_supported = 0 +} e_ASN_RRC_PDCP_Parameters__outOfOrderDelivery; +typedef enum ASN_RRC_PDCP_Parameters__shortSN { + ASN_RRC_PDCP_Parameters__shortSN_supported = 0 +} e_ASN_RRC_PDCP_Parameters__shortSN; +typedef enum ASN_RRC_PDCP_Parameters__pdcp_DuplicationSRB { + ASN_RRC_PDCP_Parameters__pdcp_DuplicationSRB_supported = 0 +} e_ASN_RRC_PDCP_Parameters__pdcp_DuplicationSRB; +typedef enum ASN_RRC_PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB { + ASN_RRC_PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB_supported = 0 +} e_ASN_RRC_PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB; + +/* ASN_RRC_PDCP-Parameters */ +typedef struct ASN_RRC_PDCP_Parameters { + struct ASN_RRC_PDCP_Parameters__supportedROHC_Profiles { + BOOLEAN_t profile0x0000; + BOOLEAN_t profile0x0001; + BOOLEAN_t profile0x0002; + BOOLEAN_t profile0x0003; + BOOLEAN_t profile0x0004; + BOOLEAN_t profile0x0006; + BOOLEAN_t profile0x0101; + BOOLEAN_t profile0x0102; + BOOLEAN_t profile0x0103; + BOOLEAN_t profile0x0104; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedROHC_Profiles; + long maxNumberROHC_ContextSessions; + long *uplinkOnlyROHC_Profiles; /* OPTIONAL */ + long *continueROHC_Context; /* OPTIONAL */ + long *outOfOrderDelivery; /* OPTIONAL */ + long *shortSN; /* OPTIONAL */ + long *pdcp_DuplicationSRB; /* OPTIONAL */ + long *pdcp_DuplicationMCG_OrSCG_DRB; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCP_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberROHC_ContextSessions_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkOnlyROHC_Profiles_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_continueROHC_Context_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_outOfOrderDelivery_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_shortSN_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationSRB_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationMCG_OrSCG_DRB_40; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_Parameters_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCP_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.c b/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.c new file mode 100644 index 0000000..67746d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDCP-ParametersMRDC.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_ASN_RRC_pdcp_DuplicationSplitSRB_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcp_DuplicationSplitDRB_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcp_DuplicationSplitSRB_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_DuplicationSplitSRB_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_DuplicationSplitSRB_specs_2 = { + asn_MAP_ASN_RRC_pdcp_DuplicationSplitSRB_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_DuplicationSplitSRB_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_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_ASN_RRC_pdcp_DuplicationSplitSRB_2 = { + "pdcp-DuplicationSplitSRB", + "pdcp-DuplicationSplitSRB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2, + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_DuplicationSplitSRB_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_DuplicationSplitSRB_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdcp_DuplicationSplitDRB_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcp_DuplicationSplitDRB_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcp_DuplicationSplitDRB_specs_4 = { + asn_MAP_ASN_RRC_pdcp_DuplicationSplitDRB_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcp_DuplicationSplitDRB_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4[] = { + (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_ASN_RRC_pdcp_DuplicationSplitDRB_4 = { + "pdcp-DuplicationSplitDRB", + "pdcp-DuplicationSplitDRB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4, + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4) + /sizeof(asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcp_DuplicationSplitDRB_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcp_DuplicationSplitDRB_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_ParametersMRDC_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDCP_ParametersMRDC, pdcp_DuplicationSplitSRB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSplitSRB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDCP_ParametersMRDC, pdcp_DuplicationSplitDRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSplitDRB" + }, +}; +static const int asn_MAP_ASN_RRC_PDCP_ParametersMRDC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDCP_ParametersMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcp-DuplicationSplitSRB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pdcp-DuplicationSplitDRB */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_ParametersMRDC_specs_1 = { + sizeof(struct ASN_RRC_PDCP_ParametersMRDC), + offsetof(struct ASN_RRC_PDCP_ParametersMRDC, _asn_ctx), + asn_MAP_ASN_RRC_PDCP_ParametersMRDC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDCP_ParametersMRDC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_ParametersMRDC = { + "PDCP-ParametersMRDC", + "PDCP-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDCP_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDCP_ParametersMRDC_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PDCP_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.h b/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.h new file mode 100644 index 0000000..493bbb6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDCP-ParametersMRDC.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDCP_ParametersMRDC_H_ +#define _ASN_RRC_PDCP_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB { + ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB_supported = 0 +} e_ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB; +typedef enum ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB { + ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB_supported = 0 +} e_ASN_RRC_PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB; + +/* ASN_RRC_PDCP-ParametersMRDC */ +typedef struct ASN_RRC_PDCP_ParametersMRDC { + long *pdcp_DuplicationSplitSRB; /* OPTIONAL */ + long *pdcp_DuplicationSplitDRB; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDCP_ParametersMRDC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationSplitSRB_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_DuplicationSplitDRB_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_ParametersMRDC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDCP_ParametersMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.c b/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.c new file mode 100644 index 0000000..df03aff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.c @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-CodeBlockGroupTransmission.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_constr_2 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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_enum2value_2[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2, /* n6(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_specs_2 = { + asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_enum2value_2, /* 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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2 = { + "maxCodeBlockGroupsPerTransportBlock", + "maxCodeBlockGroupsPerTransportBlock", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2, + sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_CodeBlockGroupTransmission_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_CodeBlockGroupTransmission, maxCodeBlockGroupsPerTransportBlock), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeBlockGroupsPerTransportBlock" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_CodeBlockGroupTransmission, codeBlockGroupFlushIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codeBlockGroupFlushIndicator" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxCodeBlockGroupsPerTransportBlock */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* codeBlockGroupFlushIndicator */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_CodeBlockGroupTransmission_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_CodeBlockGroupTransmission), + offsetof(struct ASN_RRC_PDSCH_CodeBlockGroupTransmission, _asn_ctx), + asn_MAP_ASN_RRC_PDSCH_CodeBlockGroupTransmission_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_ASN_RRC_PDSCH_CodeBlockGroupTransmission = { + "PDSCH-CodeBlockGroupTransmission", + "PDSCH-CodeBlockGroupTransmission", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDSCH_CodeBlockGroupTransmission_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PDSCH_CodeBlockGroupTransmission_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.h b/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.h new file mode 100644 index 0000000..3e5d37f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-CodeBlockGroupTransmission.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_CodeBlockGroupTransmission_H_ +#define _ASN_RRC_PDSCH_CodeBlockGroupTransmission_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock { + ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n2 = 0, + ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n4 = 1, + ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n6 = 2, + ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n8 = 3 +} e_ASN_RRC_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock; + +/* ASN_RRC_PDSCH-CodeBlockGroupTransmission */ +typedef struct ASN_RRC_PDSCH_CodeBlockGroupTransmission { + long maxCodeBlockGroupsPerTransportBlock; + BOOLEAN_t codeBlockGroupFlushIndicator; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_CodeBlockGroupTransmission_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_CodeBlockGroupTransmission_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_CodeBlockGroupTransmission_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_CodeBlockGroupTransmission_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-Config.c b/src/asn/rrc/ASN_RRC_PDSCH-Config.c new file mode 100644 index 0000000..6887ef2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-Config.c @@ -0,0 +1,1624 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-Config.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_RateMatchPatternGroup.h" +#include "ASN_RRC_TCI-State.h" +#include "ASN_RRC_RateMatchPattern.h" +#include "ASN_RRC_ZP-CSI-RS-Resource.h" +#include "ASN_RRC_ZP-CSI-RS-ResourceSet.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. + */ +/* + * 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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_dataScramblingIdentityPDSCH_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_ASN_RRC_tci_StatesToAddModList_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 <= 128)) { + /* 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 int +memb_ASN_RRC_tci_StatesToReleaseList_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 <= 128)) { + /* 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 int +memb_ASN_RRC_rateMatchPatternToAddModList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_rateMatchPatternToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_zp_CSI_RS_ResourceToAddModList_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 int +memb_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_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 int +memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_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 <= 16)) { + /* 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_ASN_RRC_tci_StatesToAddModList_constr_5 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_per_constraints_t asn_PER_type_ASN_RRC_tci_StatesToReleaseList_constr_7 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_per_constraints_t asn_PER_type_ASN_RRC_vrb_ToPRB_Interleaver_constr_9 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_type_ASN_RRC_resourceAllocation_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_pdsch_AggregationFactor_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_rateMatchPatternToAddModList_constr_21 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_per_constraints_t asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_23 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_per_constraints_t asn_PER_type_ASN_RRC_rbg_Size_constr_27 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_type_ASN_RRC_mcs_Table_constr_30 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_type_ASN_RRC_maxNrofCodeWordsScheduledByDCI_constr_33 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_type_ASN_RRC_bundleSize_constr_38 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_type_ASN_RRC_bundleSizeSet1_constr_42 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_type_ASN_RRC_bundleSizeSet2_constr_47 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_type_ASN_RRC_prb_BundlingType_constr_36 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_type_ASN_RRC_zp_CSI_RS_ResourceToAddModList_constr_50 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_type_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_constr_52 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_type_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_54 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_per_constraints_t asn_PER_type_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_56 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_per_constraints_t asn_PER_type_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_58 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_per_constraints_t asn_PER_type_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_60 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_per_constraints_t asn_PER_memb_ASN_RRC_dataScramblingIdentityPDSCH_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_ASN_RRC_tci_StatesToAddModList_constr_5 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_per_constraints_t asn_PER_memb_ASN_RRC_tci_StatesToReleaseList_constr_7 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_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_21 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_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_23 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_per_constraints_t asn_PER_memb_ASN_RRC_zp_CSI_RS_ResourceToAddModList_constr_50 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_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_constr_52 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_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_54 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_per_constraints_t asn_PER_memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_56 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_per_constraints_t asn_PER_memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_58 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_per_constraints_t asn_PER_memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_60 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_ASN_RRC_tci_StatesToAddModList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_TCI_State, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tci_StatesToAddModList_specs_5 = { + sizeof(struct ASN_RRC_PDSCH_Config__tci_StatesToAddModList), + offsetof(struct ASN_RRC_PDSCH_Config__tci_StatesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_StatesToAddModList_5 = { + "tci-StatesToAddModList", + "tci-StatesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5, + sizeof(asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5) + /sizeof(asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5) + /sizeof(asn_DEF_ASN_RRC_tci_StatesToAddModList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tci_StatesToAddModList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tci_StatesToAddModList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tci_StatesToAddModList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_tci_StatesToReleaseList_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tci_StatesToReleaseList_specs_7 = { + sizeof(struct ASN_RRC_PDSCH_Config__tci_StatesToReleaseList), + offsetof(struct ASN_RRC_PDSCH_Config__tci_StatesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tci_StatesToReleaseList_7 = { + "tci-StatesToReleaseList", + "tci-StatesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7, + sizeof(asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7) + /sizeof(asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7) + /sizeof(asn_DEF_ASN_RRC_tci_StatesToReleaseList_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tci_StatesToReleaseList_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tci_StatesToReleaseList_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tci_StatesToReleaseList_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_vrb_ToPRB_Interleaver_value2enum_9[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_vrb_ToPRB_Interleaver_enum2value_9[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_vrb_ToPRB_Interleaver_specs_9 = { + asn_MAP_ASN_RRC_vrb_ToPRB_Interleaver_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_vrb_ToPRB_Interleaver_enum2value_9, /* 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_ASN_RRC_vrb_ToPRB_Interleaver_tags_9[] = { + (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_ASN_RRC_vrb_ToPRB_Interleaver_9 = { + "vrb-ToPRB-Interleaver", + "vrb-ToPRB-Interleaver", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9, + sizeof(asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9) + /sizeof(asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9) + /sizeof(asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_vrb_ToPRB_Interleaver_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_vrb_ToPRB_Interleaver_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceAllocation_value2enum_12[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceAllocation_enum2value_12[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceAllocation_specs_12 = { + asn_MAP_ASN_RRC_resourceAllocation_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceAllocation_enum2value_12, /* 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_ASN_RRC_resourceAllocation_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_12 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceAllocation_tags_12, + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_12) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceAllocation_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_12) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceAllocation_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceAllocation_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_AggregationFactor_value2enum_17[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_AggregationFactor_enum2value_17[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_AggregationFactor_specs_17 = { + asn_MAP_ASN_RRC_pdsch_AggregationFactor_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_AggregationFactor_enum2value_17, /* 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_ASN_RRC_pdsch_AggregationFactor_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_AggregationFactor_17 = { + "pdsch-AggregationFactor", + "pdsch-AggregationFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17, + sizeof(asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17) + /sizeof(asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17) + /sizeof(asn_DEF_ASN_RRC_pdsch_AggregationFactor_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_AggregationFactor_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_AggregationFactor_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToAddModList_21[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_21 = { + sizeof(struct ASN_RRC_PDSCH_Config__rateMatchPatternToAddModList), + offsetof(struct ASN_RRC_PDSCH_Config__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_21 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToAddModList_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToAddModList_21, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_23 = { + sizeof(struct ASN_RRC_PDSCH_Config__rateMatchPatternToReleaseList), + offsetof(struct ASN_RRC_PDSCH_Config__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_23 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_23, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rbg_Size_value2enum_27[] = { + { 0, 7, "config1" }, + { 1, 7, "config2" } +}; +static const unsigned int asn_MAP_ASN_RRC_rbg_Size_enum2value_27[] = { + 0, /* config1(0) */ + 1 /* config2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rbg_Size_specs_27 = { + asn_MAP_ASN_RRC_rbg_Size_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rbg_Size_enum2value_27, /* 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_ASN_RRC_rbg_Size_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_27 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rbg_Size_tags_27, + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_27) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rbg_Size_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_27) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rbg_Size_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rbg_Size_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_Table_value2enum_30[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_Table_enum2value_30[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_Table_specs_30 = { + asn_MAP_ASN_RRC_mcs_Table_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_Table_enum2value_30, /* 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_ASN_RRC_mcs_Table_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_30 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_Table_tags_30, + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_30) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_Table_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_30) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_30[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_Table_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_Table_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNrofCodeWordsScheduledByDCI_value2enum_33[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNrofCodeWordsScheduledByDCI_enum2value_33[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNrofCodeWordsScheduledByDCI_specs_33 = { + asn_MAP_ASN_RRC_maxNrofCodeWordsScheduledByDCI_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNrofCodeWordsScheduledByDCI_enum2value_33, /* 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_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_33 = { + "maxNrofCodeWordsScheduledByDCI", + "maxNrofCodeWordsScheduledByDCI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33, + sizeof(asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33) + /sizeof(asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33) + /sizeof(asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_tags_33[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNrofCodeWordsScheduledByDCI_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNrofCodeWordsScheduledByDCI_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bundleSize_value2enum_38[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" } +}; +static const unsigned int asn_MAP_ASN_RRC_bundleSize_enum2value_38[] = { + 0, /* n4(0) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bundleSize_specs_38 = { + asn_MAP_ASN_RRC_bundleSize_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bundleSize_enum2value_38, /* 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_ASN_RRC_bundleSize_tags_38[] = { + (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_ASN_RRC_bundleSize_38 = { + "bundleSize", + "bundleSize", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bundleSize_tags_38, + sizeof(asn_DEF_ASN_RRC_bundleSize_tags_38) + /sizeof(asn_DEF_ASN_RRC_bundleSize_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bundleSize_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bundleSize_tags_38) + /sizeof(asn_DEF_ASN_RRC_bundleSize_tags_38[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bundleSize_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bundleSize_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_staticBundling_37[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling, bundleSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bundleSize_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSize" + }, +}; +static const int asn_MAP_ASN_RRC_staticBundling_oms_37[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_staticBundling_tags_37[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_staticBundling_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* bundleSize */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_staticBundling_specs_37 = { + sizeof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling), + offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling, _asn_ctx), + asn_MAP_ASN_RRC_staticBundling_tag2el_37, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_staticBundling_oms_37, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_staticBundling_37 = { + "staticBundling", + "staticBundling", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_staticBundling_tags_37, + sizeof(asn_DEF_ASN_RRC_staticBundling_tags_37) + /sizeof(asn_DEF_ASN_RRC_staticBundling_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_staticBundling_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_staticBundling_tags_37) + /sizeof(asn_DEF_ASN_RRC_staticBundling_tags_37[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_staticBundling_37, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_staticBundling_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bundleSizeSet1_value2enum_42[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" }, + { 2, 11, "n2-wideband" }, + { 3, 11, "n4-wideband" } +}; +static const unsigned int asn_MAP_ASN_RRC_bundleSizeSet1_enum2value_42[] = { + 2, /* n2-wideband(2) */ + 0, /* n4(0) */ + 3, /* n4-wideband(3) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bundleSizeSet1_specs_42 = { + asn_MAP_ASN_RRC_bundleSizeSet1_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bundleSizeSet1_enum2value_42, /* 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_ASN_RRC_bundleSizeSet1_tags_42[] = { + (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_ASN_RRC_bundleSizeSet1_42 = { + "bundleSizeSet1", + "bundleSizeSet1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bundleSizeSet1_tags_42, + sizeof(asn_DEF_ASN_RRC_bundleSizeSet1_tags_42) + /sizeof(asn_DEF_ASN_RRC_bundleSizeSet1_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bundleSizeSet1_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bundleSizeSet1_tags_42) + /sizeof(asn_DEF_ASN_RRC_bundleSizeSet1_tags_42[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bundleSizeSet1_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bundleSizeSet1_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bundleSizeSet2_value2enum_47[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" } +}; +static const unsigned int asn_MAP_ASN_RRC_bundleSizeSet2_enum2value_47[] = { + 0, /* n4(0) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bundleSizeSet2_specs_47 = { + asn_MAP_ASN_RRC_bundleSizeSet2_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bundleSizeSet2_enum2value_47, /* 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_ASN_RRC_bundleSizeSet2_tags_47[] = { + (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_ASN_RRC_bundleSizeSet2_47 = { + "bundleSizeSet2", + "bundleSizeSet2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bundleSizeSet2_tags_47, + sizeof(asn_DEF_ASN_RRC_bundleSizeSet2_tags_47) + /sizeof(asn_DEF_ASN_RRC_bundleSizeSet2_tags_47[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bundleSizeSet2_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bundleSizeSet2_tags_47) + /sizeof(asn_DEF_ASN_RRC_bundleSizeSet2_tags_47[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bundleSizeSet2_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bundleSizeSet2_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dynamicBundling_41[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling, bundleSizeSet1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bundleSizeSet1_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSizeSet1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling, bundleSizeSet2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bundleSizeSet2_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSizeSet2" + }, +}; +static const int asn_MAP_ASN_RRC_dynamicBundling_oms_41[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicBundling_tags_41[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_dynamicBundling_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bundleSizeSet1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bundleSizeSet2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dynamicBundling_specs_41 = { + sizeof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling), + offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling, _asn_ctx), + asn_MAP_ASN_RRC_dynamicBundling_tag2el_41, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_dynamicBundling_oms_41, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicBundling_41 = { + "dynamicBundling", + "dynamicBundling", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dynamicBundling_tags_41, + sizeof(asn_DEF_ASN_RRC_dynamicBundling_tags_41) + /sizeof(asn_DEF_ASN_RRC_dynamicBundling_tags_41[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicBundling_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicBundling_tags_41) + /sizeof(asn_DEF_ASN_RRC_dynamicBundling_tags_41[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_dynamicBundling_41, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_dynamicBundling_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_prb_BundlingType_36[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType, choice.staticBundling), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_staticBundling_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "staticBundling" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType, choice.dynamicBundling), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_dynamicBundling_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicBundling" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_prb_BundlingType_tag2el_36[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* staticBundling */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dynamicBundling */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_prb_BundlingType_specs_36 = { + sizeof(struct ASN_RRC_PDSCH_Config__prb_BundlingType), + offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType, _asn_ctx), + offsetof(struct ASN_RRC_PDSCH_Config__prb_BundlingType, present), + sizeof(((struct ASN_RRC_PDSCH_Config__prb_BundlingType *)0)->present), + asn_MAP_ASN_RRC_prb_BundlingType_tag2el_36, + 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_ASN_RRC_prb_BundlingType_36 = { + "prb-BundlingType", + "prb-BundlingType", + &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_ASN_RRC_prb_BundlingType_constr_36, CHOICE_constraint }, + asn_MBR_ASN_RRC_prb_BundlingType_36, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_prb_BundlingType_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_zp_CSI_RS_ResourceToAddModList_50[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_zp_CSI_RS_ResourceToAddModList_specs_50 = { + sizeof(struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToAddModList), + offsetof(struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_50 = { + "zp-CSI-RS-ResourceToAddModList", + "zp-CSI-RS-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50, + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_tags_50[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_zp_CSI_RS_ResourceToAddModList_constr_50, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_zp_CSI_RS_ResourceToAddModList_50, + 1, /* Single element */ + &asn_SPC_ASN_RRC_zp_CSI_RS_ResourceToAddModList_specs_50 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_52[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_specs_52 = { + sizeof(struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToReleaseList), + offsetof(struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_52 = { + "zp-CSI-RS-ResourceToReleaseList", + "zp-CSI-RS-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52, + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_tags_52[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_constr_52, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_52, + 1, /* Single element */ + &asn_SPC_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_54[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_specs_54 = { + sizeof(struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToAddModList), + offsetof(struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_54 = { + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList", + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54, + sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54) + /sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54) + /sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_54, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_54, + 1, /* Single element */ + &asn_SPC_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_specs_54 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_56[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_specs_56 = { + sizeof(struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList), + offsetof(struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_56 = { + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList", + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56, + sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56) + /sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56) + /sizeof(asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_56, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_56, + 1, /* Single element */ + &asn_SPC_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_58[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_specs_58 = { + sizeof(struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToAddModList), + offsetof(struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_58 = { + "sp-ZP-CSI-RS-ResourceSetsToAddModList", + "sp-ZP-CSI-RS-ResourceSetsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58, + sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58) + /sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58) + /sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_58, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_58, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_60[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_specs_60 = { + sizeof(struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToReleaseList), + offsetof(struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_60 = { + "sp-ZP-CSI-RS-ResourceSetsToReleaseList", + "sp-ZP-CSI-RS-ResourceSetsToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60, + sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60) + /sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60) + /sizeof(asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_60[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_60, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_60, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_Config_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDSCH_Config, dataScramblingIdentityPDSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dataScramblingIdentityPDSCH_constr_2, memb_ASN_RRC_dataScramblingIdentityPDSCH_constraint_1 }, + 0, 0, /* No default value */ + "dataScramblingIdentityPDSCH" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDSCH_Config, dmrs_DownlinkForPDSCH_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DMRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-DownlinkForPDSCH-MappingTypeA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDSCH_Config, dmrs_DownlinkForPDSCH_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DMRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-DownlinkForPDSCH-MappingTypeB" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDSCH_Config, tci_StatesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_tci_StatesToAddModList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_tci_StatesToAddModList_constr_5, memb_ASN_RRC_tci_StatesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_Config, tci_StatesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_tci_StatesToReleaseList_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_tci_StatesToReleaseList_constr_7, memb_ASN_RRC_tci_StatesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config, vrb_ToPRB_Interleaver), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vrb-ToPRB-Interleaver" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_Config, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceAllocation_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDSCH_Config, pdsch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-TimeDomainAllocationList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDSCH_Config, pdsch_AggregationFactor), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_AggregationFactor_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-AggregationFactor" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDSCH_Config, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToAddModList_21, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_21, memb_ASN_RRC_rateMatchPatternToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDSCH_Config, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_23, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_23, memb_ASN_RRC_rateMatchPatternToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_Config, rateMatchPatternGroup1), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternGroup1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config, rateMatchPatternGroup2), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternGroup2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_Config, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rbg_Size_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_Table_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config, maxNrofCodeWordsScheduledByDCI), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNrofCodeWordsScheduledByDCI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_Config, prb_BundlingType), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_prb_BundlingType_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prb-BundlingType" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PDSCH_Config, zp_CSI_RS_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToAddModList_50, + 0, + { 0, &asn_PER_memb_ASN_RRC_zp_CSI_RS_ResourceToAddModList_constr_50, memb_ASN_RRC_zp_CSI_RS_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PDSCH_Config, zp_CSI_RS_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_52, + 0, + { 0, &asn_PER_memb_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_constr_52, memb_ASN_RRC_zp_CSI_RS_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDSCH_Config, aperiodic_ZP_CSI_RS_ResourceSetsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_54, + 0, + { 0, &asn_PER_memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_54, memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDSCH_Config, aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_56, + 0, + { 0, &asn_PER_memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_56, memb_ASN_RRC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDSCH_Config, sp_ZP_CSI_RS_ResourceSetsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + 0, + &asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_58, + 0, + { 0, &asn_PER_memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_58, memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sp-ZP-CSI-RS-ResourceSetsToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_Config, sp_ZP_CSI_RS_ResourceSetsToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + 0, + &asn_DEF_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_60, + 0, + { 0, &asn_PER_memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_60, memb_ASN_RRC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sp-ZP-CSI-RS-ResourceSetsToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_Config, p_ZP_CSI_RS_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-ZP-CSI-RS-ResourceSet" + }, +}; +static const int asn_MAP_ASN_RRC_PDSCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 23 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDSCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dataScramblingIdentityPDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dmrs-DownlinkForPDSCH-MappingTypeA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dmrs-DownlinkForPDSCH-MappingTypeB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tci-StatesToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* tci-StatesToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* vrb-ToPRB-Interleaver */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* resourceAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* pdsch-TimeDomainAllocationList */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* pdsch-AggregationFactor */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* rateMatchPatternToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* rateMatchPatternToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* rateMatchPatternGroup1 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* rateMatchPatternGroup2 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* rbg-Size */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* mcs-Table */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* maxNrofCodeWordsScheduledByDCI */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* prb-BundlingType */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* zp-CSI-RS-ResourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* zp-CSI-RS-ResourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* aperiodic-ZP-CSI-RS-ResourceSetsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* sp-ZP-CSI-RS-ResourceSetsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* sp-ZP-CSI-RS-ResourceSetsToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 } /* p-ZP-CSI-RS-ResourceSet */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_Config_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_Config), + offsetof(struct ASN_RRC_PDSCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_PDSCH_Config_tag2el_1, + 24, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDSCH_Config_oms_1, /* Optional members */ + 21, 0, /* Root/Additions */ + 24, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_Config = { + "PDSCH-Config", + "PDSCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDSCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDSCH_Config_1, + 24, /* Elements count */ + &asn_SPC_ASN_RRC_PDSCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-Config.h b/src/asn/rrc/ASN_RRC_PDSCH-Config.h new file mode 100644 index 0000000..8f78e7b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-Config.h @@ -0,0 +1,211 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_Config_H_ +#define _ASN_RRC_PDSCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include "ASN_RRC_TCI-StateId.h" +#include "ASN_RRC_RateMatchPatternId.h" +#include +#include +#include "ASN_RRC_ZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_ZP-CSI-RS-ResourceSetId.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDSCH_Config__vrb_ToPRB_Interleaver { + ASN_RRC_PDSCH_Config__vrb_ToPRB_Interleaver_n2 = 0, + ASN_RRC_PDSCH_Config__vrb_ToPRB_Interleaver_n4 = 1 +} e_ASN_RRC_PDSCH_Config__vrb_ToPRB_Interleaver; +typedef enum ASN_RRC_PDSCH_Config__resourceAllocation { + ASN_RRC_PDSCH_Config__resourceAllocation_resourceAllocationType0 = 0, + ASN_RRC_PDSCH_Config__resourceAllocation_resourceAllocationType1 = 1, + ASN_RRC_PDSCH_Config__resourceAllocation_dynamicSwitch = 2 +} e_ASN_RRC_PDSCH_Config__resourceAllocation; +typedef enum ASN_RRC_PDSCH_Config__pdsch_AggregationFactor { + ASN_RRC_PDSCH_Config__pdsch_AggregationFactor_n2 = 0, + ASN_RRC_PDSCH_Config__pdsch_AggregationFactor_n4 = 1, + ASN_RRC_PDSCH_Config__pdsch_AggregationFactor_n8 = 2 +} e_ASN_RRC_PDSCH_Config__pdsch_AggregationFactor; +typedef enum ASN_RRC_PDSCH_Config__rbg_Size { + ASN_RRC_PDSCH_Config__rbg_Size_config1 = 0, + ASN_RRC_PDSCH_Config__rbg_Size_config2 = 1 +} e_ASN_RRC_PDSCH_Config__rbg_Size; +typedef enum ASN_RRC_PDSCH_Config__mcs_Table { + ASN_RRC_PDSCH_Config__mcs_Table_qam256 = 0, + ASN_RRC_PDSCH_Config__mcs_Table_qam64LowSE = 1 +} e_ASN_RRC_PDSCH_Config__mcs_Table; +typedef enum ASN_RRC_PDSCH_Config__maxNrofCodeWordsScheduledByDCI { + ASN_RRC_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1 = 0, + ASN_RRC_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n2 = 1 +} e_ASN_RRC_PDSCH_Config__maxNrofCodeWordsScheduledByDCI; +typedef enum ASN_RRC_PDSCH_Config__prb_BundlingType_PR { + ASN_RRC_PDSCH_Config__prb_BundlingType_PR_NOTHING, /* No components present */ + ASN_RRC_PDSCH_Config__prb_BundlingType_PR_staticBundling, + ASN_RRC_PDSCH_Config__prb_BundlingType_PR_dynamicBundling +} ASN_RRC_PDSCH_Config__prb_BundlingType_PR; +typedef enum ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize { + ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_n4 = 0, + ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband = 1 +} e_ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize; +typedef enum ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1 { + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n4 = 0, + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_wideband = 1, + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n2_wideband = 2, + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n4_wideband = 3 +} e_ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1; +typedef enum ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2 { + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2_n4 = 0, + ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2_wideband = 1 +} e_ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig; +struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList; +struct ASN_RRC_RateMatchPatternGroup; +struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet; +struct ASN_RRC_TCI_State; +struct ASN_RRC_RateMatchPattern; +struct ASN_RRC_ZP_CSI_RS_Resource; +struct ASN_RRC_ZP_CSI_RS_ResourceSet; + +/* ASN_RRC_PDSCH-Config */ +typedef struct ASN_RRC_PDSCH_Config { + long *dataScramblingIdentityPDSCH; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig *dmrs_DownlinkForPDSCH_MappingTypeA; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig *dmrs_DownlinkForPDSCH_MappingTypeB; /* OPTIONAL */ + struct ASN_RRC_PDSCH_Config__tci_StatesToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_TCI_State) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesToAddModList; + struct ASN_RRC_PDSCH_Config__tci_StatesToReleaseList { + A_SEQUENCE_OF(ASN_RRC_TCI_StateId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesToReleaseList; + long *vrb_ToPRB_Interleaver; /* OPTIONAL */ + long resourceAllocation; + struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList *pdsch_TimeDomainAllocationList; /* OPTIONAL */ + long *pdsch_AggregationFactor; /* OPTIONAL */ + struct ASN_RRC_PDSCH_Config__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct ASN_RRC_PDSCH_Config__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(ASN_RRC_RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + struct ASN_RRC_RateMatchPatternGroup *rateMatchPatternGroup1; /* OPTIONAL */ + struct ASN_RRC_RateMatchPatternGroup *rateMatchPatternGroup2; /* OPTIONAL */ + long rbg_Size; + long *mcs_Table; /* OPTIONAL */ + long *maxNrofCodeWordsScheduledByDCI; /* OPTIONAL */ + struct ASN_RRC_PDSCH_Config__prb_BundlingType { + ASN_RRC_PDSCH_Config__prb_BundlingType_PR present; + union ASN_RRC_PDSCH_Config__ASN_RRC_prb_BundlingType_u { + struct ASN_RRC_PDSCH_Config__prb_BundlingType__staticBundling { + long *bundleSize; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *staticBundling; + struct ASN_RRC_PDSCH_Config__prb_BundlingType__dynamicBundling { + long *bundleSizeSet1; /* OPTIONAL */ + long *bundleSizeSet2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dynamicBundling; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } prb_BundlingType; + struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_ZP_CSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *zp_CSI_RS_ResourceToAddModList; + struct ASN_RRC_PDSCH_Config__zp_CSI_RS_ResourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_ZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *zp_CSI_RS_ResourceToReleaseList; + struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_ZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic_ZP_CSI_RS_ResourceSetsToAddModList; + struct ASN_RRC_PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList { + A_SEQUENCE_OF(ASN_RRC_ZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList; + struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_ZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sp_ZP_CSI_RS_ResourceSetsToAddModList; + struct ASN_RRC_PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToReleaseList { + A_SEQUENCE_OF(ASN_RRC_ZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sp_ZP_CSI_RS_ResourceSetsToReleaseList; + struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet *p_ZP_CSI_RS_ResourceSet; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_vrb_ToPRB_Interleaver_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_AggregationFactor_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNrofCodeWordsScheduledByDCI_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bundleSize_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bundleSizeSet1_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bundleSizeSet2_47; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_Config_1[24]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.c b/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.c new file mode 100644 index 0000000..9621c53 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-ConfigCommon.h" + +#include "ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_ConfigCommon_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_ConfigCommon, pdsch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-TimeDomainAllocationList" + }, +}; +static const int asn_MAP_ASN_RRC_PDSCH_ConfigCommon_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDSCH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-TimeDomainAllocationList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_ConfigCommon), + offsetof(struct ASN_RRC_PDSCH_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_PDSCH_ConfigCommon_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDSCH_ConfigCommon_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_ConfigCommon = { + "PDSCH-ConfigCommon", + "PDSCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDSCH_ConfigCommon_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PDSCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.h b/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.h new file mode 100644 index 0000000..49572fd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-ConfigCommon.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_ConfigCommon_H_ +#define _ASN_RRC_PDSCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList; + +/* ASN_RRC_PDSCH-ConfigCommon */ +typedef struct ASN_RRC_PDSCH_ConfigCommon { + struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList *pdsch_TimeDomainAllocationList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_ConfigCommon_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.c b/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.c new file mode 100644 index 0000000..70333fa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.c @@ -0,0 +1,280 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-ServingCellConfig.h" + +#include "ASN_RRC_SetupRelease.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 int +memb_ASN_RRC_maxMIMO_Layers_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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_type_ASN_RRC_xOverhead_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_type_ASN_RRC_nrofHARQ_ProcessesForPDSCH_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxMIMO_Layers_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_xOverhead_value2enum_3[] = { + { 0, 4, "xOh6" }, + { 1, 5, "xOh12" }, + { 2, 5, "xOh18" } +}; +static const unsigned int asn_MAP_ASN_RRC_xOverhead_enum2value_3[] = { + 1, /* xOh12(1) */ + 2, /* xOh18(2) */ + 0 /* xOh6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_xOverhead_specs_3 = { + asn_MAP_ASN_RRC_xOverhead_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_xOverhead_enum2value_3, /* 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_ASN_RRC_xOverhead_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_ASN_RRC_xOverhead_3 = { + "xOverhead", + "xOverhead", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_xOverhead_tags_3, + sizeof(asn_DEF_ASN_RRC_xOverhead_tags_3) + /sizeof(asn_DEF_ASN_RRC_xOverhead_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_xOverhead_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_xOverhead_tags_3) + /sizeof(asn_DEF_ASN_RRC_xOverhead_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_xOverhead_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_xOverhead_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofHARQ_ProcessesForPDSCH_value2enum_7[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 3, "n10" }, + { 4, 3, "n12" }, + { 5, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofHARQ_ProcessesForPDSCH_enum2value_7[] = { + 3, /* n10(3) */ + 4, /* n12(4) */ + 5, /* n16(5) */ + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n6(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofHARQ_ProcessesForPDSCH_specs_7 = { + asn_MAP_ASN_RRC_nrofHARQ_ProcessesForPDSCH_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofHARQ_ProcessesForPDSCH_enum2value_7, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7[] = { + (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_ASN_RRC_nrofHARQ_ProcessesForPDSCH_7 = { + "nrofHARQ-ProcessesForPDSCH", + "nrofHARQ-ProcessesForPDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7, + sizeof(asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofHARQ_ProcessesForPDSCH_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofHARQ_ProcessesForPDSCH_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_16[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig__ext1, maxMIMO_Layers), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxMIMO_Layers_constr_17, memb_ASN_RRC_maxMIMO_Layers_constraint_16 }, + 0, 0, /* No default value */ + "maxMIMO-Layers" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig__ext1, processingType2Enabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "processingType2Enabled" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_16[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxMIMO-Layers */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* processingType2Enabled */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_16 = { + sizeof(struct ASN_RRC_PDSCH_ServingCellConfig__ext1), + offsetof(struct ASN_RRC_PDSCH_ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_16, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_16, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_16 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_16, + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_16, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_ServingCellConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, codeBlockGroupTransmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codeBlockGroupTransmission" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, xOverhead), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_xOverhead_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xOverhead" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, nrofHARQ_ProcessesForPDSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofHARQ-ProcessesForPDSCH" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, pucch_Cell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Cell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_PDSCH_ServingCellConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDSCH_ServingCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* codeBlockGroupTransmission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* xOverhead */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrofHARQ-ProcessesForPDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pucch-Cell */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_ServingCellConfig_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_ServingCellConfig), + offsetof(struct ASN_RRC_PDSCH_ServingCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_PDSCH_ServingCellConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDSCH_ServingCellConfig_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_ServingCellConfig = { + "PDSCH-ServingCellConfig", + "PDSCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDSCH_ServingCellConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_PDSCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.h b/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.h new file mode 100644 index 0000000..8d8e23f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-ServingCellConfig.h @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_ServingCellConfig_H_ +#define _ASN_RRC_PDSCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_ServCellIndex.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDSCH_ServingCellConfig__xOverhead { + ASN_RRC_PDSCH_ServingCellConfig__xOverhead_xOh6 = 0, + ASN_RRC_PDSCH_ServingCellConfig__xOverhead_xOh12 = 1, + ASN_RRC_PDSCH_ServingCellConfig__xOverhead_xOh18 = 2 +} e_ASN_RRC_PDSCH_ServingCellConfig__xOverhead; +typedef enum ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH { + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n2 = 0, + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n4 = 1, + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n6 = 2, + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n10 = 3, + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n12 = 4, + ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n16 = 5 +} e_ASN_RRC_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission; + +/* ASN_RRC_PDSCH-ServingCellConfig */ +typedef struct ASN_RRC_PDSCH_ServingCellConfig { + struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission *codeBlockGroupTransmission; /* OPTIONAL */ + long *xOverhead; /* OPTIONAL */ + long *nrofHARQ_ProcessesForPDSCH; /* OPTIONAL */ + ASN_RRC_ServCellIndex_t *pucch_Cell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_PDSCH_ServingCellConfig__ext1 { + long *maxMIMO_Layers; /* OPTIONAL */ + BOOLEAN_t *processingType2Enabled; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_xOverhead_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofHARQ_ProcessesForPDSCH_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_ServingCellConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_ServingCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.c b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.c new file mode 100644 index 0000000..3854c51 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-TimeDomainResourceAllocation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_k0_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 <= 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 int +memb_ASN_RRC_startSymbolAndLength_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 <= 127)) { + /* Constraint 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_ASN_RRC_mappingType_constr_3 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_ASN_RRC_k0_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startSymbolAndLength_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mappingType_value2enum_3[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" } +}; +static const unsigned int asn_MAP_ASN_RRC_mappingType_enum2value_3[] = { + 0, /* typeA(0) */ + 1 /* typeB(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mappingType_specs_3 = { + asn_MAP_ASN_RRC_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mappingType_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mappingType_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_ASN_RRC_mappingType_3 = { + "mappingType", + "mappingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mappingType_tags_3, + sizeof(asn_DEF_ASN_RRC_mappingType_tags_3) + /sizeof(asn_DEF_ASN_RRC_mappingType_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mappingType_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mappingType_tags_3) + /sizeof(asn_DEF_ASN_RRC_mappingType_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mappingType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mappingType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_TimeDomainResourceAllocation_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation, k0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_k0_constr_2, memb_ASN_RRC_k0_constraint_1 }, + 0, 0, /* No default value */ + "k0" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation, mappingType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mappingType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation, startSymbolAndLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startSymbolAndLength_constr_6, memb_ASN_RRC_startSymbolAndLength_constraint_1 }, + 0, 0, /* No default value */ + "startSymbolAndLength" + }, +}; +static const int asn_MAP_ASN_RRC_PDSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* k0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mappingType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* startSymbolAndLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocation_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation), + offsetof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation, _asn_ctx), + asn_MAP_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PDSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation = { + "PDSCH-TimeDomainResourceAllocation", + "PDSCH-TimeDomainResourceAllocation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PDSCH_TimeDomainResourceAllocation_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.h b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.h new file mode 100644 index 0000000..03a00ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_TimeDomainResourceAllocation_H_ +#define _ASN_RRC_PDSCH_TimeDomainResourceAllocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PDSCH_TimeDomainResourceAllocation__mappingType { + ASN_RRC_PDSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, + ASN_RRC_PDSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 +} e_ASN_RRC_PDSCH_TimeDomainResourceAllocation__mappingType; + +/* ASN_RRC_PDSCH-TimeDomainResourceAllocation */ +typedef struct ASN_RRC_PDSCH_TimeDomainResourceAllocation { + long *k0; /* OPTIONAL */ + long mappingType; + long startSymbolAndLength; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_TimeDomainResourceAllocation_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mappingType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_TimeDomainResourceAllocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_TimeDomainResourceAllocation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.c b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.c new file mode 100644 index 0000000..e847e05 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h" + +#include "ASN_RRC_PDSCH-TimeDomainResourceAllocation.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_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_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_specs_1 = { + sizeof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList), + offsetof(struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList = { + "PDSCH-TimeDomainResourceAllocationList", + "PDSCH-TimeDomainResourceAllocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1, + sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h new file mode 100644 index 0000000..5f76262 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDSCH_TimeDomainResourceAllocationList_H_ +#define _ASN_RRC_PDSCH_TimeDomainResourceAllocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PDSCH_TimeDomainResourceAllocation; + +/* ASN_RRC_PDSCH-TimeDomainResourceAllocationList */ +typedef struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList { + A_SEQUENCE_OF(struct ASN_RRC_PDSCH_TimeDomainResourceAllocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PDSCH_TimeDomainResourceAllocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PDSCH_TimeDomainResourceAllocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDSCH_TimeDomainResourceAllocationList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PDU-SessionID.c b/src/asn/rrc/ASN_RRC_PDU-SessionID.c new file mode 100644 index 0000000..6665242 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDU-SessionID.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PDU-SessionID.h" + +int +ASN_RRC_PDU_SessionID_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_ASN_RRC_PDU_SessionID_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_ASN_RRC_PDU_SessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDU_SessionID = { + "PDU-SessionID", + "PDU-SessionID", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PDU_SessionID_tags_1, + sizeof(asn_DEF_ASN_RRC_PDU_SessionID_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDU_SessionID_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PDU_SessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PDU_SessionID_tags_1) + /sizeof(asn_DEF_ASN_RRC_PDU_SessionID_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PDU_SessionID_constr_1, ASN_RRC_PDU_SessionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PDU-SessionID.h b/src/asn/rrc/ASN_RRC_PDU-SessionID.h new file mode 100644 index 0000000..5fc58b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PDU-SessionID.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PDU_SessionID_H_ +#define _ASN_RRC_PDU_SessionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PDU-SessionID */ +typedef long ASN_RRC_PDU_SessionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PDU_SessionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDU_SessionID; +asn_struct_free_f ASN_RRC_PDU_SessionID_free; +asn_struct_print_f ASN_RRC_PDU_SessionID_print; +asn_constr_check_f ASN_RRC_PDU_SessionID_constraint; +ber_type_decoder_f ASN_RRC_PDU_SessionID_decode_ber; +der_type_encoder_f ASN_RRC_PDU_SessionID_encode_der; +xer_type_decoder_f ASN_RRC_PDU_SessionID_decode_xer; +xer_type_encoder_f ASN_RRC_PDU_SessionID_encode_xer; +per_type_decoder_f ASN_RRC_PDU_SessionID_decode_uper; +per_type_encoder_f ASN_RRC_PDU_SessionID_encode_uper; +per_type_decoder_f ASN_RRC_PDU_SessionID_decode_aper; +per_type_encoder_f ASN_RRC_PDU_SessionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PDU_SessionID_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-InfoMCG.c b/src/asn/rrc/ASN_RRC_PH-InfoMCG.c new file mode 100644 index 0000000..233012a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-InfoMCG.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-InfoMCG.h" + +#include "ASN_RRC_PH-UplinkCarrierMCG.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_PH_InfoMCG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_InfoMCG, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_InfoMCG, ph_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_UplinkCarrierMCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-Uplink" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PH_InfoMCG, ph_SupplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_UplinkCarrierMCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-SupplementaryUplink" + }, +}; +static const int asn_MAP_ASN_RRC_PH_InfoMCG_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_InfoMCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PH_InfoMCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ph-Uplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ph-SupplementaryUplink */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_InfoMCG_specs_1 = { + sizeof(struct ASN_RRC_PH_InfoMCG), + offsetof(struct ASN_RRC_PH_InfoMCG, _asn_ctx), + asn_MAP_ASN_RRC_PH_InfoMCG_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PH_InfoMCG_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_InfoMCG = { + "PH-InfoMCG", + "PH-InfoMCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PH_InfoMCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_InfoMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_InfoMCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_InfoMCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_InfoMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_InfoMCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PH_InfoMCG_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PH_InfoMCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-InfoMCG.h b/src/asn/rrc/ASN_RRC_PH-InfoMCG.h new file mode 100644 index 0000000..6b0055a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-InfoMCG.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_InfoMCG_H_ +#define _ASN_RRC_PH_InfoMCG_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_PH-UplinkCarrierMCG.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_UplinkCarrierMCG; + +/* ASN_RRC_PH-InfoMCG */ +typedef struct ASN_RRC_PH_InfoMCG { + ASN_RRC_ServCellIndex_t servCellIndex; + ASN_RRC_PH_UplinkCarrierMCG_t ph_Uplink; + struct ASN_RRC_PH_UplinkCarrierMCG *ph_SupplementaryUplink; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_InfoMCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_InfoMCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_InfoMCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_InfoMCG_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_InfoMCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-InfoSCG.c b/src/asn/rrc/ASN_RRC_PH-InfoSCG.c new file mode 100644 index 0000000..6663203 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-InfoSCG.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-InfoSCG.h" + +#include "ASN_RRC_PH-UplinkCarrierSCG.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_PH_InfoSCG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_InfoSCG, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_InfoSCG, ph_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_UplinkCarrierSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-Uplink" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PH_InfoSCG, ph_SupplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PH_UplinkCarrierSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-SupplementaryUplink" + }, +}; +static const int asn_MAP_ASN_RRC_PH_InfoSCG_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_InfoSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PH_InfoSCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ph-Uplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ph-SupplementaryUplink */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_InfoSCG_specs_1 = { + sizeof(struct ASN_RRC_PH_InfoSCG), + offsetof(struct ASN_RRC_PH_InfoSCG, _asn_ctx), + asn_MAP_ASN_RRC_PH_InfoSCG_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PH_InfoSCG_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_InfoSCG = { + "PH-InfoSCG", + "PH-InfoSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PH_InfoSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_InfoSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_InfoSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_InfoSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_InfoSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_InfoSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PH_InfoSCG_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PH_InfoSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-InfoSCG.h b/src/asn/rrc/ASN_RRC_PH-InfoSCG.h new file mode 100644 index 0000000..bba4f9b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-InfoSCG.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_InfoSCG_H_ +#define _ASN_RRC_PH_InfoSCG_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_PH-UplinkCarrierSCG.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_UplinkCarrierSCG; + +/* ASN_RRC_PH-InfoSCG */ +typedef struct ASN_RRC_PH_InfoSCG { + ASN_RRC_ServCellIndex_t servCellIndex; + ASN_RRC_PH_UplinkCarrierSCG_t ph_Uplink; + struct ASN_RRC_PH_UplinkCarrierSCG *ph_SupplementaryUplink; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_InfoSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_InfoSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_InfoSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_InfoSCG_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_InfoSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-TypeListMCG.c b/src/asn/rrc/ASN_RRC_PH-TypeListMCG.c new file mode 100644 index 0000000..d14c37f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-TypeListMCG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-TypeListMCG.h" + +#include "ASN_RRC_PH-InfoMCG.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PH_TypeListMCG_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_ASN_RRC_PH_TypeListMCG_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PH_InfoMCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PH_TypeListMCG_specs_1 = { + sizeof(struct ASN_RRC_PH_TypeListMCG), + offsetof(struct ASN_RRC_PH_TypeListMCG, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_TypeListMCG = { + "PH-TypeListMCG", + "PH-TypeListMCG", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_TypeListMCG_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PH_TypeListMCG_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PH_TypeListMCG_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PH_TypeListMCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-TypeListMCG.h b/src/asn/rrc/ASN_RRC_PH-TypeListMCG.h new file mode 100644 index 0000000..46a8b62 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-TypeListMCG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_TypeListMCG_H_ +#define _ASN_RRC_PH_TypeListMCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_InfoMCG; + +/* ASN_RRC_PH-TypeListMCG */ +typedef struct ASN_RRC_PH_TypeListMCG { + A_SEQUENCE_OF(struct ASN_RRC_PH_InfoMCG) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_TypeListMCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_TypeListMCG; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PH_TypeListMCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_TypeListMCG_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PH_TypeListMCG_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_TypeListMCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-TypeListSCG.c b/src/asn/rrc/ASN_RRC_PH-TypeListSCG.c new file mode 100644 index 0000000..d94139c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-TypeListSCG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-TypeListSCG.h" + +#include "ASN_RRC_PH-InfoSCG.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PH_TypeListSCG_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_ASN_RRC_PH_TypeListSCG_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PH_InfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PH_TypeListSCG_specs_1 = { + sizeof(struct ASN_RRC_PH_TypeListSCG), + offsetof(struct ASN_RRC_PH_TypeListSCG, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_TypeListSCG = { + "PH-TypeListSCG", + "PH-TypeListSCG", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_TypeListSCG_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PH_TypeListSCG_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PH_TypeListSCG_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PH_TypeListSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-TypeListSCG.h b/src/asn/rrc/ASN_RRC_PH-TypeListSCG.h new file mode 100644 index 0000000..1bbb658 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-TypeListSCG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_TypeListSCG_H_ +#define _ASN_RRC_PH_TypeListSCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PH_InfoSCG; + +/* ASN_RRC_PH-TypeListSCG */ +typedef struct ASN_RRC_PH_TypeListSCG { + A_SEQUENCE_OF(struct ASN_RRC_PH_InfoSCG) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_TypeListSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_TypeListSCG; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PH_TypeListSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_TypeListSCG_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PH_TypeListSCG_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_TypeListSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.c b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.c new file mode 100644 index 0000000..e5b3717 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-UplinkCarrierMCG.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_ph_Type1or3_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ph_Type1or3_value2enum_2[] = { + { 0, 5, "type1" }, + { 1, 5, "type3" } +}; +static const unsigned int asn_MAP_ASN_RRC_ph_Type1or3_enum2value_2[] = { + 0, /* type1(0) */ + 1 /* type3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ph_Type1or3_specs_2 = { + asn_MAP_ASN_RRC_ph_Type1or3_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ph_Type1or3_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ph_Type1or3_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_ASN_RRC_ph_Type1or3_2 = { + "ph-Type1or3", + "ph-Type1or3", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ph_Type1or3_tags_2, + sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2) + /sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ph_Type1or3_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2) + /sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ph_Type1or3_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ph_Type1or3_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PH_UplinkCarrierMCG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_UplinkCarrierMCG, ph_Type1or3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ph_Type1or3_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-Type1or3" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PH_UplinkCarrierMCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ph-Type1or3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_UplinkCarrierMCG_specs_1 = { + sizeof(struct ASN_RRC_PH_UplinkCarrierMCG), + offsetof(struct ASN_RRC_PH_UplinkCarrierMCG, _asn_ctx), + asn_MAP_ASN_RRC_PH_UplinkCarrierMCG_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_ASN_RRC_PH_UplinkCarrierMCG = { + "PH-UplinkCarrierMCG", + "PH-UplinkCarrierMCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierMCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PH_UplinkCarrierMCG_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PH_UplinkCarrierMCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.h b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.h new file mode 100644 index 0000000..1ec684f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierMCG.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_UplinkCarrierMCG_H_ +#define _ASN_RRC_PH_UplinkCarrierMCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PH_UplinkCarrierMCG__ph_Type1or3 { + ASN_RRC_PH_UplinkCarrierMCG__ph_Type1or3_type1 = 0, + ASN_RRC_PH_UplinkCarrierMCG__ph_Type1or3_type3 = 1 +} e_ASN_RRC_PH_UplinkCarrierMCG__ph_Type1or3; + +/* ASN_RRC_PH-UplinkCarrierMCG */ +typedef struct ASN_RRC_PH_UplinkCarrierMCG { + long ph_Type1or3; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_UplinkCarrierMCG_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ph_Type1or3_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_UplinkCarrierMCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_UplinkCarrierMCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_UplinkCarrierMCG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_UplinkCarrierMCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.c b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.c new file mode 100644 index 0000000..baba014 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PH-UplinkCarrierSCG.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_ph_Type1or3_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ph_Type1or3_value2enum_2[] = { + { 0, 5, "type1" }, + { 1, 5, "type3" } +}; +static const unsigned int asn_MAP_ASN_RRC_ph_Type1or3_enum2value_2[] = { + 0, /* type1(0) */ + 1 /* type3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ph_Type1or3_specs_2 = { + asn_MAP_ASN_RRC_ph_Type1or3_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ph_Type1or3_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ph_Type1or3_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_ASN_RRC_ph_Type1or3_2 = { + "ph-Type1or3", + "ph-Type1or3", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ph_Type1or3_tags_2, + sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2) + /sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ph_Type1or3_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2) + /sizeof(asn_DEF_ASN_RRC_ph_Type1or3_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ph_Type1or3_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ph_Type1or3_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PH_UplinkCarrierSCG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PH_UplinkCarrierSCG, ph_Type1or3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ph_Type1or3_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ph-Type1or3" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PH_UplinkCarrierSCG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ph-Type1or3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_UplinkCarrierSCG_specs_1 = { + sizeof(struct ASN_RRC_PH_UplinkCarrierSCG), + offsetof(struct ASN_RRC_PH_UplinkCarrierSCG, _asn_ctx), + asn_MAP_ASN_RRC_PH_UplinkCarrierSCG_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_ASN_RRC_PH_UplinkCarrierSCG = { + "PH-UplinkCarrierSCG", + "PH-UplinkCarrierSCG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1, + sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1) + /sizeof(asn_DEF_ASN_RRC_PH_UplinkCarrierSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PH_UplinkCarrierSCG_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PH_UplinkCarrierSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.h b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.h new file mode 100644 index 0000000..8330478 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PH-UplinkCarrierSCG.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PH_UplinkCarrierSCG_H_ +#define _ASN_RRC_PH_UplinkCarrierSCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PH_UplinkCarrierSCG__ph_Type1or3 { + ASN_RRC_PH_UplinkCarrierSCG__ph_Type1or3_type1 = 0, + ASN_RRC_PH_UplinkCarrierSCG__ph_Type1or3_type3 = 1 +} e_ASN_RRC_PH_UplinkCarrierSCG__ph_Type1or3; + +/* ASN_RRC_PH-UplinkCarrierSCG */ +typedef struct ASN_RRC_PH_UplinkCarrierSCG { + long ph_Type1or3; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PH_UplinkCarrierSCG_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ph_Type1or3_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PH_UplinkCarrierSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PH_UplinkCarrierSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PH_UplinkCarrierSCG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PH_UplinkCarrierSCG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PHR-Config.c b/src/asn/rrc/ASN_RRC_PHR-Config.c new file mode 100644 index 0000000..bdcc202 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PHR-Config.c @@ -0,0 +1,322 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PHR-Config.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 asn_per_constraints_t asn_PER_type_ASN_RRC_phr_PeriodicTimer_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_phr_ProhibitTimer_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_phr_Tx_PowerFactorChange_constr_20 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_type_ASN_RRC_phr_ModeOtherCG_constr_28 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_ASN_RRC_phr_PeriodicTimer_value2enum_2[] = { + { 0, 4, "sf10" }, + { 1, 4, "sf20" }, + { 2, 4, "sf50" }, + { 3, 5, "sf100" }, + { 4, 5, "sf200" }, + { 5, 5, "sf500" }, + { 6, 6, "sf1000" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_phr_PeriodicTimer_enum2value_2[] = { + 7, /* infinity(7) */ + 0, /* sf10(0) */ + 3, /* sf100(3) */ + 6, /* sf1000(6) */ + 1, /* sf20(1) */ + 4, /* sf200(4) */ + 2, /* sf50(2) */ + 5 /* sf500(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_phr_PeriodicTimer_specs_2 = { + asn_MAP_ASN_RRC_phr_PeriodicTimer_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_phr_PeriodicTimer_enum2value_2, /* 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_ASN_RRC_phr_PeriodicTimer_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_ASN_RRC_phr_PeriodicTimer_2 = { + "phr-PeriodicTimer", + "phr-PeriodicTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2, + sizeof(asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2) + /sizeof(asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2) + /sizeof(asn_DEF_ASN_RRC_phr_PeriodicTimer_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_phr_PeriodicTimer_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_phr_PeriodicTimer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_phr_ProhibitTimer_value2enum_11[] = { + { 0, 3, "sf0" }, + { 1, 4, "sf10" }, + { 2, 4, "sf20" }, + { 3, 4, "sf50" }, + { 4, 5, "sf100" }, + { 5, 5, "sf200" }, + { 6, 5, "sf500" }, + { 7, 6, "sf1000" } +}; +static const unsigned int asn_MAP_ASN_RRC_phr_ProhibitTimer_enum2value_11[] = { + 0, /* sf0(0) */ + 1, /* sf10(1) */ + 4, /* sf100(4) */ + 7, /* sf1000(7) */ + 2, /* sf20(2) */ + 5, /* sf200(5) */ + 3, /* sf50(3) */ + 6 /* sf500(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_phr_ProhibitTimer_specs_11 = { + asn_MAP_ASN_RRC_phr_ProhibitTimer_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_phr_ProhibitTimer_enum2value_11, /* 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_ASN_RRC_phr_ProhibitTimer_tags_11[] = { + (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_ASN_RRC_phr_ProhibitTimer_11 = { + "phr-ProhibitTimer", + "phr-ProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11, + sizeof(asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11) + /sizeof(asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11) + /sizeof(asn_DEF_ASN_RRC_phr_ProhibitTimer_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_phr_ProhibitTimer_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_phr_ProhibitTimer_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_phr_Tx_PowerFactorChange_value2enum_20[] = { + { 0, 3, "dB1" }, + { 1, 3, "dB3" }, + { 2, 3, "dB6" }, + { 3, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_phr_Tx_PowerFactorChange_enum2value_20[] = { + 0, /* dB1(0) */ + 1, /* dB3(1) */ + 2, /* dB6(2) */ + 3 /* infinity(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_phr_Tx_PowerFactorChange_specs_20 = { + asn_MAP_ASN_RRC_phr_Tx_PowerFactorChange_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_phr_Tx_PowerFactorChange_enum2value_20, /* 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_ASN_RRC_phr_Tx_PowerFactorChange_tags_20[] = { + (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_ASN_RRC_phr_Tx_PowerFactorChange_20 = { + "phr-Tx-PowerFactorChange", + "phr-Tx-PowerFactorChange", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20, + sizeof(asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20) + /sizeof(asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20) + /sizeof(asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_phr_Tx_PowerFactorChange_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_phr_Tx_PowerFactorChange_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_phr_ModeOtherCG_value2enum_28[] = { + { 0, 4, "real" }, + { 1, 7, "virtual" } +}; +static const unsigned int asn_MAP_ASN_RRC_phr_ModeOtherCG_enum2value_28[] = { + 0, /* real(0) */ + 1 /* virtual(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_phr_ModeOtherCG_specs_28 = { + asn_MAP_ASN_RRC_phr_ModeOtherCG_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_phr_ModeOtherCG_enum2value_28, /* 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_ASN_RRC_phr_ModeOtherCG_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phr_ModeOtherCG_28 = { + "phr-ModeOtherCG", + "phr-ModeOtherCG", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28, + sizeof(asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28) + /sizeof(asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28) + /sizeof(asn_DEF_ASN_RRC_phr_ModeOtherCG_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_phr_ModeOtherCG_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_phr_ModeOtherCG_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PHR_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, phr_PeriodicTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_phr_PeriodicTimer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-PeriodicTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, phr_ProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_phr_ProhibitTimer_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-ProhibitTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, phr_Tx_PowerFactorChange), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-Tx-PowerFactorChange" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, multiplePHR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiplePHR" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, dummy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, phr_Type2OtherCell), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-Type2OtherCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PHR_Config, phr_ModeOtherCG), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_phr_ModeOtherCG_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-ModeOtherCG" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PHR_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PHR_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* phr-PeriodicTimer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phr-ProhibitTimer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* phr-Tx-PowerFactorChange */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* multiplePHR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* phr-Type2OtherCell */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* phr-ModeOtherCG */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PHR_Config_specs_1 = { + sizeof(struct ASN_RRC_PHR_Config), + offsetof(struct ASN_RRC_PHR_Config, _asn_ctx), + asn_MAP_ASN_RRC_PHR_Config_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PHR_Config = { + "PHR-Config", + "PHR-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PHR_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PHR_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PHR_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PHR_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PHR_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PHR_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PHR_Config_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_PHR_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PHR-Config.h b/src/asn/rrc/ASN_RRC_PHR-Config.h new file mode 100644 index 0000000..6fb3d7f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PHR-Config.h @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PHR_Config_H_ +#define _ASN_RRC_PHR_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PHR_Config__phr_PeriodicTimer { + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf10 = 0, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf20 = 1, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf50 = 2, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf100 = 3, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf200 = 4, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf500 = 5, + ASN_RRC_PHR_Config__phr_PeriodicTimer_sf1000 = 6, + ASN_RRC_PHR_Config__phr_PeriodicTimer_infinity = 7 +} e_ASN_RRC_PHR_Config__phr_PeriodicTimer; +typedef enum ASN_RRC_PHR_Config__phr_ProhibitTimer { + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf0 = 0, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf10 = 1, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf20 = 2, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf50 = 3, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf100 = 4, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf200 = 5, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf500 = 6, + ASN_RRC_PHR_Config__phr_ProhibitTimer_sf1000 = 7 +} e_ASN_RRC_PHR_Config__phr_ProhibitTimer; +typedef enum ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange { + ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange_dB1 = 0, + ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange_dB3 = 1, + ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange_dB6 = 2, + ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange_infinity = 3 +} e_ASN_RRC_PHR_Config__phr_Tx_PowerFactorChange; +typedef enum ASN_RRC_PHR_Config__phr_ModeOtherCG { + ASN_RRC_PHR_Config__phr_ModeOtherCG_real = 0, + ASN_RRC_PHR_Config__phr_ModeOtherCG_virtual = 1 +} e_ASN_RRC_PHR_Config__phr_ModeOtherCG; + +/* ASN_RRC_PHR-Config */ +typedef struct ASN_RRC_PHR_Config { + long phr_PeriodicTimer; + long phr_ProhibitTimer; + long phr_Tx_PowerFactorChange; + BOOLEAN_t multiplePHR; + BOOLEAN_t dummy; + BOOLEAN_t phr_Type2OtherCell; + long phr_ModeOtherCG; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PHR_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phr_PeriodicTimer_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phr_ProhibitTimer_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phr_Tx_PowerFactorChange_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_phr_ModeOtherCG_28; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PHR_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PHR_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PHR_Config_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PHR_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.c b/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.c new file mode 100644 index 0000000..62192c7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-Identity-EUTRA-5GC.h" + +#include "ASN_RRC_PLMN-Identity.h" +static int +memb_ASN_RRC_plmn_index_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 <= 12)) { + /* Constraint 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_ASN_RRC_plmn_index_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_Identity_EUTRA_5GC_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_ASN_RRC_PLMN_Identity_EUTRA_5GC_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PLMN_Identity_EUTRA_5GC, choice.plmn_Identity_EUTRA_5GC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity-EUTRA-5GC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_Identity_EUTRA_5GC, choice.plmn_index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_plmn_index_constr_3, memb_ASN_RRC_plmn_index_constraint_1 }, + 0, 0, /* No default value */ + "plmn-index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PLMN_Identity_EUTRA_5GC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Identity-EUTRA-5GC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* plmn-index */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PLMN_Identity_EUTRA_5GC_specs_1 = { + sizeof(struct ASN_RRC_PLMN_Identity_EUTRA_5GC), + offsetof(struct ASN_RRC_PLMN_Identity_EUTRA_5GC, _asn_ctx), + offsetof(struct ASN_RRC_PLMN_Identity_EUTRA_5GC, present), + sizeof(((struct ASN_RRC_PLMN_Identity_EUTRA_5GC *)0)->present), + asn_MAP_ASN_RRC_PLMN_Identity_EUTRA_5GC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_Identity_EUTRA_5GC = { + "PLMN-Identity-EUTRA-5GC", + "PLMN-Identity-EUTRA-5GC", + &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_ASN_RRC_PLMN_Identity_EUTRA_5GC_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_PLMN_Identity_EUTRA_5GC_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PLMN_Identity_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.h b/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.h new file mode 100644 index 0000000..3cf1243 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-Identity-EUTRA-5GC.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_Identity_EUTRA_5GC_H_ +#define _ASN_RRC_PLMN_Identity_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PLMN_Identity_EUTRA_5GC_PR { + ASN_RRC_PLMN_Identity_EUTRA_5GC_PR_NOTHING, /* No components present */ + ASN_RRC_PLMN_Identity_EUTRA_5GC_PR_plmn_Identity_EUTRA_5GC, + ASN_RRC_PLMN_Identity_EUTRA_5GC_PR_plmn_index +} ASN_RRC_PLMN_Identity_EUTRA_5GC_PR; + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; + +/* ASN_RRC_PLMN-Identity-EUTRA-5GC */ +typedef struct ASN_RRC_PLMN_Identity_EUTRA_5GC { + ASN_RRC_PLMN_Identity_EUTRA_5GC_PR present; + union ASN_RRC_PLMN_Identity_EUTRA_5GC_u { + struct ASN_RRC_PLMN_Identity *plmn_Identity_EUTRA_5GC; + long plmn_index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_Identity_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_Identity_EUTRA_5GC; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PLMN_Identity_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_Identity_EUTRA_5GC_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_Identity_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_Identity_EUTRA_5GC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-Identity.c b/src/asn/rrc/ASN_RRC_PLMN-Identity.c new file mode 100644 index 0000000..5e04b47 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-Identity.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-Identity.h" + +#include "ASN_RRC_MCC.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_Identity_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PLMN_Identity, mcc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcc" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_Identity, mnc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MNC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mnc" + }, +}; +static const int asn_MAP_ASN_RRC_PLMN_Identity_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PLMN_Identity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mcc */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mnc */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_Identity_specs_1 = { + sizeof(struct ASN_RRC_PLMN_Identity), + offsetof(struct ASN_RRC_PLMN_Identity, _asn_ctx), + asn_MAP_ASN_RRC_PLMN_Identity_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PLMN_Identity_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_Identity = { + "PLMN-Identity", + "PLMN-Identity", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PLMN_Identity_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_Identity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_Identity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PLMN_Identity_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PLMN_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-Identity.h b/src/asn/rrc/ASN_RRC_PLMN-Identity.h new file mode 100644 index 0000000..733011e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_Identity_H_ +#define _ASN_RRC_PLMN_Identity_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MNC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MCC; + +/* ASN_RRC_PLMN-Identity */ +typedef struct ASN_RRC_PLMN_Identity { + struct ASN_RRC_MCC *mcc; /* OPTIONAL */ + ASN_RRC_MNC_t mnc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_Identity; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_Identity_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.c b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.c new file mode 100644 index 0000000..39f4b89 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-IdentityInfo.h" + +#include "ASN_RRC_PLMN-Identity.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_plmn_IdentityList_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 <= 12)) { + /* 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_ASN_RRC_plmn_IdentityList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_cellReservedForOperatorUse_constr_7 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_ASN_RRC_plmn_IdentityList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_plmn_IdentityList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_plmn_IdentityList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_plmn_IdentityList_specs_2 = { + sizeof(struct ASN_RRC_PLMN_IdentityInfo__plmn_IdentityList), + offsetof(struct ASN_RRC_PLMN_IdentityInfo__plmn_IdentityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_plmn_IdentityList_2 = { + "plmn-IdentityList", + "plmn-IdentityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_plmn_IdentityList_tags_2, + sizeof(asn_DEF_ASN_RRC_plmn_IdentityList_tags_2) + /sizeof(asn_DEF_ASN_RRC_plmn_IdentityList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_plmn_IdentityList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_plmn_IdentityList_tags_2) + /sizeof(asn_DEF_ASN_RRC_plmn_IdentityList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_plmn_IdentityList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_plmn_IdentityList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_plmn_IdentityList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cellReservedForOperatorUse_value2enum_7[] = { + { 0, 8, "reserved" }, + { 1, 11, "notReserved" } +}; +static const unsigned int asn_MAP_ASN_RRC_cellReservedForOperatorUse_enum2value_7[] = { + 1, /* notReserved(1) */ + 0 /* reserved(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cellReservedForOperatorUse_specs_7 = { + asn_MAP_ASN_RRC_cellReservedForOperatorUse_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cellReservedForOperatorUse_enum2value_7, /* 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_ASN_RRC_cellReservedForOperatorUse_tags_7[] = { + (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_ASN_RRC_cellReservedForOperatorUse_7 = { + "cellReservedForOperatorUse", + "cellReservedForOperatorUse", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7, + sizeof(asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7) + /sizeof(asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7) + /sizeof(asn_DEF_ASN_RRC_cellReservedForOperatorUse_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cellReservedForOperatorUse_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cellReservedForOperatorUse_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_IdentityInfo, plmn_IdentityList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_plmn_IdentityList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_plmn_IdentityList_constr_2, memb_ASN_RRC_plmn_IdentityList_constraint_1 }, + 0, 0, /* No default value */ + "plmn-IdentityList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PLMN_IdentityInfo, trackingAreaCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PLMN_IdentityInfo, ranac), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranac" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_IdentityInfo, cellIdentity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_IdentityInfo, cellReservedForOperatorUse), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cellReservedForOperatorUse_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReservedForOperatorUse" + }, +}; +static const int asn_MAP_ASN_RRC_PLMN_IdentityInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PLMN_IdentityInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* trackingAreaCode */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranac */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* cellReservedForOperatorUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityInfo_specs_1 = { + sizeof(struct ASN_RRC_PLMN_IdentityInfo), + offsetof(struct ASN_RRC_PLMN_IdentityInfo, _asn_ctx), + asn_MAP_ASN_RRC_PLMN_IdentityInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PLMN_IdentityInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityInfo = { + "PLMN-IdentityInfo", + "PLMN-IdentityInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PLMN_IdentityInfo_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_PLMN_IdentityInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.h b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.h new file mode 100644 index 0000000..258ead3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfo.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_IdentityInfo_H_ +#define _ASN_RRC_PLMN_IdentityInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TrackingAreaCode.h" +#include "ASN_RRC_RAN-AreaCode.h" +#include "ASN_RRC_CellIdentity.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PLMN_IdentityInfo__cellReservedForOperatorUse { + ASN_RRC_PLMN_IdentityInfo__cellReservedForOperatorUse_reserved = 0, + ASN_RRC_PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved = 1 +} e_ASN_RRC_PLMN_IdentityInfo__cellReservedForOperatorUse; + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; + +/* ASN_RRC_PLMN-IdentityInfo */ +typedef struct ASN_RRC_PLMN_IdentityInfo { + struct ASN_RRC_PLMN_IdentityInfo__plmn_IdentityList { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_Identity) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } plmn_IdentityList; + ASN_RRC_TrackingAreaCode_t *trackingAreaCode; /* OPTIONAL */ + ASN_RRC_RAN_AreaCode_t *ranac; /* OPTIONAL */ + ASN_RRC_CellIdentity_t cellIdentity; + long cellReservedForOperatorUse; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_IdentityInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellReservedForOperatorUse_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_IdentityInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.c b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.c new file mode 100644 index 0000000..bcaa285 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-IdentityInfoList.h" + +#include "ASN_RRC_PLMN-IdentityInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityInfoList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PLMN_IdentityInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityInfoList_specs_1 = { + sizeof(struct ASN_RRC_PLMN_IdentityInfoList), + offsetof(struct ASN_RRC_PLMN_IdentityInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityInfoList = { + "PLMN-IdentityInfoList", + "PLMN-IdentityInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PLMN_IdentityInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PLMN_IdentityInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PLMN_IdentityInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.h b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.h new file mode 100644 index 0000000..8ef709b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_IdentityInfoList_H_ +#define _ASN_RRC_PLMN_IdentityInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_IdentityInfo; + +/* ASN_RRC_PLMN-IdentityInfoList */ +typedef struct ASN_RRC_PLMN_IdentityInfoList { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_IdentityInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_IdentityInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_IdentityInfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.c b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.c new file mode 100644 index 0000000..ed3ded8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h" + +#include "ASN_RRC_PLMN-Identity-EUTRA-5GC.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_PLMN_Identity_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_specs_1 = { + sizeof(struct ASN_RRC_PLMN_IdentityList_EUTRA_5GC), + offsetof(struct ASN_RRC_PLMN_IdentityList_EUTRA_5GC, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC = { + "PLMN-IdentityList-EUTRA-5GC", + "PLMN-IdentityList-EUTRA-5GC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h new file mode 100644 index 0000000..460ff00 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-5GC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_IdentityList_EUTRA_5GC_H_ +#define _ASN_RRC_PLMN_IdentityList_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity_EUTRA_5GC; + +/* ASN_RRC_PLMN-IdentityList-EUTRA-5GC */ +typedef struct ASN_RRC_PLMN_IdentityList_EUTRA_5GC { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_Identity_EUTRA_5GC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_IdentityList_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_5GC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_IdentityList_EUTRA_5GC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.c b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.c new file mode 100644 index 0000000..0556ce6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h" + +#include "ASN_RRC_PLMN-Identity.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_specs_1 = { + sizeof(struct ASN_RRC_PLMN_IdentityList_EUTRA_EPC), + offsetof(struct ASN_RRC_PLMN_IdentityList_EUTRA_EPC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC = { + "PLMN-IdentityList-EUTRA-EPC", + "PLMN-IdentityList-EUTRA-EPC", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h new file mode 100644 index 0000000..8d24eec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-IdentityList-EUTRA-EPC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_IdentityList_EUTRA_EPC_H_ +#define _ASN_RRC_PLMN_IdentityList_EUTRA_EPC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; + +/* ASN_RRC_PLMN-IdentityList-EUTRA-EPC */ +typedef struct ASN_RRC_PLMN_IdentityList_EUTRA_EPC { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_Identity) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_IdentityList_EUTRA_EPC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_IdentityList_EUTRA_EPC; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_IdentityList_EUTRA_EPC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_IdentityList_EUTRA_EPC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.c b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.c new file mode 100644 index 0000000..c294289 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-RAN-AreaCell.h" + +#include "ASN_RRC_PLMN-Identity.h" +static int +memb_ASN_RRC_ran_AreaCells_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_ASN_RRC_ran_AreaCells_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_ASN_RRC_ran_AreaCells_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_ASN_RRC_ran_AreaCells_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ran_AreaCells_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ran_AreaCells_specs_3 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaCell__ran_AreaCells), + offsetof(struct ASN_RRC_PLMN_RAN_AreaCell__ran_AreaCells, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ran_AreaCells_3 = { + "ran-AreaCells", + "ran-AreaCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ran_AreaCells_tags_3, + sizeof(asn_DEF_ASN_RRC_ran_AreaCells_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_AreaCells_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ran_AreaCells_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ran_AreaCells_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_AreaCells_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ran_AreaCells_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ran_AreaCells_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ran_AreaCells_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaCell_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PLMN_RAN_AreaCell, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_RAN_AreaCell, ran_AreaCells), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ran_AreaCells_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_ran_AreaCells_constr_3, memb_ASN_RRC_ran_AreaCells_constraint_1 }, + 0, 0, /* No default value */ + "ran-AreaCells" + }, +}; +static const int asn_MAP_ASN_RRC_PLMN_RAN_AreaCell_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PLMN_RAN_AreaCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-AreaCells */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaCell_specs_1 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaCell), + offsetof(struct ASN_RRC_PLMN_RAN_AreaCell, _asn_ctx), + asn_MAP_ASN_RRC_PLMN_RAN_AreaCell_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PLMN_RAN_AreaCell_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCell = { + "PLMN-RAN-AreaCell", + "PLMN-RAN-AreaCell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PLMN_RAN_AreaCell_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PLMN_RAN_AreaCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.h b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.h new file mode 100644 index 0000000..c1124ef --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCell.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_RAN_AreaCell_H_ +#define _ASN_RRC_PLMN_RAN_AreaCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CellIdentity.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; + +/* ASN_RRC_PLMN-RAN-AreaCell */ +typedef struct ASN_RRC_PLMN_RAN_AreaCell { + struct ASN_RRC_PLMN_Identity *plmn_Identity; /* OPTIONAL */ + struct ASN_RRC_PLMN_RAN_AreaCell__ran_AreaCells { + A_SEQUENCE_OF(ASN_RRC_CellIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ran_AreaCells; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_RAN_AreaCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_RAN_AreaCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.c b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.c new file mode 100644 index 0000000..4423c81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-RAN-AreaCellList.h" + +#include "ASN_RRC_PLMN-RAN-AreaCell.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_RAN_AreaCellList_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_ASN_RRC_PLMN_RAN_AreaCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PLMN_RAN_AreaCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaCellList_specs_1 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaCellList), + offsetof(struct ASN_RRC_PLMN_RAN_AreaCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList = { + "PLMN-RAN-AreaCellList", + "PLMN-RAN-AreaCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PLMN_RAN_AreaCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PLMN_RAN_AreaCellList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PLMN_RAN_AreaCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.h b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.h new file mode 100644 index 0000000..3c2514e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaCellList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_RAN_AreaCellList_H_ +#define _ASN_RRC_PLMN_RAN_AreaCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_RAN_AreaCell; + +/* ASN_RRC_PLMN-RAN-AreaCellList */ +typedef struct ASN_RRC_PLMN_RAN_AreaCellList { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_RAN_AreaCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_RAN_AreaCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_RAN_AreaCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_RAN_AreaCellList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.c b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.c new file mode 100644 index 0000000..e7b9b0a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-RAN-AreaConfig.h" + +#include "ASN_RRC_PLMN-Identity.h" +#include "ASN_RRC_RAN-AreaConfig.h" +static int +memb_ASN_RRC_ran_Area_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 <= 16)) { + /* 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_ASN_RRC_ran_Area_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_ran_Area_constr_3 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_ASN_RRC_ran_Area_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RAN_AreaConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ran_Area_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ran_Area_specs_3 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaConfig__ran_Area), + offsetof(struct ASN_RRC_PLMN_RAN_AreaConfig__ran_Area, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ran_Area_3 = { + "ran-Area", + "ran-Area", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ran_Area_tags_3, + sizeof(asn_DEF_ASN_RRC_ran_Area_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_Area_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ran_Area_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ran_Area_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_Area_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ran_Area_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ran_Area_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ran_Area_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PLMN_RAN_AreaConfig, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PLMN_RAN_AreaConfig, ran_Area), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ran_Area_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_ran_Area_constr_3, memb_ASN_RRC_ran_Area_constraint_1 }, + 0, 0, /* No default value */ + "ran-Area" + }, +}; +static const int asn_MAP_ASN_RRC_PLMN_RAN_AreaConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PLMN_RAN_AreaConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-Area */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaConfig_specs_1 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaConfig), + offsetof(struct ASN_RRC_PLMN_RAN_AreaConfig, _asn_ctx), + asn_MAP_ASN_RRC_PLMN_RAN_AreaConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PLMN_RAN_AreaConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig = { + "PLMN-RAN-AreaConfig", + "PLMN-RAN-AreaConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PLMN_RAN_AreaConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PLMN_RAN_AreaConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.h b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.h new file mode 100644 index 0000000..94d7968 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfig.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_RAN_AreaConfig_H_ +#define _ASN_RRC_PLMN_RAN_AreaConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; +struct ASN_RRC_RAN_AreaConfig; + +/* ASN_RRC_PLMN-RAN-AreaConfig */ +typedef struct ASN_RRC_PLMN_RAN_AreaConfig { + struct ASN_RRC_PLMN_Identity *plmn_Identity; /* OPTIONAL */ + struct ASN_RRC_PLMN_RAN_AreaConfig__ran_Area { + A_SEQUENCE_OF(struct ASN_RRC_RAN_AreaConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ran_Area; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_RAN_AreaConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_RAN_AreaConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.c b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.c new file mode 100644 index 0000000..35986c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PLMN-RAN-AreaConfigList.h" + +#include "ASN_RRC_PLMN-RAN-AreaConfig.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_RAN_AreaConfigList_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_ASN_RRC_PLMN_RAN_AreaConfigList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PLMN_RAN_AreaConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaConfigList_specs_1 = { + sizeof(struct ASN_RRC_PLMN_RAN_AreaConfigList), + offsetof(struct ASN_RRC_PLMN_RAN_AreaConfigList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList = { + "PLMN-RAN-AreaConfigList", + "PLMN-RAN-AreaConfigList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1, + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PLMN_RAN_AreaConfigList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PLMN_RAN_AreaConfigList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PLMN_RAN_AreaConfigList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.h b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.h new file mode 100644 index 0000000..3aa9507 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PLMN-RAN-AreaConfigList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PLMN_RAN_AreaConfigList_H_ +#define _ASN_RRC_PLMN_RAN_AreaConfigList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_RAN_AreaConfig; + +/* ASN_RRC_PLMN-RAN-AreaConfigList */ +typedef struct ASN_RRC_PLMN_RAN_AreaConfigList { + A_SEQUENCE_OF(struct ASN_RRC_PLMN_RAN_AreaConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PLMN_RAN_AreaConfigList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PLMN_RAN_AreaConfigList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PLMN_RAN_AreaConfigList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PLMN_RAN_AreaConfigList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PLMN_RAN_AreaConfigList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.c b/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.c new file mode 100644 index 0000000..24d371c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PRACH-ResourceDedicatedBFR.h" + +#include "ASN_RRC_BFR-SSB-Resource.h" +#include "ASN_RRC_BFR-CSIRS-Resource.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PRACH_ResourceDedicatedBFR_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_ASN_RRC_PRACH_ResourceDedicatedBFR_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PRACH_ResourceDedicatedBFR, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BFR_SSB_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PRACH_ResourceDedicatedBFR, choice.csi_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BFR_CSIRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PRACH_ResourceDedicatedBFR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PRACH_ResourceDedicatedBFR_specs_1 = { + sizeof(struct ASN_RRC_PRACH_ResourceDedicatedBFR), + offsetof(struct ASN_RRC_PRACH_ResourceDedicatedBFR, _asn_ctx), + offsetof(struct ASN_RRC_PRACH_ResourceDedicatedBFR, present), + sizeof(((struct ASN_RRC_PRACH_ResourceDedicatedBFR *)0)->present), + asn_MAP_ASN_RRC_PRACH_ResourceDedicatedBFR_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PRACH_ResourceDedicatedBFR = { + "PRACH-ResourceDedicatedBFR", + "PRACH-ResourceDedicatedBFR", + &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_ASN_RRC_PRACH_ResourceDedicatedBFR_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_PRACH_ResourceDedicatedBFR_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PRACH_ResourceDedicatedBFR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.h b/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.h new file mode 100644 index 0000000..c88d396 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PRACH-ResourceDedicatedBFR.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PRACH_ResourceDedicatedBFR_H_ +#define _ASN_RRC_PRACH_ResourceDedicatedBFR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PRACH_ResourceDedicatedBFR_PR { + ASN_RRC_PRACH_ResourceDedicatedBFR_PR_NOTHING, /* No components present */ + ASN_RRC_PRACH_ResourceDedicatedBFR_PR_ssb, + ASN_RRC_PRACH_ResourceDedicatedBFR_PR_csi_RS +} ASN_RRC_PRACH_ResourceDedicatedBFR_PR; + +/* Forward declarations */ +struct ASN_RRC_BFR_SSB_Resource; +struct ASN_RRC_BFR_CSIRS_Resource; + +/* ASN_RRC_PRACH-ResourceDedicatedBFR */ +typedef struct ASN_RRC_PRACH_ResourceDedicatedBFR { + ASN_RRC_PRACH_ResourceDedicatedBFR_PR present; + union ASN_RRC_PRACH_ResourceDedicatedBFR_u { + struct ASN_RRC_BFR_SSB_Resource *ssb; + struct ASN_RRC_BFR_CSIRS_Resource *csi_RS; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PRACH_ResourceDedicatedBFR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PRACH_ResourceDedicatedBFR; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PRACH_ResourceDedicatedBFR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PRACH_ResourceDedicatedBFR_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PRACH_ResourceDedicatedBFR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PRACH_ResourceDedicatedBFR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PRB-Id.c b/src/asn/rrc/ASN_RRC_PRB-Id.c new file mode 100644 index 0000000..5811a93 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PRB-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PRB-Id.h" + +int +ASN_RRC_PRB_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 <= 274)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_PRB_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 274 } /* (0..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PRB_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PRB_Id = { + "PRB-Id", + "PRB-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PRB_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_PRB_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PRB_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PRB_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PRB_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PRB_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PRB_Id_constr_1, ASN_RRC_PRB_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PRB-Id.h b/src/asn/rrc/ASN_RRC_PRB-Id.h new file mode 100644 index 0000000..2012913 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PRB-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PRB_Id_H_ +#define _ASN_RRC_PRB_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PRB-Id */ +typedef long ASN_RRC_PRB_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PRB_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PRB_Id; +asn_struct_free_f ASN_RRC_PRB_Id_free; +asn_struct_print_f ASN_RRC_PRB_Id_print; +asn_constr_check_f ASN_RRC_PRB_Id_constraint; +ber_type_decoder_f ASN_RRC_PRB_Id_decode_ber; +der_type_encoder_f ASN_RRC_PRB_Id_encode_der; +xer_type_decoder_f ASN_RRC_PRB_Id_decode_xer; +xer_type_encoder_f ASN_RRC_PRB_Id_encode_xer; +per_type_decoder_f ASN_RRC_PRB_Id_decode_uper; +per_type_encoder_f ASN_RRC_PRB_Id_encode_uper; +per_type_decoder_f ASN_RRC_PRB_Id_decode_aper; +per_type_encoder_f ASN_RRC_PRB_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PRB_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.c b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.c new file mode 100644 index 0000000..668b005 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.c @@ -0,0 +1,240 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PTRS-DensityRecommendationDL.h" + +static int +memb_ASN_RRC_frequencyDensity1_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_frequencyDensity2_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity1_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity2_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity3_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 <= 29)) { + /* Constraint 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_ASN_RRC_frequencyDensity1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_frequencyDensity2_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity1_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity2_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity3_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DensityRecommendationDL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, frequencyDensity1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity1_constr_2, memb_ASN_RRC_frequencyDensity1_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, frequencyDensity2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity2_constr_3, memb_ASN_RRC_frequencyDensity2_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, timeDensity1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity1_constr_4, memb_ASN_RRC_timeDensity1_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, timeDensity2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity2_constr_5, memb_ASN_RRC_timeDensity2_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, timeDensity3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity3_constr_6, memb_ASN_RRC_timeDensity3_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity3" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PTRS_DensityRecommendationDL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDensity1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyDensity2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeDensity1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeDensity2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* timeDensity3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DensityRecommendationDL_specs_1 = { + sizeof(struct ASN_RRC_PTRS_DensityRecommendationDL), + offsetof(struct ASN_RRC_PTRS_DensityRecommendationDL, _asn_ctx), + asn_MAP_ASN_RRC_PTRS_DensityRecommendationDL_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL = { + "PTRS-DensityRecommendationDL", + "PTRS-DensityRecommendationDL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1, + sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PTRS_DensityRecommendationDL_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_PTRS_DensityRecommendationDL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.h b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.h new file mode 100644 index 0000000..59bf1a9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationDL.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PTRS_DensityRecommendationDL_H_ +#define _ASN_RRC_PTRS_DensityRecommendationDL_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PTRS-DensityRecommendationDL */ +typedef struct ASN_RRC_PTRS_DensityRecommendationDL { + long frequencyDensity1; + long frequencyDensity2; + long timeDensity1; + long timeDensity2; + long timeDensity3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PTRS_DensityRecommendationDL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationDL; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DensityRecommendationDL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DensityRecommendationDL_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PTRS_DensityRecommendationDL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.c b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.c new file mode 100644 index 0000000..3da9916 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.c @@ -0,0 +1,440 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PTRS-DensityRecommendationUL.h" + +static int +memb_ASN_RRC_frequencyDensity1_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_frequencyDensity2_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity1_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity2_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDensity3_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sampleDensity1_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sampleDensity2_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sampleDensity3_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sampleDensity4_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sampleDensity5_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 <= 276)) { + /* Constraint 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_ASN_RRC_frequencyDensity1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_frequencyDensity2_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity1_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity2_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity3_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sampleDensity1_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sampleDensity2_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sampleDensity3_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sampleDensity4_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sampleDensity5_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DensityRecommendationUL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, frequencyDensity1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity1_constr_2, memb_ASN_RRC_frequencyDensity1_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, frequencyDensity2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity2_constr_3, memb_ASN_RRC_frequencyDensity2_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, timeDensity1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity1_constr_4, memb_ASN_RRC_timeDensity1_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, timeDensity2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity2_constr_5, memb_ASN_RRC_timeDensity2_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, timeDensity3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity3_constr_6, memb_ASN_RRC_timeDensity3_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, sampleDensity1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity1_constr_7, memb_ASN_RRC_sampleDensity1_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, sampleDensity2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity2_constr_8, memb_ASN_RRC_sampleDensity2_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, sampleDensity3), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity3_constr_9, memb_ASN_RRC_sampleDensity3_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, sampleDensity4), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity4_constr_10, memb_ASN_RRC_sampleDensity4_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, sampleDensity5), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity5_constr_11, memb_ASN_RRC_sampleDensity5_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity5" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PTRS_DensityRecommendationUL_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDensity1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* frequencyDensity2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* timeDensity1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* timeDensity2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* timeDensity3 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sampleDensity1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sampleDensity2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sampleDensity3 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sampleDensity4 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* sampleDensity5 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DensityRecommendationUL_specs_1 = { + sizeof(struct ASN_RRC_PTRS_DensityRecommendationUL), + offsetof(struct ASN_RRC_PTRS_DensityRecommendationUL, _asn_ctx), + asn_MAP_ASN_RRC_PTRS_DensityRecommendationUL_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL = { + "PTRS-DensityRecommendationUL", + "PTRS-DensityRecommendationUL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1, + sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PTRS_DensityRecommendationUL_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_PTRS_DensityRecommendationUL_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.h b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.h new file mode 100644 index 0000000..9f3bcd5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DensityRecommendationUL.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PTRS_DensityRecommendationUL_H_ +#define _ASN_RRC_PTRS_DensityRecommendationUL_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PTRS-DensityRecommendationUL */ +typedef struct ASN_RRC_PTRS_DensityRecommendationUL { + long frequencyDensity1; + long frequencyDensity2; + long timeDensity1; + long timeDensity2; + long timeDensity3; + long sampleDensity1; + long sampleDensity2; + long sampleDensity3; + long sampleDensity4; + long sampleDensity5; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PTRS_DensityRecommendationUL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DensityRecommendationUL; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DensityRecommendationUL_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DensityRecommendationUL_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PTRS_DensityRecommendationUL_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.c b/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.c new file mode 100644 index 0000000..abc1296 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.c @@ -0,0 +1,366 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PTRS-DownlinkConfig.h" + +static int +memb_NativeInteger_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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_frequencyDensity_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 == 2)) { + /* 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 int +memb_ASN_RRC_timeDensity_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 int +memb_ASN_RRC_epre_Ratio_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_ASN_RRC_Member_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyDensity_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_timeDensity_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_resourceElementOffset_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_ASN_RRC_frequencyDensity_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_epre_Ratio_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_frequencyDensity_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_3, memb_NativeInteger_constraint_2 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyDensity_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_frequencyDensity_specs_2 = { + sizeof(struct ASN_RRC_PTRS_DownlinkConfig__frequencyDensity), + offsetof(struct ASN_RRC_PTRS_DownlinkConfig__frequencyDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyDensity_2 = { + "frequencyDensity", + "frequencyDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_frequencyDensity_tags_2, + sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyDensity_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_2) + /sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyDensity_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_frequencyDensity_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_frequencyDensity_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_timeDensity_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_5, memb_NativeInteger_constraint_4 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeDensity_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_timeDensity_specs_4 = { + sizeof(struct ASN_RRC_PTRS_DownlinkConfig__timeDensity), + offsetof(struct ASN_RRC_PTRS_DownlinkConfig__timeDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeDensity_4 = { + "timeDensity", + "timeDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_timeDensity_tags_4, + sizeof(asn_DEF_ASN_RRC_timeDensity_tags_4) + /sizeof(asn_DEF_ASN_RRC_timeDensity_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeDensity_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeDensity_tags_4) + /sizeof(asn_DEF_ASN_RRC_timeDensity_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeDensity_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_timeDensity_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_timeDensity_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceElementOffset_value2enum_7[] = { + { 0, 8, "offset01" }, + { 1, 8, "offset10" }, + { 2, 8, "offset11" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceElementOffset_enum2value_7[] = { + 0, /* offset01(0) */ + 1, /* offset10(1) */ + 2 /* offset11(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceElementOffset_specs_7 = { + asn_MAP_ASN_RRC_resourceElementOffset_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceElementOffset_enum2value_7, /* 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_ASN_RRC_resourceElementOffset_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_ASN_RRC_resourceElementOffset_7 = { + "resourceElementOffset", + "resourceElementOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceElementOffset_tags_7, + sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_7) + /sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceElementOffset_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_7) + /sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceElementOffset_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceElementOffset_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DownlinkConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PTRS_DownlinkConfig, frequencyDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_frequencyDensity_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity_constr_2, memb_ASN_RRC_frequencyDensity_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PTRS_DownlinkConfig, timeDensity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_timeDensity_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity_constr_4, memb_ASN_RRC_timeDensity_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PTRS_DownlinkConfig, epre_Ratio), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_epre_Ratio_constr_6, memb_ASN_RRC_epre_Ratio_constraint_1 }, + 0, 0, /* No default value */ + "epre-Ratio" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PTRS_DownlinkConfig, resourceElementOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceElementOffset_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceElementOffset" + }, +}; +static const int asn_MAP_ASN_RRC_PTRS_DownlinkConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PTRS_DownlinkConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDensity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeDensity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* epre-Ratio */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* resourceElementOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DownlinkConfig_specs_1 = { + sizeof(struct ASN_RRC_PTRS_DownlinkConfig), + offsetof(struct ASN_RRC_PTRS_DownlinkConfig, _asn_ctx), + asn_MAP_ASN_RRC_PTRS_DownlinkConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PTRS_DownlinkConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DownlinkConfig = { + "PTRS-DownlinkConfig", + "PTRS-DownlinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_DownlinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PTRS_DownlinkConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PTRS_DownlinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.h b/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.h new file mode 100644 index 0000000..eaf82f4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-DownlinkConfig.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PTRS_DownlinkConfig_H_ +#define _ASN_RRC_PTRS_DownlinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PTRS_DownlinkConfig__resourceElementOffset { + ASN_RRC_PTRS_DownlinkConfig__resourceElementOffset_offset01 = 0, + ASN_RRC_PTRS_DownlinkConfig__resourceElementOffset_offset10 = 1, + ASN_RRC_PTRS_DownlinkConfig__resourceElementOffset_offset11 = 2 +} e_ASN_RRC_PTRS_DownlinkConfig__resourceElementOffset; + +/* ASN_RRC_PTRS-DownlinkConfig */ +typedef struct ASN_RRC_PTRS_DownlinkConfig { + struct ASN_RRC_PTRS_DownlinkConfig__frequencyDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyDensity; + struct ASN_RRC_PTRS_DownlinkConfig__timeDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *timeDensity; + long *epre_Ratio; /* OPTIONAL */ + long *resourceElementOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PTRS_DownlinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceElementOffset_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_DownlinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_DownlinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_DownlinkConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PTRS_DownlinkConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.c b/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.c new file mode 100644 index 0000000..21ac683 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.c @@ -0,0 +1,699 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PTRS-UplinkConfig.h" + +static int +memb_NativeInteger_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_NativeInteger_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 <= 29)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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_ASN_RRC_frequencyDensity_constraint_2(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 == 2)) { + /* 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 int +memb_ASN_RRC_timeDensity_constraint_2(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 int +memb_NativeInteger_constraint_20(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 276)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_sampleDensity_constraint_19(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 == 5)) { + /* 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_memb_ASN_RRC_Member_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyDensity_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 29 } /* (0..29) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_timeDensity_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNrofPorts_constr_7 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_type_ASN_RRC_resourceElementOffset_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_ptrs_Power_constr_14 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_ASN_RRC_frequencyDensity_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDensity_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 276 } /* (1..276) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sampleDensity_constr_20 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_per_constraints_t asn_PER_type_ASN_RRC_timeDensityTransformPrecoding_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_sampleDensity_constr_20 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_ASN_RRC_frequencyDensity_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyDensity_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_frequencyDensity_specs_3 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity), + offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyDensity_3 = { + "frequencyDensity", + "frequencyDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_frequencyDensity_tags_3, + sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_3) + /sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyDensity_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_3) + /sizeof(asn_DEF_ASN_RRC_frequencyDensity_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyDensity_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_frequencyDensity_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_frequencyDensity_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_timeDensity_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_6, memb_NativeInteger_constraint_5 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeDensity_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_timeDensity_specs_5 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity), + offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeDensity_5 = { + "timeDensity", + "timeDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_timeDensity_tags_5, + sizeof(asn_DEF_ASN_RRC_timeDensity_tags_5) + /sizeof(asn_DEF_ASN_RRC_timeDensity_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeDensity_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeDensity_tags_5) + /sizeof(asn_DEF_ASN_RRC_timeDensity_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeDensity_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_timeDensity_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_timeDensity_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNrofPorts_value2enum_7[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNrofPorts_enum2value_7[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNrofPorts_specs_7 = { + asn_MAP_ASN_RRC_maxNrofPorts_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNrofPorts_enum2value_7, /* 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_ASN_RRC_maxNrofPorts_tags_7[] = { + (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_ASN_RRC_maxNrofPorts_7 = { + "maxNrofPorts", + "maxNrofPorts", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNrofPorts_tags_7, + sizeof(asn_DEF_ASN_RRC_maxNrofPorts_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNrofPorts_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNrofPorts_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNrofPorts_tags_7) + /sizeof(asn_DEF_ASN_RRC_maxNrofPorts_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNrofPorts_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNrofPorts_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceElementOffset_value2enum_10[] = { + { 0, 8, "offset01" }, + { 1, 8, "offset10" }, + { 2, 8, "offset11" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceElementOffset_enum2value_10[] = { + 0, /* offset01(0) */ + 1, /* offset10(1) */ + 2 /* offset11(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceElementOffset_specs_10 = { + asn_MAP_ASN_RRC_resourceElementOffset_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceElementOffset_enum2value_10, /* 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_ASN_RRC_resourceElementOffset_tags_10[] = { + (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_ASN_RRC_resourceElementOffset_10 = { + "resourceElementOffset", + "resourceElementOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceElementOffset_tags_10, + sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_10) + /sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceElementOffset_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_10) + /sizeof(asn_DEF_ASN_RRC_resourceElementOffset_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceElementOffset_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceElementOffset_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ptrs_Power_value2enum_14[] = { + { 0, 3, "p00" }, + { 1, 3, "p01" }, + { 2, 3, "p10" }, + { 3, 3, "p11" } +}; +static const unsigned int asn_MAP_ASN_RRC_ptrs_Power_enum2value_14[] = { + 0, /* p00(0) */ + 1, /* p01(1) */ + 2, /* p10(2) */ + 3 /* p11(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ptrs_Power_specs_14 = { + asn_MAP_ASN_RRC_ptrs_Power_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ptrs_Power_enum2value_14, /* 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_ASN_RRC_ptrs_Power_tags_14[] = { + (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_ASN_RRC_ptrs_Power_14 = { + "ptrs-Power", + "ptrs-Power", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ptrs_Power_tags_14, + sizeof(asn_DEF_ASN_RRC_ptrs_Power_tags_14) + /sizeof(asn_DEF_ASN_RRC_ptrs_Power_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ptrs_Power_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ptrs_Power_tags_14) + /sizeof(asn_DEF_ASN_RRC_ptrs_Power_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ptrs_Power_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ptrs_Power_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_transformPrecoderDisabled_2[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, frequencyDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_frequencyDensity_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyDensity_constr_3, memb_ASN_RRC_frequencyDensity_constraint_2 }, + 0, 0, /* No default value */ + "frequencyDensity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, timeDensity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_timeDensity_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDensity_constr_5, memb_ASN_RRC_timeDensity_constraint_2 }, + 0, 0, /* No default value */ + "timeDensity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, maxNrofPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNrofPorts_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNrofPorts" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, resourceElementOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceElementOffset_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceElementOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, ptrs_Power), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ptrs_Power_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-Power" + }, +}; +static const int asn_MAP_ASN_RRC_transformPrecoderDisabled_oms_2[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_transformPrecoderDisabled_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDensity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeDensity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNrofPorts */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resourceElementOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ptrs-Power */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_transformPrecoderDisabled_specs_2 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled), + offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled, _asn_ctx), + asn_MAP_ASN_RRC_transformPrecoderDisabled_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_transformPrecoderDisabled_oms_2, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoderDisabled_2 = { + "transformPrecoderDisabled", + "transformPrecoderDisabled", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2, + sizeof(asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2) + /sizeof(asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2) + /sizeof(asn_DEF_ASN_RRC_transformPrecoderDisabled_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_transformPrecoderDisabled_2, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_transformPrecoderDisabled_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sampleDensity_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sampleDensity_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sampleDensity_specs_20 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity), + offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sampleDensity_20 = { + "sampleDensity", + "sampleDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sampleDensity_tags_20, + sizeof(asn_DEF_ASN_RRC_sampleDensity_tags_20) + /sizeof(asn_DEF_ASN_RRC_sampleDensity_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sampleDensity_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sampleDensity_tags_20) + /sizeof(asn_DEF_ASN_RRC_sampleDensity_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sampleDensity_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sampleDensity_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sampleDensity_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeDensityTransformPrecoding_value2enum_22[] = { + { 0, 2, "d2" } +}; +static const unsigned int asn_MAP_ASN_RRC_timeDensityTransformPrecoding_enum2value_22[] = { + 0 /* d2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeDensityTransformPrecoding_specs_22 = { + asn_MAP_ASN_RRC_timeDensityTransformPrecoding_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_timeDensityTransformPrecoding_enum2value_22, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22[] = { + (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_ASN_RRC_timeDensityTransformPrecoding_22 = { + "timeDensityTransformPrecoding", + "timeDensityTransformPrecoding", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22, + sizeof(asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22) + /sizeof(asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22) + /sizeof(asn_DEF_ASN_RRC_timeDensityTransformPrecoding_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_timeDensityTransformPrecoding_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_timeDensityTransformPrecoding_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_transformPrecoderEnabled_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled, sampleDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_sampleDensity_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_sampleDensity_constr_20, memb_ASN_RRC_sampleDensity_constraint_19 }, + 0, 0, /* No default value */ + "sampleDensity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled, timeDensityTransformPrecoding), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_timeDensityTransformPrecoding_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDensityTransformPrecoding" + }, +}; +static const int asn_MAP_ASN_RRC_transformPrecoderEnabled_oms_19[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_transformPrecoderEnabled_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sampleDensity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeDensityTransformPrecoding */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_transformPrecoderEnabled_specs_19 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled), + offsetof(struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled, _asn_ctx), + asn_MAP_ASN_RRC_transformPrecoderEnabled_tag2el_19, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_transformPrecoderEnabled_oms_19, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoderEnabled_19 = { + "transformPrecoderEnabled", + "transformPrecoderEnabled", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19, + sizeof(asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19) + /sizeof(asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19) + /sizeof(asn_DEF_ASN_RRC_transformPrecoderEnabled_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_transformPrecoderEnabled_19, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_transformPrecoderEnabled_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_UplinkConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PTRS_UplinkConfig, transformPrecoderDisabled), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_transformPrecoderDisabled_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoderDisabled" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PTRS_UplinkConfig, transformPrecoderEnabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_transformPrecoderEnabled_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoderEnabled" + }, +}; +static const int asn_MAP_ASN_RRC_PTRS_UplinkConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PTRS_UplinkConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transformPrecoderDisabled */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* transformPrecoderEnabled */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_UplinkConfig_specs_1 = { + sizeof(struct ASN_RRC_PTRS_UplinkConfig), + offsetof(struct ASN_RRC_PTRS_UplinkConfig, _asn_ctx), + asn_MAP_ASN_RRC_PTRS_UplinkConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PTRS_UplinkConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_UplinkConfig = { + "PTRS-UplinkConfig", + "PTRS-UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PTRS_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PTRS_UplinkConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PTRS_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.h b/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.h new file mode 100644 index 0000000..a542564 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PTRS-UplinkConfig.h @@ -0,0 +1,102 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PTRS_UplinkConfig_H_ +#define _ASN_RRC_PTRS_UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts { + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts_n1 = 0, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts_n2 = 1 +} e_ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts; +typedef enum ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset { + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset01 = 0, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset10 = 1, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset11 = 2 +} e_ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset; +typedef enum ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power { + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p00 = 0, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p01 = 1, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p10 = 2, + ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p11 = 3 +} e_ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power; +typedef enum ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding { + ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding_d2 = 0 +} e_ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding; + +/* ASN_RRC_PTRS-UplinkConfig */ +typedef struct ASN_RRC_PTRS_UplinkConfig { + struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled { + struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyDensity; + struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *timeDensity; + long maxNrofPorts; + long *resourceElementOffset; /* OPTIONAL */ + long ptrs_Power; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *transformPrecoderDisabled; + struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled { + struct ASN_RRC_PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } sampleDensity; + long *timeDensityTransformPrecoding; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *transformPrecoderEnabled; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PTRS_UplinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNrofPorts_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceElementOffset_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ptrs_Power_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeDensityTransformPrecoding_22; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PTRS_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PTRS_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PTRS_UplinkConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PTRS_UplinkConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.c b/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.c new file mode 100644 index 0000000..5e97d39 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-CSI-Resource.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_CSI_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_CSI_Resource, uplinkBandwidthPartId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBandwidthPartId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_CSI_Resource, pucch_Resource), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Resource" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_CSI_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uplinkBandwidthPartId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pucch-Resource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_CSI_Resource_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_CSI_Resource), + offsetof(struct ASN_RRC_PUCCH_CSI_Resource, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_CSI_Resource_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_CSI_Resource = { + "PUCCH-CSI-Resource", + "PUCCH-CSI-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_CSI_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_CSI_Resource_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_CSI_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.h b/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.h new file mode 100644 index 0000000..0af9ab7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-CSI-Resource.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_CSI_Resource_H_ +#define _ASN_RRC_PUCCH_CSI_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include "ASN_RRC_PUCCH-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-CSI-Resource */ +typedef struct ASN_RRC_PUCCH_CSI_Resource { + ASN_RRC_BWP_Id_t uplinkBandwidthPartId; + ASN_RRC_PUCCH_ResourceId_t pucch_Resource; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_CSI_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_CSI_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_CSI_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_CSI_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_CSI_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-Config.c b/src/asn/rrc/ASN_RRC_PUCCH-Config.c new file mode 100644 index 0000000..f607215 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-Config.c @@ -0,0 +1,958 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-Config.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_PUCCH-PowerControl.h" +#include "ASN_RRC_PUCCH-ResourceSet.h" +#include "ASN_RRC_PUCCH-Resource.h" +#include "ASN_RRC_SchedulingRequestResourceConfig.h" +#include "ASN_RRC_PUCCH-SpatialRelationInfo.h" +static int +memb_NativeInteger_constraint_20(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_resourceSetToAddModList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_resourceSetToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_resourceToAddModList_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 <= 128)) { + /* 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 int +memb_ASN_RRC_resourceToReleaseList_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 <= 128)) { + /* 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 int +memb_ASN_RRC_schedulingRequestResourceToAddModList_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 <= 8)) { + /* 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 int +memb_ASN_RRC_schedulingRequestResourceToReleaseList_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 <= 8)) { + /* 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 int +memb_ASN_RRC_multi_CSI_PUCCH_ResourceList_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 <= 2)) { + /* 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 int +memb_ASN_RRC_dl_DataToUL_ACK_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 <= 8)) { + /* 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 int +memb_ASN_RRC_spatialRelationInfoToAddModList_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 <= 8)) { + /* 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 int +memb_ASN_RRC_spatialRelationInfoToReleaseList_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 <= 8)) { + /* 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_ASN_RRC_resourceSetToAddModList_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_resourceSetToReleaseList_constr_4 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_per_constraints_t asn_PER_type_ASN_RRC_resourceToAddModList_constr_6 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_per_constraints_t asn_PER_type_ASN_RRC_resourceToReleaseList_constr_8 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_per_constraints_t asn_PER_type_ASN_RRC_schedulingRequestResourceToAddModList_constr_14 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_per_constraints_t asn_PER_type_ASN_RRC_schedulingRequestResourceToReleaseList_constr_16 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_per_constraints_t asn_PER_type_ASN_RRC_multi_CSI_PUCCH_ResourceList_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_21 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_type_ASN_RRC_dl_DataToUL_ACK_constr_20 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_per_constraints_t asn_PER_type_ASN_RRC_spatialRelationInfoToAddModList_constr_22 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_per_constraints_t asn_PER_type_ASN_RRC_spatialRelationInfoToReleaseList_constr_24 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_per_constraints_t asn_PER_memb_ASN_RRC_resourceSetToAddModList_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_resourceSetToReleaseList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_resourceToAddModList_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_resourceToReleaseList_constr_8 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_per_constraints_t asn_PER_memb_ASN_RRC_schedulingRequestResourceToAddModList_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_schedulingRequestResourceToReleaseList_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_multi_CSI_PUCCH_ResourceList_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_dl_DataToUL_ACK_constr_20 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_per_constraints_t asn_PER_memb_ASN_RRC_spatialRelationInfoToAddModList_constr_22 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_per_constraints_t asn_PER_memb_ASN_RRC_spatialRelationInfoToReleaseList_constr_24 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_ASN_RRC_resourceSetToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_resourceSetToAddModList_specs_2 = { + sizeof(struct ASN_RRC_PUCCH_Config__resourceSetToAddModList), + offsetof(struct ASN_RRC_PUCCH_Config__resourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceSetToAddModList_2 = { + "resourceSetToAddModList", + "resourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_resourceSetToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceSetToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_resourceSetToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_resourceSetToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceSetToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_resourceSetToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_PUCCH_Config__resourceSetToReleaseList), + offsetof(struct ASN_RRC_PUCCH_Config__resourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceSetToReleaseList_4 = { + "resourceSetToReleaseList", + "resourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_resourceSetToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceSetToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_resourceSetToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_resourceSetToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_resourceToAddModList_specs_6 = { + sizeof(struct ASN_RRC_PUCCH_Config__resourceToAddModList), + offsetof(struct ASN_RRC_PUCCH_Config__resourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceToAddModList_6 = { + "resourceToAddModList", + "resourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_resourceToAddModList_tags_6, + sizeof(asn_DEF_ASN_RRC_resourceToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_resourceToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_resourceToAddModList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_resourceToAddModList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_resourceToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceToReleaseList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_resourceToReleaseList_specs_8 = { + sizeof(struct ASN_RRC_PUCCH_Config__resourceToReleaseList), + offsetof(struct ASN_RRC_PUCCH_Config__resourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceToReleaseList_8 = { + "resourceToReleaseList", + "resourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_resourceToReleaseList_tags_8, + sizeof(asn_DEF_ASN_RRC_resourceToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_resourceToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceToReleaseList_tags_8) + /sizeof(asn_DEF_ASN_RRC_resourceToReleaseList_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_resourceToReleaseList_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_resourceToReleaseList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_schedulingRequestResourceToAddModList_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SchedulingRequestResourceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_schedulingRequestResourceToAddModList_specs_14 = { + sizeof(struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToAddModList), + offsetof(struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_14 = { + "schedulingRequestResourceToAddModList", + "schedulingRequestResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14, + sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_schedulingRequestResourceToAddModList_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_schedulingRequestResourceToAddModList_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_schedulingRequestResourceToAddModList_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_schedulingRequestResourceToReleaseList_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SchedulingRequestResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_schedulingRequestResourceToReleaseList_specs_16 = { + sizeof(struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToReleaseList), + offsetof(struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_16 = { + "schedulingRequestResourceToReleaseList", + "schedulingRequestResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16, + sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_schedulingRequestResourceToReleaseList_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_schedulingRequestResourceToReleaseList_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_schedulingRequestResourceToReleaseList_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_multi_CSI_PUCCH_ResourceList_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_multi_CSI_PUCCH_ResourceList_specs_18 = { + sizeof(struct ASN_RRC_PUCCH_Config__multi_CSI_PUCCH_ResourceList), + offsetof(struct ASN_RRC_PUCCH_Config__multi_CSI_PUCCH_ResourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_18 = { + "multi-CSI-PUCCH-ResourceList", + "multi-CSI-PUCCH-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18, + sizeof(asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18) + /sizeof(asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18) + /sizeof(asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multi_CSI_PUCCH_ResourceList_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_multi_CSI_PUCCH_ResourceList_18, + 1, /* Single element */ + &asn_SPC_ASN_RRC_multi_CSI_PUCCH_ResourceList_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dl_DataToUL_ACK_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dl_DataToUL_ACK_specs_20 = { + sizeof(struct ASN_RRC_PUCCH_Config__dl_DataToUL_ACK), + offsetof(struct ASN_RRC_PUCCH_Config__dl_DataToUL_ACK, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_DataToUL_ACK_20 = { + "dl-DataToUL-ACK", + "dl-DataToUL-ACK", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20, + sizeof(asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20) + /sizeof(asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20) + /sizeof(asn_DEF_ASN_RRC_dl_DataToUL_ACK_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_DataToUL_ACK_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dl_DataToUL_ACK_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dl_DataToUL_ACK_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_spatialRelationInfoToAddModList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_spatialRelationInfoToAddModList_specs_22 = { + sizeof(struct ASN_RRC_PUCCH_Config__spatialRelationInfoToAddModList), + offsetof(struct ASN_RRC_PUCCH_Config__spatialRelationInfoToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_22 = { + "spatialRelationInfoToAddModList", + "spatialRelationInfoToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22, + sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22) + /sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22) + /sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_spatialRelationInfoToAddModList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_spatialRelationInfoToAddModList_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_spatialRelationInfoToAddModList_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_spatialRelationInfoToReleaseList_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_spatialRelationInfoToReleaseList_specs_24 = { + sizeof(struct ASN_RRC_PUCCH_Config__spatialRelationInfoToReleaseList), + offsetof(struct ASN_RRC_PUCCH_Config__spatialRelationInfoToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_24 = { + "spatialRelationInfoToReleaseList", + "spatialRelationInfoToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24, + sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24) + /sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24) + /sizeof(asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_spatialRelationInfoToReleaseList_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_spatialRelationInfoToReleaseList_24, + 1, /* Single element */ + &asn_SPC_ASN_RRC_spatialRelationInfoToReleaseList_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_Config_1[] = { + { ATF_POINTER, 15, offsetof(struct ASN_RRC_PUCCH_Config, resourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceSetToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceSetToAddModList_constr_2, memb_ASN_RRC_resourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "resourceSetToAddModList" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_PUCCH_Config, resourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceSetToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceSetToReleaseList_constr_4, memb_ASN_RRC_resourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "resourceSetToReleaseList" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_PUCCH_Config, resourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceToAddModList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceToAddModList_constr_6, memb_ASN_RRC_resourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "resourceToAddModList" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_PUCCH_Config, resourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceToReleaseList_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceToReleaseList_constr_8, memb_ASN_RRC_resourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "resourceToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_PUCCH_Config, format1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format1" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_PUCCH_Config, format2), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format2" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_PUCCH_Config, format3), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format3" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PUCCH_Config, format4), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format4" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PUCCH_Config, schedulingRequestResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_schedulingRequestResourceToAddModList_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_schedulingRequestResourceToAddModList_constr_14, memb_ASN_RRC_schedulingRequestResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestResourceToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUCCH_Config, schedulingRequestResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_schedulingRequestResourceToReleaseList_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_schedulingRequestResourceToReleaseList_constr_16, memb_ASN_RRC_schedulingRequestResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestResourceToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUCCH_Config, multi_CSI_PUCCH_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_multi_CSI_PUCCH_ResourceList_18, + 0, + { 0, &asn_PER_memb_ASN_RRC_multi_CSI_PUCCH_ResourceList_constr_18, memb_ASN_RRC_multi_CSI_PUCCH_ResourceList_constraint_1 }, + 0, 0, /* No default value */ + "multi-CSI-PUCCH-ResourceList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUCCH_Config, dl_DataToUL_ACK), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_ASN_RRC_dl_DataToUL_ACK_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_dl_DataToUL_ACK_constr_20, memb_ASN_RRC_dl_DataToUL_ACK_constraint_1 }, + 0, 0, /* No default value */ + "dl-DataToUL-ACK" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUCCH_Config, spatialRelationInfoToAddModList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_ASN_RRC_spatialRelationInfoToAddModList_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_spatialRelationInfoToAddModList_constr_22, memb_ASN_RRC_spatialRelationInfoToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "spatialRelationInfoToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_Config, spatialRelationInfoToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_spatialRelationInfoToReleaseList_24, + 0, + { 0, &asn_PER_memb_ASN_RRC_spatialRelationInfoToReleaseList_constr_24, memb_ASN_RRC_spatialRelationInfoToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "spatialRelationInfoToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_Config, pucch_PowerControl), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PowerControl" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* format1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* format2 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* format3 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* format4 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* schedulingRequestResourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* schedulingRequestResourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* multi-CSI-PUCCH-ResourceList */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* dl-DataToUL-ACK */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* spatialRelationInfoToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* spatialRelationInfoToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* pucch-PowerControl */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_Config_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_Config), + offsetof(struct ASN_RRC_PUCCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_Config_tag2el_1, + 15, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_Config_oms_1, /* Optional members */ + 15, 0, /* Root/Additions */ + 15, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_Config = { + "PUCCH-Config", + "PUCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_Config_1, + 15, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-Config.h b/src/asn/rrc/ASN_RRC_PUCCH-Config.h new file mode 100644 index 0000000..45b1004 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-Config.h @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_Config_H_ +#define _ASN_RRC_PUCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_PUCCH-ResourceSetId.h" +#include "ASN_RRC_PUCCH-ResourceId.h" +#include "ASN_RRC_SchedulingRequestResourceId.h" +#include +#include "ASN_RRC_PUCCH-SpatialRelationInfoId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PUCCH_FormatConfig; +struct ASN_RRC_PUCCH_PowerControl; +struct ASN_RRC_PUCCH_ResourceSet; +struct ASN_RRC_PUCCH_Resource; +struct ASN_RRC_SchedulingRequestResourceConfig; +struct ASN_RRC_PUCCH_SpatialRelationInfo; + +/* ASN_RRC_PUCCH-Config */ +typedef struct ASN_RRC_PUCCH_Config { + struct ASN_RRC_PUCCH_Config__resourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceSetToAddModList; + struct ASN_RRC_PUCCH_Config__resourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_PUCCH_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceSetToReleaseList; + struct ASN_RRC_PUCCH_Config__resourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceToAddModList; + struct ASN_RRC_PUCCH_Config__resourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_PUCCH_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceToReleaseList; + struct ASN_RRC_SetupRelease_PUCCH_FormatConfig *format1; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUCCH_FormatConfig *format2; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUCCH_FormatConfig *format3; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUCCH_FormatConfig *format4; /* OPTIONAL */ + struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SchedulingRequestResourceConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestResourceToAddModList; + struct ASN_RRC_PUCCH_Config__schedulingRequestResourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SchedulingRequestResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestResourceToReleaseList; + struct ASN_RRC_PUCCH_Config__multi_CSI_PUCCH_ResourceList { + A_SEQUENCE_OF(ASN_RRC_PUCCH_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *multi_CSI_PUCCH_ResourceList; + struct ASN_RRC_PUCCH_Config__dl_DataToUL_ACK { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dl_DataToUL_ACK; + struct ASN_RRC_PUCCH_Config__spatialRelationInfoToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_SpatialRelationInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *spatialRelationInfoToAddModList; + struct ASN_RRC_PUCCH_Config__spatialRelationInfoToReleaseList { + A_SEQUENCE_OF(ASN_RRC_PUCCH_SpatialRelationInfoId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *spatialRelationInfoToReleaseList; + struct ASN_RRC_PUCCH_PowerControl *pucch_PowerControl; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_Config_1[15]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.c b/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.c new file mode 100644 index 0000000..5a6fb52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.c @@ -0,0 +1,220 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-ConfigCommon.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_pucch_ResourceCommon_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_ASN_RRC_hoppingId_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_ASN_RRC_p0_nominal_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 >= -202 && value <= 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_type_ASN_RRC_pucch_GroupHopping_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_ASN_RRC_pucch_ResourceCommon_constr_2 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_ASN_RRC_hoppingId_constr_7 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_ASN_RRC_p0_nominal_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -202, 24 } /* (-202..24) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_GroupHopping_value2enum_3[] = { + { 0, 7, "neither" }, + { 1, 6, "enable" }, + { 2, 7, "disable" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_GroupHopping_enum2value_3[] = { + 2, /* disable(2) */ + 1, /* enable(1) */ + 0 /* neither(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_GroupHopping_specs_3 = { + asn_MAP_ASN_RRC_pucch_GroupHopping_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_GroupHopping_enum2value_3, /* 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_ASN_RRC_pucch_GroupHopping_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_ASN_RRC_pucch_GroupHopping_3 = { + "pucch-GroupHopping", + "pucch-GroupHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3, + sizeof(asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3) + /sizeof(asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3) + /sizeof(asn_DEF_ASN_RRC_pucch_GroupHopping_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_GroupHopping_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_GroupHopping_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_ConfigCommon_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_ConfigCommon, pucch_ResourceCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pucch_ResourceCommon_constr_2, memb_ASN_RRC_pucch_ResourceCommon_constraint_1 }, + 0, 0, /* No default value */ + "pucch-ResourceCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_ConfigCommon, pucch_GroupHopping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_GroupHopping_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-GroupHopping" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_ConfigCommon, hoppingId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_hoppingId_constr_7, memb_ASN_RRC_hoppingId_constraint_1 }, + 0, 0, /* No default value */ + "hoppingId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_ConfigCommon, p0_nominal), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_nominal_constr_8, memb_ASN_RRC_p0_nominal_constraint_1 }, + 0, 0, /* No default value */ + "p0-nominal" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_ConfigCommon_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-ResourceCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pucch-GroupHopping */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hoppingId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* p0-nominal */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_ConfigCommon), + offsetof(struct ASN_RRC_PUCCH_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_ConfigCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_ConfigCommon_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ConfigCommon = { + "PUCCH-ConfigCommon", + "PUCCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_ConfigCommon_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.h b/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.h new file mode 100644 index 0000000..32be236 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ConfigCommon.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_ConfigCommon_H_ +#define _ASN_RRC_PUCCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_ConfigCommon__pucch_GroupHopping { + ASN_RRC_PUCCH_ConfigCommon__pucch_GroupHopping_neither = 0, + ASN_RRC_PUCCH_ConfigCommon__pucch_GroupHopping_enable = 1, + ASN_RRC_PUCCH_ConfigCommon__pucch_GroupHopping_disable = 2 +} e_ASN_RRC_PUCCH_ConfigCommon__pucch_GroupHopping; + +/* ASN_RRC_PUCCH-ConfigCommon */ +typedef struct ASN_RRC_PUCCH_ConfigCommon { + long *pucch_ResourceCommon; /* OPTIONAL */ + long pucch_GroupHopping; + long *hoppingId; /* OPTIONAL */ + long *p0_nominal; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_GroupHopping_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_ConfigCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.c b/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.c new file mode 100644 index 0000000..da4c06f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.c @@ -0,0 +1,326 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-FormatConfig.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_interslotFrequencyHopping_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_additionalDMRS_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_nrofSlots_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_type_ASN_RRC_pi2BPSK_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_simultaneousHARQ_ACK_CSI_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_interslotFrequencyHopping_value2enum_2[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_interslotFrequencyHopping_enum2value_2[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_interslotFrequencyHopping_specs_2 = { + asn_MAP_ASN_RRC_interslotFrequencyHopping_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_interslotFrequencyHopping_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_interslotFrequencyHopping_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_ASN_RRC_interslotFrequencyHopping_2 = { + "interslotFrequencyHopping", + "interslotFrequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2, + sizeof(asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2) + /sizeof(asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2) + /sizeof(asn_DEF_ASN_RRC_interslotFrequencyHopping_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_interslotFrequencyHopping_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_interslotFrequencyHopping_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_additionalDMRS_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_additionalDMRS_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_additionalDMRS_specs_4 = { + asn_MAP_ASN_RRC_additionalDMRS_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_additionalDMRS_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_additionalDMRS_tags_4[] = { + (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_ASN_RRC_additionalDMRS_4 = { + "additionalDMRS", + "additionalDMRS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_additionalDMRS_tags_4, + sizeof(asn_DEF_ASN_RRC_additionalDMRS_tags_4) + /sizeof(asn_DEF_ASN_RRC_additionalDMRS_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_additionalDMRS_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_additionalDMRS_tags_4) + /sizeof(asn_DEF_ASN_RRC_additionalDMRS_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_additionalDMRS_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_additionalDMRS_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofSlots_value2enum_7[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofSlots_enum2value_7[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofSlots_specs_7 = { + asn_MAP_ASN_RRC_nrofSlots_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofSlots_enum2value_7, /* 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_ASN_RRC_nrofSlots_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_ASN_RRC_nrofSlots_7 = { + "nrofSlots", + "nrofSlots", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofSlots_tags_7, + sizeof(asn_DEF_ASN_RRC_nrofSlots_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofSlots_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofSlots_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofSlots_tags_7) + /sizeof(asn_DEF_ASN_RRC_nrofSlots_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofSlots_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofSlots_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pi2BPSK_value2enum_11[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_pi2BPSK_enum2value_11[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pi2BPSK_specs_11 = { + asn_MAP_ASN_RRC_pi2BPSK_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pi2BPSK_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pi2BPSK_tags_11[] = { + (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_ASN_RRC_pi2BPSK_11 = { + "pi2BPSK", + "pi2BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pi2BPSK_tags_11, + sizeof(asn_DEF_ASN_RRC_pi2BPSK_tags_11) + /sizeof(asn_DEF_ASN_RRC_pi2BPSK_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pi2BPSK_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pi2BPSK_tags_11) + /sizeof(asn_DEF_ASN_RRC_pi2BPSK_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pi2BPSK_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pi2BPSK_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_simultaneousHARQ_ACK_CSI_value2enum_13[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_simultaneousHARQ_ACK_CSI_enum2value_13[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_simultaneousHARQ_ACK_CSI_specs_13 = { + asn_MAP_ASN_RRC_simultaneousHARQ_ACK_CSI_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_simultaneousHARQ_ACK_CSI_enum2value_13, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13[] = { + (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_ASN_RRC_simultaneousHARQ_ACK_CSI_13 = { + "simultaneousHARQ-ACK-CSI", + "simultaneousHARQ-ACK-CSI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13, + sizeof(asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13) + /sizeof(asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13) + /sizeof(asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_simultaneousHARQ_ACK_CSI_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_simultaneousHARQ_ACK_CSI_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_FormatConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUCCH_FormatConfig, interslotFrequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_interslotFrequencyHopping_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interslotFrequencyHopping" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUCCH_FormatConfig, additionalDMRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_additionalDMRS_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDMRS" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUCCH_FormatConfig, maxCodeRate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_MaxCodeRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeRate" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUCCH_FormatConfig, nrofSlots), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofSlots_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSlots" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_FormatConfig, pi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pi2BPSK_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pi2BPSK" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_FormatConfig, simultaneousHARQ_ACK_CSI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousHARQ-ACK-CSI" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_FormatConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_FormatConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interslotFrequencyHopping */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* additionalDMRS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxCodeRate */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrofSlots */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pi2BPSK */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* simultaneousHARQ-ACK-CSI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_FormatConfig_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_FormatConfig), + offsetof(struct ASN_RRC_PUCCH_FormatConfig, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_FormatConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_FormatConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_FormatConfig = { + "PUCCH-FormatConfig", + "PUCCH-FormatConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_FormatConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_FormatConfig_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_FormatConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.h b/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.h new file mode 100644 index 0000000..ddf91c9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-FormatConfig.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_FormatConfig_H_ +#define _ASN_RRC_PUCCH_FormatConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_PUCCH-MaxCodeRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_FormatConfig__interslotFrequencyHopping { + ASN_RRC_PUCCH_FormatConfig__interslotFrequencyHopping_enabled = 0 +} e_ASN_RRC_PUCCH_FormatConfig__interslotFrequencyHopping; +typedef enum ASN_RRC_PUCCH_FormatConfig__additionalDMRS { + ASN_RRC_PUCCH_FormatConfig__additionalDMRS_true = 0 +} e_ASN_RRC_PUCCH_FormatConfig__additionalDMRS; +typedef enum ASN_RRC_PUCCH_FormatConfig__nrofSlots { + ASN_RRC_PUCCH_FormatConfig__nrofSlots_n2 = 0, + ASN_RRC_PUCCH_FormatConfig__nrofSlots_n4 = 1, + ASN_RRC_PUCCH_FormatConfig__nrofSlots_n8 = 2 +} e_ASN_RRC_PUCCH_FormatConfig__nrofSlots; +typedef enum ASN_RRC_PUCCH_FormatConfig__pi2BPSK { + ASN_RRC_PUCCH_FormatConfig__pi2BPSK_enabled = 0 +} e_ASN_RRC_PUCCH_FormatConfig__pi2BPSK; +typedef enum ASN_RRC_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI { + ASN_RRC_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI_true = 0 +} e_ASN_RRC_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI; + +/* ASN_RRC_PUCCH-FormatConfig */ +typedef struct ASN_RRC_PUCCH_FormatConfig { + long *interslotFrequencyHopping; /* OPTIONAL */ + long *additionalDMRS; /* OPTIONAL */ + ASN_RRC_PUCCH_MaxCodeRate_t *maxCodeRate; /* OPTIONAL */ + long *nrofSlots; /* OPTIONAL */ + long *pi2BPSK; /* OPTIONAL */ + long *simultaneousHARQ_ACK_CSI; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_FormatConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interslotFrequencyHopping_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_additionalDMRS_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofSlots_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pi2BPSK_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_simultaneousHARQ_ACK_CSI_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_FormatConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_FormatConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_FormatConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_FormatConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.c b/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.c new file mode 100644 index 0000000..821d623 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-MaxCodeRate.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_MaxCodeRate_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_PUCCH_MaxCodeRate_value2enum_1[] = { + { 0, 9, "zeroDot08" }, + { 1, 9, "zeroDot15" }, + { 2, 9, "zeroDot25" }, + { 3, 9, "zeroDot35" }, + { 4, 9, "zeroDot45" }, + { 5, 9, "zeroDot60" }, + { 6, 9, "zeroDot80" } +}; +static const unsigned int asn_MAP_ASN_RRC_PUCCH_MaxCodeRate_enum2value_1[] = { + 0, /* zeroDot08(0) */ + 1, /* zeroDot15(1) */ + 2, /* zeroDot25(2) */ + 3, /* zeroDot35(3) */ + 4, /* zeroDot45(4) */ + 5, /* zeroDot60(5) */ + 6 /* zeroDot80(6) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PUCCH_MaxCodeRate_specs_1 = { + asn_MAP_ASN_RRC_PUCCH_MaxCodeRate_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_PUCCH_MaxCodeRate_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_PUCCH_MaxCodeRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_MaxCodeRate = { + "PUCCH-MaxCodeRate", + "PUCCH-MaxCodeRate", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_MaxCodeRate_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUCCH_MaxCodeRate_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_PUCCH_MaxCodeRate_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.h b/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.h new file mode 100644 index 0000000..073ea7f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-MaxCodeRate.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_MaxCodeRate_H_ +#define _ASN_RRC_PUCCH_MaxCodeRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_MaxCodeRate { + ASN_RRC_PUCCH_MaxCodeRate_zeroDot08 = 0, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot15 = 1, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot25 = 2, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot35 = 3, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot45 = 4, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot60 = 5, + ASN_RRC_PUCCH_MaxCodeRate_zeroDot80 = 6 +} e_ASN_RRC_PUCCH_MaxCodeRate; + +/* ASN_RRC_PUCCH-MaxCodeRate */ +typedef long ASN_RRC_PUCCH_MaxCodeRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_MaxCodeRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_MaxCodeRate; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PUCCH_MaxCodeRate_specs_1; +asn_struct_free_f ASN_RRC_PUCCH_MaxCodeRate_free; +asn_struct_print_f ASN_RRC_PUCCH_MaxCodeRate_print; +asn_constr_check_f ASN_RRC_PUCCH_MaxCodeRate_constraint; +ber_type_decoder_f ASN_RRC_PUCCH_MaxCodeRate_decode_ber; +der_type_encoder_f ASN_RRC_PUCCH_MaxCodeRate_encode_der; +xer_type_decoder_f ASN_RRC_PUCCH_MaxCodeRate_decode_xer; +xer_type_encoder_f ASN_RRC_PUCCH_MaxCodeRate_encode_xer; +per_type_decoder_f ASN_RRC_PUCCH_MaxCodeRate_decode_uper; +per_type_encoder_f ASN_RRC_PUCCH_MaxCodeRate_encode_uper; +per_type_decoder_f ASN_RRC_PUCCH_MaxCodeRate_decode_aper; +per_type_encoder_f ASN_RRC_PUCCH_MaxCodeRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_MaxCodeRate_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.c b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.c new file mode 100644 index 0000000..5e248ff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-PathlossReferenceRS-Id.h" + +int +ASN_RRC_PUCCH_PathlossReferenceRS_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_PathlossReferenceRS_Id_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 ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id = { + "PUCCH-PathlossReferenceRS-Id", + "PUCCH-PathlossReferenceRS-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUCCH_PathlossReferenceRS_Id_constr_1, ASN_RRC_PUCCH_PathlossReferenceRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.h b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.h new file mode 100644 index 0000000..8d36d03 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_PathlossReferenceRS_Id_H_ +#define _ASN_RRC_PUCCH_PathlossReferenceRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-PathlossReferenceRS-Id */ +typedef long ASN_RRC_PUCCH_PathlossReferenceRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_PathlossReferenceRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id; +asn_struct_free_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_free; +asn_struct_print_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_print; +asn_constr_check_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_constraint; +ber_type_decoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_decode_ber; +der_type_encoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_encode_der; +xer_type_decoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_decode_xer; +xer_type_encoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_encode_xer; +per_type_decoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_decode_uper; +per_type_encoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_encode_uper; +per_type_decoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_decode_aper; +per_type_encoder_f ASN_RRC_PUCCH_PathlossReferenceRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_PathlossReferenceRS_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.c b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.c new file mode 100644 index 0000000..ecf6946 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-PathlossReferenceRS.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_referenceSignal_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_referenceSignal_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Index */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_referenceSignal_specs_3 = { + sizeof(struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal), + offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal, _asn_ctx), + offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal, present), + sizeof(((struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal *)0)->present), + asn_MAP_ASN_RRC_referenceSignal_tag2el_3, + 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_ASN_RRC_referenceSignal_3 = { + "referenceSignal", + "referenceSignal", + &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_ASN_RRC_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_referenceSignal_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_PathlossReferenceRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS, pucch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_PathlossReferenceRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-PathlossReferenceRS-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referenceSignal */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_PathlossReferenceRS_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_PathlossReferenceRS), + offsetof(struct ASN_RRC_PUCCH_PathlossReferenceRS, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_PathlossReferenceRS_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS = { + "PUCCH-PathlossReferenceRS", + "PUCCH-PathlossReferenceRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_PathlossReferenceRS_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_PathlossReferenceRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.h b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.h new file mode 100644 index 0000000..bcc8a2b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PathlossReferenceRS.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_PathlossReferenceRS_H_ +#define _ASN_RRC_PUCCH_PathlossReferenceRS_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PUCCH-PathlossReferenceRS-Id.h" +#include "ASN_RRC_SSB-Index.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR { + ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR_NOTHING, /* No components present */ + ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index, + ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index +} ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR; + +/* ASN_RRC_PUCCH-PathlossReferenceRS */ +typedef struct ASN_RRC_PUCCH_PathlossReferenceRS { + ASN_RRC_PUCCH_PathlossReferenceRS_Id_t pucch_PathlossReferenceRS_Id; + struct ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal { + ASN_RRC_PUCCH_PathlossReferenceRS__referenceSignal_PR present; + union ASN_RRC_PUCCH_PathlossReferenceRS__ASN_RRC_referenceSignal_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } referenceSignal; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_PathlossReferenceRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_PathlossReferenceRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_PathlossReferenceRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_PathlossReferenceRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.c b/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.c new file mode 100644 index 0000000..5e1631e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.c @@ -0,0 +1,464 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-PowerControl.h" + +#include "ASN_RRC_P0-PUCCH.h" +#include "ASN_RRC_PUCCH-PathlossReferenceRS.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_deltaF_PUCCH_f0_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 >= -16 && 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_ASN_RRC_deltaF_PUCCH_f1_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 >= -16 && 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_ASN_RRC_deltaF_PUCCH_f2_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 >= -16 && 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_ASN_RRC_deltaF_PUCCH_f3_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 >= -16 && 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_ASN_RRC_deltaF_PUCCH_f4_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 >= -16 && 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_ASN_RRC_p0_Set_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 <= 8)) { + /* 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 int +memb_ASN_RRC_pathlossReferenceRSs_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 <= 4)) { + /* 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_ASN_RRC_p0_Set_constr_7 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_per_constraints_t asn_PER_type_ASN_RRC_pathlossReferenceRSs_constr_9 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_per_constraints_t asn_PER_type_ASN_RRC_twoPUCCH_PC_AdjustmentStates_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_deltaF_PUCCH_f0_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_deltaF_PUCCH_f1_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_deltaF_PUCCH_f2_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_deltaF_PUCCH_f3_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_deltaF_PUCCH_f4_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -16, 15 } /* (-16..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_p0_Set_constr_7 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_per_constraints_t asn_PER_memb_ASN_RRC_pathlossReferenceRSs_constr_9 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_ASN_RRC_p0_Set_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_P0_PUCCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_p0_Set_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_p0_Set_specs_7 = { + sizeof(struct ASN_RRC_PUCCH_PowerControl__p0_Set), + offsetof(struct ASN_RRC_PUCCH_PowerControl__p0_Set, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_p0_Set_7 = { + "p0-Set", + "p0-Set", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_p0_Set_tags_7, + sizeof(asn_DEF_ASN_RRC_p0_Set_tags_7) + /sizeof(asn_DEF_ASN_RRC_p0_Set_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_p0_Set_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_p0_Set_tags_7) + /sizeof(asn_DEF_ASN_RRC_p0_Set_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_p0_Set_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_p0_Set_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_p0_Set_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pathlossReferenceRSs_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pathlossReferenceRSs_specs_9 = { + sizeof(struct ASN_RRC_PUCCH_PowerControl__pathlossReferenceRSs), + offsetof(struct ASN_RRC_PUCCH_PowerControl__pathlossReferenceRSs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pathlossReferenceRSs_9 = { + "pathlossReferenceRSs", + "pathlossReferenceRSs", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9, + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSs_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pathlossReferenceRSs_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pathlossReferenceRSs_9, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pathlossReferenceRSs_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUCCH_PC_AdjustmentStates_value2enum_11[] = { + { 0, 9, "twoStates" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUCCH_PC_AdjustmentStates_enum2value_11[] = { + 0 /* twoStates(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUCCH_PC_AdjustmentStates_specs_11 = { + asn_MAP_ASN_RRC_twoPUCCH_PC_AdjustmentStates_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUCCH_PC_AdjustmentStates_enum2value_11, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_11 = { + "twoPUCCH-PC-AdjustmentStates", + "twoPUCCH-PC-AdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11, + sizeof(asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUCCH_PC_AdjustmentStates_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUCCH_PC_AdjustmentStates_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_PowerControl_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PUCCH_PowerControl, deltaF_PUCCH_f0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_deltaF_PUCCH_f0_constr_2, memb_ASN_RRC_deltaF_PUCCH_f0_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f0" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PUCCH_PowerControl, deltaF_PUCCH_f1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_deltaF_PUCCH_f1_constr_3, memb_ASN_RRC_deltaF_PUCCH_f1_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f1" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUCCH_PowerControl, deltaF_PUCCH_f2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_deltaF_PUCCH_f2_constr_4, memb_ASN_RRC_deltaF_PUCCH_f2_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f2" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUCCH_PowerControl, deltaF_PUCCH_f3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_deltaF_PUCCH_f3_constr_5, memb_ASN_RRC_deltaF_PUCCH_f3_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f3" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUCCH_PowerControl, deltaF_PUCCH_f4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_deltaF_PUCCH_f4_constr_6, memb_ASN_RRC_deltaF_PUCCH_f4_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f4" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUCCH_PowerControl, p0_Set), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_p0_Set_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_Set_constr_7, memb_ASN_RRC_p0_Set_constraint_1 }, + 0, 0, /* No default value */ + "p0-Set" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_PowerControl, pathlossReferenceRSs), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_pathlossReferenceRSs_9, + 0, + { 0, &asn_PER_memb_ASN_RRC_pathlossReferenceRSs_constr_9, memb_ASN_RRC_pathlossReferenceRSs_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSs" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_PowerControl, twoPUCCH_PC_AdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-PC-AdjustmentStates" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_PowerControl_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_PowerControl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deltaF-PUCCH-f0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deltaF-PUCCH-f1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* deltaF-PUCCH-f2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* deltaF-PUCCH-f3 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* deltaF-PUCCH-f4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* p0-Set */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pathlossReferenceRSs */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* twoPUCCH-PC-AdjustmentStates */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_PowerControl_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_PowerControl), + offsetof(struct ASN_RRC_PUCCH_PowerControl, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_PowerControl_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_PowerControl_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PowerControl = { + "PUCCH-PowerControl", + "PUCCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_PowerControl_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.h b/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.h new file mode 100644 index 0000000..dced1e9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-PowerControl.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_PowerControl_H_ +#define _ASN_RRC_PUCCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates { + ASN_RRC_PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates_twoStates = 0 +} e_ASN_RRC_PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates; + +/* Forward declarations */ +struct ASN_RRC_P0_PUCCH; +struct ASN_RRC_PUCCH_PathlossReferenceRS; + +/* ASN_RRC_PUCCH-PowerControl */ +typedef struct ASN_RRC_PUCCH_PowerControl { + long *deltaF_PUCCH_f0; /* OPTIONAL */ + long *deltaF_PUCCH_f1; /* OPTIONAL */ + long *deltaF_PUCCH_f2; /* OPTIONAL */ + long *deltaF_PUCCH_f3; /* OPTIONAL */ + long *deltaF_PUCCH_f4; /* OPTIONAL */ + struct ASN_RRC_PUCCH_PowerControl__p0_Set { + A_SEQUENCE_OF(struct ASN_RRC_P0_PUCCH) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *p0_Set; + struct ASN_RRC_PUCCH_PowerControl__pathlossReferenceRSs { + A_SEQUENCE_OF(struct ASN_RRC_PUCCH_PathlossReferenceRS) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pathlossReferenceRSs; + long *twoPUCCH_PC_AdjustmentStates; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_PC_AdjustmentStates_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_PowerControl_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_PowerControl_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-Resource.c b/src/asn/rrc/ASN_RRC_PUCCH-Resource.c new file mode 100644 index 0000000..5b1fc76 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-Resource.c @@ -0,0 +1,225 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-Resource.h" + +#include "ASN_RRC_PUCCH-format0.h" +#include "ASN_RRC_PUCCH-format1.h" +#include "ASN_RRC_PUCCH-format2.h" +#include "ASN_RRC_PUCCH-format3.h" +#include "ASN_RRC_PUCCH-format4.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_intraSlotFrequencyHopping_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_format_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_intraSlotFrequencyHopping_value2enum_4[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_intraSlotFrequencyHopping_enum2value_4[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_intraSlotFrequencyHopping_specs_4 = { + asn_MAP_ASN_RRC_intraSlotFrequencyHopping_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_intraSlotFrequencyHopping_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_intraSlotFrequencyHopping_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_ASN_RRC_intraSlotFrequencyHopping_4 = { + "intraSlotFrequencyHopping", + "intraSlotFrequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4, + sizeof(asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4) + /sizeof(asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4) + /sizeof(asn_DEF_ASN_RRC_intraSlotFrequencyHopping_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_intraSlotFrequencyHopping_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_intraSlotFrequencyHopping_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_format_7[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_Resource__format, choice.format0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_format0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format0" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_Resource__format, choice.format1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_format1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_Resource__format, choice.format2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_format2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format2" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_Resource__format, choice.format3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_format3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format3" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_Resource__format, choice.format4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_format4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format4" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_format_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* format0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* format1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* format2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* format3 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* format4 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_format_specs_7 = { + sizeof(struct ASN_RRC_PUCCH_Resource__format), + offsetof(struct ASN_RRC_PUCCH_Resource__format, _asn_ctx), + offsetof(struct ASN_RRC_PUCCH_Resource__format, present), + sizeof(((struct ASN_RRC_PUCCH_Resource__format *)0)->present), + asn_MAP_ASN_RRC_format_tag2el_7, + 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_ASN_RRC_format_7 = { + "format", + "format", + &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_ASN_RRC_format_constr_7, CHOICE_constraint }, + asn_MBR_ASN_RRC_format_7, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_format_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_Resource, pucch_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_Resource, startingPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PRB_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startingPRB" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_Resource, intraSlotFrequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_intraSlotFrequencyHopping_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraSlotFrequencyHopping" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_Resource, secondHopPRB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PRB_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "secondHopPRB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_Resource, format), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_format_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_Resource_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-ResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* startingPRB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* intraSlotFrequencyHopping */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* secondHopPRB */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* format */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_Resource_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_Resource), + offsetof(struct ASN_RRC_PUCCH_Resource, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_Resource_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_Resource = { + "PUCCH-Resource", + "PUCCH-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_Resource_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-Resource.h b/src/asn/rrc/ASN_RRC_PUCCH-Resource.h new file mode 100644 index 0000000..4a51d51 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-Resource.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_Resource_H_ +#define _ASN_RRC_PUCCH_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PUCCH-ResourceId.h" +#include "ASN_RRC_PRB-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_Resource__intraSlotFrequencyHopping { + ASN_RRC_PUCCH_Resource__intraSlotFrequencyHopping_enabled = 0 +} e_ASN_RRC_PUCCH_Resource__intraSlotFrequencyHopping; +typedef enum ASN_RRC_PUCCH_Resource__format_PR { + ASN_RRC_PUCCH_Resource__format_PR_NOTHING, /* No components present */ + ASN_RRC_PUCCH_Resource__format_PR_format0, + ASN_RRC_PUCCH_Resource__format_PR_format1, + ASN_RRC_PUCCH_Resource__format_PR_format2, + ASN_RRC_PUCCH_Resource__format_PR_format3, + ASN_RRC_PUCCH_Resource__format_PR_format4 +} ASN_RRC_PUCCH_Resource__format_PR; + +/* Forward declarations */ +struct ASN_RRC_PUCCH_format0; +struct ASN_RRC_PUCCH_format1; +struct ASN_RRC_PUCCH_format2; +struct ASN_RRC_PUCCH_format3; +struct ASN_RRC_PUCCH_format4; + +/* ASN_RRC_PUCCH-Resource */ +typedef struct ASN_RRC_PUCCH_Resource { + ASN_RRC_PUCCH_ResourceId_t pucch_ResourceId; + ASN_RRC_PRB_Id_t startingPRB; + long *intraSlotFrequencyHopping; /* OPTIONAL */ + ASN_RRC_PRB_Id_t *secondHopPRB; /* OPTIONAL */ + struct ASN_RRC_PUCCH_Resource__format { + ASN_RRC_PUCCH_Resource__format_PR present; + union ASN_RRC_PUCCH_Resource__ASN_RRC_format_u { + struct ASN_RRC_PUCCH_format0 *format0; + struct ASN_RRC_PUCCH_format1 *format1; + struct ASN_RRC_PUCCH_format2 *format2; + struct ASN_RRC_PUCCH_format3 *format3; + struct ASN_RRC_PUCCH_format4 *format4; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } format; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraSlotFrequencyHopping_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_Resource_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.c b/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.c new file mode 100644 index 0000000..64eb3a9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-ResourceId.h" + +int +ASN_RRC_PUCCH_ResourceId_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_PUCCH_ResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceId = { + "PUCCH-ResourceId", + "PUCCH-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUCCH_ResourceId_constr_1, ASN_RRC_PUCCH_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.h b/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.h new file mode 100644 index 0000000..980e1f4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_ResourceId_H_ +#define _ASN_RRC_PUCCH_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-ResourceId */ +typedef long ASN_RRC_PUCCH_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceId; +asn_struct_free_f ASN_RRC_PUCCH_ResourceId_free; +asn_struct_print_f ASN_RRC_PUCCH_ResourceId_print; +asn_constr_check_f ASN_RRC_PUCCH_ResourceId_constraint; +ber_type_decoder_f ASN_RRC_PUCCH_ResourceId_decode_ber; +der_type_encoder_f ASN_RRC_PUCCH_ResourceId_encode_der; +xer_type_decoder_f ASN_RRC_PUCCH_ResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_PUCCH_ResourceId_encode_xer; +per_type_decoder_f ASN_RRC_PUCCH_ResourceId_decode_uper; +per_type_encoder_f ASN_RRC_PUCCH_ResourceId_encode_uper; +per_type_decoder_f ASN_RRC_PUCCH_ResourceId_decode_aper; +per_type_encoder_f ASN_RRC_PUCCH_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_ResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.c b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.c new file mode 100644 index 0000000..003b891 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.c @@ -0,0 +1,175 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-ResourceSet.h" + +static int +memb_ASN_RRC_resourceList_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 int +memb_ASN_RRC_maxPayloadMinus1_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 >= 4 && 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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_resourceList_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_ASN_RRC_resourceList_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_ASN_RRC_maxPayloadMinus1_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 4, 256 } /* (4..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_resourceList_specs_3 = { + sizeof(struct ASN_RRC_PUCCH_ResourceSet__resourceList), + offsetof(struct ASN_RRC_PUCCH_ResourceSet__resourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceList_3 = { + "resourceList", + "resourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_resourceList_tags_3, + sizeof(asn_DEF_ASN_RRC_resourceList_tags_3) + /sizeof(asn_DEF_ASN_RRC_resourceList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceList_tags_3) + /sizeof(asn_DEF_ASN_RRC_resourceList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_resourceList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_resourceList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_ResourceSet, pucch_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_ResourceSet, resourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceList_constr_3, memb_ASN_RRC_resourceList_constraint_1 }, + 0, 0, /* No default value */ + "resourceList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_ResourceSet, maxPayloadMinus1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxPayloadMinus1_constr_5, memb_ASN_RRC_maxPayloadMinus1_constraint_1 }, + 0, 0, /* No default value */ + "maxPayloadMinus1" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_ResourceSet_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* maxPayloadMinus1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_ResourceSet), + offsetof(struct ASN_RRC_PUCCH_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_ResourceSet_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_ResourceSet_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceSet = { + "PUCCH-ResourceSet", + "PUCCH-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_ResourceSet_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.h b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.h new file mode 100644 index 0000000..b91b6d4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSet.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_ResourceSet_H_ +#define _ASN_RRC_PUCCH_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PUCCH-ResourceSetId.h" +#include +#include "ASN_RRC_PUCCH-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-ResourceSet */ +typedef struct ASN_RRC_PUCCH_ResourceSet { + ASN_RRC_PUCCH_ResourceSetId_t pucch_ResourceSetId; + struct ASN_RRC_PUCCH_ResourceSet__resourceList { + A_SEQUENCE_OF(ASN_RRC_PUCCH_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resourceList; + long *maxPayloadMinus1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_ResourceSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.c b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.c new file mode 100644 index 0000000..c54ecf8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-ResourceSetId.h" + +int +ASN_RRC_PUCCH_ResourceSetId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_ResourceSetId_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 ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceSetId = { + "PUCCH-ResourceSetId", + "PUCCH-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUCCH_ResourceSetId_constr_1, ASN_RRC_PUCCH_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.h b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.h new file mode 100644 index 0000000..2d34763 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_ResourceSetId_H_ +#define _ASN_RRC_PUCCH_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-ResourceSetId */ +typedef long ASN_RRC_PUCCH_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_ResourceSetId; +asn_struct_free_f ASN_RRC_PUCCH_ResourceSetId_free; +asn_struct_print_f ASN_RRC_PUCCH_ResourceSetId_print; +asn_constr_check_f ASN_RRC_PUCCH_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_PUCCH_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_PUCCH_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_PUCCH_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_PUCCH_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_PUCCH_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_PUCCH_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_PUCCH_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_PUCCH_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.c b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.c new file mode 100644 index 0000000..5faa60c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.c @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-SpatialRelationInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_referenceSignal_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_closedLoopIndex_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_srs_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal__srs, resource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal__srs, uplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBWP" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_srs_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkBWP */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_srs_specs_7 = { + sizeof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal__srs), + offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal__srs, _asn_ctx), + asn_MAP_ASN_RRC_srs_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_7 = { + "srs", + "srs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_srs_tags_7, + sizeof(asn_DEF_ASN_RRC_srs_tags_7) + /sizeof(asn_DEF_ASN_RRC_srs_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_tags_7) + /sizeof(asn_DEF_ASN_RRC_srs_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_srs_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_srs_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_referenceSignal_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal, choice.srs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_referenceSignal_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-Index */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* srs */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_referenceSignal_specs_4 = { + sizeof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal), + offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal, _asn_ctx), + offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal, present), + sizeof(((struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal *)0)->present), + asn_MAP_ASN_RRC_referenceSignal_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_ASN_RRC_referenceSignal_4 = { + "referenceSignal", + "referenceSignal", + &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_ASN_RRC_referenceSignal_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_referenceSignal_4, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_referenceSignal_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_closedLoopIndex_value2enum_12[] = { + { 0, 2, "i0" }, + { 1, 2, "i1" } +}; +static const unsigned int asn_MAP_ASN_RRC_closedLoopIndex_enum2value_12[] = { + 0, /* i0(0) */ + 1 /* i1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_closedLoopIndex_specs_12 = { + asn_MAP_ASN_RRC_closedLoopIndex_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_closedLoopIndex_enum2value_12, /* 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_ASN_RRC_closedLoopIndex_tags_12[] = { + (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_ASN_RRC_closedLoopIndex_12 = { + "closedLoopIndex", + "closedLoopIndex", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_closedLoopIndex_tags_12, + sizeof(asn_DEF_ASN_RRC_closedLoopIndex_tags_12) + /sizeof(asn_DEF_ASN_RRC_closedLoopIndex_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_closedLoopIndex_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_closedLoopIndex_tags_12) + /sizeof(asn_DEF_ASN_RRC_closedLoopIndex_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_closedLoopIndex_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_closedLoopIndex_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_SpatialRelationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, pucch_SpatialRelationInfoId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-SpatialRelationInfoId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_referenceSignal_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, pucch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, p0_PUCCH_Id), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUCCH_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUCCH-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, closedLoopIndex), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_closedLoopIndex_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "closedLoopIndex" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_SpatialRelationInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_SpatialRelationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pucch-SpatialRelationInfoId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servingCellId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referenceSignal */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pucch-PathlossReferenceRS-Id */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* p0-PUCCH-Id */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* closedLoopIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_SpatialRelationInfo_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_SpatialRelationInfo), + offsetof(struct ASN_RRC_PUCCH_SpatialRelationInfo, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_SpatialRelationInfo_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_SpatialRelationInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo = { + "PUCCH-SpatialRelationInfo", + "PUCCH-SpatialRelationInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_SpatialRelationInfo_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_SpatialRelationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.h b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.h new file mode 100644 index 0000000..3d0e1c1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfo.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_SpatialRelationInfo_H_ +#define _ASN_RRC_PUCCH_SpatialRelationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PUCCH-SpatialRelationInfoId.h" +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_PUCCH-PathlossReferenceRS-Id.h" +#include "ASN_RRC_P0-PUCCH-Id.h" +#include +#include "ASN_RRC_SSB-Index.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_SRS-ResourceId.h" +#include "ASN_RRC_BWP-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR { + ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR_NOTHING, /* No components present */ + ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index, + ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index, + ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR_srs +} ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR; +typedef enum ASN_RRC_PUCCH_SpatialRelationInfo__closedLoopIndex { + ASN_RRC_PUCCH_SpatialRelationInfo__closedLoopIndex_i0 = 0, + ASN_RRC_PUCCH_SpatialRelationInfo__closedLoopIndex_i1 = 1 +} e_ASN_RRC_PUCCH_SpatialRelationInfo__closedLoopIndex; + +/* ASN_RRC_PUCCH-SpatialRelationInfo */ +typedef struct ASN_RRC_PUCCH_SpatialRelationInfo { + ASN_RRC_PUCCH_SpatialRelationInfoId_t pucch_SpatialRelationInfoId; + ASN_RRC_ServCellIndex_t *servingCellId; /* OPTIONAL */ + struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal { + ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal_PR present; + union ASN_RRC_PUCCH_SpatialRelationInfo__ASN_RRC_referenceSignal_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + struct ASN_RRC_PUCCH_SpatialRelationInfo__referenceSignal__srs { + ASN_RRC_SRS_ResourceId_t resource; + ASN_RRC_BWP_Id_t uplinkBWP; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } referenceSignal; + ASN_RRC_PUCCH_PathlossReferenceRS_Id_t pucch_PathlossReferenceRS_Id; + ASN_RRC_P0_PUCCH_Id_t p0_PUCCH_Id; + long closedLoopIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_SpatialRelationInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_closedLoopIndex_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_SpatialRelationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_SpatialRelationInfo_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_SpatialRelationInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.c b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.c new file mode 100644 index 0000000..ca2f1c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-SpatialRelationInfoId.h" + +int +ASN_RRC_PUCCH_SpatialRelationInfoId_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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_SpatialRelationInfoId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId = { + "PUCCH-SpatialRelationInfoId", + "PUCCH-SpatialRelationInfoId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUCCH_SpatialRelationInfoId_constr_1, ASN_RRC_PUCCH_SpatialRelationInfoId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.h b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.h new file mode 100644 index 0000000..e5083eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-SpatialRelationInfoId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_SpatialRelationInfoId_H_ +#define _ASN_RRC_PUCCH_SpatialRelationInfoId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-SpatialRelationInfoId */ +typedef long ASN_RRC_PUCCH_SpatialRelationInfoId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUCCH_SpatialRelationInfoId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_SpatialRelationInfoId; +asn_struct_free_f ASN_RRC_PUCCH_SpatialRelationInfoId_free; +asn_struct_print_f ASN_RRC_PUCCH_SpatialRelationInfoId_print; +asn_constr_check_f ASN_RRC_PUCCH_SpatialRelationInfoId_constraint; +ber_type_decoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_decode_ber; +der_type_encoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_encode_der; +xer_type_decoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_decode_xer; +xer_type_encoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_encode_xer; +per_type_decoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_decode_uper; +per_type_encoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_encode_uper; +per_type_decoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_decode_aper; +per_type_encoder_f ASN_RRC_PUCCH_SpatialRelationInfoId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_SpatialRelationInfoId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.c b/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.c new file mode 100644 index 0000000..6397baa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-TPC-CommandConfig.h" + +static int +memb_ASN_RRC_tpc_IndexPCell_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 <= 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_ASN_RRC_tpc_IndexPUCCH_SCell_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 <= 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_ASN_RRC_tpc_IndexPCell_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_tpc_IndexPUCCH_SCell_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_TPC_CommandConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUCCH_TPC_CommandConfig, tpc_IndexPCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_tpc_IndexPCell_constr_2, memb_ASN_RRC_tpc_IndexPCell_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexPCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUCCH_TPC_CommandConfig, tpc_IndexPUCCH_SCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_tpc_IndexPUCCH_SCell_constr_3, memb_ASN_RRC_tpc_IndexPUCCH_SCell_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexPUCCH-SCell" + }, +}; +static const int asn_MAP_ASN_RRC_PUCCH_TPC_CommandConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_TPC_CommandConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tpc-IndexPCell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tpc-IndexPUCCH-SCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_TPC_CommandConfig_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_TPC_CommandConfig), + offsetof(struct ASN_RRC_PUCCH_TPC_CommandConfig, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_TPC_CommandConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUCCH_TPC_CommandConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig = { + "PUCCH-TPC-CommandConfig", + "PUCCH-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_TPC_CommandConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.h b/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.h new file mode 100644 index 0000000..1d1fdeb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-TPC-CommandConfig.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_TPC_CommandConfig_H_ +#define _ASN_RRC_PUCCH_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-TPC-CommandConfig */ +typedef struct ASN_RRC_PUCCH_TPC_CommandConfig { + long *tpc_IndexPCell; /* OPTIONAL */ + long *tpc_IndexPUCCH_SCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_TPC_CommandConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_TPC_CommandConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format0.c b/src/asn/rrc/ASN_RRC_PUCCH-format0.c new file mode 100644 index 0000000..4b7ff7c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format0.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-format0.h" + +static int +memb_ASN_RRC_initialCyclicShift_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 <= 11)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofSymbols_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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingSymbolIndex_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 <= 13)) { + /* Constraint 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_ASN_RRC_initialCyclicShift_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 11 } /* (0..11) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofSymbols_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format0, initialCyclicShift), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_initialCyclicShift_constr_2, memb_ASN_RRC_initialCyclicShift_constraint_1 }, + 0, 0, /* No default value */ + "initialCyclicShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format0, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSymbols_constr_3, memb_ASN_RRC_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format0, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4, memb_ASN_RRC_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_format0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_format0_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initialCyclicShift */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* startingSymbolIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format0_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_format0), + offsetof(struct ASN_RRC_PUCCH_format0, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_format0_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_ASN_RRC_PUCCH_format0 = { + "PUCCH-format0", + "PUCCH-format0", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_format0_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_format0_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format0_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_format0_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_format0_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format0_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_format0_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_format0_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format0.h b/src/asn/rrc/ASN_RRC_PUCCH-format0.h new file mode 100644 index 0000000..c3cbea1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format0.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_format0_H_ +#define _ASN_RRC_PUCCH_format0_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-format0 */ +typedef struct ASN_RRC_PUCCH_format0 { + long initialCyclicShift; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_format0_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format0; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format0_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format0_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_format0_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format1.c b/src/asn/rrc/ASN_RRC_PUCCH-format1.c new file mode 100644 index 0000000..e82cb72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format1.c @@ -0,0 +1,200 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-format1.h" + +static int +memb_ASN_RRC_initialCyclicShift_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 <= 11)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofSymbols_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 >= 4 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingSymbolIndex_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 <= 10)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_timeDomainOCC_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 <= 6)) { + /* Constraint 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_ASN_RRC_initialCyclicShift_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 11 } /* (0..11) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofSymbols_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 4, 14 } /* (4..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDomainOCC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format1, initialCyclicShift), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_initialCyclicShift_constr_2, memb_ASN_RRC_initialCyclicShift_constraint_1 }, + 0, 0, /* No default value */ + "initialCyclicShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format1, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSymbols_constr_3, memb_ASN_RRC_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format1, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4, memb_ASN_RRC_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format1, timeDomainOCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeDomainOCC_constr_5, memb_ASN_RRC_timeDomainOCC_constraint_1 }, + 0, 0, /* No default value */ + "timeDomainOCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_format1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initialCyclicShift */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* startingSymbolIndex */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeDomainOCC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format1_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_format1), + offsetof(struct ASN_RRC_PUCCH_format1, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_format1_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format1 = { + "PUCCH-format1", + "PUCCH-format1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_format1_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_format1_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_format1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_format1_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_format1_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_format1_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format1.h b/src/asn/rrc/ASN_RRC_PUCCH-format1.h new file mode 100644 index 0000000..a99676c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format1.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_format1_H_ +#define _ASN_RRC_PUCCH_format1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-format1 */ +typedef struct ASN_RRC_PUCCH_format1 { + long initialCyclicShift; + long nrofSymbols; + long startingSymbolIndex; + long timeDomainOCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format1; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format1_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format1_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_format1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format2.c b/src/asn/rrc/ASN_RRC_PUCCH-format2.c new file mode 100644 index 0000000..e052910 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format2.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-format2.h" + +static int +memb_ASN_RRC_nrofPRBs_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofSymbols_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 <= 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingSymbolIndex_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 <= 13)) { + /* Constraint 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_ASN_RRC_nrofPRBs_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofSymbols_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 1, 2 } /* (1..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format2, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofPRBs_constr_2, memb_ASN_RRC_nrofPRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format2, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSymbols_constr_3, memb_ASN_RRC_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format2, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4, memb_ASN_RRC_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_format2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_format2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofPRBs */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* startingSymbolIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format2_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_format2), + offsetof(struct ASN_RRC_PUCCH_format2, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_format2_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_ASN_RRC_PUCCH_format2 = { + "PUCCH-format2", + "PUCCH-format2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_format2_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_format2_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format2_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_format2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_format2_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_format2_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_format2_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format2.h b/src/asn/rrc/ASN_RRC_PUCCH-format2.h new file mode 100644 index 0000000..7966174 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format2.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_format2_H_ +#define _ASN_RRC_PUCCH_format2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-format2 */ +typedef struct ASN_RRC_PUCCH_format2 { + long nrofPRBs; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_format2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format2; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format2_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_format2_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format3.c b/src/asn/rrc/ASN_RRC_PUCCH-format3.c new file mode 100644 index 0000000..e5b0069 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format3.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-format3.h" + +static int +memb_ASN_RRC_nrofPRBs_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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofSymbols_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 >= 4 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingSymbolIndex_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 <= 10)) { + /* Constraint 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_ASN_RRC_nrofPRBs_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofSymbols_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 4, 14 } /* (4..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format3, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofPRBs_constr_2, memb_ASN_RRC_nrofPRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format3, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSymbols_constr_3, memb_ASN_RRC_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format3, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_4, memb_ASN_RRC_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_format3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_format3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofPRBs */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* startingSymbolIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format3_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_format3), + offsetof(struct ASN_RRC_PUCCH_format3, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_format3_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_ASN_RRC_PUCCH_format3 = { + "PUCCH-format3", + "PUCCH-format3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_format3_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_format3_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format3_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_format3_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_format3_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_format3_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_format3_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format3.h b/src/asn/rrc/ASN_RRC_PUCCH-format3.h new file mode 100644 index 0000000..0539052 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format3.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_format3_H_ +#define _ASN_RRC_PUCCH_format3_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUCCH-format3 */ +typedef struct ASN_RRC_PUCCH_format3 { + long nrofPRBs; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_format3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format3; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format3_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format3_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_format3_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format4.c b/src/asn/rrc/ASN_RRC_PUCCH-format4.c new file mode 100644 index 0000000..dee666b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format4.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUCCH-format4.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 int +memb_ASN_RRC_nrofSymbols_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 >= 4 && value <= 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingSymbolIndex_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 <= 10)) { + /* Constraint 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_ASN_RRC_occ_Length_constr_3 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_type_ASN_RRC_occ_Index_constr_6 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_ASN_RRC_nrofSymbols_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 4, 14 } /* (4..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_occ_Length_value2enum_3[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_occ_Length_enum2value_3[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_occ_Length_specs_3 = { + asn_MAP_ASN_RRC_occ_Length_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_occ_Length_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_occ_Length_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_ASN_RRC_occ_Length_3 = { + "occ-Length", + "occ-Length", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_occ_Length_tags_3, + sizeof(asn_DEF_ASN_RRC_occ_Length_tags_3) + /sizeof(asn_DEF_ASN_RRC_occ_Length_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_occ_Length_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_occ_Length_tags_3) + /sizeof(asn_DEF_ASN_RRC_occ_Length_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_occ_Length_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_occ_Length_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_occ_Index_value2enum_6[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" } +}; +static const unsigned int asn_MAP_ASN_RRC_occ_Index_enum2value_6[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3 /* n3(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_occ_Index_specs_6 = { + asn_MAP_ASN_RRC_occ_Index_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_occ_Index_enum2value_6, /* 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_ASN_RRC_occ_Index_tags_6[] = { + (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_ASN_RRC_occ_Index_6 = { + "occ-Index", + "occ-Index", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_occ_Index_tags_6, + sizeof(asn_DEF_ASN_RRC_occ_Index_tags_6) + /sizeof(asn_DEF_ASN_RRC_occ_Index_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_occ_Index_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_occ_Index_tags_6) + /sizeof(asn_DEF_ASN_RRC_occ_Index_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_occ_Index_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_occ_Index_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format4, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSymbols_constr_2, memb_ASN_RRC_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format4, occ_Length), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_occ_Length_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occ-Length" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format4, occ_Index), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_occ_Index_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occ-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUCCH_format4, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingSymbolIndex_constr_11, memb_ASN_RRC_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUCCH_format4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUCCH_format4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* occ-Length */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* occ-Index */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* startingSymbolIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format4_specs_1 = { + sizeof(struct ASN_RRC_PUCCH_format4), + offsetof(struct ASN_RRC_PUCCH_format4, _asn_ctx), + asn_MAP_ASN_RRC_PUCCH_format4_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format4 = { + "PUCCH-format4", + "PUCCH-format4", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUCCH_format4_tags_1, + sizeof(asn_DEF_ASN_RRC_PUCCH_format4_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format4_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUCCH_format4_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUCCH_format4_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUCCH_format4_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUCCH_format4_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PUCCH_format4_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUCCH-format4.h b/src/asn/rrc/ASN_RRC_PUCCH-format4.h new file mode 100644 index 0000000..585cf68 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUCCH-format4.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUCCH_format4_H_ +#define _ASN_RRC_PUCCH_format4_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUCCH_format4__occ_Length { + ASN_RRC_PUCCH_format4__occ_Length_n2 = 0, + ASN_RRC_PUCCH_format4__occ_Length_n4 = 1 +} e_ASN_RRC_PUCCH_format4__occ_Length; +typedef enum ASN_RRC_PUCCH_format4__occ_Index { + ASN_RRC_PUCCH_format4__occ_Index_n0 = 0, + ASN_RRC_PUCCH_format4__occ_Index_n1 = 1, + ASN_RRC_PUCCH_format4__occ_Index_n2 = 2, + ASN_RRC_PUCCH_format4__occ_Index_n3 = 3 +} e_ASN_RRC_PUCCH_format4__occ_Index; + +/* ASN_RRC_PUCCH-format4 */ +typedef struct ASN_RRC_PUCCH_format4 { + long nrofSymbols; + long occ_Length; + long occ_Index; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUCCH_format4_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_occ_Length_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_occ_Index_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUCCH_format4; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUCCH_format4_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUCCH_format4_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUCCH_format4_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.c b/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.c new file mode 100644 index 0000000..a779f82 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-CodeBlockGroupTransmission.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_constr_2 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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_enum2value_2[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2, /* n6(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_specs_2 = { + asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_enum2value_2, /* 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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_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_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2 = { + "maxCodeBlockGroupsPerTransportBlock", + "maxCodeBlockGroupsPerTransportBlock", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2, + sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_CodeBlockGroupTransmission_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_CodeBlockGroupTransmission, maxCodeBlockGroupsPerTransportBlock), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeBlockGroupsPerTransportBlock" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxCodeBlockGroupsPerTransportBlock */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_CodeBlockGroupTransmission_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_CodeBlockGroupTransmission), + offsetof(struct ASN_RRC_PUSCH_CodeBlockGroupTransmission, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_CodeBlockGroupTransmission_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_ASN_RRC_PUSCH_CodeBlockGroupTransmission = { + "PUSCH-CodeBlockGroupTransmission", + "PUSCH-CodeBlockGroupTransmission", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_CodeBlockGroupTransmission_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_CodeBlockGroupTransmission_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.h b/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.h new file mode 100644 index 0000000..542211d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-CodeBlockGroupTransmission.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_CodeBlockGroupTransmission_H_ +#define _ASN_RRC_PUSCH_CodeBlockGroupTransmission_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock { + ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n2 = 0, + ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n4 = 1, + ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n6 = 2, + ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n8 = 3 +} e_ASN_RRC_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock; + +/* ASN_RRC_PUSCH-CodeBlockGroupTransmission */ +typedef struct ASN_RRC_PUSCH_CodeBlockGroupTransmission { + long maxCodeBlockGroupsPerTransportBlock; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_CodeBlockGroupTransmission_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxCodeBlockGroupsPerTransportBlock_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_CodeBlockGroupTransmission_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_CodeBlockGroupTransmission_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_CodeBlockGroupTransmission_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-Config.c b/src/asn/rrc/ASN_RRC_PUSCH-Config.c new file mode 100644 index 0000000..9102721 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-Config.c @@ -0,0 +1,849 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-Config.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_PUSCH-PowerControl.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 int +memb_NativeInteger_constraint_12(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 274)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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. + */ +/* + * 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_ASN_RRC_dataScramblingIdentityPUSCH_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_ASN_RRC_frequencyHoppingOffsetLists_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 <= 4)) { + /* 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 int +memb_ASN_RRC_maxRank_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 <= 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_ASN_RRC_txConfig_constr_3 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_type_ASN_RRC_frequencyHopping_constr_9 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_ASN_RRC_Member_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 274 } /* (1..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyHoppingOffsetLists_constr_12 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_per_constraints_t asn_PER_type_ASN_RRC_resourceAllocation_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_pusch_AggregationFactor_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_type_ASN_RRC_mcs_Table_constr_23 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_type_ASN_RRC_mcs_TableTransformPrecoder_constr_26 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_type_ASN_RRC_transformPrecoder_constr_29 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_type_ASN_RRC_codebookSubset_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_rbg_Size_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tp_pi2BPSK_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_dataScramblingIdentityPUSCH_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_ASN_RRC_frequencyHoppingOffsetLists_constr_12 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_per_constraints_t asn_PER_memb_ASN_RRC_maxRank_constr_36 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_txConfig_value2enum_3[] = { + { 0, 8, "codebook" }, + { 1, 11, "nonCodebook" } +}; +static const unsigned int asn_MAP_ASN_RRC_txConfig_enum2value_3[] = { + 0, /* codebook(0) */ + 1 /* nonCodebook(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_txConfig_specs_3 = { + asn_MAP_ASN_RRC_txConfig_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_txConfig_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_txConfig_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_ASN_RRC_txConfig_3 = { + "txConfig", + "txConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_txConfig_tags_3, + sizeof(asn_DEF_ASN_RRC_txConfig_tags_3) + /sizeof(asn_DEF_ASN_RRC_txConfig_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_txConfig_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_txConfig_tags_3) + /sizeof(asn_DEF_ASN_RRC_txConfig_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_txConfig_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_txConfig_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_frequencyHopping_value2enum_9[] = { + { 0, 9, "intraSlot" }, + { 1, 9, "interSlot" } +}; +static const unsigned int asn_MAP_ASN_RRC_frequencyHopping_enum2value_9[] = { + 1, /* interSlot(1) */ + 0 /* intraSlot(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_frequencyHopping_specs_9 = { + asn_MAP_ASN_RRC_frequencyHopping_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_frequencyHopping_enum2value_9, /* 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_ASN_RRC_frequencyHopping_tags_9[] = { + (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_ASN_RRC_frequencyHopping_9 = { + "frequencyHopping", + "frequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_frequencyHopping_tags_9, + sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_9) + /sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyHopping_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_9) + /sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyHopping_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_frequencyHopping_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_frequencyHoppingOffsetLists_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_13, memb_NativeInteger_constraint_12 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_frequencyHoppingOffsetLists_specs_12 = { + sizeof(struct ASN_RRC_PUSCH_Config__frequencyHoppingOffsetLists), + offsetof(struct ASN_RRC_PUSCH_Config__frequencyHoppingOffsetLists, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_12 = { + "frequencyHoppingOffsetLists", + "frequencyHoppingOffsetLists", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12, + sizeof(asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12) + /sizeof(asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12) + /sizeof(asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_frequencyHoppingOffsetLists_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_frequencyHoppingOffsetLists_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_frequencyHoppingOffsetLists_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceAllocation_value2enum_14[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_ASN_RRC_resourceAllocation_enum2value_14[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceAllocation_specs_14 = { + asn_MAP_ASN_RRC_resourceAllocation_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_resourceAllocation_enum2value_14, /* 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_ASN_RRC_resourceAllocation_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_14 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_resourceAllocation_tags_14, + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_14) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceAllocation_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_14) + /sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_resourceAllocation_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_resourceAllocation_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_AggregationFactor_value2enum_19[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_AggregationFactor_enum2value_19[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_AggregationFactor_specs_19 = { + asn_MAP_ASN_RRC_pusch_AggregationFactor_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_AggregationFactor_enum2value_19, /* 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_ASN_RRC_pusch_AggregationFactor_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_AggregationFactor_19 = { + "pusch-AggregationFactor", + "pusch-AggregationFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19, + sizeof(asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19) + /sizeof(asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19) + /sizeof(asn_DEF_ASN_RRC_pusch_AggregationFactor_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_AggregationFactor_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_AggregationFactor_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_Table_value2enum_23[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_Table_enum2value_23[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_Table_specs_23 = { + asn_MAP_ASN_RRC_mcs_Table_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_Table_enum2value_23, /* 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_ASN_RRC_mcs_Table_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_23 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_Table_tags_23, + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_23) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_Table_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_23) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_Table_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_Table_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_26[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_26[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_26 = { + asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_26, /* 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_ASN_RRC_mcs_TableTransformPrecoder_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_26 = { + "mcs-TableTransformPrecoder", + "mcs-TableTransformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26, + sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26) + /sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26) + /sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_TableTransformPrecoder_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_transformPrecoder_value2enum_29[] = { + { 0, 7, "enabled" }, + { 1, 8, "disabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_transformPrecoder_enum2value_29[] = { + 1, /* disabled(1) */ + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_transformPrecoder_specs_29 = { + asn_MAP_ASN_RRC_transformPrecoder_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_transformPrecoder_enum2value_29, /* 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_ASN_RRC_transformPrecoder_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoder_29 = { + "transformPrecoder", + "transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_transformPrecoder_tags_29, + sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_29) + /sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_transformPrecoder_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_29) + /sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_transformPrecoder_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_transformPrecoder_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_codebookSubset_value2enum_32[] = { + { 0, 29, "fullyAndPartialAndNonCoherent" }, + { 1, 21, "partialAndNonCoherent" }, + { 2, 11, "nonCoherent" } +}; +static const unsigned int asn_MAP_ASN_RRC_codebookSubset_enum2value_32[] = { + 0, /* fullyAndPartialAndNonCoherent(0) */ + 2, /* nonCoherent(2) */ + 1 /* partialAndNonCoherent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_codebookSubset_specs_32 = { + asn_MAP_ASN_RRC_codebookSubset_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_codebookSubset_enum2value_32, /* 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_ASN_RRC_codebookSubset_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_codebookSubset_32 = { + "codebookSubset", + "codebookSubset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_codebookSubset_tags_32, + sizeof(asn_DEF_ASN_RRC_codebookSubset_tags_32) + /sizeof(asn_DEF_ASN_RRC_codebookSubset_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_codebookSubset_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_codebookSubset_tags_32) + /sizeof(asn_DEF_ASN_RRC_codebookSubset_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_codebookSubset_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_codebookSubset_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rbg_Size_value2enum_37[] = { + { 0, 7, "config2" } +}; +static const unsigned int asn_MAP_ASN_RRC_rbg_Size_enum2value_37[] = { + 0 /* config2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rbg_Size_specs_37 = { + asn_MAP_ASN_RRC_rbg_Size_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rbg_Size_enum2value_37, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rbg_Size_tags_37[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_37 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rbg_Size_tags_37, + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_37) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rbg_Size_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_37) + /sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_37[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rbg_Size_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rbg_Size_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tp_pi2BPSK_value2enum_40[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_tp_pi2BPSK_enum2value_40[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tp_pi2BPSK_specs_40 = { + asn_MAP_ASN_RRC_tp_pi2BPSK_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tp_pi2BPSK_enum2value_40, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tp_pi2BPSK_40 = { + "tp-pi2BPSK", + "tp-pi2BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40, + sizeof(asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40) + /sizeof(asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40) + /sizeof(asn_DEF_ASN_RRC_tp_pi2BPSK_tags_40[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tp_pi2BPSK_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tp_pi2BPSK_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_Config_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PUSCH_Config, dataScramblingIdentityPUSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dataScramblingIdentityPUSCH_constr_2, memb_ASN_RRC_dataScramblingIdentityPUSCH_constraint_1 }, + 0, 0, /* No default value */ + "dataScramblingIdentityPUSCH" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUSCH_Config, txConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_txConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txConfig" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-UplinkForPUSCH-MappingTypeA" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-UplinkForPUSCH-MappingTypeB" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_Config, pusch_PowerControl), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-PowerControl" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_Config, frequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_frequencyHopping_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyHopping" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_Config, frequencyHoppingOffsetLists), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_frequencyHoppingOffsetLists_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_frequencyHoppingOffsetLists_constr_12, memb_ASN_RRC_frequencyHoppingOffsetLists_constraint_1 }, + 0, 0, /* No default value */ + "frequencyHoppingOffsetLists" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_Config, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceAllocation_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_PUSCH_Config, pusch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TimeDomainAllocationList" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_PUSCH_Config, pusch_AggregationFactor), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_AggregationFactor_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-AggregationFactor" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PUSCH_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_Table_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PUSCH_Config, mcs_TableTransformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-TableTransformPrecoder" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUSCH_Config, transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_transformPrecoder_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoder" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUSCH_Config, codebookSubset), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_codebookSubset_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookSubset" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUSCH_Config, maxRank), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxRank_constr_36, memb_ASN_RRC_maxRank_constraint_1 }, + 0, 0, /* No default value */ + "maxRank" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_Config, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rbg_Size_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_Config, uci_OnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-OnPUSCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_Config, tp_pi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tp_pi2BPSK_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tp-pi2BPSK" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dataScramblingIdentityPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* txConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dmrs-UplinkForPUSCH-MappingTypeA */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dmrs-UplinkForPUSCH-MappingTypeB */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pusch-PowerControl */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* frequencyHopping */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* frequencyHoppingOffsetLists */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* resourceAllocation */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* pusch-TimeDomainAllocationList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pusch-AggregationFactor */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* mcs-Table */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* mcs-TableTransformPrecoder */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* transformPrecoder */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* codebookSubset */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* maxRank */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* rbg-Size */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* uci-OnPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 } /* tp-pi2BPSK */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_Config_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_Config), + offsetof(struct ASN_RRC_PUSCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_Config_tag2el_1, + 18, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_Config_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_Config = { + "PUSCH-Config", + "PUSCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_Config_1, + 18, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-Config.h b/src/asn/rrc/ASN_RRC_PUSCH-Config.h new file mode 100644 index 0000000..e2075aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-Config.h @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_Config_H_ +#define _ASN_RRC_PUSCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_Config__txConfig { + ASN_RRC_PUSCH_Config__txConfig_codebook = 0, + ASN_RRC_PUSCH_Config__txConfig_nonCodebook = 1 +} e_ASN_RRC_PUSCH_Config__txConfig; +typedef enum ASN_RRC_PUSCH_Config__frequencyHopping { + ASN_RRC_PUSCH_Config__frequencyHopping_intraSlot = 0, + ASN_RRC_PUSCH_Config__frequencyHopping_interSlot = 1 +} e_ASN_RRC_PUSCH_Config__frequencyHopping; +typedef enum ASN_RRC_PUSCH_Config__resourceAllocation { + ASN_RRC_PUSCH_Config__resourceAllocation_resourceAllocationType0 = 0, + ASN_RRC_PUSCH_Config__resourceAllocation_resourceAllocationType1 = 1, + ASN_RRC_PUSCH_Config__resourceAllocation_dynamicSwitch = 2 +} e_ASN_RRC_PUSCH_Config__resourceAllocation; +typedef enum ASN_RRC_PUSCH_Config__pusch_AggregationFactor { + ASN_RRC_PUSCH_Config__pusch_AggregationFactor_n2 = 0, + ASN_RRC_PUSCH_Config__pusch_AggregationFactor_n4 = 1, + ASN_RRC_PUSCH_Config__pusch_AggregationFactor_n8 = 2 +} e_ASN_RRC_PUSCH_Config__pusch_AggregationFactor; +typedef enum ASN_RRC_PUSCH_Config__mcs_Table { + ASN_RRC_PUSCH_Config__mcs_Table_qam256 = 0, + ASN_RRC_PUSCH_Config__mcs_Table_qam64LowSE = 1 +} e_ASN_RRC_PUSCH_Config__mcs_Table; +typedef enum ASN_RRC_PUSCH_Config__mcs_TableTransformPrecoder { + ASN_RRC_PUSCH_Config__mcs_TableTransformPrecoder_qam256 = 0, + ASN_RRC_PUSCH_Config__mcs_TableTransformPrecoder_qam64LowSE = 1 +} e_ASN_RRC_PUSCH_Config__mcs_TableTransformPrecoder; +typedef enum ASN_RRC_PUSCH_Config__transformPrecoder { + ASN_RRC_PUSCH_Config__transformPrecoder_enabled = 0, + ASN_RRC_PUSCH_Config__transformPrecoder_disabled = 1 +} e_ASN_RRC_PUSCH_Config__transformPrecoder; +typedef enum ASN_RRC_PUSCH_Config__codebookSubset { + ASN_RRC_PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent = 0, + ASN_RRC_PUSCH_Config__codebookSubset_partialAndNonCoherent = 1, + ASN_RRC_PUSCH_Config__codebookSubset_nonCoherent = 2 +} e_ASN_RRC_PUSCH_Config__codebookSubset; +typedef enum ASN_RRC_PUSCH_Config__rbg_Size { + ASN_RRC_PUSCH_Config__rbg_Size_config2 = 0 +} e_ASN_RRC_PUSCH_Config__rbg_Size; +typedef enum ASN_RRC_PUSCH_Config__tp_pi2BPSK { + ASN_RRC_PUSCH_Config__tp_pi2BPSK_enabled = 0 +} e_ASN_RRC_PUSCH_Config__tp_pi2BPSK; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_DMRS_UplinkConfig; +struct ASN_RRC_PUSCH_PowerControl; +struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList; +struct ASN_RRC_SetupRelease_UCI_OnPUSCH; + +/* ASN_RRC_PUSCH-Config */ +typedef struct ASN_RRC_PUSCH_Config { + long *dataScramblingIdentityPUSCH; /* OPTIONAL */ + long *txConfig; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_DMRS_UplinkConfig *dmrs_UplinkForPUSCH_MappingTypeA; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_DMRS_UplinkConfig *dmrs_UplinkForPUSCH_MappingTypeB; /* OPTIONAL */ + struct ASN_RRC_PUSCH_PowerControl *pusch_PowerControl; /* OPTIONAL */ + long *frequencyHopping; /* OPTIONAL */ + struct ASN_RRC_PUSCH_Config__frequencyHoppingOffsetLists { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyHoppingOffsetLists; + long resourceAllocation; + struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList *pusch_TimeDomainAllocationList; /* OPTIONAL */ + long *pusch_AggregationFactor; /* OPTIONAL */ + long *mcs_Table; /* OPTIONAL */ + long *mcs_TableTransformPrecoder; /* OPTIONAL */ + long *transformPrecoder; /* OPTIONAL */ + long *codebookSubset; /* OPTIONAL */ + long *maxRank; /* OPTIONAL */ + long *rbg_Size; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_UCI_OnPUSCH *uci_OnPUSCH; /* OPTIONAL */ + long *tp_pi2BPSK; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_txConfig_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyHopping_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_AggregationFactor_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoder_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_codebookSubset_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tp_pi2BPSK_40; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_Config_1[18]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.c b/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.c new file mode 100644 index 0000000..5ba894c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.c @@ -0,0 +1,187 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-ConfigCommon.h" + +#include "ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_msg3_DeltaPreamble_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 <= 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_p0_NominalWithGrant_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 >= -202 && value <= 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_type_ASN_RRC_groupHoppingEnabledTransformPrecoding_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_msg3_DeltaPreamble_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, -1, 6 } /* (-1..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_p0_NominalWithGrant_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -202, 24 } /* (-202..24) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_groupHoppingEnabledTransformPrecoding_value2enum_2[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_groupHoppingEnabledTransformPrecoding_enum2value_2[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_groupHoppingEnabledTransformPrecoding_specs_2 = { + asn_MAP_ASN_RRC_groupHoppingEnabledTransformPrecoding_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_groupHoppingEnabledTransformPrecoding_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_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_ASN_RRC_groupHoppingEnabledTransformPrecoding_2 = { + "groupHoppingEnabledTransformPrecoding", + "groupHoppingEnabledTransformPrecoding", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2, + sizeof(asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2) + /sizeof(asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2) + /sizeof(asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_groupHoppingEnabledTransformPrecoding_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_groupHoppingEnabledTransformPrecoding_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_ConfigCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUSCH_ConfigCommon, groupHoppingEnabledTransformPrecoding), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupHoppingEnabledTransformPrecoding" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_ConfigCommon, pusch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TimeDomainAllocationList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_ConfigCommon, msg3_DeltaPreamble), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_msg3_DeltaPreamble_constr_5, memb_ASN_RRC_msg3_DeltaPreamble_constraint_1 }, + 0, 0, /* No default value */ + "msg3-DeltaPreamble" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_ConfigCommon, p0_NominalWithGrant), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_NominalWithGrant_constr_6, memb_ASN_RRC_p0_NominalWithGrant_constraint_1 }, + 0, 0, /* No default value */ + "p0-NominalWithGrant" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* groupHoppingEnabledTransformPrecoding */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pusch-TimeDomainAllocationList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* msg3-DeltaPreamble */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* p0-NominalWithGrant */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_ConfigCommon), + offsetof(struct ASN_RRC_PUSCH_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_ConfigCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_ConfigCommon_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_ConfigCommon = { + "PUSCH-ConfigCommon", + "PUSCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_ConfigCommon_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.h b/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.h new file mode 100644 index 0000000..f20f67b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-ConfigCommon.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_ConfigCommon_H_ +#define _ASN_RRC_PUSCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding { + ASN_RRC_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding_enabled = 0 +} e_ASN_RRC_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding; + +/* Forward declarations */ +struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList; + +/* ASN_RRC_PUSCH-ConfigCommon */ +typedef struct ASN_RRC_PUSCH_ConfigCommon { + long *groupHoppingEnabledTransformPrecoding; /* OPTIONAL */ + struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList *pusch_TimeDomainAllocationList; /* OPTIONAL */ + long *msg3_DeltaPreamble; /* OPTIONAL */ + long *p0_NominalWithGrant; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupHoppingEnabledTransformPrecoding_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_ConfigCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.c b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.c new file mode 100644 index 0000000..bbf8015 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-PathlossReferenceRS-Id.h" + +int +ASN_RRC_PUSCH_PathlossReferenceRS_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PUSCH_PathlossReferenceRS_Id_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 ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id = { + "PUSCH-PathlossReferenceRS-Id", + "PUSCH-PathlossReferenceRS-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUSCH_PathlossReferenceRS_Id_constr_1, ASN_RRC_PUSCH_PathlossReferenceRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.h b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.h new file mode 100644 index 0000000..d5f3790 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_PathlossReferenceRS_Id_H_ +#define _ASN_RRC_PUSCH_PathlossReferenceRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUSCH-PathlossReferenceRS-Id */ +typedef long ASN_RRC_PUSCH_PathlossReferenceRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUSCH_PathlossReferenceRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id; +asn_struct_free_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_free; +asn_struct_print_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_print; +asn_constr_check_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_constraint; +ber_type_decoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_decode_ber; +der_type_encoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_encode_der; +xer_type_decoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_decode_xer; +xer_type_encoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_encode_xer; +per_type_decoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_decode_uper; +per_type_encoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_encode_uper; +per_type_decoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_decode_aper; +per_type_encoder_f ASN_RRC_PUSCH_PathlossReferenceRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_PathlossReferenceRS_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.c b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.c new file mode 100644 index 0000000..2655c5f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-PathlossReferenceRS.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_referenceSignal_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_referenceSignal_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Index */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_referenceSignal_specs_3 = { + sizeof(struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal), + offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal, _asn_ctx), + offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal, present), + sizeof(((struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal *)0)->present), + asn_MAP_ASN_RRC_referenceSignal_tag2el_3, + 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_ASN_RRC_referenceSignal_3 = { + "referenceSignal", + "referenceSignal", + &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_ASN_RRC_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_referenceSignal_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_PathlossReferenceRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS, pusch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_PathlossReferenceRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pusch-PathlossReferenceRS-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referenceSignal */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_PathlossReferenceRS_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_PathlossReferenceRS), + offsetof(struct ASN_RRC_PUSCH_PathlossReferenceRS, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_PathlossReferenceRS_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS = { + "PUSCH-PathlossReferenceRS", + "PUSCH-PathlossReferenceRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_PathlossReferenceRS_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_PathlossReferenceRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.h b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.h new file mode 100644 index 0000000..e186c7e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PathlossReferenceRS.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_PathlossReferenceRS_H_ +#define _ASN_RRC_PUSCH_PathlossReferenceRS_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PUSCH-PathlossReferenceRS-Id.h" +#include "ASN_RRC_SSB-Index.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR { + ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR_NOTHING, /* No components present */ + ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index, + ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index +} ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR; + +/* ASN_RRC_PUSCH-PathlossReferenceRS */ +typedef struct ASN_RRC_PUSCH_PathlossReferenceRS { + ASN_RRC_PUSCH_PathlossReferenceRS_Id_t pusch_PathlossReferenceRS_Id; + struct ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal { + ASN_RRC_PUSCH_PathlossReferenceRS__referenceSignal_PR present; + union ASN_RRC_PUSCH_PathlossReferenceRS__ASN_RRC_referenceSignal_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } referenceSignal; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_PathlossReferenceRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_PathlossReferenceRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_PathlossReferenceRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_PathlossReferenceRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.c b/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.c new file mode 100644 index 0000000..0a07626 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.c @@ -0,0 +1,672 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-PowerControl.h" + +#include "ASN_RRC_P0-PUSCH-AlphaSet.h" +#include "ASN_RRC_PUSCH-PathlossReferenceRS.h" +#include "ASN_RRC_SRI-PUSCH-PowerControl.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 int +memb_ASN_RRC_p0_NominalWithoutGrant_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 >= -202 && value <= 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 int +memb_ASN_RRC_p0_AlphaSets_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 <= 30)) { + /* 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 int +memb_ASN_RRC_pathlossReferenceRSToAddModList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_pathlossReferenceRSToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_sri_PUSCH_MappingToAddModList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_sri_PUSCH_MappingToReleaseList_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 <= 16)) { + /* 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_ASN_RRC_tpc_Accumulation_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_p0_AlphaSets_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (SIZE(1..30)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_pathlossReferenceRSToAddModList_constr_8 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_per_constraints_t asn_PER_type_ASN_RRC_pathlossReferenceRSToReleaseList_constr_10 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_per_constraints_t asn_PER_type_ASN_RRC_twoPUSCH_PC_AdjustmentStates_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_deltaMCS_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sri_PUSCH_MappingToAddModList_constr_16 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_per_constraints_t asn_PER_type_ASN_RRC_sri_PUSCH_MappingToReleaseList_constr_18 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_per_constraints_t asn_PER_memb_ASN_RRC_p0_NominalWithoutGrant_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -202, 24 } /* (-202..24) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_p0_AlphaSets_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 30 } /* (SIZE(1..30)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_pathlossReferenceRSToAddModList_constr_8 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_per_constraints_t asn_PER_memb_ASN_RRC_pathlossReferenceRSToReleaseList_constr_10 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_per_constraints_t asn_PER_memb_ASN_RRC_sri_PUSCH_MappingToAddModList_constr_16 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_per_constraints_t asn_PER_memb_ASN_RRC_sri_PUSCH_MappingToReleaseList_constr_18 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (SIZE(1..16)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tpc_Accumulation_value2enum_2[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_tpc_Accumulation_enum2value_2[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tpc_Accumulation_specs_2 = { + asn_MAP_ASN_RRC_tpc_Accumulation_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tpc_Accumulation_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tpc_Accumulation_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_ASN_RRC_tpc_Accumulation_2 = { + "tpc-Accumulation", + "tpc-Accumulation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tpc_Accumulation_tags_2, + sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_2) + /sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tpc_Accumulation_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_2) + /sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tpc_Accumulation_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tpc_Accumulation_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_p0_AlphaSets_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_P0_PUSCH_AlphaSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_p0_AlphaSets_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_p0_AlphaSets_specs_6 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl__p0_AlphaSets), + offsetof(struct ASN_RRC_PUSCH_PowerControl__p0_AlphaSets, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_p0_AlphaSets_6 = { + "p0-AlphaSets", + "p0-AlphaSets", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_p0_AlphaSets_tags_6, + sizeof(asn_DEF_ASN_RRC_p0_AlphaSets_tags_6) + /sizeof(asn_DEF_ASN_RRC_p0_AlphaSets_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_p0_AlphaSets_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_p0_AlphaSets_tags_6) + /sizeof(asn_DEF_ASN_RRC_p0_AlphaSets_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_p0_AlphaSets_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_p0_AlphaSets_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_p0_AlphaSets_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pathlossReferenceRSToAddModList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pathlossReferenceRSToAddModList_specs_8 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToAddModList), + offsetof(struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_8 = { + "pathlossReferenceRSToAddModList", + "pathlossReferenceRSToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8, + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pathlossReferenceRSToAddModList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pathlossReferenceRSToAddModList_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pathlossReferenceRSToAddModList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pathlossReferenceRSToReleaseList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pathlossReferenceRSToReleaseList_specs_10 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToReleaseList), + offsetof(struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_10 = { + "pathlossReferenceRSToReleaseList", + "pathlossReferenceRSToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10, + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pathlossReferenceRSToReleaseList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pathlossReferenceRSToReleaseList_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pathlossReferenceRSToReleaseList_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUSCH_PC_AdjustmentStates_value2enum_12[] = { + { 0, 9, "twoStates" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUSCH_PC_AdjustmentStates_enum2value_12[] = { + 0 /* twoStates(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUSCH_PC_AdjustmentStates_specs_12 = { + asn_MAP_ASN_RRC_twoPUSCH_PC_AdjustmentStates_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUSCH_PC_AdjustmentStates_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_12 = { + "twoPUSCH-PC-AdjustmentStates", + "twoPUSCH-PC-AdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12, + sizeof(asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12) + /sizeof(asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12) + /sizeof(asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUSCH_PC_AdjustmentStates_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUSCH_PC_AdjustmentStates_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_deltaMCS_value2enum_14[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_deltaMCS_enum2value_14[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_deltaMCS_specs_14 = { + asn_MAP_ASN_RRC_deltaMCS_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_deltaMCS_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_deltaMCS_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_deltaMCS_14 = { + "deltaMCS", + "deltaMCS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_deltaMCS_tags_14, + sizeof(asn_DEF_ASN_RRC_deltaMCS_tags_14) + /sizeof(asn_DEF_ASN_RRC_deltaMCS_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_deltaMCS_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_deltaMCS_tags_14) + /sizeof(asn_DEF_ASN_RRC_deltaMCS_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_deltaMCS_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_deltaMCS_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sri_PUSCH_MappingToAddModList_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sri_PUSCH_MappingToAddModList_specs_16 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToAddModList), + offsetof(struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_16 = { + "sri-PUSCH-MappingToAddModList", + "sri-PUSCH-MappingToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16, + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sri_PUSCH_MappingToAddModList_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sri_PUSCH_MappingToAddModList_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sri_PUSCH_MappingToAddModList_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sri_PUSCH_MappingToReleaseList_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sri_PUSCH_MappingToReleaseList_specs_18 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToReleaseList), + offsetof(struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_18 = { + "sri-PUSCH-MappingToReleaseList", + "sri-PUSCH-MappingToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18, + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sri_PUSCH_MappingToReleaseList_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sri_PUSCH_MappingToReleaseList_18, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sri_PUSCH_MappingToReleaseList_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_PowerControl_1[] = { + { ATF_POINTER, 10, offsetof(struct ASN_RRC_PUSCH_PowerControl, tpc_Accumulation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tpc_Accumulation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-Accumulation" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_PUSCH_PowerControl, msg3_Alpha), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg3-Alpha" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PUSCH_PowerControl, p0_NominalWithoutGrant), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_NominalWithoutGrant_constr_5, memb_ASN_RRC_p0_NominalWithoutGrant_constraint_1 }, + 0, 0, /* No default value */ + "p0-NominalWithoutGrant" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PUSCH_PowerControl, p0_AlphaSets), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_p0_AlphaSets_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_AlphaSets_constr_6, memb_ASN_RRC_p0_AlphaSets_constraint_1 }, + 0, 0, /* No default value */ + "p0-AlphaSets" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PUSCH_PowerControl, pathlossReferenceRSToAddModList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_pathlossReferenceRSToAddModList_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_pathlossReferenceRSToAddModList_constr_8, memb_ASN_RRC_pathlossReferenceRSToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PUSCH_PowerControl, pathlossReferenceRSToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_pathlossReferenceRSToReleaseList_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_pathlossReferenceRSToReleaseList_constr_10, memb_ASN_RRC_pathlossReferenceRSToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUSCH_PowerControl, twoPUSCH_PC_AdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUSCH-PC-AdjustmentStates" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_PowerControl, deltaMCS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_deltaMCS_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaMCS" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_PowerControl, sri_PUSCH_MappingToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_sri_PUSCH_MappingToAddModList_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_sri_PUSCH_MappingToAddModList_constr_16, memb_ASN_RRC_sri_PUSCH_MappingToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sri-PUSCH-MappingToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_PowerControl, sri_PUSCH_MappingToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_sri_PUSCH_MappingToReleaseList_18, + 0, + { 0, &asn_PER_memb_ASN_RRC_sri_PUSCH_MappingToReleaseList_constr_18, memb_ASN_RRC_sri_PUSCH_MappingToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sri-PUSCH-MappingToReleaseList" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_PowerControl_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_PowerControl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tpc-Accumulation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msg3-Alpha */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* p0-NominalWithoutGrant */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* p0-AlphaSets */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pathlossReferenceRSToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* pathlossReferenceRSToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* twoPUSCH-PC-AdjustmentStates */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* deltaMCS */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sri-PUSCH-MappingToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* sri-PUSCH-MappingToReleaseList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_PowerControl_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_PowerControl), + offsetof(struct ASN_RRC_PUSCH_PowerControl, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_PowerControl_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_PowerControl_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PowerControl = { + "PUSCH-PowerControl", + "PUSCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_PowerControl_1, + 10, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.h b/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.h new file mode 100644 index 0000000..3d7c034 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-PowerControl.h @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_PowerControl_H_ +#define _ASN_RRC_PUSCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_Alpha.h" +#include +#include +#include +#include "ASN_RRC_PUSCH-PathlossReferenceRS-Id.h" +#include "ASN_RRC_SRI-PUSCH-PowerControlId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_PowerControl__tpc_Accumulation { + ASN_RRC_PUSCH_PowerControl__tpc_Accumulation_disabled = 0 +} e_ASN_RRC_PUSCH_PowerControl__tpc_Accumulation; +typedef enum ASN_RRC_PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates { + ASN_RRC_PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates_twoStates = 0 +} e_ASN_RRC_PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates; +typedef enum ASN_RRC_PUSCH_PowerControl__deltaMCS { + ASN_RRC_PUSCH_PowerControl__deltaMCS_enabled = 0 +} e_ASN_RRC_PUSCH_PowerControl__deltaMCS; + +/* Forward declarations */ +struct ASN_RRC_P0_PUSCH_AlphaSet; +struct ASN_RRC_PUSCH_PathlossReferenceRS; +struct ASN_RRC_SRI_PUSCH_PowerControl; + +/* ASN_RRC_PUSCH-PowerControl */ +typedef struct ASN_RRC_PUSCH_PowerControl { + long *tpc_Accumulation; /* OPTIONAL */ + ASN_RRC_Alpha_t *msg3_Alpha; /* OPTIONAL */ + long *p0_NominalWithoutGrant; /* OPTIONAL */ + struct ASN_RRC_PUSCH_PowerControl__p0_AlphaSets { + A_SEQUENCE_OF(struct ASN_RRC_P0_PUSCH_AlphaSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *p0_AlphaSets; + struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_PUSCH_PathlossReferenceRS) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pathlossReferenceRSToAddModList; + struct ASN_RRC_PUSCH_PowerControl__pathlossReferenceRSToReleaseList { + A_SEQUENCE_OF(ASN_RRC_PUSCH_PathlossReferenceRS_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pathlossReferenceRSToReleaseList; + long *twoPUSCH_PC_AdjustmentStates; /* OPTIONAL */ + long *deltaMCS; /* OPTIONAL */ + struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SRI_PUSCH_PowerControl) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sri_PUSCH_MappingToAddModList; + struct ASN_RRC_PUSCH_PowerControl__sri_PUSCH_MappingToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SRI_PUSCH_PowerControlId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sri_PUSCH_MappingToReleaseList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_Accumulation_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUSCH_PC_AdjustmentStates_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_deltaMCS_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_PowerControl_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_PowerControl_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.c b/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.c new file mode 100644 index 0000000..6a5e3c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.c @@ -0,0 +1,260 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-ServingCellConfig.h" + +#include "ASN_RRC_SetupRelease.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 int +memb_ASN_RRC_maxMIMO_Layers_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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_ASN_RRC_rateMatching_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_xOverhead_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxMIMO_Layers_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rateMatching_value2enum_3[] = { + { 0, 15, "limitedBufferRM" } +}; +static const unsigned int asn_MAP_ASN_RRC_rateMatching_enum2value_3[] = { + 0 /* limitedBufferRM(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rateMatching_specs_3 = { + asn_MAP_ASN_RRC_rateMatching_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rateMatching_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatching_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_ASN_RRC_rateMatching_3 = { + "rateMatching", + "rateMatching", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rateMatching_tags_3, + sizeof(asn_DEF_ASN_RRC_rateMatching_tags_3) + /sizeof(asn_DEF_ASN_RRC_rateMatching_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatching_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatching_tags_3) + /sizeof(asn_DEF_ASN_RRC_rateMatching_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatching_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rateMatching_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_xOverhead_value2enum_5[] = { + { 0, 4, "xoh6" }, + { 1, 5, "xoh12" }, + { 2, 5, "xoh18" } +}; +static const unsigned int asn_MAP_ASN_RRC_xOverhead_enum2value_5[] = { + 1, /* xoh12(1) */ + 2, /* xoh18(2) */ + 0 /* xoh6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_xOverhead_specs_5 = { + asn_MAP_ASN_RRC_xOverhead_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_xOverhead_enum2value_5, /* 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_ASN_RRC_xOverhead_tags_5[] = { + (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_ASN_RRC_xOverhead_5 = { + "xOverhead", + "xOverhead", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_xOverhead_tags_5, + sizeof(asn_DEF_ASN_RRC_xOverhead_tags_5) + /sizeof(asn_DEF_ASN_RRC_xOverhead_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_xOverhead_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_xOverhead_tags_5) + /sizeof(asn_DEF_ASN_RRC_xOverhead_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_xOverhead_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_xOverhead_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_10[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig__ext1, maxMIMO_Layers), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxMIMO_Layers_constr_11, memb_ASN_RRC_maxMIMO_Layers_constraint_10 }, + 0, 0, /* No default value */ + "maxMIMO-Layers" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig__ext1, processingType2Enabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "processingType2Enabled" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_10[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxMIMO-Layers */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* processingType2Enabled */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_10 = { + sizeof(struct ASN_RRC_PUSCH_ServingCellConfig__ext1), + offsetof(struct ASN_RRC_PUSCH_ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_10, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_10, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_10 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_10, + sizeof(asn_DEF_ASN_RRC_ext1_tags_10) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_10) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_ServingCellConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig, codeBlockGroupTransmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codeBlockGroupTransmission" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig, rateMatching), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rateMatching_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatching" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig, xOverhead), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_xOverhead_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xOverhead" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_ServingCellConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_ServingCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* codeBlockGroupTransmission */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rateMatching */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* xOverhead */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_ServingCellConfig_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_ServingCellConfig), + offsetof(struct ASN_RRC_PUSCH_ServingCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_ServingCellConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_ServingCellConfig_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_ServingCellConfig = { + "PUSCH-ServingCellConfig", + "PUSCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_ServingCellConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.h b/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.h new file mode 100644 index 0000000..4f71a72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-ServingCellConfig.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_ServingCellConfig_H_ +#define _ASN_RRC_PUSCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_ServingCellConfig__rateMatching { + ASN_RRC_PUSCH_ServingCellConfig__rateMatching_limitedBufferRM = 0 +} e_ASN_RRC_PUSCH_ServingCellConfig__rateMatching; +typedef enum ASN_RRC_PUSCH_ServingCellConfig__xOverhead { + ASN_RRC_PUSCH_ServingCellConfig__xOverhead_xoh6 = 0, + ASN_RRC_PUSCH_ServingCellConfig__xOverhead_xoh12 = 1, + ASN_RRC_PUSCH_ServingCellConfig__xOverhead_xoh18 = 2 +} e_ASN_RRC_PUSCH_ServingCellConfig__xOverhead; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission; + +/* ASN_RRC_PUSCH-ServingCellConfig */ +typedef struct ASN_RRC_PUSCH_ServingCellConfig { + struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission *codeBlockGroupTransmission; /* OPTIONAL */ + long *rateMatching; /* OPTIONAL */ + long *xOverhead; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_PUSCH_ServingCellConfig__ext1 { + long *maxMIMO_Layers; /* OPTIONAL */ + BOOLEAN_t *processingType2Enabled; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatching_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_xOverhead_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_ServingCellConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_ServingCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.c b/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.c new file mode 100644 index 0000000..16dc59e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-TPC-CommandConfig.h" + +static int +memb_ASN_RRC_tpc_Index_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 <= 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_ASN_RRC_tpc_IndexSUL_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 <= 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_ASN_RRC_tpc_Index_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_tpc_IndexSUL_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_TPC_CommandConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PUSCH_TPC_CommandConfig, tpc_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_tpc_Index_constr_2, memb_ASN_RRC_tpc_Index_constraint_1 }, + 0, 0, /* No default value */ + "tpc-Index" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PUSCH_TPC_CommandConfig, tpc_IndexSUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_tpc_IndexSUL_constr_3, memb_ASN_RRC_tpc_IndexSUL_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexSUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_TPC_CommandConfig, targetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCell" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_TPC_CommandConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_TPC_CommandConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tpc-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tpc-IndexSUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* targetCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_TPC_CommandConfig_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_TPC_CommandConfig), + offsetof(struct ASN_RRC_PUSCH_TPC_CommandConfig, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_TPC_CommandConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_TPC_CommandConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig = { + "PUSCH-TPC-CommandConfig", + "PUSCH-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_TPC_CommandConfig_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.h b/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.h new file mode 100644 index 0000000..72ba353 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TPC-CommandConfig.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_TPC_CommandConfig_H_ +#define _ASN_RRC_PUSCH_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PUSCH-TPC-CommandConfig */ +typedef struct ASN_RRC_PUSCH_TPC_CommandConfig { + long *tpc_Index; /* OPTIONAL */ + long *tpc_IndexSUL; /* OPTIONAL */ + ASN_RRC_ServCellIndex_t *targetCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_TPC_CommandConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_TPC_CommandConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.c b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.c new file mode 100644 index 0000000..711ae2b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-TimeDomainResourceAllocation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_k2_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 <= 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 int +memb_ASN_RRC_startSymbolAndLength_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 <= 127)) { + /* Constraint 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_ASN_RRC_mappingType_constr_3 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_ASN_RRC_k2_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 32 } /* (0..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startSymbolAndLength_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mappingType_value2enum_3[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" } +}; +static const unsigned int asn_MAP_ASN_RRC_mappingType_enum2value_3[] = { + 0, /* typeA(0) */ + 1 /* typeB(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mappingType_specs_3 = { + asn_MAP_ASN_RRC_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mappingType_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mappingType_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_ASN_RRC_mappingType_3 = { + "mappingType", + "mappingType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mappingType_tags_3, + sizeof(asn_DEF_ASN_RRC_mappingType_tags_3) + /sizeof(asn_DEF_ASN_RRC_mappingType_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mappingType_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mappingType_tags_3) + /sizeof(asn_DEF_ASN_RRC_mappingType_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mappingType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mappingType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_TimeDomainResourceAllocation_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation, k2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_k2_constr_2, memb_ASN_RRC_k2_constraint_1 }, + 0, 0, /* No default value */ + "k2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation, mappingType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mappingType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation, startSymbolAndLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startSymbolAndLength_constr_6, memb_ASN_RRC_startSymbolAndLength_constraint_1 }, + 0, 0, /* No default value */ + "startSymbolAndLength" + }, +}; +static const int asn_MAP_ASN_RRC_PUSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* k2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mappingType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* startSymbolAndLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocation_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation), + offsetof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation, _asn_ctx), + asn_MAP_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PUSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation = { + "PUSCH-TimeDomainResourceAllocation", + "PUSCH-TimeDomainResourceAllocation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PUSCH_TimeDomainResourceAllocation_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.h b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.h new file mode 100644 index 0000000..17f9aa7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocation.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_TimeDomainResourceAllocation_H_ +#define _ASN_RRC_PUSCH_TimeDomainResourceAllocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PUSCH_TimeDomainResourceAllocation__mappingType { + ASN_RRC_PUSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, + ASN_RRC_PUSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 +} e_ASN_RRC_PUSCH_TimeDomainResourceAllocation__mappingType; + +/* ASN_RRC_PUSCH-TimeDomainResourceAllocation */ +typedef struct ASN_RRC_PUSCH_TimeDomainResourceAllocation { + long *k2; /* OPTIONAL */ + long mappingType; + long startSymbolAndLength; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_TimeDomainResourceAllocation_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mappingType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_TimeDomainResourceAllocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_TimeDomainResourceAllocation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.c b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.c new file mode 100644 index 0000000..be05be6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h" + +#include "ASN_RRC_PUSCH-TimeDomainResourceAllocation.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_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_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_specs_1 = { + sizeof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList), + offsetof(struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList = { + "PUSCH-TimeDomainResourceAllocationList", + "PUSCH-TimeDomainResourceAllocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1, + sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h new file mode 100644 index 0000000..8fcf674 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PUSCH_TimeDomainResourceAllocationList_H_ +#define _ASN_RRC_PUSCH_TimeDomainResourceAllocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PUSCH_TimeDomainResourceAllocation; + +/* ASN_RRC_PUSCH-TimeDomainResourceAllocationList */ +typedef struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList { + A_SEQUENCE_OF(struct ASN_RRC_PUSCH_TimeDomainResourceAllocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PUSCH_TimeDomainResourceAllocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PUSCH_TimeDomainResourceAllocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PUSCH_TimeDomainResourceAllocationList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Paging.c b/src/asn/rrc/ASN_RRC_Paging.c new file mode 100644 index 0000000..48c41b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Paging.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Paging.h" + +#include "ASN_RRC_PagingRecordList.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_Paging__nonCriticalExtension), + offsetof(struct ASN_RRC_Paging__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Paging_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Paging, pagingRecordList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PagingRecordList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingRecordList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Paging, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Paging, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_Paging_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Paging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Paging_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pagingRecordList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Paging_specs_1 = { + sizeof(struct ASN_RRC_Paging), + offsetof(struct ASN_RRC_Paging, _asn_ctx), + asn_MAP_ASN_RRC_Paging_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Paging_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Paging = { + "Paging", + "Paging", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Paging_tags_1, + sizeof(asn_DEF_ASN_RRC_Paging_tags_1) + /sizeof(asn_DEF_ASN_RRC_Paging_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Paging_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Paging_tags_1) + /sizeof(asn_DEF_ASN_RRC_Paging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Paging_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_Paging_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Paging.h b/src/asn/rrc/ASN_RRC_Paging.h new file mode 100644 index 0000000..7de55cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Paging.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Paging_H_ +#define _ASN_RRC_Paging_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PagingRecordList; + +/* ASN_RRC_Paging */ +typedef struct ASN_RRC_Paging { + struct ASN_RRC_PagingRecordList *pagingRecordList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_Paging__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Paging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Paging; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Paging_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Paging_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Paging_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PagingCycle.c b/src/asn/rrc/ASN_RRC_PagingCycle.c new file mode 100644 index 0000000..27775f7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingCycle.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PagingCycle.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PagingCycle_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_ASN_RRC_PagingCycle_value2enum_1[] = { + { 0, 4, "rf32" }, + { 1, 4, "rf64" }, + { 2, 5, "rf128" }, + { 3, 5, "rf256" } +}; +static const unsigned int asn_MAP_ASN_RRC_PagingCycle_enum2value_1[] = { + 2, /* rf128(2) */ + 3, /* rf256(3) */ + 0, /* rf32(0) */ + 1 /* rf64(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PagingCycle_specs_1 = { + asn_MAP_ASN_RRC_PagingCycle_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_PagingCycle_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_ASN_RRC_PagingCycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingCycle = { + "PagingCycle", + "PagingCycle", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_PagingCycle_tags_1, + sizeof(asn_DEF_ASN_RRC_PagingCycle_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingCycle_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PagingCycle_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PagingCycle_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingCycle_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PagingCycle_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_PagingCycle_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PagingCycle.h b/src/asn/rrc/ASN_RRC_PagingCycle.h new file mode 100644 index 0000000..7fa6ba3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingCycle.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PagingCycle_H_ +#define _ASN_RRC_PagingCycle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PagingCycle { + ASN_RRC_PagingCycle_rf32 = 0, + ASN_RRC_PagingCycle_rf64 = 1, + ASN_RRC_PagingCycle_rf128 = 2, + ASN_RRC_PagingCycle_rf256 = 3 +} e_ASN_RRC_PagingCycle; + +/* ASN_RRC_PagingCycle */ +typedef long ASN_RRC_PagingCycle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PagingCycle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingCycle; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PagingCycle_specs_1; +asn_struct_free_f ASN_RRC_PagingCycle_free; +asn_struct_print_f ASN_RRC_PagingCycle_print; +asn_constr_check_f ASN_RRC_PagingCycle_constraint; +ber_type_decoder_f ASN_RRC_PagingCycle_decode_ber; +der_type_encoder_f ASN_RRC_PagingCycle_encode_der; +xer_type_decoder_f ASN_RRC_PagingCycle_decode_xer; +xer_type_encoder_f ASN_RRC_PagingCycle_encode_xer; +per_type_decoder_f ASN_RRC_PagingCycle_decode_uper; +per_type_encoder_f ASN_RRC_PagingCycle_encode_uper; +per_type_decoder_f ASN_RRC_PagingCycle_decode_aper; +per_type_encoder_f ASN_RRC_PagingCycle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PagingCycle_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PagingRecord.c b/src/asn/rrc/ASN_RRC_PagingRecord.c new file mode 100644 index 0000000..8be2c36 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingRecord.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PagingRecord.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_accessType_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_accessType_value2enum_3[] = { + { 0, 7, "non3GPP" } +}; +static const unsigned int asn_MAP_ASN_RRC_accessType_enum2value_3[] = { + 0 /* non3GPP(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_accessType_specs_3 = { + asn_MAP_ASN_RRC_accessType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_accessType_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_accessType_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_ASN_RRC_accessType_3 = { + "accessType", + "accessType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_accessType_tags_3, + sizeof(asn_DEF_ASN_RRC_accessType_tags_3) + /sizeof(asn_DEF_ASN_RRC_accessType_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_accessType_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_accessType_tags_3) + /sizeof(asn_DEF_ASN_RRC_accessType_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_accessType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_accessType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PagingRecord_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PagingRecord, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PagingUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PagingRecord, accessType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_accessType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accessType" + }, +}; +static const int asn_MAP_ASN_RRC_PagingRecord_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PagingRecord_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PagingRecord_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* accessType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PagingRecord_specs_1 = { + sizeof(struct ASN_RRC_PagingRecord), + offsetof(struct ASN_RRC_PagingRecord, _asn_ctx), + asn_MAP_ASN_RRC_PagingRecord_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PagingRecord_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingRecord = { + "PagingRecord", + "PagingRecord", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PagingRecord_tags_1, + sizeof(asn_DEF_ASN_RRC_PagingRecord_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingRecord_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PagingRecord_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PagingRecord_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingRecord_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PagingRecord_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PagingRecord_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PagingRecord.h b/src/asn/rrc/ASN_RRC_PagingRecord.h new file mode 100644 index 0000000..001e0d9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingRecord.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PagingRecord_H_ +#define _ASN_RRC_PagingRecord_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PagingUE-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PagingRecord__accessType { + ASN_RRC_PagingRecord__accessType_non3GPP = 0 +} e_ASN_RRC_PagingRecord__accessType; + +/* ASN_RRC_PagingRecord */ +typedef struct ASN_RRC_PagingRecord { + ASN_RRC_PagingUE_Identity_t ue_Identity; + long *accessType; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PagingRecord_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_accessType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingRecord; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PagingRecord_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PagingRecord_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PagingRecord_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PagingRecordList.c b/src/asn/rrc/ASN_RRC_PagingRecordList.c new file mode 100644 index 0000000..575d61e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingRecordList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PagingRecordList.h" + +#include "ASN_RRC_PagingRecord.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_PagingRecordList_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_ASN_RRC_PagingRecordList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_PagingRecord, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PagingRecordList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PagingRecordList_specs_1 = { + sizeof(struct ASN_RRC_PagingRecordList), + offsetof(struct ASN_RRC_PagingRecordList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingRecordList = { + "PagingRecordList", + "PagingRecordList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_PagingRecordList_tags_1, + sizeof(asn_DEF_ASN_RRC_PagingRecordList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingRecordList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PagingRecordList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PagingRecordList_tags_1) + /sizeof(asn_DEF_ASN_RRC_PagingRecordList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PagingRecordList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_PagingRecordList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_PagingRecordList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PagingRecordList.h b/src/asn/rrc/ASN_RRC_PagingRecordList.h new file mode 100644 index 0000000..bc5c44f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingRecordList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PagingRecordList_H_ +#define _ASN_RRC_PagingRecordList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PagingRecord; + +/* ASN_RRC_PagingRecordList */ +typedef struct ASN_RRC_PagingRecordList { + A_SEQUENCE_OF(struct ASN_RRC_PagingRecord) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PagingRecordList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingRecordList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_PagingRecordList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PagingRecordList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PagingRecordList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PagingRecordList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PagingUE-Identity.c b/src/asn/rrc/ASN_RRC_PagingUE-Identity.c new file mode 100644 index 0000000..ab9a78d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingUE-Identity.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PagingUE-Identity.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_PagingUE_Identity_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_ASN_RRC_PagingUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PagingUE_Identity, choice.ng_5G_S_TMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NG_5G_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PagingUE_Identity, choice.fullI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullI-RNTI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PagingUE_Identity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ng-5G-S-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fullI-RNTI */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PagingUE_Identity_specs_1 = { + sizeof(struct ASN_RRC_PagingUE_Identity), + offsetof(struct ASN_RRC_PagingUE_Identity, _asn_ctx), + offsetof(struct ASN_RRC_PagingUE_Identity, present), + sizeof(((struct ASN_RRC_PagingUE_Identity *)0)->present), + asn_MAP_ASN_RRC_PagingUE_Identity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingUE_Identity = { + "PagingUE-Identity", + "PagingUE-Identity", + &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_ASN_RRC_PagingUE_Identity_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_PagingUE_Identity_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_PagingUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PagingUE-Identity.h b/src/asn/rrc/ASN_RRC_PagingUE-Identity.h new file mode 100644 index 0000000..0709d48 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PagingUE-Identity.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PagingUE_Identity_H_ +#define _ASN_RRC_PagingUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NG-5G-S-TMSI.h" +#include "ASN_RRC_I-RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PagingUE_Identity_PR { + ASN_RRC_PagingUE_Identity_PR_NOTHING, /* No components present */ + ASN_RRC_PagingUE_Identity_PR_ng_5G_S_TMSI, + ASN_RRC_PagingUE_Identity_PR_fullI_RNTI + /* Extensions may appear below */ + +} ASN_RRC_PagingUE_Identity_PR; + +/* ASN_RRC_PagingUE-Identity */ +typedef struct ASN_RRC_PagingUE_Identity { + ASN_RRC_PagingUE_Identity_PR present; + union ASN_RRC_PagingUE_Identity_u { + ASN_RRC_NG_5G_S_TMSI_t ng_5G_S_TMSI; + ASN_RRC_I_RNTI_Value_t fullI_RNTI; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PagingUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PagingUE_Identity; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PagingUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PagingUE_Identity_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PagingUE_Identity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PagingUE_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.c b/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.c new file mode 100644 index 0000000..11dbd80 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PeriodicRNAU-TimerValue.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PeriodicRNAU_TimerValue_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_ASN_RRC_PeriodicRNAU_TimerValue_value2enum_1[] = { + { 0, 4, "min5" }, + { 1, 5, "min10" }, + { 2, 5, "min20" }, + { 3, 5, "min30" }, + { 4, 5, "min60" }, + { 5, 6, "min120" }, + { 6, 6, "min360" }, + { 7, 6, "min720" } +}; +static const unsigned int asn_MAP_ASN_RRC_PeriodicRNAU_TimerValue_enum2value_1[] = { + 1, /* min10(1) */ + 5, /* min120(5) */ + 2, /* min20(2) */ + 3, /* min30(3) */ + 6, /* min360(6) */ + 0, /* min5(0) */ + 4, /* min60(4) */ + 7 /* min720(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PeriodicRNAU_TimerValue_specs_1 = { + asn_MAP_ASN_RRC_PeriodicRNAU_TimerValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_PeriodicRNAU_TimerValue_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_ASN_RRC_PeriodicRNAU_TimerValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue = { + "PeriodicRNAU-TimerValue", + "PeriodicRNAU-TimerValue", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1, + sizeof(asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PeriodicRNAU_TimerValue_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_PeriodicRNAU_TimerValue_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.h b/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.h new file mode 100644 index 0000000..a0409c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicRNAU-TimerValue.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PeriodicRNAU_TimerValue_H_ +#define _ASN_RRC_PeriodicRNAU_TimerValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PeriodicRNAU_TimerValue { + ASN_RRC_PeriodicRNAU_TimerValue_min5 = 0, + ASN_RRC_PeriodicRNAU_TimerValue_min10 = 1, + ASN_RRC_PeriodicRNAU_TimerValue_min20 = 2, + ASN_RRC_PeriodicRNAU_TimerValue_min30 = 3, + ASN_RRC_PeriodicRNAU_TimerValue_min60 = 4, + ASN_RRC_PeriodicRNAU_TimerValue_min120 = 5, + ASN_RRC_PeriodicRNAU_TimerValue_min360 = 6, + ASN_RRC_PeriodicRNAU_TimerValue_min720 = 7 +} e_ASN_RRC_PeriodicRNAU_TimerValue; + +/* ASN_RRC_PeriodicRNAU-TimerValue */ +typedef long ASN_RRC_PeriodicRNAU_TimerValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PeriodicRNAU_TimerValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PeriodicRNAU_TimerValue_specs_1; +asn_struct_free_f ASN_RRC_PeriodicRNAU_TimerValue_free; +asn_struct_print_f ASN_RRC_PeriodicRNAU_TimerValue_print; +asn_constr_check_f ASN_RRC_PeriodicRNAU_TimerValue_constraint; +ber_type_decoder_f ASN_RRC_PeriodicRNAU_TimerValue_decode_ber; +der_type_encoder_f ASN_RRC_PeriodicRNAU_TimerValue_encode_der; +xer_type_decoder_f ASN_RRC_PeriodicRNAU_TimerValue_decode_xer; +xer_type_encoder_f ASN_RRC_PeriodicRNAU_TimerValue_encode_xer; +per_type_decoder_f ASN_RRC_PeriodicRNAU_TimerValue_decode_uper; +per_type_encoder_f ASN_RRC_PeriodicRNAU_TimerValue_encode_uper; +per_type_decoder_f ASN_RRC_PeriodicRNAU_TimerValue_decode_aper; +per_type_encoder_f ASN_RRC_PeriodicRNAU_TimerValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PeriodicRNAU_TimerValue_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.c b/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.c new file mode 100644 index 0000000..f3e8e9a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.c @@ -0,0 +1,251 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PeriodicalReportConfig.h" + +#include "ASN_RRC_MeasReportQuantity.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxReportCells_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 <= 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_ASN_RRC_maxNrofRS_IndexesToReport_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 <= 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_type_ASN_RRC_reportAmount_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxReportCells_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNrofRS_IndexesToReport_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportAmount_value2enum_4[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportAmount_enum2value_4[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportAmount_specs_4 = { + asn_MAP_ASN_RRC_reportAmount_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportAmount_enum2value_4, /* 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_ASN_RRC_reportAmount_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_ASN_RRC_reportAmount_4 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportAmount_tags_4, + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_4) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportAmount_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_4) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportAmount_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportAmount_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PeriodicalReportConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, rsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportAmount_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, reportQuantityCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxReportCells_constr_14, memb_ASN_RRC_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PeriodicalReportConfig, reportQuantityRS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityRS-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PeriodicalReportConfig, maxNrofRS_IndexesToReport), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNrofRS_IndexesToReport_constr_16, memb_ASN_RRC_maxNrofRS_IndexesToReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNrofRS-IndexesToReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, includeBeamMeasurements), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "includeBeamMeasurements" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfig, useWhiteCellList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useWhiteCellList" + }, +}; +static const int asn_MAP_ASN_RRC_PeriodicalReportConfig_oms_1[] = { 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PeriodicalReportConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportInterval */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportAmount */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reportQuantityCell */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxReportCells */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* reportQuantityRS-Indexes */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* maxNrofRS-IndexesToReport */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* includeBeamMeasurements */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 } /* useWhiteCellList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PeriodicalReportConfig_specs_1 = { + sizeof(struct ASN_RRC_PeriodicalReportConfig), + offsetof(struct ASN_RRC_PeriodicalReportConfig, _asn_ctx), + asn_MAP_ASN_RRC_PeriodicalReportConfig_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PeriodicalReportConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicalReportConfig = { + "PeriodicalReportConfig", + "PeriodicalReportConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PeriodicalReportConfig_1, + 9, /* Elements count */ + &asn_SPC_ASN_RRC_PeriodicalReportConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.h b/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.h new file mode 100644 index 0000000..9a157f2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicalReportConfig.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PeriodicalReportConfig_H_ +#define _ASN_RRC_PeriodicalReportConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NR-RS-Type.h" +#include "ASN_RRC_ReportInterval.h" +#include +#include "ASN_RRC_MeasReportQuantity.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PeriodicalReportConfig__reportAmount { + ASN_RRC_PeriodicalReportConfig__reportAmount_r1 = 0, + ASN_RRC_PeriodicalReportConfig__reportAmount_r2 = 1, + ASN_RRC_PeriodicalReportConfig__reportAmount_r4 = 2, + ASN_RRC_PeriodicalReportConfig__reportAmount_r8 = 3, + ASN_RRC_PeriodicalReportConfig__reportAmount_r16 = 4, + ASN_RRC_PeriodicalReportConfig__reportAmount_r32 = 5, + ASN_RRC_PeriodicalReportConfig__reportAmount_r64 = 6, + ASN_RRC_PeriodicalReportConfig__reportAmount_infinity = 7 +} e_ASN_RRC_PeriodicalReportConfig__reportAmount; + +/* Forward declarations */ +struct ASN_RRC_MeasReportQuantity; + +/* ASN_RRC_PeriodicalReportConfig */ +typedef struct ASN_RRC_PeriodicalReportConfig { + ASN_RRC_NR_RS_Type_t rsType; + ASN_RRC_ReportInterval_t reportInterval; + long reportAmount; + ASN_RRC_MeasReportQuantity_t reportQuantityCell; + long maxReportCells; + struct ASN_RRC_MeasReportQuantity *reportQuantityRS_Indexes; /* OPTIONAL */ + long *maxNrofRS_IndexesToReport; /* OPTIONAL */ + BOOLEAN_t includeBeamMeasurements; + BOOLEAN_t useWhiteCellList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PeriodicalReportConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAmount_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicalReportConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PeriodicalReportConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PeriodicalReportConfig_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PeriodicalReportConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.c b/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.c new file mode 100644 index 0000000..4d50d8c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PeriodicalReportConfigInterRAT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxReportCells_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 <= 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_type_ASN_RRC_reportAmount_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxReportCells_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportAmount_value2enum_3[] = { + { 0, 2, "r1" }, + { 1, 2, "r2" }, + { 2, 2, "r4" }, + { 3, 2, "r8" }, + { 4, 3, "r16" }, + { 5, 3, "r32" }, + { 6, 3, "r64" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_reportAmount_enum2value_3[] = { + 7, /* infinity(7) */ + 0, /* r1(0) */ + 4, /* r16(4) */ + 1, /* r2(1) */ + 5, /* r32(5) */ + 2, /* r4(2) */ + 6, /* r64(6) */ + 3 /* r8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportAmount_specs_3 = { + asn_MAP_ASN_RRC_reportAmount_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reportAmount_enum2value_3, /* 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_ASN_RRC_reportAmount_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_ASN_RRC_reportAmount_3 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reportAmount_tags_3, + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_3) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reportAmount_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reportAmount_tags_3) + /sizeof(asn_DEF_ASN_RRC_reportAmount_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reportAmount_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reportAmount_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PeriodicalReportConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfigInterRAT, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfigInterRAT, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportAmount_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfigInterRAT, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PeriodicalReportConfigInterRAT, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxReportCells_constr_13, memb_ASN_RRC_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PeriodicalReportConfigInterRAT_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 }, /* reportQuantity */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxReportCells */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PeriodicalReportConfigInterRAT_specs_1 = { + sizeof(struct ASN_RRC_PeriodicalReportConfigInterRAT), + offsetof(struct ASN_RRC_PeriodicalReportConfigInterRAT, _asn_ctx), + asn_MAP_ASN_RRC_PeriodicalReportConfigInterRAT_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT = { + "PeriodicalReportConfigInterRAT", + "PeriodicalReportConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1, + sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PeriodicalReportConfigInterRAT_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PeriodicalReportConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.h b/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.h new file mode 100644 index 0000000..abcab8e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PeriodicalReportConfigInterRAT.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PeriodicalReportConfigInterRAT_H_ +#define _ASN_RRC_PeriodicalReportConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ReportInterval.h" +#include +#include "ASN_RRC_MeasReportQuantity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount { + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r1 = 0, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r2 = 1, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r4 = 2, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r8 = 3, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r16 = 4, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r32 = 5, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_r64 = 6, + ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount_infinity = 7 +} e_ASN_RRC_PeriodicalReportConfigInterRAT__reportAmount; + +/* ASN_RRC_PeriodicalReportConfigInterRAT */ +typedef struct ASN_RRC_PeriodicalReportConfigInterRAT { + ASN_RRC_ReportInterval_t reportInterval; + long reportAmount; + ASN_RRC_MeasReportQuantity_t reportQuantity; + long maxReportCells; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PeriodicalReportConfigInterRAT_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportAmount_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PeriodicalReportConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PeriodicalReportConfigInterRAT_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PeriodicalReportConfigInterRAT_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-Parameters.c b/src/asn/rrc/ASN_RRC_Phy-Parameters.c new file mode 100644 index 0000000..1c898af --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-Parameters.c @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-Parameters.h" + +#include "ASN_RRC_Phy-ParametersCommon.h" +#include "ASN_RRC_Phy-ParametersXDD-Diff.h" +#include "ASN_RRC_Phy-ParametersFRX-Diff.h" +#include "ASN_RRC_Phy-ParametersFR1.h" +#include "ASN_RRC_Phy-ParametersFR2.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_Parameters_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_Parameters, phy_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersCommon" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_Parameters, phy_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersXDD-Diff" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_Parameters, phy_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFRX-Diff" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_Parameters, phy_ParametersFR1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersFR1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFR1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_Parameters, phy_ParametersFR2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersFR2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFR2" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_Parameters_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* phy-ParametersCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phy-ParametersXDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* phy-ParametersFRX-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* phy-ParametersFR1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* phy-ParametersFR2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_Parameters_specs_1 = { + sizeof(struct ASN_RRC_Phy_Parameters), + offsetof(struct ASN_RRC_Phy_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_Phy_Parameters_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_Parameters_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_Parameters = { + "Phy-Parameters", + "Phy-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_Parameters_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-Parameters.h b/src/asn/rrc/ASN_RRC_Phy-Parameters.h new file mode 100644 index 0000000..586be2e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-Parameters.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_Parameters_H_ +#define _ASN_RRC_Phy_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_Phy_ParametersCommon; +struct ASN_RRC_Phy_ParametersXDD_Diff; +struct ASN_RRC_Phy_ParametersFRX_Diff; +struct ASN_RRC_Phy_ParametersFR1; +struct ASN_RRC_Phy_ParametersFR2; + +/* ASN_RRC_Phy-Parameters */ +typedef struct ASN_RRC_Phy_Parameters { + struct ASN_RRC_Phy_ParametersCommon *phy_ParametersCommon; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersXDD_Diff *phy_ParametersXDD_Diff; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersFRX_Diff *phy_ParametersFRX_Diff; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersFR1 *phy_ParametersFR1; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersFR2 *phy_ParametersFR2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_Parameters_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.c b/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.c new file mode 100644 index 0000000..f765d45 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.c @@ -0,0 +1,2186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersCommon.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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_csi_RS_CFRA_ForHO_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicPRB_BundlingDL_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_CSI_ReportPUCCH_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_CSI_ReportPUSCH_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_nzp_CSI_RS_IntefMgmt_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_precoderGranularityCORESET_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicHARQ_ACK_Codebook_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_semiStaticHARQ_ACK_Codebook_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_spatialBundlingHARQ_ACK_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pucch_Repetition_F1_3_4_constr_24 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ra_Type0_PUSCH_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_MappingTypeA_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_MappingTypeB_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_interleavingVRB_ToPRB_PDSCH_constr_36 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_interSlotFreqHopping_PUSCH_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_RepetitionMultiSlots_constr_44 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_RepetitionMultiSlots_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_downlinkSPS_constr_48 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_configuredUL_GrantType1_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_configuredUL_GrantType2_constr_52 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pre_EmptIndication_DL_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_cbg_TransIndication_DL_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_cbg_TransIndication_UL_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_cbg_FlushIndication_DL_constr_60 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rateMatchingResrcSetSemi_Static_constr_64 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rateMatchingResrcSetDynamic_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bwp_SwitchingDelay_constr_68 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_type_ASN_RRC_dummy_constr_73 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberSearchSpaces_constr_76 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rateMatchingCtrlResrcSetDynamic_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxLayersMIMO_Indication_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_RS_CFRA_ForHO_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_RS_CFRA_ForHO_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_RS_CFRA_ForHO_specs_2 = { + asn_MAP_ASN_RRC_csi_RS_CFRA_ForHO_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_RS_CFRA_ForHO_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_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_ASN_RRC_csi_RS_CFRA_ForHO_2 = { + "csi-RS-CFRA-ForHO", + "csi-RS-CFRA-ForHO", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2, + sizeof(asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2) + /sizeof(asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2) + /sizeof(asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_RS_CFRA_ForHO_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_RS_CFRA_ForHO_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicPRB_BundlingDL_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicPRB_BundlingDL_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicPRB_BundlingDL_specs_4 = { + asn_MAP_ASN_RRC_dynamicPRB_BundlingDL_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicPRB_BundlingDL_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4[] = { + (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_ASN_RRC_dynamicPRB_BundlingDL_4 = { + "dynamicPRB-BundlingDL", + "dynamicPRB-BundlingDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4, + sizeof(asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4) + /sizeof(asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4) + /sizeof(asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicPRB_BundlingDL_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicPRB_BundlingDL_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_CSI_ReportPUCCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_CSI_ReportPUCCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_CSI_ReportPUCCH_specs_6 = { + asn_MAP_ASN_RRC_sp_CSI_ReportPUCCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_CSI_ReportPUCCH_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6[] = { + (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_ASN_RRC_sp_CSI_ReportPUCCH_6 = { + "sp-CSI-ReportPUCCH", + "sp-CSI-ReportPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6, + sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_CSI_ReportPUCCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_CSI_ReportPUCCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_CSI_ReportPUSCH_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_CSI_ReportPUSCH_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_CSI_ReportPUSCH_specs_8 = { + asn_MAP_ASN_RRC_sp_CSI_ReportPUSCH_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_CSI_ReportPUSCH_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_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_ASN_RRC_sp_CSI_ReportPUSCH_8 = { + "sp-CSI-ReportPUSCH", + "sp-CSI-ReportPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8, + sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_CSI_ReportPUSCH_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_CSI_ReportPUSCH_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nzp_CSI_RS_IntefMgmt_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_nzp_CSI_RS_IntefMgmt_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nzp_CSI_RS_IntefMgmt_specs_10 = { + asn_MAP_ASN_RRC_nzp_CSI_RS_IntefMgmt_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nzp_CSI_RS_IntefMgmt_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10[] = { + (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_ASN_RRC_nzp_CSI_RS_IntefMgmt_10 = { + "nzp-CSI-RS-IntefMgmt", + "nzp-CSI-RS-IntefMgmt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10, + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10) + /sizeof(asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nzp_CSI_RS_IntefMgmt_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nzp_CSI_RS_IntefMgmt_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_specs_12 = { + asn_MAP_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12[] = { + (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_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_12 = { + "type2-SP-CSI-Feedback-LongPUCCH", + "type2-SP-CSI-Feedback-LongPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12, + sizeof(asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12) + /sizeof(asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12) + /sizeof(asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_precoderGranularityCORESET_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_precoderGranularityCORESET_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_precoderGranularityCORESET_specs_14 = { + asn_MAP_ASN_RRC_precoderGranularityCORESET_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_precoderGranularityCORESET_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_precoderGranularityCORESET_14 = { + "precoderGranularityCORESET", + "precoderGranularityCORESET", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14, + sizeof(asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14) + /sizeof(asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14) + /sizeof(asn_DEF_ASN_RRC_precoderGranularityCORESET_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_precoderGranularityCORESET_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_precoderGranularityCORESET_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicHARQ_ACK_Codebook_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicHARQ_ACK_Codebook_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicHARQ_ACK_Codebook_specs_16 = { + asn_MAP_ASN_RRC_dynamicHARQ_ACK_Codebook_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicHARQ_ACK_Codebook_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_16 = { + "dynamicHARQ-ACK-Codebook", + "dynamicHARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16, + sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16) + /sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16) + /sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicHARQ_ACK_Codebook_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicHARQ_ACK_Codebook_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_semiStaticHARQ_ACK_Codebook_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_semiStaticHARQ_ACK_Codebook_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_semiStaticHARQ_ACK_Codebook_specs_18 = { + asn_MAP_ASN_RRC_semiStaticHARQ_ACK_Codebook_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_semiStaticHARQ_ACK_Codebook_enum2value_18, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_18 = { + "semiStaticHARQ-ACK-Codebook", + "semiStaticHARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18, + sizeof(asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18) + /sizeof(asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18) + /sizeof(asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_semiStaticHARQ_ACK_Codebook_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_semiStaticHARQ_ACK_Codebook_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_spatialBundlingHARQ_ACK_value2enum_20[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_spatialBundlingHARQ_ACK_enum2value_20[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_spatialBundlingHARQ_ACK_specs_20 = { + asn_MAP_ASN_RRC_spatialBundlingHARQ_ACK_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_spatialBundlingHARQ_ACK_enum2value_20, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_20 = { + "spatialBundlingHARQ-ACK", + "spatialBundlingHARQ-ACK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20, + sizeof(asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20) + /sizeof(asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20) + /sizeof(asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_spatialBundlingHARQ_ACK_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_spatialBundlingHARQ_ACK_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_value2enum_22[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_enum2value_22[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_specs_22 = { + asn_MAP_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_enum2value_22, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_22 = { + "dynamicBetaOffsetInd-HARQ-ACK-CSI", + "dynamicBetaOffsetInd-HARQ-ACK-CSI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22, + sizeof(asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22) + /sizeof(asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22) + /sizeof(asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_Repetition_F1_3_4_value2enum_24[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_Repetition_F1_3_4_enum2value_24[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_Repetition_F1_3_4_specs_24 = { + asn_MAP_ASN_RRC_pucch_Repetition_F1_3_4_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_Repetition_F1_3_4_enum2value_24, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_24 = { + "pucch-Repetition-F1-3-4", + "pucch-Repetition-F1-3-4", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24, + sizeof(asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24) + /sizeof(asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24) + /sizeof(asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_Repetition_F1_3_4_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_Repetition_F1_3_4_specs_24 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ra_Type0_PUSCH_value2enum_26[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ra_Type0_PUSCH_enum2value_26[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ra_Type0_PUSCH_specs_26 = { + asn_MAP_ASN_RRC_ra_Type0_PUSCH_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ra_Type0_PUSCH_enum2value_26, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_Type0_PUSCH_26 = { + "ra-Type0-PUSCH", + "ra-Type0-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26, + sizeof(asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26) + /sizeof(asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26) + /sizeof(asn_DEF_ASN_RRC_ra_Type0_PUSCH_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_Type0_PUSCH_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ra_Type0_PUSCH_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_value2enum_28[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_enum2value_28[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_specs_28 = { + asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_enum2value_28, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_28 = { + "dynamicSwitchRA-Type0-1-PDSCH", + "dynamicSwitchRA-Type0-1-PDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28, + sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_value2enum_30[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_enum2value_30[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_specs_30 = { + asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_enum2value_30, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_30 = { + "dynamicSwitchRA-Type0-1-PUSCH", + "dynamicSwitchRA-Type0-1-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30, + sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30) + /sizeof(asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_tags_30[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_MappingTypeA_value2enum_32[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_MappingTypeA_enum2value_32[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_MappingTypeA_specs_32 = { + asn_MAP_ASN_RRC_pdsch_MappingTypeA_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_MappingTypeA_enum2value_32, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_MappingTypeA_32 = { + "pdsch-MappingTypeA", + "pdsch-MappingTypeA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32, + sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32) + /sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32) + /sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeA_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_MappingTypeA_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_MappingTypeA_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_MappingTypeB_value2enum_34[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_MappingTypeB_enum2value_34[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_MappingTypeB_specs_34 = { + asn_MAP_ASN_RRC_pdsch_MappingTypeB_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_MappingTypeB_enum2value_34, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_MappingTypeB_34 = { + "pdsch-MappingTypeB", + "pdsch-MappingTypeB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34, + sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34) + /sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34) + /sizeof(asn_DEF_ASN_RRC_pdsch_MappingTypeB_tags_34[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_MappingTypeB_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_MappingTypeB_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_interleavingVRB_ToPRB_PDSCH_value2enum_36[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_interleavingVRB_ToPRB_PDSCH_enum2value_36[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_interleavingVRB_ToPRB_PDSCH_specs_36 = { + asn_MAP_ASN_RRC_interleavingVRB_ToPRB_PDSCH_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_interleavingVRB_ToPRB_PDSCH_enum2value_36, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_36 = { + "interleavingVRB-ToPRB-PDSCH", + "interleavingVRB-ToPRB-PDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36, + sizeof(asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36) + /sizeof(asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36) + /sizeof(asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_tags_36[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_interleavingVRB_ToPRB_PDSCH_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_interleavingVRB_ToPRB_PDSCH_specs_36 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_interSlotFreqHopping_PUSCH_value2enum_38[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_interSlotFreqHopping_PUSCH_enum2value_38[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_interSlotFreqHopping_PUSCH_specs_38 = { + asn_MAP_ASN_RRC_interSlotFreqHopping_PUSCH_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_interSlotFreqHopping_PUSCH_enum2value_38, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_38 = { + "interSlotFreqHopping-PUSCH", + "interSlotFreqHopping-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38, + sizeof(asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38) + /sizeof(asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38) + /sizeof(asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_tags_38[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_interSlotFreqHopping_PUSCH_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_interSlotFreqHopping_PUSCH_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_value2enum_40[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_enum2value_40[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_specs_40 = { + asn_MAP_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_enum2value_40, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_40 = { + "type1-PUSCH-RepetitionMultiSlots", + "type1-PUSCH-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40, + sizeof(asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40) + /sizeof(asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40) + /sizeof(asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_tags_40[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_value2enum_42[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_enum2value_42[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_specs_42 = { + asn_MAP_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_enum2value_42, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_42 = { + "type2-PUSCH-RepetitionMultiSlots", + "type2-PUSCH-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42, + sizeof(asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42) + /sizeof(asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42) + /sizeof(asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_tags_42[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_RepetitionMultiSlots_value2enum_44[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_RepetitionMultiSlots_enum2value_44[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_RepetitionMultiSlots_specs_44 = { + asn_MAP_ASN_RRC_pusch_RepetitionMultiSlots_value2enum_44, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_RepetitionMultiSlots_enum2value_44, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_44 = { + "pusch-RepetitionMultiSlots", + "pusch-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44, + sizeof(asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44) + /sizeof(asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44) + /sizeof(asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_tags_44[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_RepetitionMultiSlots_constr_44, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_RepetitionMultiSlots_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_RepetitionMultiSlots_value2enum_46[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_RepetitionMultiSlots_enum2value_46[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_RepetitionMultiSlots_specs_46 = { + asn_MAP_ASN_RRC_pdsch_RepetitionMultiSlots_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_RepetitionMultiSlots_enum2value_46, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_46 = { + "pdsch-RepetitionMultiSlots", + "pdsch-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46, + sizeof(asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46) + /sizeof(asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46) + /sizeof(asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_tags_46[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_RepetitionMultiSlots_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_RepetitionMultiSlots_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_downlinkSPS_value2enum_48[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_downlinkSPS_enum2value_48[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_downlinkSPS_specs_48 = { + asn_MAP_ASN_RRC_downlinkSPS_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_downlinkSPS_enum2value_48, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_downlinkSPS_tags_48[] = { + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_downlinkSPS_48 = { + "downlinkSPS", + "downlinkSPS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_downlinkSPS_tags_48, + sizeof(asn_DEF_ASN_RRC_downlinkSPS_tags_48) + /sizeof(asn_DEF_ASN_RRC_downlinkSPS_tags_48[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_downlinkSPS_tags_48, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_downlinkSPS_tags_48) + /sizeof(asn_DEF_ASN_RRC_downlinkSPS_tags_48[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_downlinkSPS_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_downlinkSPS_specs_48 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_configuredUL_GrantType1_value2enum_50[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_configuredUL_GrantType1_enum2value_50[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_configuredUL_GrantType1_specs_50 = { + asn_MAP_ASN_RRC_configuredUL_GrantType1_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_configuredUL_GrantType1_enum2value_50, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50[] = { + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredUL_GrantType1_50 = { + "configuredUL-GrantType1", + "configuredUL-GrantType1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50, + sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50) + /sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50) + /sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType1_tags_50[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_configuredUL_GrantType1_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_configuredUL_GrantType1_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_configuredUL_GrantType2_value2enum_52[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_configuredUL_GrantType2_enum2value_52[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_configuredUL_GrantType2_specs_52 = { + asn_MAP_ASN_RRC_configuredUL_GrantType2_value2enum_52, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_configuredUL_GrantType2_enum2value_52, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52[] = { + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredUL_GrantType2_52 = { + "configuredUL-GrantType2", + "configuredUL-GrantType2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52, + sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52) + /sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52) + /sizeof(asn_DEF_ASN_RRC_configuredUL_GrantType2_tags_52[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_configuredUL_GrantType2_constr_52, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_configuredUL_GrantType2_specs_52 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pre_EmptIndication_DL_value2enum_54[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pre_EmptIndication_DL_enum2value_54[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pre_EmptIndication_DL_specs_54 = { + asn_MAP_ASN_RRC_pre_EmptIndication_DL_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pre_EmptIndication_DL_enum2value_54, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pre_EmptIndication_DL_54 = { + "pre-EmptIndication-DL", + "pre-EmptIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54, + sizeof(asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54) + /sizeof(asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54) + /sizeof(asn_DEF_ASN_RRC_pre_EmptIndication_DL_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pre_EmptIndication_DL_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pre_EmptIndication_DL_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cbg_TransIndication_DL_value2enum_56[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_cbg_TransIndication_DL_enum2value_56[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cbg_TransIndication_DL_specs_56 = { + asn_MAP_ASN_RRC_cbg_TransIndication_DL_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cbg_TransIndication_DL_enum2value_56, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_TransIndication_DL_56 = { + "cbg-TransIndication-DL", + "cbg-TransIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56, + sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56) + /sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56) + /sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_DL_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cbg_TransIndication_DL_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cbg_TransIndication_DL_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cbg_TransIndication_UL_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_cbg_TransIndication_UL_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cbg_TransIndication_UL_specs_58 = { + asn_MAP_ASN_RRC_cbg_TransIndication_UL_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cbg_TransIndication_UL_enum2value_58, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_TransIndication_UL_58 = { + "cbg-TransIndication-UL", + "cbg-TransIndication-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58, + sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58) + /sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58) + /sizeof(asn_DEF_ASN_RRC_cbg_TransIndication_UL_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cbg_TransIndication_UL_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cbg_TransIndication_UL_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cbg_FlushIndication_DL_value2enum_60[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_cbg_FlushIndication_DL_enum2value_60[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cbg_FlushIndication_DL_specs_60 = { + asn_MAP_ASN_RRC_cbg_FlushIndication_DL_value2enum_60, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cbg_FlushIndication_DL_enum2value_60, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_FlushIndication_DL_60 = { + "cbg-FlushIndication-DL", + "cbg-FlushIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60, + sizeof(asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60) + /sizeof(asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60) + /sizeof(asn_DEF_ASN_RRC_cbg_FlushIndication_DL_tags_60[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cbg_FlushIndication_DL_constr_60, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cbg_FlushIndication_DL_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_value2enum_62[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_enum2value_62[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_specs_62 = { + asn_MAP_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_value2enum_62, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_enum2value_62, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62[] = { + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62 = { + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL", + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62, + sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62) + /sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62) + /sizeof(asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_constr_62, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_specs_62 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rateMatchingResrcSetSemi_Static_value2enum_64[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rateMatchingResrcSetSemi_Static_enum2value_64[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rateMatchingResrcSetSemi_Static_specs_64 = { + asn_MAP_ASN_RRC_rateMatchingResrcSetSemi_Static_value2enum_64, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rateMatchingResrcSetSemi_Static_enum2value_64, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64[] = { + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_64 = { + "rateMatchingResrcSetSemi-Static", + "rateMatchingResrcSetSemi-Static", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64, + sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64) + /sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64) + /sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_tags_64[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchingResrcSetSemi_Static_constr_64, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rateMatchingResrcSetSemi_Static_specs_64 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rateMatchingResrcSetDynamic_value2enum_66[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rateMatchingResrcSetDynamic_enum2value_66[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rateMatchingResrcSetDynamic_specs_66 = { + asn_MAP_ASN_RRC_rateMatchingResrcSetDynamic_value2enum_66, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rateMatchingResrcSetDynamic_enum2value_66, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66[] = { + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_66 = { + "rateMatchingResrcSetDynamic", + "rateMatchingResrcSetDynamic", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66, + sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66) + /sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66) + /sizeof(asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_tags_66[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchingResrcSetDynamic_constr_66, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rateMatchingResrcSetDynamic_specs_66 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bwp_SwitchingDelay_value2enum_68[] = { + { 0, 5, "type1" }, + { 1, 5, "type2" } +}; +static const unsigned int asn_MAP_ASN_RRC_bwp_SwitchingDelay_enum2value_68[] = { + 0, /* type1(0) */ + 1 /* type2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bwp_SwitchingDelay_specs_68 = { + asn_MAP_ASN_RRC_bwp_SwitchingDelay_value2enum_68, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bwp_SwitchingDelay_enum2value_68, /* 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_ASN_RRC_bwp_SwitchingDelay_tags_68[] = { + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_SwitchingDelay_68 = { + "bwp-SwitchingDelay", + "bwp-SwitchingDelay", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68, + sizeof(asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68) + /sizeof(asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68) + /sizeof(asn_DEF_ASN_RRC_bwp_SwitchingDelay_tags_68[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bwp_SwitchingDelay_constr_68, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bwp_SwitchingDelay_specs_68 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_73[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_73[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_73 = { + asn_MAP_ASN_RRC_dummy_value2enum_73, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_73, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_tags_73[] = { + (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_ASN_RRC_dummy_73 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_73, + sizeof(asn_DEF_ASN_RRC_dummy_tags_73) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_73[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_73) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_73[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_73, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_72[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersCommon__ext1, dummy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_72[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_72[] = { + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_72[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dummy */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_72 = { + sizeof(struct ASN_RRC_Phy_ParametersCommon__ext1), + offsetof(struct ASN_RRC_Phy_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_72, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_72, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_72 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_72, + sizeof(asn_DEF_ASN_RRC_ext1_tags_72) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_72[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_72, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_72) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_72[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_72, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSearchSpaces_value2enum_76[] = { + { 0, 3, "n10" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSearchSpaces_enum2value_76[] = { + 0 /* n10(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSearchSpaces_specs_76 = { + asn_MAP_ASN_RRC_maxNumberSearchSpaces_value2enum_76, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSearchSpaces_enum2value_76, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76[] = { + (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_ASN_RRC_maxNumberSearchSpaces_76 = { + "maxNumberSearchSpaces", + "maxNumberSearchSpaces", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76, + sizeof(asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76) + /sizeof(asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76) + /sizeof(asn_DEF_ASN_RRC_maxNumberSearchSpaces_tags_76[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSearchSpaces_constr_76, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSearchSpaces_specs_76 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rateMatchingCtrlResrcSetDynamic_value2enum_78[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_rateMatchingCtrlResrcSetDynamic_enum2value_78[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rateMatchingCtrlResrcSetDynamic_specs_78 = { + asn_MAP_ASN_RRC_rateMatchingCtrlResrcSetDynamic_value2enum_78, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rateMatchingCtrlResrcSetDynamic_enum2value_78, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78[] = { + (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_ASN_RRC_rateMatchingCtrlResrcSetDynamic_78 = { + "rateMatchingCtrlResrcSetDynamic", + "rateMatchingCtrlResrcSetDynamic", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78, + sizeof(asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78) + /sizeof(asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78) + /sizeof(asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_tags_78[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchingCtrlResrcSetDynamic_constr_78, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rateMatchingCtrlResrcSetDynamic_specs_78 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxLayersMIMO_Indication_value2enum_80[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxLayersMIMO_Indication_enum2value_80[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxLayersMIMO_Indication_specs_80 = { + asn_MAP_ASN_RRC_maxLayersMIMO_Indication_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxLayersMIMO_Indication_enum2value_80, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80[] = { + (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_ASN_RRC_maxLayersMIMO_Indication_80 = { + "maxLayersMIMO-Indication", + "maxLayersMIMO-Indication", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80, + sizeof(asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80) + /sizeof(asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80) + /sizeof(asn_DEF_ASN_RRC_maxLayersMIMO_Indication_tags_80[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxLayersMIMO_Indication_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxLayersMIMO_Indication_specs_80 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_75[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersCommon__ext2, maxNumberSearchSpaces), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSearchSpaces_76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSearchSpaces" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersCommon__ext2, rateMatchingCtrlResrcSetDynamic), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_78, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingCtrlResrcSetDynamic" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersCommon__ext2, maxLayersMIMO_Indication), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxLayersMIMO_Indication_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLayersMIMO-Indication" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_75[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_75[] = { + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_75[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberSearchSpaces */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rateMatchingCtrlResrcSetDynamic */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* maxLayersMIMO-Indication */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_75 = { + sizeof(struct ASN_RRC_Phy_ParametersCommon__ext2), + offsetof(struct ASN_RRC_Phy_ParametersCommon__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_75, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_75, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_75 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_75, + sizeof(asn_DEF_ASN_RRC_ext2_tags_75) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_75[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_75, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_75) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_75[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_75, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersCommon_1[] = { + { ATF_POINTER, 36, offsetof(struct ASN_RRC_Phy_ParametersCommon, csi_RS_CFRA_ForHO), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-CFRA-ForHO" + }, + { ATF_POINTER, 35, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicPRB_BundlingDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicPRB-BundlingDL" + }, + { ATF_POINTER, 34, offsetof(struct ASN_RRC_Phy_ParametersCommon, sp_CSI_ReportPUCCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-ReportPUCCH" + }, + { ATF_POINTER, 33, offsetof(struct ASN_RRC_Phy_ParametersCommon, sp_CSI_ReportPUSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-ReportPUSCH" + }, + { ATF_POINTER, 32, offsetof(struct ASN_RRC_Phy_ParametersCommon, nzp_CSI_RS_IntefMgmt), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-IntefMgmt" + }, + { ATF_POINTER, 31, offsetof(struct ASN_RRC_Phy_ParametersCommon, type2_SP_CSI_Feedback_LongPUCCH), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2-SP-CSI-Feedback-LongPUCCH" + }, + { ATF_POINTER, 30, offsetof(struct ASN_RRC_Phy_ParametersCommon, precoderGranularityCORESET), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_precoderGranularityCORESET_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "precoderGranularityCORESET" + }, + { ATF_POINTER, 29, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicHARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicHARQ-ACK-Codebook" + }, + { ATF_POINTER, 28, offsetof(struct ASN_RRC_Phy_ParametersCommon, semiStaticHARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStaticHARQ-ACK-Codebook" + }, + { ATF_POINTER, 27, offsetof(struct ASN_RRC_Phy_ParametersCommon, spatialBundlingHARQ_ACK), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spatialBundlingHARQ-ACK" + }, + { ATF_POINTER, 26, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicBetaOffsetInd_HARQ_ACK_CSI), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicBetaOffsetInd-HARQ-ACK-CSI" + }, + { ATF_POINTER, 25, offsetof(struct ASN_RRC_Phy_ParametersCommon, pucch_Repetition_F1_3_4), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Repetition-F1-3-4" + }, + { ATF_POINTER, 24, offsetof(struct ASN_RRC_Phy_ParametersCommon, ra_Type0_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ra_Type0_PUSCH_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Type0-PUSCH" + }, + { ATF_POINTER, 23, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicSwitchRA_Type0_1_PDSCH), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchRA-Type0-1-PDSCH" + }, + { ATF_POINTER, 22, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicSwitchRA_Type0_1_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchRA-Type0-1-PUSCH" + }, + { ATF_POINTER, 21, offsetof(struct ASN_RRC_Phy_ParametersCommon, pdsch_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_MappingTypeA_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-MappingTypeA" + }, + { ATF_POINTER, 20, offsetof(struct ASN_RRC_Phy_ParametersCommon, pdsch_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_MappingTypeB_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-MappingTypeB" + }, + { ATF_POINTER, 19, offsetof(struct ASN_RRC_Phy_ParametersCommon, interleavingVRB_ToPRB_PDSCH), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleavingVRB-ToPRB-PDSCH" + }, + { ATF_POINTER, 18, offsetof(struct ASN_RRC_Phy_ParametersCommon, interSlotFreqHopping_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interSlotFreqHopping-PUSCH" + }, + { ATF_POINTER, 17, offsetof(struct ASN_RRC_Phy_ParametersCommon, type1_PUSCH_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1-PUSCH-RepetitionMultiSlots" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_Phy_ParametersCommon, type2_PUSCH_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2-PUSCH-RepetitionMultiSlots" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_Phy_ParametersCommon, pusch_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-RepetitionMultiSlots" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_Phy_ParametersCommon, pdsch_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RepetitionMultiSlots" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_Phy_ParametersCommon, downlinkSPS), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_downlinkSPS_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSPS" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_Phy_ParametersCommon, configuredUL_GrantType1), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_configuredUL_GrantType1_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredUL-GrantType1" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_Phy_ParametersCommon, configuredUL_GrantType2), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_configuredUL_GrantType2_52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredUL-GrantType2" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_Phy_ParametersCommon, pre_EmptIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pre_EmptIndication_DL_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-EmptIndication-DL" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_Phy_ParametersCommon, cbg_TransIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cbg_TransIndication_DL_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-TransIndication-DL" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_Phy_ParametersCommon, cbg_TransIndication_UL), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cbg_TransIndication_UL_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-TransIndication-UL" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_Phy_ParametersCommon, cbg_FlushIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cbg_FlushIndication_DL_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-FlushIndication-DL" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_Phy_ParametersCommon, dynamicHARQ_ACK_CodeB_CBG_Retx_DL), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_ParametersCommon, rateMatchingResrcSetSemi_Static), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingResrcSetSemi-Static" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_ParametersCommon, rateMatchingResrcSetDynamic), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingResrcSetDynamic" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersCommon, bwp_SwitchingDelay), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bwp_SwitchingDelay_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-SwitchingDelay" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersCommon, ext2), + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_75, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-CFRA-ForHO */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dynamicPRB-BundlingDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sp-CSI-ReportPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sp-CSI-ReportPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nzp-CSI-RS-IntefMgmt */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* type2-SP-CSI-Feedback-LongPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* precoderGranularityCORESET */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* dynamicHARQ-ACK-Codebook */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* semiStaticHARQ-ACK-Codebook */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* spatialBundlingHARQ-ACK */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* dynamicBetaOffsetInd-HARQ-ACK-CSI */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* pucch-Repetition-F1-3-4 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* ra-Type0-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* dynamicSwitchRA-Type0-1-PDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* dynamicSwitchRA-Type0-1-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* pdsch-MappingTypeA */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* pdsch-MappingTypeB */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* interleavingVRB-ToPRB-PDSCH */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* interSlotFreqHopping-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* type1-PUSCH-RepetitionMultiSlots */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* type2-PUSCH-RepetitionMultiSlots */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* pusch-RepetitionMultiSlots */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* pdsch-RepetitionMultiSlots */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* downlinkSPS */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* configuredUL-GrantType1 */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* configuredUL-GrantType2 */ + { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* pre-EmptIndication-DL */ + { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* cbg-TransIndication-DL */ + { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* cbg-TransIndication-UL */ + { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* cbg-FlushIndication-DL */ + { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 }, /* dynamicHARQ-ACK-CodeB-CBG-Retx-DL */ + { (ASN_TAG_CLASS_CONTEXT | (31 << 2)), 31, 0, 0 }, /* rateMatchingResrcSetSemi-Static */ + { (ASN_TAG_CLASS_CONTEXT | (32 << 2)), 32, 0, 0 }, /* rateMatchingResrcSetDynamic */ + { (ASN_TAG_CLASS_CONTEXT | (33 << 2)), 33, 0, 0 }, /* bwp-SwitchingDelay */ + { (ASN_TAG_CLASS_CONTEXT | (34 << 2)), 34, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (35 << 2)), 35, 0, 0 } /* ext2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersCommon_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersCommon), + offsetof(struct ASN_RRC_Phy_ParametersCommon, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersCommon_tag2el_1, + 36, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersCommon_oms_1, /* Optional members */ + 34, 2, /* Root/Additions */ + 34, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersCommon = { + "Phy-ParametersCommon", + "Phy-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersCommon_1, + 36, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.h b/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.h new file mode 100644 index 0000000..8c9f2aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersCommon.h @@ -0,0 +1,246 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersCommon_H_ +#define _ASN_RRC_Phy_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Phy_ParametersCommon__csi_RS_CFRA_ForHO { + ASN_RRC_Phy_ParametersCommon__csi_RS_CFRA_ForHO_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__csi_RS_CFRA_ForHO; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicPRB_BundlingDL { + ASN_RRC_Phy_ParametersCommon__dynamicPRB_BundlingDL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicPRB_BundlingDL; +typedef enum ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUCCH { + ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUCCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUCCH; +typedef enum ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUSCH { + ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__sp_CSI_ReportPUSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt { + ASN_RRC_Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt; +typedef enum ASN_RRC_Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH { + ASN_RRC_Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH; +typedef enum ASN_RRC_Phy_ParametersCommon__precoderGranularityCORESET { + ASN_RRC_Phy_ParametersCommon__precoderGranularityCORESET_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__precoderGranularityCORESET; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_Codebook { + ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_Codebook_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_Codebook; +typedef enum ASN_RRC_Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook { + ASN_RRC_Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook; +typedef enum ASN_RRC_Phy_ParametersCommon__spatialBundlingHARQ_ACK { + ASN_RRC_Phy_ParametersCommon__spatialBundlingHARQ_ACK_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__spatialBundlingHARQ_ACK; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI { + ASN_RRC_Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI; +typedef enum ASN_RRC_Phy_ParametersCommon__pucch_Repetition_F1_3_4 { + ASN_RRC_Phy_ParametersCommon__pucch_Repetition_F1_3_4_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pucch_Repetition_F1_3_4; +typedef enum ASN_RRC_Phy_ParametersCommon__ra_Type0_PUSCH { + ASN_RRC_Phy_ParametersCommon__ra_Type0_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__ra_Type0_PUSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH { + ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH { + ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeA { + ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeA_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeA; +typedef enum ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeB { + ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeB_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pdsch_MappingTypeB; +typedef enum ASN_RRC_Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH { + ASN_RRC_Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__interSlotFreqHopping_PUSCH { + ASN_RRC_Phy_ParametersCommon__interSlotFreqHopping_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__interSlotFreqHopping_PUSCH; +typedef enum ASN_RRC_Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots { + ASN_RRC_Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots; +typedef enum ASN_RRC_Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots { + ASN_RRC_Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots; +typedef enum ASN_RRC_Phy_ParametersCommon__pusch_RepetitionMultiSlots { + ASN_RRC_Phy_ParametersCommon__pusch_RepetitionMultiSlots_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pusch_RepetitionMultiSlots; +typedef enum ASN_RRC_Phy_ParametersCommon__pdsch_RepetitionMultiSlots { + ASN_RRC_Phy_ParametersCommon__pdsch_RepetitionMultiSlots_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pdsch_RepetitionMultiSlots; +typedef enum ASN_RRC_Phy_ParametersCommon__downlinkSPS { + ASN_RRC_Phy_ParametersCommon__downlinkSPS_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__downlinkSPS; +typedef enum ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType1 { + ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType1_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType1; +typedef enum ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType2 { + ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType2_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__configuredUL_GrantType2; +typedef enum ASN_RRC_Phy_ParametersCommon__pre_EmptIndication_DL { + ASN_RRC_Phy_ParametersCommon__pre_EmptIndication_DL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__pre_EmptIndication_DL; +typedef enum ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_DL { + ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_DL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_DL; +typedef enum ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_UL { + ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_UL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__cbg_TransIndication_UL; +typedef enum ASN_RRC_Phy_ParametersCommon__cbg_FlushIndication_DL { + ASN_RRC_Phy_ParametersCommon__cbg_FlushIndication_DL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__cbg_FlushIndication_DL; +typedef enum ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL { + ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL; +typedef enum ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetSemi_Static { + ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetSemi_Static_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetSemi_Static; +typedef enum ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetDynamic { + ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetDynamic_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__rateMatchingResrcSetDynamic; +typedef enum ASN_RRC_Phy_ParametersCommon__bwp_SwitchingDelay { + ASN_RRC_Phy_ParametersCommon__bwp_SwitchingDelay_type1 = 0, + ASN_RRC_Phy_ParametersCommon__bwp_SwitchingDelay_type2 = 1 +} e_ASN_RRC_Phy_ParametersCommon__bwp_SwitchingDelay; +typedef enum ASN_RRC_Phy_ParametersCommon__ext1__dummy { + ASN_RRC_Phy_ParametersCommon__ext1__dummy_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__ext1__dummy; +typedef enum ASN_RRC_Phy_ParametersCommon__ext2__maxNumberSearchSpaces { + ASN_RRC_Phy_ParametersCommon__ext2__maxNumberSearchSpaces_n10 = 0 +} e_ASN_RRC_Phy_ParametersCommon__ext2__maxNumberSearchSpaces; +typedef enum ASN_RRC_Phy_ParametersCommon__ext2__rateMatchingCtrlResrcSetDynamic { + ASN_RRC_Phy_ParametersCommon__ext2__rateMatchingCtrlResrcSetDynamic_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__ext2__rateMatchingCtrlResrcSetDynamic; +typedef enum ASN_RRC_Phy_ParametersCommon__ext2__maxLayersMIMO_Indication { + ASN_RRC_Phy_ParametersCommon__ext2__maxLayersMIMO_Indication_supported = 0 +} e_ASN_RRC_Phy_ParametersCommon__ext2__maxLayersMIMO_Indication; + +/* ASN_RRC_Phy-ParametersCommon */ +typedef struct ASN_RRC_Phy_ParametersCommon { + long *csi_RS_CFRA_ForHO; /* OPTIONAL */ + long *dynamicPRB_BundlingDL; /* OPTIONAL */ + long *sp_CSI_ReportPUCCH; /* OPTIONAL */ + long *sp_CSI_ReportPUSCH; /* OPTIONAL */ + long *nzp_CSI_RS_IntefMgmt; /* OPTIONAL */ + long *type2_SP_CSI_Feedback_LongPUCCH; /* OPTIONAL */ + long *precoderGranularityCORESET; /* OPTIONAL */ + long *dynamicHARQ_ACK_Codebook; /* OPTIONAL */ + long *semiStaticHARQ_ACK_Codebook; /* OPTIONAL */ + long *spatialBundlingHARQ_ACK; /* OPTIONAL */ + long *dynamicBetaOffsetInd_HARQ_ACK_CSI; /* OPTIONAL */ + long *pucch_Repetition_F1_3_4; /* OPTIONAL */ + long *ra_Type0_PUSCH; /* OPTIONAL */ + long *dynamicSwitchRA_Type0_1_PDSCH; /* OPTIONAL */ + long *dynamicSwitchRA_Type0_1_PUSCH; /* OPTIONAL */ + long *pdsch_MappingTypeA; /* OPTIONAL */ + long *pdsch_MappingTypeB; /* OPTIONAL */ + long *interleavingVRB_ToPRB_PDSCH; /* OPTIONAL */ + long *interSlotFreqHopping_PUSCH; /* OPTIONAL */ + long *type1_PUSCH_RepetitionMultiSlots; /* OPTIONAL */ + long *type2_PUSCH_RepetitionMultiSlots; /* OPTIONAL */ + long *pusch_RepetitionMultiSlots; /* OPTIONAL */ + long *pdsch_RepetitionMultiSlots; /* OPTIONAL */ + long *downlinkSPS; /* OPTIONAL */ + long *configuredUL_GrantType1; /* OPTIONAL */ + long *configuredUL_GrantType2; /* OPTIONAL */ + long *pre_EmptIndication_DL; /* OPTIONAL */ + long *cbg_TransIndication_DL; /* OPTIONAL */ + long *cbg_TransIndication_UL; /* OPTIONAL */ + long *cbg_FlushIndication_DL; /* OPTIONAL */ + long *dynamicHARQ_ACK_CodeB_CBG_Retx_DL; /* OPTIONAL */ + long *rateMatchingResrcSetSemi_Static; /* OPTIONAL */ + long *rateMatchingResrcSetDynamic; /* OPTIONAL */ + long *bwp_SwitchingDelay; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_Phy_ParametersCommon__ext1 { + long *dummy; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_Phy_ParametersCommon__ext2 { + long *maxNumberSearchSpaces; /* OPTIONAL */ + long *rateMatchingCtrlResrcSetDynamic; /* OPTIONAL */ + long *maxLayersMIMO_Indication; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_RS_CFRA_ForHO_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicPRB_BundlingDL_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_ReportPUCCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_ReportPUSCH_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nzp_CSI_RS_IntefMgmt_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_SP_CSI_Feedback_LongPUCCH_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_precoderGranularityCORESET_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_Codebook_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiStaticHARQ_ACK_Codebook_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_spatialBundlingHARQ_ACK_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicBetaOffsetInd_HARQ_ACK_CSI_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_Repetition_F1_3_4_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_Type0_PUSCH_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PDSCH_28; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSwitchRA_Type0_1_PUSCH_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_MappingTypeA_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_MappingTypeB_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interleavingVRB_ToPRB_PDSCH_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_interSlotFreqHopping_PUSCH_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type1_PUSCH_RepetitionMultiSlots_40; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type2_PUSCH_RepetitionMultiSlots_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_RepetitionMultiSlots_44; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RepetitionMultiSlots_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_downlinkSPS_48; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredUL_GrantType1_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_configuredUL_GrantType2_52; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pre_EmptIndication_DL_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_TransIndication_DL_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_TransIndication_UL_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cbg_FlushIndication_DL_60; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingResrcSetSemi_Static_64; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingResrcSetDynamic_66; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_SwitchingDelay_68; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_73; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSearchSpaces_76; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchingCtrlResrcSetDynamic_78; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxLayersMIMO_Indication_80; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersCommon_1[36]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.c b/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.c new file mode 100644 index 0000000..e73dd35 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.c @@ -0,0 +1,389 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersFR1.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_pdcch_MonitoringSingleOccasion_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_scs_60kHz_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_256QAM_FR1_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_constr_8 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_type_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdcch_MonitoringSingleOccasion_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdcch_MonitoringSingleOccasion_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdcch_MonitoringSingleOccasion_specs_2 = { + asn_MAP_ASN_RRC_pdcch_MonitoringSingleOccasion_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdcch_MonitoringSingleOccasion_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_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_ASN_RRC_pdcch_MonitoringSingleOccasion_2 = { + "pdcch-MonitoringSingleOccasion", + "pdcch-MonitoringSingleOccasion", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2, + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2) + /sizeof(asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdcch_MonitoringSingleOccasion_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdcch_MonitoringSingleOccasion_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scs_60kHz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_scs_60kHz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scs_60kHz_specs_4 = { + asn_MAP_ASN_RRC_scs_60kHz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scs_60kHz_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_scs_60kHz_tags_4[] = { + (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_ASN_RRC_scs_60kHz_4 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scs_60kHz_tags_4, + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scs_60kHz_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_4) + /sizeof(asn_DEF_ASN_RRC_scs_60kHz_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scs_60kHz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scs_60kHz_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_256QAM_FR1_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_256QAM_FR1_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_256QAM_FR1_specs_6 = { + asn_MAP_ASN_RRC_pdsch_256QAM_FR1_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_256QAM_FR1_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6[] = { + (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_ASN_RRC_pdsch_256QAM_FR1_6 = { + "pdsch-256QAM-FR1", + "pdsch-256QAM-FR1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6, + sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6) + /sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6) + /sizeof(asn_DEF_ASN_RRC_pdsch_256QAM_FR1_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_256QAM_FR1_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_256QAM_FR1_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_value2enum_8[] = { + { 0, 3, "n10" }, + { 1, 3, "n20" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_enum2value_8[] = { + 0, /* n10(0) */ + 1 /* n20(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_specs_8 = { + asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_enum2value_8, /* 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_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_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_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_8 = { + "pdsch-RE-MappingFR1-PerSymbol", + "pdsch-RE-MappingFR1-PerSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8, + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_value2enum_13[] = { + { 0, 3, "n16" }, + { 1, 3, "n32" }, + { 2, 3, "n48" }, + { 3, 3, "n64" }, + { 4, 3, "n80" }, + { 5, 3, "n96" }, + { 6, 4, "n112" }, + { 7, 4, "n128" }, + { 8, 4, "n144" }, + { 9, 4, "n160" }, + { 10, 4, "n176" }, + { 11, 4, "n192" }, + { 12, 4, "n208" }, + { 13, 4, "n224" }, + { 14, 4, "n240" }, + { 15, 4, "n256" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_enum2value_13[] = { + 6, /* n112(6) */ + 7, /* n128(7) */ + 8, /* n144(8) */ + 0, /* n16(0) */ + 9, /* n160(9) */ + 10, /* n176(10) */ + 11, /* n192(11) */ + 12, /* n208(12) */ + 13, /* n224(13) */ + 14, /* n240(14) */ + 15, /* n256(15) */ + 1, /* n32(1) */ + 2, /* n48(2) */ + 3, /* n64(3) */ + 4, /* n80(4) */ + 5 /* n96(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_specs_13 = { + asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_enum2value_13, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13[] = { + (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_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_13 = { + "pdsch-RE-MappingFR1-PerSlot", + "pdsch-RE-MappingFR1-PerSlot", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13, + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_12[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFR1__ext1, pdsch_RE_MappingFR1_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR1-PerSlot" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_12[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_12[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-RE-MappingFR1-PerSlot */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_12 = { + sizeof(struct ASN_RRC_Phy_ParametersFR1__ext1), + offsetof(struct ASN_RRC_Phy_ParametersFR1__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_12, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_12, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_12 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_12, + sizeof(asn_DEF_ASN_RRC_ext1_tags_12) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_12) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_12, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFR1_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_ParametersFR1, pdcch_MonitoringSingleOccasion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-MonitoringSingleOccasion" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_ParametersFR1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scs_60kHz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersFR1, pdsch_256QAM_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_256QAM_FR1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-256QAM-FR1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFR1, pdsch_RE_MappingFR1_PerSymbol), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR1-PerSymbol" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFR1, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersFR1_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersFR1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcch-MonitoringSingleOccasion */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* scs-60kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pdsch-256QAM-FR1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pdsch-RE-MappingFR1-PerSymbol */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFR1_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersFR1), + offsetof(struct ASN_RRC_Phy_ParametersFR1, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersFR1_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersFR1_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFR1 = { + "Phy-ParametersFR1", + "Phy-ParametersFR1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersFR1_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersFR1_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.h b/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.h new file mode 100644 index 0000000..af817f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFR1.h @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersFR1_H_ +#define _ASN_RRC_Phy_ParametersFR1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Phy_ParametersFR1__pdcch_MonitoringSingleOccasion { + ASN_RRC_Phy_ParametersFR1__pdcch_MonitoringSingleOccasion_supported = 0 +} e_ASN_RRC_Phy_ParametersFR1__pdcch_MonitoringSingleOccasion; +typedef enum ASN_RRC_Phy_ParametersFR1__scs_60kHz { + ASN_RRC_Phy_ParametersFR1__scs_60kHz_supported = 0 +} e_ASN_RRC_Phy_ParametersFR1__scs_60kHz; +typedef enum ASN_RRC_Phy_ParametersFR1__pdsch_256QAM_FR1 { + ASN_RRC_Phy_ParametersFR1__pdsch_256QAM_FR1_supported = 0 +} e_ASN_RRC_Phy_ParametersFR1__pdsch_256QAM_FR1; +typedef enum ASN_RRC_Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol { + ASN_RRC_Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol_n10 = 0, + ASN_RRC_Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol_n20 = 1 +} e_ASN_RRC_Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol; +typedef enum ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot { + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n16 = 0, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n32 = 1, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n48 = 2, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n64 = 3, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n80 = 4, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n96 = 5, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n112 = 6, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n128 = 7, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n144 = 8, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n160 = 9, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n176 = 10, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n192 = 11, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n208 = 12, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n224 = 13, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n240 = 14, + ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot_n256 = 15 +} e_ASN_RRC_Phy_ParametersFR1__ext1__pdsch_RE_MappingFR1_PerSlot; + +/* ASN_RRC_Phy-ParametersFR1 */ +typedef struct ASN_RRC_Phy_ParametersFR1 { + long *pdcch_MonitoringSingleOccasion; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *pdsch_256QAM_FR1; /* OPTIONAL */ + long *pdsch_RE_MappingFR1_PerSymbol; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_Phy_ParametersFR1__ext1 { + long *pdsch_RE_MappingFR1_PerSlot; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersFR1_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcch_MonitoringSingleOccasion_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scs_60kHz_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_256QAM_FR1_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSymbol_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RE_MappingFR1_PerSlot_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFR1; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFR1_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFR1_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersFR1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.c b/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.c new file mode 100644 index 0000000..7fc1917 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.c @@ -0,0 +1,335 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersFR2.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 asn_per_constraints_t asn_PER_type_ASN_RRC_dummy_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_constr_4 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_type_ASN_RRC_pCell_FR2_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_2 = { + asn_MAP_ASN_RRC_dummy_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_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_ASN_RRC_dummy_2 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_2, + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_2) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_value2enum_4[] = { + { 0, 2, "n6" }, + { 1, 3, "n20" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_enum2value_4[] = { + 1, /* n20(1) */ + 0 /* n6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_specs_4 = { + asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_enum2value_4, /* 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_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4[] = { + (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_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_4 = { + "pdsch-RE-MappingFR2-PerSymbol", + "pdsch-RE-MappingFR2-PerSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4, + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pCell_FR2_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pCell_FR2_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pCell_FR2_specs_9 = { + asn_MAP_ASN_RRC_pCell_FR2_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pCell_FR2_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pCell_FR2_tags_9[] = { + (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_ASN_RRC_pCell_FR2_9 = { + "pCell-FR2", + "pCell-FR2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pCell_FR2_tags_9, + sizeof(asn_DEF_ASN_RRC_pCell_FR2_tags_9) + /sizeof(asn_DEF_ASN_RRC_pCell_FR2_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pCell_FR2_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pCell_FR2_tags_9) + /sizeof(asn_DEF_ASN_RRC_pCell_FR2_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pCell_FR2_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pCell_FR2_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_value2enum_11[] = { + { 0, 3, "n16" }, + { 1, 3, "n32" }, + { 2, 3, "n48" }, + { 3, 3, "n64" }, + { 4, 3, "n80" }, + { 5, 3, "n96" }, + { 6, 4, "n112" }, + { 7, 4, "n128" }, + { 8, 4, "n144" }, + { 9, 4, "n160" }, + { 10, 4, "n176" }, + { 11, 4, "n192" }, + { 12, 4, "n208" }, + { 13, 4, "n224" }, + { 14, 4, "n240" }, + { 15, 4, "n256" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_enum2value_11[] = { + 6, /* n112(6) */ + 7, /* n128(7) */ + 8, /* n144(8) */ + 0, /* n16(0) */ + 9, /* n160(9) */ + 10, /* n176(10) */ + 11, /* n192(11) */ + 12, /* n208(12) */ + 13, /* n224(13) */ + 14, /* n240(14) */ + 15, /* n256(15) */ + 1, /* n32(1) */ + 2, /* n48(2) */ + 3, /* n64(3) */ + 4, /* n80(4) */ + 5 /* n96(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_specs_11 = { + asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_enum2value_11, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11[] = { + (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_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_11 = { + "pdsch-RE-MappingFR2-PerSlot", + "pdsch-RE-MappingFR2-PerSlot", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11, + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11) + /sizeof(asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_8[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFR2__ext1, pCell_FR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pCell_FR2_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pCell-FR2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFR2__ext1, pdsch_RE_MappingFR2_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR2-PerSlot" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_8[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pCell-FR2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pdsch-RE-MappingFR2-PerSlot */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_8 = { + sizeof(struct ASN_RRC_Phy_ParametersFR2__ext1), + offsetof(struct ASN_RRC_Phy_ParametersFR2__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_8, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_8, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_8, + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_8) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_8, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFR2_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersFR2, dummy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFR2, pdsch_RE_MappingFR2_PerSymbol), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR2-PerSymbol" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFR2, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersFR2_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersFR2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdsch-RE-MappingFR2-PerSymbol */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFR2_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersFR2), + offsetof(struct ASN_RRC_Phy_ParametersFR2, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersFR2_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersFR2_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFR2 = { + "Phy-ParametersFR2", + "Phy-ParametersFR2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFR2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersFR2_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersFR2_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.h b/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.h new file mode 100644 index 0000000..d80a59c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFR2.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersFR2_H_ +#define _ASN_RRC_Phy_ParametersFR2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Phy_ParametersFR2__dummy { + ASN_RRC_Phy_ParametersFR2__dummy_supported = 0 +} e_ASN_RRC_Phy_ParametersFR2__dummy; +typedef enum ASN_RRC_Phy_ParametersFR2__pdsch_RE_MappingFR2_PerSymbol { + ASN_RRC_Phy_ParametersFR2__pdsch_RE_MappingFR2_PerSymbol_n6 = 0, + ASN_RRC_Phy_ParametersFR2__pdsch_RE_MappingFR2_PerSymbol_n20 = 1 +} e_ASN_RRC_Phy_ParametersFR2__pdsch_RE_MappingFR2_PerSymbol; +typedef enum ASN_RRC_Phy_ParametersFR2__ext1__pCell_FR2 { + ASN_RRC_Phy_ParametersFR2__ext1__pCell_FR2_supported = 0 +} e_ASN_RRC_Phy_ParametersFR2__ext1__pCell_FR2; +typedef enum ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot { + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n16 = 0, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n32 = 1, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n48 = 2, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n64 = 3, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n80 = 4, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n96 = 5, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n112 = 6, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n128 = 7, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n144 = 8, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n160 = 9, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n176 = 10, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n192 = 11, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n208 = 12, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n224 = 13, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n240 = 14, + ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot_n256 = 15 +} e_ASN_RRC_Phy_ParametersFR2__ext1__pdsch_RE_MappingFR2_PerSlot; + +/* ASN_RRC_Phy-ParametersFR2 */ +typedef struct ASN_RRC_Phy_ParametersFR2 { + long *dummy; /* OPTIONAL */ + long *pdsch_RE_MappingFR2_PerSymbol; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_Phy_ParametersFR2__ext1 { + long *pCell_FR2; /* OPTIONAL */ + long *pdsch_RE_MappingFR2_PerSlot; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersFR2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSymbol_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pCell_FR2_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_RE_MappingFR2_PerSlot_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFR2; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFR2_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFR2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersFR2_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.c b/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.c new file mode 100644 index 0000000..3687bdd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.c @@ -0,0 +1,3037 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersFRX-Diff.h" + +#include "ASN_RRC_CSI-RS-IM-ReceptionForFeedback.h" +#include "ASN_RRC_CSI-RS-ProcFrameworkForSRS.h" +#include "ASN_RRC_CSI-ReportFramework.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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * 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_ASN_RRC_pdcch_BlindDetectionMCG_UE_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 >= 1 && 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_ASN_RRC_pdcch_BlindDetectionSCG_UE_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 >= 1 && 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_dummy1_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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_twoFL_DMRS_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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_dummy2_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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_dummy3_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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_onePortsPTRS_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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_pdcch_BlindDetectionCA_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 >= 4 && value <= 16)) { + /* Constraint 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_ASN_RRC_dynamicSFI_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_supportedDMRS_TypeDL_constr_8 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_type_ASN_RRC_supportedDMRS_TypeUL_constr_11 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_type_ASN_RRC_semiOpenLoopCSI_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_ReportWithoutPMI_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_csi_ReportWithoutCQI_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pucch_F2_WithFH_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pucch_F3_WithFH_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pucch_F4_WithFH_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_freqHoppingPUCCH_F0_2_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_freqHoppingPUCCH_F1_3_4_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_constr_33 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_uci_CodeBlockSegmentation_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_onePUCCH_LongAndShortFormat_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoPUCCH_AnyOthersInSlot_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_intraSlotFreqHopping_PUSCH_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_LBRM_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tpc_PUSCH_RNTI_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tpc_PUCCH_RNTI_constr_48 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tpc_SRS_RNTI_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_absoluteTPC_Command_constr_52 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoDifferentTPC_Loop_PUSCH_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoDifferentTPC_Loop_PUCCH_constr_56 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pusch_HalfPi_BPSK_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pucch_F3_4_HalfPi_BPSK_constr_60 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_almostContiguousCP_OFDM_UL_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_CSI_RS_constr_64 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sp_CSI_IM_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_constr_68 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_multipleCORESET_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sameSymbol_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_diffSymbol_constr_80 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_constr_84 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_constr_88 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ul_SchedulingOffset_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dl_64QAM_MCS_TableAlt_constr_92 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ul_64QAM_MCS_TableAlt_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_cqi_TableAlt_constr_96 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_constr_100 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_constr_102 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_pdcch_BlindDetectionMCG_UE_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_pdcch_BlindDetectionSCG_UE_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 15 } /* (1..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_constr_108 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_dummy1_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_twoFL_DMRS_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dummy2_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dummy3_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_onePortsPTRS_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_pdcch_BlindDetectionCA_constr_45 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 4, 16 } /* (4..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dynamicSFI_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicSFI_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicSFI_specs_2 = { + asn_MAP_ASN_RRC_dynamicSFI_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicSFI_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicSFI_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_ASN_RRC_dynamicSFI_2 = { + "dynamicSFI", + "dynamicSFI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicSFI_tags_2, + sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicSFI_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicSFI_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicSFI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedDMRS_TypeDL_value2enum_8[] = { + { 0, 5, "type1" }, + { 1, 9, "type1And2" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedDMRS_TypeDL_enum2value_8[] = { + 0, /* type1(0) */ + 1 /* type1And2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedDMRS_TypeDL_specs_8 = { + asn_MAP_ASN_RRC_supportedDMRS_TypeDL_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedDMRS_TypeDL_enum2value_8, /* 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_ASN_RRC_supportedDMRS_TypeDL_tags_8[] = { + (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_ASN_RRC_supportedDMRS_TypeDL_8 = { + "supportedDMRS-TypeDL", + "supportedDMRS-TypeDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8, + sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8) + /sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8) + /sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeDL_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedDMRS_TypeDL_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedDMRS_TypeDL_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_supportedDMRS_TypeUL_value2enum_11[] = { + { 0, 5, "type1" }, + { 1, 9, "type1And2" } +}; +static const unsigned int asn_MAP_ASN_RRC_supportedDMRS_TypeUL_enum2value_11[] = { + 0, /* type1(0) */ + 1 /* type1And2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_supportedDMRS_TypeUL_specs_11 = { + asn_MAP_ASN_RRC_supportedDMRS_TypeUL_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_supportedDMRS_TypeUL_enum2value_11, /* 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_ASN_RRC_supportedDMRS_TypeUL_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedDMRS_TypeUL_11 = { + "supportedDMRS-TypeUL", + "supportedDMRS-TypeUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11, + sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11) + /sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11) + /sizeof(asn_DEF_ASN_RRC_supportedDMRS_TypeUL_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedDMRS_TypeUL_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_supportedDMRS_TypeUL_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_semiOpenLoopCSI_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_semiOpenLoopCSI_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_semiOpenLoopCSI_specs_14 = { + asn_MAP_ASN_RRC_semiOpenLoopCSI_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_semiOpenLoopCSI_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiOpenLoopCSI_14 = { + "semiOpenLoopCSI", + "semiOpenLoopCSI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14, + sizeof(asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14) + /sizeof(asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14) + /sizeof(asn_DEF_ASN_RRC_semiOpenLoopCSI_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_semiOpenLoopCSI_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_semiOpenLoopCSI_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_ReportWithoutPMI_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_ReportWithoutPMI_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_ReportWithoutPMI_specs_16 = { + asn_MAP_ASN_RRC_csi_ReportWithoutPMI_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_ReportWithoutPMI_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportWithoutPMI_16 = { + "csi-ReportWithoutPMI", + "csi-ReportWithoutPMI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16, + sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16) + /sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16) + /sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutPMI_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ReportWithoutPMI_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_ReportWithoutPMI_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_csi_ReportWithoutCQI_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_csi_ReportWithoutCQI_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_csi_ReportWithoutCQI_specs_18 = { + asn_MAP_ASN_RRC_csi_ReportWithoutCQI_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_csi_ReportWithoutCQI_enum2value_18, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportWithoutCQI_18 = { + "csi-ReportWithoutCQI", + "csi-ReportWithoutCQI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18, + sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18) + /sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18) + /sizeof(asn_DEF_ASN_RRC_csi_ReportWithoutCQI_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_csi_ReportWithoutCQI_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_csi_ReportWithoutCQI_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_value2enum_21[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_enum2value_21[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_specs_21 = { + asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_enum2value_21, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_21 = { + "twoPUCCH-F0-2-ConsecSymbols", + "twoPUCCH-F0-2-ConsecSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21, + sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_F2_WithFH_value2enum_23[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_F2_WithFH_enum2value_23[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_F2_WithFH_specs_23 = { + asn_MAP_ASN_RRC_pucch_F2_WithFH_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_F2_WithFH_enum2value_23, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F2_WithFH_23 = { + "pucch-F2-WithFH", + "pucch-F2-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23, + sizeof(asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23) + /sizeof(asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23) + /sizeof(asn_DEF_ASN_RRC_pucch_F2_WithFH_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_F2_WithFH_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_F2_WithFH_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_F3_WithFH_value2enum_25[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_F3_WithFH_enum2value_25[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_F3_WithFH_specs_25 = { + asn_MAP_ASN_RRC_pucch_F3_WithFH_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_F3_WithFH_enum2value_25, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F3_WithFH_25 = { + "pucch-F3-WithFH", + "pucch-F3-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25, + sizeof(asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25) + /sizeof(asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25) + /sizeof(asn_DEF_ASN_RRC_pucch_F3_WithFH_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_F3_WithFH_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_F3_WithFH_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_F4_WithFH_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_F4_WithFH_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_F4_WithFH_specs_27 = { + asn_MAP_ASN_RRC_pucch_F4_WithFH_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_F4_WithFH_enum2value_27, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F4_WithFH_27 = { + "pucch-F4-WithFH", + "pucch-F4-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27, + sizeof(asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27) + /sizeof(asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27) + /sizeof(asn_DEF_ASN_RRC_pucch_F4_WithFH_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_F4_WithFH_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_F4_WithFH_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_freqHoppingPUCCH_F0_2_value2enum_29[] = { + { 0, 12, "notSupported" } +}; +static const unsigned int asn_MAP_ASN_RRC_freqHoppingPUCCH_F0_2_enum2value_29[] = { + 0 /* notSupported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_freqHoppingPUCCH_F0_2_specs_29 = { + asn_MAP_ASN_RRC_freqHoppingPUCCH_F0_2_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_freqHoppingPUCCH_F0_2_enum2value_29, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_29 = { + "freqHoppingPUCCH-F0-2", + "freqHoppingPUCCH-F0-2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29, + sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29) + /sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29) + /sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_freqHoppingPUCCH_F0_2_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_freqHoppingPUCCH_F0_2_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_freqHoppingPUCCH_F1_3_4_value2enum_31[] = { + { 0, 12, "notSupported" } +}; +static const unsigned int asn_MAP_ASN_RRC_freqHoppingPUCCH_F1_3_4_enum2value_31[] = { + 0 /* notSupported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_freqHoppingPUCCH_F1_3_4_specs_31 = { + asn_MAP_ASN_RRC_freqHoppingPUCCH_F1_3_4_value2enum_31, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_freqHoppingPUCCH_F1_3_4_enum2value_31, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_31 = { + "freqHoppingPUCCH-F1-3-4", + "freqHoppingPUCCH-F1-3-4", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31, + sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31) + /sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31) + /sizeof(asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_tags_31[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_freqHoppingPUCCH_F1_3_4_constr_31, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_freqHoppingPUCCH_F1_3_4_specs_31 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_value2enum_33[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_enum2value_33[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_specs_33 = { + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_enum2value_33, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_33 = { + "mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot", + "mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33, + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_tags_33[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_uci_CodeBlockSegmentation_value2enum_35[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_uci_CodeBlockSegmentation_enum2value_35[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_uci_CodeBlockSegmentation_specs_35 = { + asn_MAP_ASN_RRC_uci_CodeBlockSegmentation_value2enum_35, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_uci_CodeBlockSegmentation_enum2value_35, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_35 = { + "uci-CodeBlockSegmentation", + "uci-CodeBlockSegmentation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35, + sizeof(asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35) + /sizeof(asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35) + /sizeof(asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_tags_35[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uci_CodeBlockSegmentation_constr_35, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_uci_CodeBlockSegmentation_specs_35 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_onePUCCH_LongAndShortFormat_value2enum_37[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_onePUCCH_LongAndShortFormat_enum2value_37[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_onePUCCH_LongAndShortFormat_specs_37 = { + asn_MAP_ASN_RRC_onePUCCH_LongAndShortFormat_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_onePUCCH_LongAndShortFormat_enum2value_37, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37[] = { + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_37 = { + "onePUCCH-LongAndShortFormat", + "onePUCCH-LongAndShortFormat", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37, + sizeof(asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37) + /sizeof(asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37) + /sizeof(asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_tags_37[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_onePUCCH_LongAndShortFormat_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_onePUCCH_LongAndShortFormat_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUCCH_AnyOthersInSlot_value2enum_39[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUCCH_AnyOthersInSlot_enum2value_39[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUCCH_AnyOthersInSlot_specs_39 = { + asn_MAP_ASN_RRC_twoPUCCH_AnyOthersInSlot_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUCCH_AnyOthersInSlot_enum2value_39, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_39 = { + "twoPUCCH-AnyOthersInSlot", + "twoPUCCH-AnyOthersInSlot", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39, + sizeof(asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_tags_39[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUCCH_AnyOthersInSlot_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUCCH_AnyOthersInSlot_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_intraSlotFreqHopping_PUSCH_value2enum_41[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_intraSlotFreqHopping_PUSCH_enum2value_41[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_intraSlotFreqHopping_PUSCH_specs_41 = { + asn_MAP_ASN_RRC_intraSlotFreqHopping_PUSCH_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_intraSlotFreqHopping_PUSCH_enum2value_41, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_41 = { + "intraSlotFreqHopping-PUSCH", + "intraSlotFreqHopping-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41, + sizeof(asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41) + /sizeof(asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41) + /sizeof(asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_tags_41[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_intraSlotFreqHopping_PUSCH_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_intraSlotFreqHopping_PUSCH_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_LBRM_value2enum_43[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_LBRM_enum2value_43[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_LBRM_specs_43 = { + asn_MAP_ASN_RRC_pusch_LBRM_value2enum_43, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_LBRM_enum2value_43, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_LBRM_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_LBRM_43 = { + "pusch-LBRM", + "pusch-LBRM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_LBRM_tags_43, + sizeof(asn_DEF_ASN_RRC_pusch_LBRM_tags_43) + /sizeof(asn_DEF_ASN_RRC_pusch_LBRM_tags_43[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_LBRM_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_LBRM_tags_43) + /sizeof(asn_DEF_ASN_RRC_pusch_LBRM_tags_43[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_LBRM_constr_43, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_LBRM_specs_43 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tpc_PUSCH_RNTI_value2enum_46[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_tpc_PUSCH_RNTI_enum2value_46[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tpc_PUSCH_RNTI_specs_46 = { + asn_MAP_ASN_RRC_tpc_PUSCH_RNTI_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tpc_PUSCH_RNTI_enum2value_46, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46[] = { + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_46 = { + "tpc-PUSCH-RNTI", + "tpc-PUSCH-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46, + sizeof(asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46) + /sizeof(asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46) + /sizeof(asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_tags_46[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tpc_PUSCH_RNTI_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tpc_PUSCH_RNTI_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tpc_PUCCH_RNTI_value2enum_48[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_tpc_PUCCH_RNTI_enum2value_48[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tpc_PUCCH_RNTI_specs_48 = { + asn_MAP_ASN_RRC_tpc_PUCCH_RNTI_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tpc_PUCCH_RNTI_enum2value_48, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48[] = { + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_48 = { + "tpc-PUCCH-RNTI", + "tpc-PUCCH-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48, + sizeof(asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48) + /sizeof(asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48) + /sizeof(asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_tags_48[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tpc_PUCCH_RNTI_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tpc_PUCCH_RNTI_specs_48 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tpc_SRS_RNTI_value2enum_50[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_tpc_SRS_RNTI_enum2value_50[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tpc_SRS_RNTI_specs_50 = { + asn_MAP_ASN_RRC_tpc_SRS_RNTI_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tpc_SRS_RNTI_enum2value_50, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50[] = { + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_SRS_RNTI_50 = { + "tpc-SRS-RNTI", + "tpc-SRS-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50, + sizeof(asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50) + /sizeof(asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50) + /sizeof(asn_DEF_ASN_RRC_tpc_SRS_RNTI_tags_50[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tpc_SRS_RNTI_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tpc_SRS_RNTI_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_absoluteTPC_Command_value2enum_52[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_absoluteTPC_Command_enum2value_52[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_absoluteTPC_Command_specs_52 = { + asn_MAP_ASN_RRC_absoluteTPC_Command_value2enum_52, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_absoluteTPC_Command_enum2value_52, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52[] = { + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_absoluteTPC_Command_52 = { + "absoluteTPC-Command", + "absoluteTPC-Command", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52, + sizeof(asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52) + /sizeof(asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52) + /sizeof(asn_DEF_ASN_RRC_absoluteTPC_Command_tags_52[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_absoluteTPC_Command_constr_52, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_absoluteTPC_Command_specs_52 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_value2enum_54[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_enum2value_54[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUSCH_specs_54 = { + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_enum2value_54, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_54 = { + "twoDifferentTPC-Loop-PUSCH", + "twoDifferentTPC-Loop-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54, + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoDifferentTPC_Loop_PUSCH_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUSCH_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_value2enum_56[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_enum2value_56[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUCCH_specs_56 = { + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_enum2value_56, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_56 = { + "twoDifferentTPC-Loop-PUCCH", + "twoDifferentTPC-Loop-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56, + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoDifferentTPC_Loop_PUCCH_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUCCH_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pusch_HalfPi_BPSK_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pusch_HalfPi_BPSK_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pusch_HalfPi_BPSK_specs_58 = { + asn_MAP_ASN_RRC_pusch_HalfPi_BPSK_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pusch_HalfPi_BPSK_enum2value_58, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_58 = { + "pusch-HalfPi-BPSK", + "pusch-HalfPi-BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58, + sizeof(asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58) + /sizeof(asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58) + /sizeof(asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_tags_58[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pusch_HalfPi_BPSK_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pusch_HalfPi_BPSK_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pucch_F3_4_HalfPi_BPSK_value2enum_60[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_pucch_F3_4_HalfPi_BPSK_enum2value_60[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pucch_F3_4_HalfPi_BPSK_specs_60 = { + asn_MAP_ASN_RRC_pucch_F3_4_HalfPi_BPSK_value2enum_60, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pucch_F3_4_HalfPi_BPSK_enum2value_60, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_60 = { + "pucch-F3-4-HalfPi-BPSK", + "pucch-F3-4-HalfPi-BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60, + sizeof(asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60) + /sizeof(asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60) + /sizeof(asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_tags_60[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pucch_F3_4_HalfPi_BPSK_constr_60, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pucch_F3_4_HalfPi_BPSK_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_almostContiguousCP_OFDM_UL_value2enum_62[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_almostContiguousCP_OFDM_UL_enum2value_62[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_almostContiguousCP_OFDM_UL_specs_62 = { + asn_MAP_ASN_RRC_almostContiguousCP_OFDM_UL_value2enum_62, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_almostContiguousCP_OFDM_UL_enum2value_62, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62[] = { + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_62 = { + "almostContiguousCP-OFDM-UL", + "almostContiguousCP-OFDM-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62, + sizeof(asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62) + /sizeof(asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62) + /sizeof(asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_tags_62[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_almostContiguousCP_OFDM_UL_constr_62, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_almostContiguousCP_OFDM_UL_specs_62 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_CSI_RS_value2enum_64[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_CSI_RS_enum2value_64[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_CSI_RS_specs_64 = { + asn_MAP_ASN_RRC_sp_CSI_RS_value2enum_64, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_CSI_RS_enum2value_64, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_CSI_RS_tags_64[] = { + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_RS_64 = { + "sp-CSI-RS", + "sp-CSI-RS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_CSI_RS_tags_64, + sizeof(asn_DEF_ASN_RRC_sp_CSI_RS_tags_64) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_RS_tags_64[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_CSI_RS_tags_64, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_CSI_RS_tags_64) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_RS_tags_64[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_CSI_RS_constr_64, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_CSI_RS_specs_64 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sp_CSI_IM_value2enum_66[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sp_CSI_IM_enum2value_66[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sp_CSI_IM_specs_66 = { + asn_MAP_ASN_RRC_sp_CSI_IM_value2enum_66, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sp_CSI_IM_enum2value_66, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sp_CSI_IM_tags_66[] = { + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_IM_66 = { + "sp-CSI-IM", + "sp-CSI-IM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sp_CSI_IM_tags_66, + sizeof(asn_DEF_ASN_RRC_sp_CSI_IM_tags_66) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_IM_tags_66[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sp_CSI_IM_tags_66, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sp_CSI_IM_tags_66) + /sizeof(asn_DEF_ASN_RRC_sp_CSI_IM_tags_66[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sp_CSI_IM_constr_66, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sp_CSI_IM_specs_66 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_value2enum_68[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_enum2value_68[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_specs_68 = { + asn_MAP_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_value2enum_68, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_enum2value_68, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68[] = { + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_68 = { + "tdd-MultiDL-UL-SwitchPerSlot", + "tdd-MultiDL-UL-SwitchPerSlot", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68, + sizeof(asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68) + /sizeof(asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68) + /sizeof(asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_tags_68[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_constr_68, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_specs_68 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_multipleCORESET_value2enum_70[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_multipleCORESET_enum2value_70[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_multipleCORESET_specs_70 = { + asn_MAP_ASN_RRC_multipleCORESET_value2enum_70, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_multipleCORESET_enum2value_70, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_multipleCORESET_tags_70[] = { + (ASN_TAG_CLASS_CONTEXT | (36 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleCORESET_70 = { + "multipleCORESET", + "multipleCORESET", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_multipleCORESET_tags_70, + sizeof(asn_DEF_ASN_RRC_multipleCORESET_tags_70) + /sizeof(asn_DEF_ASN_RRC_multipleCORESET_tags_70[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_multipleCORESET_tags_70, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_multipleCORESET_tags_70) + /sizeof(asn_DEF_ASN_RRC_multipleCORESET_tags_70[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_multipleCORESET_constr_70, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_multipleCORESET_specs_70 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sameSymbol_value2enum_78[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_sameSymbol_enum2value_78[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sameSymbol_specs_78 = { + asn_MAP_ASN_RRC_sameSymbol_value2enum_78, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sameSymbol_enum2value_78, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sameSymbol_tags_78[] = { + (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_ASN_RRC_sameSymbol_78 = { + "sameSymbol", + "sameSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sameSymbol_tags_78, + sizeof(asn_DEF_ASN_RRC_sameSymbol_tags_78) + /sizeof(asn_DEF_ASN_RRC_sameSymbol_tags_78[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sameSymbol_tags_78, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sameSymbol_tags_78) + /sizeof(asn_DEF_ASN_RRC_sameSymbol_tags_78[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sameSymbol_constr_78, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sameSymbol_specs_78 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_diffSymbol_value2enum_80[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_diffSymbol_enum2value_80[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_diffSymbol_specs_80 = { + asn_MAP_ASN_RRC_diffSymbol_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_diffSymbol_enum2value_80, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_diffSymbol_tags_80[] = { + (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_ASN_RRC_diffSymbol_80 = { + "diffSymbol", + "diffSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_diffSymbol_tags_80, + sizeof(asn_DEF_ASN_RRC_diffSymbol_tags_80) + /sizeof(asn_DEF_ASN_RRC_diffSymbol_tags_80[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_diffSymbol_tags_80, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_diffSymbol_tags_80) + /sizeof(asn_DEF_ASN_RRC_diffSymbol_tags_80[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_diffSymbol_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_diffSymbol_specs_80 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_77[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot, sameSymbol), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sameSymbol_78, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sameSymbol" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot, diffSymbol), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_diffSymbol_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffSymbol" + }, +}; +static const int asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_oms_77[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tag2el_77[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sameSymbol */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* diffSymbol */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_specs_77 = { + sizeof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot), + offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot, _asn_ctx), + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tag2el_77, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_oms_77, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_77 = { + "mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot", + "mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77, + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_tags_77[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_77, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_specs_77 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_value2enum_82[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_enum2value_82[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_specs_82 = { + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_value2enum_82, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_enum2value_82, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82[] = { + (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_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_82 = { + "mux-SR-HARQ-ACK-PUCCH", + "mux-SR-HARQ-ACK-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82, + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82) + /sizeof(asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_tags_82[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_constr_82, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_specs_82 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_value2enum_84[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_enum2value_84[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_specs_84 = { + asn_MAP_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_value2enum_84, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_enum2value_84, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84[] = { + (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_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_84 = { + "mux-MultipleGroupCtrlCH-Overlap", + "mux-MultipleGroupCtrlCH-Overlap", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84, + sizeof(asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84) + /sizeof(asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84) + /sizeof(asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_tags_84[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_constr_84, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_specs_84 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_value2enum_86[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_enum2value_86[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_specs_86 = { + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_enum2value_86, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_86 = { + "dl-SchedulingOffset-PDSCH-TypeA", + "dl-SchedulingOffset-PDSCH-TypeA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86, + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_86[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_value2enum_88[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_enum2value_88[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_specs_88 = { + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_value2enum_88, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_enum2value_88, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_88 = { + "dl-SchedulingOffset-PDSCH-TypeB", + "dl-SchedulingOffset-PDSCH-TypeB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88, + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_88[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_constr_88, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_specs_88 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_SchedulingOffset_value2enum_90[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_SchedulingOffset_enum2value_90[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_SchedulingOffset_specs_90 = { + asn_MAP_ASN_RRC_ul_SchedulingOffset_value2enum_90, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_SchedulingOffset_enum2value_90, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SchedulingOffset_90 = { + "ul-SchedulingOffset", + "ul-SchedulingOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90, + sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90) + /sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90) + /sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_90[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_SchedulingOffset_constr_90, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_SchedulingOffset_specs_90 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_64QAM_MCS_TableAlt_value2enum_92[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_64QAM_MCS_TableAlt_enum2value_92[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_64QAM_MCS_TableAlt_specs_92 = { + asn_MAP_ASN_RRC_dl_64QAM_MCS_TableAlt_value2enum_92, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_64QAM_MCS_TableAlt_enum2value_92, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_92 = { + "dl-64QAM-MCS-TableAlt", + "dl-64QAM-MCS-TableAlt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92, + sizeof(asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92) + /sizeof(asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92) + /sizeof(asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_tags_92[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_64QAM_MCS_TableAlt_constr_92, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_64QAM_MCS_TableAlt_specs_92 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_64QAM_MCS_TableAlt_value2enum_94[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_64QAM_MCS_TableAlt_enum2value_94[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_64QAM_MCS_TableAlt_specs_94 = { + asn_MAP_ASN_RRC_ul_64QAM_MCS_TableAlt_value2enum_94, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_64QAM_MCS_TableAlt_enum2value_94, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_94 = { + "ul-64QAM-MCS-TableAlt", + "ul-64QAM-MCS-TableAlt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94, + sizeof(asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94) + /sizeof(asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94) + /sizeof(asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_tags_94[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_64QAM_MCS_TableAlt_constr_94, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_64QAM_MCS_TableAlt_specs_94 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cqi_TableAlt_value2enum_96[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_cqi_TableAlt_enum2value_96[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cqi_TableAlt_specs_96 = { + asn_MAP_ASN_RRC_cqi_TableAlt_value2enum_96, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cqi_TableAlt_enum2value_96, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cqi_TableAlt_tags_96[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_TableAlt_96 = { + "cqi-TableAlt", + "cqi-TableAlt", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cqi_TableAlt_tags_96, + sizeof(asn_DEF_ASN_RRC_cqi_TableAlt_tags_96) + /sizeof(asn_DEF_ASN_RRC_cqi_TableAlt_tags_96[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cqi_TableAlt_tags_96, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cqi_TableAlt_tags_96) + /sizeof(asn_DEF_ASN_RRC_cqi_TableAlt_tags_96[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cqi_TableAlt_constr_96, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cqi_TableAlt_specs_96 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_value2enum_98[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_enum2value_98[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_specs_98 = { + asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_value2enum_98, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_enum2value_98, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_98 = { + "oneFL-DMRS-TwoAdditionalDMRS-UL", + "oneFL-DMRS-TwoAdditionalDMRS-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98, + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_tags_98[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_constr_98, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_specs_98 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_value2enum_100[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_enum2value_100[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_specs_100 = { + asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_value2enum_100, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_enum2value_100, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_100 = { + "twoFL-DMRS-TwoAdditionalDMRS-UL", + "twoFL-DMRS-TwoAdditionalDMRS-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100, + sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100) + /sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100) + /sizeof(asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_tags_100[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_constr_100, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_specs_100 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_value2enum_102[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_enum2value_102[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_specs_102 = { + asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_value2enum_102, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_enum2value_102, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_102 = { + "oneFL-DMRS-ThreeAdditionalDMRS-UL", + "oneFL-DMRS-ThreeAdditionalDMRS-UL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102, + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102) + /sizeof(asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_tags_102[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_constr_102, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_specs_102 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_73[] = { + { ATF_POINTER, 15, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, csi_RS_IM_ReceptionForFeedback), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_IM_ReceptionForFeedback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-IM-ReceptionForFeedback" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, csi_RS_ProcFrameworkForSRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ProcFrameworkForSRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ProcFrameworkForSRS" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, csi_ReportFramework), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ReportFramework, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportFramework" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, mux_SR_HARQ_ACK_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-SR-HARQ-ACK-PUCCH" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, mux_MultipleGroupCtrlCH_Overlap), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_84, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-MultipleGroupCtrlCH-Overlap" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, dl_SchedulingOffset_PDSCH_TypeA), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-SchedulingOffset-PDSCH-TypeA" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, dl_SchedulingOffset_PDSCH_TypeB), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_88, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-SchedulingOffset-PDSCH-TypeB" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, ul_SchedulingOffset), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_SchedulingOffset_90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SchedulingOffset" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, dl_64QAM_MCS_TableAlt), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-64QAM-MCS-TableAlt" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, ul_64QAM_MCS_TableAlt), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-64QAM-MCS-TableAlt" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, cqi_TableAlt), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cqi_TableAlt_96, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cqi-TableAlt" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, oneFL_DMRS_TwoAdditionalDMRS_UL), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFL-DMRS-TwoAdditionalDMRS-UL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, twoFL_DMRS_TwoAdditionalDMRS_UL), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoFL-DMRS-TwoAdditionalDMRS-UL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, oneFL_DMRS_ThreeAdditionalDMRS_UL), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_102, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFL-DMRS-ThreeAdditionalDMRS-UL" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_73[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_73[] = { + (ASN_TAG_CLASS_CONTEXT | (37 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-IM-ReceptionForFeedback */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-ProcFrameworkForSRS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* csi-ReportFramework */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mux-SR-HARQ-ACK-PUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* mux-MultipleGroupCtrlCH-Overlap */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* dl-SchedulingOffset-PDSCH-TypeA */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* dl-SchedulingOffset-PDSCH-TypeB */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* ul-SchedulingOffset */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* dl-64QAM-MCS-TableAlt */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ul-64QAM-MCS-TableAlt */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* cqi-TableAlt */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* oneFL-DMRS-TwoAdditionalDMRS-UL */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* twoFL-DMRS-TwoAdditionalDMRS-UL */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* oneFL-DMRS-ThreeAdditionalDMRS-UL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_73 = { + sizeof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1), + offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_73, + 15, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_73, /* Optional members */ + 15, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_73 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_73, + sizeof(asn_DEF_ASN_RRC_ext1_tags_73) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_73[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_73) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_73[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_73, + 15, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pdcch_BlindDetectionNRDC_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2__pdcch_BlindDetectionNRDC, pdcch_BlindDetectionMCG_UE), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pdcch_BlindDetectionMCG_UE_constr_106, memb_ASN_RRC_pdcch_BlindDetectionMCG_UE_constraint_105 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionMCG-UE" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2__pdcch_BlindDetectionNRDC, pdcch_BlindDetectionSCG_UE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pdcch_BlindDetectionSCG_UE_constr_107, memb_ASN_RRC_pdcch_BlindDetectionSCG_UE_constraint_105 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionSCG-UE" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pdcch_BlindDetectionNRDC_tag2el_105[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcch-BlindDetectionMCG-UE */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pdcch-BlindDetectionSCG-UE */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_pdcch_BlindDetectionNRDC_specs_105 = { + sizeof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2__pdcch_BlindDetectionNRDC), + offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2__pdcch_BlindDetectionNRDC, _asn_ctx), + asn_MAP_ASN_RRC_pdcch_BlindDetectionNRDC_tag2el_105, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_105 = { + "pdcch-BlindDetectionNRDC", + "pdcch-BlindDetectionNRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105, + sizeof(asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105) + /sizeof(asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105) + /sizeof(asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_tags_105[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_pdcch_BlindDetectionNRDC_105, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_pdcch_BlindDetectionNRDC_specs_105 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_value2enum_108[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_enum2value_108[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_specs_108 = { + asn_MAP_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_value2enum_108, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_enum2value_108, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108[] = { + (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_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_108 = { + "mux-HARQ-ACK-PUSCH-DiffSymbol", + "mux-HARQ-ACK-PUSCH-DiffSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108, + sizeof(asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108) + /sizeof(asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108) + /sizeof(asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_tags_108[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_constr_108, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_specs_108 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_104[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2, pdcch_BlindDetectionNRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_pdcch_BlindDetectionNRDC_105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionNRDC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2, mux_HARQ_ACK_PUSCH_DiffSymbol), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-HARQ-ACK-PUSCH-DiffSymbol" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_104[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_104[] = { + (ASN_TAG_CLASS_CONTEXT | (38 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_104[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcch-BlindDetectionNRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* mux-HARQ-ACK-PUSCH-DiffSymbol */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_104 = { + sizeof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2), + offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_104, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_104, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_104 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_104, + sizeof(asn_DEF_ASN_RRC_ext2_tags_104) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_104[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_104, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_104) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_104[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_104, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_104 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFRX_Diff_1[] = { + { ATF_POINTER, 39, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, dynamicSFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicSFI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSFI" + }, + { ATF_POINTER, 38, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, dummy1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy1_constr_4, memb_ASN_RRC_dummy1_constraint_1 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_POINTER, 37, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, twoFL_DMRS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_twoFL_DMRS_constr_5, memb_ASN_RRC_twoFL_DMRS_constraint_1 }, + 0, 0, /* No default value */ + "twoFL-DMRS" + }, + { ATF_POINTER, 36, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, dummy2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy2_constr_6, memb_ASN_RRC_dummy2_constraint_1 }, + 0, 0, /* No default value */ + "dummy2" + }, + { ATF_POINTER, 35, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, dummy3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dummy3_constr_7, memb_ASN_RRC_dummy3_constraint_1 }, + 0, 0, /* No default value */ + "dummy3" + }, + { ATF_POINTER, 34, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, supportedDMRS_TypeDL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedDMRS_TypeDL_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedDMRS-TypeDL" + }, + { ATF_POINTER, 33, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, supportedDMRS_TypeUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_supportedDMRS_TypeUL_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedDMRS-TypeUL" + }, + { ATF_POINTER, 32, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, semiOpenLoopCSI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_semiOpenLoopCSI_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiOpenLoopCSI" + }, + { ATF_POINTER, 31, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, csi_ReportWithoutPMI), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_ReportWithoutPMI_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportWithoutPMI" + }, + { ATF_POINTER, 30, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, csi_ReportWithoutCQI), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_csi_ReportWithoutCQI_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportWithoutCQI" + }, + { ATF_POINTER, 29, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, onePortsPTRS), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_onePortsPTRS_constr_20, memb_ASN_RRC_onePortsPTRS_constraint_1 }, + 0, 0, /* No default value */ + "onePortsPTRS" + }, + { ATF_POINTER, 28, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, twoPUCCH_F0_2_ConsecSymbols), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-F0-2-ConsecSymbols" + }, + { ATF_POINTER, 27, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pucch_F2_WithFH), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_F2_WithFH_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F2-WithFH" + }, + { ATF_POINTER, 26, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pucch_F3_WithFH), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_F3_WithFH_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F3-WithFH" + }, + { ATF_POINTER, 25, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pucch_F4_WithFH), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_F4_WithFH_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F4-WithFH" + }, + { ATF_POINTER, 24, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, freqHoppingPUCCH_F0_2), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHoppingPUCCH-F0-2" + }, + { ATF_POINTER, 23, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, freqHoppingPUCCH_F1_3_4), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHoppingPUCCH-F1-3-4" + }, + { ATF_POINTER, 22, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot" + }, + { ATF_POINTER, 21, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, uci_CodeBlockSegmentation), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-CodeBlockSegmentation" + }, + { ATF_POINTER, 20, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, onePUCCH_LongAndShortFormat), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "onePUCCH-LongAndShortFormat" + }, + { ATF_POINTER, 19, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, twoPUCCH_AnyOthersInSlot), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-AnyOthersInSlot" + }, + { ATF_POINTER, 18, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, intraSlotFreqHopping_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraSlotFreqHopping-PUSCH" + }, + { ATF_POINTER, 17, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pusch_LBRM), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_LBRM_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-LBRM" + }, + { ATF_POINTER, 16, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pdcch_BlindDetectionCA), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_pdcch_BlindDetectionCA_constr_45, memb_ASN_RRC_pdcch_BlindDetectionCA_constraint_1 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionCA" + }, + { ATF_POINTER, 15, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, tpc_PUSCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH-RNTI" + }, + { ATF_POINTER, 14, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, tpc_PUCCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH-RNTI" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, tpc_SRS_RNTI), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tpc_SRS_RNTI_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS-RNTI" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, absoluteTPC_Command), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_absoluteTPC_Command_52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteTPC-Command" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, twoDifferentTPC_Loop_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUSCH" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, twoDifferentTPC_Loop_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUCCH" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pusch_HalfPi_BPSK), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-HalfPi-BPSK" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, pucch_F3_4_HalfPi_BPSK), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F3-4-HalfPi-BPSK" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, almostContiguousCP_OFDM_UL), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "almostContiguousCP-OFDM-UL" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, sp_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_CSI_RS_64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-RS" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, sp_CSI_IM), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sp_CSI_IM_66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-IM" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, tdd_MultiDL_UL_SwitchPerSlot), + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-MultiDL-UL-SwitchPerSlot" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, multipleCORESET), + (ASN_TAG_CLASS_CONTEXT | (36 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_multipleCORESET_70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleCORESET" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (37 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, ext2), + (ASN_TAG_CLASS_CONTEXT | (38 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersFRX_Diff_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersFRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dynamicSFI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dummy1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* twoFL-DMRS */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dummy2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dummy3 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* supportedDMRS-TypeDL */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* supportedDMRS-TypeUL */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* semiOpenLoopCSI */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* csi-ReportWithoutPMI */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* csi-ReportWithoutCQI */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* onePortsPTRS */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* twoPUCCH-F0-2-ConsecSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* pucch-F2-WithFH */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* pucch-F3-WithFH */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* pucch-F4-WithFH */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* freqHoppingPUCCH-F0-2 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* freqHoppingPUCCH-F1-3-4 */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* uci-CodeBlockSegmentation */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* onePUCCH-LongAndShortFormat */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* twoPUCCH-AnyOthersInSlot */ + { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* intraSlotFreqHopping-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* pusch-LBRM */ + { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 }, /* pdcch-BlindDetectionCA */ + { (ASN_TAG_CLASS_CONTEXT | (24 << 2)), 24, 0, 0 }, /* tpc-PUSCH-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 }, /* tpc-PUCCH-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (26 << 2)), 26, 0, 0 }, /* tpc-SRS-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (27 << 2)), 27, 0, 0 }, /* absoluteTPC-Command */ + { (ASN_TAG_CLASS_CONTEXT | (28 << 2)), 28, 0, 0 }, /* twoDifferentTPC-Loop-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (29 << 2)), 29, 0, 0 }, /* twoDifferentTPC-Loop-PUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (30 << 2)), 30, 0, 0 }, /* pusch-HalfPi-BPSK */ + { (ASN_TAG_CLASS_CONTEXT | (31 << 2)), 31, 0, 0 }, /* pucch-F3-4-HalfPi-BPSK */ + { (ASN_TAG_CLASS_CONTEXT | (32 << 2)), 32, 0, 0 }, /* almostContiguousCP-OFDM-UL */ + { (ASN_TAG_CLASS_CONTEXT | (33 << 2)), 33, 0, 0 }, /* sp-CSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (34 << 2)), 34, 0, 0 }, /* sp-CSI-IM */ + { (ASN_TAG_CLASS_CONTEXT | (35 << 2)), 35, 0, 0 }, /* tdd-MultiDL-UL-SwitchPerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (36 << 2)), 36, 0, 0 }, /* multipleCORESET */ + { (ASN_TAG_CLASS_CONTEXT | (37 << 2)), 37, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (38 << 2)), 38, 0, 0 } /* ext2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFRX_Diff_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersFRX_Diff), + offsetof(struct ASN_RRC_Phy_ParametersFRX_Diff, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersFRX_Diff_tag2el_1, + 39, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersFRX_Diff_oms_1, /* Optional members */ + 37, 2, /* Root/Additions */ + 37, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff = { + "Phy-ParametersFRX-Diff", + "Phy-ParametersFRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersFRX_Diff_1, + 39, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersFRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.h b/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.h new file mode 100644 index 0000000..ecddc71 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersFRX-Diff.h @@ -0,0 +1,310 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersFRX_Diff_H_ +#define _ASN_RRC_Phy_ParametersFRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__dynamicSFI { + ASN_RRC_Phy_ParametersFRX_Diff__dynamicSFI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__dynamicSFI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeDL { + ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeDL_type1 = 0, + ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeDL_type1And2 = 1 +} e_ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeDL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeUL { + ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeUL_type1 = 0, + ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeUL_type1And2 = 1 +} e_ASN_RRC_Phy_ParametersFRX_Diff__supportedDMRS_TypeUL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__semiOpenLoopCSI { + ASN_RRC_Phy_ParametersFRX_Diff__semiOpenLoopCSI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__semiOpenLoopCSI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutPMI { + ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutPMI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutPMI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutCQI { + ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutCQI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__csi_ReportWithoutCQI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols { + ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pucch_F2_WithFH { + ASN_RRC_Phy_ParametersFRX_Diff__pucch_F2_WithFH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pucch_F2_WithFH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_WithFH { + ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_WithFH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_WithFH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pucch_F4_WithFH { + ASN_RRC_Phy_ParametersFRX_Diff__pucch_F4_WithFH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pucch_F4_WithFH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2 { + ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2_notSupported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4 { + ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4_notSupported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot { + ASN_RRC_Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation { + ASN_RRC_Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat { + ASN_RRC_Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot { + ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH { + ASN_RRC_Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pusch_LBRM { + ASN_RRC_Phy_ParametersFRX_Diff__pusch_LBRM_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pusch_LBRM; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI { + ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI { + ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__tpc_SRS_RNTI { + ASN_RRC_Phy_ParametersFRX_Diff__tpc_SRS_RNTI_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__tpc_SRS_RNTI; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__absoluteTPC_Command { + ASN_RRC_Phy_ParametersFRX_Diff__absoluteTPC_Command_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__absoluteTPC_Command; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH { + ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH { + ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK { + ASN_RRC_Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK { + ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL { + ASN_RRC_Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_RS { + ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_RS_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_RS; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_IM { + ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_IM_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__sp_CSI_IM; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot { + ASN_RRC_Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__multipleCORESET { + ASN_RRC_Phy_ParametersFRX_Diff__multipleCORESET_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__multipleCORESET; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__sameSymbol { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__sameSymbol_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__sameSymbol; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__diffSymbol { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__diffSymbol_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot__diffSymbol; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_PUCCH { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_PUCCH_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_PUCCH; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_MultipleGroupCtrlCH_Overlap { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_MultipleGroupCtrlCH_Overlap_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_MultipleGroupCtrlCH_Overlap; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_SchedulingOffset { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_SchedulingOffset_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_SchedulingOffset; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_64QAM_MCS_TableAlt { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_64QAM_MCS_TableAlt_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__dl_64QAM_MCS_TableAlt; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_64QAM_MCS_TableAlt { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_64QAM_MCS_TableAlt_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__ul_64QAM_MCS_TableAlt; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__cqi_TableAlt { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__cqi_TableAlt_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__cqi_TableAlt; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_TwoAdditionalDMRS_UL { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_TwoAdditionalDMRS_UL_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_TwoAdditionalDMRS_UL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__twoFL_DMRS_TwoAdditionalDMRS_UL { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__twoFL_DMRS_TwoAdditionalDMRS_UL_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__twoFL_DMRS_TwoAdditionalDMRS_UL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_ThreeAdditionalDMRS_UL { + ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_ThreeAdditionalDMRS_UL_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext1__oneFL_DMRS_ThreeAdditionalDMRS_UL; +typedef enum ASN_RRC_Phy_ParametersFRX_Diff__ext2__mux_HARQ_ACK_PUSCH_DiffSymbol { + ASN_RRC_Phy_ParametersFRX_Diff__ext2__mux_HARQ_ACK_PUSCH_DiffSymbol_supported = 0 +} e_ASN_RRC_Phy_ParametersFRX_Diff__ext2__mux_HARQ_ACK_PUSCH_DiffSymbol; + +/* Forward declarations */ +struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback; +struct ASN_RRC_CSI_RS_ProcFrameworkForSRS; +struct ASN_RRC_CSI_ReportFramework; + +/* ASN_RRC_Phy-ParametersFRX-Diff */ +typedef struct ASN_RRC_Phy_ParametersFRX_Diff { + long *dynamicSFI; /* OPTIONAL */ + BIT_STRING_t *dummy1; /* OPTIONAL */ + BIT_STRING_t *twoFL_DMRS; /* OPTIONAL */ + BIT_STRING_t *dummy2; /* OPTIONAL */ + BIT_STRING_t *dummy3; /* OPTIONAL */ + long *supportedDMRS_TypeDL; /* OPTIONAL */ + long *supportedDMRS_TypeUL; /* OPTIONAL */ + long *semiOpenLoopCSI; /* OPTIONAL */ + long *csi_ReportWithoutPMI; /* OPTIONAL */ + long *csi_ReportWithoutCQI; /* OPTIONAL */ + BIT_STRING_t *onePortsPTRS; /* OPTIONAL */ + long *twoPUCCH_F0_2_ConsecSymbols; /* OPTIONAL */ + long *pucch_F2_WithFH; /* OPTIONAL */ + long *pucch_F3_WithFH; /* OPTIONAL */ + long *pucch_F4_WithFH; /* OPTIONAL */ + long *freqHoppingPUCCH_F0_2; /* OPTIONAL */ + long *freqHoppingPUCCH_F1_3_4; /* OPTIONAL */ + long *mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot; /* OPTIONAL */ + long *uci_CodeBlockSegmentation; /* OPTIONAL */ + long *onePUCCH_LongAndShortFormat; /* OPTIONAL */ + long *twoPUCCH_AnyOthersInSlot; /* OPTIONAL */ + long *intraSlotFreqHopping_PUSCH; /* OPTIONAL */ + long *pusch_LBRM; /* OPTIONAL */ + long *pdcch_BlindDetectionCA; /* OPTIONAL */ + long *tpc_PUSCH_RNTI; /* OPTIONAL */ + long *tpc_PUCCH_RNTI; /* OPTIONAL */ + long *tpc_SRS_RNTI; /* OPTIONAL */ + long *absoluteTPC_Command; /* OPTIONAL */ + long *twoDifferentTPC_Loop_PUSCH; /* OPTIONAL */ + long *twoDifferentTPC_Loop_PUCCH; /* OPTIONAL */ + long *pusch_HalfPi_BPSK; /* OPTIONAL */ + long *pucch_F3_4_HalfPi_BPSK; /* OPTIONAL */ + long *almostContiguousCP_OFDM_UL; /* OPTIONAL */ + long *sp_CSI_RS; /* OPTIONAL */ + long *sp_CSI_IM; /* OPTIONAL */ + long *tdd_MultiDL_UL_SwitchPerSlot; /* OPTIONAL */ + long *multipleCORESET; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_Phy_ParametersFRX_Diff__ext1 { + struct ASN_RRC_CSI_RS_IM_ReceptionForFeedback *csi_RS_IM_ReceptionForFeedback; /* OPTIONAL */ + struct ASN_RRC_CSI_RS_ProcFrameworkForSRS *csi_RS_ProcFrameworkForSRS; /* OPTIONAL */ + struct ASN_RRC_CSI_ReportFramework *csi_ReportFramework; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersFRX_Diff__ext1__mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot { + long *sameSymbol; /* OPTIONAL */ + long *diffSymbol; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot; + long *mux_SR_HARQ_ACK_PUCCH; /* OPTIONAL */ + long *mux_MultipleGroupCtrlCH_Overlap; /* OPTIONAL */ + long *dl_SchedulingOffset_PDSCH_TypeA; /* OPTIONAL */ + long *dl_SchedulingOffset_PDSCH_TypeB; /* OPTIONAL */ + long *ul_SchedulingOffset; /* OPTIONAL */ + long *dl_64QAM_MCS_TableAlt; /* OPTIONAL */ + long *ul_64QAM_MCS_TableAlt; /* OPTIONAL */ + long *cqi_TableAlt; /* OPTIONAL */ + long *oneFL_DMRS_TwoAdditionalDMRS_UL; /* OPTIONAL */ + long *twoFL_DMRS_TwoAdditionalDMRS_UL; /* OPTIONAL */ + long *oneFL_DMRS_ThreeAdditionalDMRS_UL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_Phy_ParametersFRX_Diff__ext2 { + struct ASN_RRC_Phy_ParametersFRX_Diff__ext2__pdcch_BlindDetectionNRDC { + long pdcch_BlindDetectionMCG_UE; + long pdcch_BlindDetectionSCG_UE; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdcch_BlindDetectionNRDC; + long *mux_HARQ_ACK_PUSCH_DiffSymbol; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersFRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSFI_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedDMRS_TypeDL_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedDMRS_TypeUL_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiOpenLoopCSI_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportWithoutPMI_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportWithoutCQI_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F2_WithFH_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F3_WithFH_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F4_WithFH_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F0_2_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqHoppingPUCCH_F1_3_4_31; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_CSI_PUCCH_MultiPerSlot_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uci_CodeBlockSegmentation_35; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_onePUCCH_LongAndShortFormat_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_AnyOthersInSlot_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraSlotFreqHopping_PUSCH_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_LBRM_43; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_PUSCH_RNTI_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_PUCCH_RNTI_48; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_SRS_RNTI_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_absoluteTPC_Command_52; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pusch_HalfPi_BPSK_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_F3_4_HalfPi_BPSK_60; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_almostContiguousCP_OFDM_UL_62; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_RS_64; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sp_CSI_IM_66; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tdd_MultiDL_UL_SwitchPerSlot_68; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_multipleCORESET_70; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sameSymbol_78; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_diffSymbol_80; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_SR_HARQ_ACK_PUCCH_82; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_MultipleGroupCtrlCH_Overlap_84; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_88; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SchedulingOffset_90; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_64QAM_MCS_TableAlt_92; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_64QAM_MCS_TableAlt_94; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_TableAlt_96; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_TwoAdditionalDMRS_UL_98; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoFL_DMRS_TwoAdditionalDMRS_UL_100; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFL_DMRS_ThreeAdditionalDMRS_UL_102; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mux_HARQ_ACK_PUSCH_DiffSymbol_108; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersFRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersFRX_Diff_1[39]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersFRX_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.c b/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.c new file mode 100644 index 0000000..95bfef0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersMRDC.h" + +#include "ASN_RRC_NAICS-Capability-Entry.h" +static int +memb_ASN_RRC_naics_Capability_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 <= 8)) { + /* 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_ASN_RRC_naics_Capability_List_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_naics_Capability_List_constr_2 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_ASN_RRC_naics_Capability_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_NAICS_Capability_Entry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_naics_Capability_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_naics_Capability_List_specs_2 = { + sizeof(struct ASN_RRC_Phy_ParametersMRDC__naics_Capability_List), + offsetof(struct ASN_RRC_Phy_ParametersMRDC__naics_Capability_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_naics_Capability_List_2 = { + "naics-Capability-List", + "naics-Capability-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_naics_Capability_List_tags_2, + sizeof(asn_DEF_ASN_RRC_naics_Capability_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_naics_Capability_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_naics_Capability_List_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_naics_Capability_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_naics_Capability_List_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_naics_Capability_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_naics_Capability_List_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_naics_Capability_List_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersMRDC_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersMRDC, naics_Capability_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_naics_Capability_List_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_naics_Capability_List_constr_2, memb_ASN_RRC_naics_Capability_List_constraint_1 }, + 0, 0, /* No default value */ + "naics-Capability-List" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersMRDC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* naics-Capability-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersMRDC_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersMRDC), + offsetof(struct ASN_RRC_Phy_ParametersMRDC, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersMRDC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersMRDC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersMRDC = { + "Phy-ParametersMRDC", + "Phy-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersMRDC_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.h b/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.h new file mode 100644 index 0000000..a6071d8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersMRDC.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersMRDC_H_ +#define _ASN_RRC_Phy_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NAICS_Capability_Entry; + +/* ASN_RRC_Phy-ParametersMRDC */ +typedef struct ASN_RRC_Phy_ParametersMRDC { + struct ASN_RRC_Phy_ParametersMRDC__naics_Capability_List { + A_SEQUENCE_OF(struct ASN_RRC_NAICS_Capability_Entry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *naics_Capability_List; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersMRDC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.c b/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.c new file mode 100644 index 0000000..c6fcec3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.c @@ -0,0 +1,465 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Phy-ParametersXDD-Diff.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. + */ +/* + * 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_ASN_RRC_dynamicSFI_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoDifferentTPC_Loop_PUSCH_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_twoDifferentTPC_Loop_PUCCH_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ul_SchedulingOffset_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dynamicSFI_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dynamicSFI_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dynamicSFI_specs_2 = { + asn_MAP_ASN_RRC_dynamicSFI_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dynamicSFI_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamicSFI_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_ASN_RRC_dynamicSFI_2 = { + "dynamicSFI", + "dynamicSFI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dynamicSFI_tags_2, + sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamicSFI_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2) + /sizeof(asn_DEF_ASN_RRC_dynamicSFI_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamicSFI_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dynamicSFI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_specs_4 = { + asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4[] = { + (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_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_4 = { + "twoPUCCH-F0-2-ConsecSymbols", + "twoPUCCH-F0-2-ConsecSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4, + sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4) + /sizeof(asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUSCH_specs_6 = { + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUSCH_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6[] = { + (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_ASN_RRC_twoDifferentTPC_Loop_PUSCH_6 = { + "twoDifferentTPC-Loop-PUSCH", + "twoDifferentTPC-Loop-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6, + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoDifferentTPC_Loop_PUSCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUSCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUCCH_specs_8 = { + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_twoDifferentTPC_Loop_PUCCH_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_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_ASN_RRC_twoDifferentTPC_Loop_PUCCH_8 = { + "twoDifferentTPC-Loop-PUCCH", + "twoDifferentTPC-Loop-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8, + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8) + /sizeof(asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_twoDifferentTPC_Loop_PUCCH_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_twoDifferentTPC_Loop_PUCCH_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_specs_12 = { + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12[] = { + (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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_12 = { + "dl-SchedulingOffset-PDSCH-TypeA", + "dl-SchedulingOffset-PDSCH-TypeA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12, + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_specs_14 = { + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14[] = { + (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_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_14 = { + "dl-SchedulingOffset-PDSCH-TypeB", + "dl-SchedulingOffset-PDSCH-TypeB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14, + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14) + /sizeof(asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ul_SchedulingOffset_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_ul_SchedulingOffset_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ul_SchedulingOffset_specs_16 = { + asn_MAP_ASN_RRC_ul_SchedulingOffset_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ul_SchedulingOffset_enum2value_16, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16[] = { + (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_ASN_RRC_ul_SchedulingOffset_16 = { + "ul-SchedulingOffset", + "ul-SchedulingOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16, + sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16) + /sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16) + /sizeof(asn_DEF_ASN_RRC_ul_SchedulingOffset_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ul_SchedulingOffset_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ul_SchedulingOffset_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_11[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff__ext1, dl_SchedulingOffset_PDSCH_TypeA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-SchedulingOffset-PDSCH-TypeA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff__ext1, dl_SchedulingOffset_PDSCH_TypeB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-SchedulingOffset-PDSCH-TypeB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff__ext1, ul_SchedulingOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ul_SchedulingOffset_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SchedulingOffset" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_11[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-SchedulingOffset-PDSCH-TypeA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dl-SchedulingOffset-PDSCH-TypeB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ul-SchedulingOffset */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_11 = { + sizeof(struct ASN_RRC_Phy_ParametersXDD_Diff__ext1), + offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_11, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_11, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_11, + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_11, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, dynamicSFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dynamicSFI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSFI" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, twoPUCCH_F0_2_ConsecSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-F0-2-ConsecSymbols" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, twoDifferentTPC_Loop_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUSCH" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, twoDifferentTPC_Loop_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUCCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_Phy_ParametersXDD_Diff_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Phy_ParametersXDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dynamicSFI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* twoPUCCH-F0-2-ConsecSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* twoDifferentTPC-Loop-PUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* twoDifferentTPC-Loop-PUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersXDD_Diff_specs_1 = { + sizeof(struct ASN_RRC_Phy_ParametersXDD_Diff), + offsetof(struct ASN_RRC_Phy_ParametersXDD_Diff, _asn_ctx), + asn_MAP_ASN_RRC_Phy_ParametersXDD_Diff_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Phy_ParametersXDD_Diff_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff = { + "Phy-ParametersXDD-Diff", + "Phy-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Phy_ParametersXDD_Diff_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_Phy_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.h b/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.h new file mode 100644 index 0000000..4e00a32 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Phy-ParametersXDD-Diff.h @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Phy_ParametersXDD_Diff_H_ +#define _ASN_RRC_Phy_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__dynamicSFI { + ASN_RRC_Phy_ParametersXDD_Diff__dynamicSFI_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__dynamicSFI; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols { + ASN_RRC_Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH { + ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH { + ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA { + ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeA; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB { + ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__ext1__dl_SchedulingOffset_PDSCH_TypeB; +typedef enum ASN_RRC_Phy_ParametersXDD_Diff__ext1__ul_SchedulingOffset { + ASN_RRC_Phy_ParametersXDD_Diff__ext1__ul_SchedulingOffset_supported = 0 +} e_ASN_RRC_Phy_ParametersXDD_Diff__ext1__ul_SchedulingOffset; + +/* ASN_RRC_Phy-ParametersXDD-Diff */ +typedef struct ASN_RRC_Phy_ParametersXDD_Diff { + long *dynamicSFI; /* OPTIONAL */ + long *twoPUCCH_F0_2_ConsecSymbols; /* OPTIONAL */ + long *twoDifferentTPC_Loop_PUSCH; /* OPTIONAL */ + long *twoDifferentTPC_Loop_PUCCH; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_Phy_ParametersXDD_Diff__ext1 { + long *dl_SchedulingOffset_PDSCH_TypeA; /* OPTIONAL */ + long *dl_SchedulingOffset_PDSCH_TypeB; /* OPTIONAL */ + long *ul_SchedulingOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Phy_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamicSFI_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoPUCCH_F0_2_ConsecSymbols_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUSCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_twoDifferentTPC_Loop_PUCCH_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeA_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_SchedulingOffset_PDSCH_TypeB_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ul_SchedulingOffset_16; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Phy_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Phy_ParametersXDD_Diff_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Phy_ParametersXDD_Diff_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PhysCellId.c b/src/asn/rrc/ASN_RRC_PhysCellId.c new file mode 100644 index 0000000..b23d578 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PhysCellId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PhysCellId.h" + +int +ASN_RRC_PhysCellId_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_ASN_RRC_PhysCellId_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_ASN_RRC_PhysCellId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PhysCellId = { + "PhysCellId", + "PhysCellId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PhysCellId_tags_1, + sizeof(asn_DEF_ASN_RRC_PhysCellId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PhysCellId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PhysCellId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PhysCellId_tags_1) + /sizeof(asn_DEF_ASN_RRC_PhysCellId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PhysCellId_constr_1, ASN_RRC_PhysCellId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PhysCellId.h b/src/asn/rrc/ASN_RRC_PhysCellId.h new file mode 100644 index 0000000..551d89f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PhysCellId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PhysCellId_H_ +#define _ASN_RRC_PhysCellId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PhysCellId */ +typedef long ASN_RRC_PhysCellId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PhysCellId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PhysCellId; +asn_struct_free_f ASN_RRC_PhysCellId_free; +asn_struct_print_f ASN_RRC_PhysCellId_print; +asn_constr_check_f ASN_RRC_PhysCellId_constraint; +ber_type_decoder_f ASN_RRC_PhysCellId_decode_ber; +der_type_encoder_f ASN_RRC_PhysCellId_encode_der; +xer_type_decoder_f ASN_RRC_PhysCellId_decode_xer; +xer_type_encoder_f ASN_RRC_PhysCellId_encode_xer; +per_type_decoder_f ASN_RRC_PhysCellId_decode_uper; +per_type_encoder_f ASN_RRC_PhysCellId_encode_uper; +per_type_decoder_f ASN_RRC_PhysCellId_decode_aper; +per_type_encoder_f ASN_RRC_PhysCellId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PhysCellId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.c b/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.c new file mode 100644 index 0000000..63cd49d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.c @@ -0,0 +1,492 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PhysicalCellGroupConfig.h" + +#include "ASN_RRC_SetupRelease.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 asn_per_constraints_t asn_PER_type_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pdsch_HARQ_ACK_Codebook_constr_7 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_type_ASN_RRC_xScale_constr_20 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_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_specs_2 = { + asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_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_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_2 = { + "harq-ACK-SpatialBundlingPUCCH", + "harq-ACK-SpatialBundlingPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2, + sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2) + /sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_specs_4 = { + asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4[] = { + (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_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_4 = { + "harq-ACK-SpatialBundlingPUSCH", + "harq-ACK-SpatialBundlingPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4, + sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4) + /sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4) + /sizeof(asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_HARQ_ACK_Codebook_value2enum_7[] = { + { 0, 10, "semiStatic" }, + { 1, 7, "dynamic" } +}; +static const unsigned int asn_MAP_ASN_RRC_pdsch_HARQ_ACK_Codebook_enum2value_7[] = { + 1, /* dynamic(1) */ + 0 /* semiStatic(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_HARQ_ACK_Codebook_specs_7 = { + asn_MAP_ASN_RRC_pdsch_HARQ_ACK_Codebook_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pdsch_HARQ_ACK_Codebook_enum2value_7, /* 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_ASN_RRC_pdsch_HARQ_ACK_Codebook_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_ASN_RRC_pdsch_HARQ_ACK_Codebook_7 = { + "pdsch-HARQ-ACK-Codebook", + "pdsch-HARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7, + sizeof(asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7) + /sizeof(asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7) + /sizeof(asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pdsch_HARQ_ACK_Codebook_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pdsch_HARQ_ACK_Codebook_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_16[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext1, mcs_C_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-C-RNTI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext1, p_UE_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-UE-FR1" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_16[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mcs-C-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* p-UE-FR1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_16 = { + sizeof(struct ASN_RRC_PhysicalCellGroupConfig__ext1), + offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_16, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_16, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_16 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_16, + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_16, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_xScale_value2enum_20[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB6" }, + { 2, 6, "spare2" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_xScale_enum2value_20[] = { + 0, /* dB0(0) */ + 1, /* dB6(1) */ + 3, /* spare1(3) */ + 2 /* spare2(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_xScale_specs_20 = { + asn_MAP_ASN_RRC_xScale_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_xScale_enum2value_20, /* 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_ASN_RRC_xScale_tags_20[] = { + (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_ASN_RRC_xScale_20 = { + "xScale", + "xScale", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_xScale_tags_20, + sizeof(asn_DEF_ASN_RRC_xScale_tags_20) + /sizeof(asn_DEF_ASN_RRC_xScale_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_xScale_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_xScale_tags_20) + /sizeof(asn_DEF_ASN_RRC_xScale_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_xScale_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_xScale_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_19[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext2, xScale), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_xScale_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xScale" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_19[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* xScale */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_19 = { + sizeof(struct ASN_RRC_PhysicalCellGroupConfig__ext2), + offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_19, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_19, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_19 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_19, + sizeof(asn_DEF_ASN_RRC_ext2_tags_19) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_19) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_19, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_25[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext3, pdcch_BlindDetection), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDCCH_BlindDetection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-BlindDetection" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_25[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdcch-BlindDetection */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_25 = { + sizeof(struct ASN_RRC_PhysicalCellGroupConfig__ext3), + offsetof(struct ASN_RRC_PhysicalCellGroupConfig__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_25, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_25, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_25 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_25, + sizeof(asn_DEF_ASN_RRC_ext3_tags_25) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_25) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_25[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_25, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PhysicalCellGroupConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, harq_ACK_SpatialBundlingPUCCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "harq-ACK-SpatialBundlingPUCCH" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, harq_ACK_SpatialBundlingPUSCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "harq-ACK-SpatialBundlingPUSCH" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, p_NR_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-NR-FR1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, pdsch_HARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-HARQ-ACK-Codebook" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, tpc_SRS_RNTI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS-RNTI" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, tpc_PUCCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH-RNTI" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, tpc_PUSCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH-RNTI" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, sp_CSI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-RNTI" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, cs_RNTI), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cs-RNTI" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, ext2), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PhysicalCellGroupConfig, ext3), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_PhysicalCellGroupConfig_oms_1[] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PhysicalCellGroupConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* harq-ACK-SpatialBundlingPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* harq-ACK-SpatialBundlingPUSCH */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* p-NR-FR1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pdsch-HARQ-ACK-Codebook */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* tpc-SRS-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tpc-PUCCH-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* tpc-PUSCH-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sp-CSI-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* cs-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PhysicalCellGroupConfig_specs_1 = { + sizeof(struct ASN_RRC_PhysicalCellGroupConfig), + offsetof(struct ASN_RRC_PhysicalCellGroupConfig, _asn_ctx), + asn_MAP_ASN_RRC_PhysicalCellGroupConfig_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_PhysicalCellGroupConfig_oms_1, /* Optional members */ + 8, 3, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PhysicalCellGroupConfig = { + "PhysicalCellGroupConfig", + "PhysicalCellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_PhysicalCellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_PhysicalCellGroupConfig_1, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_PhysicalCellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.h b/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.h new file mode 100644 index 0000000..1d154e5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PhysicalCellGroupConfig.h @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PhysicalCellGroupConfig_H_ +#define _ASN_RRC_PhysicalCellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_P-Max.h" +#include "ASN_RRC_RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH { + ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH_true = 0 +} e_ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH; +typedef enum ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH { + ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH_true = 0 +} e_ASN_RRC_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH; +typedef enum ASN_RRC_PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook { + ASN_RRC_PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook_semiStatic = 0, + ASN_RRC_PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook_dynamic = 1 +} e_ASN_RRC_PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook; +typedef enum ASN_RRC_PhysicalCellGroupConfig__ext2__xScale { + ASN_RRC_PhysicalCellGroupConfig__ext2__xScale_dB0 = 0, + ASN_RRC_PhysicalCellGroupConfig__ext2__xScale_dB6 = 1, + ASN_RRC_PhysicalCellGroupConfig__ext2__xScale_spare2 = 2, + ASN_RRC_PhysicalCellGroupConfig__ext2__xScale_spare1 = 3 +} e_ASN_RRC_PhysicalCellGroupConfig__ext2__xScale; + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_RNTI_Value; +struct ASN_RRC_SetupRelease_PDCCH_BlindDetection; + +/* ASN_RRC_PhysicalCellGroupConfig */ +typedef struct ASN_RRC_PhysicalCellGroupConfig { + long *harq_ACK_SpatialBundlingPUCCH; /* OPTIONAL */ + long *harq_ACK_SpatialBundlingPUSCH; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_NR_FR1; /* OPTIONAL */ + long pdsch_HARQ_ACK_Codebook; + ASN_RRC_RNTI_Value_t *tpc_SRS_RNTI; /* OPTIONAL */ + ASN_RRC_RNTI_Value_t *tpc_PUCCH_RNTI; /* OPTIONAL */ + ASN_RRC_RNTI_Value_t *tpc_PUSCH_RNTI; /* OPTIONAL */ + ASN_RRC_RNTI_Value_t *sp_CSI_RNTI; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_RNTI_Value *cs_RNTI; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_PhysicalCellGroupConfig__ext1 { + ASN_RRC_RNTI_Value_t *mcs_C_RNTI; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_UE_FR1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_PhysicalCellGroupConfig__ext2 { + long *xScale; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_PhysicalCellGroupConfig__ext3 { + struct ASN_RRC_SetupRelease_PDCCH_BlindDetection *pdcch_BlindDetection; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PhysicalCellGroupConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUCCH_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_harq_ACK_SpatialBundlingPUSCH_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_HARQ_ACK_Codebook_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_xScale_20; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PhysicalCellGroupConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PhysicalCellGroupConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PhysicalCellGroupConfig_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PhysicalCellGroupConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PollByte.c b/src/asn/rrc/ASN_RRC_PollByte.c new file mode 100644 index 0000000..801eb59 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PollByte.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PollByte.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PollByte_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_PollByte_value2enum_1[] = { + { 0, 3, "kB1" }, + { 1, 3, "kB2" }, + { 2, 3, "kB5" }, + { 3, 3, "kB8" }, + { 4, 4, "kB10" }, + { 5, 4, "kB15" }, + { 6, 4, "kB25" }, + { 7, 4, "kB50" }, + { 8, 4, "kB75" }, + { 9, 5, "kB100" }, + { 10, 5, "kB125" }, + { 11, 5, "kB250" }, + { 12, 5, "kB375" }, + { 13, 5, "kB500" }, + { 14, 5, "kB750" }, + { 15, 6, "kB1000" }, + { 16, 6, "kB1250" }, + { 17, 6, "kB1500" }, + { 18, 6, "kB2000" }, + { 19, 6, "kB3000" }, + { 20, 6, "kB4000" }, + { 21, 6, "kB4500" }, + { 22, 6, "kB5000" }, + { 23, 6, "kB5500" }, + { 24, 6, "kB6000" }, + { 25, 6, "kB6500" }, + { 26, 6, "kB7000" }, + { 27, 6, "kB7500" }, + { 28, 3, "mB8" }, + { 29, 3, "mB9" }, + { 30, 4, "mB10" }, + { 31, 4, "mB11" }, + { 32, 4, "mB12" }, + { 33, 4, "mB13" }, + { 34, 4, "mB14" }, + { 35, 4, "mB15" }, + { 36, 4, "mB16" }, + { 37, 4, "mB17" }, + { 38, 4, "mB18" }, + { 39, 4, "mB20" }, + { 40, 4, "mB25" }, + { 41, 4, "mB30" }, + { 42, 4, "mB40" }, + { 43, 8, "infinity" }, + { 44, 7, "spare20" }, + { 45, 7, "spare19" }, + { 46, 7, "spare18" }, + { 47, 7, "spare17" }, + { 48, 7, "spare16" }, + { 49, 7, "spare15" }, + { 50, 7, "spare14" }, + { 51, 7, "spare13" }, + { 52, 7, "spare12" }, + { 53, 7, "spare11" }, + { 54, 7, "spare10" }, + { 55, 6, "spare9" }, + { 56, 6, "spare8" }, + { 57, 6, "spare7" }, + { 58, 6, "spare6" }, + { 59, 6, "spare5" }, + { 60, 6, "spare4" }, + { 61, 6, "spare3" }, + { 62, 6, "spare2" }, + { 63, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_PollByte_enum2value_1[] = { + 43, /* infinity(43) */ + 0, /* kB1(0) */ + 4, /* kB10(4) */ + 9, /* kB100(9) */ + 15, /* kB1000(15) */ + 10, /* kB125(10) */ + 16, /* kB1250(16) */ + 5, /* kB15(5) */ + 17, /* kB1500(17) */ + 1, /* kB2(1) */ + 18, /* kB2000(18) */ + 6, /* kB25(6) */ + 11, /* kB250(11) */ + 19, /* kB3000(19) */ + 12, /* kB375(12) */ + 20, /* kB4000(20) */ + 21, /* kB4500(21) */ + 2, /* kB5(2) */ + 7, /* kB50(7) */ + 13, /* kB500(13) */ + 22, /* kB5000(22) */ + 23, /* kB5500(23) */ + 24, /* kB6000(24) */ + 25, /* kB6500(25) */ + 26, /* kB7000(26) */ + 8, /* kB75(8) */ + 14, /* kB750(14) */ + 27, /* kB7500(27) */ + 3, /* kB8(3) */ + 30, /* mB10(30) */ + 31, /* mB11(31) */ + 32, /* mB12(32) */ + 33, /* mB13(33) */ + 34, /* mB14(34) */ + 35, /* mB15(35) */ + 36, /* mB16(36) */ + 37, /* mB17(37) */ + 38, /* mB18(38) */ + 39, /* mB20(39) */ + 40, /* mB25(40) */ + 41, /* mB30(41) */ + 42, /* mB40(42) */ + 28, /* mB8(28) */ + 29, /* mB9(29) */ + 63, /* spare1(63) */ + 54, /* spare10(54) */ + 53, /* spare11(53) */ + 52, /* spare12(52) */ + 51, /* spare13(51) */ + 50, /* spare14(50) */ + 49, /* spare15(49) */ + 48, /* spare16(48) */ + 47, /* spare17(47) */ + 46, /* spare18(46) */ + 45, /* spare19(45) */ + 62, /* spare2(62) */ + 44, /* spare20(44) */ + 61, /* spare3(61) */ + 60, /* spare4(60) */ + 59, /* spare5(59) */ + 58, /* spare6(58) */ + 57, /* spare7(57) */ + 56, /* spare8(56) */ + 55 /* spare9(55) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PollByte_specs_1 = { + asn_MAP_ASN_RRC_PollByte_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_PollByte_enum2value_1, /* N => "tag"; sorted by N */ + 64, /* 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_ASN_RRC_PollByte_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PollByte = { + "PollByte", + "PollByte", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_PollByte_tags_1, + sizeof(asn_DEF_ASN_RRC_PollByte_tags_1) + /sizeof(asn_DEF_ASN_RRC_PollByte_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PollByte_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PollByte_tags_1) + /sizeof(asn_DEF_ASN_RRC_PollByte_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PollByte_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_PollByte_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PollByte.h b/src/asn/rrc/ASN_RRC_PollByte.h new file mode 100644 index 0000000..59a72f3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PollByte.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PollByte_H_ +#define _ASN_RRC_PollByte_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PollByte { + ASN_RRC_PollByte_kB1 = 0, + ASN_RRC_PollByte_kB2 = 1, + ASN_RRC_PollByte_kB5 = 2, + ASN_RRC_PollByte_kB8 = 3, + ASN_RRC_PollByte_kB10 = 4, + ASN_RRC_PollByte_kB15 = 5, + ASN_RRC_PollByte_kB25 = 6, + ASN_RRC_PollByte_kB50 = 7, + ASN_RRC_PollByte_kB75 = 8, + ASN_RRC_PollByte_kB100 = 9, + ASN_RRC_PollByte_kB125 = 10, + ASN_RRC_PollByte_kB250 = 11, + ASN_RRC_PollByte_kB375 = 12, + ASN_RRC_PollByte_kB500 = 13, + ASN_RRC_PollByte_kB750 = 14, + ASN_RRC_PollByte_kB1000 = 15, + ASN_RRC_PollByte_kB1250 = 16, + ASN_RRC_PollByte_kB1500 = 17, + ASN_RRC_PollByte_kB2000 = 18, + ASN_RRC_PollByte_kB3000 = 19, + ASN_RRC_PollByte_kB4000 = 20, + ASN_RRC_PollByte_kB4500 = 21, + ASN_RRC_PollByte_kB5000 = 22, + ASN_RRC_PollByte_kB5500 = 23, + ASN_RRC_PollByte_kB6000 = 24, + ASN_RRC_PollByte_kB6500 = 25, + ASN_RRC_PollByte_kB7000 = 26, + ASN_RRC_PollByte_kB7500 = 27, + ASN_RRC_PollByte_mB8 = 28, + ASN_RRC_PollByte_mB9 = 29, + ASN_RRC_PollByte_mB10 = 30, + ASN_RRC_PollByte_mB11 = 31, + ASN_RRC_PollByte_mB12 = 32, + ASN_RRC_PollByte_mB13 = 33, + ASN_RRC_PollByte_mB14 = 34, + ASN_RRC_PollByte_mB15 = 35, + ASN_RRC_PollByte_mB16 = 36, + ASN_RRC_PollByte_mB17 = 37, + ASN_RRC_PollByte_mB18 = 38, + ASN_RRC_PollByte_mB20 = 39, + ASN_RRC_PollByte_mB25 = 40, + ASN_RRC_PollByte_mB30 = 41, + ASN_RRC_PollByte_mB40 = 42, + ASN_RRC_PollByte_infinity = 43, + ASN_RRC_PollByte_spare20 = 44, + ASN_RRC_PollByte_spare19 = 45, + ASN_RRC_PollByte_spare18 = 46, + ASN_RRC_PollByte_spare17 = 47, + ASN_RRC_PollByte_spare16 = 48, + ASN_RRC_PollByte_spare15 = 49, + ASN_RRC_PollByte_spare14 = 50, + ASN_RRC_PollByte_spare13 = 51, + ASN_RRC_PollByte_spare12 = 52, + ASN_RRC_PollByte_spare11 = 53, + ASN_RRC_PollByte_spare10 = 54, + ASN_RRC_PollByte_spare9 = 55, + ASN_RRC_PollByte_spare8 = 56, + ASN_RRC_PollByte_spare7 = 57, + ASN_RRC_PollByte_spare6 = 58, + ASN_RRC_PollByte_spare5 = 59, + ASN_RRC_PollByte_spare4 = 60, + ASN_RRC_PollByte_spare3 = 61, + ASN_RRC_PollByte_spare2 = 62, + ASN_RRC_PollByte_spare1 = 63 +} e_ASN_RRC_PollByte; + +/* ASN_RRC_PollByte */ +typedef long ASN_RRC_PollByte_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PollByte_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PollByte; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PollByte_specs_1; +asn_struct_free_f ASN_RRC_PollByte_free; +asn_struct_print_f ASN_RRC_PollByte_print; +asn_constr_check_f ASN_RRC_PollByte_constraint; +ber_type_decoder_f ASN_RRC_PollByte_decode_ber; +der_type_encoder_f ASN_RRC_PollByte_encode_der; +xer_type_decoder_f ASN_RRC_PollByte_decode_xer; +xer_type_encoder_f ASN_RRC_PollByte_encode_xer; +per_type_decoder_f ASN_RRC_PollByte_decode_uper; +per_type_encoder_f ASN_RRC_PollByte_encode_uper; +per_type_decoder_f ASN_RRC_PollByte_decode_aper; +per_type_encoder_f ASN_RRC_PollByte_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PollByte_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PollPDU.c b/src/asn/rrc/ASN_RRC_PollPDU.c new file mode 100644 index 0000000..4dc3adc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PollPDU.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PollPDU.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PollPDU_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_PollPDU_value2enum_1[] = { + { 0, 2, "p4" }, + { 1, 2, "p8" }, + { 2, 3, "p16" }, + { 3, 3, "p32" }, + { 4, 3, "p64" }, + { 5, 4, "p128" }, + { 6, 4, "p256" }, + { 7, 4, "p512" }, + { 8, 5, "p1024" }, + { 9, 5, "p2048" }, + { 10, 5, "p4096" }, + { 11, 5, "p6144" }, + { 12, 5, "p8192" }, + { 13, 6, "p12288" }, + { 14, 6, "p16384" }, + { 15, 6, "p20480" }, + { 16, 6, "p24576" }, + { 17, 6, "p28672" }, + { 18, 6, "p32768" }, + { 19, 6, "p40960" }, + { 20, 6, "p49152" }, + { 21, 6, "p57344" }, + { 22, 6, "p65536" }, + { 23, 8, "infinity" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_PollPDU_enum2value_1[] = { + 23, /* infinity(23) */ + 8, /* p1024(8) */ + 13, /* p12288(13) */ + 5, /* p128(5) */ + 2, /* p16(2) */ + 14, /* p16384(14) */ + 9, /* p2048(9) */ + 15, /* p20480(15) */ + 16, /* p24576(16) */ + 6, /* p256(6) */ + 17, /* p28672(17) */ + 3, /* p32(3) */ + 18, /* p32768(18) */ + 0, /* p4(0) */ + 10, /* p4096(10) */ + 19, /* p40960(19) */ + 20, /* p49152(20) */ + 7, /* p512(7) */ + 21, /* p57344(21) */ + 11, /* p6144(11) */ + 4, /* p64(4) */ + 22, /* p65536(22) */ + 1, /* p8(1) */ + 12, /* p8192(12) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24 /* spare8(24) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PollPDU_specs_1 = { + asn_MAP_ASN_RRC_PollPDU_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_PollPDU_enum2value_1, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_PollPDU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PollPDU = { + "PollPDU", + "PollPDU", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_PollPDU_tags_1, + sizeof(asn_DEF_ASN_RRC_PollPDU_tags_1) + /sizeof(asn_DEF_ASN_RRC_PollPDU_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PollPDU_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PollPDU_tags_1) + /sizeof(asn_DEF_ASN_RRC_PollPDU_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PollPDU_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_PollPDU_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PollPDU.h b/src/asn/rrc/ASN_RRC_PollPDU.h new file mode 100644 index 0000000..049840f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PollPDU.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PollPDU_H_ +#define _ASN_RRC_PollPDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PollPDU { + ASN_RRC_PollPDU_p4 = 0, + ASN_RRC_PollPDU_p8 = 1, + ASN_RRC_PollPDU_p16 = 2, + ASN_RRC_PollPDU_p32 = 3, + ASN_RRC_PollPDU_p64 = 4, + ASN_RRC_PollPDU_p128 = 5, + ASN_RRC_PollPDU_p256 = 6, + ASN_RRC_PollPDU_p512 = 7, + ASN_RRC_PollPDU_p1024 = 8, + ASN_RRC_PollPDU_p2048 = 9, + ASN_RRC_PollPDU_p4096 = 10, + ASN_RRC_PollPDU_p6144 = 11, + ASN_RRC_PollPDU_p8192 = 12, + ASN_RRC_PollPDU_p12288 = 13, + ASN_RRC_PollPDU_p16384 = 14, + ASN_RRC_PollPDU_p20480 = 15, + ASN_RRC_PollPDU_p24576 = 16, + ASN_RRC_PollPDU_p28672 = 17, + ASN_RRC_PollPDU_p32768 = 18, + ASN_RRC_PollPDU_p40960 = 19, + ASN_RRC_PollPDU_p49152 = 20, + ASN_RRC_PollPDU_p57344 = 21, + ASN_RRC_PollPDU_p65536 = 22, + ASN_RRC_PollPDU_infinity = 23, + ASN_RRC_PollPDU_spare8 = 24, + ASN_RRC_PollPDU_spare7 = 25, + ASN_RRC_PollPDU_spare6 = 26, + ASN_RRC_PollPDU_spare5 = 27, + ASN_RRC_PollPDU_spare4 = 28, + ASN_RRC_PollPDU_spare3 = 29, + ASN_RRC_PollPDU_spare2 = 30, + ASN_RRC_PollPDU_spare1 = 31 +} e_ASN_RRC_PollPDU; + +/* ASN_RRC_PollPDU */ +typedef long ASN_RRC_PollPDU_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PollPDU_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PollPDU; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_PollPDU_specs_1; +asn_struct_free_f ASN_RRC_PollPDU_free; +asn_struct_print_f ASN_RRC_PollPDU_print; +asn_constr_check_f ASN_RRC_PollPDU_constraint; +ber_type_decoder_f ASN_RRC_PollPDU_decode_ber; +der_type_encoder_f ASN_RRC_PollPDU_encode_der; +xer_type_decoder_f ASN_RRC_PollPDU_decode_xer; +xer_type_encoder_f ASN_RRC_PollPDU_encode_xer; +per_type_decoder_f ASN_RRC_PollPDU_decode_uper; +per_type_encoder_f ASN_RRC_PollPDU_encode_uper; +per_type_decoder_f ASN_RRC_PollPDU_decode_aper; +per_type_encoder_f ASN_RRC_PollPDU_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PollPDU_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PortIndex2.c b/src/asn/rrc/ASN_RRC_PortIndex2.c new file mode 100644 index 0000000..0831944 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex2.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PortIndex2.h" + +int +ASN_RRC_PortIndex2_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndex2_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 ber_tlv_tag_t asn_DEF_ASN_RRC_PortIndex2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex2 = { + "PortIndex2", + "PortIndex2", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PortIndex2_tags_1, + sizeof(asn_DEF_ASN_RRC_PortIndex2_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex2_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PortIndex2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PortIndex2_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex2_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PortIndex2_constr_1, ASN_RRC_PortIndex2_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PortIndex2.h b/src/asn/rrc/ASN_RRC_PortIndex2.h new file mode 100644 index 0000000..c397227 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex2.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PortIndex2_H_ +#define _ASN_RRC_PortIndex2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PortIndex2 */ +typedef long ASN_RRC_PortIndex2_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndex2_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex2; +asn_struct_free_f ASN_RRC_PortIndex2_free; +asn_struct_print_f ASN_RRC_PortIndex2_print; +asn_constr_check_f ASN_RRC_PortIndex2_constraint; +ber_type_decoder_f ASN_RRC_PortIndex2_decode_ber; +der_type_encoder_f ASN_RRC_PortIndex2_encode_der; +xer_type_decoder_f ASN_RRC_PortIndex2_decode_xer; +xer_type_encoder_f ASN_RRC_PortIndex2_encode_xer; +per_type_decoder_f ASN_RRC_PortIndex2_decode_uper; +per_type_encoder_f ASN_RRC_PortIndex2_encode_uper; +per_type_decoder_f ASN_RRC_PortIndex2_decode_aper; +per_type_encoder_f ASN_RRC_PortIndex2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PortIndex2_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PortIndex4.c b/src/asn/rrc/ASN_RRC_PortIndex4.c new file mode 100644 index 0000000..c5566cf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex4.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PortIndex4.h" + +int +ASN_RRC_PortIndex4_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndex4_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 ber_tlv_tag_t asn_DEF_ASN_RRC_PortIndex4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex4 = { + "PortIndex4", + "PortIndex4", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PortIndex4_tags_1, + sizeof(asn_DEF_ASN_RRC_PortIndex4_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex4_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PortIndex4_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PortIndex4_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex4_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PortIndex4_constr_1, ASN_RRC_PortIndex4_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PortIndex4.h b/src/asn/rrc/ASN_RRC_PortIndex4.h new file mode 100644 index 0000000..4f5f3d5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex4.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PortIndex4_H_ +#define _ASN_RRC_PortIndex4_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PortIndex4 */ +typedef long ASN_RRC_PortIndex4_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndex4_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex4; +asn_struct_free_f ASN_RRC_PortIndex4_free; +asn_struct_print_f ASN_RRC_PortIndex4_print; +asn_constr_check_f ASN_RRC_PortIndex4_constraint; +ber_type_decoder_f ASN_RRC_PortIndex4_decode_ber; +der_type_encoder_f ASN_RRC_PortIndex4_encode_der; +xer_type_decoder_f ASN_RRC_PortIndex4_decode_xer; +xer_type_encoder_f ASN_RRC_PortIndex4_encode_xer; +per_type_decoder_f ASN_RRC_PortIndex4_decode_uper; +per_type_encoder_f ASN_RRC_PortIndex4_encode_uper; +per_type_decoder_f ASN_RRC_PortIndex4_decode_aper; +per_type_encoder_f ASN_RRC_PortIndex4_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PortIndex4_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PortIndex8.c b/src/asn/rrc/ASN_RRC_PortIndex8.c new file mode 100644 index 0000000..1da8bcd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex8.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PortIndex8.h" + +int +ASN_RRC_PortIndex8_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_ASN_RRC_PortIndex8_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_ASN_RRC_PortIndex8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex8 = { + "PortIndex8", + "PortIndex8", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_PortIndex8_tags_1, + sizeof(asn_DEF_ASN_RRC_PortIndex8_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex8_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_PortIndex8_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_PortIndex8_tags_1) + /sizeof(asn_DEF_ASN_RRC_PortIndex8_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_PortIndex8_constr_1, ASN_RRC_PortIndex8_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PortIndex8.h b/src/asn/rrc/ASN_RRC_PortIndex8.h new file mode 100644 index 0000000..da43dfa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndex8.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PortIndex8_H_ +#define _ASN_RRC_PortIndex8_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_PortIndex8 */ +typedef long ASN_RRC_PortIndex8_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndex8_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndex8; +asn_struct_free_f ASN_RRC_PortIndex8_free; +asn_struct_print_f ASN_RRC_PortIndex8_print; +asn_constr_check_f ASN_RRC_PortIndex8_constraint; +ber_type_decoder_f ASN_RRC_PortIndex8_decode_ber; +der_type_encoder_f ASN_RRC_PortIndex8_encode_der; +xer_type_decoder_f ASN_RRC_PortIndex8_decode_xer; +xer_type_encoder_f ASN_RRC_PortIndex8_encode_xer; +per_type_decoder_f ASN_RRC_PortIndex8_decode_uper; +per_type_encoder_f ASN_RRC_PortIndex8_encode_uper; +per_type_decoder_f ASN_RRC_PortIndex8_decode_aper; +per_type_encoder_f ASN_RRC_PortIndex8_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PortIndex8_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.c b/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.c new file mode 100644 index 0000000..89867b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.c @@ -0,0 +1,1130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_PortIndexFor8Ranks.h" + +static int +memb_ASN_RRC_rank2_8_constraint_2(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 == 2)) { + /* 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 int +memb_ASN_RRC_rank3_8_constraint_2(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 int +memb_ASN_RRC_rank4_8_constraint_2(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 == 4)) { + /* 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 int +memb_ASN_RRC_rank5_8_constraint_2(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 == 5)) { + /* 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 int +memb_ASN_RRC_rank6_8_constraint_2(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 == 6)) { + /* 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 int +memb_ASN_RRC_rank7_8_constraint_2(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 == 7)) { + /* 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 int +memb_ASN_RRC_rank8_8_constraint_2(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 == 8)) { + /* 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 int +memb_ASN_RRC_rank2_4_constraint_18(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 == 2)) { + /* 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 int +memb_ASN_RRC_rank3_4_constraint_18(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 int +memb_ASN_RRC_rank4_4_constraint_18(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 == 4)) { + /* 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 int +memb_ASN_RRC_rank2_2_constraint_26(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 == 2)) { + /* 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_ASN_RRC_rank2_8_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_rank3_8_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_rank4_8_constr_8 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_type_ASN_RRC_rank5_8_constr_10 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_per_constraints_t asn_PER_type_ASN_RRC_rank6_8_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_rank7_8_constr_14 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_type_ASN_RRC_rank8_8_constr_16 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_ASN_RRC_rank2_8_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank3_8_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank4_8_constr_8 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_ASN_RRC_rank5_8_constr_10 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_per_constraints_t asn_PER_memb_ASN_RRC_rank6_8_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 6, 6 } /* (SIZE(6..6)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank7_8_constr_14 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_ASN_RRC_rank8_8_constr_16 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_type_ASN_RRC_rank2_4_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_rank3_4_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_rank4_4_constr_24 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_ASN_RRC_rank2_4_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank3_4_constr_22 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank4_4_constr_24 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_type_ASN_RRC_rank2_2_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rank2_2_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndexFor8Ranks_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 asn_TYPE_member_t asn_MBR_ASN_RRC_rank2_8_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank2_8_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank2_8_specs_4 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank2_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank2_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank2_8_4 = { + "rank2-8", + "rank2-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank2_8_tags_4, + sizeof(asn_DEF_ASN_RRC_rank2_8_tags_4) + /sizeof(asn_DEF_ASN_RRC_rank2_8_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank2_8_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank2_8_tags_4) + /sizeof(asn_DEF_ASN_RRC_rank2_8_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank2_8_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank2_8_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank2_8_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank3_8_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank3_8_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank3_8_specs_6 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank3_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank3_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank3_8_6 = { + "rank3-8", + "rank3-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank3_8_tags_6, + sizeof(asn_DEF_ASN_RRC_rank3_8_tags_6) + /sizeof(asn_DEF_ASN_RRC_rank3_8_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank3_8_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank3_8_tags_6) + /sizeof(asn_DEF_ASN_RRC_rank3_8_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank3_8_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank3_8_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank3_8_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank4_8_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank4_8_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank4_8_specs_8 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank4_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank4_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank4_8_8 = { + "rank4-8", + "rank4-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank4_8_tags_8, + sizeof(asn_DEF_ASN_RRC_rank4_8_tags_8) + /sizeof(asn_DEF_ASN_RRC_rank4_8_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank4_8_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank4_8_tags_8) + /sizeof(asn_DEF_ASN_RRC_rank4_8_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank4_8_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank4_8_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank4_8_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank5_8_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank5_8_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank5_8_specs_10 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank5_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank5_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank5_8_10 = { + "rank5-8", + "rank5-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank5_8_tags_10, + sizeof(asn_DEF_ASN_RRC_rank5_8_tags_10) + /sizeof(asn_DEF_ASN_RRC_rank5_8_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank5_8_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank5_8_tags_10) + /sizeof(asn_DEF_ASN_RRC_rank5_8_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank5_8_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank5_8_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank5_8_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank6_8_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank6_8_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank6_8_specs_12 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank6_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank6_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank6_8_12 = { + "rank6-8", + "rank6-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank6_8_tags_12, + sizeof(asn_DEF_ASN_RRC_rank6_8_tags_12) + /sizeof(asn_DEF_ASN_RRC_rank6_8_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank6_8_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank6_8_tags_12) + /sizeof(asn_DEF_ASN_RRC_rank6_8_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank6_8_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank6_8_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank6_8_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank7_8_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank7_8_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank7_8_specs_14 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank7_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank7_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank7_8_14 = { + "rank7-8", + "rank7-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank7_8_tags_14, + sizeof(asn_DEF_ASN_RRC_rank7_8_tags_14) + /sizeof(asn_DEF_ASN_RRC_rank7_8_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank7_8_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank7_8_tags_14) + /sizeof(asn_DEF_ASN_RRC_rank7_8_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank7_8_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank7_8_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank7_8_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank8_8_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank8_8_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank8_8_specs_16 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank8_8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank8_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank8_8_16 = { + "rank8-8", + "rank8-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank8_8_tags_16, + sizeof(asn_DEF_ASN_RRC_rank8_8_tags_16) + /sizeof(asn_DEF_ASN_RRC_rank8_8_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank8_8_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank8_8_tags_16) + /sizeof(asn_DEF_ASN_RRC_rank8_8_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank8_8_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank8_8_16, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank8_8_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_portIndex8_2[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank1_8), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-8" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank2_8), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rank2_8_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank2_8_constr_4, memb_ASN_RRC_rank2_8_constraint_2 }, + 0, 0, /* No default value */ + "rank2-8" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank3_8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_rank3_8_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank3_8_constr_6, memb_ASN_RRC_rank3_8_constraint_2 }, + 0, 0, /* No default value */ + "rank3-8" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank4_8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_rank4_8_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank4_8_constr_8, memb_ASN_RRC_rank4_8_constraint_2 }, + 0, 0, /* No default value */ + "rank4-8" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank5_8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_rank5_8_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank5_8_constr_10, memb_ASN_RRC_rank5_8_constraint_2 }, + 0, 0, /* No default value */ + "rank5-8" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank6_8), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_rank6_8_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank6_8_constr_12, memb_ASN_RRC_rank6_8_constraint_2 }, + 0, 0, /* No default value */ + "rank6-8" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank7_8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_rank7_8_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank7_8_constr_14, memb_ASN_RRC_rank7_8_constraint_2 }, + 0, 0, /* No default value */ + "rank7-8" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, rank8_8), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_rank8_8_16, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank8_8_constr_16, memb_ASN_RRC_rank8_8_constraint_2 }, + 0, 0, /* No default value */ + "rank8-8" + }, +}; +static const int asn_MAP_ASN_RRC_portIndex8_oms_2[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_portIndex8_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_portIndex8_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rank1-8 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rank2-8 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rank3-8 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rank4-8 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rank5-8 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rank6-8 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rank7-8 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* rank8-8 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_portIndex8_specs_2 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex8, _asn_ctx), + asn_MAP_ASN_RRC_portIndex8_tag2el_2, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_portIndex8_oms_2, /* Optional members */ + 8, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_portIndex8_2 = { + "portIndex8", + "portIndex8", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_portIndex8_tags_2, + sizeof(asn_DEF_ASN_RRC_portIndex8_tags_2) + /sizeof(asn_DEF_ASN_RRC_portIndex8_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_portIndex8_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_portIndex8_tags_2) + /sizeof(asn_DEF_ASN_RRC_portIndex8_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_portIndex8_2, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_portIndex8_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank2_4_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank2_4_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank2_4_specs_20 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank2_4), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank2_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank2_4_20 = { + "rank2-4", + "rank2-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank2_4_tags_20, + sizeof(asn_DEF_ASN_RRC_rank2_4_tags_20) + /sizeof(asn_DEF_ASN_RRC_rank2_4_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank2_4_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank2_4_tags_20) + /sizeof(asn_DEF_ASN_RRC_rank2_4_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank2_4_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank2_4_20, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank2_4_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank3_4_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank3_4_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank3_4_specs_22 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank3_4), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank3_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank3_4_22 = { + "rank3-4", + "rank3-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank3_4_tags_22, + sizeof(asn_DEF_ASN_RRC_rank3_4_tags_22) + /sizeof(asn_DEF_ASN_RRC_rank3_4_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank3_4_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank3_4_tags_22) + /sizeof(asn_DEF_ASN_RRC_rank3_4_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank3_4_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank3_4_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank3_4_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank4_4_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank4_4_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank4_4_specs_24 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank4_4), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank4_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank4_4_24 = { + "rank4-4", + "rank4-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank4_4_tags_24, + sizeof(asn_DEF_ASN_RRC_rank4_4_tags_24) + /sizeof(asn_DEF_ASN_RRC_rank4_4_tags_24[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank4_4_tags_24, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank4_4_tags_24) + /sizeof(asn_DEF_ASN_RRC_rank4_4_tags_24[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank4_4_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank4_4_24, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank4_4_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_portIndex4_18[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4, rank1_4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-4" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4, rank2_4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rank2_4_20, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank2_4_constr_20, memb_ASN_RRC_rank2_4_constraint_18 }, + 0, 0, /* No default value */ + "rank2-4" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4, rank3_4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_rank3_4_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank3_4_constr_22, memb_ASN_RRC_rank3_4_constraint_18 }, + 0, 0, /* No default value */ + "rank3-4" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4, rank4_4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_rank4_4_24, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank4_4_constr_24, memb_ASN_RRC_rank4_4_constraint_18 }, + 0, 0, /* No default value */ + "rank4-4" + }, +}; +static const int asn_MAP_ASN_RRC_portIndex4_oms_18[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_portIndex4_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_portIndex4_tag2el_18[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rank1-4 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rank2-4 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rank3-4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* rank4-4 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_portIndex4_specs_18 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex4, _asn_ctx), + asn_MAP_ASN_RRC_portIndex4_tag2el_18, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_portIndex4_oms_18, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_portIndex4_18 = { + "portIndex4", + "portIndex4", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_portIndex4_tags_18, + sizeof(asn_DEF_ASN_RRC_portIndex4_tags_18) + /sizeof(asn_DEF_ASN_RRC_portIndex4_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_portIndex4_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_portIndex4_tags_18) + /sizeof(asn_DEF_ASN_RRC_portIndex4_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_portIndex4_18, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_portIndex4_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rank2_2_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PortIndex2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rank2_2_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rank2_2_specs_28 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2__rank2_2), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2__rank2_2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rank2_2_28 = { + "rank2-2", + "rank2-2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rank2_2_tags_28, + sizeof(asn_DEF_ASN_RRC_rank2_2_tags_28) + /sizeof(asn_DEF_ASN_RRC_rank2_2_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rank2_2_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rank2_2_tags_28) + /sizeof(asn_DEF_ASN_RRC_rank2_2_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rank2_2_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rank2_2_28, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rank2_2_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_portIndex2_26[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2, rank1_2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PortIndex2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2, rank2_2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rank2_2_28, + 0, + { 0, &asn_PER_memb_ASN_RRC_rank2_2_constr_28, memb_ASN_RRC_rank2_2_constraint_26 }, + 0, 0, /* No default value */ + "rank2-2" + }, +}; +static const int asn_MAP_ASN_RRC_portIndex2_oms_26[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_portIndex2_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_portIndex2_tag2el_26[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rank1-2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* rank2-2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_portIndex2_specs_26 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2), + offsetof(struct ASN_RRC_PortIndexFor8Ranks__portIndex2, _asn_ctx), + asn_MAP_ASN_RRC_portIndex2_tag2el_26, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_portIndex2_oms_26, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_portIndex2_26 = { + "portIndex2", + "portIndex2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_portIndex2_tags_26, + sizeof(asn_DEF_ASN_RRC_portIndex2_tags_26) + /sizeof(asn_DEF_ASN_RRC_portIndex2_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_portIndex2_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_portIndex2_tags_26) + /sizeof(asn_DEF_ASN_RRC_portIndex2_tags_26[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_portIndex2_26, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_portIndex2_specs_26 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_PortIndexFor8Ranks_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PortIndexFor8Ranks, choice.portIndex8), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_portIndex8_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex8" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PortIndexFor8Ranks, choice.portIndex4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_portIndex4_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex4" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_PortIndexFor8Ranks, choice.portIndex2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_portIndex2_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_PortIndexFor8Ranks, choice.portIndex1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_PortIndexFor8Ranks_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* portIndex8 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* portIndex4 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* portIndex2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* portIndex1 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PortIndexFor8Ranks_specs_1 = { + sizeof(struct ASN_RRC_PortIndexFor8Ranks), + offsetof(struct ASN_RRC_PortIndexFor8Ranks, _asn_ctx), + offsetof(struct ASN_RRC_PortIndexFor8Ranks, present), + sizeof(((struct ASN_RRC_PortIndexFor8Ranks *)0)->present), + asn_MAP_ASN_RRC_PortIndexFor8Ranks_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndexFor8Ranks = { + "PortIndexFor8Ranks", + "PortIndexFor8Ranks", + &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_ASN_RRC_PortIndexFor8Ranks_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_PortIndexFor8Ranks_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_PortIndexFor8Ranks_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.h b/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.h new file mode 100644 index 0000000..c1886ab --- /dev/null +++ b/src/asn/rrc/ASN_RRC_PortIndexFor8Ranks.h @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_PortIndexFor8Ranks_H_ +#define _ASN_RRC_PortIndexFor8Ranks_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_PortIndex8.h" +#include +#include +#include +#include "ASN_RRC_PortIndex4.h" +#include "ASN_RRC_PortIndex2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_PortIndexFor8Ranks_PR { + ASN_RRC_PortIndexFor8Ranks_PR_NOTHING, /* No components present */ + ASN_RRC_PortIndexFor8Ranks_PR_portIndex8, + ASN_RRC_PortIndexFor8Ranks_PR_portIndex4, + ASN_RRC_PortIndexFor8Ranks_PR_portIndex2, + ASN_RRC_PortIndexFor8Ranks_PR_portIndex1 +} ASN_RRC_PortIndexFor8Ranks_PR; + +/* ASN_RRC_PortIndexFor8Ranks */ +typedef struct ASN_RRC_PortIndexFor8Ranks { + ASN_RRC_PortIndexFor8Ranks_PR present; + union ASN_RRC_PortIndexFor8Ranks_u { + struct ASN_RRC_PortIndexFor8Ranks__portIndex8 { + ASN_RRC_PortIndex8_t *rank1_8; /* OPTIONAL */ + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank2_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank2_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank3_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank3_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank4_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank4_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank5_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank5_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank6_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank6_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank7_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank7_8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex8__rank8_8 { + A_SEQUENCE_OF(ASN_RRC_PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank8_8; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *portIndex8; + struct ASN_RRC_PortIndexFor8Ranks__portIndex4 { + ASN_RRC_PortIndex4_t *rank1_4; /* OPTIONAL */ + struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank2_4 { + A_SEQUENCE_OF(ASN_RRC_PortIndex4_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank2_4; + struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank3_4 { + A_SEQUENCE_OF(ASN_RRC_PortIndex4_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank3_4; + struct ASN_RRC_PortIndexFor8Ranks__portIndex4__rank4_4 { + A_SEQUENCE_OF(ASN_RRC_PortIndex4_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank4_4; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *portIndex4; + struct ASN_RRC_PortIndexFor8Ranks__portIndex2 { + ASN_RRC_PortIndex2_t *rank1_2; /* OPTIONAL */ + struct ASN_RRC_PortIndexFor8Ranks__portIndex2__rank2_2 { + A_SEQUENCE_OF(ASN_RRC_PortIndex2_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank2_2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *portIndex2; + NULL_t portIndex1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_PortIndexFor8Ranks_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PortIndexFor8Ranks; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_PortIndexFor8Ranks_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_PortIndexFor8Ranks_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_PortIndexFor8Ranks_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_PortIndexFor8Ranks_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ProcessingParameters.c b/src/asn/rrc/ASN_RRC_ProcessingParameters.c new file mode 100644 index 0000000..a6f91a6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ProcessingParameters.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ProcessingParameters.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_fallback_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 const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_fallback_value2enum_2[] = { + { 0, 2, "sc" }, + { 1, 9, "cap1-only" } +}; +static const unsigned int asn_MAP_ASN_RRC_fallback_enum2value_2[] = { + 1, /* cap1-only(1) */ + 0 /* sc(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fallback_specs_2 = { + asn_MAP_ASN_RRC_fallback_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fallback_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fallback_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_ASN_RRC_fallback_2 = { + "fallback", + "fallback", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fallback_tags_2, + sizeof(asn_DEF_ASN_RRC_fallback_tags_2) + /sizeof(asn_DEF_ASN_RRC_fallback_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fallback_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fallback_tags_2) + /sizeof(asn_DEF_ASN_RRC_fallback_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fallback_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fallback_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_differentTB_PerSlot_5[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot, upto1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NumberOfCarriers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upto1" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot, upto2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NumberOfCarriers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upto2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot, upto4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NumberOfCarriers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upto4" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot, upto7), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NumberOfCarriers, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upto7" + }, +}; +static const int asn_MAP_ASN_RRC_differentTB_PerSlot_oms_5[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_differentTB_PerSlot_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* upto1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* upto2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* upto4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* upto7 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_differentTB_PerSlot_specs_5 = { + sizeof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot), + offsetof(struct ASN_RRC_ProcessingParameters__differentTB_PerSlot, _asn_ctx), + asn_MAP_ASN_RRC_differentTB_PerSlot_tag2el_5, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_differentTB_PerSlot_oms_5, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_differentTB_PerSlot_5 = { + "differentTB-PerSlot", + "differentTB-PerSlot", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5, + sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5) + /sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5) + /sizeof(asn_DEF_ASN_RRC_differentTB_PerSlot_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_differentTB_PerSlot_5, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_differentTB_PerSlot_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ProcessingParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ProcessingParameters, fallback), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fallback_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fallback" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ProcessingParameters, differentTB_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_differentTB_PerSlot_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "differentTB-PerSlot" + }, +}; +static const int asn_MAP_ASN_RRC_ProcessingParameters_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ProcessingParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ProcessingParameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fallback */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* differentTB-PerSlot */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ProcessingParameters_specs_1 = { + sizeof(struct ASN_RRC_ProcessingParameters), + offsetof(struct ASN_RRC_ProcessingParameters, _asn_ctx), + asn_MAP_ASN_RRC_ProcessingParameters_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ProcessingParameters_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ProcessingParameters = { + "ProcessingParameters", + "ProcessingParameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ProcessingParameters_tags_1, + sizeof(asn_DEF_ASN_RRC_ProcessingParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_ProcessingParameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ProcessingParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ProcessingParameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_ProcessingParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ProcessingParameters_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ProcessingParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ProcessingParameters.h b/src/asn/rrc/ASN_RRC_ProcessingParameters.h new file mode 100644 index 0000000..98db3d6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ProcessingParameters.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ProcessingParameters_H_ +#define _ASN_RRC_ProcessingParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_NumberOfCarriers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ProcessingParameters__fallback { + ASN_RRC_ProcessingParameters__fallback_sc = 0, + ASN_RRC_ProcessingParameters__fallback_cap1_only = 1 +} e_ASN_RRC_ProcessingParameters__fallback; + +/* ASN_RRC_ProcessingParameters */ +typedef struct ASN_RRC_ProcessingParameters { + long fallback; + struct ASN_RRC_ProcessingParameters__differentTB_PerSlot { + ASN_RRC_NumberOfCarriers_t *upto1; /* OPTIONAL */ + ASN_RRC_NumberOfCarriers_t *upto2; /* OPTIONAL */ + ASN_RRC_NumberOfCarriers_t *upto4; /* OPTIONAL */ + ASN_RRC_NumberOfCarriers_t *upto7; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *differentTB_PerSlot; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ProcessingParameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fallback_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ProcessingParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ProcessingParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ProcessingParameters_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ProcessingParameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Q-OffsetRange.c b/src/asn/rrc/ASN_RRC_Q-OffsetRange.c new file mode 100644 index 0000000..d401a02 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-OffsetRange.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Q-OffsetRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_Q_OffsetRange_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_Q_OffsetRange_value2enum_1[] = { + { 0, 5, "dB-24" }, + { 1, 5, "dB-22" }, + { 2, 5, "dB-20" }, + { 3, 5, "dB-18" }, + { 4, 5, "dB-16" }, + { 5, 5, "dB-14" }, + { 6, 5, "dB-12" }, + { 7, 5, "dB-10" }, + { 8, 4, "dB-8" }, + { 9, 4, "dB-6" }, + { 10, 4, "dB-5" }, + { 11, 4, "dB-4" }, + { 12, 4, "dB-3" }, + { 13, 4, "dB-2" }, + { 14, 4, "dB-1" }, + { 15, 3, "dB0" }, + { 16, 3, "dB1" }, + { 17, 3, "dB2" }, + { 18, 3, "dB3" }, + { 19, 3, "dB4" }, + { 20, 3, "dB5" }, + { 21, 3, "dB6" }, + { 22, 3, "dB8" }, + { 23, 4, "dB10" }, + { 24, 4, "dB12" }, + { 25, 4, "dB14" }, + { 26, 4, "dB16" }, + { 27, 4, "dB18" }, + { 28, 4, "dB20" }, + { 29, 4, "dB22" }, + { 30, 4, "dB24" } +}; +static const unsigned int asn_MAP_ASN_RRC_Q_OffsetRange_enum2value_1[] = { + 14, /* dB-1(14) */ + 7, /* dB-10(7) */ + 6, /* dB-12(6) */ + 5, /* dB-14(5) */ + 4, /* dB-16(4) */ + 3, /* dB-18(3) */ + 13, /* dB-2(13) */ + 2, /* dB-20(2) */ + 1, /* dB-22(1) */ + 0, /* dB-24(0) */ + 12, /* dB-3(12) */ + 11, /* dB-4(11) */ + 10, /* dB-5(10) */ + 9, /* dB-6(9) */ + 8, /* dB-8(8) */ + 15, /* dB0(15) */ + 16, /* dB1(16) */ + 23, /* dB10(23) */ + 24, /* dB12(24) */ + 25, /* dB14(25) */ + 26, /* dB16(26) */ + 27, /* dB18(27) */ + 17, /* dB2(17) */ + 28, /* dB20(28) */ + 29, /* dB22(29) */ + 30, /* dB24(30) */ + 18, /* dB3(18) */ + 19, /* dB4(19) */ + 20, /* dB5(20) */ + 21, /* dB6(21) */ + 22 /* dB8(22) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_Q_OffsetRange_specs_1 = { + asn_MAP_ASN_RRC_Q_OffsetRange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_Q_OffsetRange_enum2value_1, /* N => "tag"; sorted by N */ + 31, /* 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_ASN_RRC_Q_OffsetRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_OffsetRange = { + "Q-OffsetRange", + "Q-OffsetRange", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_Q_OffsetRange_tags_1, + sizeof(asn_DEF_ASN_RRC_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_OffsetRange_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Q_OffsetRange_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_OffsetRange_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_Q_OffsetRange_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Q-OffsetRange.h b/src/asn/rrc/ASN_RRC_Q-OffsetRange.h new file mode 100644 index 0000000..eb179bd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-OffsetRange.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Q_OffsetRange_H_ +#define _ASN_RRC_Q_OffsetRange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_Q_OffsetRange { + ASN_RRC_Q_OffsetRange_dB_24 = 0, + ASN_RRC_Q_OffsetRange_dB_22 = 1, + ASN_RRC_Q_OffsetRange_dB_20 = 2, + ASN_RRC_Q_OffsetRange_dB_18 = 3, + ASN_RRC_Q_OffsetRange_dB_16 = 4, + ASN_RRC_Q_OffsetRange_dB_14 = 5, + ASN_RRC_Q_OffsetRange_dB_12 = 6, + ASN_RRC_Q_OffsetRange_dB_10 = 7, + ASN_RRC_Q_OffsetRange_dB_8 = 8, + ASN_RRC_Q_OffsetRange_dB_6 = 9, + ASN_RRC_Q_OffsetRange_dB_5 = 10, + ASN_RRC_Q_OffsetRange_dB_4 = 11, + ASN_RRC_Q_OffsetRange_dB_3 = 12, + ASN_RRC_Q_OffsetRange_dB_2 = 13, + ASN_RRC_Q_OffsetRange_dB_1 = 14, + ASN_RRC_Q_OffsetRange_dB0 = 15, + ASN_RRC_Q_OffsetRange_dB1 = 16, + ASN_RRC_Q_OffsetRange_dB2 = 17, + ASN_RRC_Q_OffsetRange_dB3 = 18, + ASN_RRC_Q_OffsetRange_dB4 = 19, + ASN_RRC_Q_OffsetRange_dB5 = 20, + ASN_RRC_Q_OffsetRange_dB6 = 21, + ASN_RRC_Q_OffsetRange_dB8 = 22, + ASN_RRC_Q_OffsetRange_dB10 = 23, + ASN_RRC_Q_OffsetRange_dB12 = 24, + ASN_RRC_Q_OffsetRange_dB14 = 25, + ASN_RRC_Q_OffsetRange_dB16 = 26, + ASN_RRC_Q_OffsetRange_dB18 = 27, + ASN_RRC_Q_OffsetRange_dB20 = 28, + ASN_RRC_Q_OffsetRange_dB22 = 29, + ASN_RRC_Q_OffsetRange_dB24 = 30 +} e_ASN_RRC_Q_OffsetRange; + +/* ASN_RRC_Q-OffsetRange */ +typedef long ASN_RRC_Q_OffsetRange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_Q_OffsetRange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_OffsetRange; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_Q_OffsetRange_specs_1; +asn_struct_free_f ASN_RRC_Q_OffsetRange_free; +asn_struct_print_f ASN_RRC_Q_OffsetRange_print; +asn_constr_check_f ASN_RRC_Q_OffsetRange_constraint; +ber_type_decoder_f ASN_RRC_Q_OffsetRange_decode_ber; +der_type_encoder_f ASN_RRC_Q_OffsetRange_encode_der; +xer_type_decoder_f ASN_RRC_Q_OffsetRange_decode_xer; +xer_type_encoder_f ASN_RRC_Q_OffsetRange_encode_xer; +per_type_decoder_f ASN_RRC_Q_OffsetRange_decode_uper; +per_type_encoder_f ASN_RRC_Q_OffsetRange_encode_uper; +per_type_decoder_f ASN_RRC_Q_OffsetRange_decode_aper; +per_type_encoder_f ASN_RRC_Q_OffsetRange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Q_OffsetRange_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.c b/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.c new file mode 100644 index 0000000..327742b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.c @@ -0,0 +1,240 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Q-OffsetRangeList.h" + +static int asn_DFL_2_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_2_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static int asn_DFL_3_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_3_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static int asn_DFL_4_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_4_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static int asn_DFL_5_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_5_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static int asn_DFL_6_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_6_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +static int asn_DFL_7_cmp_15(const void *sptr) { + const ASN_RRC_Q_OffsetRange_t *st = sptr; + + if(!st) { + return -1; /* No value is not a default value */ + } + + /* Test default value 15 */ + return (*st != 15); +} +static int asn_DFL_7_set_15(void **sptr) { + ASN_RRC_Q_OffsetRange_t *st = *sptr; + + if(!st) { + st = (*sptr = CALLOC(1, sizeof(*st))); + if(!st) return -1; + } + + /* Install default value 15 */ + *st = 15; + return 0; +} +asn_TYPE_member_t asn_MBR_ASN_RRC_Q_OffsetRangeList_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_Q_OffsetRangeList, rsrpOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_2_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_2_set_15, /* Set DEFAULT 15 */ + "rsrpOffsetSSB" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_Q_OffsetRangeList, rsrqOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_3_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_3_set_15, /* Set DEFAULT 15 */ + "rsrqOffsetSSB" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_Q_OffsetRangeList, sinrOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_4_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_4_set_15, /* Set DEFAULT 15 */ + "sinrOffsetSSB" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_Q_OffsetRangeList, rsrpOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_5_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_5_set_15, /* Set DEFAULT 15 */ + "rsrpOffsetCSI-RS" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_Q_OffsetRangeList, rsrqOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_6_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_6_set_15, /* Set DEFAULT 15 */ + "rsrqOffsetCSI-RS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_Q_OffsetRangeList, sinrOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_OffsetRange, + 0, + { 0, 0, 0 }, + &asn_DFL_7_cmp_15, /* Compare DEFAULT 15 */ + &asn_DFL_7_set_15, /* Set DEFAULT 15 */ + "sinrOffsetCSI-RS" + }, +}; +static const int asn_MAP_ASN_RRC_Q_OffsetRangeList_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Q_OffsetRangeList_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rsrpOffsetSSB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsrqOffsetSSB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sinrOffsetSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rsrpOffsetCSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rsrqOffsetCSI-RS */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* sinrOffsetCSI-RS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Q_OffsetRangeList_specs_1 = { + sizeof(struct ASN_RRC_Q_OffsetRangeList), + offsetof(struct ASN_RRC_Q_OffsetRangeList, _asn_ctx), + asn_MAP_ASN_RRC_Q_OffsetRangeList_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_Q_OffsetRangeList_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_OffsetRangeList = { + "Q-OffsetRangeList", + "Q-OffsetRangeList", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1, + sizeof(asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_OffsetRangeList_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_Q_OffsetRangeList_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_Q_OffsetRangeList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.h b/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.h new file mode 100644 index 0000000..b3baea5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-OffsetRangeList.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Q_OffsetRangeList_H_ +#define _ASN_RRC_Q_OffsetRangeList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_Q-OffsetRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_Q-OffsetRangeList */ +typedef struct ASN_RRC_Q_OffsetRangeList { + ASN_RRC_Q_OffsetRange_t *rsrpOffsetSSB; /* DEFAULT 15 */ + ASN_RRC_Q_OffsetRange_t *rsrqOffsetSSB; /* DEFAULT 15 */ + ASN_RRC_Q_OffsetRange_t *sinrOffsetSSB; /* DEFAULT 15 */ + ASN_RRC_Q_OffsetRange_t *rsrpOffsetCSI_RS; /* DEFAULT 15 */ + ASN_RRC_Q_OffsetRange_t *rsrqOffsetCSI_RS; /* DEFAULT 15 */ + ASN_RRC_Q_OffsetRange_t *sinrOffsetCSI_RS; /* DEFAULT 15 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_Q_OffsetRangeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_OffsetRangeList; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_Q_OffsetRangeList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_Q_OffsetRangeList_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Q_OffsetRangeList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Q-QualMin.c b/src/asn/rrc/ASN_RRC_Q-QualMin.c new file mode 100644 index 0000000..d3de0b7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-QualMin.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Q-QualMin.h" + +int +ASN_RRC_Q_QualMin_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 >= -43 && value <= -12)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_Q_QualMin_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, -43, -12 } /* (-43..-12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Q_QualMin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_QualMin = { + "Q-QualMin", + "Q-QualMin", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_Q_QualMin_tags_1, + sizeof(asn_DEF_ASN_RRC_Q_QualMin_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_QualMin_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Q_QualMin_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Q_QualMin_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_QualMin_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_Q_QualMin_constr_1, ASN_RRC_Q_QualMin_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Q-QualMin.h b/src/asn/rrc/ASN_RRC_Q-QualMin.h new file mode 100644 index 0000000..760d4e8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-QualMin.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Q_QualMin_H_ +#define _ASN_RRC_Q_QualMin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_Q-QualMin */ +typedef long ASN_RRC_Q_QualMin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_Q_QualMin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_QualMin; +asn_struct_free_f ASN_RRC_Q_QualMin_free; +asn_struct_print_f ASN_RRC_Q_QualMin_print; +asn_constr_check_f ASN_RRC_Q_QualMin_constraint; +ber_type_decoder_f ASN_RRC_Q_QualMin_decode_ber; +der_type_encoder_f ASN_RRC_Q_QualMin_encode_der; +xer_type_decoder_f ASN_RRC_Q_QualMin_decode_xer; +xer_type_encoder_f ASN_RRC_Q_QualMin_encode_xer; +per_type_decoder_f ASN_RRC_Q_QualMin_decode_uper; +per_type_encoder_f ASN_RRC_Q_QualMin_encode_uper; +per_type_decoder_f ASN_RRC_Q_QualMin_decode_aper; +per_type_encoder_f ASN_RRC_Q_QualMin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Q_QualMin_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_Q-RxLevMin.c b/src/asn/rrc/ASN_RRC_Q-RxLevMin.c new file mode 100644 index 0000000..68792ba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-RxLevMin.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_Q-RxLevMin.h" + +int +ASN_RRC_Q_RxLevMin_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 >= -70 && value <= -22)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_Q_RxLevMin_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, -70, -22 } /* (-70..-22) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_Q_RxLevMin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_RxLevMin = { + "Q-RxLevMin", + "Q-RxLevMin", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_Q_RxLevMin_tags_1, + sizeof(asn_DEF_ASN_RRC_Q_RxLevMin_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_RxLevMin_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_Q_RxLevMin_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_Q_RxLevMin_tags_1) + /sizeof(asn_DEF_ASN_RRC_Q_RxLevMin_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_Q_RxLevMin_constr_1, ASN_RRC_Q_RxLevMin_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_Q-RxLevMin.h b/src/asn/rrc/ASN_RRC_Q-RxLevMin.h new file mode 100644 index 0000000..ed562e3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_Q-RxLevMin.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_Q_RxLevMin_H_ +#define _ASN_RRC_Q_RxLevMin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_Q-RxLevMin */ +typedef long ASN_RRC_Q_RxLevMin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_Q_RxLevMin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Q_RxLevMin; +asn_struct_free_f ASN_RRC_Q_RxLevMin_free; +asn_struct_print_f ASN_RRC_Q_RxLevMin_print; +asn_constr_check_f ASN_RRC_Q_RxLevMin_constraint; +ber_type_decoder_f ASN_RRC_Q_RxLevMin_decode_ber; +der_type_encoder_f ASN_RRC_Q_RxLevMin_encode_der; +xer_type_decoder_f ASN_RRC_Q_RxLevMin_decode_xer; +xer_type_encoder_f ASN_RRC_Q_RxLevMin_encode_xer; +per_type_decoder_f ASN_RRC_Q_RxLevMin_decode_uper; +per_type_encoder_f ASN_RRC_Q_RxLevMin_encode_uper; +per_type_decoder_f ASN_RRC_Q_RxLevMin_decode_aper; +per_type_encoder_f ASN_RRC_Q_RxLevMin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_Q_RxLevMin_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_QCL-Info.c b/src/asn/rrc/ASN_RRC_QCL-Info.c new file mode 100644 index 0000000..626c1c9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QCL-Info.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_QCL-Info.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_referenceSignal_constr_4 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_type_ASN_RRC_qcl_Type_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_referenceSignal_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QCL_Info__referenceSignal, choice.csi_rs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QCL_Info__referenceSignal, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_referenceSignal_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-rs */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_referenceSignal_specs_4 = { + sizeof(struct ASN_RRC_QCL_Info__referenceSignal), + offsetof(struct ASN_RRC_QCL_Info__referenceSignal, _asn_ctx), + offsetof(struct ASN_RRC_QCL_Info__referenceSignal, present), + sizeof(((struct ASN_RRC_QCL_Info__referenceSignal *)0)->present), + asn_MAP_ASN_RRC_referenceSignal_tag2el_4, + 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_ASN_RRC_referenceSignal_4 = { + "referenceSignal", + "referenceSignal", + &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_ASN_RRC_referenceSignal_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_referenceSignal_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_referenceSignal_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_qcl_Type_value2enum_7[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" }, + { 2, 5, "typeC" }, + { 3, 5, "typeD" } +}; +static const unsigned int asn_MAP_ASN_RRC_qcl_Type_enum2value_7[] = { + 0, /* typeA(0) */ + 1, /* typeB(1) */ + 2, /* typeC(2) */ + 3 /* typeD(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_qcl_Type_specs_7 = { + asn_MAP_ASN_RRC_qcl_Type_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_qcl_Type_enum2value_7, /* 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_ASN_RRC_qcl_Type_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_ASN_RRC_qcl_Type_7 = { + "qcl-Type", + "qcl-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_qcl_Type_tags_7, + sizeof(asn_DEF_ASN_RRC_qcl_Type_tags_7) + /sizeof(asn_DEF_ASN_RRC_qcl_Type_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_qcl_Type_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_qcl_Type_tags_7) + /sizeof(asn_DEF_ASN_RRC_qcl_Type_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_qcl_Type_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_qcl_Type_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_QCL_Info_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_QCL_Info, cell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_QCL_Info, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QCL_Info, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_referenceSignal_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QCL_Info, qcl_Type), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_qcl_Type_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type" + }, +}; +static const int asn_MAP_ASN_RRC_QCL_Info_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_QCL_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_QCL_Info_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* bwp-Id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* referenceSignal */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* qcl-Type */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QCL_Info_specs_1 = { + sizeof(struct ASN_RRC_QCL_Info), + offsetof(struct ASN_RRC_QCL_Info, _asn_ctx), + asn_MAP_ASN_RRC_QCL_Info_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_QCL_Info_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QCL_Info = { + "QCL-Info", + "QCL-Info", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_QCL_Info_tags_1, + sizeof(asn_DEF_ASN_RRC_QCL_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_QCL_Info_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_QCL_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_QCL_Info_tags_1) + /sizeof(asn_DEF_ASN_RRC_QCL_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_QCL_Info_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_QCL_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_QCL-Info.h b/src/asn/rrc/ASN_RRC_QCL-Info.h new file mode 100644 index 0000000..61741a3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QCL-Info.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_QCL_Info_H_ +#define _ASN_RRC_QCL_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_BWP-Id.h" +#include +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_QCL_Info__referenceSignal_PR { + ASN_RRC_QCL_Info__referenceSignal_PR_NOTHING, /* No components present */ + ASN_RRC_QCL_Info__referenceSignal_PR_csi_rs, + ASN_RRC_QCL_Info__referenceSignal_PR_ssb +} ASN_RRC_QCL_Info__referenceSignal_PR; +typedef enum ASN_RRC_QCL_Info__qcl_Type { + ASN_RRC_QCL_Info__qcl_Type_typeA = 0, + ASN_RRC_QCL_Info__qcl_Type_typeB = 1, + ASN_RRC_QCL_Info__qcl_Type_typeC = 2, + ASN_RRC_QCL_Info__qcl_Type_typeD = 3 +} e_ASN_RRC_QCL_Info__qcl_Type; + +/* ASN_RRC_QCL-Info */ +typedef struct ASN_RRC_QCL_Info { + ASN_RRC_ServCellIndex_t *cell; /* OPTIONAL */ + ASN_RRC_BWP_Id_t *bwp_Id; /* OPTIONAL */ + struct ASN_RRC_QCL_Info__referenceSignal { + ASN_RRC_QCL_Info__referenceSignal_PR present; + union ASN_RRC_QCL_Info__ASN_RRC_referenceSignal_u { + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_rs; + ASN_RRC_SSB_Index_t ssb; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } referenceSignal; + long qcl_Type; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_QCL_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_qcl_Type_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QCL_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QCL_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_QCL_Info_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_QCL_Info_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_QFI.c b/src/asn/rrc/ASN_RRC_QFI.c new file mode 100644 index 0000000..3768a99 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QFI.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_QFI.h" + +int +ASN_RRC_QFI_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_QFI_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_QFI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QFI = { + "QFI", + "QFI", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_QFI_tags_1, + sizeof(asn_DEF_ASN_RRC_QFI_tags_1) + /sizeof(asn_DEF_ASN_RRC_QFI_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_QFI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_QFI_tags_1) + /sizeof(asn_DEF_ASN_RRC_QFI_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_QFI_constr_1, ASN_RRC_QFI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_QFI.h b/src/asn/rrc/ASN_RRC_QFI.h new file mode 100644 index 0000000..c23e50b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QFI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_QFI_H_ +#define _ASN_RRC_QFI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_QFI */ +typedef long ASN_RRC_QFI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_QFI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QFI; +asn_struct_free_f ASN_RRC_QFI_free; +asn_struct_print_f ASN_RRC_QFI_print; +asn_constr_check_f ASN_RRC_QFI_constraint; +ber_type_decoder_f ASN_RRC_QFI_decode_ber; +der_type_encoder_f ASN_RRC_QFI_encode_der; +xer_type_decoder_f ASN_RRC_QFI_decode_xer; +xer_type_encoder_f ASN_RRC_QFI_encode_xer; +per_type_decoder_f ASN_RRC_QFI_decode_uper; +per_type_encoder_f ASN_RRC_QFI_encode_uper; +per_type_decoder_f ASN_RRC_QFI_decode_aper; +per_type_encoder_f ASN_RRC_QFI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_QFI_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_QuantityConfig.c b/src/asn/rrc/ASN_RRC_QuantityConfig.c new file mode 100644 index 0000000..319ee60 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfig.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_QuantityConfig.h" + +#include "ASN_RRC_QuantityConfigNR.h" +#include "ASN_RRC_FilterConfig.h" +static int +memb_ASN_RRC_quantityConfigNR_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 <= 2)) { + /* 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_ASN_RRC_quantityConfigNR_List_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_quantityConfigNR_List_constr_2 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_ASN_RRC_quantityConfigNR_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_QuantityConfigNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_quantityConfigNR_List_specs_2 = { + sizeof(struct ASN_RRC_QuantityConfig__quantityConfigNR_List), + offsetof(struct ASN_RRC_QuantityConfig__quantityConfigNR_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_quantityConfigNR_List_2 = { + "quantityConfigNR-List", + "quantityConfigNR-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2, + sizeof(asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_quantityConfigNR_List_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_quantityConfigNR_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_quantityConfigNR_List_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_quantityConfigNR_List_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_QuantityConfig__ext1, quantityConfigEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigEUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* quantityConfigEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_QuantityConfig__ext1), + offsetof(struct ASN_RRC_QuantityConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_QuantityConfig, quantityConfigNR_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_quantityConfigNR_List_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_quantityConfigNR_List_constr_2, memb_ASN_RRC_quantityConfigNR_List_constraint_1 }, + 0, 0, /* No default value */ + "quantityConfigNR-List" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_QuantityConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_QuantityConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_QuantityConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_QuantityConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* quantityConfigNR-List */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfig_specs_1 = { + sizeof(struct ASN_RRC_QuantityConfig), + offsetof(struct ASN_RRC_QuantityConfig, _asn_ctx), + asn_MAP_ASN_RRC_QuantityConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_QuantityConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfig = { + "QuantityConfig", + "QuantityConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_QuantityConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_QuantityConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_QuantityConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_QuantityConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_QuantityConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_QuantityConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_QuantityConfig.h b/src/asn/rrc/ASN_RRC_QuantityConfig.h new file mode 100644 index 0000000..a80cf15 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfig.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_QuantityConfig_H_ +#define _ASN_RRC_QuantityConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_QuantityConfigNR; +struct ASN_RRC_FilterConfig; + +/* ASN_RRC_QuantityConfig */ +typedef struct ASN_RRC_QuantityConfig { + struct ASN_RRC_QuantityConfig__quantityConfigNR_List { + A_SEQUENCE_OF(struct ASN_RRC_QuantityConfigNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *quantityConfigNR_List; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_QuantityConfig__ext1 { + struct ASN_RRC_FilterConfig *quantityConfigEUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_QuantityConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_QuantityConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_QuantityConfigNR.c b/src/asn/rrc/ASN_RRC_QuantityConfigNR.c new file mode 100644 index 0000000..206593f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfigNR.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_QuantityConfigNR.h" + +#include "ASN_RRC_QuantityConfigRS.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfigNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QuantityConfigNR, quantityConfigCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QuantityConfigRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_QuantityConfigNR, quantityConfigRS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QuantityConfigRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigRS-Index" + }, +}; +static const int asn_MAP_ASN_RRC_QuantityConfigNR_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_QuantityConfigNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_QuantityConfigNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* quantityConfigCell */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* quantityConfigRS-Index */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfigNR_specs_1 = { + sizeof(struct ASN_RRC_QuantityConfigNR), + offsetof(struct ASN_RRC_QuantityConfigNR, _asn_ctx), + asn_MAP_ASN_RRC_QuantityConfigNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_QuantityConfigNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfigNR = { + "QuantityConfigNR", + "QuantityConfigNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_QuantityConfigNR_tags_1, + sizeof(asn_DEF_ASN_RRC_QuantityConfigNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfigNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_QuantityConfigNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_QuantityConfigNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfigNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_QuantityConfigNR_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_QuantityConfigNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_QuantityConfigNR.h b/src/asn/rrc/ASN_RRC_QuantityConfigNR.h new file mode 100644 index 0000000..175e275 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfigNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_QuantityConfigNR_H_ +#define _ASN_RRC_QuantityConfigNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_QuantityConfigRS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_QuantityConfigRS; + +/* ASN_RRC_QuantityConfigNR */ +typedef struct ASN_RRC_QuantityConfigNR { + ASN_RRC_QuantityConfigRS_t quantityConfigCell; + struct ASN_RRC_QuantityConfigRS *quantityConfigRS_Index; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_QuantityConfigNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfigNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfigNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfigNR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_QuantityConfigNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_QuantityConfigRS.c b/src/asn/rrc/ASN_RRC_QuantityConfigRS.c new file mode 100644 index 0000000..3d1466c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfigRS.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_QuantityConfigRS.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfigRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QuantityConfigRS, ssb_FilterConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-FilterConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_QuantityConfigRS, csi_RS_FilterConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-FilterConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_QuantityConfigRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_QuantityConfigRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-FilterConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-FilterConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfigRS_specs_1 = { + sizeof(struct ASN_RRC_QuantityConfigRS), + offsetof(struct ASN_RRC_QuantityConfigRS, _asn_ctx), + asn_MAP_ASN_RRC_QuantityConfigRS_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfigRS = { + "QuantityConfigRS", + "QuantityConfigRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_QuantityConfigRS_tags_1, + sizeof(asn_DEF_ASN_RRC_QuantityConfigRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfigRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_QuantityConfigRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_QuantityConfigRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_QuantityConfigRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_QuantityConfigRS_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_QuantityConfigRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_QuantityConfigRS.h b/src/asn/rrc/ASN_RRC_QuantityConfigRS.h new file mode 100644 index 0000000..0ca2d0c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_QuantityConfigRS.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_QuantityConfigRS_H_ +#define _ASN_RRC_QuantityConfigRS_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FilterConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_QuantityConfigRS */ +typedef struct ASN_RRC_QuantityConfigRS { + ASN_RRC_FilterConfig_t ssb_FilterConfig; + ASN_RRC_FilterConfig_t csi_RS_FilterConfig; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_QuantityConfigRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_QuantityConfigRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_QuantityConfigRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_QuantityConfigRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_QuantityConfigRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RA-Prioritization.c b/src/asn/rrc/ASN_RRC_RA-Prioritization.c new file mode 100644 index 0000000..ec4b3f0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RA-Prioritization.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RA-Prioritization.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_ASN_RRC_powerRampingStepHighPriority_constr_2 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_type_ASN_RRC_scalingFactorBI_constr_7 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_ASN_RRC_powerRampingStepHighPriority_value2enum_2[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB2" }, + { 2, 3, "dB4" }, + { 3, 3, "dB6" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerRampingStepHighPriority_enum2value_2[] = { + 0, /* dB0(0) */ + 1, /* dB2(1) */ + 2, /* dB4(2) */ + 3 /* dB6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerRampingStepHighPriority_specs_2 = { + asn_MAP_ASN_RRC_powerRampingStepHighPriority_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerRampingStepHighPriority_enum2value_2, /* 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_ASN_RRC_powerRampingStepHighPriority_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_ASN_RRC_powerRampingStepHighPriority_2 = { + "powerRampingStepHighPriority", + "powerRampingStepHighPriority", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2, + sizeof(asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2) + /sizeof(asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2) + /sizeof(asn_DEF_ASN_RRC_powerRampingStepHighPriority_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerRampingStepHighPriority_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerRampingStepHighPriority_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scalingFactorBI_value2enum_7[] = { + { 0, 4, "zero" }, + { 1, 5, "dot25" }, + { 2, 4, "dot5" }, + { 3, 5, "dot75" } +}; +static const unsigned int asn_MAP_ASN_RRC_scalingFactorBI_enum2value_7[] = { + 1, /* dot25(1) */ + 2, /* dot5(2) */ + 3, /* dot75(3) */ + 0 /* zero(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scalingFactorBI_specs_7 = { + asn_MAP_ASN_RRC_scalingFactorBI_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scalingFactorBI_enum2value_7, /* 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_ASN_RRC_scalingFactorBI_tags_7[] = { + (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_ASN_RRC_scalingFactorBI_7 = { + "scalingFactorBI", + "scalingFactorBI", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scalingFactorBI_tags_7, + sizeof(asn_DEF_ASN_RRC_scalingFactorBI_tags_7) + /sizeof(asn_DEF_ASN_RRC_scalingFactorBI_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scalingFactorBI_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scalingFactorBI_tags_7) + /sizeof(asn_DEF_ASN_RRC_scalingFactorBI_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scalingFactorBI_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scalingFactorBI_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RA_Prioritization_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RA_Prioritization, powerRampingStepHighPriority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerRampingStepHighPriority_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerRampingStepHighPriority" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RA_Prioritization, scalingFactorBI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scalingFactorBI_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactorBI" + }, +}; +static const int asn_MAP_ASN_RRC_RA_Prioritization_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RA_Prioritization_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RA_Prioritization_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* powerRampingStepHighPriority */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scalingFactorBI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RA_Prioritization_specs_1 = { + sizeof(struct ASN_RRC_RA_Prioritization), + offsetof(struct ASN_RRC_RA_Prioritization, _asn_ctx), + asn_MAP_ASN_RRC_RA_Prioritization_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RA_Prioritization_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RA_Prioritization = { + "RA-Prioritization", + "RA-Prioritization", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RA_Prioritization_tags_1, + sizeof(asn_DEF_ASN_RRC_RA_Prioritization_tags_1) + /sizeof(asn_DEF_ASN_RRC_RA_Prioritization_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RA_Prioritization_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RA_Prioritization_tags_1) + /sizeof(asn_DEF_ASN_RRC_RA_Prioritization_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RA_Prioritization_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RA_Prioritization_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RA-Prioritization.h b/src/asn/rrc/ASN_RRC_RA-Prioritization.h new file mode 100644 index 0000000..9af23dd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RA-Prioritization.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RA_Prioritization_H_ +#define _ASN_RRC_RA_Prioritization_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RA_Prioritization__powerRampingStepHighPriority { + ASN_RRC_RA_Prioritization__powerRampingStepHighPriority_dB0 = 0, + ASN_RRC_RA_Prioritization__powerRampingStepHighPriority_dB2 = 1, + ASN_RRC_RA_Prioritization__powerRampingStepHighPriority_dB4 = 2, + ASN_RRC_RA_Prioritization__powerRampingStepHighPriority_dB6 = 3 +} e_ASN_RRC_RA_Prioritization__powerRampingStepHighPriority; +typedef enum ASN_RRC_RA_Prioritization__scalingFactorBI { + ASN_RRC_RA_Prioritization__scalingFactorBI_zero = 0, + ASN_RRC_RA_Prioritization__scalingFactorBI_dot25 = 1, + ASN_RRC_RA_Prioritization__scalingFactorBI_dot5 = 2, + ASN_RRC_RA_Prioritization__scalingFactorBI_dot75 = 3 +} e_ASN_RRC_RA_Prioritization__scalingFactorBI; + +/* ASN_RRC_RA-Prioritization */ +typedef struct ASN_RRC_RA_Prioritization { + long powerRampingStepHighPriority; + long *scalingFactorBI; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RA_Prioritization_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerRampingStepHighPriority_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scalingFactorBI_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RA_Prioritization; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RA_Prioritization_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RA_Prioritization_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RA_Prioritization_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.c b/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.c new file mode 100644 index 0000000..242300f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.c @@ -0,0 +1,1229 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RACH-ConfigCommon.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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_four_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_eight_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 int +memb_ASN_RRC_sixteen_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_numberOfRA_PreamblesGroupA_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 >= 1 && value <= 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_l839_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_l139_constraint_124(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 137)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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_ASN_RRC_totalNumberOfRA_Preambles_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 <= 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_type_ASN_RRC_oneEighth_constr_5 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_type_ASN_RRC_oneFourth_constr_22 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_type_ASN_RRC_oneHalf_constr_39 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_type_ASN_RRC_one_constr_56 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_type_ASN_RRC_two_constr_73 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_four_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_eight_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sixteen_constr_84 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 4 } /* (1..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_ra_Msg3SizeGroupA_constr_86 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_type_ASN_RRC_messagePowerOffsetGroupB_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_numberOfRA_PreamblesGroupA_constr_112 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ra_ContentionResolutionTimer_constr_113 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_l839_constr_125 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_ASN_RRC_l139_constr_126 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 137 } /* (0..137) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_prach_RootSequenceIndex_constr_124 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_type_ASN_RRC_restrictedSetConfig_constr_128 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_msg3_transformPrecoder_constr_132 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_totalNumberOfRA_Preambles_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneEighth_value2enum_5[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneEighth_enum2value_5[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneEighth_specs_5 = { + asn_MAP_ASN_RRC_oneEighth_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneEighth_enum2value_5, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_oneEighth_tags_5[] = { + (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_ASN_RRC_oneEighth_5 = { + "oneEighth", + "oneEighth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneEighth_tags_5, + sizeof(asn_DEF_ASN_RRC_oneEighth_tags_5) + /sizeof(asn_DEF_ASN_RRC_oneEighth_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneEighth_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneEighth_tags_5) + /sizeof(asn_DEF_ASN_RRC_oneEighth_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneEighth_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneEighth_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneFourth_value2enum_22[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneFourth_enum2value_22[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneFourth_specs_22 = { + asn_MAP_ASN_RRC_oneFourth_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneFourth_enum2value_22, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_oneFourth_tags_22[] = { + (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_ASN_RRC_oneFourth_22 = { + "oneFourth", + "oneFourth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneFourth_tags_22, + sizeof(asn_DEF_ASN_RRC_oneFourth_tags_22) + /sizeof(asn_DEF_ASN_RRC_oneFourth_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneFourth_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneFourth_tags_22) + /sizeof(asn_DEF_ASN_RRC_oneFourth_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneFourth_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneFourth_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_oneHalf_value2enum_39[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_oneHalf_enum2value_39[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_oneHalf_specs_39 = { + asn_MAP_ASN_RRC_oneHalf_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_oneHalf_enum2value_39, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_oneHalf_tags_39[] = { + (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_ASN_RRC_oneHalf_39 = { + "oneHalf", + "oneHalf", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_oneHalf_tags_39, + sizeof(asn_DEF_ASN_RRC_oneHalf_tags_39) + /sizeof(asn_DEF_ASN_RRC_oneHalf_tags_39[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_oneHalf_tags_39, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_oneHalf_tags_39) + /sizeof(asn_DEF_ASN_RRC_oneHalf_tags_39[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_oneHalf_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_oneHalf_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_one_value2enum_56[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" }, + { 8, 3, "n36" }, + { 9, 3, "n40" }, + { 10, 3, "n44" }, + { 11, 3, "n48" }, + { 12, 3, "n52" }, + { 13, 3, "n56" }, + { 14, 3, "n60" }, + { 15, 3, "n64" } +}; +static const unsigned int asn_MAP_ASN_RRC_one_enum2value_56[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 8, /* n36(8) */ + 0, /* n4(0) */ + 9, /* n40(9) */ + 10, /* n44(10) */ + 11, /* n48(11) */ + 12, /* n52(12) */ + 13, /* n56(13) */ + 14, /* n60(14) */ + 15, /* n64(15) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_one_specs_56 = { + asn_MAP_ASN_RRC_one_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_one_enum2value_56, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_one_tags_56[] = { + (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_ASN_RRC_one_56 = { + "one", + "one", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_one_tags_56, + sizeof(asn_DEF_ASN_RRC_one_tags_56) + /sizeof(asn_DEF_ASN_RRC_one_tags_56[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_one_tags_56, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_one_tags_56) + /sizeof(asn_DEF_ASN_RRC_one_tags_56[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_one_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_one_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_two_value2enum_73[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n12" }, + { 3, 3, "n16" }, + { 4, 3, "n20" }, + { 5, 3, "n24" }, + { 6, 3, "n28" }, + { 7, 3, "n32" } +}; +static const unsigned int asn_MAP_ASN_RRC_two_enum2value_73[] = { + 2, /* n12(2) */ + 3, /* n16(3) */ + 4, /* n20(4) */ + 5, /* n24(5) */ + 6, /* n28(6) */ + 7, /* n32(7) */ + 0, /* n4(0) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_two_specs_73 = { + asn_MAP_ASN_RRC_two_value2enum_73, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_two_enum2value_73, /* 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_ASN_RRC_two_tags_73[] = { + (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_ASN_RRC_two_73 = { + "two", + "two", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_two_tags_73, + sizeof(asn_DEF_ASN_RRC_two_tags_73) + /sizeof(asn_DEF_ASN_RRC_two_tags_73[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_two_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_two_tags_73) + /sizeof(asn_DEF_ASN_RRC_two_tags_73[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_two_constr_73, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_two_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneEighth), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneEighth_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneEighth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneFourth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneFourth_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFourth" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneHalf), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_oneHalf_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneHalf" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.one), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_one_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "one" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.two), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_two_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "two" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.four), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_four_constr_82, memb_ASN_RRC_four_constraint_4 }, + 0, 0, /* No default value */ + "four" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.eight), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_eight_constr_83, memb_ASN_RRC_eight_constraint_4 }, + 0, 0, /* No default value */ + "eight" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.sixteen), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sixteen_constr_84, memb_ASN_RRC_sixteen_constraint_4 }, + 0, 0, /* No default value */ + "sixteen" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneEighth */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oneFourth */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* oneHalf */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* one */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* two */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* four */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eight */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* sixteen */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 = { + sizeof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, _asn_ctx), + offsetof(struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, present), + sizeof(((struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB *)0)->present), + asn_MAP_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_tag2el_4, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4 = { + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB", + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB", + &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_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ra_Msg3SizeGroupA_value2enum_86[] = { + { 0, 3, "b56" }, + { 1, 4, "b144" }, + { 2, 4, "b208" }, + { 3, 4, "b256" }, + { 4, 4, "b282" }, + { 5, 4, "b480" }, + { 6, 4, "b640" }, + { 7, 4, "b800" }, + { 8, 5, "b1000" }, + { 9, 3, "b72" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_ra_Msg3SizeGroupA_enum2value_86[] = { + 8, /* b1000(8) */ + 1, /* b144(1) */ + 2, /* b208(2) */ + 3, /* b256(3) */ + 4, /* b282(4) */ + 5, /* b480(5) */ + 0, /* b56(0) */ + 6, /* b640(6) */ + 9, /* b72(9) */ + 7, /* b800(7) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10 /* spare6(10) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ra_Msg3SizeGroupA_specs_86 = { + asn_MAP_ASN_RRC_ra_Msg3SizeGroupA_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ra_Msg3SizeGroupA_enum2value_86, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_ra_Msg3SizeGroupA_tags_86[] = { + (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_ASN_RRC_ra_Msg3SizeGroupA_86 = { + "ra-Msg3SizeGroupA", + "ra-Msg3SizeGroupA", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86, + sizeof(asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_tags_86[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_Msg3SizeGroupA_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ra_Msg3SizeGroupA_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_messagePowerOffsetGroupB_value2enum_103[] = { + { 0, 13, "minusinfinity" }, + { 1, 3, "dB0" }, + { 2, 3, "dB5" }, + { 3, 3, "dB8" }, + { 4, 4, "dB10" }, + { 5, 4, "dB12" }, + { 6, 4, "dB15" }, + { 7, 4, "dB18" } +}; +static const unsigned int asn_MAP_ASN_RRC_messagePowerOffsetGroupB_enum2value_103[] = { + 1, /* dB0(1) */ + 4, /* dB10(4) */ + 5, /* dB12(5) */ + 6, /* dB15(6) */ + 7, /* dB18(7) */ + 2, /* dB5(2) */ + 3, /* dB8(3) */ + 0 /* minusinfinity(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_messagePowerOffsetGroupB_specs_103 = { + asn_MAP_ASN_RRC_messagePowerOffsetGroupB_value2enum_103, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_messagePowerOffsetGroupB_enum2value_103, /* 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_ASN_RRC_messagePowerOffsetGroupB_tags_103[] = { + (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_ASN_RRC_messagePowerOffsetGroupB_103 = { + "messagePowerOffsetGroupB", + "messagePowerOffsetGroupB", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103, + sizeof(asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_ASN_RRC_messagePowerOffsetGroupB_tags_103[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_messagePowerOffsetGroupB_constr_103, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_messagePowerOffsetGroupB_specs_103 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_groupBconfigured_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__groupBconfigured, ra_Msg3SizeGroupA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Msg3SizeGroupA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__groupBconfigured, messagePowerOffsetGroupB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_messagePowerOffsetGroupB_103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messagePowerOffsetGroupB" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__groupBconfigured, numberOfRA_PreamblesGroupA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_numberOfRA_PreamblesGroupA_constr_112, memb_ASN_RRC_numberOfRA_PreamblesGroupA_constraint_85 }, + 0, 0, /* No default value */ + "numberOfRA-PreamblesGroupA" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_groupBconfigured_tags_85[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_groupBconfigured_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ra-Msg3SizeGroupA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* messagePowerOffsetGroupB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* numberOfRA-PreamblesGroupA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_groupBconfigured_specs_85 = { + sizeof(struct ASN_RRC_RACH_ConfigCommon__groupBconfigured), + offsetof(struct ASN_RRC_RACH_ConfigCommon__groupBconfigured, _asn_ctx), + asn_MAP_ASN_RRC_groupBconfigured_tag2el_85, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupBconfigured_85 = { + "groupBconfigured", + "groupBconfigured", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_groupBconfigured_tags_85, + sizeof(asn_DEF_ASN_RRC_groupBconfigured_tags_85) + /sizeof(asn_DEF_ASN_RRC_groupBconfigured_tags_85[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_groupBconfigured_tags_85, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_groupBconfigured_tags_85) + /sizeof(asn_DEF_ASN_RRC_groupBconfigured_tags_85[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_groupBconfigured_85, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_groupBconfigured_specs_85 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ra_ContentionResolutionTimer_value2enum_113[] = { + { 0, 3, "sf8" }, + { 1, 4, "sf16" }, + { 2, 4, "sf24" }, + { 3, 4, "sf32" }, + { 4, 4, "sf40" }, + { 5, 4, "sf48" }, + { 6, 4, "sf56" }, + { 7, 4, "sf64" } +}; +static const unsigned int asn_MAP_ASN_RRC_ra_ContentionResolutionTimer_enum2value_113[] = { + 1, /* sf16(1) */ + 2, /* sf24(2) */ + 3, /* sf32(3) */ + 4, /* sf40(4) */ + 5, /* sf48(5) */ + 6, /* sf56(6) */ + 7, /* sf64(7) */ + 0 /* sf8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ra_ContentionResolutionTimer_specs_113 = { + asn_MAP_ASN_RRC_ra_ContentionResolutionTimer_value2enum_113, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ra_ContentionResolutionTimer_enum2value_113, /* 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_ASN_RRC_ra_ContentionResolutionTimer_tags_113[] = { + (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_ASN_RRC_ra_ContentionResolutionTimer_113 = { + "ra-ContentionResolutionTimer", + "ra-ContentionResolutionTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113, + sizeof(asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_tags_113[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_ContentionResolutionTimer_constr_113, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ra_ContentionResolutionTimer_specs_113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_prach_RootSequenceIndex_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex, choice.l839), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_l839_constr_125, memb_ASN_RRC_l839_constraint_124 }, + 0, 0, /* No default value */ + "l839" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex, choice.l139), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_l139_constr_126, memb_ASN_RRC_l139_constraint_124 }, + 0, 0, /* No default value */ + "l139" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_prach_RootSequenceIndex_tag2el_124[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* l839 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* l139 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_prach_RootSequenceIndex_specs_124 = { + sizeof(struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex), + offsetof(struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex, _asn_ctx), + offsetof(struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex, present), + sizeof(((struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex *)0)->present), + asn_MAP_ASN_RRC_prach_RootSequenceIndex_tag2el_124, + 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_ASN_RRC_prach_RootSequenceIndex_124 = { + "prach-RootSequenceIndex", + "prach-RootSequenceIndex", + &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_ASN_RRC_prach_RootSequenceIndex_constr_124, CHOICE_constraint }, + asn_MBR_ASN_RRC_prach_RootSequenceIndex_124, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_prach_RootSequenceIndex_specs_124 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_restrictedSetConfig_value2enum_128[] = { + { 0, 15, "unrestrictedSet" }, + { 1, 18, "restrictedSetTypeA" }, + { 2, 18, "restrictedSetTypeB" } +}; +static const unsigned int asn_MAP_ASN_RRC_restrictedSetConfig_enum2value_128[] = { + 1, /* restrictedSetTypeA(1) */ + 2, /* restrictedSetTypeB(2) */ + 0 /* unrestrictedSet(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_restrictedSetConfig_specs_128 = { + asn_MAP_ASN_RRC_restrictedSetConfig_value2enum_128, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_restrictedSetConfig_enum2value_128, /* 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_ASN_RRC_restrictedSetConfig_tags_128[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_restrictedSetConfig_128 = { + "restrictedSetConfig", + "restrictedSetConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_restrictedSetConfig_tags_128, + sizeof(asn_DEF_ASN_RRC_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_ASN_RRC_restrictedSetConfig_tags_128[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_restrictedSetConfig_tags_128, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_ASN_RRC_restrictedSetConfig_tags_128[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_restrictedSetConfig_constr_128, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_restrictedSetConfig_specs_128 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_msg3_transformPrecoder_value2enum_132[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_msg3_transformPrecoder_enum2value_132[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_msg3_transformPrecoder_specs_132 = { + asn_MAP_ASN_RRC_msg3_transformPrecoder_value2enum_132, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_msg3_transformPrecoder_enum2value_132, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_msg3_transformPrecoder_132 = { + "msg3-transformPrecoder", + "msg3-transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132, + sizeof(asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_ASN_RRC_msg3_transformPrecoder_tags_132[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_msg3_transformPrecoder_constr_132, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_msg3_transformPrecoder_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon, rach_ConfigGeneric), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigGeneric" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RACH_ConfigCommon, totalNumberOfRA_Preambles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberOfRA_Preambles_constr_3, memb_ASN_RRC_totalNumberOfRA_Preambles_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberOfRA-Preambles" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RACH_ConfigCommon, ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RACH_ConfigCommon, groupBconfigured), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_groupBconfigured_85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBconfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon, ra_ContentionResolutionTimer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-ContentionResolutionTimer" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RACH_ConfigCommon, rsrp_ThresholdSSB), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RACH_ConfigCommon, rsrp_ThresholdSSB_SUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB-SUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon, prach_RootSequenceIndex), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_prach_RootSequenceIndex_124, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prach-RootSequenceIndex" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RACH_ConfigCommon, msg1_SubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-SubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigCommon, restrictedSetConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_restrictedSetConfig_128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictedSetConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RACH_ConfigCommon, msg3_transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_msg3_transformPrecoder_132, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg3-transformPrecoder" + }, +}; +static const int asn_MAP_ASN_RRC_RACH_ConfigCommon_oms_1[] = { 1, 2, 3, 5, 6, 8, 10 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RACH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-ConfigGeneric */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* totalNumberOfRA-Preambles */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ssb-perRACH-OccasionAndCB-PreamblesPerSSB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* groupBconfigured */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ra-ContentionResolutionTimer */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rsrp-ThresholdSSB */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rsrp-ThresholdSSB-SUL */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* prach-RootSequenceIndex */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* msg1-SubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* restrictedSetConfig */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 } /* msg3-transformPrecoder */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_RACH_ConfigCommon), + offsetof(struct ASN_RRC_RACH_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_RACH_ConfigCommon_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RACH_ConfigCommon_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigCommon = { + "RACH-ConfigCommon", + "RACH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RACH_ConfigCommon_1, + 11, /* Elements count */ + &asn_SPC_ASN_RRC_RACH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.h b/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.h new file mode 100644 index 0000000..4040f26 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigCommon.h @@ -0,0 +1,246 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RACH_ConfigCommon_H_ +#define _ASN_RRC_RACH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RACH-ConfigGeneric.h" +#include +#include +#include "ASN_RRC_RSRP-Range.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_NOTHING, /* No components present */ + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneEighth, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneFourth, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneHalf, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_one, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_two, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_four, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_eight, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_sixteen +} ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR; +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n4 = 0, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n8 = 1, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n12 = 2, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n16 = 3, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n20 = 4, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n24 = 5, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n28 = 6, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n32 = 7, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n36 = 8, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n40 = 9, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n44 = 10, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n48 = 11, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n52 = 12, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n56 = 13, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n60 = 14, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n64 = 15 +} e_ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth; +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n4 = 0, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n8 = 1, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n12 = 2, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n16 = 3, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n20 = 4, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n24 = 5, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n28 = 6, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n32 = 7, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n36 = 8, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n40 = 9, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n44 = 10, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n48 = 11, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n52 = 12, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n56 = 13, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n60 = 14, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n64 = 15 +} e_ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth; +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n4 = 0, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n8 = 1, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n12 = 2, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n16 = 3, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n20 = 4, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n24 = 5, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n28 = 6, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n32 = 7, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n36 = 8, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n40 = 9, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n44 = 10, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n48 = 11, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n52 = 12, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n56 = 13, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n60 = 14, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n64 = 15 +} e_ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf; +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n4 = 0, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n8 = 1, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n12 = 2, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n16 = 3, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n20 = 4, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n24 = 5, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n28 = 6, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n32 = 7, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n36 = 8, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n40 = 9, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n44 = 10, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n48 = 11, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n52 = 12, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n56 = 13, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n60 = 14, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n64 = 15 +} e_ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one; +typedef enum ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n4 = 0, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n8 = 1, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n12 = 2, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n16 = 3, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n20 = 4, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n24 = 5, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n28 = 6, + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n32 = 7 +} e_ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two; +typedef enum ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA { + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b56 = 0, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b144 = 1, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b208 = 2, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b256 = 3, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b282 = 4, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b480 = 5, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b640 = 6, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b800 = 7, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b1000 = 8, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b72 = 9, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare6 = 10, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare5 = 11, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare4 = 12, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare3 = 13, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare2 = 14, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare1 = 15 +} e_ASN_RRC_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA; +typedef enum ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB { + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_minusinfinity = 0, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB0 = 1, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB5 = 2, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB8 = 3, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB10 = 4, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB12 = 5, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB15 = 6, + ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB18 = 7 +} e_ASN_RRC_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB; +typedef enum ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer { + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf8 = 0, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf16 = 1, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf24 = 2, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf32 = 3, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf40 = 4, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf48 = 5, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf56 = 6, + ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer_sf64 = 7 +} e_ASN_RRC_RACH_ConfigCommon__ra_ContentionResolutionTimer; +typedef enum ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR { + ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR_NOTHING, /* No components present */ + ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l839, + ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139 +} ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR; +typedef enum ASN_RRC_RACH_ConfigCommon__restrictedSetConfig { + ASN_RRC_RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet = 0, + ASN_RRC_RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeA = 1, + ASN_RRC_RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeB = 2 +} e_ASN_RRC_RACH_ConfigCommon__restrictedSetConfig; +typedef enum ASN_RRC_RACH_ConfigCommon__msg3_transformPrecoder { + ASN_RRC_RACH_ConfigCommon__msg3_transformPrecoder_enabled = 0 +} e_ASN_RRC_RACH_ConfigCommon__msg3_transformPrecoder; + +/* ASN_RRC_RACH-ConfigCommon */ +typedef struct ASN_RRC_RACH_ConfigCommon { + ASN_RRC_RACH_ConfigGeneric_t rach_ConfigGeneric; + long *totalNumberOfRA_Preambles; /* OPTIONAL */ + struct ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB { + ASN_RRC_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR present; + union ASN_RRC_RACH_ConfigCommon__ASN_RRC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_u { + long oneEighth; + long oneFourth; + long oneHalf; + long one; + long two; + long four; + long eight; + long sixteen; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ssb_perRACH_OccasionAndCB_PreamblesPerSSB; + struct ASN_RRC_RACH_ConfigCommon__groupBconfigured { + long ra_Msg3SizeGroupA; + long messagePowerOffsetGroupB; + long numberOfRA_PreamblesGroupA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *groupBconfigured; + long ra_ContentionResolutionTimer; + ASN_RRC_RSRP_Range_t *rsrp_ThresholdSSB; /* OPTIONAL */ + ASN_RRC_RSRP_Range_t *rsrp_ThresholdSSB_SUL; /* OPTIONAL */ + struct ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex { + ASN_RRC_RACH_ConfigCommon__prach_RootSequenceIndex_PR present; + union ASN_RRC_RACH_ConfigCommon__ASN_RRC_prach_RootSequenceIndex_u { + long l839; + long l139; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } prach_RootSequenceIndex; + ASN_RRC_SubcarrierSpacing_t *msg1_SubcarrierSpacing; /* OPTIONAL */ + long restrictedSetConfig; + long *msg3_transformPrecoder; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RACH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneEighth_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneFourth_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_oneHalf_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_one_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_two_73; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_Msg3SizeGroupA_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messagePowerOffsetGroupB_103; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_ContentionResolutionTimer_113; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_restrictedSetConfig_128; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_msg3_transformPrecoder_132; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigCommon_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RACH_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.c b/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.c new file mode 100644 index 0000000..9830c45 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RACH-ConfigDedicated.h" + +#include "ASN_RRC_CFRA.h" +#include "ASN_RRC_RA-Prioritization.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigDedicated_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RACH_ConfigDedicated, cfra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CFRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cfra" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RACH_ConfigDedicated, ra_Prioritization), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RA_Prioritization, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Prioritization" + }, +}; +static const int asn_MAP_ASN_RRC_RACH_ConfigDedicated_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RACH_ConfigDedicated_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cfra */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ra-Prioritization */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigDedicated_specs_1 = { + sizeof(struct ASN_RRC_RACH_ConfigDedicated), + offsetof(struct ASN_RRC_RACH_ConfigDedicated, _asn_ctx), + asn_MAP_ASN_RRC_RACH_ConfigDedicated_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RACH_ConfigDedicated_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigDedicated = { + "RACH-ConfigDedicated", + "RACH-ConfigDedicated", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1, + sizeof(asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RACH_ConfigDedicated_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RACH_ConfigDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.h b/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.h new file mode 100644 index 0000000..dea4090 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigDedicated.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RACH_ConfigDedicated_H_ +#define _ASN_RRC_RACH_ConfigDedicated_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CFRA; +struct ASN_RRC_RA_Prioritization; + +/* ASN_RRC_RACH-ConfigDedicated */ +typedef struct ASN_RRC_RACH_ConfigDedicated { + struct ASN_RRC_CFRA *cfra; /* OPTIONAL */ + struct ASN_RRC_RA_Prioritization *ra_Prioritization; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RACH_ConfigDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigDedicated_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RACH_ConfigDedicated_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.c b/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.c new file mode 100644 index 0000000..8c93bdc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.c @@ -0,0 +1,462 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RACH-ConfigGeneric.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_ASN_RRC_prach_ConfigurationIndex_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 int +memb_ASN_RRC_msg1_FrequencyStart_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 <= 274)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_zeroCorrelationZoneConfig_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_ASN_RRC_preambleReceivedTargetPower_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 >= -202 && 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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_msg1_FDM_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_type_ASN_RRC_preambleTransMax_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_powerRampingStep_constr_23 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_type_ASN_RRC_ra_ResponseWindow_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_prach_ConfigurationIndex_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_ASN_RRC_msg1_FrequencyStart_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 274 } /* (0..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_zeroCorrelationZoneConfig_constr_9 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_ASN_RRC_preambleReceivedTargetPower_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -202, -60 } /* (-202..-60) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_msg1_FDM_value2enum_3[] = { + { 0, 3, "one" }, + { 1, 3, "two" }, + { 2, 4, "four" }, + { 3, 5, "eight" } +}; +static const unsigned int asn_MAP_ASN_RRC_msg1_FDM_enum2value_3[] = { + 3, /* eight(3) */ + 2, /* four(2) */ + 0, /* one(0) */ + 1 /* two(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_msg1_FDM_specs_3 = { + asn_MAP_ASN_RRC_msg1_FDM_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_msg1_FDM_enum2value_3, /* 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_ASN_RRC_msg1_FDM_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_ASN_RRC_msg1_FDM_3 = { + "msg1-FDM", + "msg1-FDM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_msg1_FDM_tags_3, + sizeof(asn_DEF_ASN_RRC_msg1_FDM_tags_3) + /sizeof(asn_DEF_ASN_RRC_msg1_FDM_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_msg1_FDM_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_msg1_FDM_tags_3) + /sizeof(asn_DEF_ASN_RRC_msg1_FDM_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_msg1_FDM_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_msg1_FDM_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_preambleTransMax_value2enum_11[] = { + { 0, 2, "n3" }, + { 1, 2, "n4" }, + { 2, 2, "n5" }, + { 3, 2, "n6" }, + { 4, 2, "n7" }, + { 5, 2, "n8" }, + { 6, 3, "n10" }, + { 7, 3, "n20" }, + { 8, 3, "n50" }, + { 9, 4, "n100" }, + { 10, 4, "n200" } +}; +static const unsigned int asn_MAP_ASN_RRC_preambleTransMax_enum2value_11[] = { + 6, /* n10(6) */ + 9, /* n100(9) */ + 7, /* n20(7) */ + 10, /* n200(10) */ + 0, /* n3(0) */ + 1, /* n4(1) */ + 2, /* n5(2) */ + 8, /* n50(8) */ + 3, /* n6(3) */ + 4, /* n7(4) */ + 5 /* n8(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_preambleTransMax_specs_11 = { + asn_MAP_ASN_RRC_preambleTransMax_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_preambleTransMax_enum2value_11, /* N => "tag"; sorted by N */ + 11, /* 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_ASN_RRC_preambleTransMax_tags_11[] = { + (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_ASN_RRC_preambleTransMax_11 = { + "preambleTransMax", + "preambleTransMax", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_preambleTransMax_tags_11, + sizeof(asn_DEF_ASN_RRC_preambleTransMax_tags_11) + /sizeof(asn_DEF_ASN_RRC_preambleTransMax_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_preambleTransMax_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_preambleTransMax_tags_11) + /sizeof(asn_DEF_ASN_RRC_preambleTransMax_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_preambleTransMax_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_preambleTransMax_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerRampingStep_value2enum_23[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB2" }, + { 2, 3, "dB4" }, + { 3, 3, "dB6" } +}; +static const unsigned int asn_MAP_ASN_RRC_powerRampingStep_enum2value_23[] = { + 0, /* dB0(0) */ + 1, /* dB2(1) */ + 2, /* dB4(2) */ + 3 /* dB6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerRampingStep_specs_23 = { + asn_MAP_ASN_RRC_powerRampingStep_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_powerRampingStep_enum2value_23, /* 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_ASN_RRC_powerRampingStep_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerRampingStep_23 = { + "powerRampingStep", + "powerRampingStep", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_powerRampingStep_tags_23, + sizeof(asn_DEF_ASN_RRC_powerRampingStep_tags_23) + /sizeof(asn_DEF_ASN_RRC_powerRampingStep_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_powerRampingStep_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_powerRampingStep_tags_23) + /sizeof(asn_DEF_ASN_RRC_powerRampingStep_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_powerRampingStep_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_powerRampingStep_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ra_ResponseWindow_value2enum_28[] = { + { 0, 3, "sl1" }, + { 1, 3, "sl2" }, + { 2, 3, "sl4" }, + { 3, 3, "sl8" }, + { 4, 4, "sl10" }, + { 5, 4, "sl20" }, + { 6, 4, "sl40" }, + { 7, 4, "sl80" } +}; +static const unsigned int asn_MAP_ASN_RRC_ra_ResponseWindow_enum2value_28[] = { + 0, /* sl1(0) */ + 4, /* sl10(4) */ + 1, /* sl2(1) */ + 5, /* sl20(5) */ + 2, /* sl4(2) */ + 6, /* sl40(6) */ + 3, /* sl8(3) */ + 7 /* sl80(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ra_ResponseWindow_specs_28 = { + asn_MAP_ASN_RRC_ra_ResponseWindow_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ra_ResponseWindow_enum2value_28, /* 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_ASN_RRC_ra_ResponseWindow_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_ResponseWindow_28 = { + "ra-ResponseWindow", + "ra-ResponseWindow", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28, + sizeof(asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28) + /sizeof(asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28) + /sizeof(asn_DEF_ASN_RRC_ra_ResponseWindow_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ra_ResponseWindow_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ra_ResponseWindow_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigGeneric_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, prach_ConfigurationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_prach_ConfigurationIndex_constr_2, memb_ASN_RRC_prach_ConfigurationIndex_constraint_1 }, + 0, 0, /* No default value */ + "prach-ConfigurationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, msg1_FDM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_msg1_FDM_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-FDM" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, msg1_FrequencyStart), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_msg1_FrequencyStart_constr_8, memb_ASN_RRC_msg1_FrequencyStart_constraint_1 }, + 0, 0, /* No default value */ + "msg1-FrequencyStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, zeroCorrelationZoneConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_zeroCorrelationZoneConfig_constr_9, memb_ASN_RRC_zeroCorrelationZoneConfig_constraint_1 }, + 0, 0, /* No default value */ + "zeroCorrelationZoneConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, preambleReceivedTargetPower), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_preambleReceivedTargetPower_constr_10, memb_ASN_RRC_preambleReceivedTargetPower_constraint_1 }, + 0, 0, /* No default value */ + "preambleReceivedTargetPower" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, preambleTransMax), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_preambleTransMax_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preambleTransMax" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, powerRampingStep), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_powerRampingStep_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerRampingStep" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RACH_ConfigGeneric, ra_ResponseWindow), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ra_ResponseWindow_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-ResponseWindow" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RACH_ConfigGeneric_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* prach-ConfigurationIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* msg1-FDM */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* msg1-FrequencyStart */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* zeroCorrelationZoneConfig */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* preambleReceivedTargetPower */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* preambleTransMax */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* powerRampingStep */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ra-ResponseWindow */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigGeneric_specs_1 = { + sizeof(struct ASN_RRC_RACH_ConfigGeneric), + offsetof(struct ASN_RRC_RACH_ConfigGeneric, _asn_ctx), + asn_MAP_ASN_RRC_RACH_ConfigGeneric_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigGeneric = { + "RACH-ConfigGeneric", + "RACH-ConfigGeneric", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1, + sizeof(asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1) + /sizeof(asn_DEF_ASN_RRC_RACH_ConfigGeneric_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RACH_ConfigGeneric_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_RACH_ConfigGeneric_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.h b/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.h new file mode 100644 index 0000000..b95e114 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RACH-ConfigGeneric.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RACH_ConfigGeneric_H_ +#define _ASN_RRC_RACH_ConfigGeneric_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RACH_ConfigGeneric__msg1_FDM { + ASN_RRC_RACH_ConfigGeneric__msg1_FDM_one = 0, + ASN_RRC_RACH_ConfigGeneric__msg1_FDM_two = 1, + ASN_RRC_RACH_ConfigGeneric__msg1_FDM_four = 2, + ASN_RRC_RACH_ConfigGeneric__msg1_FDM_eight = 3 +} e_ASN_RRC_RACH_ConfigGeneric__msg1_FDM; +typedef enum ASN_RRC_RACH_ConfigGeneric__preambleTransMax { + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n3 = 0, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n4 = 1, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n5 = 2, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n6 = 3, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n7 = 4, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n8 = 5, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n10 = 6, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n20 = 7, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n50 = 8, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n100 = 9, + ASN_RRC_RACH_ConfigGeneric__preambleTransMax_n200 = 10 +} e_ASN_RRC_RACH_ConfigGeneric__preambleTransMax; +typedef enum ASN_RRC_RACH_ConfigGeneric__powerRampingStep { + ASN_RRC_RACH_ConfigGeneric__powerRampingStep_dB0 = 0, + ASN_RRC_RACH_ConfigGeneric__powerRampingStep_dB2 = 1, + ASN_RRC_RACH_ConfigGeneric__powerRampingStep_dB4 = 2, + ASN_RRC_RACH_ConfigGeneric__powerRampingStep_dB6 = 3 +} e_ASN_RRC_RACH_ConfigGeneric__powerRampingStep; +typedef enum ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow { + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl1 = 0, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl2 = 1, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl4 = 2, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl8 = 3, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl10 = 4, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl20 = 5, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl40 = 6, + ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow_sl80 = 7 +} e_ASN_RRC_RACH_ConfigGeneric__ra_ResponseWindow; + +/* ASN_RRC_RACH-ConfigGeneric */ +typedef struct ASN_RRC_RACH_ConfigGeneric { + long prach_ConfigurationIndex; + long msg1_FDM; + long msg1_FrequencyStart; + long zeroCorrelationZoneConfig; + long preambleReceivedTargetPower; + long preambleTransMax; + long powerRampingStep; + long ra_ResponseWindow; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RACH_ConfigGeneric_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_msg1_FDM_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_preambleTransMax_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerRampingStep_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ra_ResponseWindow_28; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RACH_ConfigGeneric; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RACH_ConfigGeneric_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RACH_ConfigGeneric_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RACH_ConfigGeneric_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RAN-AreaCode.c b/src/asn/rrc/ASN_RRC_RAN-AreaCode.c new file mode 100644 index 0000000..e332db6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-AreaCode.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RAN-AreaCode.h" + +int +ASN_RRC_RAN_AreaCode_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_ASN_RRC_RAN_AreaCode_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_ASN_RRC_RAN_AreaCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_AreaCode = { + "RAN-AreaCode", + "RAN-AreaCode", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RAN_AreaCode_tags_1, + sizeof(asn_DEF_ASN_RRC_RAN_AreaCode_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAN_AreaCode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RAN_AreaCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RAN_AreaCode_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAN_AreaCode_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RAN_AreaCode_constr_1, ASN_RRC_RAN_AreaCode_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RAN-AreaCode.h b/src/asn/rrc/ASN_RRC_RAN-AreaCode.h new file mode 100644 index 0000000..f633067 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-AreaCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RAN_AreaCode_H_ +#define _ASN_RRC_RAN_AreaCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RAN-AreaCode */ +typedef long ASN_RRC_RAN_AreaCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RAN_AreaCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_AreaCode; +asn_struct_free_f ASN_RRC_RAN_AreaCode_free; +asn_struct_print_f ASN_RRC_RAN_AreaCode_print; +asn_constr_check_f ASN_RRC_RAN_AreaCode_constraint; +ber_type_decoder_f ASN_RRC_RAN_AreaCode_decode_ber; +der_type_encoder_f ASN_RRC_RAN_AreaCode_encode_der; +xer_type_decoder_f ASN_RRC_RAN_AreaCode_decode_xer; +xer_type_encoder_f ASN_RRC_RAN_AreaCode_encode_xer; +per_type_decoder_f ASN_RRC_RAN_AreaCode_decode_uper; +per_type_encoder_f ASN_RRC_RAN_AreaCode_encode_uper; +per_type_decoder_f ASN_RRC_RAN_AreaCode_decode_aper; +per_type_encoder_f ASN_RRC_RAN_AreaCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RAN_AreaCode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RAN-AreaConfig.c b/src/asn/rrc/ASN_RRC_RAN-AreaConfig.c new file mode 100644 index 0000000..6f7548f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-AreaConfig.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RAN-AreaConfig.h" + +static int +memb_ASN_RRC_ran_AreaCodeList_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_ASN_RRC_ran_AreaCodeList_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_ASN_RRC_ran_AreaCodeList_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_ASN_RRC_ran_AreaCodeList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ran_AreaCodeList_specs_3 = { + sizeof(struct ASN_RRC_RAN_AreaConfig__ran_AreaCodeList), + offsetof(struct ASN_RRC_RAN_AreaConfig__ran_AreaCodeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ran_AreaCodeList_3 = { + "ran-AreaCodeList", + "ran-AreaCodeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3, + sizeof(asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3) + /sizeof(asn_DEF_ASN_RRC_ran_AreaCodeList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ran_AreaCodeList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ran_AreaCodeList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ran_AreaCodeList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RAN_AreaConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RAN_AreaConfig, trackingAreaCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RAN_AreaConfig, ran_AreaCodeList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ran_AreaCodeList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_ran_AreaCodeList_constr_3, memb_ASN_RRC_ran_AreaCodeList_constraint_1 }, + 0, 0, /* No default value */ + "ran-AreaCodeList" + }, +}; +static const int asn_MAP_ASN_RRC_RAN_AreaConfig_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RAN_AreaConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* trackingAreaCode */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-AreaCodeList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RAN_AreaConfig_specs_1 = { + sizeof(struct ASN_RRC_RAN_AreaConfig), + offsetof(struct ASN_RRC_RAN_AreaConfig, _asn_ctx), + asn_MAP_ASN_RRC_RAN_AreaConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RAN_AreaConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_AreaConfig = { + "RAN-AreaConfig", + "RAN-AreaConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAN_AreaConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RAN_AreaConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RAN_AreaConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RAN-AreaConfig.h b/src/asn/rrc/ASN_RRC_RAN-AreaConfig.h new file mode 100644 index 0000000..e3ec8c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-AreaConfig.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RAN_AreaConfig_H_ +#define _ASN_RRC_RAN_AreaConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TrackingAreaCode.h" +#include "ASN_RRC_RAN-AreaCode.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RAN-AreaConfig */ +typedef struct ASN_RRC_RAN_AreaConfig { + ASN_RRC_TrackingAreaCode_t trackingAreaCode; + struct ASN_RRC_RAN_AreaConfig__ran_AreaCodeList { + A_SEQUENCE_OF(ASN_RRC_RAN_AreaCode_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ran_AreaCodeList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RAN_AreaConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_AreaConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RAN_AreaConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RAN_AreaConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RAN_AreaConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.c b/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.c new file mode 100644 index 0000000..3062876 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RAN-NotificationAreaInfo.h" + +#include "ASN_RRC_PLMN-RAN-AreaCellList.h" +#include "ASN_RRC_PLMN-RAN-AreaConfigList.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_RAN_NotificationAreaInfo_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_ASN_RRC_RAN_NotificationAreaInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RAN_NotificationAreaInfo, choice.cellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_RAN_AreaCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellList" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RAN_NotificationAreaInfo, choice.ran_AreaConfigList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_RAN_AreaConfigList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-AreaConfigList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RAN_NotificationAreaInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ran-AreaConfigList */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RAN_NotificationAreaInfo_specs_1 = { + sizeof(struct ASN_RRC_RAN_NotificationAreaInfo), + offsetof(struct ASN_RRC_RAN_NotificationAreaInfo, _asn_ctx), + offsetof(struct ASN_RRC_RAN_NotificationAreaInfo, present), + sizeof(((struct ASN_RRC_RAN_NotificationAreaInfo *)0)->present), + asn_MAP_ASN_RRC_RAN_NotificationAreaInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_NotificationAreaInfo = { + "RAN-NotificationAreaInfo", + "RAN-NotificationAreaInfo", + &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_ASN_RRC_RAN_NotificationAreaInfo_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_RAN_NotificationAreaInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RAN_NotificationAreaInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.h b/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.h new file mode 100644 index 0000000..e763a26 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAN-NotificationAreaInfo.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RAN_NotificationAreaInfo_H_ +#define _ASN_RRC_RAN_NotificationAreaInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RAN_NotificationAreaInfo_PR { + ASN_RRC_RAN_NotificationAreaInfo_PR_NOTHING, /* No components present */ + ASN_RRC_RAN_NotificationAreaInfo_PR_cellList, + ASN_RRC_RAN_NotificationAreaInfo_PR_ran_AreaConfigList + /* Extensions may appear below */ + +} ASN_RRC_RAN_NotificationAreaInfo_PR; + +/* Forward declarations */ +struct ASN_RRC_PLMN_RAN_AreaCellList; +struct ASN_RRC_PLMN_RAN_AreaConfigList; + +/* ASN_RRC_RAN-NotificationAreaInfo */ +typedef struct ASN_RRC_RAN_NotificationAreaInfo { + ASN_RRC_RAN_NotificationAreaInfo_PR present; + union ASN_RRC_RAN_NotificationAreaInfo_u { + struct ASN_RRC_PLMN_RAN_AreaCellList *cellList; + struct ASN_RRC_PLMN_RAN_AreaConfigList *ran_AreaConfigList; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RAN_NotificationAreaInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAN_NotificationAreaInfo; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RAN_NotificationAreaInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RAN_NotificationAreaInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RAN_NotificationAreaInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RAN_NotificationAreaInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RAT-Type.c b/src/asn/rrc/ASN_RRC_RAT-Type.c new file mode 100644 index 0000000..b61451a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAT-Type.c @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RAT-Type.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_RAT_Type_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_ASN_RRC_RAT_Type_value2enum_1[] = { + { 0, 2, "nr" }, + { 1, 8, "eutra-nr" }, + { 2, 5, "eutra" }, + { 3, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_RAT_Type_enum2value_1[] = { + 2, /* eutra(2) */ + 1, /* eutra-nr(1) */ + 0, /* nr(0) */ + 3 /* spare1(3) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_RAT_Type_specs_1 = { + asn_MAP_ASN_RRC_RAT_Type_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_RAT_Type_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_ASN_RRC_RAT_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAT_Type = { + "RAT-Type", + "RAT-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_RAT_Type_tags_1, + sizeof(asn_DEF_ASN_RRC_RAT_Type_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAT_Type_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RAT_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RAT_Type_tags_1) + /sizeof(asn_DEF_ASN_RRC_RAT_Type_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RAT_Type_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_RAT_Type_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RAT-Type.h b/src/asn/rrc/ASN_RRC_RAT-Type.h new file mode 100644 index 0000000..8367c84 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RAT-Type.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RAT_Type_H_ +#define _ASN_RRC_RAT_Type_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RAT_Type { + ASN_RRC_RAT_Type_nr = 0, + ASN_RRC_RAT_Type_eutra_nr = 1, + ASN_RRC_RAT_Type_eutra = 2, + ASN_RRC_RAT_Type_spare1 = 3 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_RAT_Type; + +/* ASN_RRC_RAT-Type */ +typedef long ASN_RRC_RAT_Type_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RAT_Type_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RAT_Type; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_RAT_Type_specs_1; +asn_struct_free_f ASN_RRC_RAT_Type_free; +asn_struct_print_f ASN_RRC_RAT_Type_print; +asn_constr_check_f ASN_RRC_RAT_Type_constraint; +ber_type_decoder_f ASN_RRC_RAT_Type_decode_ber; +der_type_encoder_f ASN_RRC_RAT_Type_encode_der; +xer_type_decoder_f ASN_RRC_RAT_Type_decode_xer; +xer_type_encoder_f ASN_RRC_RAT_Type_encode_xer; +per_type_decoder_f ASN_RRC_RAT_Type_decode_uper; +per_type_encoder_f ASN_RRC_RAT_Type_encode_uper; +per_type_decoder_f ASN_RRC_RAT_Type_decode_aper; +per_type_encoder_f ASN_RRC_RAT_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RAT_Type_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RF-Parameters.c b/src/asn/rrc/ASN_RRC_RF-Parameters.c new file mode 100644 index 0000000..7809e3d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RF-Parameters.c @@ -0,0 +1,370 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RF-Parameters.h" + +#include "ASN_RRC_BandCombinationList.h" +#include "ASN_RRC_FreqBandList.h" +#include "ASN_RRC_BandNR.h" +#include "ASN_RRC_BandCombinationList-v1540.h" +#include "ASN_RRC_BandCombinationList-v1550.h" +#include "ASN_RRC_BandCombinationList-v1560.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_supportedBandListNR_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 <= 1024)) { + /* 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_ASN_RRC_supportedBandListNR_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_srs_SwitchingTimeRequested_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_supportedBandListNR_constr_2 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_ASN_RRC_supportedBandListNR_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BandNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedBandListNR_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedBandListNR_specs_2 = { + sizeof(struct ASN_RRC_RF_Parameters__supportedBandListNR), + offsetof(struct ASN_RRC_RF_Parameters__supportedBandListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedBandListNR_2 = { + "supportedBandListNR", + "supportedBandListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedBandListNR_tags_2, + sizeof(asn_DEF_ASN_RRC_supportedBandListNR_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListNR_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedBandListNR_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedBandListNR_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListNR_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedBandListNR_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedBandListNR_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedBandListNR_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_value2enum_9[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_enum2value_9[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srs_SwitchingTimeRequested_specs_9 = { + asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9[] = { + (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_ASN_RRC_srs_SwitchingTimeRequested_9 = { + "srs-SwitchingTimeRequested", + "srs-SwitchingTimeRequested", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9, + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchingTimeRequested_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srs_SwitchingTimeRequested_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_7[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RF_Parameters__ext1, supportedBandCombinationList_v1540), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_Parameters__ext1, srs_SwitchingTimeRequested), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-SwitchingTimeRequested" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_7[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandCombinationList-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* srs-SwitchingTimeRequested */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_7 = { + sizeof(struct ASN_RRC_RF_Parameters__ext1), + offsetof(struct ASN_RRC_RF_Parameters__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_7, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_7, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_7, + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_11[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_Parameters__ext2, supportedBandCombinationList_v1550), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1550" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_11[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* supportedBandCombinationList-v1550 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_11 = { + sizeof(struct ASN_RRC_RF_Parameters__ext2), + offsetof(struct ASN_RRC_RF_Parameters__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_11, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_11, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_11 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_11, + sizeof(asn_DEF_ASN_RRC_ext2_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_11, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_13[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_Parameters__ext3, supportedBandCombinationList_v1560), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1560" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_13[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* supportedBandCombinationList-v1560 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_13 = { + sizeof(struct ASN_RRC_RF_Parameters__ext3), + offsetof(struct ASN_RRC_RF_Parameters__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_13, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_13, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_13 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_13, + sizeof(asn_DEF_ASN_RRC_ext3_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_13) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_13, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RF_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RF_Parameters, supportedBandListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedBandListNR_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedBandListNR_constr_2, memb_ASN_RRC_supportedBandListNR_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListNR" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RF_Parameters, supportedBandCombinationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RF_Parameters, appliedFreqBandListFilter), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "appliedFreqBandListFilter" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RF_Parameters, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RF_Parameters, ext2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_Parameters, ext3), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_RF_Parameters_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RF_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RF_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandListNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedBandCombinationList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* appliedFreqBandListFilter */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RF_Parameters_specs_1 = { + sizeof(struct ASN_RRC_RF_Parameters), + offsetof(struct ASN_RRC_RF_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_RF_Parameters_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RF_Parameters_oms_1, /* Optional members */ + 2, 3, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RF_Parameters = { + "RF-Parameters", + "RF-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RF_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_RF_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_RF_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RF_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RF_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_RF_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RF_Parameters_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_RF_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RF-Parameters.h b/src/asn/rrc/ASN_RRC_RF-Parameters.h new file mode 100644 index 0000000..6501cfe --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RF-Parameters.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RF_Parameters_H_ +#define _ASN_RRC_RF_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RF_Parameters__ext1__srs_SwitchingTimeRequested { + ASN_RRC_RF_Parameters__ext1__srs_SwitchingTimeRequested_true = 0 +} e_ASN_RRC_RF_Parameters__ext1__srs_SwitchingTimeRequested; + +/* Forward declarations */ +struct ASN_RRC_BandCombinationList; +struct ASN_RRC_FreqBandList; +struct ASN_RRC_BandNR; +struct ASN_RRC_BandCombinationList_v1540; +struct ASN_RRC_BandCombinationList_v1550; +struct ASN_RRC_BandCombinationList_v1560; + +/* ASN_RRC_RF-Parameters */ +typedef struct ASN_RRC_RF_Parameters { + struct ASN_RRC_RF_Parameters__supportedBandListNR { + A_SEQUENCE_OF(struct ASN_RRC_BandNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedBandListNR; + struct ASN_RRC_BandCombinationList *supportedBandCombinationList; /* OPTIONAL */ + struct ASN_RRC_FreqBandList *appliedFreqBandListFilter; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_RF_Parameters__ext1 { + struct ASN_RRC_BandCombinationList_v1540 *supportedBandCombinationList_v1540; /* OPTIONAL */ + long *srs_SwitchingTimeRequested; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_RF_Parameters__ext2 { + struct ASN_RRC_BandCombinationList_v1550 *supportedBandCombinationList_v1550; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_RF_Parameters__ext3 { + struct ASN_RRC_BandCombinationList_v1560 *supportedBandCombinationList_v1560; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RF_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RF_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RF_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RF_Parameters_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RF_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.c b/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.c new file mode 100644 index 0000000..34d2425 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.c @@ -0,0 +1,296 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RF-ParametersMRDC.h" + +#include "ASN_RRC_BandCombinationList.h" +#include "ASN_RRC_FreqBandList.h" +#include "ASN_RRC_BandCombinationList-v1540.h" +#include "ASN_RRC_BandCombinationList-v1550.h" +#include "ASN_RRC_BandCombinationList-v1560.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_srs_SwitchingTimeRequested_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_srs_SwitchingTimeRequested_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srs_SwitchingTimeRequested_specs_6 = { + asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srs_SwitchingTimeRequested_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6[] = { + (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_ASN_RRC_srs_SwitchingTimeRequested_6 = { + "srs-SwitchingTimeRequested", + "srs-SwitchingTimeRequested", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6, + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchingTimeRequested_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srs_SwitchingTimeRequested_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RF_ParametersMRDC__ext1, srs_SwitchingTimeRequested), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-SwitchingTimeRequested" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_ParametersMRDC__ext1, supportedBandCombinationList_v1540), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1540" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-SwitchingTimeRequested */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* supportedBandCombinationList-v1540 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_RF_ParametersMRDC__ext1), + offsetof(struct ASN_RRC_RF_ParametersMRDC__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext2_9[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_ParametersMRDC__ext2, supportedBandCombinationList_v1550), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1550" + }, +}; +static const int asn_MAP_ASN_RRC_ext2_oms_9[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext2_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext2_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* supportedBandCombinationList-v1550 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext2_specs_9 = { + sizeof(struct ASN_RRC_RF_ParametersMRDC__ext2), + offsetof(struct ASN_RRC_RF_ParametersMRDC__ext2, _asn_ctx), + asn_MAP_ASN_RRC_ext2_tag2el_9, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext2_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext2_9 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext2_tags_9, + sizeof(asn_DEF_ASN_RRC_ext2_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext2_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext2_tags_9) + /sizeof(asn_DEF_ASN_RRC_ext2_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext2_9, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext2_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext3_11[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RF_ParametersMRDC__ext3, supportedBandCombinationList_v1560), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList-v1560" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_ParametersMRDC__ext3, supportedBandCombinationListNEDC_Only), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationListNEDC-Only" + }, +}; +static const int asn_MAP_ASN_RRC_ext3_oms_11[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext3_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext3_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandCombinationList-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* supportedBandCombinationListNEDC-Only */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext3_specs_11 = { + sizeof(struct ASN_RRC_RF_ParametersMRDC__ext3), + offsetof(struct ASN_RRC_RF_ParametersMRDC__ext3, _asn_ctx), + asn_MAP_ASN_RRC_ext3_tag2el_11, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext3_oms_11, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext3_11 = { + "ext3", + "ext3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext3_tags_11, + sizeof(asn_DEF_ASN_RRC_ext3_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext3_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext3_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext3_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext3_11, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext3_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RF_ParametersMRDC_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RF_ParametersMRDC, supportedBandCombinationList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BandCombinationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RF_ParametersMRDC, appliedFreqBandListFilter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "appliedFreqBandListFilter" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RF_ParametersMRDC, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RF_ParametersMRDC, ext2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext2_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RF_ParametersMRDC, ext3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext3_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext3" + }, +}; +static const int asn_MAP_ASN_RRC_RF_ParametersMRDC_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RF_ParametersMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandCombinationList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* appliedFreqBandListFilter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ext1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ext2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext3 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RF_ParametersMRDC_specs_1 = { + sizeof(struct ASN_RRC_RF_ParametersMRDC), + offsetof(struct ASN_RRC_RF_ParametersMRDC, _asn_ctx), + asn_MAP_ASN_RRC_RF_ParametersMRDC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RF_ParametersMRDC_oms_1, /* Optional members */ + 2, 3, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RF_ParametersMRDC = { + "RF-ParametersMRDC", + "RF-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_RF_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RF_ParametersMRDC_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RF_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.h b/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.h new file mode 100644 index 0000000..912b088 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RF-ParametersMRDC.h @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RF_ParametersMRDC_H_ +#define _ASN_RRC_RF_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RF_ParametersMRDC__ext1__srs_SwitchingTimeRequested { + ASN_RRC_RF_ParametersMRDC__ext1__srs_SwitchingTimeRequested_true = 0 +} e_ASN_RRC_RF_ParametersMRDC__ext1__srs_SwitchingTimeRequested; + +/* Forward declarations */ +struct ASN_RRC_BandCombinationList; +struct ASN_RRC_FreqBandList; +struct ASN_RRC_BandCombinationList_v1540; +struct ASN_RRC_BandCombinationList_v1550; +struct ASN_RRC_BandCombinationList_v1560; + +/* ASN_RRC_RF-ParametersMRDC */ +typedef struct ASN_RRC_RF_ParametersMRDC { + struct ASN_RRC_BandCombinationList *supportedBandCombinationList; /* OPTIONAL */ + struct ASN_RRC_FreqBandList *appliedFreqBandListFilter; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_RF_ParametersMRDC__ext1 { + long *srs_SwitchingTimeRequested; /* OPTIONAL */ + struct ASN_RRC_BandCombinationList_v1540 *supportedBandCombinationList_v1540; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct ASN_RRC_RF_ParametersMRDC__ext2 { + struct ASN_RRC_BandCombinationList_v1550 *supportedBandCombinationList_v1550; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext2; + struct ASN_RRC_RF_ParametersMRDC__ext3 { + struct ASN_RRC_BandCombinationList_v1560 *supportedBandCombinationList_v1560; /* OPTIONAL */ + struct ASN_RRC_BandCombinationList *supportedBandCombinationListNEDC_Only; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RF_ParametersMRDC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequested_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RF_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RF_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RF_ParametersMRDC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RF_ParametersMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RLC-BearerConfig.c b/src/asn/rrc/ASN_RRC_RLC-BearerConfig.c new file mode 100644 index 0000000..539a721 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-BearerConfig.c @@ -0,0 +1,192 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RLC-BearerConfig.h" + +#include "ASN_RRC_RLC-Config.h" +#include "ASN_RRC_LogicalChannelConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_servedRadioBearer_constr_3 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_type_ASN_RRC_reestablishRLC_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_servedRadioBearer_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_BearerConfig__servedRadioBearer, choice.srb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_BearerConfig__servedRadioBearer, choice.drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_servedRadioBearer_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srb-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* drb-Identity */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_servedRadioBearer_specs_3 = { + sizeof(struct ASN_RRC_RLC_BearerConfig__servedRadioBearer), + offsetof(struct ASN_RRC_RLC_BearerConfig__servedRadioBearer, _asn_ctx), + offsetof(struct ASN_RRC_RLC_BearerConfig__servedRadioBearer, present), + sizeof(((struct ASN_RRC_RLC_BearerConfig__servedRadioBearer *)0)->present), + asn_MAP_ASN_RRC_servedRadioBearer_tag2el_3, + 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_ASN_RRC_servedRadioBearer_3 = { + "servedRadioBearer", + "servedRadioBearer", + &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_ASN_RRC_servedRadioBearer_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_servedRadioBearer_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_servedRadioBearer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reestablishRLC_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_reestablishRLC_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reestablishRLC_specs_6 = { + asn_MAP_ASN_RRC_reestablishRLC_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reestablishRLC_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reestablishRLC_tags_6[] = { + (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_ASN_RRC_reestablishRLC_6 = { + "reestablishRLC", + "reestablishRLC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reestablishRLC_tags_6, + sizeof(asn_DEF_ASN_RRC_reestablishRLC_tags_6) + /sizeof(asn_DEF_ASN_RRC_reestablishRLC_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reestablishRLC_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reestablishRLC_tags_6) + /sizeof(asn_DEF_ASN_RRC_reestablishRLC_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reestablishRLC_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reestablishRLC_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_BearerConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_BearerConfig, logicalChannelIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelIdentity" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RLC_BearerConfig, servedRadioBearer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_servedRadioBearer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servedRadioBearer" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RLC_BearerConfig, reestablishRLC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reestablishRLC_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishRLC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RLC_BearerConfig, rlc_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RLC_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlc-Config" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RLC_BearerConfig, mac_LogicalChannelConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LogicalChannelConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-LogicalChannelConfig" + }, +}; +static const int asn_MAP_ASN_RRC_RLC_BearerConfig_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RLC_BearerConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* logicalChannelIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* servedRadioBearer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reestablishRLC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlc-Config */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* mac-LogicalChannelConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLC_BearerConfig_specs_1 = { + sizeof(struct ASN_RRC_RLC_BearerConfig), + offsetof(struct ASN_RRC_RLC_BearerConfig, _asn_ctx), + asn_MAP_ASN_RRC_RLC_BearerConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RLC_BearerConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_BearerConfig = { + "RLC-BearerConfig", + "RLC-BearerConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLC_BearerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RLC_BearerConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RLC_BearerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RLC-BearerConfig.h b/src/asn/rrc/ASN_RRC_RLC-BearerConfig.h new file mode 100644 index 0000000..710eb60 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-BearerConfig.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RLC_BearerConfig_H_ +#define _ASN_RRC_RLC_BearerConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_LogicalChannelIdentity.h" +#include +#include "ASN_RRC_SRB-Identity.h" +#include "ASN_RRC_DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR { + ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR_NOTHING, /* No components present */ + ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity, + ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity +} ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR; +typedef enum ASN_RRC_RLC_BearerConfig__reestablishRLC { + ASN_RRC_RLC_BearerConfig__reestablishRLC_true = 0 +} e_ASN_RRC_RLC_BearerConfig__reestablishRLC; + +/* Forward declarations */ +struct ASN_RRC_RLC_Config; +struct ASN_RRC_LogicalChannelConfig; + +/* ASN_RRC_RLC-BearerConfig */ +typedef struct ASN_RRC_RLC_BearerConfig { + ASN_RRC_LogicalChannelIdentity_t logicalChannelIdentity; + struct ASN_RRC_RLC_BearerConfig__servedRadioBearer { + ASN_RRC_RLC_BearerConfig__servedRadioBearer_PR present; + union ASN_RRC_RLC_BearerConfig__ASN_RRC_servedRadioBearer_u { + ASN_RRC_SRB_Identity_t srb_Identity; + ASN_RRC_DRB_Identity_t drb_Identity; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *servedRadioBearer; + long *reestablishRLC; /* OPTIONAL */ + struct ASN_RRC_RLC_Config *rlc_Config; /* OPTIONAL */ + struct ASN_RRC_LogicalChannelConfig *mac_LogicalChannelConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RLC_BearerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reestablishRLC_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_BearerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLC_BearerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_BearerConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RLC_BearerConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RLC-Config.c b/src/asn/rrc/ASN_RRC_RLC-Config.c new file mode 100644 index 0000000..17661c1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-Config.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RLC-Config.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_RLC_Config_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 asn_TYPE_member_t asn_MBR_ASN_RRC_am_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__am, ul_AM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_AM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-AM-RLC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__am, dl_AM_RLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DL_AM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-AM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_am_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_am_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-AM-RLC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dl-AM-RLC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_am_specs_2 = { + sizeof(struct ASN_RRC_RLC_Config__am), + offsetof(struct ASN_RRC_RLC_Config__am, _asn_ctx), + asn_MAP_ASN_RRC_am_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_am_2 = { + "am", + "am", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_am_tags_2, + sizeof(asn_DEF_ASN_RRC_am_tags_2) + /sizeof(asn_DEF_ASN_RRC_am_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_am_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_am_tags_2) + /sizeof(asn_DEF_ASN_RRC_am_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_am_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_am_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_um_Bi_Directional_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__um_Bi_Directional, ul_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-UM-RLC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__um_Bi_Directional, dl_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_um_Bi_Directional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_um_Bi_Directional_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-UM-RLC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dl-UM-RLC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_um_Bi_Directional_specs_5 = { + sizeof(struct ASN_RRC_RLC_Config__um_Bi_Directional), + offsetof(struct ASN_RRC_RLC_Config__um_Bi_Directional, _asn_ctx), + asn_MAP_ASN_RRC_um_Bi_Directional_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_um_Bi_Directional_5 = { + "um-Bi-Directional", + "um-Bi-Directional", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_um_Bi_Directional_tags_5, + sizeof(asn_DEF_ASN_RRC_um_Bi_Directional_tags_5) + /sizeof(asn_DEF_ASN_RRC_um_Bi_Directional_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_um_Bi_Directional_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_um_Bi_Directional_tags_5) + /sizeof(asn_DEF_ASN_RRC_um_Bi_Directional_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_um_Bi_Directional_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_um_Bi_Directional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_um_Uni_Directional_UL_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__um_Uni_Directional_UL, ul_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_um_Uni_Directional_UL_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ul-UM-RLC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_um_Uni_Directional_UL_specs_8 = { + sizeof(struct ASN_RRC_RLC_Config__um_Uni_Directional_UL), + offsetof(struct ASN_RRC_RLC_Config__um_Uni_Directional_UL, _asn_ctx), + asn_MAP_ASN_RRC_um_Uni_Directional_UL_tag2el_8, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_um_Uni_Directional_UL_8 = { + "um-Uni-Directional-UL", + "um-Uni-Directional-UL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8, + sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8) + /sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8) + /sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_UL_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_um_Uni_Directional_UL_8, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_um_Uni_Directional_UL_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_um_Uni_Directional_DL_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLC_Config__um_Uni_Directional_DL, dl_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_um_Uni_Directional_DL_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dl-UM-RLC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_um_Uni_Directional_DL_specs_10 = { + sizeof(struct ASN_RRC_RLC_Config__um_Uni_Directional_DL), + offsetof(struct ASN_RRC_RLC_Config__um_Uni_Directional_DL, _asn_ctx), + asn_MAP_ASN_RRC_um_Uni_Directional_DL_tag2el_10, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_um_Uni_Directional_DL_10 = { + "um-Uni-Directional-DL", + "um-Uni-Directional-DL", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10, + sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10) + /sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10) + /sizeof(asn_DEF_ASN_RRC_um_Uni_Directional_DL_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_um_Uni_Directional_DL_10, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_um_Uni_Directional_DL_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_Config_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RLC_Config, choice.am), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_am_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "am" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RLC_Config, choice.um_Bi_Directional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_um_Bi_Directional_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-Bi-Directional" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RLC_Config, choice.um_Uni_Directional_UL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_um_Uni_Directional_UL_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-Uni-Directional-UL" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RLC_Config, choice.um_Uni_Directional_DL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_um_Uni_Directional_DL_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-Uni-Directional-DL" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RLC_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* am */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* um-Bi-Directional */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* um-Uni-Directional-UL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* um-Uni-Directional-DL */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RLC_Config_specs_1 = { + sizeof(struct ASN_RRC_RLC_Config), + offsetof(struct ASN_RRC_RLC_Config, _asn_ctx), + offsetof(struct ASN_RRC_RLC_Config, present), + sizeof(((struct ASN_RRC_RLC_Config *)0)->present), + asn_MAP_ASN_RRC_RLC_Config_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_Config = { + "RLC-Config", + "RLC-Config", + &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_ASN_RRC_RLC_Config_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_RLC_Config_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RLC_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RLC-Config.h b/src/asn/rrc/ASN_RRC_RLC-Config.h new file mode 100644 index 0000000..be63606 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-Config.h @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RLC_Config_H_ +#define _ASN_RRC_RLC_Config_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UL-AM-RLC.h" +#include "ASN_RRC_DL-AM-RLC.h" +#include +#include "ASN_RRC_UL-UM-RLC.h" +#include "ASN_RRC_DL-UM-RLC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RLC_Config_PR { + ASN_RRC_RLC_Config_PR_NOTHING, /* No components present */ + ASN_RRC_RLC_Config_PR_am, + ASN_RRC_RLC_Config_PR_um_Bi_Directional, + ASN_RRC_RLC_Config_PR_um_Uni_Directional_UL, + ASN_RRC_RLC_Config_PR_um_Uni_Directional_DL + /* Extensions may appear below */ + +} ASN_RRC_RLC_Config_PR; + +/* ASN_RRC_RLC-Config */ +typedef struct ASN_RRC_RLC_Config { + ASN_RRC_RLC_Config_PR present; + union ASN_RRC_RLC_Config_u { + struct ASN_RRC_RLC_Config__am { + ASN_RRC_UL_AM_RLC_t ul_AM_RLC; + ASN_RRC_DL_AM_RLC_t dl_AM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *am; + struct ASN_RRC_RLC_Config__um_Bi_Directional { + ASN_RRC_UL_UM_RLC_t ul_UM_RLC; + ASN_RRC_DL_UM_RLC_t dl_UM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *um_Bi_Directional; + struct ASN_RRC_RLC_Config__um_Uni_Directional_UL { + ASN_RRC_UL_UM_RLC_t ul_UM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *um_Uni_Directional_UL; + struct ASN_RRC_RLC_Config__um_Uni_Directional_DL { + ASN_RRC_DL_UM_RLC_t dl_UM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *um_Uni_Directional_DL; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RLC_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RLC_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_Config_1[4]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RLC_Config_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RLC_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RLC-Parameters.c b/src/asn/rrc/ASN_RRC_RLC-Parameters.c new file mode 100644 index 0000000..f263100 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-Parameters.c @@ -0,0 +1,204 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RLC-Parameters.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_ASN_RRC_am_WithShortSN_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_um_WithShortSN_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_um_WithLongSN_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_am_WithShortSN_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_am_WithShortSN_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_am_WithShortSN_specs_2 = { + asn_MAP_ASN_RRC_am_WithShortSN_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_am_WithShortSN_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_am_WithShortSN_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_ASN_RRC_am_WithShortSN_2 = { + "am-WithShortSN", + "am-WithShortSN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_am_WithShortSN_tags_2, + sizeof(asn_DEF_ASN_RRC_am_WithShortSN_tags_2) + /sizeof(asn_DEF_ASN_RRC_am_WithShortSN_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_am_WithShortSN_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_am_WithShortSN_tags_2) + /sizeof(asn_DEF_ASN_RRC_am_WithShortSN_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_am_WithShortSN_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_am_WithShortSN_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_um_WithShortSN_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_um_WithShortSN_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_um_WithShortSN_specs_4 = { + asn_MAP_ASN_RRC_um_WithShortSN_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_um_WithShortSN_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_um_WithShortSN_tags_4[] = { + (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_ASN_RRC_um_WithShortSN_4 = { + "um-WithShortSN", + "um-WithShortSN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_um_WithShortSN_tags_4, + sizeof(asn_DEF_ASN_RRC_um_WithShortSN_tags_4) + /sizeof(asn_DEF_ASN_RRC_um_WithShortSN_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_um_WithShortSN_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_um_WithShortSN_tags_4) + /sizeof(asn_DEF_ASN_RRC_um_WithShortSN_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_um_WithShortSN_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_um_WithShortSN_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_um_WithLongSN_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_um_WithLongSN_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_um_WithLongSN_specs_6 = { + asn_MAP_ASN_RRC_um_WithLongSN_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_um_WithLongSN_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_um_WithLongSN_tags_6[] = { + (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_ASN_RRC_um_WithLongSN_6 = { + "um-WithLongSN", + "um-WithLongSN", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_um_WithLongSN_tags_6, + sizeof(asn_DEF_ASN_RRC_um_WithLongSN_tags_6) + /sizeof(asn_DEF_ASN_RRC_um_WithLongSN_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_um_WithLongSN_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_um_WithLongSN_tags_6) + /sizeof(asn_DEF_ASN_RRC_um_WithLongSN_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_um_WithLongSN_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_um_WithLongSN_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_Parameters_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RLC_Parameters, am_WithShortSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_am_WithShortSN_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "am-WithShortSN" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RLC_Parameters, um_WithShortSN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_um_WithShortSN_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-WithShortSN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RLC_Parameters, um_WithLongSN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_um_WithLongSN_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-WithLongSN" + }, +}; +static const int asn_MAP_ASN_RRC_RLC_Parameters_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RLC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RLC_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* am-WithShortSN */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* um-WithShortSN */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* um-WithLongSN */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLC_Parameters_specs_1 = { + sizeof(struct ASN_RRC_RLC_Parameters), + offsetof(struct ASN_RRC_RLC_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_RLC_Parameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RLC_Parameters_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_Parameters = { + "RLC-Parameters", + "RLC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RLC_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_RLC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RLC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RLC_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RLC_Parameters_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RLC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RLC-Parameters.h b/src/asn/rrc/ASN_RRC_RLC-Parameters.h new file mode 100644 index 0000000..4be5dba --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLC-Parameters.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RLC_Parameters_H_ +#define _ASN_RRC_RLC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RLC_Parameters__am_WithShortSN { + ASN_RRC_RLC_Parameters__am_WithShortSN_supported = 0 +} e_ASN_RRC_RLC_Parameters__am_WithShortSN; +typedef enum ASN_RRC_RLC_Parameters__um_WithShortSN { + ASN_RRC_RLC_Parameters__um_WithShortSN_supported = 0 +} e_ASN_RRC_RLC_Parameters__um_WithShortSN; +typedef enum ASN_RRC_RLC_Parameters__um_WithLongSN { + ASN_RRC_RLC_Parameters__um_WithLongSN_supported = 0 +} e_ASN_RRC_RLC_Parameters__um_WithLongSN; + +/* ASN_RRC_RLC-Parameters */ +typedef struct ASN_RRC_RLC_Parameters { + long *am_WithShortSN; /* OPTIONAL */ + long *um_WithShortSN; /* OPTIONAL */ + long *um_WithLongSN; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RLC_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_am_WithShortSN_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_um_WithShortSN_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_um_WithLongSN_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RLC_Parameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RLC_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.c b/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.c new file mode 100644 index 0000000..383c5b1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.c @@ -0,0 +1,357 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RLF-TimersAndConstants.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 asn_per_constraints_t asn_PER_type_ASN_RRC_t310_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_n310_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_n311_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t311_v1530_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_t310_value2enum_2[] = { + { 0, 3, "ms0" }, + { 1, 4, "ms50" }, + { 2, 5, "ms100" }, + { 3, 5, "ms200" }, + { 4, 5, "ms500" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms2000" }, + { 7, 6, "ms4000" }, + { 8, 6, "ms6000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t310_enum2value_2[] = { + 0, /* ms0(0) */ + 2, /* ms100(2) */ + 5, /* ms1000(5) */ + 3, /* ms200(3) */ + 6, /* ms2000(6) */ + 7, /* ms4000(7) */ + 1, /* ms50(1) */ + 4, /* ms500(4) */ + 8 /* ms6000(8) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t310_specs_2 = { + asn_MAP_ASN_RRC_t310_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t310_enum2value_2, /* N => "tag"; sorted by N */ + 9, /* 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_ASN_RRC_t310_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_ASN_RRC_t310_2 = { + "t310", + "t310", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t310_tags_2, + sizeof(asn_DEF_ASN_RRC_t310_tags_2) + /sizeof(asn_DEF_ASN_RRC_t310_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t310_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t310_tags_2) + /sizeof(asn_DEF_ASN_RRC_t310_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t310_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t310_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n310_value2enum_12[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" }, + { 4, 2, "n6" }, + { 5, 2, "n8" }, + { 6, 3, "n10" }, + { 7, 3, "n20" } +}; +static const unsigned int asn_MAP_ASN_RRC_n310_enum2value_12[] = { + 0, /* n1(0) */ + 6, /* n10(6) */ + 1, /* n2(1) */ + 7, /* n20(7) */ + 2, /* n3(2) */ + 3, /* n4(3) */ + 4, /* n6(4) */ + 5 /* n8(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n310_specs_12 = { + asn_MAP_ASN_RRC_n310_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n310_enum2value_12, /* 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_ASN_RRC_n310_tags_12[] = { + (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_ASN_RRC_n310_12 = { + "n310", + "n310", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n310_tags_12, + sizeof(asn_DEF_ASN_RRC_n310_tags_12) + /sizeof(asn_DEF_ASN_RRC_n310_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n310_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n310_tags_12) + /sizeof(asn_DEF_ASN_RRC_n310_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n310_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n310_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n311_value2enum_21[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" }, + { 4, 2, "n5" }, + { 5, 2, "n6" }, + { 6, 2, "n8" }, + { 7, 3, "n10" } +}; +static const unsigned int asn_MAP_ASN_RRC_n311_enum2value_21[] = { + 0, /* n1(0) */ + 7, /* n10(7) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3, /* n4(3) */ + 4, /* n5(4) */ + 5, /* n6(5) */ + 6 /* n8(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n311_specs_21 = { + asn_MAP_ASN_RRC_n311_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n311_enum2value_21, /* 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_ASN_RRC_n311_tags_21[] = { + (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_ASN_RRC_n311_21 = { + "n311", + "n311", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n311_tags_21, + sizeof(asn_DEF_ASN_RRC_n311_tags_21) + /sizeof(asn_DEF_ASN_RRC_n311_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n311_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n311_tags_21) + /sizeof(asn_DEF_ASN_RRC_n311_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n311_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n311_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t311_v1530_value2enum_32[] = { + { 0, 6, "ms1000" }, + { 1, 6, "ms3000" }, + { 2, 6, "ms5000" }, + { 3, 7, "ms10000" }, + { 4, 7, "ms15000" }, + { 5, 7, "ms20000" }, + { 6, 7, "ms30000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t311_v1530_enum2value_32[] = { + 0, /* ms1000(0) */ + 3, /* ms10000(3) */ + 4, /* ms15000(4) */ + 5, /* ms20000(5) */ + 1, /* ms3000(1) */ + 6, /* ms30000(6) */ + 2 /* ms5000(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t311_v1530_specs_32 = { + asn_MAP_ASN_RRC_t311_v1530_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t311_v1530_enum2value_32, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_t311_v1530_tags_32[] = { + (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_ASN_RRC_t311_v1530_32 = { + "t311-v1530", + "t311-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t311_v1530_tags_32, + sizeof(asn_DEF_ASN_RRC_t311_v1530_tags_32) + /sizeof(asn_DEF_ASN_RRC_t311_v1530_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t311_v1530_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t311_v1530_tags_32) + /sizeof(asn_DEF_ASN_RRC_t311_v1530_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t311_v1530_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t311_v1530_specs_32 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLF_TimersAndConstants__ext1, t311_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t311_v1530_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t311-v1530" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* t311-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_31 = { + sizeof(struct ASN_RRC_RLF_TimersAndConstants__ext1), + offsetof(struct ASN_RRC_RLF_TimersAndConstants__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_31, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_31 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_31, + sizeof(asn_DEF_ASN_RRC_ext1_tags_31) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_31[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_31) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_31[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_31, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RLF_TimersAndConstants_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLF_TimersAndConstants, t310), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t310_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t310" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLF_TimersAndConstants, n310), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n310_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n310" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RLF_TimersAndConstants, n311), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n311_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n311" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RLF_TimersAndConstants, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_RLF_TimersAndConstants_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RLF_TimersAndConstants_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* t310 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* n310 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* n311 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLF_TimersAndConstants_specs_1 = { + sizeof(struct ASN_RRC_RLF_TimersAndConstants), + offsetof(struct ASN_RRC_RLF_TimersAndConstants, _asn_ctx), + asn_MAP_ASN_RRC_RLF_TimersAndConstants_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RLF_TimersAndConstants_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLF_TimersAndConstants = { + "RLF-TimersAndConstants", + "RLF-TimersAndConstants", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1, + sizeof(asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1) + /sizeof(asn_DEF_ASN_RRC_RLF_TimersAndConstants_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RLF_TimersAndConstants_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RLF_TimersAndConstants_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.h b/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.h new file mode 100644 index 0000000..4ea7ba1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RLF-TimersAndConstants.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RLF_TimersAndConstants_H_ +#define _ASN_RRC_RLF_TimersAndConstants_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RLF_TimersAndConstants__t310 { + ASN_RRC_RLF_TimersAndConstants__t310_ms0 = 0, + ASN_RRC_RLF_TimersAndConstants__t310_ms50 = 1, + ASN_RRC_RLF_TimersAndConstants__t310_ms100 = 2, + ASN_RRC_RLF_TimersAndConstants__t310_ms200 = 3, + ASN_RRC_RLF_TimersAndConstants__t310_ms500 = 4, + ASN_RRC_RLF_TimersAndConstants__t310_ms1000 = 5, + ASN_RRC_RLF_TimersAndConstants__t310_ms2000 = 6, + ASN_RRC_RLF_TimersAndConstants__t310_ms4000 = 7, + ASN_RRC_RLF_TimersAndConstants__t310_ms6000 = 8 +} e_ASN_RRC_RLF_TimersAndConstants__t310; +typedef enum ASN_RRC_RLF_TimersAndConstants__n310 { + ASN_RRC_RLF_TimersAndConstants__n310_n1 = 0, + ASN_RRC_RLF_TimersAndConstants__n310_n2 = 1, + ASN_RRC_RLF_TimersAndConstants__n310_n3 = 2, + ASN_RRC_RLF_TimersAndConstants__n310_n4 = 3, + ASN_RRC_RLF_TimersAndConstants__n310_n6 = 4, + ASN_RRC_RLF_TimersAndConstants__n310_n8 = 5, + ASN_RRC_RLF_TimersAndConstants__n310_n10 = 6, + ASN_RRC_RLF_TimersAndConstants__n310_n20 = 7 +} e_ASN_RRC_RLF_TimersAndConstants__n310; +typedef enum ASN_RRC_RLF_TimersAndConstants__n311 { + ASN_RRC_RLF_TimersAndConstants__n311_n1 = 0, + ASN_RRC_RLF_TimersAndConstants__n311_n2 = 1, + ASN_RRC_RLF_TimersAndConstants__n311_n3 = 2, + ASN_RRC_RLF_TimersAndConstants__n311_n4 = 3, + ASN_RRC_RLF_TimersAndConstants__n311_n5 = 4, + ASN_RRC_RLF_TimersAndConstants__n311_n6 = 5, + ASN_RRC_RLF_TimersAndConstants__n311_n8 = 6, + ASN_RRC_RLF_TimersAndConstants__n311_n10 = 7 +} e_ASN_RRC_RLF_TimersAndConstants__n311; +typedef enum ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530 { + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms1000 = 0, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms3000 = 1, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms5000 = 2, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms10000 = 3, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms15000 = 4, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms20000 = 5, + ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530_ms30000 = 6 +} e_ASN_RRC_RLF_TimersAndConstants__ext1__t311_v1530; + +/* ASN_RRC_RLF-TimersAndConstants */ +typedef struct ASN_RRC_RLF_TimersAndConstants { + long t310; + long n310; + long n311; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_RLF_TimersAndConstants__ext1 { + long t311_v1530; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RLF_TimersAndConstants_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t310_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n310_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n311_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t311_v1530_32; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RLF_TimersAndConstants; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RLF_TimersAndConstants_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RLF_TimersAndConstants_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RLF_TimersAndConstants_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RNTI-Value.c b/src/asn/rrc/ASN_RRC_RNTI-Value.c new file mode 100644 index 0000000..b8ac1f0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RNTI-Value.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RNTI-Value.h" + +int +ASN_RRC_RNTI_Value_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_ASN_RRC_RNTI_Value_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_ASN_RRC_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RNTI_Value = { + "RNTI-Value", + "RNTI-Value", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RNTI_Value_tags_1, + sizeof(asn_DEF_ASN_RRC_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_RNTI_Value_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RNTI_Value_constr_1, ASN_RRC_RNTI_Value_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RNTI-Value.h b/src/asn/rrc/ASN_RRC_RNTI-Value.h new file mode 100644 index 0000000..656877d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RNTI-Value.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RNTI_Value_H_ +#define _ASN_RRC_RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RNTI-Value */ +typedef long ASN_RRC_RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RNTI_Value; +asn_struct_free_f ASN_RRC_RNTI_Value_free; +asn_struct_print_f ASN_RRC_RNTI_Value_print; +asn_constr_check_f ASN_RRC_RNTI_Value_constraint; +ber_type_decoder_f ASN_RRC_RNTI_Value_decode_ber; +der_type_encoder_f ASN_RRC_RNTI_Value_encode_der; +xer_type_decoder_f ASN_RRC_RNTI_Value_decode_xer; +xer_type_encoder_f ASN_RRC_RNTI_Value_encode_xer; +per_type_decoder_f ASN_RRC_RNTI_Value_decode_uper; +per_type_encoder_f ASN_RRC_RNTI_Value_encode_uper; +per_type_decoder_f ASN_RRC_RNTI_Value_decode_aper; +per_type_encoder_f ASN_RRC_RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RNTI_Value_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.c b/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.c new file mode 100644 index 0000000..fa92532 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRC-TransactionIdentifier.h" + +int +ASN_RRC_RRC_TransactionIdentifier_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_RRC_TransactionIdentifier_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 ber_tlv_tag_t asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRC_TransactionIdentifier = { + "RRC-TransactionIdentifier", + "RRC-TransactionIdentifier", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1, + sizeof(asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRC_TransactionIdentifier_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RRC_TransactionIdentifier_constr_1, ASN_RRC_RRC_TransactionIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.h b/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.h new file mode 100644 index 0000000..3dc7aa3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRC-TransactionIdentifier.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRC_TransactionIdentifier_H_ +#define _ASN_RRC_RRC_TransactionIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRC-TransactionIdentifier */ +typedef long ASN_RRC_RRC_TransactionIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RRC_TransactionIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRC_TransactionIdentifier; +asn_struct_free_f ASN_RRC_RRC_TransactionIdentifier_free; +asn_struct_print_f ASN_RRC_RRC_TransactionIdentifier_print; +asn_constr_check_f ASN_RRC_RRC_TransactionIdentifier_constraint; +ber_type_decoder_f ASN_RRC_RRC_TransactionIdentifier_decode_ber; +der_type_encoder_f ASN_RRC_RRC_TransactionIdentifier_encode_der; +xer_type_decoder_f ASN_RRC_RRC_TransactionIdentifier_decode_xer; +xer_type_encoder_f ASN_RRC_RRC_TransactionIdentifier_encode_xer; +per_type_decoder_f ASN_RRC_RRC_TransactionIdentifier_decode_uper; +per_type_encoder_f ASN_RRC_RRC_TransactionIdentifier_encode_uper; +per_type_decoder_f ASN_RRC_RRC_TransactionIdentifier_decode_aper; +per_type_encoder_f ASN_RRC_RRC_TransactionIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRC_TransactionIdentifier_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.c new file mode 100644 index 0000000..8a4a54f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfiguration-IEs.h" + +#include "ASN_RRC_RadioBearerConfig.h" +#include "ASN_RRC_MeasConfig.h" +#include "ASN_RRC_RRCReconfiguration-v1530-IEs.h" +static int +memb_ASN_RRC_secondaryCellGroup_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_secondaryCellGroup_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_IEs_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RRCReconfiguration_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCReconfiguration_IEs, secondaryCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_secondaryCellGroup_constr_3, memb_ASN_RRC_secondaryCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "secondaryCellGroup" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCReconfiguration_IEs, measConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfiguration_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfiguration_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfiguration_IEs_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfiguration_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioBearerConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* secondaryCellGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfiguration_IEs), + offsetof(struct ASN_RRC_RRCReconfiguration_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfiguration_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfiguration_IEs_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_IEs = { + "RRCReconfiguration-IEs", + "RRCReconfiguration-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfiguration_IEs_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfiguration_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.h new file mode 100644 index 0000000..0f5f15d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-IEs.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfiguration_IEs_H_ +#define _ASN_RRC_RRCReconfiguration_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_RadioBearerConfig; +struct ASN_RRC_MeasConfig; +struct ASN_RRC_RRCReconfiguration_v1530_IEs; + +/* ASN_RRC_RRCReconfiguration-IEs */ +typedef struct ASN_RRC_RRCReconfiguration_IEs { + struct ASN_RRC_RadioBearerConfig *radioBearerConfig; /* OPTIONAL */ + OCTET_STRING_t *secondaryCellGroup; /* OPTIONAL */ + struct ASN_RRC_MeasConfig *measConfig; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCReconfiguration_v1530_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfiguration_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfiguration_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.c new file mode 100644 index 0000000..dc0277a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.c @@ -0,0 +1,320 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfiguration-v1530-IEs.h" + +#include "ASN_RRC_MasterKeyUpdate.h" +#include "ASN_RRC_OtherConfig.h" +#include "ASN_RRC_RRCReconfiguration-v1540-IEs.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_masterCellGroup_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_dedicatedNAS_MessageList_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 <= 29)) { + /* 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 int +memb_ASN_RRC_dedicatedSIB1_Delivery_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_ASN_RRC_dedicatedSystemInformationDelivery_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_fullConfig_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dedicatedNAS_MessageList_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 29 } /* (SIZE(1..29)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_masterCellGroup_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dedicatedNAS_MessageList_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 29 } /* (SIZE(1..29)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dedicatedSIB1_Delivery_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dedicatedSystemInformationDelivery_constr_9 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_fullConfig_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_fullConfig_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fullConfig_specs_3 = { + asn_MAP_ASN_RRC_fullConfig_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fullConfig_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fullConfig_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_ASN_RRC_fullConfig_3 = { + "fullConfig", + "fullConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fullConfig_tags_3, + sizeof(asn_DEF_ASN_RRC_fullConfig_tags_3) + /sizeof(asn_DEF_ASN_RRC_fullConfig_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fullConfig_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fullConfig_tags_3) + /sizeof(asn_DEF_ASN_RRC_fullConfig_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fullConfig_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fullConfig_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dedicatedNAS_MessageList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dedicatedNAS_MessageList_specs_5 = { + sizeof(struct ASN_RRC_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList), + offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dedicatedNAS_MessageList_5 = { + "dedicatedNAS-MessageList", + "dedicatedNAS-MessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5, + sizeof(asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5) + /sizeof(asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5) + /sizeof(asn_DEF_ASN_RRC_dedicatedNAS_MessageList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dedicatedNAS_MessageList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dedicatedNAS_MessageList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dedicatedNAS_MessageList_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1530_IEs_1[] = { + { ATF_POINTER, 8, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_masterCellGroup_constr_2, memb_ASN_RRC_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, fullConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fullConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullConfig" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, dedicatedNAS_MessageList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_dedicatedNAS_MessageList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_dedicatedNAS_MessageList_constr_5, memb_ASN_RRC_dedicatedNAS_MessageList_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedNAS-MessageList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, masterKeyUpdate), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MasterKeyUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "masterKeyUpdate" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, dedicatedSIB1_Delivery), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dedicatedSIB1_Delivery_constr_8, memb_ASN_RRC_dedicatedSIB1_Delivery_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedSIB1-Delivery" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, dedicatedSystemInformationDelivery), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dedicatedSystemInformationDelivery_constr_9, memb_ASN_RRC_dedicatedSystemInformationDelivery_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedSystemInformationDelivery" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, otherConfig), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_OtherConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "otherConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfiguration_v1530_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfiguration_v1530_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* masterCellGroup */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fullConfig */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dedicatedNAS-MessageList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* masterKeyUpdate */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dedicatedSIB1-Delivery */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dedicatedSystemInformationDelivery */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* otherConfig */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1530_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfiguration_v1530_IEs), + offsetof(struct ASN_RRC_RRCReconfiguration_v1530_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfiguration_v1530_IEs_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfiguration_v1530_IEs_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs = { + "RRCReconfiguration-v1530-IEs", + "RRCReconfiguration-v1530-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfiguration_v1530_IEs_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfiguration_v1530_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.h new file mode 100644 index 0000000..75bb887 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1530-IEs.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfiguration_v1530_IEs_H_ +#define _ASN_RRC_RRCReconfiguration_v1530_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_DedicatedNAS-Message.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReconfiguration_v1530_IEs__fullConfig { + ASN_RRC_RRCReconfiguration_v1530_IEs__fullConfig_true = 0 +} e_ASN_RRC_RRCReconfiguration_v1530_IEs__fullConfig; + +/* Forward declarations */ +struct ASN_RRC_MasterKeyUpdate; +struct ASN_RRC_OtherConfig; +struct ASN_RRC_RRCReconfiguration_v1540_IEs; + +/* ASN_RRC_RRCReconfiguration-v1530-IEs */ +typedef struct ASN_RRC_RRCReconfiguration_v1530_IEs { + OCTET_STRING_t *masterCellGroup; /* OPTIONAL */ + long *fullConfig; /* OPTIONAL */ + struct ASN_RRC_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList { + A_SEQUENCE_OF(ASN_RRC_DedicatedNAS_Message_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dedicatedNAS_MessageList; + struct ASN_RRC_MasterKeyUpdate *masterKeyUpdate; /* OPTIONAL */ + OCTET_STRING_t *dedicatedSIB1_Delivery; /* OPTIONAL */ + OCTET_STRING_t *dedicatedSystemInformationDelivery; /* OPTIONAL */ + struct ASN_RRC_OtherConfig *otherConfig; /* OPTIONAL */ + struct ASN_RRC_RRCReconfiguration_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfiguration_v1530_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fullConfig_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1530_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1530_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1530_IEs_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfiguration_v1530_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.c new file mode 100644 index 0000000..411d5c7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfiguration-v1540-IEs.h" + +#include "ASN_RRC_OtherConfig-v1540.h" +#include "ASN_RRC_RRCReconfiguration-v1560-IEs.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1540_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfiguration_v1540_IEs, otherConfig_v1540), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_OtherConfig_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "otherConfig-v1540" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfiguration_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfiguration_v1540_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfiguration_v1540_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* otherConfig-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1540_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfiguration_v1540_IEs), + offsetof(struct ASN_RRC_RRCReconfiguration_v1540_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfiguration_v1540_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfiguration_v1540_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs = { + "RRCReconfiguration-v1540-IEs", + "RRCReconfiguration-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfiguration_v1540_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfiguration_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.h new file mode 100644 index 0000000..98231c8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1540-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfiguration_v1540_IEs_H_ +#define _ASN_RRC_RRCReconfiguration_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_OtherConfig_v1540; +struct ASN_RRC_RRCReconfiguration_v1560_IEs; + +/* ASN_RRC_RRCReconfiguration-v1540-IEs */ +typedef struct ASN_RRC_RRCReconfiguration_v1540_IEs { + struct ASN_RRC_OtherConfig_v1540 *otherConfig_v1540; /* OPTIONAL */ + struct ASN_RRC_RRCReconfiguration_v1560_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfiguration_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1540_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfiguration_v1540_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.c new file mode 100644 index 0000000..c4caec6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfiguration-v1560-IEs.h" + +#include "ASN_RRC_SetupRelease.h" +static int +memb_ASN_RRC_radioBearerConfig2_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_radioBearerConfig2_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 = { + sizeof(struct ASN_RRC_RRCReconfiguration_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_5 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1560_IEs_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs, mrdc_SecondaryCellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-SecondaryCellGroupConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs, radioBearerConfig2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_radioBearerConfig2_constr_3, memb_ASN_RRC_radioBearerConfig2_constraint_1 }, + 0, 0, /* No default value */ + "radioBearerConfig2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs, sk_Counter), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SK_Counter, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sk-Counter" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfiguration_v1560_IEs_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfiguration_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mrdc-SecondaryCellGroupConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* radioBearerConfig2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sk-Counter */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfiguration_v1560_IEs), + offsetof(struct ASN_RRC_RRCReconfiguration_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfiguration_v1560_IEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfiguration_v1560_IEs_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs = { + "RRCReconfiguration-v1560-IEs", + "RRCReconfiguration-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfiguration_v1560_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfiguration_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.h new file mode 100644 index 0000000..96c76b4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration-v1560-IEs.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfiguration_v1560_IEs_H_ +#define _ASN_RRC_RRCReconfiguration_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SK-Counter.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig; + +/* ASN_RRC_RRCReconfiguration-v1560-IEs */ +typedef struct ASN_RRC_RRCReconfiguration_v1560_IEs { + struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig *mrdc_SecondaryCellGroupConfig; /* OPTIONAL */ + OCTET_STRING_t *radioBearerConfig2; /* OPTIONAL */ + ASN_RRC_SK_Counter_t *sk_Counter; /* OPTIONAL */ + struct ASN_RRC_RRCReconfiguration_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfiguration_v1560_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration_v1560_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_v1560_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_v1560_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfiguration_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration.c b/src/asn/rrc/ASN_RRC_RRCReconfiguration.c new file mode 100644 index 0000000..387fec4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfiguration.h" + +#include "ASN_RRC_RRCReconfiguration-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCReconfiguration__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCReconfiguration__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReconfiguration__criticalExtensions, choice.rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfiguration_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReconfiguration__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReconfiguration */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCReconfiguration__criticalExtensions), + offsetof(struct ASN_RRC_RRCReconfiguration__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCReconfiguration__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCReconfiguration__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfiguration, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfiguration, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfiguration), + offsetof(struct ASN_RRC_RRCReconfiguration, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfiguration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration = { + "RRCReconfiguration", + "RRCReconfiguration", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfiguration_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfiguration_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfiguration.h b/src/asn/rrc/ASN_RRC_RRCReconfiguration.h new file mode 100644 index 0000000..638f5d8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfiguration.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfiguration_H_ +#define _ASN_RRC_RRCReconfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReconfiguration__criticalExtensions_PR { + ASN_RRC_RRCReconfiguration__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration, + ASN_RRC_RRCReconfiguration__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCReconfiguration__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReconfiguration_IEs; + +/* ASN_RRC_RRCReconfiguration */ +typedef struct ASN_RRC_RRCReconfiguration { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCReconfiguration__criticalExtensions { + ASN_RRC_RRCReconfiguration__criticalExtensions_PR present; + union ASN_RRC_RRCReconfiguration__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCReconfiguration_IEs *rrcReconfiguration; + struct ASN_RRC_RRCReconfiguration__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfiguration_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.c new file mode 100644 index 0000000..ea226f7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfigurationComplete-IEs.h" + +#include "ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfigurationComplete_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfigurationComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfigurationComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfigurationComplete_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete_IEs), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfigurationComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfigurationComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs = { + "RRCReconfigurationComplete-IEs", + "RRCReconfigurationComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfigurationComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfigurationComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.h new file mode 100644 index 0000000..746cee0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfigurationComplete_IEs_H_ +#define _ASN_RRC_RRCReconfigurationComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs; + +/* ASN_RRC_RRCReconfigurationComplete-IEs */ +typedef struct ASN_RRC_RRCReconfigurationComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfigurationComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfigurationComplete_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.c new file mode 100644 index 0000000..de408e7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h" + +#include "ASN_RRC_UplinkTxDirectCurrentList.h" +#include "ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs, uplinkTxDirectCurrentList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkTxDirectCurrentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkTxDirectCurrentList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uplinkTxDirectCurrentList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs = { + "RRCReconfigurationComplete-v1530-IEs", + "RRCReconfigurationComplete-v1530-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h new file mode 100644 index 0000000..ebbd841 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1530-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfigurationComplete_v1530_IEs_H_ +#define _ASN_RRC_RRCReconfigurationComplete_v1530_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UplinkTxDirectCurrentList; +struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs; + +/* ASN_RRC_RRCReconfigurationComplete-v1530-IEs */ +typedef struct ASN_RRC_RRCReconfigurationComplete_v1530_IEs { + struct ASN_RRC_UplinkTxDirectCurrentList *uplinkTxDirectCurrentList; /* OPTIONAL */ + struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfigurationComplete_v1530_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1530_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1530_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfigurationComplete_v1530_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.c b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.c new file mode 100644 index 0000000..f1341ff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.c @@ -0,0 +1,144 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_scg_Response_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_TYPE_member_t asn_MBR_ASN_RRC_scg_Response_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response, choice.nr_SCG_Response), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-SCG-Response" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response, choice.eutra_SCG_Response), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-SCG-Response" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_scg_Response_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr-SCG-Response */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra-SCG-Response */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_scg_Response_specs_2 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response, _asn_ctx), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response, present), + sizeof(((struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response *)0)->present), + asn_MAP_ASN_RRC_scg_Response_tag2el_2, + 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_ASN_RRC_scg_Response_2 = { + "scg-Response", + "scg-Response", + &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_ASN_RRC_scg_Response_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_scg_Response_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_scg_Response_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_5 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs, scg_Response), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scg_Response_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scg-Response" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scg-Response */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs), + offsetof(struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs = { + "RRCReconfigurationComplete-v1560-IEs", + "RRCReconfigurationComplete-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h new file mode 100644 index 0000000..e2da6a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete-v1560-IEs.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfigurationComplete_v1560_IEs_H_ +#define _ASN_RRC_RRCReconfigurationComplete_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR { + ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR_nr_SCG_Response, + ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR_eutra_SCG_Response +} ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR; + +/* ASN_RRC_RRCReconfigurationComplete-v1560-IEs */ +typedef struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs { + struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response { + ASN_RRC_RRCReconfigurationComplete_v1560_IEs__scg_Response_PR present; + union ASN_RRC_RRCReconfigurationComplete_v1560_IEs__ASN_RRC_scg_Response_u { + OCTET_STRING_t nr_SCG_Response; + OCTET_STRING_t eutra_SCG_Response; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *scg_Response; + struct ASN_RRC_RRCReconfigurationComplete_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfigurationComplete_v1560_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_v1560_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_v1560_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfigurationComplete_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.c b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.c new file mode 100644 index 0000000..76f7352 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReconfigurationComplete.h" + +#include "ASN_RRC_RRCReconfigurationComplete-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions, choice.rrcReconfigurationComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfigurationComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfigurationComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReconfigurationComplete */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions), + offsetof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReconfigurationComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReconfigurationComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_specs_1 = { + sizeof(struct ASN_RRC_RRCReconfigurationComplete), + offsetof(struct ASN_RRC_RRCReconfigurationComplete, _asn_ctx), + asn_MAP_ASN_RRC_RRCReconfigurationComplete_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete = { + "RRCReconfigurationComplete", + "RRCReconfigurationComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReconfigurationComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReconfigurationComplete_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReconfigurationComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.h b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.h new file mode 100644 index 0000000..bda7e36 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReconfigurationComplete.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReconfigurationComplete_H_ +#define _ASN_RRC_RRCReconfigurationComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR { + ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR_rrcReconfigurationComplete, + ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReconfigurationComplete_IEs; + +/* ASN_RRC_RRCReconfigurationComplete */ +typedef struct ASN_RRC_RRCReconfigurationComplete { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions { + ASN_RRC_RRCReconfigurationComplete__criticalExtensions_PR present; + union ASN_RRC_RRCReconfigurationComplete__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCReconfigurationComplete_IEs *rrcReconfigurationComplete; + struct ASN_RRC_RRCReconfigurationComplete__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReconfigurationComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReconfigurationComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReconfigurationComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReconfigurationComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReconfigurationComplete_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.c b/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.c new file mode 100644 index 0000000..b76fa01 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishment-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_RRCReestablishment_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCReestablishment_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishment_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishment_IEs, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReestablishment_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReestablishment_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReestablishment_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishment_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nextHopChainingCount */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishment_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishment_IEs), + offsetof(struct ASN_RRC_RRCReestablishment_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishment_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReestablishment_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishment_IEs = { + "RRCReestablishment-IEs", + "RRCReestablishment-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishment_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishment_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishment_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.h b/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.h new file mode 100644 index 0000000..23602ed --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishment-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishment_IEs_H_ +#define _ASN_RRC_RRCReestablishment_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_NextHopChainingCount.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCReestablishment-IEs */ +typedef struct ASN_RRC_RRCReestablishment_IEs { + ASN_RRC_NextHopChainingCount_t nextHopChainingCount; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCReestablishment_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishment_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishment_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishment_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishment_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishment_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishment.c b/src/asn/rrc/ASN_RRC_RRCReestablishment.c new file mode 100644 index 0000000..465de20 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishment.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishment.h" + +#include "ASN_RRC_RRCReestablishment-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCReestablishment__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCReestablishment__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReestablishment__criticalExtensions, choice.rrcReestablishment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishment_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishment" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReestablishment__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReestablishment */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCReestablishment__criticalExtensions), + offsetof(struct ASN_RRC_RRCReestablishment__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCReestablishment__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCReestablishment__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishment, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishment, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishment_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishment_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishment), + offsetof(struct ASN_RRC_RRCReestablishment, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishment_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishment = { + "RRCReestablishment", + "RRCReestablishment", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishment_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishment_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishment_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishment_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishment_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishment_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishment_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishment.h b/src/asn/rrc/ASN_RRC_RRCReestablishment.h new file mode 100644 index 0000000..f553bf0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishment.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishment_H_ +#define _ASN_RRC_RRCReestablishment_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReestablishment__criticalExtensions_PR { + ASN_RRC_RRCReestablishment__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReestablishment__criticalExtensions_PR_rrcReestablishment, + ASN_RRC_RRCReestablishment__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCReestablishment__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReestablishment_IEs; + +/* ASN_RRC_RRCReestablishment */ +typedef struct ASN_RRC_RRCReestablishment { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCReestablishment__criticalExtensions { + ASN_RRC_RRCReestablishment__criticalExtensions_PR present; + union ASN_RRC_RRCReestablishment__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCReestablishment_IEs *rrcReestablishment; + struct ASN_RRC_RRCReestablishment__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishment; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishment_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishment_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.c b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.c new file mode 100644 index 0000000..05c2574 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishmentComplete-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_RRCReestablishmentComplete_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCReestablishmentComplete_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReestablishmentComplete_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReestablishmentComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReestablishmentComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishmentComplete_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentComplete_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishmentComplete_IEs), + offsetof(struct ASN_RRC_RRCReestablishmentComplete_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishmentComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReestablishmentComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs = { + "RRCReestablishmentComplete-IEs", + "RRCReestablishmentComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishmentComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishmentComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.h b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.h new file mode 100644 index 0000000..99f0cbc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishmentComplete_IEs_H_ +#define _ASN_RRC_RRCReestablishmentComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCReestablishmentComplete-IEs */ +typedef struct ASN_RRC_RRCReestablishmentComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCReestablishmentComplete_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishmentComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishmentComplete_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.c b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.c new file mode 100644 index 0000000..27611ce --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishmentComplete.h" + +#include "ASN_RRC_RRCReestablishmentComplete-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions, choice.rrcReestablishmentComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishmentComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReestablishmentComplete */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions), + offsetof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishmentComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentComplete_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishmentComplete), + offsetof(struct ASN_RRC_RRCReestablishmentComplete, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishmentComplete_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentComplete = { + "RRCReestablishmentComplete", + "RRCReestablishmentComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishmentComplete_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishmentComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.h b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.h new file mode 100644 index 0000000..eb07336 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentComplete.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishmentComplete_H_ +#define _ASN_RRC_RRCReestablishmentComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR { + ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR_rrcReestablishmentComplete, + ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReestablishmentComplete_IEs; + +/* ASN_RRC_RRCReestablishmentComplete */ +typedef struct ASN_RRC_RRCReestablishmentComplete { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions { + ASN_RRC_RRCReestablishmentComplete__criticalExtensions_PR present; + union ASN_RRC_RRCReestablishmentComplete__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCReestablishmentComplete_IEs *rrcReestablishmentComplete; + struct ASN_RRC_RRCReestablishmentComplete__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishmentComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishmentComplete_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.c b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.c new file mode 100644 index 0000000..74b0c79 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishmentRequest-IEs.h" + +static int +memb_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_spare_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentRequest_IEs, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReestabUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentRequest_IEs, reestablishmentCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReestablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_4, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishmentRequest_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reestablishmentCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentRequest_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishmentRequest_IEs), + offsetof(struct ASN_RRC_RRCReestablishmentRequest_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishmentRequest_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_ASN_RRC_RRCReestablishmentRequest_IEs = { + "RRCReestablishmentRequest-IEs", + "RRCReestablishmentRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishmentRequest_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishmentRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.h b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.h new file mode 100644 index 0000000..341998d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishmentRequest_IEs_H_ +#define _ASN_RRC_RRCReestablishmentRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ReestabUE-Identity.h" +#include "ASN_RRC_ReestablishmentCause.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCReestablishmentRequest-IEs */ +typedef struct ASN_RRC_RRCReestablishmentRequest_IEs { + ASN_RRC_ReestabUE_Identity_t ue_Identity; + ASN_RRC_ReestablishmentCause_t reestablishmentCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishmentRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentRequest_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishmentRequest_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.c b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.c new file mode 100644 index 0000000..a7fe4f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReestablishmentRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReestablishmentRequest, rrcReestablishmentRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishmentRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReestablishmentRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcReestablishmentRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentRequest_specs_1 = { + sizeof(struct ASN_RRC_RRCReestablishmentRequest), + offsetof(struct ASN_RRC_RRCReestablishmentRequest, _asn_ctx), + asn_MAP_ASN_RRC_RRCReestablishmentRequest_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_ASN_RRC_RRCReestablishmentRequest = { + "RRCReestablishmentRequest", + "RRCReestablishmentRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReestablishmentRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReestablishmentRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReestablishmentRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.h b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.h new file mode 100644 index 0000000..25f8ed2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReestablishmentRequest.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReestablishmentRequest_H_ +#define _ASN_RRC_RRCReestablishmentRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRCReestablishmentRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCReestablishmentRequest */ +typedef struct ASN_RRC_RRCReestablishmentRequest { + ASN_RRC_RRCReestablishmentRequest_IEs_t rrcReestablishmentRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReestablishmentRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReestablishmentRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReestablishmentRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReestablishmentRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReestablishmentRequest_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReject-IEs.c b/src/asn/rrc/ASN_RRC_RRCReject-IEs.c new file mode 100644 index 0000000..4451257 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReject-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReject-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_RRCReject_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCReject_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReject_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCReject_IEs, waitTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RejectWaitTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitTime" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCReject_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCReject_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCReject_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReject_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReject_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* waitTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReject_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCReject_IEs), + offsetof(struct ASN_RRC_RRCReject_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCReject_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCReject_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReject_IEs = { + "RRCReject-IEs", + "RRCReject-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReject_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReject_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReject_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReject_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReject_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReject_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReject_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReject_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReject-IEs.h b/src/asn/rrc/ASN_RRC_RRCReject-IEs.h new file mode 100644 index 0000000..8c7c15f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReject-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReject_IEs_H_ +#define _ASN_RRC_RRCReject_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RejectWaitTime.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCReject-IEs */ +typedef struct ASN_RRC_RRCReject_IEs { + ASN_RRC_RejectWaitTime_t *waitTime; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCReject_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReject_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReject_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReject_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReject_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReject_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCReject.c b/src/asn/rrc/ASN_RRC_RRCReject.c new file mode 100644 index 0000000..58a3724 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReject.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCReject.h" + +#include "ASN_RRC_RRCReject-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_RRCReject__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCReject__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReject__criticalExtensions, choice.rrcReject), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReject_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReject" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCReject__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcReject */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_RRCReject__criticalExtensions), + offsetof(struct ASN_RRC_RRCReject__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCReject__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCReject__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReject_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCReject, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCReject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCReject_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReject_specs_1 = { + sizeof(struct ASN_RRC_RRCReject), + offsetof(struct ASN_RRC_RRCReject, _asn_ctx), + asn_MAP_ASN_RRC_RRCReject_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_ASN_RRC_RRCReject = { + "RRCReject", + "RRCReject", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCReject_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCReject_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReject_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCReject_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCReject_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCReject_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCReject_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCReject_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCReject.h b/src/asn/rrc/ASN_RRC_RRCReject.h new file mode 100644 index 0000000..44d4d6d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCReject.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCReject_H_ +#define _ASN_RRC_RRCReject_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCReject__criticalExtensions_PR { + ASN_RRC_RRCReject__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCReject__criticalExtensions_PR_rrcReject, + ASN_RRC_RRCReject__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCReject__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCReject_IEs; + +/* ASN_RRC_RRCReject */ +typedef struct ASN_RRC_RRCReject { + struct ASN_RRC_RRCReject__criticalExtensions { + ASN_RRC_RRCReject__criticalExtensions_PR present; + union ASN_RRC_RRCReject__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCReject_IEs *rrcReject; + struct ASN_RRC_RRCReject__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCReject_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCReject; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCReject_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCReject_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCReject_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCRelease-IEs.c b/src/asn/rrc/ASN_RRC_RRCRelease-IEs.c new file mode 100644 index 0000000..176f52f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease-IEs.c @@ -0,0 +1,255 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCRelease-IEs.h" + +#include "ASN_RRC_RedirectedCarrierInfo.h" +#include "ASN_RRC_CellReselectionPriorities.h" +#include "ASN_RRC_SuspendConfig.h" +#include "ASN_RRC_RRCRelease-v1540-IEs.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_ASN_RRC_deprioritisationType_constr_6 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_type_ASN_RRC_deprioritisationTimer_constr_9 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_ASN_RRC_deprioritisationType_value2enum_6[] = { + { 0, 9, "frequency" }, + { 1, 2, "nr" } +}; +static const unsigned int asn_MAP_ASN_RRC_deprioritisationType_enum2value_6[] = { + 0, /* frequency(0) */ + 1 /* nr(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_deprioritisationType_specs_6 = { + asn_MAP_ASN_RRC_deprioritisationType_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_deprioritisationType_enum2value_6, /* 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_ASN_RRC_deprioritisationType_tags_6[] = { + (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_ASN_RRC_deprioritisationType_6 = { + "deprioritisationType", + "deprioritisationType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_deprioritisationType_tags_6, + sizeof(asn_DEF_ASN_RRC_deprioritisationType_tags_6) + /sizeof(asn_DEF_ASN_RRC_deprioritisationType_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_deprioritisationType_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_deprioritisationType_tags_6) + /sizeof(asn_DEF_ASN_RRC_deprioritisationType_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_deprioritisationType_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_deprioritisationType_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_deprioritisationTimer_value2enum_9[] = { + { 0, 4, "min5" }, + { 1, 5, "min10" }, + { 2, 5, "min15" }, + { 3, 5, "min30" } +}; +static const unsigned int asn_MAP_ASN_RRC_deprioritisationTimer_enum2value_9[] = { + 1, /* min10(1) */ + 2, /* min15(2) */ + 3, /* min30(3) */ + 0 /* min5(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_deprioritisationTimer_specs_9 = { + asn_MAP_ASN_RRC_deprioritisationTimer_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_deprioritisationTimer_enum2value_9, /* 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_ASN_RRC_deprioritisationTimer_tags_9[] = { + (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_ASN_RRC_deprioritisationTimer_9 = { + "deprioritisationTimer", + "deprioritisationTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_deprioritisationTimer_tags_9, + sizeof(asn_DEF_ASN_RRC_deprioritisationTimer_tags_9) + /sizeof(asn_DEF_ASN_RRC_deprioritisationTimer_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_deprioritisationTimer_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_deprioritisationTimer_tags_9) + /sizeof(asn_DEF_ASN_RRC_deprioritisationTimer_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_deprioritisationTimer_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_deprioritisationTimer_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_deprioritisationReq_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCRelease_IEs__deprioritisationReq, deprioritisationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_deprioritisationType_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCRelease_IEs__deprioritisationReq, deprioritisationTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_deprioritisationTimer_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_deprioritisationReq_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_deprioritisationReq_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* deprioritisationType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* deprioritisationTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_deprioritisationReq_specs_5 = { + sizeof(struct ASN_RRC_RRCRelease_IEs__deprioritisationReq), + offsetof(struct ASN_RRC_RRCRelease_IEs__deprioritisationReq, _asn_ctx), + asn_MAP_ASN_RRC_deprioritisationReq_tag2el_5, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_deprioritisationReq_5 = { + "deprioritisationReq", + "deprioritisationReq", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_deprioritisationReq_tags_5, + sizeof(asn_DEF_ASN_RRC_deprioritisationReq_tags_5) + /sizeof(asn_DEF_ASN_RRC_deprioritisationReq_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_deprioritisationReq_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_deprioritisationReq_tags_5) + /sizeof(asn_DEF_ASN_RRC_deprioritisationReq_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_deprioritisationReq_5, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_deprioritisationReq_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_IEs_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_RRCRelease_IEs, redirectedCarrierInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RedirectedCarrierInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "redirectedCarrierInfo" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RRCRelease_IEs, cellReselectionPriorities), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriorities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriorities" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCRelease_IEs, suspendConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SuspendConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "suspendConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCRelease_IEs, deprioritisationReq), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_deprioritisationReq_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationReq" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCRelease_IEs, lateNonCriticalExtension), + (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 */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCRelease_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCRelease_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCRelease_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCRelease_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* redirectedCarrierInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellReselectionPriorities */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* suspendConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* deprioritisationReq */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCRelease_IEs), + offsetof(struct ASN_RRC_RRCRelease_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCRelease_IEs_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCRelease_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease_IEs = { + "RRCRelease-IEs", + "RRCRelease-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCRelease_IEs_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_RRCRelease_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCRelease-IEs.h b/src/asn/rrc/ASN_RRC_RRCRelease-IEs.h new file mode 100644 index 0000000..cfec189 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease-IEs.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCRelease_IEs_H_ +#define _ASN_RRC_RRCRelease_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationType { + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationType_frequency = 0, + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationType_nr = 1 +} e_ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationType; +typedef enum ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer { + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min5 = 0, + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min10 = 1, + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min15 = 2, + ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min30 = 3 +} e_ASN_RRC_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer; + +/* Forward declarations */ +struct ASN_RRC_RedirectedCarrierInfo; +struct ASN_RRC_CellReselectionPriorities; +struct ASN_RRC_SuspendConfig; +struct ASN_RRC_RRCRelease_v1540_IEs; + +/* ASN_RRC_RRCRelease-IEs */ +typedef struct ASN_RRC_RRCRelease_IEs { + struct ASN_RRC_RedirectedCarrierInfo *redirectedCarrierInfo; /* OPTIONAL */ + struct ASN_RRC_CellReselectionPriorities *cellReselectionPriorities; /* OPTIONAL */ + struct ASN_RRC_SuspendConfig *suspendConfig; /* OPTIONAL */ + struct ASN_RRC_RRCRelease_IEs__deprioritisationReq { + long deprioritisationType; + long deprioritisationTimer; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *deprioritisationReq; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCRelease_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCRelease_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_deprioritisationType_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_deprioritisationTimer_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_IEs_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCRelease_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.c b/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.c new file mode 100644 index 0000000..4dd6a9f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCRelease-v1540-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_RRCRelease_v1540_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCRelease_v1540_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_v1540_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCRelease_v1540_IEs, waitTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RejectWaitTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitTime" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCRelease_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCRelease_v1540_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCRelease_v1540_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* waitTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_v1540_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCRelease_v1540_IEs), + offsetof(struct ASN_RRC_RRCRelease_v1540_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCRelease_v1540_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCRelease_v1540_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease_v1540_IEs = { + "RRCRelease-v1540-IEs", + "RRCRelease-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCRelease_v1540_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCRelease_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.h b/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.h new file mode 100644 index 0000000..34baeb0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease-v1540-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCRelease_v1540_IEs_H_ +#define _ASN_RRC_RRCRelease_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RejectWaitTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCRelease-v1540-IEs */ +typedef struct ASN_RRC_RRCRelease_v1540_IEs { + ASN_RRC_RejectWaitTime_t *waitTime; /* OPTIONAL */ + struct ASN_RRC_RRCRelease_v1540_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCRelease_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_v1540_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCRelease_v1540_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCRelease.c b/src/asn/rrc/ASN_RRC_RRCRelease.c new file mode 100644 index 0000000..cb58975 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCRelease.h" + +#include "ASN_RRC_RRCRelease-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCRelease__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCRelease__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCRelease__criticalExtensions, choice.rrcRelease), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCRelease_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcRelease" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCRelease__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcRelease */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCRelease__criticalExtensions), + offsetof(struct ASN_RRC_RRCRelease__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCRelease__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCRelease__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCRelease, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCRelease, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCRelease_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCRelease_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_specs_1 = { + sizeof(struct ASN_RRC_RRCRelease), + offsetof(struct ASN_RRC_RRCRelease, _asn_ctx), + asn_MAP_ASN_RRC_RRCRelease_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease = { + "RRCRelease", + "RRCRelease", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCRelease_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCRelease_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCRelease_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCRelease_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCRelease_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCRelease_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCRelease_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCRelease.h b/src/asn/rrc/ASN_RRC_RRCRelease.h new file mode 100644 index 0000000..bd2b362 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCRelease.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCRelease_H_ +#define _ASN_RRC_RRCRelease_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCRelease__criticalExtensions_PR { + ASN_RRC_RRCRelease__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCRelease__criticalExtensions_PR_rrcRelease, + ASN_RRC_RRCRelease__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCRelease__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCRelease_IEs; + +/* ASN_RRC_RRCRelease */ +typedef struct ASN_RRC_RRCRelease { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCRelease__criticalExtensions { + ASN_RRC_RRCRelease__criticalExtensions_PR present; + union ASN_RRC_RRCRelease__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCRelease_IEs *rrcRelease; + struct ASN_RRC_RRCRelease__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCRelease_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCRelease; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCRelease_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCRelease_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCRelease_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResume-IEs.c b/src/asn/rrc/ASN_RRC_RRCResume-IEs.c new file mode 100644 index 0000000..62542f2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume-IEs.c @@ -0,0 +1,175 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResume-IEs.h" + +#include "ASN_RRC_RadioBearerConfig.h" +#include "ASN_RRC_MeasConfig.h" +#include "ASN_RRC_RRCResume-v1560-IEs.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_masterCellGroup_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_fullConfig_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_masterCellGroup_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_fullConfig_value2enum_5[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_fullConfig_enum2value_5[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fullConfig_specs_5 = { + asn_MAP_ASN_RRC_fullConfig_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fullConfig_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_fullConfig_tags_5[] = { + (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_ASN_RRC_fullConfig_5 = { + "fullConfig", + "fullConfig", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fullConfig_tags_5, + sizeof(asn_DEF_ASN_RRC_fullConfig_tags_5) + /sizeof(asn_DEF_ASN_RRC_fullConfig_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fullConfig_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fullConfig_tags_5) + /sizeof(asn_DEF_ASN_RRC_fullConfig_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fullConfig_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fullConfig_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_IEs_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_RRCResume_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RRCResume_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_masterCellGroup_constr_3, memb_ASN_RRC_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCResume_IEs, measConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCResume_IEs, fullConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fullConfig_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCResume_IEs, lateNonCriticalExtension), + (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 */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCResume_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResume_v1560_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCResume_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResume_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResume_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioBearerConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* masterCellGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* measConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fullConfig */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCResume_IEs), + offsetof(struct ASN_RRC_RRCResume_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCResume_IEs_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCResume_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume_IEs = { + "RRCResume-IEs", + "RRCResume-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResume_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResume_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResume_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResume_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResume_IEs_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResume_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResume-IEs.h b/src/asn/rrc/ASN_RRC_RRCResume-IEs.h new file mode 100644 index 0000000..3fb302a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume-IEs.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResume_IEs_H_ +#define _ASN_RRC_RRCResume_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCResume_IEs__fullConfig { + ASN_RRC_RRCResume_IEs__fullConfig_true = 0 +} e_ASN_RRC_RRCResume_IEs__fullConfig; + +/* Forward declarations */ +struct ASN_RRC_RadioBearerConfig; +struct ASN_RRC_MeasConfig; +struct ASN_RRC_RRCResume_v1560_IEs; + +/* ASN_RRC_RRCResume-IEs */ +typedef struct ASN_RRC_RRCResume_IEs { + struct ASN_RRC_RadioBearerConfig *radioBearerConfig; /* OPTIONAL */ + OCTET_STRING_t *masterCellGroup; /* OPTIONAL */ + struct ASN_RRC_MeasConfig *measConfig; /* OPTIONAL */ + long *fullConfig; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCResume_v1560_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResume_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fullConfig_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_IEs_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResume_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.c b/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.c new file mode 100644 index 0000000..7b7b736 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResume-v1560-IEs.h" + +static int +memb_ASN_RRC_radioBearerConfig2_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_radioBearerConfig2_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_RRCResume_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCResume_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_v1560_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCResume_v1560_IEs, radioBearerConfig2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_radioBearerConfig2_constr_2, memb_ASN_RRC_radioBearerConfig2_constraint_1 }, + 0, 0, /* No default value */ + "radioBearerConfig2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCResume_v1560_IEs, sk_Counter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SK_Counter, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sk-Counter" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCResume_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCResume_v1560_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResume_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioBearerConfig2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sk-Counter */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCResume_v1560_IEs), + offsetof(struct ASN_RRC_RRCResume_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCResume_v1560_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCResume_v1560_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume_v1560_IEs = { + "RRCResume-v1560-IEs", + "RRCResume-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResume_v1560_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResume_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.h b/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.h new file mode 100644 index 0000000..0f39dbd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume-v1560-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResume_v1560_IEs_H_ +#define _ASN_RRC_RRCResume_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SK-Counter.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCResume-v1560-IEs */ +typedef struct ASN_RRC_RRCResume_v1560_IEs { + OCTET_STRING_t *radioBearerConfig2; /* OPTIONAL */ + ASN_RRC_SK_Counter_t *sk_Counter; /* OPTIONAL */ + struct ASN_RRC_RRCResume_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResume_v1560_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume_v1560_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_v1560_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_v1560_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResume_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResume.c b/src/asn/rrc/ASN_RRC_RRCResume.c new file mode 100644 index 0000000..a7c66e6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResume.h" + +#include "ASN_RRC_RRCResume-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCResume__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCResume__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCResume__criticalExtensions, choice.rrcResume), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResume_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResume" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCResume__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcResume */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCResume__criticalExtensions), + offsetof(struct ASN_RRC_RRCResume__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCResume__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCResume__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResume, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResume, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResume_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResume_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_specs_1 = { + sizeof(struct ASN_RRC_RRCResume), + offsetof(struct ASN_RRC_RRCResume, _asn_ctx), + asn_MAP_ASN_RRC_RRCResume_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume = { + "RRCResume", + "RRCResume", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResume_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResume_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResume_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResume_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResume_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResume_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResume_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResume.h b/src/asn/rrc/ASN_RRC_RRCResume.h new file mode 100644 index 0000000..5247dee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResume.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResume_H_ +#define _ASN_RRC_RRCResume_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCResume__criticalExtensions_PR { + ASN_RRC_RRCResume__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCResume__criticalExtensions_PR_rrcResume, + ASN_RRC_RRCResume__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCResume__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCResume_IEs; + +/* ASN_RRC_RRCResume */ +typedef struct ASN_RRC_RRCResume { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCResume__criticalExtensions { + ASN_RRC_RRCResume__criticalExtensions_PR present; + union ASN_RRC_RRCResume__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCResume_IEs *rrcResume; + struct ASN_RRC_RRCResume__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResume_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResume; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResume_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResume_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResume_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.c b/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.c new file mode 100644 index 0000000..4267adc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.c @@ -0,0 +1,151 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeComplete-IEs.h" + +#include "ASN_RRC_UplinkTxDirectCurrentList.h" +static int +memb_ASN_RRC_selectedPLMN_Identity_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 <= 12)) { + /* Constraint 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_ASN_RRC_selectedPLMN_Identity_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 = { + sizeof(struct ASN_RRC_RRCResumeComplete_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCResumeComplete_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeComplete_IEs_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RRCResumeComplete_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RRCResumeComplete_IEs, selectedPLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_selectedPLMN_Identity_constr_3, memb_ASN_RRC_selectedPLMN_Identity_constraint_1 }, + 0, 0, /* No default value */ + "selectedPLMN-Identity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCResumeComplete_IEs, uplinkTxDirectCurrentList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkTxDirectCurrentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkTxDirectCurrentList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCResumeComplete_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCResumeComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCResumeComplete_IEs_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeComplete_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dedicatedNAS-Message */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* selectedPLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uplinkTxDirectCurrentList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeComplete_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeComplete_IEs), + offsetof(struct ASN_RRC_RRCResumeComplete_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeComplete_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCResumeComplete_IEs_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeComplete_IEs = { + "RRCResumeComplete-IEs", + "RRCResumeComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeComplete_IEs_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.h b/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.h new file mode 100644 index 0000000..f6e72dc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeComplete-IEs.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeComplete_IEs_H_ +#define _ASN_RRC_RRCResumeComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DedicatedNAS-Message.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UplinkTxDirectCurrentList; + +/* ASN_RRC_RRCResumeComplete-IEs */ +typedef struct ASN_RRC_RRCResumeComplete_IEs { + ASN_RRC_DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + long *selectedPLMN_Identity; /* OPTIONAL */ + struct ASN_RRC_UplinkTxDirectCurrentList *uplinkTxDirectCurrentList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCResumeComplete_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeComplete_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeComplete_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeComplete.c b/src/asn/rrc/ASN_RRC_RRCResumeComplete.c new file mode 100644 index 0000000..e82aa09 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeComplete.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeComplete.h" + +#include "ASN_RRC_RRCResumeComplete-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCResumeComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCResumeComplete__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCResumeComplete__criticalExtensions, choice.rrcResumeComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCResumeComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcResumeComplete */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCResumeComplete__criticalExtensions), + offsetof(struct ASN_RRC_RRCResumeComplete__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCResumeComplete__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCResumeComplete__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeComplete_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeComplete), + offsetof(struct ASN_RRC_RRCResumeComplete, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeComplete_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeComplete = { + "RRCResumeComplete", + "RRCResumeComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeComplete_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeComplete_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeComplete.h b/src/asn/rrc/ASN_RRC_RRCResumeComplete.h new file mode 100644 index 0000000..1416cd4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeComplete.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeComplete_H_ +#define _ASN_RRC_RRCResumeComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCResumeComplete__criticalExtensions_PR { + ASN_RRC_RRCResumeComplete__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCResumeComplete__criticalExtensions_PR_rrcResumeComplete, + ASN_RRC_RRCResumeComplete__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCResumeComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCResumeComplete_IEs; + +/* ASN_RRC_RRCResumeComplete */ +typedef struct ASN_RRC_RRCResumeComplete { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCResumeComplete__criticalExtensions { + ASN_RRC_RRCResumeComplete__criticalExtensions_PR present; + union ASN_RRC_RRCResumeComplete__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCResumeComplete_IEs *rrcResumeComplete; + struct ASN_RRC_RRCResumeComplete__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeComplete_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.c b/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.c new file mode 100644 index 0000000..338137a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeRequest-IEs.h" + +static int +memb_ASN_RRC_resumeMAC_I_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_resumeMAC_I_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_spare_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest_IEs, resumeIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ShortI_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest_IEs, resumeMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_resumeMAC_I_constr_3, memb_ASN_RRC_resumeMAC_I_constraint_1 }, + 0, 0, /* No default value */ + "resumeMAC-I" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest_IEs, resumeCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ResumeCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_5, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeRequest_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resumeIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resumeMAC-I */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resumeCause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeRequest_IEs), + offsetof(struct ASN_RRC_RRCResumeRequest_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeRequest_IEs_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest_IEs = { + "RRCResumeRequest-IEs", + "RRCResumeRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeRequest_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.h b/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.h new file mode 100644 index 0000000..128647c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeRequest_IEs_H_ +#define _ASN_RRC_RRCResumeRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ShortI-RNTI-Value.h" +#include +#include "ASN_RRC_ResumeCause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCResumeRequest-IEs */ +typedef struct ASN_RRC_RRCResumeRequest_IEs { + ASN_RRC_ShortI_RNTI_Value_t resumeIdentity; + BIT_STRING_t resumeMAC_I; + ASN_RRC_ResumeCause_t resumeCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeRequest_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest.c b/src/asn/rrc/ASN_RRC_RRCResumeRequest.c new file mode 100644 index 0000000..8033dd0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest, rrcResumeRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcResumeRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeRequest), + offsetof(struct ASN_RRC_RRCResumeRequest, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeRequest_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_ASN_RRC_RRCResumeRequest = { + "RRCResumeRequest", + "RRCResumeRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeRequest_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest.h b/src/asn/rrc/ASN_RRC_RRCResumeRequest.h new file mode 100644 index 0000000..55396a6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeRequest_H_ +#define _ASN_RRC_RRCResumeRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRCResumeRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCResumeRequest */ +typedef struct ASN_RRC_RRCResumeRequest { + ASN_RRC_RRCResumeRequest_IEs_t rrcResumeRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeRequest_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.c b/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.c new file mode 100644 index 0000000..877f70a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeRequest1-IEs.h" + +static int +memb_ASN_RRC_resumeMAC_I_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_resumeMAC_I_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_spare_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest1_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest1_IEs, resumeIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest1_IEs, resumeMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_resumeMAC_I_constr_3, memb_ASN_RRC_resumeMAC_I_constraint_1 }, + 0, 0, /* No default value */ + "resumeMAC-I" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest1_IEs, resumeCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ResumeCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest1_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_5, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeRequest1_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resumeIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resumeMAC-I */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resumeCause */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest1_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeRequest1_IEs), + offsetof(struct ASN_RRC_RRCResumeRequest1_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeRequest1_IEs_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest1_IEs = { + "RRCResumeRequest1-IEs", + "RRCResumeRequest1-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeRequest1_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeRequest1_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.h b/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.h new file mode 100644 index 0000000..660414b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest1-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeRequest1_IEs_H_ +#define _ASN_RRC_RRCResumeRequest1_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_I-RNTI-Value.h" +#include +#include "ASN_RRC_ResumeCause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCResumeRequest1-IEs */ +typedef struct ASN_RRC_RRCResumeRequest1_IEs { + ASN_RRC_I_RNTI_Value_t resumeIdentity; + BIT_STRING_t resumeMAC_I; + ASN_RRC_ResumeCause_t resumeCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeRequest1_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest1_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest1_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest1_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeRequest1_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest1.c b/src/asn/rrc/ASN_RRC_RRCResumeRequest1.c new file mode 100644 index 0000000..1160613 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCResumeRequest1.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCResumeRequest1, rrcResumeRequest1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeRequest1_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest1" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCResumeRequest1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcResumeRequest1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest1_specs_1 = { + sizeof(struct ASN_RRC_RRCResumeRequest1), + offsetof(struct ASN_RRC_RRCResumeRequest1, _asn_ctx), + asn_MAP_ASN_RRC_RRCResumeRequest1_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_ASN_RRC_RRCResumeRequest1 = { + "RRCResumeRequest1", + "RRCResumeRequest1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCResumeRequest1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCResumeRequest1_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCResumeRequest1_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCResumeRequest1.h b/src/asn/rrc/ASN_RRC_RRCResumeRequest1.h new file mode 100644 index 0000000..d2d8750 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCResumeRequest1.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCResumeRequest1_H_ +#define _ASN_RRC_RRCResumeRequest1_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRCResumeRequest1-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCResumeRequest1 */ +typedef struct ASN_RRC_RRCResumeRequest1 { + ASN_RRC_RRCResumeRequest1_IEs_t rrcResumeRequest1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCResumeRequest1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCResumeRequest1; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCResumeRequest1_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCResumeRequest1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCResumeRequest1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetup-IEs.c b/src/asn/rrc/ASN_RRC_RRCSetup-IEs.c new file mode 100644 index 0000000..1e62eb1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetup-IEs.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetup-IEs.h" + +static int +memb_ASN_RRC_masterCellGroup_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_masterCellGroup_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 = { + sizeof(struct ASN_RRC_RRCSetup_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCSetup_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_5 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetup_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetup_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetup_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_masterCellGroup_constr_3, memb_ASN_RRC_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCSetup_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCSetup_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCSetup_IEs_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetup_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioBearerConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* masterCellGroup */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetup_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCSetup_IEs), + offsetof(struct ASN_RRC_RRCSetup_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetup_IEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCSetup_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetup_IEs = { + "RRCSetup-IEs", + "RRCSetup-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetup_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetup_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetup_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetup-IEs.h b/src/asn/rrc/ASN_RRC_RRCSetup-IEs.h new file mode 100644 index 0000000..d432de0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetup-IEs.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetup_IEs_H_ +#define _ASN_RRC_RRCSetup_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RadioBearerConfig.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCSetup-IEs */ +typedef struct ASN_RRC_RRCSetup_IEs { + ASN_RRC_RadioBearerConfig_t radioBearerConfig; + OCTET_STRING_t masterCellGroup; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCSetup_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetup_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetup_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetup_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetup_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetup_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetup.c b/src/asn/rrc/ASN_RRC_RRCSetup.c new file mode 100644 index 0000000..66190f2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetup.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetup.h" + +#include "ASN_RRC_RRCSetup-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCSetup__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCSetup__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSetup__criticalExtensions, choice.rrcSetup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetup_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetup" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSetup__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcSetup */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCSetup__criticalExtensions), + offsetof(struct ASN_RRC_RRCSetup__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCSetup__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCSetup__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetup_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetup, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetup, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetup_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetup_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetup_specs_1 = { + sizeof(struct ASN_RRC_RRCSetup), + offsetof(struct ASN_RRC_RRCSetup, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetup_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetup = { + "RRCSetup", + "RRCSetup", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetup_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetup_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetup_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetup_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetup_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetup_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetup_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetup_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetup.h b/src/asn/rrc/ASN_RRC_RRCSetup.h new file mode 100644 index 0000000..47a9a3e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetup.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetup_H_ +#define _ASN_RRC_RRCSetup_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCSetup__criticalExtensions_PR { + ASN_RRC_RRCSetup__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCSetup__criticalExtensions_PR_rrcSetup, + ASN_RRC_RRCSetup__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCSetup__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCSetup_IEs; + +/* ASN_RRC_RRCSetup */ +typedef struct ASN_RRC_RRCSetup { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCSetup__criticalExtensions { + ASN_RRC_RRCSetup__criticalExtensions_PR present; + union ASN_RRC_RRCSetup__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCSetup_IEs *rrcSetup; + struct ASN_RRC_RRCSetup__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetup_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetup; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetup_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetup_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetup_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.c b/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.c new file mode 100644 index 0000000..8156a81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.c @@ -0,0 +1,391 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetupComplete-IEs.h" + +#include "ASN_RRC_RegisteredAMF.h" +#include "ASN_RRC_S-NSSAI.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_ng_5G_S_TMSI_Part2_constraint_10(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 == 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 int +memb_ASN_RRC_selectedPLMN_Identity_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 <= 12)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_s_NSSAI_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 <= 8)) { + /* 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_ASN_RRC_guami_Type_constr_4 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_type_ASN_RRC_s_NSSAI_List_constr_7 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_per_constraints_t asn_PER_memb_ASN_RRC_ng_5G_S_TMSI_Part2_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 9, 9 } /* (SIZE(9..9)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ng_5G_S_TMSI_Value_constr_10 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_ASN_RRC_selectedPLMN_Identity_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_s_NSSAI_List_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (SIZE(1..8)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_guami_Type_value2enum_4[] = { + { 0, 6, "native" }, + { 1, 6, "mapped" } +}; +static const unsigned int asn_MAP_ASN_RRC_guami_Type_enum2value_4[] = { + 1, /* mapped(1) */ + 0 /* native(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_guami_Type_specs_4 = { + asn_MAP_ASN_RRC_guami_Type_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_guami_Type_enum2value_4, /* 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_ASN_RRC_guami_Type_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_ASN_RRC_guami_Type_4 = { + "guami-Type", + "guami-Type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_guami_Type_tags_4, + sizeof(asn_DEF_ASN_RRC_guami_Type_tags_4) + /sizeof(asn_DEF_ASN_RRC_guami_Type_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_guami_Type_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_guami_Type_tags_4) + /sizeof(asn_DEF_ASN_RRC_guami_Type_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_guami_Type_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_guami_Type_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_s_NSSAI_List_7[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_s_NSSAI_List_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_s_NSSAI_List_specs_7 = { + sizeof(struct ASN_RRC_RRCSetupComplete_IEs__s_NSSAI_List), + offsetof(struct ASN_RRC_RRCSetupComplete_IEs__s_NSSAI_List, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_s_NSSAI_List_7 = { + "s-NSSAI-List", + "s-NSSAI-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_s_NSSAI_List_tags_7, + sizeof(asn_DEF_ASN_RRC_s_NSSAI_List_tags_7) + /sizeof(asn_DEF_ASN_RRC_s_NSSAI_List_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_s_NSSAI_List_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_s_NSSAI_List_tags_7) + /sizeof(asn_DEF_ASN_RRC_s_NSSAI_List_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_s_NSSAI_List_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_s_NSSAI_List_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_s_NSSAI_List_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ng_5G_S_TMSI_Value_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, choice.ng_5G_S_TMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NG_5G_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, choice.ng_5G_S_TMSI_Part2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ng_5G_S_TMSI_Part2_constr_12, memb_ASN_RRC_ng_5G_S_TMSI_Part2_constraint_10 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI-Part2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ng_5G_S_TMSI_Value_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ng-5G-S-TMSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-5G-S-TMSI-Part2 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_ng_5G_S_TMSI_Value_specs_10 = { + sizeof(struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value), + offsetof(struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, _asn_ctx), + offsetof(struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, present), + sizeof(((struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value *)0)->present), + asn_MAP_ASN_RRC_ng_5G_S_TMSI_Value_tag2el_10, + 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_ASN_RRC_ng_5G_S_TMSI_Value_10 = { + "ng-5G-S-TMSI-Value", + "ng-5G-S-TMSI-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_ASN_RRC_ng_5G_S_TMSI_Value_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_ng_5G_S_TMSI_Value_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ng_5G_S_TMSI_Value_specs_10 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_14 = { + sizeof(struct ASN_RRC_RRCSetupComplete_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_RRCSetupComplete_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_14 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_14, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupComplete_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, selectedPLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_selectedPLMN_Identity_constr_2, memb_ASN_RRC_selectedPLMN_Identity_constraint_1 }, + 0, 0, /* No default value */ + "selectedPLMN-Identity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, registeredAMF), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RegisteredAMF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "registeredAMF" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, guami_Type), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_guami_Type_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guami-Type" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, s_NSSAI_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_s_NSSAI_List_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_s_NSSAI_List_constr_7, memb_ASN_RRC_s_NSSAI_List_constraint_1 }, + 0, 0, /* No default value */ + "s-NSSAI-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, ng_5G_S_TMSI_Value), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ng_5G_S_TMSI_Value_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI-Value" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, lateNonCriticalExtension), + (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 */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRCSetupComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_RRCSetupComplete_IEs_oms_1[] = { 1, 2, 3, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetupComplete_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* selectedPLMN-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* registeredAMF */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* guami-Type */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s-NSSAI-List */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dedicatedNAS-Message */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ng-5G-S-TMSI-Value */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupComplete_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCSetupComplete_IEs), + offsetof(struct ASN_RRC_RRCSetupComplete_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetupComplete_IEs_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRCSetupComplete_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupComplete_IEs = { + "RRCSetupComplete-IEs", + "RRCSetupComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetupComplete_IEs_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetupComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.h b/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.h new file mode 100644 index 0000000..7d6e063 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupComplete-IEs.h @@ -0,0 +1,89 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetupComplete_IEs_H_ +#define _ASN_RRC_RRCSetupComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_DedicatedNAS-Message.h" +#include +#include +#include +#include "ASN_RRC_NG-5G-S-TMSI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCSetupComplete_IEs__guami_Type { + ASN_RRC_RRCSetupComplete_IEs__guami_Type_native = 0, + ASN_RRC_RRCSetupComplete_IEs__guami_Type_mapped = 1 +} e_ASN_RRC_RRCSetupComplete_IEs__guami_Type; +typedef enum ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR { + ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_NOTHING, /* No components present */ + ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_ng_5G_S_TMSI, + ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_ng_5G_S_TMSI_Part2 +} ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR; + +/* Forward declarations */ +struct ASN_RRC_RegisteredAMF; +struct ASN_RRC_S_NSSAI; + +/* ASN_RRC_RRCSetupComplete-IEs */ +typedef struct ASN_RRC_RRCSetupComplete_IEs { + long selectedPLMN_Identity; + struct ASN_RRC_RegisteredAMF *registeredAMF; /* OPTIONAL */ + long *guami_Type; /* OPTIONAL */ + struct ASN_RRC_RRCSetupComplete_IEs__s_NSSAI_List { + A_SEQUENCE_OF(struct ASN_RRC_S_NSSAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *s_NSSAI_List; + ASN_RRC_DedicatedNAS_Message_t dedicatedNAS_Message; + struct ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value { + ASN_RRC_RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR present; + union ASN_RRC_RRCSetupComplete_IEs__ASN_RRC_ng_5G_S_TMSI_Value_u { + ASN_RRC_NG_5G_S_TMSI_t ng_5G_S_TMSI; + BIT_STRING_t ng_5G_S_TMSI_Part2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ng_5G_S_TMSI_Value; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_RRCSetupComplete_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetupComplete_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_guami_Type_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupComplete_IEs_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetupComplete_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetupComplete.c b/src/asn/rrc/ASN_RRC_RRCSetupComplete.c new file mode 100644 index 0000000..34e5cb9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupComplete.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetupComplete.h" + +#include "ASN_RRC_RRCSetupComplete-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_RRCSetupComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCSetupComplete__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSetupComplete__criticalExtensions, choice.rrcSetupComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetupComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSetupComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcSetupComplete */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_RRCSetupComplete__criticalExtensions), + offsetof(struct ASN_RRC_RRCSetupComplete__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCSetupComplete__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCSetupComplete__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetupComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetupComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupComplete_specs_1 = { + sizeof(struct ASN_RRC_RRCSetupComplete), + offsetof(struct ASN_RRC_RRCSetupComplete, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetupComplete_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupComplete = { + "RRCSetupComplete", + "RRCSetupComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetupComplete_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetupComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetupComplete_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetupComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetupComplete.h b/src/asn/rrc/ASN_RRC_RRCSetupComplete.h new file mode 100644 index 0000000..a90dcfb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupComplete.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetupComplete_H_ +#define _ASN_RRC_RRCSetupComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCSetupComplete__criticalExtensions_PR { + ASN_RRC_RRCSetupComplete__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCSetupComplete__criticalExtensions_PR_rrcSetupComplete, + ASN_RRC_RRCSetupComplete__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCSetupComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCSetupComplete_IEs; + +/* ASN_RRC_RRCSetupComplete */ +typedef struct ASN_RRC_RRCSetupComplete { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_RRCSetupComplete__criticalExtensions { + ASN_RRC_RRCSetupComplete__criticalExtensions_PR present; + union ASN_RRC_RRCSetupComplete__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCSetupComplete_IEs *rrcSetupComplete; + struct ASN_RRC_RRCSetupComplete__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetupComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetupComplete_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.c b/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.c new file mode 100644 index 0000000..9854adb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetupRequest-IEs.h" + +static int +memb_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_spare_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 1, 1 } /* (SIZE(1..1)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupRequest_IEs, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_InitialUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupRequest_IEs, establishmentCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EstablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "establishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_4, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetupRequest_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* establishmentCause */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupRequest_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCSetupRequest_IEs), + offsetof(struct ASN_RRC_RRCSetupRequest_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetupRequest_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_ASN_RRC_RRCSetupRequest_IEs = { + "RRCSetupRequest-IEs", + "RRCSetupRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetupRequest_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetupRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.h b/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.h new file mode 100644 index 0000000..ce25f98 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupRequest-IEs.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetupRequest_IEs_H_ +#define _ASN_RRC_RRCSetupRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_InitialUE-Identity.h" +#include "ASN_RRC_EstablishmentCause.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCSetupRequest-IEs */ +typedef struct ASN_RRC_RRCSetupRequest_IEs { + ASN_RRC_InitialUE_Identity_t ue_Identity; + ASN_RRC_EstablishmentCause_t establishmentCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetupRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupRequest_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetupRequest_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSetupRequest.c b/src/asn/rrc/ASN_RRC_RRCSetupRequest.c new file mode 100644 index 0000000..9fb634e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupRequest.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSetupRequest.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSetupRequest, rrcSetupRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetupRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcSetupRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupRequest_specs_1 = { + sizeof(struct ASN_RRC_RRCSetupRequest), + offsetof(struct ASN_RRC_RRCSetupRequest, _asn_ctx), + asn_MAP_ASN_RRC_RRCSetupRequest_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_ASN_RRC_RRCSetupRequest = { + "RRCSetupRequest", + "RRCSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSetupRequest_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSetupRequest.h b/src/asn/rrc/ASN_RRC_RRCSetupRequest.h new file mode 100644 index 0000000..b136451 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSetupRequest.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSetupRequest_H_ +#define _ASN_RRC_RRCSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRCSetupRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCSetupRequest */ +typedef struct ASN_RRC_RRCSetupRequest { + ASN_RRC_RRCSetupRequest_IEs_t rrcSetupRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSetupRequest_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.c b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.c new file mode 100644 index 0000000..c1c19f6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSystemInfoRequest-r15-IEs.h" + +static int +memb_ASN_RRC_requested_SI_List_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 == 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 int +memb_ASN_RRC_spare_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)) { + /* Constraint 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_ASN_RRC_requested_SI_List_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_spare_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 12, 12 } /* (SIZE(12..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSystemInfoRequest_r15_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSystemInfoRequest_r15_IEs, requested_SI_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_requested_SI_List_constr_2, memb_ASN_RRC_requested_SI_List_constraint_1 }, + 0, 0, /* No default value */ + "requested-SI-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSystemInfoRequest_r15_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_spare_constr_3, memb_ASN_RRC_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* requested-SI-List */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* spare */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSystemInfoRequest_r15_IEs_specs_1 = { + sizeof(struct ASN_RRC_RRCSystemInfoRequest_r15_IEs), + offsetof(struct ASN_RRC_RRCSystemInfoRequest_r15_IEs, _asn_ctx), + asn_MAP_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs = { + "RRCSystemInfoRequest-r15-IEs", + "RRCSystemInfoRequest-r15-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSystemInfoRequest_r15_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSystemInfoRequest_r15_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.h b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.h new file mode 100644 index 0000000..d8baddb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest-r15-IEs.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSystemInfoRequest_r15_IEs_H_ +#define _ASN_RRC_RRCSystemInfoRequest_r15_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RRCSystemInfoRequest-r15-IEs */ +typedef struct ASN_RRC_RRCSystemInfoRequest_r15_IEs { + BIT_STRING_t requested_SI_List; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSystemInfoRequest_r15_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSystemInfoRequest_r15_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSystemInfoRequest_r15_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSystemInfoRequest_r15_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.c b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.c new file mode 100644 index 0000000..ba75286 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRCSystemInfoRequest.h" + +#include "ASN_RRC_RRCSystemInfoRequest-r15-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions, choice.rrcSystemInfoRequest_r15), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSystemInfoRequest_r15_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSystemInfoRequest-r15" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcSystemInfoRequest-r15 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions), + offsetof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions, present), + sizeof(((struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSystemInfoRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RRCSystemInfoRequest, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRCSystemInfoRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSystemInfoRequest_specs_1 = { + sizeof(struct ASN_RRC_RRCSystemInfoRequest), + offsetof(struct ASN_RRC_RRCSystemInfoRequest, _asn_ctx), + asn_MAP_ASN_RRC_RRCSystemInfoRequest_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_ASN_RRC_RRCSystemInfoRequest = { + "RRCSystemInfoRequest", + "RRCSystemInfoRequest", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1, + sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRCSystemInfoRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRCSystemInfoRequest_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_RRCSystemInfoRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.h b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.h new file mode 100644 index 0000000..4f7377f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRCSystemInfoRequest.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRCSystemInfoRequest_H_ +#define _ASN_RRC_RRCSystemInfoRequest_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR { + ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR_rrcSystemInfoRequest_r15, + ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCSystemInfoRequest_r15_IEs; + +/* ASN_RRC_RRCSystemInfoRequest */ +typedef struct ASN_RRC_RRCSystemInfoRequest { + struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions { + ASN_RRC_RRCSystemInfoRequest__criticalExtensions_PR present; + union ASN_RRC_RRCSystemInfoRequest__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_RRCSystemInfoRequest_r15_IEs *rrcSystemInfoRequest_r15; + struct ASN_RRC_RRCSystemInfoRequest__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRCSystemInfoRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRCSystemInfoRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRCSystemInfoRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRCSystemInfoRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRCSystemInfoRequest_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RRM-Config.c b/src/asn/rrc/ASN_RRC_RRM-Config.c new file mode 100644 index 0000000..823d1bd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRM-Config.c @@ -0,0 +1,289 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RRM-Config.h" + +#include "ASN_RRC_MeasResultList2NR.h" +#include "ASN_RRC_MeasResultServFreqListEUTRA-SCG.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_ue_InactiveTime_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ue_InactiveTime_value2enum_2[] = { + { 0, 2, "s1" }, + { 1, 2, "s2" }, + { 2, 2, "s3" }, + { 3, 2, "s5" }, + { 4, 2, "s7" }, + { 5, 3, "s10" }, + { 6, 3, "s15" }, + { 7, 3, "s20" }, + { 8, 3, "s25" }, + { 9, 3, "s30" }, + { 10, 3, "s40" }, + { 11, 3, "s50" }, + { 12, 4, "min1" }, + { 13, 7, "min1s20" }, + { 14, 7, "min1s40" }, + { 15, 4, "min2" }, + { 16, 7, "min2s30" }, + { 17, 4, "min3" }, + { 18, 7, "min3s30" }, + { 19, 4, "min4" }, + { 20, 4, "min5" }, + { 21, 4, "min6" }, + { 22, 4, "min7" }, + { 23, 4, "min8" }, + { 24, 4, "min9" }, + { 25, 5, "min10" }, + { 26, 5, "min12" }, + { 27, 5, "min14" }, + { 28, 5, "min17" }, + { 29, 5, "min20" }, + { 30, 5, "min24" }, + { 31, 5, "min28" }, + { 32, 5, "min33" }, + { 33, 5, "min38" }, + { 34, 5, "min44" }, + { 35, 5, "min50" }, + { 36, 3, "hr1" }, + { 37, 8, "hr1min30" }, + { 38, 3, "hr2" }, + { 39, 8, "hr2min30" }, + { 40, 3, "hr3" }, + { 41, 8, "hr3min30" }, + { 42, 3, "hr4" }, + { 43, 3, "hr5" }, + { 44, 3, "hr6" }, + { 45, 3, "hr8" }, + { 46, 4, "hr10" }, + { 47, 4, "hr13" }, + { 48, 4, "hr16" }, + { 49, 4, "hr20" }, + { 50, 4, "day1" }, + { 51, 8, "day1hr12" }, + { 52, 4, "day2" }, + { 53, 8, "day2hr12" }, + { 54, 4, "day3" }, + { 55, 4, "day4" }, + { 56, 4, "day5" }, + { 57, 4, "day7" }, + { 58, 5, "day10" }, + { 59, 5, "day14" }, + { 60, 5, "day19" }, + { 61, 5, "day24" }, + { 62, 5, "day30" }, + { 63, 13, "dayMoreThan30" } +}; +static const unsigned int asn_MAP_ASN_RRC_ue_InactiveTime_enum2value_2[] = { + 50, /* day1(50) */ + 58, /* day10(58) */ + 59, /* day14(59) */ + 60, /* day19(60) */ + 51, /* day1hr12(51) */ + 52, /* day2(52) */ + 61, /* day24(61) */ + 53, /* day2hr12(53) */ + 54, /* day3(54) */ + 62, /* day30(62) */ + 55, /* day4(55) */ + 56, /* day5(56) */ + 57, /* day7(57) */ + 63, /* dayMoreThan30(63) */ + 36, /* hr1(36) */ + 46, /* hr10(46) */ + 47, /* hr13(47) */ + 48, /* hr16(48) */ + 37, /* hr1min30(37) */ + 38, /* hr2(38) */ + 49, /* hr20(49) */ + 39, /* hr2min30(39) */ + 40, /* hr3(40) */ + 41, /* hr3min30(41) */ + 42, /* hr4(42) */ + 43, /* hr5(43) */ + 44, /* hr6(44) */ + 45, /* hr8(45) */ + 12, /* min1(12) */ + 25, /* min10(25) */ + 26, /* min12(26) */ + 27, /* min14(27) */ + 28, /* min17(28) */ + 13, /* min1s20(13) */ + 14, /* min1s40(14) */ + 15, /* min2(15) */ + 29, /* min20(29) */ + 30, /* min24(30) */ + 31, /* min28(31) */ + 16, /* min2s30(16) */ + 17, /* min3(17) */ + 32, /* min33(32) */ + 33, /* min38(33) */ + 18, /* min3s30(18) */ + 19, /* min4(19) */ + 34, /* min44(34) */ + 20, /* min5(20) */ + 35, /* min50(35) */ + 21, /* min6(21) */ + 22, /* min7(22) */ + 23, /* min8(23) */ + 24, /* min9(24) */ + 0, /* s1(0) */ + 5, /* s10(5) */ + 6, /* s15(6) */ + 1, /* s2(1) */ + 7, /* s20(7) */ + 8, /* s25(8) */ + 2, /* s3(2) */ + 9, /* s30(9) */ + 10, /* s40(10) */ + 3, /* s5(3) */ + 11, /* s50(11) */ + 4 /* s7(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ue_InactiveTime_specs_2 = { + asn_MAP_ASN_RRC_ue_InactiveTime_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ue_InactiveTime_enum2value_2, /* N => "tag"; sorted by N */ + 64, /* 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_ASN_RRC_ue_InactiveTime_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_ASN_RRC_ue_InactiveTime_2 = { + "ue-InactiveTime", + "ue-InactiveTime", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ue_InactiveTime_tags_2, + sizeof(asn_DEF_ASN_RRC_ue_InactiveTime_tags_2) + /sizeof(asn_DEF_ASN_RRC_ue_InactiveTime_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ue_InactiveTime_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ue_InactiveTime_tags_2) + /sizeof(asn_DEF_ASN_RRC_ue_InactiveTime_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ue_InactiveTime_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ue_InactiveTime_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_69[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRM_Config__ext1, candidateCellInfoListSN_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultServFreqListEUTRA_SCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN-EUTRA" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_69[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_69[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* candidateCellInfoListSN-EUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_69 = { + sizeof(struct ASN_RRC_RRM_Config__ext1), + offsetof(struct ASN_RRC_RRM_Config__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_69, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_69, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_69 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_69, + sizeof(asn_DEF_ASN_RRC_ext1_tags_69) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_69[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_69) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_69[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_69, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RRM_Config_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RRM_Config, ue_InactiveTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ue_InactiveTime_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-InactiveTime" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RRM_Config, candidateCellInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RRM_Config, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_RRM_Config_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RRM_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RRM_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-InactiveTime */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* candidateCellInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRM_Config_specs_1 = { + sizeof(struct ASN_RRC_RRM_Config), + offsetof(struct ASN_RRC_RRM_Config, _asn_ctx), + asn_MAP_ASN_RRC_RRM_Config_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RRM_Config_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRM_Config = { + "RRM-Config", + "RRM-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RRM_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_RRM_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRM_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RRM_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RRM_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_RRM_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RRM_Config_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RRM_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RRM-Config.h b/src/asn/rrc/ASN_RRC_RRM-Config.h new file mode 100644 index 0000000..925c153 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RRM-Config.h @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RRM_Config_H_ +#define _ASN_RRC_RRM_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RRM_Config__ue_InactiveTime { + ASN_RRC_RRM_Config__ue_InactiveTime_s1 = 0, + ASN_RRC_RRM_Config__ue_InactiveTime_s2 = 1, + ASN_RRC_RRM_Config__ue_InactiveTime_s3 = 2, + ASN_RRC_RRM_Config__ue_InactiveTime_s5 = 3, + ASN_RRC_RRM_Config__ue_InactiveTime_s7 = 4, + ASN_RRC_RRM_Config__ue_InactiveTime_s10 = 5, + ASN_RRC_RRM_Config__ue_InactiveTime_s15 = 6, + ASN_RRC_RRM_Config__ue_InactiveTime_s20 = 7, + ASN_RRC_RRM_Config__ue_InactiveTime_s25 = 8, + ASN_RRC_RRM_Config__ue_InactiveTime_s30 = 9, + ASN_RRC_RRM_Config__ue_InactiveTime_s40 = 10, + ASN_RRC_RRM_Config__ue_InactiveTime_s50 = 11, + ASN_RRC_RRM_Config__ue_InactiveTime_min1 = 12, + ASN_RRC_RRM_Config__ue_InactiveTime_min1s20 = 13, + ASN_RRC_RRM_Config__ue_InactiveTime_min1s40 = 14, + ASN_RRC_RRM_Config__ue_InactiveTime_min2 = 15, + ASN_RRC_RRM_Config__ue_InactiveTime_min2s30 = 16, + ASN_RRC_RRM_Config__ue_InactiveTime_min3 = 17, + ASN_RRC_RRM_Config__ue_InactiveTime_min3s30 = 18, + ASN_RRC_RRM_Config__ue_InactiveTime_min4 = 19, + ASN_RRC_RRM_Config__ue_InactiveTime_min5 = 20, + ASN_RRC_RRM_Config__ue_InactiveTime_min6 = 21, + ASN_RRC_RRM_Config__ue_InactiveTime_min7 = 22, + ASN_RRC_RRM_Config__ue_InactiveTime_min8 = 23, + ASN_RRC_RRM_Config__ue_InactiveTime_min9 = 24, + ASN_RRC_RRM_Config__ue_InactiveTime_min10 = 25, + ASN_RRC_RRM_Config__ue_InactiveTime_min12 = 26, + ASN_RRC_RRM_Config__ue_InactiveTime_min14 = 27, + ASN_RRC_RRM_Config__ue_InactiveTime_min17 = 28, + ASN_RRC_RRM_Config__ue_InactiveTime_min20 = 29, + ASN_RRC_RRM_Config__ue_InactiveTime_min24 = 30, + ASN_RRC_RRM_Config__ue_InactiveTime_min28 = 31, + ASN_RRC_RRM_Config__ue_InactiveTime_min33 = 32, + ASN_RRC_RRM_Config__ue_InactiveTime_min38 = 33, + ASN_RRC_RRM_Config__ue_InactiveTime_min44 = 34, + ASN_RRC_RRM_Config__ue_InactiveTime_min50 = 35, + ASN_RRC_RRM_Config__ue_InactiveTime_hr1 = 36, + ASN_RRC_RRM_Config__ue_InactiveTime_hr1min30 = 37, + ASN_RRC_RRM_Config__ue_InactiveTime_hr2 = 38, + ASN_RRC_RRM_Config__ue_InactiveTime_hr2min30 = 39, + ASN_RRC_RRM_Config__ue_InactiveTime_hr3 = 40, + ASN_RRC_RRM_Config__ue_InactiveTime_hr3min30 = 41, + ASN_RRC_RRM_Config__ue_InactiveTime_hr4 = 42, + ASN_RRC_RRM_Config__ue_InactiveTime_hr5 = 43, + ASN_RRC_RRM_Config__ue_InactiveTime_hr6 = 44, + ASN_RRC_RRM_Config__ue_InactiveTime_hr8 = 45, + ASN_RRC_RRM_Config__ue_InactiveTime_hr10 = 46, + ASN_RRC_RRM_Config__ue_InactiveTime_hr13 = 47, + ASN_RRC_RRM_Config__ue_InactiveTime_hr16 = 48, + ASN_RRC_RRM_Config__ue_InactiveTime_hr20 = 49, + ASN_RRC_RRM_Config__ue_InactiveTime_day1 = 50, + ASN_RRC_RRM_Config__ue_InactiveTime_day1hr12 = 51, + ASN_RRC_RRM_Config__ue_InactiveTime_day2 = 52, + ASN_RRC_RRM_Config__ue_InactiveTime_day2hr12 = 53, + ASN_RRC_RRM_Config__ue_InactiveTime_day3 = 54, + ASN_RRC_RRM_Config__ue_InactiveTime_day4 = 55, + ASN_RRC_RRM_Config__ue_InactiveTime_day5 = 56, + ASN_RRC_RRM_Config__ue_InactiveTime_day7 = 57, + ASN_RRC_RRM_Config__ue_InactiveTime_day10 = 58, + ASN_RRC_RRM_Config__ue_InactiveTime_day14 = 59, + ASN_RRC_RRM_Config__ue_InactiveTime_day19 = 60, + ASN_RRC_RRM_Config__ue_InactiveTime_day24 = 61, + ASN_RRC_RRM_Config__ue_InactiveTime_day30 = 62, + ASN_RRC_RRM_Config__ue_InactiveTime_dayMoreThan30 = 63 +} e_ASN_RRC_RRM_Config__ue_InactiveTime; + +/* Forward declarations */ +struct ASN_RRC_MeasResultList2NR; +struct ASN_RRC_MeasResultServFreqListEUTRA_SCG; + +/* ASN_RRC_RRM-Config */ +typedef struct ASN_RRC_RRM_Config { + long *ue_InactiveTime; /* OPTIONAL */ + struct ASN_RRC_MeasResultList2NR *candidateCellInfoList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_RRM_Config__ext1 { + struct ASN_RRC_MeasResultServFreqListEUTRA_SCG *candidateCellInfoListSN_EUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RRM_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_InactiveTime_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RRM_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RRM_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RRM_Config_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RRM_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RSRP-Range.c b/src/asn/rrc/ASN_RRC_RSRP-Range.c new file mode 100644 index 0000000..242341d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRP-Range.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RSRP-Range.h" + +int +ASN_RRC_RSRP_Range_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_RSRP_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RSRP_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRP_Range = { + "RSRP-Range", + "RSRP-Range", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RSRP_Range_tags_1, + sizeof(asn_DEF_ASN_RRC_RSRP_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRP_Range_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RSRP_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RSRP_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRP_Range_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RSRP_Range_constr_1, ASN_RRC_RSRP_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RSRP-Range.h b/src/asn/rrc/ASN_RRC_RSRP-Range.h new file mode 100644 index 0000000..cad3cce --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRP-Range.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RSRP_Range_H_ +#define _ASN_RRC_RSRP_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RSRP-Range */ +typedef long ASN_RRC_RSRP_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RSRP_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRP_Range; +asn_struct_free_f ASN_RRC_RSRP_Range_free; +asn_struct_print_f ASN_RRC_RSRP_Range_print; +asn_constr_check_f ASN_RRC_RSRP_Range_constraint; +ber_type_decoder_f ASN_RRC_RSRP_Range_decode_ber; +der_type_encoder_f ASN_RRC_RSRP_Range_encode_der; +xer_type_decoder_f ASN_RRC_RSRP_Range_decode_xer; +xer_type_encoder_f ASN_RRC_RSRP_Range_encode_xer; +per_type_decoder_f ASN_RRC_RSRP_Range_decode_uper; +per_type_encoder_f ASN_RRC_RSRP_Range_encode_uper; +per_type_decoder_f ASN_RRC_RSRP_Range_decode_aper; +per_type_encoder_f ASN_RRC_RSRP_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RSRP_Range_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.c b/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.c new file mode 100644 index 0000000..20f03c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RSRP-RangeEUTRA.h" + +int +ASN_RRC_RSRP_RangeEUTRA_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_ASN_RRC_RSRP_RangeEUTRA_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_ASN_RRC_RSRP_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRP_RangeEUTRA = { + "RSRP-RangeEUTRA", + "RSRP-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RSRP_RangeEUTRA_constr_1, ASN_RRC_RSRP_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.h b/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.h new file mode 100644 index 0000000..fdbf11c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRP-RangeEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RSRP_RangeEUTRA_H_ +#define _ASN_RRC_RSRP_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RSRP-RangeEUTRA */ +typedef long ASN_RRC_RSRP_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RSRP_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRP_RangeEUTRA; +asn_struct_free_f ASN_RRC_RSRP_RangeEUTRA_free; +asn_struct_print_f ASN_RRC_RSRP_RangeEUTRA_print; +asn_constr_check_f ASN_RRC_RSRP_RangeEUTRA_constraint; +ber_type_decoder_f ASN_RRC_RSRP_RangeEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_RSRP_RangeEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_RSRP_RangeEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_RSRP_RangeEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_RSRP_RangeEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_RSRP_RangeEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_RSRP_RangeEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_RSRP_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RSRP_RangeEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RSRQ-Range.c b/src/asn/rrc/ASN_RRC_RSRQ-Range.c new file mode 100644 index 0000000..658a0dc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRQ-Range.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RSRQ-Range.h" + +int +ASN_RRC_RSRQ_Range_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_RSRQ_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RSRQ_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRQ_Range = { + "RSRQ-Range", + "RSRQ-Range", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RSRQ_Range_tags_1, + sizeof(asn_DEF_ASN_RRC_RSRQ_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRQ_Range_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RSRQ_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RSRQ_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRQ_Range_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RSRQ_Range_constr_1, ASN_RRC_RSRQ_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RSRQ-Range.h b/src/asn/rrc/ASN_RRC_RSRQ-Range.h new file mode 100644 index 0000000..b0924fa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRQ-Range.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RSRQ_Range_H_ +#define _ASN_RRC_RSRQ_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RSRQ-Range */ +typedef long ASN_RRC_RSRQ_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RSRQ_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRQ_Range; +asn_struct_free_f ASN_RRC_RSRQ_Range_free; +asn_struct_print_f ASN_RRC_RSRQ_Range_print; +asn_constr_check_f ASN_RRC_RSRQ_Range_constraint; +ber_type_decoder_f ASN_RRC_RSRQ_Range_decode_ber; +der_type_encoder_f ASN_RRC_RSRQ_Range_encode_der; +xer_type_decoder_f ASN_RRC_RSRQ_Range_decode_xer; +xer_type_encoder_f ASN_RRC_RSRQ_Range_encode_xer; +per_type_decoder_f ASN_RRC_RSRQ_Range_decode_uper; +per_type_encoder_f ASN_RRC_RSRQ_Range_encode_uper; +per_type_decoder_f ASN_RRC_RSRQ_Range_decode_aper; +per_type_encoder_f ASN_RRC_RSRQ_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RSRQ_Range_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.c b/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.c new file mode 100644 index 0000000..035538d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RSRQ-RangeEUTRA.h" + +int +ASN_RRC_RSRQ_RangeEUTRA_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_ASN_RRC_RSRQ_RangeEUTRA_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_ASN_RRC_RSRQ_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRQ_RangeEUTRA = { + "RSRQ-RangeEUTRA", + "RSRQ-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RSRQ_RangeEUTRA_constr_1, ASN_RRC_RSRQ_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.h b/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.h new file mode 100644 index 0000000..da85939 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RSRQ-RangeEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RSRQ_RangeEUTRA_H_ +#define _ASN_RRC_RSRQ_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RSRQ-RangeEUTRA */ +typedef long ASN_RRC_RSRQ_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RSRQ_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RSRQ_RangeEUTRA; +asn_struct_free_f ASN_RRC_RSRQ_RangeEUTRA_free; +asn_struct_print_f ASN_RRC_RSRQ_RangeEUTRA_print; +asn_constr_check_f ASN_RRC_RSRQ_RangeEUTRA_constraint; +ber_type_decoder_f ASN_RRC_RSRQ_RangeEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_RSRQ_RangeEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_RSRQ_RangeEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_RSRQ_RangeEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_RSRQ_RangeEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_RSRQ_RangeEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_RSRQ_RangeEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_RSRQ_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RSRQ_RangeEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RadioBearerConfig.c b/src/asn/rrc/ASN_RRC_RadioBearerConfig.c new file mode 100644 index 0000000..67b3a9e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioBearerConfig.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RadioBearerConfig.h" + +#include "ASN_RRC_SRB-ToAddModList.h" +#include "ASN_RRC_DRB-ToAddModList.h" +#include "ASN_RRC_DRB-ToReleaseList.h" +#include "ASN_RRC_SecurityConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_srb3_ToRelease_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_srb3_ToRelease_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_srb3_ToRelease_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srb3_ToRelease_specs_3 = { + asn_MAP_ASN_RRC_srb3_ToRelease_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srb3_ToRelease_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srb3_ToRelease_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_ASN_RRC_srb3_ToRelease_3 = { + "srb3-ToRelease", + "srb3-ToRelease", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srb3_ToRelease_tags_3, + sizeof(asn_DEF_ASN_RRC_srb3_ToRelease_tags_3) + /sizeof(asn_DEF_ASN_RRC_srb3_ToRelease_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srb3_ToRelease_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srb3_ToRelease_tags_3) + /sizeof(asn_DEF_ASN_RRC_srb3_ToRelease_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srb3_ToRelease_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srb3_ToRelease_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RadioBearerConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_RadioBearerConfig, srb_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRB_ToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-ToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RadioBearerConfig, srb3_ToRelease), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srb3_ToRelease_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb3-ToRelease" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RadioBearerConfig, drb_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_ToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RadioBearerConfig, drb_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRB_ToReleaseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RadioBearerConfig, securityConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityConfig" + }, +}; +static const int asn_MAP_ASN_RRC_RadioBearerConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RadioBearerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RadioBearerConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srb-ToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srb3-ToRelease */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* drb-ToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* drb-ToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* securityConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioBearerConfig_specs_1 = { + sizeof(struct ASN_RRC_RadioBearerConfig), + offsetof(struct ASN_RRC_RadioBearerConfig, _asn_ctx), + asn_MAP_ASN_RRC_RadioBearerConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RadioBearerConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioBearerConfig = { + "RadioBearerConfig", + "RadioBearerConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RadioBearerConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_RadioBearerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioBearerConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RadioBearerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RadioBearerConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioBearerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RadioBearerConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RadioBearerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RadioBearerConfig.h b/src/asn/rrc/ASN_RRC_RadioBearerConfig.h new file mode 100644 index 0000000..ebc8083 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioBearerConfig.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RadioBearerConfig_H_ +#define _ASN_RRC_RadioBearerConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RadioBearerConfig__srb3_ToRelease { + ASN_RRC_RadioBearerConfig__srb3_ToRelease_true = 0 +} e_ASN_RRC_RadioBearerConfig__srb3_ToRelease; + +/* Forward declarations */ +struct ASN_RRC_SRB_ToAddModList; +struct ASN_RRC_DRB_ToAddModList; +struct ASN_RRC_DRB_ToReleaseList; +struct ASN_RRC_SecurityConfig; + +/* ASN_RRC_RadioBearerConfig */ +typedef struct ASN_RRC_RadioBearerConfig { + struct ASN_RRC_SRB_ToAddModList *srb_ToAddModList; /* OPTIONAL */ + long *srb3_ToRelease; /* OPTIONAL */ + struct ASN_RRC_DRB_ToAddModList *drb_ToAddModList; /* OPTIONAL */ + struct ASN_RRC_DRB_ToReleaseList *drb_ToReleaseList; /* OPTIONAL */ + struct ASN_RRC_SecurityConfig *securityConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RadioBearerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srb3_ToRelease_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioBearerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioBearerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RadioBearerConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RadioBearerConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.c b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.c new file mode 100644 index 0000000..17257cc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.c @@ -0,0 +1,345 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RadioLinkMonitoringConfig.h" + +#include "ASN_RRC_RadioLinkMonitoringRS.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 int +memb_ASN_RRC_failureDetectionResourcesToAddModList_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 <= 10)) { + /* 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 int +memb_ASN_RRC_failureDetectionResourcesToReleaseList_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 <= 10)) { + /* 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_ASN_RRC_failureDetectionResourcesToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_failureDetectionResourcesToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_beamFailureInstanceMaxCount_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_beamFailureDetectionTimer_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_failureDetectionResourcesToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_failureDetectionResourcesToReleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 10 } /* (SIZE(1..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_failureDetectionResourcesToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RadioLinkMonitoringRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_failureDetectionResourcesToAddModList_specs_2 = { + sizeof(struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList), + offsetof(struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_2 = { + "failureDetectionResourcesToAddModList", + "failureDetectionResourcesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureDetectionResourcesToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_failureDetectionResourcesToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_failureDetectionResourcesToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_failureDetectionResourcesToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_failureDetectionResourcesToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList), + offsetof(struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_4 = { + "failureDetectionResourcesToReleaseList", + "failureDetectionResourcesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_failureDetectionResourcesToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_failureDetectionResourcesToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_failureDetectionResourcesToReleaseList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_beamFailureInstanceMaxCount_value2enum_6[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" }, + { 4, 2, "n5" }, + { 5, 2, "n6" }, + { 6, 2, "n8" }, + { 7, 3, "n10" } +}; +static const unsigned int asn_MAP_ASN_RRC_beamFailureInstanceMaxCount_enum2value_6[] = { + 0, /* n1(0) */ + 7, /* n10(7) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3, /* n4(3) */ + 4, /* n5(4) */ + 5, /* n6(5) */ + 6 /* n8(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_beamFailureInstanceMaxCount_specs_6 = { + asn_MAP_ASN_RRC_beamFailureInstanceMaxCount_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_beamFailureInstanceMaxCount_enum2value_6, /* 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_ASN_RRC_beamFailureInstanceMaxCount_tags_6[] = { + (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_ASN_RRC_beamFailureInstanceMaxCount_6 = { + "beamFailureInstanceMaxCount", + "beamFailureInstanceMaxCount", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6, + sizeof(asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6) + /sizeof(asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6) + /sizeof(asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_beamFailureInstanceMaxCount_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_beamFailureInstanceMaxCount_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_beamFailureDetectionTimer_value2enum_15[] = { + { 0, 5, "pbfd1" }, + { 1, 5, "pbfd2" }, + { 2, 5, "pbfd3" }, + { 3, 5, "pbfd4" }, + { 4, 5, "pbfd5" }, + { 5, 5, "pbfd6" }, + { 6, 5, "pbfd8" }, + { 7, 6, "pbfd10" } +}; +static const unsigned int asn_MAP_ASN_RRC_beamFailureDetectionTimer_enum2value_15[] = { + 0, /* pbfd1(0) */ + 7, /* pbfd10(7) */ + 1, /* pbfd2(1) */ + 2, /* pbfd3(2) */ + 3, /* pbfd4(3) */ + 4, /* pbfd5(4) */ + 5, /* pbfd6(5) */ + 6 /* pbfd8(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_beamFailureDetectionTimer_specs_15 = { + asn_MAP_ASN_RRC_beamFailureDetectionTimer_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_beamFailureDetectionTimer_enum2value_15, /* 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_ASN_RRC_beamFailureDetectionTimer_tags_15[] = { + (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_ASN_RRC_beamFailureDetectionTimer_15 = { + "beamFailureDetectionTimer", + "beamFailureDetectionTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15, + sizeof(asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15) + /sizeof(asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15) + /sizeof(asn_DEF_ASN_RRC_beamFailureDetectionTimer_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_beamFailureDetectionTimer_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_beamFailureDetectionTimer_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RadioLinkMonitoringConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_RadioLinkMonitoringConfig, failureDetectionResourcesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_failureDetectionResourcesToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_failureDetectionResourcesToAddModList_constr_2, memb_ASN_RRC_failureDetectionResourcesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "failureDetectionResourcesToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_RadioLinkMonitoringConfig, failureDetectionResourcesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_failureDetectionResourcesToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_failureDetectionResourcesToReleaseList_constr_4, memb_ASN_RRC_failureDetectionResourcesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "failureDetectionResourcesToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_RadioLinkMonitoringConfig, beamFailureInstanceMaxCount), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureInstanceMaxCount" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RadioLinkMonitoringConfig, beamFailureDetectionTimer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_beamFailureDetectionTimer_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureDetectionTimer" + }, +}; +static const int asn_MAP_ASN_RRC_RadioLinkMonitoringConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RadioLinkMonitoringConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureDetectionResourcesToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* failureDetectionResourcesToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* beamFailureInstanceMaxCount */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* beamFailureDetectionTimer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioLinkMonitoringConfig_specs_1 = { + sizeof(struct ASN_RRC_RadioLinkMonitoringConfig), + offsetof(struct ASN_RRC_RadioLinkMonitoringConfig, _asn_ctx), + asn_MAP_ASN_RRC_RadioLinkMonitoringConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RadioLinkMonitoringConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioLinkMonitoringConfig = { + "RadioLinkMonitoringConfig", + "RadioLinkMonitoringConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RadioLinkMonitoringConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RadioLinkMonitoringConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.h b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.h new file mode 100644 index 0000000..53dc727 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringConfig.h @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RadioLinkMonitoringConfig_H_ +#define _ASN_RRC_RadioLinkMonitoringConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "ASN_RRC_RadioLinkMonitoringRS-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount { + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n1 = 0, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n2 = 1, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n3 = 2, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n4 = 3, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n5 = 4, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n6 = 5, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n8 = 6, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n10 = 7 +} e_ASN_RRC_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount; +typedef enum ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer { + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd1 = 0, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd2 = 1, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd3 = 2, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd4 = 3, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd5 = 4, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd6 = 5, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd8 = 6, + ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd10 = 7 +} e_ASN_RRC_RadioLinkMonitoringConfig__beamFailureDetectionTimer; + +/* Forward declarations */ +struct ASN_RRC_RadioLinkMonitoringRS; + +/* ASN_RRC_RadioLinkMonitoringConfig */ +typedef struct ASN_RRC_RadioLinkMonitoringConfig { + struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_RadioLinkMonitoringRS) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *failureDetectionResourcesToAddModList; + struct ASN_RRC_RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList { + A_SEQUENCE_OF(ASN_RRC_RadioLinkMonitoringRS_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *failureDetectionResourcesToReleaseList; + long *beamFailureInstanceMaxCount; /* OPTIONAL */ + long *beamFailureDetectionTimer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RadioLinkMonitoringConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamFailureInstanceMaxCount_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_beamFailureDetectionTimer_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioLinkMonitoringConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioLinkMonitoringConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RadioLinkMonitoringConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RadioLinkMonitoringConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.c b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.c new file mode 100644 index 0000000..53bd82b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RadioLinkMonitoringRS-Id.h" + +int +ASN_RRC_RadioLinkMonitoringRS_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 <= 9)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_RadioLinkMonitoringRS_Id_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id = { + "RadioLinkMonitoringRS-Id", + "RadioLinkMonitoringRS-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RadioLinkMonitoringRS_Id_constr_1, ASN_RRC_RadioLinkMonitoringRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.h b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.h new file mode 100644 index 0000000..c109b83 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RadioLinkMonitoringRS_Id_H_ +#define _ASN_RRC_RadioLinkMonitoringRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RadioLinkMonitoringRS-Id */ +typedef long ASN_RRC_RadioLinkMonitoringRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RadioLinkMonitoringRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id; +asn_struct_free_f ASN_RRC_RadioLinkMonitoringRS_Id_free; +asn_struct_print_f ASN_RRC_RadioLinkMonitoringRS_Id_print; +asn_constr_check_f ASN_RRC_RadioLinkMonitoringRS_Id_constraint; +ber_type_decoder_f ASN_RRC_RadioLinkMonitoringRS_Id_decode_ber; +der_type_encoder_f ASN_RRC_RadioLinkMonitoringRS_Id_encode_der; +xer_type_decoder_f ASN_RRC_RadioLinkMonitoringRS_Id_decode_xer; +xer_type_encoder_f ASN_RRC_RadioLinkMonitoringRS_Id_encode_xer; +per_type_decoder_f ASN_RRC_RadioLinkMonitoringRS_Id_decode_uper; +per_type_encoder_f ASN_RRC_RadioLinkMonitoringRS_Id_encode_uper; +per_type_decoder_f ASN_RRC_RadioLinkMonitoringRS_Id_decode_aper; +per_type_encoder_f ASN_RRC_RadioLinkMonitoringRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RadioLinkMonitoringRS_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.c b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.c new file mode 100644 index 0000000..4d857fa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RadioLinkMonitoringRS.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_purpose_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_type_ASN_RRC_detectionResource_constr_7 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_ASN_RRC_purpose_value2enum_3[] = { + { 0, 11, "beamFailure" }, + { 1, 3, "rlf" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_ASN_RRC_purpose_enum2value_3[] = { + 0, /* beamFailure(0) */ + 2, /* both(2) */ + 1 /* rlf(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_purpose_specs_3 = { + asn_MAP_ASN_RRC_purpose_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_purpose_enum2value_3, /* 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_ASN_RRC_purpose_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_ASN_RRC_purpose_3 = { + "purpose", + "purpose", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_purpose_tags_3, + sizeof(asn_DEF_ASN_RRC_purpose_tags_3) + /sizeof(asn_DEF_ASN_RRC_purpose_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_purpose_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_purpose_tags_3) + /sizeof(asn_DEF_ASN_RRC_purpose_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_purpose_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_purpose_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_detectionResource_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RadioLinkMonitoringRS__detectionResource, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RadioLinkMonitoringRS__detectionResource, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_detectionResource_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Index */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_detectionResource_specs_7 = { + sizeof(struct ASN_RRC_RadioLinkMonitoringRS__detectionResource), + offsetof(struct ASN_RRC_RadioLinkMonitoringRS__detectionResource, _asn_ctx), + offsetof(struct ASN_RRC_RadioLinkMonitoringRS__detectionResource, present), + sizeof(((struct ASN_RRC_RadioLinkMonitoringRS__detectionResource *)0)->present), + asn_MAP_ASN_RRC_detectionResource_tag2el_7, + 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_ASN_RRC_detectionResource_7 = { + "detectionResource", + "detectionResource", + &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_ASN_RRC_detectionResource_constr_7, CHOICE_constraint }, + asn_MBR_ASN_RRC_detectionResource_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_detectionResource_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RadioLinkMonitoringRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RadioLinkMonitoringRS, radioLinkMonitoringRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RadioLinkMonitoringRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioLinkMonitoringRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RadioLinkMonitoringRS, purpose), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_purpose_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "purpose" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RadioLinkMonitoringRS, detectionResource), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_detectionResource_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionResource" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RadioLinkMonitoringRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* radioLinkMonitoringRS-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* purpose */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* detectionResource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioLinkMonitoringRS_specs_1 = { + sizeof(struct ASN_RRC_RadioLinkMonitoringRS), + offsetof(struct ASN_RRC_RadioLinkMonitoringRS, _asn_ctx), + asn_MAP_ASN_RRC_RadioLinkMonitoringRS_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_ASN_RRC_RadioLinkMonitoringRS = { + "RadioLinkMonitoringRS", + "RadioLinkMonitoringRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1, + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_RadioLinkMonitoringRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RadioLinkMonitoringRS_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_RadioLinkMonitoringRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.h b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.h new file mode 100644 index 0000000..1a1d797 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RadioLinkMonitoringRS.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RadioLinkMonitoringRS_H_ +#define _ASN_RRC_RadioLinkMonitoringRS_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RadioLinkMonitoringRS-Id.h" +#include +#include "ASN_RRC_SSB-Index.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RadioLinkMonitoringRS__purpose { + ASN_RRC_RadioLinkMonitoringRS__purpose_beamFailure = 0, + ASN_RRC_RadioLinkMonitoringRS__purpose_rlf = 1, + ASN_RRC_RadioLinkMonitoringRS__purpose_both = 2 +} e_ASN_RRC_RadioLinkMonitoringRS__purpose; +typedef enum ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR { + ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR_NOTHING, /* No components present */ + ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR_ssb_Index, + ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR_csi_RS_Index +} ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR; + +/* ASN_RRC_RadioLinkMonitoringRS */ +typedef struct ASN_RRC_RadioLinkMonitoringRS { + ASN_RRC_RadioLinkMonitoringRS_Id_t radioLinkMonitoringRS_Id; + long purpose; + struct ASN_RRC_RadioLinkMonitoringRS__detectionResource { + ASN_RRC_RadioLinkMonitoringRS__detectionResource_PR present; + union ASN_RRC_RadioLinkMonitoringRS__ASN_RRC_detectionResource_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } detectionResource; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RadioLinkMonitoringRS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_purpose_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RadioLinkMonitoringRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RadioLinkMonitoringRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RadioLinkMonitoringRS_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RadioLinkMonitoringRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RangeToBestCell.c b/src/asn/rrc/ASN_RRC_RangeToBestCell.c new file mode 100644 index 0000000..805dec4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RangeToBestCell.c @@ -0,0 +1,36 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RangeToBestCell.h" + +/* + * This type is implemented using ASN_RRC_Q_OffsetRange, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_RangeToBestCell_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RangeToBestCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RangeToBestCell = { + "RangeToBestCell", + "RangeToBestCell", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_RangeToBestCell_tags_1, + sizeof(asn_DEF_ASN_RRC_RangeToBestCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_RangeToBestCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RangeToBestCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RangeToBestCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_RangeToBestCell_tags_1[0]), /* 1 */ + { 0, 0, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RangeToBestCell.h b/src/asn/rrc/ASN_RRC_RangeToBestCell.h new file mode 100644 index 0000000..aa4cacd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RangeToBestCell.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RangeToBestCell_H_ +#define _ASN_RRC_RangeToBestCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_Q-OffsetRange.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RangeToBestCell */ +typedef ASN_RRC_Q_OffsetRange_t ASN_RRC_RangeToBestCell_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RangeToBestCell_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RangeToBestCell; +asn_struct_free_f ASN_RRC_RangeToBestCell_free; +asn_struct_print_f ASN_RRC_RangeToBestCell_print; +asn_constr_check_f ASN_RRC_RangeToBestCell_constraint; +ber_type_decoder_f ASN_RRC_RangeToBestCell_decode_ber; +der_type_encoder_f ASN_RRC_RangeToBestCell_encode_der; +xer_type_decoder_f ASN_RRC_RangeToBestCell_decode_xer; +xer_type_encoder_f ASN_RRC_RangeToBestCell_encode_xer; +per_type_decoder_f ASN_RRC_RangeToBestCell_decode_uper; +per_type_encoder_f ASN_RRC_RangeToBestCell_encode_uper; +per_type_decoder_f ASN_RRC_RangeToBestCell_decode_aper; +per_type_encoder_f ASN_RRC_RangeToBestCell_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RangeToBestCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RateMatchPattern.c b/src/asn/rrc/ASN_RRC_RateMatchPattern.c new file mode 100644 index 0000000..e094561 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPattern.c @@ -0,0 +1,765 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RateMatchPattern.h" + +static int +memb_ASN_RRC_oneSlot_constraint_6(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 == 14)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_twoSlots_constraint_6(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_ASN_RRC_n2_constraint_9(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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_n4_constraint_9(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 == 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_ASN_RRC_n5_constraint_9(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 int +memb_ASN_RRC_n8_constraint_9(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_ASN_RRC_n10_constraint_9(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)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_n20_constraint_9(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_ASN_RRC_n40_constraint_9(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_ASN_RRC_resourceBlocks_constraint_4(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 == 275)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_memb_ASN_RRC_oneSlot_constr_7 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 14, 14 } /* (SIZE(14..14)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_twoSlots_constr_8 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_type_ASN_RRC_symbolsInResourceBlock_constr_6 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_ASN_RRC_n2_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_n4_constr_11 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_ASN_RRC_n5_constr_12 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_per_constraints_t asn_PER_memb_ASN_RRC_n8_constr_13 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_ASN_RRC_n10_constr_14 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 10, 10 } /* (SIZE(10..10)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_n20_constr_15 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_ASN_RRC_n40_constr_16 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_type_ASN_RRC_periodicityAndPattern_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_resourceBlocks_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 275, 275 } /* (SIZE(275..275)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_patternType_constr_3 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_type_ASN_RRC_dummy_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_symbolsInResourceBlock_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, choice.oneSlot), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_oneSlot_constr_7, memb_ASN_RRC_oneSlot_constraint_6 }, + 0, 0, /* No default value */ + "oneSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, choice.twoSlots), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_twoSlots_constr_8, memb_ASN_RRC_twoSlots_constraint_6 }, + 0, 0, /* No default value */ + "twoSlots" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_symbolsInResourceBlock_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* oneSlot */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* twoSlots */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_symbolsInResourceBlock_specs_6 = { + sizeof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock), + offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, _asn_ctx), + offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, present), + sizeof(((struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock *)0)->present), + asn_MAP_ASN_RRC_symbolsInResourceBlock_tag2el_6, + 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_ASN_RRC_symbolsInResourceBlock_6 = { + "symbolsInResourceBlock", + "symbolsInResourceBlock", + &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_ASN_RRC_symbolsInResourceBlock_constr_6, CHOICE_constraint }, + asn_MBR_ASN_RRC_symbolsInResourceBlock_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_symbolsInResourceBlock_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodicityAndPattern_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n2_constr_10, memb_ASN_RRC_n2_constraint_9 }, + 0, 0, /* No default value */ + "n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n4_constr_11, memb_ASN_RRC_n4_constraint_9 }, + 0, 0, /* No default value */ + "n4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n5), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n5_constr_12, memb_ASN_RRC_n5_constraint_9 }, + 0, 0, /* No default value */ + "n5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n8_constr_13, memb_ASN_RRC_n8_constraint_9 }, + 0, 0, /* No default value */ + "n8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n10), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n10_constr_14, memb_ASN_RRC_n10_constraint_9 }, + 0, 0, /* No default value */ + "n10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n20_constr_15, memb_ASN_RRC_n20_constraint_9 }, + 0, 0, /* No default value */ + "n20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n40), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_n40_constr_16, memb_ASN_RRC_n40_constraint_9 }, + 0, 0, /* No default value */ + "n40" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodicityAndPattern_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* n4 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* n5 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* n8 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* n10 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* n20 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* n40 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_periodicityAndPattern_specs_9 = { + sizeof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern), + offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, _asn_ctx), + offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern, present), + sizeof(((struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern *)0)->present), + asn_MAP_ASN_RRC_periodicityAndPattern_tag2el_9, + 7, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicityAndPattern_9 = { + "periodicityAndPattern", + "periodicityAndPattern", + &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_ASN_RRC_periodicityAndPattern_constr_9, CHOICE_constraint }, + asn_MBR_ASN_RRC_periodicityAndPattern_9, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_periodicityAndPattern_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_bitmaps_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps, resourceBlocks), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_resourceBlocks_constr_5, memb_ASN_RRC_resourceBlocks_constraint_4 }, + 0, 0, /* No default value */ + "resourceBlocks" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps, symbolsInResourceBlock), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_symbolsInResourceBlock_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "symbolsInResourceBlock" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps, periodicityAndPattern), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicityAndPattern_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndPattern" + }, +}; +static const int asn_MAP_ASN_RRC_bitmaps_oms_4[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bitmaps_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_bitmaps_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceBlocks */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* symbolsInResourceBlock */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* periodicityAndPattern */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_bitmaps_specs_4 = { + sizeof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps), + offsetof(struct ASN_RRC_RateMatchPattern__patternType__bitmaps, _asn_ctx), + asn_MAP_ASN_RRC_bitmaps_tag2el_4, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_bitmaps_oms_4, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bitmaps_4 = { + "bitmaps", + "bitmaps", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_bitmaps_tags_4, + sizeof(asn_DEF_ASN_RRC_bitmaps_tags_4) + /sizeof(asn_DEF_ASN_RRC_bitmaps_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bitmaps_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bitmaps_tags_4) + /sizeof(asn_DEF_ASN_RRC_bitmaps_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_bitmaps_4, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_bitmaps_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_patternType_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType, choice.bitmaps), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_bitmaps_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bitmaps" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern__patternType, choice.controlResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSet" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_patternType_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bitmaps */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* controlResourceSet */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_patternType_specs_3 = { + sizeof(struct ASN_RRC_RateMatchPattern__patternType), + offsetof(struct ASN_RRC_RateMatchPattern__patternType, _asn_ctx), + offsetof(struct ASN_RRC_RateMatchPattern__patternType, present), + sizeof(((struct ASN_RRC_RateMatchPattern__patternType *)0)->present), + asn_MAP_ASN_RRC_patternType_tag2el_3, + 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_ASN_RRC_patternType_3 = { + "patternType", + "patternType", + &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_ASN_RRC_patternType_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_patternType_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_patternType_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_20[] = { + { 0, 7, "dynamic" }, + { 1, 10, "semiStatic" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_20[] = { + 0, /* dynamic(0) */ + 1 /* semiStatic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_20 = { + asn_MAP_ASN_RRC_dummy_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_20, /* 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_ASN_RRC_dummy_tags_20[] = { + (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_ASN_RRC_dummy_20 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_20, + sizeof(asn_DEF_ASN_RRC_dummy_tags_20) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_20) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPattern_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern, rateMatchPatternId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern, patternType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_patternType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "patternType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RateMatchPattern, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPattern, dummy), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_ASN_RRC_RateMatchPattern_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RateMatchPattern_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RateMatchPattern_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rateMatchPatternId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* patternType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* dummy */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RateMatchPattern_specs_1 = { + sizeof(struct ASN_RRC_RateMatchPattern), + offsetof(struct ASN_RRC_RateMatchPattern, _asn_ctx), + asn_MAP_ASN_RRC_RateMatchPattern_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RateMatchPattern_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPattern = { + "RateMatchPattern", + "RateMatchPattern", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RateMatchPattern_tags_1, + sizeof(asn_DEF_ASN_RRC_RateMatchPattern_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPattern_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RateMatchPattern_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RateMatchPattern_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPattern_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RateMatchPattern_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_RateMatchPattern_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RateMatchPattern.h b/src/asn/rrc/ASN_RRC_RateMatchPattern.h new file mode 100644 index 0000000..ec4ae6a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPattern.h @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RateMatchPattern_H_ +#define _ASN_RRC_RateMatchPattern_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RateMatchPatternId.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include "ASN_RRC_ControlResourceSetId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RateMatchPattern__patternType_PR { + ASN_RRC_RateMatchPattern__patternType_PR_NOTHING, /* No components present */ + ASN_RRC_RateMatchPattern__patternType_PR_bitmaps, + ASN_RRC_RateMatchPattern__patternType_PR_controlResourceSet +} ASN_RRC_RateMatchPattern__patternType_PR; +typedef enum ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR { + ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_NOTHING, /* No components present */ + ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_oneSlot, + ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_twoSlots +} ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR; +typedef enum ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR { + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_NOTHING, /* No components present */ + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n2, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n4, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n5, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n8, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n10, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n20, + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n40 +} ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR; +typedef enum ASN_RRC_RateMatchPattern__dummy { + ASN_RRC_RateMatchPattern__dummy_dynamic = 0, + ASN_RRC_RateMatchPattern__dummy_semiStatic = 1 +} e_ASN_RRC_RateMatchPattern__dummy; + +/* ASN_RRC_RateMatchPattern */ +typedef struct ASN_RRC_RateMatchPattern { + ASN_RRC_RateMatchPatternId_t rateMatchPatternId; + struct ASN_RRC_RateMatchPattern__patternType { + ASN_RRC_RateMatchPattern__patternType_PR present; + union ASN_RRC_RateMatchPattern__ASN_RRC_patternType_u { + struct ASN_RRC_RateMatchPattern__patternType__bitmaps { + BIT_STRING_t resourceBlocks; + struct ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock { + ASN_RRC_RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR present; + union ASN_RRC_RateMatchPattern__ASN_RRC_patternType__ASN_RRC_bitmaps__ASN_RRC_symbolsInResourceBlock_u { + BIT_STRING_t oneSlot; + BIT_STRING_t twoSlots; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } symbolsInResourceBlock; + struct ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern { + ASN_RRC_RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR present; + union ASN_RRC_RateMatchPattern__ASN_RRC_patternType__ASN_RRC_bitmaps__ASN_RRC_periodicityAndPattern_u { + BIT_STRING_t n2; + BIT_STRING_t n4; + BIT_STRING_t n5; + BIT_STRING_t n8; + BIT_STRING_t n10; + BIT_STRING_t n20; + BIT_STRING_t n40; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *periodicityAndPattern; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *bitmaps; + ASN_RRC_ControlResourceSetId_t controlResourceSet; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } patternType; + ASN_RRC_SubcarrierSpacing_t *subcarrierSpacing; /* OPTIONAL */ + long dummy; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RateMatchPattern_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_20; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPattern; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RateMatchPattern_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPattern_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RateMatchPattern_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.c b/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.c new file mode 100644 index 0000000..535702d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RateMatchPatternGroup.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_Member_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_RateMatchPatternGroup_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_ASN_RRC_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternGroup__Member, choice.cellLevel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellLevel" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternGroup__Member, choice.bwpLevel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwpLevel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Member_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellLevel */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* bwpLevel */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_Member_specs_2 = { + sizeof(struct ASN_RRC_RateMatchPatternGroup__Member), + offsetof(struct ASN_RRC_RateMatchPatternGroup__Member, _asn_ctx), + offsetof(struct ASN_RRC_RateMatchPatternGroup__Member, present), + sizeof(((struct ASN_RRC_RateMatchPatternGroup__Member *)0)->present), + asn_MAP_ASN_RRC_Member_tag2el_2, + 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_ASN_RRC_Member_2 = { + "CHOICE", + "CHOICE", + &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_ASN_RRC_Member_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_Member_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPatternGroup_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_Member_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_RateMatchPatternGroup_specs_1 = { + sizeof(struct ASN_RRC_RateMatchPatternGroup), + offsetof(struct ASN_RRC_RateMatchPatternGroup, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternGroup = { + "RateMatchPatternGroup", + "RateMatchPatternGroup", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1, + sizeof(asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternGroup_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RateMatchPatternGroup_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_RateMatchPatternGroup_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_RateMatchPatternGroup_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.h b/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.h new file mode 100644 index 0000000..fb89cdf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternGroup.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RateMatchPatternGroup_H_ +#define _ASN_RRC_RateMatchPatternGroup_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_RateMatchPatternId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RateMatchPatternGroup__Member_PR { + ASN_RRC_RateMatchPatternGroup__Member_PR_NOTHING, /* No components present */ + ASN_RRC_RateMatchPatternGroup__Member_PR_cellLevel, + ASN_RRC_RateMatchPatternGroup__Member_PR_bwpLevel +} ASN_RRC_RateMatchPatternGroup__Member_PR; + +/* Forward definitions */ +typedef struct ASN_RRC_RateMatchPatternGroup__Member { + ASN_RRC_RateMatchPatternGroup__Member_PR present; + union ASN_RRC_RateMatchPatternGroup__ASN_RRC_Member_u { + ASN_RRC_RateMatchPatternId_t cellLevel; + ASN_RRC_RateMatchPatternId_t bwpLevel; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RateMatchPatternGroup__Member; + +/* ASN_RRC_RateMatchPatternGroup */ +typedef struct ASN_RRC_RateMatchPatternGroup { + A_SEQUENCE_OF(RateMatchPatternGroup__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RateMatchPatternGroup_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternGroup; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_RateMatchPatternGroup_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPatternGroup_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RateMatchPatternGroup_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RateMatchPatternGroup_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternId.c b/src/asn/rrc/ASN_RRC_RateMatchPatternId.c new file mode 100644 index 0000000..59b9ce3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RateMatchPatternId.h" + +int +ASN_RRC_RateMatchPatternId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_RateMatchPatternId_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 ber_tlv_tag_t asn_DEF_ASN_RRC_RateMatchPatternId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternId = { + "RateMatchPatternId", + "RateMatchPatternId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RateMatchPatternId_tags_1, + sizeof(asn_DEF_ASN_RRC_RateMatchPatternId_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RateMatchPatternId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RateMatchPatternId_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RateMatchPatternId_constr_1, ASN_RRC_RateMatchPatternId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternId.h b/src/asn/rrc/ASN_RRC_RateMatchPatternId.h new file mode 100644 index 0000000..7765f52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RateMatchPatternId_H_ +#define _ASN_RRC_RateMatchPatternId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RateMatchPatternId */ +typedef long ASN_RRC_RateMatchPatternId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RateMatchPatternId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternId; +asn_struct_free_f ASN_RRC_RateMatchPatternId_free; +asn_struct_print_f ASN_RRC_RateMatchPatternId_print; +asn_constr_check_f ASN_RRC_RateMatchPatternId_constraint; +ber_type_decoder_f ASN_RRC_RateMatchPatternId_decode_ber; +der_type_encoder_f ASN_RRC_RateMatchPatternId_encode_der; +xer_type_decoder_f ASN_RRC_RateMatchPatternId_decode_xer; +xer_type_encoder_f ASN_RRC_RateMatchPatternId_encode_xer; +per_type_decoder_f ASN_RRC_RateMatchPatternId_decode_uper; +per_type_encoder_f ASN_RRC_RateMatchPatternId_encode_uper; +per_type_decoder_f ASN_RRC_RateMatchPatternId_decode_aper; +per_type_encoder_f ASN_RRC_RateMatchPatternId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RateMatchPatternId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.c b/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.c new file mode 100644 index 0000000..a3c8044 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.c @@ -0,0 +1,283 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RateMatchPatternLTE-CRS.h" + +#include "ASN_RRC_EUTRA-MBSFN-SubframeConfigList.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 int +memb_ASN_RRC_carrierFreqDL_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 <= 16383)) { + /* Constraint 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_ASN_RRC_carrierBandwidthDL_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_nrofCRS_Ports_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_v_Shift_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_carrierFreqDL_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 14, 14, 0, 16383 } /* (0..16383) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_carrierBandwidthDL_value2enum_3[] = { + { 0, 2, "n6" }, + { 1, 3, "n15" }, + { 2, 3, "n25" }, + { 3, 3, "n50" }, + { 4, 3, "n75" }, + { 5, 4, "n100" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_carrierBandwidthDL_enum2value_3[] = { + 5, /* n100(5) */ + 1, /* n15(1) */ + 2, /* n25(2) */ + 3, /* n50(3) */ + 0, /* n6(0) */ + 4, /* n75(4) */ + 7, /* spare1(7) */ + 6 /* spare2(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_carrierBandwidthDL_specs_3 = { + asn_MAP_ASN_RRC_carrierBandwidthDL_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_carrierBandwidthDL_enum2value_3, /* 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_ASN_RRC_carrierBandwidthDL_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_ASN_RRC_carrierBandwidthDL_3 = { + "carrierBandwidthDL", + "carrierBandwidthDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3, + sizeof(asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3) + /sizeof(asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3) + /sizeof(asn_DEF_ASN_RRC_carrierBandwidthDL_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_carrierBandwidthDL_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_carrierBandwidthDL_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofCRS_Ports_value2enum_13[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofCRS_Ports_enum2value_13[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofCRS_Ports_specs_13 = { + asn_MAP_ASN_RRC_nrofCRS_Ports_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofCRS_Ports_enum2value_13, /* 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_ASN_RRC_nrofCRS_Ports_tags_13[] = { + (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_ASN_RRC_nrofCRS_Ports_13 = { + "nrofCRS-Ports", + "nrofCRS-Ports", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13, + sizeof(asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13) + /sizeof(asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13) + /sizeof(asn_DEF_ASN_RRC_nrofCRS_Ports_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofCRS_Ports_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofCRS_Ports_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_v_Shift_value2enum_17[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" } +}; +static const unsigned int asn_MAP_ASN_RRC_v_Shift_enum2value_17[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5 /* n5(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_v_Shift_specs_17 = { + asn_MAP_ASN_RRC_v_Shift_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_v_Shift_enum2value_17, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_v_Shift_tags_17[] = { + (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_ASN_RRC_v_Shift_17 = { + "v-Shift", + "v-Shift", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_v_Shift_tags_17, + sizeof(asn_DEF_ASN_RRC_v_Shift_tags_17) + /sizeof(asn_DEF_ASN_RRC_v_Shift_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_v_Shift_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_v_Shift_tags_17) + /sizeof(asn_DEF_ASN_RRC_v_Shift_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_v_Shift_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_v_Shift_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPatternLTE_CRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, carrierFreqDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_carrierFreqDL_constr_2, memb_ASN_RRC_carrierFreqDL_constraint_1 }, + 0, 0, /* No default value */ + "carrierFreqDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, carrierBandwidthDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_carrierBandwidthDL_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierBandwidthDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, mbsfn_SubframeConfigList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_MBSFN_SubframeConfigList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mbsfn-SubframeConfigList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, nrofCRS_Ports), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofCRS_Ports_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCRS-Ports" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, v_Shift), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_v_Shift_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "v-Shift" + }, +}; +static const int asn_MAP_ASN_RRC_RateMatchPatternLTE_CRS_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RateMatchPatternLTE_CRS_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreqDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* carrierBandwidthDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mbsfn-SubframeConfigList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrofCRS-Ports */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* v-Shift */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RateMatchPatternLTE_CRS_specs_1 = { + sizeof(struct ASN_RRC_RateMatchPatternLTE_CRS), + offsetof(struct ASN_RRC_RateMatchPatternLTE_CRS, _asn_ctx), + asn_MAP_ASN_RRC_RateMatchPatternLTE_CRS_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RateMatchPatternLTE_CRS_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS = { + "RateMatchPatternLTE-CRS", + "RateMatchPatternLTE-CRS", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1, + sizeof(asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1) + /sizeof(asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RateMatchPatternLTE_CRS_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_RateMatchPatternLTE_CRS_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.h b/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.h new file mode 100644 index 0000000..78e8b63 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RateMatchPatternLTE-CRS.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RateMatchPatternLTE_CRS_H_ +#define _ASN_RRC_RateMatchPatternLTE_CRS_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL { + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n6 = 0, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n15 = 1, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n25 = 2, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n50 = 3, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n75 = 4, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_n100 = 5, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_spare2 = 6, + ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL_spare1 = 7 +} e_ASN_RRC_RateMatchPatternLTE_CRS__carrierBandwidthDL; +typedef enum ASN_RRC_RateMatchPatternLTE_CRS__nrofCRS_Ports { + ASN_RRC_RateMatchPatternLTE_CRS__nrofCRS_Ports_n1 = 0, + ASN_RRC_RateMatchPatternLTE_CRS__nrofCRS_Ports_n2 = 1, + ASN_RRC_RateMatchPatternLTE_CRS__nrofCRS_Ports_n4 = 2 +} e_ASN_RRC_RateMatchPatternLTE_CRS__nrofCRS_Ports; +typedef enum ASN_RRC_RateMatchPatternLTE_CRS__v_Shift { + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n0 = 0, + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n1 = 1, + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n2 = 2, + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n3 = 3, + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n4 = 4, + ASN_RRC_RateMatchPatternLTE_CRS__v_Shift_n5 = 5 +} e_ASN_RRC_RateMatchPatternLTE_CRS__v_Shift; + +/* Forward declarations */ +struct ASN_RRC_EUTRA_MBSFN_SubframeConfigList; + +/* ASN_RRC_RateMatchPatternLTE-CRS */ +typedef struct ASN_RRC_RateMatchPatternLTE_CRS { + long carrierFreqDL; + long carrierBandwidthDL; + struct ASN_RRC_EUTRA_MBSFN_SubframeConfigList *mbsfn_SubframeConfigList; /* OPTIONAL */ + long nrofCRS_Ports; + long v_Shift; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RateMatchPatternLTE_CRS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_carrierBandwidthDL_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofCRS_Ports_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_v_Shift_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RateMatchPatternLTE_CRS_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RateMatchPatternLTE_CRS_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RateMatchPatternLTE_CRS_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.c b/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.c new file mode 100644 index 0000000..5e0908d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.c @@ -0,0 +1,252 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReconfigurationWithSync.h" + +#include "ASN_RRC_ServingCellConfigCommon.h" +#include "ASN_RRC_RACH-ConfigDedicated.h" +#include "ASN_RRC_SSB-MTC.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_t304_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_rach_ConfigDedicated_constr_13 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_ASN_RRC_t304_value2enum_4[] = { + { 0, 4, "ms50" }, + { 1, 5, "ms100" }, + { 2, 5, "ms150" }, + { 3, 5, "ms200" }, + { 4, 5, "ms500" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms2000" }, + { 7, 7, "ms10000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t304_enum2value_4[] = { + 1, /* ms100(1) */ + 5, /* ms1000(5) */ + 7, /* ms10000(7) */ + 2, /* ms150(2) */ + 3, /* ms200(3) */ + 6, /* ms2000(6) */ + 0, /* ms50(0) */ + 4 /* ms500(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t304_specs_4 = { + asn_MAP_ASN_RRC_t304_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t304_enum2value_4, /* 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_ASN_RRC_t304_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_ASN_RRC_t304_4 = { + "t304", + "t304", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t304_tags_4, + sizeof(asn_DEF_ASN_RRC_t304_tags_4) + /sizeof(asn_DEF_ASN_RRC_t304_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t304_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t304_tags_4) + /sizeof(asn_DEF_ASN_RRC_t304_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t304_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t304_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rach_ConfigDedicated_13[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated, choice.uplink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplink" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated, choice.supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rach_ConfigDedicated_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uplink */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* supplementaryUplink */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_rach_ConfigDedicated_specs_13 = { + sizeof(struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated), + offsetof(struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated, _asn_ctx), + offsetof(struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated, present), + sizeof(((struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated *)0)->present), + asn_MAP_ASN_RRC_rach_ConfigDedicated_tag2el_13, + 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_ASN_RRC_rach_ConfigDedicated_13 = { + "rach-ConfigDedicated", + "rach-ConfigDedicated", + &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_ASN_RRC_rach_ConfigDedicated_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_rach_ConfigDedicated_13, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_rach_ConfigDedicated_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_17[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReconfigurationWithSync__ext1, smtc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_17[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* smtc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_17 = { + sizeof(struct ASN_RRC_ReconfigurationWithSync__ext1), + offsetof(struct ASN_RRC_ReconfigurationWithSync__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_17, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_17, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_17 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_17, + sizeof(asn_DEF_ASN_RRC_ext1_tags_17) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_17) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_17, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReconfigurationWithSync_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReconfigurationWithSync, spCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServingCellConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfigCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReconfigurationWithSync, newUE_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "newUE-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReconfigurationWithSync, t304), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t304_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t304" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ReconfigurationWithSync, rach_ConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rach_ConfigDedicated_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigDedicated" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReconfigurationWithSync, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_ReconfigurationWithSync_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReconfigurationWithSync_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* spCellConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* newUE-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* t304 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rach-ConfigDedicated */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReconfigurationWithSync_specs_1 = { + sizeof(struct ASN_RRC_ReconfigurationWithSync), + offsetof(struct ASN_RRC_ReconfigurationWithSync, _asn_ctx), + asn_MAP_ASN_RRC_ReconfigurationWithSync_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ReconfigurationWithSync_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReconfigurationWithSync = { + "ReconfigurationWithSync", + "ReconfigurationWithSync", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1, + sizeof(asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReconfigurationWithSync_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReconfigurationWithSync_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_ReconfigurationWithSync_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.h b/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.h new file mode 100644 index 0000000..6ff165c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReconfigurationWithSync.h @@ -0,0 +1,87 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReconfigurationWithSync_H_ +#define _ASN_RRC_ReconfigurationWithSync_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RNTI-Value.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReconfigurationWithSync__t304 { + ASN_RRC_ReconfigurationWithSync__t304_ms50 = 0, + ASN_RRC_ReconfigurationWithSync__t304_ms100 = 1, + ASN_RRC_ReconfigurationWithSync__t304_ms150 = 2, + ASN_RRC_ReconfigurationWithSync__t304_ms200 = 3, + ASN_RRC_ReconfigurationWithSync__t304_ms500 = 4, + ASN_RRC_ReconfigurationWithSync__t304_ms1000 = 5, + ASN_RRC_ReconfigurationWithSync__t304_ms2000 = 6, + ASN_RRC_ReconfigurationWithSync__t304_ms10000 = 7 +} e_ASN_RRC_ReconfigurationWithSync__t304; +typedef enum ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR { + ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR_NOTHING, /* No components present */ + ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR_uplink, + ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR_supplementaryUplink +} ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR; + +/* Forward declarations */ +struct ASN_RRC_ServingCellConfigCommon; +struct ASN_RRC_RACH_ConfigDedicated; +struct ASN_RRC_SSB_MTC; + +/* ASN_RRC_ReconfigurationWithSync */ +typedef struct ASN_RRC_ReconfigurationWithSync { + struct ASN_RRC_ServingCellConfigCommon *spCellConfigCommon; /* OPTIONAL */ + ASN_RRC_RNTI_Value_t newUE_Identity; + long t304; + struct ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated { + ASN_RRC_ReconfigurationWithSync__rach_ConfigDedicated_PR present; + union ASN_RRC_ReconfigurationWithSync__ASN_RRC_rach_ConfigDedicated_u { + struct ASN_RRC_RACH_ConfigDedicated *uplink; + struct ASN_RRC_RACH_ConfigDedicated *supplementaryUplink; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rach_ConfigDedicated; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ReconfigurationWithSync__ext1 { + struct ASN_RRC_SSB_MTC *smtc; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReconfigurationWithSync_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t304_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReconfigurationWithSync; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReconfigurationWithSync_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReconfigurationWithSync_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReconfigurationWithSync_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.c b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.c new file mode 100644 index 0000000..0d70b0a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.c @@ -0,0 +1,108 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RedirectedCarrierInfo-EUTRA.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_cnType_constr_3 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_ASN_RRC_cnType_value2enum_3[] = { + { 0, 3, "epc" }, + { 1, 6, "fiveGC" } +}; +static const unsigned int asn_MAP_ASN_RRC_cnType_enum2value_3[] = { + 0, /* epc(0) */ + 1 /* fiveGC(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cnType_specs_3 = { + asn_MAP_ASN_RRC_cnType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_cnType_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cnType_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_ASN_RRC_cnType_3 = { + "cnType", + "cnType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_cnType_tags_3, + sizeof(asn_DEF_ASN_RRC_cnType_tags_3) + /sizeof(asn_DEF_ASN_RRC_cnType_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cnType_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cnType_tags_3) + /sizeof(asn_DEF_ASN_RRC_cnType_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_cnType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_cnType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_RedirectedCarrierInfo_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RedirectedCarrierInfo_EUTRA, eutraFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutraFrequency" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RedirectedCarrierInfo_EUTRA, cnType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_cnType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cnType" + }, +}; +static const int asn_MAP_ASN_RRC_RedirectedCarrierInfo_EUTRA_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RedirectedCarrierInfo_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eutraFrequency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cnType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RedirectedCarrierInfo_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_RedirectedCarrierInfo_EUTRA), + offsetof(struct ASN_RRC_RedirectedCarrierInfo_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_RedirectedCarrierInfo_EUTRA_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RedirectedCarrierInfo_EUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA = { + "RedirectedCarrierInfo-EUTRA", + "RedirectedCarrierInfo-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RedirectedCarrierInfo_EUTRA_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RedirectedCarrierInfo_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.h b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.h new file mode 100644 index 0000000..cc9b69c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo-EUTRA.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RedirectedCarrierInfo_EUTRA_H_ +#define _ASN_RRC_RedirectedCarrierInfo_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RedirectedCarrierInfo_EUTRA__cnType { + ASN_RRC_RedirectedCarrierInfo_EUTRA__cnType_epc = 0, + ASN_RRC_RedirectedCarrierInfo_EUTRA__cnType_fiveGC = 1 +} e_ASN_RRC_RedirectedCarrierInfo_EUTRA__cnType; + +/* ASN_RRC_RedirectedCarrierInfo-EUTRA */ +typedef struct ASN_RRC_RedirectedCarrierInfo_EUTRA { + ASN_RRC_ARFCN_ValueEUTRA_t eutraFrequency; + long *cnType; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RedirectedCarrierInfo_EUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cnType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RedirectedCarrierInfo_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RedirectedCarrierInfo_EUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RedirectedCarrierInfo_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.c b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.c new file mode 100644 index 0000000..7dad1d0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RedirectedCarrierInfo.h" + +#include "ASN_RRC_CarrierInfoNR.h" +#include "ASN_RRC_RedirectedCarrierInfo-EUTRA.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_RedirectedCarrierInfo_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_ASN_RRC_RedirectedCarrierInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RedirectedCarrierInfo, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CarrierInfoNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_RedirectedCarrierInfo, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RedirectedCarrierInfo_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RedirectedCarrierInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eutra */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RedirectedCarrierInfo_specs_1 = { + sizeof(struct ASN_RRC_RedirectedCarrierInfo), + offsetof(struct ASN_RRC_RedirectedCarrierInfo, _asn_ctx), + offsetof(struct ASN_RRC_RedirectedCarrierInfo, present), + sizeof(((struct ASN_RRC_RedirectedCarrierInfo *)0)->present), + asn_MAP_ASN_RRC_RedirectedCarrierInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RedirectedCarrierInfo = { + "RedirectedCarrierInfo", + "RedirectedCarrierInfo", + &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_ASN_RRC_RedirectedCarrierInfo_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_RedirectedCarrierInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RedirectedCarrierInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.h b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.h new file mode 100644 index 0000000..cacef9c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RedirectedCarrierInfo.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RedirectedCarrierInfo_H_ +#define _ASN_RRC_RedirectedCarrierInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_RedirectedCarrierInfo_PR { + ASN_RRC_RedirectedCarrierInfo_PR_NOTHING, /* No components present */ + ASN_RRC_RedirectedCarrierInfo_PR_nr, + ASN_RRC_RedirectedCarrierInfo_PR_eutra + /* Extensions may appear below */ + +} ASN_RRC_RedirectedCarrierInfo_PR; + +/* Forward declarations */ +struct ASN_RRC_CarrierInfoNR; +struct ASN_RRC_RedirectedCarrierInfo_EUTRA; + +/* ASN_RRC_RedirectedCarrierInfo */ +typedef struct ASN_RRC_RedirectedCarrierInfo { + ASN_RRC_RedirectedCarrierInfo_PR present; + union ASN_RRC_RedirectedCarrierInfo_u { + struct ASN_RRC_CarrierInfoNR *nr; + struct ASN_RRC_RedirectedCarrierInfo_EUTRA *eutra; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RedirectedCarrierInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RedirectedCarrierInfo; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_RedirectedCarrierInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RedirectedCarrierInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RedirectedCarrierInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RedirectedCarrierInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.c b/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.c new file mode 100644 index 0000000..d28f7d7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReducedAggregatedBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ReducedAggregatedBandwidth_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ReducedAggregatedBandwidth_value2enum_1[] = { + { 0, 4, "mhz0" }, + { 1, 5, "mhz10" }, + { 2, 5, "mhz20" }, + { 3, 5, "mhz30" }, + { 4, 5, "mhz40" }, + { 5, 5, "mhz50" }, + { 6, 5, "mhz60" }, + { 7, 5, "mhz80" }, + { 8, 6, "mhz100" }, + { 9, 6, "mhz200" }, + { 10, 6, "mhz300" }, + { 11, 6, "mhz400" } +}; +static const unsigned int asn_MAP_ASN_RRC_ReducedAggregatedBandwidth_enum2value_1[] = { + 0, /* mhz0(0) */ + 1, /* mhz10(1) */ + 8, /* mhz100(8) */ + 2, /* mhz20(2) */ + 9, /* mhz200(9) */ + 3, /* mhz30(3) */ + 10, /* mhz300(10) */ + 4, /* mhz40(4) */ + 11, /* mhz400(11) */ + 5, /* mhz50(5) */ + 6, /* mhz60(6) */ + 7 /* mhz80(7) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReducedAggregatedBandwidth_specs_1 = { + asn_MAP_ASN_RRC_ReducedAggregatedBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ReducedAggregatedBandwidth_enum2value_1, /* N => "tag"; sorted by N */ + 12, /* 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_ASN_RRC_ReducedAggregatedBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReducedAggregatedBandwidth = { + "ReducedAggregatedBandwidth", + "ReducedAggregatedBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1, + sizeof(asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReducedAggregatedBandwidth_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReducedAggregatedBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ReducedAggregatedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.h b/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.h new file mode 100644 index 0000000..50b403c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReducedAggregatedBandwidth.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReducedAggregatedBandwidth_H_ +#define _ASN_RRC_ReducedAggregatedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReducedAggregatedBandwidth { + ASN_RRC_ReducedAggregatedBandwidth_mhz0 = 0, + ASN_RRC_ReducedAggregatedBandwidth_mhz10 = 1, + ASN_RRC_ReducedAggregatedBandwidth_mhz20 = 2, + ASN_RRC_ReducedAggregatedBandwidth_mhz30 = 3, + ASN_RRC_ReducedAggregatedBandwidth_mhz40 = 4, + ASN_RRC_ReducedAggregatedBandwidth_mhz50 = 5, + ASN_RRC_ReducedAggregatedBandwidth_mhz60 = 6, + ASN_RRC_ReducedAggregatedBandwidth_mhz80 = 7, + ASN_RRC_ReducedAggregatedBandwidth_mhz100 = 8, + ASN_RRC_ReducedAggregatedBandwidth_mhz200 = 9, + ASN_RRC_ReducedAggregatedBandwidth_mhz300 = 10, + ASN_RRC_ReducedAggregatedBandwidth_mhz400 = 11 +} e_ASN_RRC_ReducedAggregatedBandwidth; + +/* ASN_RRC_ReducedAggregatedBandwidth */ +typedef long ASN_RRC_ReducedAggregatedBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReducedAggregatedBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReducedAggregatedBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReducedAggregatedBandwidth_specs_1; +asn_struct_free_f ASN_RRC_ReducedAggregatedBandwidth_free; +asn_struct_print_f ASN_RRC_ReducedAggregatedBandwidth_print; +asn_constr_check_f ASN_RRC_ReducedAggregatedBandwidth_constraint; +ber_type_decoder_f ASN_RRC_ReducedAggregatedBandwidth_decode_ber; +der_type_encoder_f ASN_RRC_ReducedAggregatedBandwidth_encode_der; +xer_type_decoder_f ASN_RRC_ReducedAggregatedBandwidth_decode_xer; +xer_type_encoder_f ASN_RRC_ReducedAggregatedBandwidth_encode_xer; +per_type_decoder_f ASN_RRC_ReducedAggregatedBandwidth_decode_uper; +per_type_encoder_f ASN_RRC_ReducedAggregatedBandwidth_encode_uper; +per_type_decoder_f ASN_RRC_ReducedAggregatedBandwidth_decode_aper; +per_type_encoder_f ASN_RRC_ReducedAggregatedBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReducedAggregatedBandwidth_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReestabNCellInfo.c b/src/asn/rrc/ASN_RRC_ReestabNCellInfo.c new file mode 100644 index 0000000..b5445e1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabNCellInfo.c @@ -0,0 +1,106 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReestabNCellInfo.h" + +static int +memb_ASN_RRC_key_gNodeB_Star_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 == 256)) { + /* Constraint 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_ASN_RRC_key_gNodeB_Star_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 256, 256 } /* (SIZE(256..256)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_ReestabNCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabNCellInfo, cellIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabNCellInfo, key_gNodeB_Star), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_key_gNodeB_Star_constr_3, memb_ASN_RRC_key_gNodeB_Star_constraint_1 }, + 0, 0, /* No default value */ + "key-gNodeB-Star" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabNCellInfo, shortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortMAC-I" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReestabNCellInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* key-gNodeB-Star */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* shortMAC-I */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestabNCellInfo_specs_1 = { + sizeof(struct ASN_RRC_ReestabNCellInfo), + offsetof(struct ASN_RRC_ReestabNCellInfo, _asn_ctx), + asn_MAP_ASN_RRC_ReestabNCellInfo_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_ASN_RRC_ReestabNCellInfo = { + "ReestabNCellInfo", + "ReestabNCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabNCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReestabNCellInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ReestabNCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReestabNCellInfo.h b/src/asn/rrc/ASN_RRC_ReestabNCellInfo.h new file mode 100644 index 0000000..bbe848a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabNCellInfo.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReestabNCellInfo_H_ +#define _ASN_RRC_ReestabNCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CellIdentity.h" +#include +#include "ASN_RRC_ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReestabNCellInfo */ +typedef struct ASN_RRC_ReestabNCellInfo { + ASN_RRC_CellIdentity_t cellIdentity; + BIT_STRING_t key_gNodeB_Star; + ASN_RRC_ShortMAC_I_t shortMAC_I; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReestabNCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestabNCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestabNCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReestabNCellInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReestabNCellInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.c b/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.c new file mode 100644 index 0000000..65d58d5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReestabNCellInfoList.h" + +#include "ASN_RRC_ReestabNCellInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_ReestabNCellInfoList_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_ASN_RRC_ReestabNCellInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ReestabNCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReestabNCellInfoList_specs_1 = { + sizeof(struct ASN_RRC_ReestabNCellInfoList), + offsetof(struct ASN_RRC_ReestabNCellInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestabNCellInfoList = { + "ReestabNCellInfoList", + "ReestabNCellInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1, + sizeof(asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabNCellInfoList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReestabNCellInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ReestabNCellInfoList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ReestabNCellInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.h b/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.h new file mode 100644 index 0000000..aab3152 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabNCellInfoList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReestabNCellInfoList_H_ +#define _ASN_RRC_ReestabNCellInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ReestabNCellInfo; + +/* ASN_RRC_ReestabNCellInfoList */ +typedef struct ASN_RRC_ReestabNCellInfoList { + A_SEQUENCE_OF(struct ASN_RRC_ReestabNCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReestabNCellInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestabNCellInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReestabNCellInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReestabNCellInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReestabNCellInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReestabNCellInfoList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReestabUE-Identity.c b/src/asn/rrc/ASN_RRC_ReestabUE-Identity.c new file mode 100644 index 0000000..eac73dd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabUE-Identity.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReestabUE-Identity.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReestabUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabUE_Identity, c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabUE_Identity, physCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestabUE_Identity, shortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortMAC-I" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReestabUE_Identity_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* shortMAC-I */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestabUE_Identity_specs_1 = { + sizeof(struct ASN_RRC_ReestabUE_Identity), + offsetof(struct ASN_RRC_ReestabUE_Identity, _asn_ctx), + asn_MAP_ASN_RRC_ReestabUE_Identity_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_ASN_RRC_ReestabUE_Identity = { + "ReestabUE-Identity", + "ReestabUE-Identity", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1, + sizeof(asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestabUE_Identity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReestabUE_Identity_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ReestabUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReestabUE-Identity.h b/src/asn/rrc/ASN_RRC_ReestabUE-Identity.h new file mode 100644 index 0000000..e42f351 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestabUE-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReestabUE_Identity_H_ +#define _ASN_RRC_ReestabUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RNTI-Value.h" +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReestabUE-Identity */ +typedef struct ASN_RRC_ReestabUE_Identity { + ASN_RRC_RNTI_Value_t c_RNTI; + ASN_RRC_PhysCellId_t physCellId; + ASN_RRC_ShortMAC_I_t shortMAC_I; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReestabUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestabUE_Identity; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestabUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReestabUE_Identity_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReestabUE_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReestablishmentCause.c b/src/asn/rrc/ASN_RRC_ReestablishmentCause.c new file mode 100644 index 0000000..d25fd30 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestablishmentCause.c @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReestablishmentCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ReestablishmentCause_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_ASN_RRC_ReestablishmentCause_value2enum_1[] = { + { 0, 22, "reconfigurationFailure" }, + { 1, 15, "handoverFailure" }, + { 2, 12, "otherFailure" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_ReestablishmentCause_enum2value_1[] = { + 1, /* handoverFailure(1) */ + 2, /* otherFailure(2) */ + 0, /* reconfigurationFailure(0) */ + 3 /* spare1(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReestablishmentCause_specs_1 = { + asn_MAP_ASN_RRC_ReestablishmentCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ReestablishmentCause_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_ASN_RRC_ReestablishmentCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestablishmentCause = { + "ReestablishmentCause", + "ReestablishmentCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ReestablishmentCause_tags_1, + sizeof(asn_DEF_ASN_RRC_ReestablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestablishmentCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReestablishmentCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReestablishmentCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestablishmentCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReestablishmentCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ReestablishmentCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReestablishmentCause.h b/src/asn/rrc/ASN_RRC_ReestablishmentCause.h new file mode 100644 index 0000000..df36f8f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestablishmentCause.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReestablishmentCause_H_ +#define _ASN_RRC_ReestablishmentCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReestablishmentCause { + ASN_RRC_ReestablishmentCause_reconfigurationFailure = 0, + ASN_RRC_ReestablishmentCause_handoverFailure = 1, + ASN_RRC_ReestablishmentCause_otherFailure = 2, + ASN_RRC_ReestablishmentCause_spare1 = 3 +} e_ASN_RRC_ReestablishmentCause; + +/* ASN_RRC_ReestablishmentCause */ +typedef long ASN_RRC_ReestablishmentCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReestablishmentCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestablishmentCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReestablishmentCause_specs_1; +asn_struct_free_f ASN_RRC_ReestablishmentCause_free; +asn_struct_print_f ASN_RRC_ReestablishmentCause_print; +asn_constr_check_f ASN_RRC_ReestablishmentCause_constraint; +ber_type_decoder_f ASN_RRC_ReestablishmentCause_decode_ber; +der_type_encoder_f ASN_RRC_ReestablishmentCause_encode_der; +xer_type_decoder_f ASN_RRC_ReestablishmentCause_decode_xer; +xer_type_encoder_f ASN_RRC_ReestablishmentCause_encode_xer; +per_type_decoder_f ASN_RRC_ReestablishmentCause_decode_uper; +per_type_encoder_f ASN_RRC_ReestablishmentCause_encode_uper; +per_type_decoder_f ASN_RRC_ReestablishmentCause_decode_aper; +per_type_encoder_f ASN_RRC_ReestablishmentCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReestablishmentCause_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReestablishmentInfo.c b/src/asn/rrc/ASN_RRC_ReestablishmentInfo.c new file mode 100644 index 0000000..d9c6f21 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestablishmentInfo.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReestablishmentInfo.h" + +#include "ASN_RRC_ReestabNCellInfoList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_ReestablishmentInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestablishmentInfo, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReestablishmentInfo, targetCellShortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellShortMAC-I" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReestablishmentInfo, additionalReestabInfoList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReestabNCellInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalReestabInfoList" + }, +}; +static const int asn_MAP_ASN_RRC_ReestablishmentInfo_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReestablishmentInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourcePhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetCellShortMAC-I */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* additionalReestabInfoList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestablishmentInfo_specs_1 = { + sizeof(struct ASN_RRC_ReestablishmentInfo), + offsetof(struct ASN_RRC_ReestablishmentInfo, _asn_ctx), + asn_MAP_ASN_RRC_ReestablishmentInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ReestablishmentInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestablishmentInfo = { + "ReestablishmentInfo", + "ReestablishmentInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReestablishmentInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReestablishmentInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ReestablishmentInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReestablishmentInfo.h b/src/asn/rrc/ASN_RRC_ReestablishmentInfo.h new file mode 100644 index 0000000..4fa79f1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReestablishmentInfo.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReestablishmentInfo_H_ +#define _ASN_RRC_ReestablishmentInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ReestabNCellInfoList; + +/* ASN_RRC_ReestablishmentInfo */ +typedef struct ASN_RRC_ReestablishmentInfo { + ASN_RRC_PhysCellId_t sourcePhysCellId; + ASN_RRC_ShortMAC_I_t targetCellShortMAC_I; + struct ASN_RRC_ReestabNCellInfoList *additionalReestabInfoList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReestablishmentInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReestablishmentInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReestablishmentInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReestablishmentInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReestablishmentInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.c b/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.c new file mode 100644 index 0000000..752db3e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReferenceSignalConfig.h" + +#include "ASN_RRC_SSB-ConfigMobility.h" +#include "ASN_RRC_SetupRelease.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_ReferenceSignalConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ReferenceSignalConfig, ssb_ConfigMobility), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_ConfigMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ConfigMobility" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReferenceSignalConfig, csi_rs_ResourceConfigMobility), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs-ResourceConfigMobility" + }, +}; +static const int asn_MAP_ASN_RRC_ReferenceSignalConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReferenceSignalConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-ConfigMobility */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-rs-ResourceConfigMobility */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReferenceSignalConfig_specs_1 = { + sizeof(struct ASN_RRC_ReferenceSignalConfig), + offsetof(struct ASN_RRC_ReferenceSignalConfig, _asn_ctx), + asn_MAP_ASN_RRC_ReferenceSignalConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ReferenceSignalConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReferenceSignalConfig = { + "ReferenceSignalConfig", + "ReferenceSignalConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReferenceSignalConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReferenceSignalConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ReferenceSignalConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.h b/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.h new file mode 100644 index 0000000..5ff5034 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReferenceSignalConfig.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReferenceSignalConfig_H_ +#define _ASN_RRC_ReferenceSignalConfig_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SSB_ConfigMobility; +struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility; + +/* ASN_RRC_ReferenceSignalConfig */ +typedef struct ASN_RRC_ReferenceSignalConfig { + struct ASN_RRC_SSB_ConfigMobility *ssb_ConfigMobility; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility *csi_rs_ResourceConfigMobility; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReferenceSignalConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReferenceSignalConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReferenceSignalConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReferenceSignalConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReferenceSignalConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RegisteredAMF.c b/src/asn/rrc/ASN_RRC_RegisteredAMF.c new file mode 100644 index 0000000..59dacb5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RegisteredAMF.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RegisteredAMF.h" + +#include "ASN_RRC_PLMN-Identity.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_RegisteredAMF_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_RegisteredAMF, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PLMN_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_RegisteredAMF, amf_Identifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AMF_Identifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amf-Identifier" + }, +}; +static const int asn_MAP_ASN_RRC_RegisteredAMF_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RegisteredAMF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_RegisteredAMF_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* amf-Identifier */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RegisteredAMF_specs_1 = { + sizeof(struct ASN_RRC_RegisteredAMF), + offsetof(struct ASN_RRC_RegisteredAMF, _asn_ctx), + asn_MAP_ASN_RRC_RegisteredAMF_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_RegisteredAMF_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RegisteredAMF = { + "RegisteredAMF", + "RegisteredAMF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_RegisteredAMF_tags_1, + sizeof(asn_DEF_ASN_RRC_RegisteredAMF_tags_1) + /sizeof(asn_DEF_ASN_RRC_RegisteredAMF_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RegisteredAMF_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RegisteredAMF_tags_1) + /sizeof(asn_DEF_ASN_RRC_RegisteredAMF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_RegisteredAMF_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_RegisteredAMF_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RegisteredAMF.h b/src/asn/rrc/ASN_RRC_RegisteredAMF.h new file mode 100644 index 0000000..49002db --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RegisteredAMF.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RegisteredAMF_H_ +#define _ASN_RRC_RegisteredAMF_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_AMF-Identifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_PLMN_Identity; + +/* ASN_RRC_RegisteredAMF */ +typedef struct ASN_RRC_RegisteredAMF { + struct ASN_RRC_PLMN_Identity *plmn_Identity; /* OPTIONAL */ + ASN_RRC_AMF_Identifier_t amf_Identifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_RegisteredAMF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RegisteredAMF; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_RegisteredAMF_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_RegisteredAMF_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RegisteredAMF_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_RejectWaitTime.c b/src/asn/rrc/ASN_RRC_RejectWaitTime.c new file mode 100644 index 0000000..21a2bc0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RejectWaitTime.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_RejectWaitTime.h" + +int +ASN_RRC_RejectWaitTime_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_RejectWaitTime_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_RejectWaitTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RejectWaitTime = { + "RejectWaitTime", + "RejectWaitTime", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_RejectWaitTime_tags_1, + sizeof(asn_DEF_ASN_RRC_RejectWaitTime_tags_1) + /sizeof(asn_DEF_ASN_RRC_RejectWaitTime_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_RejectWaitTime_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_RejectWaitTime_tags_1) + /sizeof(asn_DEF_ASN_RRC_RejectWaitTime_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_RejectWaitTime_constr_1, ASN_RRC_RejectWaitTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_RejectWaitTime.h b/src/asn/rrc/ASN_RRC_RejectWaitTime.h new file mode 100644 index 0000000..01797c9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_RejectWaitTime.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_RejectWaitTime_H_ +#define _ASN_RRC_RejectWaitTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_RejectWaitTime */ +typedef long ASN_RRC_RejectWaitTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_RejectWaitTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_RejectWaitTime; +asn_struct_free_f ASN_RRC_RejectWaitTime_free; +asn_struct_print_f ASN_RRC_RejectWaitTime_print; +asn_constr_check_f ASN_RRC_RejectWaitTime_constraint; +ber_type_decoder_f ASN_RRC_RejectWaitTime_decode_ber; +der_type_encoder_f ASN_RRC_RejectWaitTime_encode_der; +xer_type_decoder_f ASN_RRC_RejectWaitTime_decode_xer; +xer_type_encoder_f ASN_RRC_RejectWaitTime_encode_xer; +per_type_decoder_f ASN_RRC_RejectWaitTime_decode_uper; +per_type_encoder_f ASN_RRC_RejectWaitTime_encode_uper; +per_type_decoder_f ASN_RRC_RejectWaitTime_decode_aper; +per_type_encoder_f ASN_RRC_RejectWaitTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_RejectWaitTime_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.c b/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.c new file mode 100644 index 0000000..f32118a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportCGI-EUTRA.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportCGI_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportCGI_EUTRA, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportCGI_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellForWhichToReportCGI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportCGI_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_ReportCGI_EUTRA), + offsetof(struct ASN_RRC_ReportCGI_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_ReportCGI_EUTRA_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_ASN_RRC_ReportCGI_EUTRA = { + "ReportCGI-EUTRA", + "ReportCGI-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportCGI_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportCGI_EUTRA_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ReportCGI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.h b/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.h new file mode 100644 index 0000000..e35abcf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportCGI-EUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportCGI_EUTRA_H_ +#define _ASN_RRC_ReportCGI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportCGI-EUTRA */ +typedef struct ASN_RRC_ReportCGI_EUTRA { + ASN_RRC_EUTRA_PhysCellId_t cellForWhichToReportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportCGI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportCGI_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportCGI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportCGI_EUTRA_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportCGI_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportCGI.c b/src/asn/rrc/ASN_RRC_ReportCGI.c new file mode 100644 index 0000000..59f3395 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportCGI.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportCGI.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportCGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportCGI, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportCGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportCGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellForWhichToReportCGI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportCGI_specs_1 = { + sizeof(struct ASN_RRC_ReportCGI), + offsetof(struct ASN_RRC_ReportCGI, _asn_ctx), + asn_MAP_ASN_RRC_ReportCGI_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_ASN_RRC_ReportCGI = { + "ReportCGI", + "ReportCGI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportCGI_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportCGI_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportCGI_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportCGI_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportCGI_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportCGI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportCGI_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ReportCGI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportCGI.h b/src/asn/rrc/ASN_RRC_ReportCGI.h new file mode 100644 index 0000000..82e6b8d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportCGI.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportCGI_H_ +#define _ASN_RRC_ReportCGI_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportCGI */ +typedef struct ASN_RRC_ReportCGI { + ASN_RRC_PhysCellId_t cellForWhichToReportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportCGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportCGI; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportCGI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportCGI_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportCGI_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigId.c b/src/asn/rrc/ASN_RRC_ReportConfigId.c new file mode 100644 index 0000000..3da470d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigId.h" + +int +ASN_RRC_ReportConfigId_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigId = { + "ReportConfigId", + "ReportConfigId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ReportConfigId_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReportConfigId_constr_1, ASN_RRC_ReportConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigId.h b/src/asn/rrc/ASN_RRC_ReportConfigId.h new file mode 100644 index 0000000..30fcfef --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigId_H_ +#define _ASN_RRC_ReportConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportConfigId */ +typedef long ASN_RRC_ReportConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigId; +asn_struct_free_f ASN_RRC_ReportConfigId_free; +asn_struct_print_f ASN_RRC_ReportConfigId_print; +asn_constr_check_f ASN_RRC_ReportConfigId_constraint; +ber_type_decoder_f ASN_RRC_ReportConfigId_decode_ber; +der_type_encoder_f ASN_RRC_ReportConfigId_encode_der; +xer_type_decoder_f ASN_RRC_ReportConfigId_decode_xer; +xer_type_encoder_f ASN_RRC_ReportConfigId_encode_xer; +per_type_decoder_f ASN_RRC_ReportConfigId_decode_uper; +per_type_encoder_f ASN_RRC_ReportConfigId_encode_uper; +per_type_decoder_f ASN_RRC_ReportConfigId_decode_aper; +per_type_encoder_f ASN_RRC_ReportConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.c b/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.c new file mode 100644 index 0000000..175e911 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigInterRAT.h" + +#include "ASN_RRC_PeriodicalReportConfigInterRAT.h" +#include "ASN_RRC_EventTriggerConfigInterRAT.h" +#include "ASN_RRC_ReportCGI-EUTRA.h" +#include "ASN_RRC_ReportSFTD-EUTRA.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportType_constr_2 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_ASN_RRC_reportType_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, choice.periodical), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PeriodicalReportConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodical" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, choice.eventTriggered), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EventTriggerConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventTriggered" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, choice.reportCGI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportCGI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, choice.reportSFTD), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportSFTD_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSFTD" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportType_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodical */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventTriggered */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportCGI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* reportSFTD */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportType_specs_2 = { + sizeof(struct ASN_RRC_ReportConfigInterRAT__reportType), + offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, _asn_ctx), + offsetof(struct ASN_RRC_ReportConfigInterRAT__reportType, present), + sizeof(((struct ASN_RRC_ReportConfigInterRAT__reportType *)0)->present), + asn_MAP_ASN_RRC_reportType_tag2el_2, + 4, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportType_2 = { + "reportType", + "reportType", + &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_ASN_RRC_reportType_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_reportType_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_reportType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportConfigInterRAT, reportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportConfigInterRAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigInterRAT_specs_1 = { + sizeof(struct ASN_RRC_ReportConfigInterRAT), + offsetof(struct ASN_RRC_ReportConfigInterRAT, _asn_ctx), + asn_MAP_ASN_RRC_ReportConfigInterRAT_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_ASN_RRC_ReportConfigInterRAT = { + "ReportConfigInterRAT", + "ReportConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportConfigInterRAT_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ReportConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.h b/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.h new file mode 100644 index 0000000..92d45c0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigInterRAT.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigInterRAT_H_ +#define _ASN_RRC_ReportConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReportConfigInterRAT__reportType_PR { + ASN_RRC_ReportConfigInterRAT__reportType_PR_NOTHING, /* No components present */ + ASN_RRC_ReportConfigInterRAT__reportType_PR_periodical, + ASN_RRC_ReportConfigInterRAT__reportType_PR_eventTriggered, + ASN_RRC_ReportConfigInterRAT__reportType_PR_reportCGI, + /* Extensions may appear below */ + ASN_RRC_ReportConfigInterRAT__reportType_PR_reportSFTD +} ASN_RRC_ReportConfigInterRAT__reportType_PR; + +/* Forward declarations */ +struct ASN_RRC_PeriodicalReportConfigInterRAT; +struct ASN_RRC_EventTriggerConfigInterRAT; +struct ASN_RRC_ReportCGI_EUTRA; +struct ASN_RRC_ReportSFTD_EUTRA; + +/* ASN_RRC_ReportConfigInterRAT */ +typedef struct ASN_RRC_ReportConfigInterRAT { + struct ASN_RRC_ReportConfigInterRAT__reportType { + ASN_RRC_ReportConfigInterRAT__reportType_PR present; + union ASN_RRC_ReportConfigInterRAT__ASN_RRC_reportType_u { + struct ASN_RRC_PeriodicalReportConfigInterRAT *periodical; + struct ASN_RRC_EventTriggerConfigInterRAT *eventTriggered; + struct ASN_RRC_ReportCGI_EUTRA *reportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ReportSFTD_EUTRA *reportSFTD; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportConfigInterRAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigInterRAT_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigInterRAT_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigNR.c b/src/asn/rrc/ASN_RRC_ReportConfigNR.c new file mode 100644 index 0000000..7a4b3e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigNR.c @@ -0,0 +1,170 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigNR.h" + +#include "ASN_RRC_PeriodicalReportConfig.h" +#include "ASN_RRC_EventTriggerConfig.h" +#include "ASN_RRC_ReportCGI.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportType_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_TYPE_member_t asn_MBR_ASN_RRC_ext1_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportConfigNR__reportType__ext1, reportSFTD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportSFTD_NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSFTD" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSFTD */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_7 = { + sizeof(struct ASN_RRC_ReportConfigNR__reportType__ext1), + offsetof(struct ASN_RRC_ReportConfigNR__reportType__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_7, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_7, + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_7) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_7, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_reportType_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigNR__reportType, choice.periodical), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PeriodicalReportConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodical" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigNR__reportType, choice.eventTriggered), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EventTriggerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventTriggered" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigNR__reportType, choice.reportCGI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ReportConfigNR__reportType, choice.ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportType_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodical */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* eventTriggered */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportCGI */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportType_specs_2 = { + sizeof(struct ASN_RRC_ReportConfigNR__reportType), + offsetof(struct ASN_RRC_ReportConfigNR__reportType, _asn_ctx), + offsetof(struct ASN_RRC_ReportConfigNR__reportType, present), + sizeof(((struct ASN_RRC_ReportConfigNR__reportType *)0)->present), + asn_MAP_ASN_RRC_reportType_tag2el_2, + 4, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportType_2 = { + "reportType", + "reportType", + &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_ASN_RRC_reportType_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_reportType_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_reportType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportConfigNR, reportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportConfigNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigNR_specs_1 = { + sizeof(struct ASN_RRC_ReportConfigNR), + offsetof(struct ASN_RRC_ReportConfigNR, _asn_ctx), + asn_MAP_ASN_RRC_ReportConfigNR_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_ASN_RRC_ReportConfigNR = { + "ReportConfigNR", + "ReportConfigNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportConfigNR_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportConfigNR_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ReportConfigNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigNR.h b/src/asn/rrc/ASN_RRC_ReportConfigNR.h new file mode 100644 index 0000000..b4c79d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigNR.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigNR_H_ +#define _ASN_RRC_ReportConfigNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ReportSFTD-NR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReportConfigNR__reportType_PR { + ASN_RRC_ReportConfigNR__reportType_PR_NOTHING, /* No components present */ + ASN_RRC_ReportConfigNR__reportType_PR_periodical, + ASN_RRC_ReportConfigNR__reportType_PR_eventTriggered, + /* Extensions may appear below */ + ASN_RRC_ReportConfigNR__reportType_PR_reportCGI, + ASN_RRC_ReportConfigNR__reportType_PR_ext1 +} ASN_RRC_ReportConfigNR__reportType_PR; + +/* Forward declarations */ +struct ASN_RRC_PeriodicalReportConfig; +struct ASN_RRC_EventTriggerConfig; +struct ASN_RRC_ReportCGI; + +/* ASN_RRC_ReportConfigNR */ +typedef struct ASN_RRC_ReportConfigNR { + struct ASN_RRC_ReportConfigNR__reportType { + ASN_RRC_ReportConfigNR__reportType_PR present; + union ASN_RRC_ReportConfigNR__ASN_RRC_reportType_u { + struct ASN_RRC_PeriodicalReportConfig *periodical; + struct ASN_RRC_EventTriggerConfig *eventTriggered; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ReportCGI *reportCGI; + struct ASN_RRC_ReportConfigNR__reportType__ext1 { + ASN_RRC_ReportSFTD_NR_t reportSFTD; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportConfigNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigNR_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.c b/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.c new file mode 100644 index 0000000..271cb12 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigToAddMod.h" + +#include "ASN_RRC_ReportConfigNR.h" +#include "ASN_RRC_ReportConfigInterRAT.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_reportConfig_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_TYPE_member_t asn_MBR_ASN_RRC_reportConfig_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigToAddMod__reportConfig, choice.reportConfigNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigNR" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ReportConfigToAddMod__reportConfig, choice.reportConfigInterRAT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigInterRAT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportConfig_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportConfigNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportConfigInterRAT */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportConfig_specs_3 = { + sizeof(struct ASN_RRC_ReportConfigToAddMod__reportConfig), + offsetof(struct ASN_RRC_ReportConfigToAddMod__reportConfig, _asn_ctx), + offsetof(struct ASN_RRC_ReportConfigToAddMod__reportConfig, present), + sizeof(((struct ASN_RRC_ReportConfigToAddMod__reportConfig *)0)->present), + asn_MAP_ASN_RRC_reportConfig_tag2el_3, + 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_ASN_RRC_reportConfig_3 = { + "reportConfig", + "reportConfig", + &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_ASN_RRC_reportConfig_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_reportConfig_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_reportConfig_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportConfigToAddMod, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportConfigToAddMod, reportConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reportConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportConfigToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportConfigId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigToAddMod_specs_1 = { + sizeof(struct ASN_RRC_ReportConfigToAddMod), + offsetof(struct ASN_RRC_ReportConfigToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_ReportConfigToAddMod_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToAddMod = { + "ReportConfigToAddMod", + "ReportConfigToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportConfigToAddMod_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ReportConfigToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.h b/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.h new file mode 100644 index 0000000..156b588 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToAddMod.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigToAddMod_H_ +#define _ASN_RRC_ReportConfigToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ReportConfigId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReportConfigToAddMod__reportConfig_PR { + ASN_RRC_ReportConfigToAddMod__reportConfig_PR_NOTHING, /* No components present */ + ASN_RRC_ReportConfigToAddMod__reportConfig_PR_reportConfigNR, + /* Extensions may appear below */ + ASN_RRC_ReportConfigToAddMod__reportConfig_PR_reportConfigInterRAT +} ASN_RRC_ReportConfigToAddMod__reportConfig_PR; + +/* Forward declarations */ +struct ASN_RRC_ReportConfigNR; +struct ASN_RRC_ReportConfigInterRAT; + +/* ASN_RRC_ReportConfigToAddMod */ +typedef struct ASN_RRC_ReportConfigToAddMod { + ASN_RRC_ReportConfigId_t reportConfigId; + struct ASN_RRC_ReportConfigToAddMod__reportConfig { + ASN_RRC_ReportConfigToAddMod__reportConfig_PR present; + union ASN_RRC_ReportConfigToAddMod__ASN_RRC_reportConfig_u { + struct ASN_RRC_ReportConfigNR *reportConfigNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ReportConfigInterRAT *reportConfigInterRAT; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportConfig; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportConfigToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportConfigToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.c b/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.c new file mode 100644 index 0000000..8b0ed0d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigToAddModList.h" + +#include "ASN_RRC_ReportConfigToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigToAddModList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ReportConfigToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReportConfigToAddModList_specs_1 = { + sizeof(struct ASN_RRC_ReportConfigToAddModList), + offsetof(struct ASN_RRC_ReportConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToAddModList = { + "ReportConfigToAddModList", + "ReportConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReportConfigToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ReportConfigToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ReportConfigToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.h b/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.h new file mode 100644 index 0000000..045e8d1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigToAddModList_H_ +#define _ASN_RRC_ReportConfigToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ReportConfigToAddMod; + +/* ASN_RRC_ReportConfigToAddModList */ +typedef struct ASN_RRC_ReportConfigToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_ReportConfigToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportConfigToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReportConfigToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.c b/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.c new file mode 100644 index 0000000..9ca1412 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.c @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportConfigToRemoveList.h" + +asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigToRemoveList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReportConfigToRemoveList_specs_1 = { + sizeof(struct ASN_RRC_ReportConfigToRemoveList), + offsetof(struct ASN_RRC_ReportConfigToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToRemoveList = { + "ReportConfigToRemoveList", + "ReportConfigToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportConfigToRemoveList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReportConfigToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ReportConfigToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ReportConfigToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.h b/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.h new file mode 100644 index 0000000..d209637 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportConfigToRemoveList.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportConfigToRemoveList_H_ +#define _ASN_RRC_ReportConfigToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ReportConfigId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportConfigToRemoveList */ +typedef struct ASN_RRC_ReportConfigToRemoveList { + A_SEQUENCE_OF(ASN_RRC_ReportConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportConfigToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportConfigToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ReportConfigToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportConfigToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReportConfigToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportConfigToRemoveList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportInterval.c b/src/asn/rrc/ASN_RRC_ReportInterval.c new file mode 100644 index 0000000..08f2542 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportInterval.c @@ -0,0 +1,77 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportInterval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ReportInterval_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ReportInterval_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, 7, "ms20480" }, + { 9, 7, "ms40960" }, + { 10, 4, "min1" }, + { 11, 4, "min6" }, + { 12, 5, "min12" }, + { 13, 5, "min30" } +}; +static const unsigned int asn_MAP_ASN_RRC_ReportInterval_enum2value_1[] = { + 10, /* min1(10) */ + 12, /* min12(12) */ + 13, /* min30(13) */ + 11, /* min6(11) */ + 4, /* ms1024(4) */ + 7, /* ms10240(7) */ + 0, /* ms120(0) */ + 5, /* ms2048(5) */ + 8, /* ms20480(8) */ + 1, /* ms240(1) */ + 9, /* ms40960(9) */ + 2, /* ms480(2) */ + 6, /* ms5120(6) */ + 3 /* ms640(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReportInterval_specs_1 = { + asn_MAP_ASN_RRC_ReportInterval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ReportInterval_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* 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_ASN_RRC_ReportInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportInterval = { + "ReportInterval", + "ReportInterval", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ReportInterval_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportInterval_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportInterval_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportInterval_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportInterval_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReportInterval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ReportInterval_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportInterval.h b/src/asn/rrc/ASN_RRC_ReportInterval.h new file mode 100644 index 0000000..0787b81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportInterval.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportInterval_H_ +#define _ASN_RRC_ReportInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ReportInterval { + ASN_RRC_ReportInterval_ms120 = 0, + ASN_RRC_ReportInterval_ms240 = 1, + ASN_RRC_ReportInterval_ms480 = 2, + ASN_RRC_ReportInterval_ms640 = 3, + ASN_RRC_ReportInterval_ms1024 = 4, + ASN_RRC_ReportInterval_ms2048 = 5, + ASN_RRC_ReportInterval_ms5120 = 6, + ASN_RRC_ReportInterval_ms10240 = 7, + ASN_RRC_ReportInterval_ms20480 = 8, + ASN_RRC_ReportInterval_ms40960 = 9, + ASN_RRC_ReportInterval_min1 = 10, + ASN_RRC_ReportInterval_min6 = 11, + ASN_RRC_ReportInterval_min12 = 12, + ASN_RRC_ReportInterval_min30 = 13 +} e_ASN_RRC_ReportInterval; + +/* ASN_RRC_ReportInterval */ +typedef long ASN_RRC_ReportInterval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReportInterval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportInterval; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ReportInterval_specs_1; +asn_struct_free_f ASN_RRC_ReportInterval_free; +asn_struct_print_f ASN_RRC_ReportInterval_print; +asn_constr_check_f ASN_RRC_ReportInterval_constraint; +ber_type_decoder_f ASN_RRC_ReportInterval_decode_ber; +der_type_encoder_f ASN_RRC_ReportInterval_encode_der; +xer_type_decoder_f ASN_RRC_ReportInterval_decode_xer; +xer_type_encoder_f ASN_RRC_ReportInterval_encode_xer; +per_type_decoder_f ASN_RRC_ReportInterval_decode_uper; +per_type_encoder_f ASN_RRC_ReportInterval_encode_uper; +per_type_decoder_f ASN_RRC_ReportInterval_decode_aper; +per_type_encoder_f ASN_RRC_ReportInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportInterval_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.c b/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.c new file mode 100644 index 0000000..e63b69a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportSFTD-EUTRA.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportSFTD_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportSFTD_EUTRA, reportSFTD_Meas), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSFTD-Meas" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportSFTD_EUTRA, reportRSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportRSRP" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportSFTD_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSFTD-Meas */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportRSRP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportSFTD_EUTRA_specs_1 = { + sizeof(struct ASN_RRC_ReportSFTD_EUTRA), + offsetof(struct ASN_RRC_ReportSFTD_EUTRA, _asn_ctx), + asn_MAP_ASN_RRC_ReportSFTD_EUTRA_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_ASN_RRC_ReportSFTD_EUTRA = { + "ReportSFTD-EUTRA", + "ReportSFTD-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportSFTD_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportSFTD_EUTRA_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ReportSFTD_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.h b/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.h new file mode 100644 index 0000000..27fc5a4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportSFTD-EUTRA.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportSFTD_EUTRA_H_ +#define _ASN_RRC_ReportSFTD_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportSFTD-EUTRA */ +typedef struct ASN_RRC_ReportSFTD_EUTRA { + BOOLEAN_t reportSFTD_Meas; + BOOLEAN_t reportRSRP; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportSFTD_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportSFTD_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportSFTD_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportSFTD_EUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportSFTD_EUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReportSFTD-NR.c b/src/asn/rrc/ASN_RRC_ReportSFTD-NR.c new file mode 100644 index 0000000..e6220c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportSFTD-NR.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReportSFTD-NR.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ReportSFTD_NR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportSFTD_NR, reportSFTD_Meas), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSFTD-Meas" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ReportSFTD_NR, reportRSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportRSRP" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ReportSFTD_NR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSFTD-Meas */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* reportRSRP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportSFTD_NR_specs_1 = { + sizeof(struct ASN_RRC_ReportSFTD_NR), + offsetof(struct ASN_RRC_ReportSFTD_NR, _asn_ctx), + asn_MAP_ASN_RRC_ReportSFTD_NR_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_ASN_RRC_ReportSFTD_NR = { + "ReportSFTD-NR", + "ReportSFTD-NR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1, + sizeof(asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReportSFTD_NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ReportSFTD_NR_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ReportSFTD_NR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReportSFTD-NR.h b/src/asn/rrc/ASN_RRC_ReportSFTD-NR.h new file mode 100644 index 0000000..a589bb2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReportSFTD-NR.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReportSFTD_NR_H_ +#define _ASN_RRC_ReportSFTD_NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReportSFTD-NR */ +typedef struct ASN_RRC_ReportSFTD_NR { + BOOLEAN_t reportSFTD_Meas; + BOOLEAN_t reportRSRP; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ReportSFTD_NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReportSFTD_NR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ReportSFTD_NR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ReportSFTD_NR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReportSFTD_NR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReselectionThreshold.c b/src/asn/rrc/ASN_RRC_ReselectionThreshold.c new file mode 100644 index 0000000..c42b425 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReselectionThreshold.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReselectionThreshold.h" + +int +ASN_RRC_ReselectionThreshold_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ReselectionThreshold_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReselectionThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReselectionThreshold = { + "ReselectionThreshold", + "ReselectionThreshold", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ReselectionThreshold_tags_1, + sizeof(asn_DEF_ASN_RRC_ReselectionThreshold_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReselectionThreshold_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReselectionThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReselectionThreshold_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReselectionThreshold_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReselectionThreshold_constr_1, ASN_RRC_ReselectionThreshold_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReselectionThreshold.h b/src/asn/rrc/ASN_RRC_ReselectionThreshold.h new file mode 100644 index 0000000..955154e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReselectionThreshold.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReselectionThreshold_H_ +#define _ASN_RRC_ReselectionThreshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReselectionThreshold */ +typedef long ASN_RRC_ReselectionThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReselectionThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReselectionThreshold; +asn_struct_free_f ASN_RRC_ReselectionThreshold_free; +asn_struct_print_f ASN_RRC_ReselectionThreshold_print; +asn_constr_check_f ASN_RRC_ReselectionThreshold_constraint; +ber_type_decoder_f ASN_RRC_ReselectionThreshold_decode_ber; +der_type_encoder_f ASN_RRC_ReselectionThreshold_encode_der; +xer_type_decoder_f ASN_RRC_ReselectionThreshold_decode_xer; +xer_type_encoder_f ASN_RRC_ReselectionThreshold_encode_xer; +per_type_decoder_f ASN_RRC_ReselectionThreshold_decode_uper; +per_type_encoder_f ASN_RRC_ReselectionThreshold_encode_uper; +per_type_decoder_f ASN_RRC_ReselectionThreshold_decode_aper; +per_type_encoder_f ASN_RRC_ReselectionThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReselectionThreshold_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.c b/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.c new file mode 100644 index 0000000..389d069 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ReselectionThresholdQ.h" + +int +ASN_RRC_ReselectionThresholdQ_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ReselectionThresholdQ_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReselectionThresholdQ = { + "ReselectionThresholdQ", + "ReselectionThresholdQ", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1, + sizeof(asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1) + /sizeof(asn_DEF_ASN_RRC_ReselectionThresholdQ_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ReselectionThresholdQ_constr_1, ASN_RRC_ReselectionThresholdQ_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.h b/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.h new file mode 100644 index 0000000..2bc5fd8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ReselectionThresholdQ.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ReselectionThresholdQ_H_ +#define _ASN_RRC_ReselectionThresholdQ_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ReselectionThresholdQ */ +typedef long ASN_RRC_ReselectionThresholdQ_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ReselectionThresholdQ_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ReselectionThresholdQ; +asn_struct_free_f ASN_RRC_ReselectionThresholdQ_free; +asn_struct_print_f ASN_RRC_ReselectionThresholdQ_print; +asn_constr_check_f ASN_RRC_ReselectionThresholdQ_constraint; +ber_type_decoder_f ASN_RRC_ReselectionThresholdQ_decode_ber; +der_type_encoder_f ASN_RRC_ReselectionThresholdQ_encode_der; +xer_type_decoder_f ASN_RRC_ReselectionThresholdQ_decode_xer; +xer_type_encoder_f ASN_RRC_ReselectionThresholdQ_encode_xer; +per_type_decoder_f ASN_RRC_ReselectionThresholdQ_decode_uper; +per_type_encoder_f ASN_RRC_ReselectionThresholdQ_encode_uper; +per_type_decoder_f ASN_RRC_ReselectionThresholdQ_decode_aper; +per_type_encoder_f ASN_RRC_ReselectionThresholdQ_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ReselectionThresholdQ_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.c b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.c new file mode 100644 index 0000000..45d6c30 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ResultsPerCSI-RS-Index.h" + +#include "ASN_RRC_MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerCSI_RS_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ResultsPerCSI_RS_Index, csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ResultsPerCSI_RS_Index, csi_RS_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Results" + }, +}; +static const int asn_MAP_ASN_RRC_ResultsPerCSI_RS_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ResultsPerCSI_RS_Index_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-RS-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Results */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ResultsPerCSI_RS_Index_specs_1 = { + sizeof(struct ASN_RRC_ResultsPerCSI_RS_Index), + offsetof(struct ASN_RRC_ResultsPerCSI_RS_Index, _asn_ctx), + asn_MAP_ASN_RRC_ResultsPerCSI_RS_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ResultsPerCSI_RS_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index = { + "ResultsPerCSI-RS-Index", + "ResultsPerCSI-RS-Index", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1, + sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ResultsPerCSI_RS_Index_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ResultsPerCSI_RS_Index_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.h b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.h new file mode 100644 index 0000000..020e41f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-Index.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ResultsPerCSI_RS_Index_H_ +#define _ASN_RRC_ResultsPerCSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CSI-RS-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasQuantityResults; + +/* ASN_RRC_ResultsPerCSI-RS-Index */ +typedef struct ASN_RRC_ResultsPerCSI_RS_Index { + ASN_RRC_CSI_RS_Index_t csi_RS_Index; + struct ASN_RRC_MeasQuantityResults *csi_RS_Results; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ResultsPerCSI_RS_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ResultsPerCSI_RS_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerCSI_RS_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ResultsPerCSI_RS_Index_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.c b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.c new file mode 100644 index 0000000..a25f6ec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ResultsPerCSI-RS-IndexList.h" + +#include "ASN_RRC_ResultsPerCSI-RS-Index.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerCSI_RS_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ResultsPerCSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ResultsPerCSI_RS_IndexList_specs_1 = { + sizeof(struct ASN_RRC_ResultsPerCSI_RS_IndexList), + offsetof(struct ASN_RRC_ResultsPerCSI_RS_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList = { + "ResultsPerCSI-RS-IndexList", + "ResultsPerCSI-RS-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1, + sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ResultsPerCSI_RS_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ResultsPerCSI_RS_IndexList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ResultsPerCSI_RS_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.h b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.h new file mode 100644 index 0000000..50dae43 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerCSI-RS-IndexList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ResultsPerCSI_RS_IndexList_H_ +#define _ASN_RRC_ResultsPerCSI_RS_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ResultsPerCSI_RS_Index; + +/* ASN_RRC_ResultsPerCSI-RS-IndexList */ +typedef struct ASN_RRC_ResultsPerCSI_RS_IndexList { + A_SEQUENCE_OF(struct ASN_RRC_ResultsPerCSI_RS_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ResultsPerCSI_RS_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerCSI_RS_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ResultsPerCSI_RS_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerCSI_RS_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ResultsPerCSI_RS_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ResultsPerCSI_RS_IndexList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.c b/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.c new file mode 100644 index 0000000..b915152 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ResultsPerSSB-Index.h" + +#include "ASN_RRC_MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerSSB_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ResultsPerSSB_Index, ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ResultsPerSSB_Index, ssb_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Results" + }, +}; +static const int asn_MAP_ASN_RRC_ResultsPerSSB_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ResultsPerSSB_Index_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-Results */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ResultsPerSSB_Index_specs_1 = { + sizeof(struct ASN_RRC_ResultsPerSSB_Index), + offsetof(struct ASN_RRC_ResultsPerSSB_Index, _asn_ctx), + asn_MAP_ASN_RRC_ResultsPerSSB_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ResultsPerSSB_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerSSB_Index = { + "ResultsPerSSB-Index", + "ResultsPerSSB-Index", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1, + sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ResultsPerSSB_Index_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ResultsPerSSB_Index_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.h b/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.h new file mode 100644 index 0000000..842ceb1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerSSB-Index.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ResultsPerSSB_Index_H_ +#define _ASN_RRC_ResultsPerSSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SSB-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasQuantityResults; + +/* ASN_RRC_ResultsPerSSB-Index */ +typedef struct ASN_RRC_ResultsPerSSB_Index { + ASN_RRC_SSB_Index_t ssb_Index; + struct ASN_RRC_MeasQuantityResults *ssb_Results; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ResultsPerSSB_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerSSB_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ResultsPerSSB_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerSSB_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ResultsPerSSB_Index_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.c b/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.c new file mode 100644 index 0000000..f1ec423 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ResultsPerSSB-IndexList.h" + +#include "ASN_RRC_ResultsPerSSB-Index.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerSSB_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_ResultsPerSSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ResultsPerSSB_IndexList_specs_1 = { + sizeof(struct ASN_RRC_ResultsPerSSB_IndexList), + offsetof(struct ASN_RRC_ResultsPerSSB_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerSSB_IndexList = { + "ResultsPerSSB-IndexList", + "ResultsPerSSB-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1, + sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ResultsPerSSB_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_ResultsPerSSB_IndexList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_ResultsPerSSB_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.h b/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.h new file mode 100644 index 0000000..92b4ab3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResultsPerSSB-IndexList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ResultsPerSSB_IndexList_H_ +#define _ASN_RRC_ResultsPerSSB_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ResultsPerSSB_Index; + +/* ASN_RRC_ResultsPerSSB-IndexList */ +typedef struct ASN_RRC_ResultsPerSSB_IndexList { + A_SEQUENCE_OF(struct ASN_RRC_ResultsPerSSB_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ResultsPerSSB_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResultsPerSSB_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_ResultsPerSSB_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ResultsPerSSB_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ResultsPerSSB_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ResultsPerSSB_IndexList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ResumeCause.c b/src/asn/rrc/ASN_RRC_ResumeCause.c new file mode 100644 index 0000000..207c6e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResumeCause.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ResumeCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_ResumeCause_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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ResumeCause_value2enum_1[] = { + { 0, 9, "emergency" }, + { 1, 18, "highPriorityAccess" }, + { 2, 9, "mt-Access" }, + { 3, 13, "mo-Signalling" }, + { 4, 7, "mo-Data" }, + { 5, 12, "mo-VoiceCall" }, + { 6, 12, "mo-VideoCall" }, + { 7, 6, "mo-SMS" }, + { 8, 10, "rna-Update" }, + { 9, 18, "mps-PriorityAccess" }, + { 10, 18, "mcs-PriorityAccess" }, + { 11, 6, "spare1" }, + { 12, 6, "spare2" }, + { 13, 6, "spare3" }, + { 14, 6, "spare4" }, + { 15, 6, "spare5" } +}; +static const unsigned int asn_MAP_ASN_RRC_ResumeCause_enum2value_1[] = { + 0, /* emergency(0) */ + 1, /* highPriorityAccess(1) */ + 10, /* mcs-PriorityAccess(10) */ + 4, /* mo-Data(4) */ + 7, /* mo-SMS(7) */ + 3, /* mo-Signalling(3) */ + 6, /* mo-VideoCall(6) */ + 5, /* mo-VoiceCall(5) */ + 9, /* mps-PriorityAccess(9) */ + 2, /* mt-Access(2) */ + 8, /* rna-Update(8) */ + 11, /* spare1(11) */ + 12, /* spare2(12) */ + 13, /* spare3(13) */ + 14, /* spare4(14) */ + 15 /* spare5(15) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ResumeCause_specs_1 = { + asn_MAP_ASN_RRC_ResumeCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ResumeCause_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_ResumeCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResumeCause = { + "ResumeCause", + "ResumeCause", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ResumeCause_tags_1, + sizeof(asn_DEF_ASN_RRC_ResumeCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResumeCause_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ResumeCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ResumeCause_tags_1) + /sizeof(asn_DEF_ASN_RRC_ResumeCause_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ResumeCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ResumeCause_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ResumeCause.h b/src/asn/rrc/ASN_RRC_ResumeCause.h new file mode 100644 index 0000000..616e270 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ResumeCause.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ResumeCause_H_ +#define _ASN_RRC_ResumeCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ResumeCause { + ASN_RRC_ResumeCause_emergency = 0, + ASN_RRC_ResumeCause_highPriorityAccess = 1, + ASN_RRC_ResumeCause_mt_Access = 2, + ASN_RRC_ResumeCause_mo_Signalling = 3, + ASN_RRC_ResumeCause_mo_Data = 4, + ASN_RRC_ResumeCause_mo_VoiceCall = 5, + ASN_RRC_ResumeCause_mo_VideoCall = 6, + ASN_RRC_ResumeCause_mo_SMS = 7, + ASN_RRC_ResumeCause_rna_Update = 8, + ASN_RRC_ResumeCause_mps_PriorityAccess = 9, + ASN_RRC_ResumeCause_mcs_PriorityAccess = 10, + ASN_RRC_ResumeCause_spare1 = 11, + ASN_RRC_ResumeCause_spare2 = 12, + ASN_RRC_ResumeCause_spare3 = 13, + ASN_RRC_ResumeCause_spare4 = 14, + ASN_RRC_ResumeCause_spare5 = 15 +} e_ASN_RRC_ResumeCause; + +/* ASN_RRC_ResumeCause */ +typedef long ASN_RRC_ResumeCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ResumeCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ResumeCause; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ResumeCause_specs_1; +asn_struct_free_f ASN_RRC_ResumeCause_free; +asn_struct_print_f ASN_RRC_ResumeCause_print; +asn_constr_check_f ASN_RRC_ResumeCause_constraint; +ber_type_decoder_f ASN_RRC_ResumeCause_decode_ber; +der_type_encoder_f ASN_RRC_ResumeCause_encode_der; +xer_type_decoder_f ASN_RRC_ResumeCause_decode_xer; +xer_type_encoder_f ASN_RRC_ResumeCause_encode_xer; +per_type_decoder_f ASN_RRC_ResumeCause_decode_uper; +per_type_encoder_f ASN_RRC_ResumeCause_encode_uper; +per_type_decoder_f ASN_RRC_ResumeCause_decode_aper; +per_type_encoder_f ASN_RRC_ResumeCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ResumeCause_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_S-NSSAI.c b/src/asn/rrc/ASN_RRC_S-NSSAI.c new file mode 100644 index 0000000..4be1b55 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_S-NSSAI.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_S-NSSAI.h" + +static int +memb_ASN_RRC_sst_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_ASN_RRC_sst_SD_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 == 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_ASN_RRC_sst_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_ASN_RRC_sst_SD_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 32, 32 } /* (SIZE(32..32)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_S_NSSAI_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_ASN_RRC_S_NSSAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_S_NSSAI, choice.sst), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sst_constr_2, memb_ASN_RRC_sst_constraint_1 }, + 0, 0, /* No default value */ + "sst" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_S_NSSAI, choice.sst_SD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_sst_SD_constr_3, memb_ASN_RRC_sst_SD_constraint_1 }, + 0, 0, /* No default value */ + "sst-SD" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_S_NSSAI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sst */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sst-SD */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_S_NSSAI_specs_1 = { + sizeof(struct ASN_RRC_S_NSSAI), + offsetof(struct ASN_RRC_S_NSSAI, _asn_ctx), + offsetof(struct ASN_RRC_S_NSSAI, present), + sizeof(((struct ASN_RRC_S_NSSAI *)0)->present), + asn_MAP_ASN_RRC_S_NSSAI_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_S_NSSAI = { + "S-NSSAI", + "S-NSSAI", + &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_ASN_RRC_S_NSSAI_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_S_NSSAI_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_S_NSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_S-NSSAI.h b/src/asn/rrc/ASN_RRC_S-NSSAI.h new file mode 100644 index 0000000..f6f2492 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_S-NSSAI.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_S_NSSAI_H_ +#define _ASN_RRC_S_NSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_S_NSSAI_PR { + ASN_RRC_S_NSSAI_PR_NOTHING, /* No components present */ + ASN_RRC_S_NSSAI_PR_sst, + ASN_RRC_S_NSSAI_PR_sst_SD +} ASN_RRC_S_NSSAI_PR; + +/* ASN_RRC_S-NSSAI */ +typedef struct ASN_RRC_S_NSSAI { + ASN_RRC_S_NSSAI_PR present; + union ASN_RRC_S_NSSAI_u { + BIT_STRING_t sst; + BIT_STRING_t sst_SD; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_S_NSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_S_NSSAI; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_S_NSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_S_NSSAI_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_S_NSSAI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_S_NSSAI_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.c b/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.c new file mode 100644 index 0000000..99fdc75 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCGFailureInformation-IEs.h" + +#include "ASN_RRC_FailureReportSCG.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_SCGFailureInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SCGFailureInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformation_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SCGFailureInformation_IEs, failureReportSCG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FailureReportSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureReportSCG" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCGFailureInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SCGFailureInformation_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCGFailureInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureReportSCG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_SCGFailureInformation_IEs), + offsetof(struct ASN_RRC_SCGFailureInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SCGFailureInformation_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SCGFailureInformation_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformation_IEs = { + "SCGFailureInformation-IEs", + "SCGFailureInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCGFailureInformation_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SCGFailureInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.h b/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.h new file mode 100644 index 0000000..fbd7d74 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformation-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCGFailureInformation_IEs_H_ +#define _ASN_RRC_SCGFailureInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FailureReportSCG; + +/* ASN_RRC_SCGFailureInformation-IEs */ +typedef struct ASN_RRC_SCGFailureInformation_IEs { + struct ASN_RRC_FailureReportSCG *failureReportSCG; /* OPTIONAL */ + struct ASN_RRC_SCGFailureInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCGFailureInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformation_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCGFailureInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformation.c b/src/asn/rrc/ASN_RRC_SCGFailureInformation.c new file mode 100644 index 0000000..ed3aa8e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformation.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCGFailureInformation.h" + +#include "ASN_RRC_SCGFailureInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_SCGFailureInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SCGFailureInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SCGFailureInformation__criticalExtensions, choice.scgFailureInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SCGFailureInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SCGFailureInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scgFailureInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_SCGFailureInformation__criticalExtensions), + offsetof(struct ASN_RRC_SCGFailureInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SCGFailureInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_SCGFailureInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCGFailureInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCGFailureInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCGFailureInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformation_specs_1 = { + sizeof(struct ASN_RRC_SCGFailureInformation), + offsetof(struct ASN_RRC_SCGFailureInformation, _asn_ctx), + asn_MAP_ASN_RRC_SCGFailureInformation_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_ASN_RRC_SCGFailureInformation = { + "SCGFailureInformation", + "SCGFailureInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCGFailureInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCGFailureInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCGFailureInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SCGFailureInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformation.h b/src/asn/rrc/ASN_RRC_SCGFailureInformation.h new file mode 100644 index 0000000..45eb9cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformation.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCGFailureInformation_H_ +#define _ASN_RRC_SCGFailureInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SCGFailureInformation__criticalExtensions_PR { + ASN_RRC_SCGFailureInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SCGFailureInformation__criticalExtensions_PR_scgFailureInformation, + ASN_RRC_SCGFailureInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SCGFailureInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SCGFailureInformation_IEs; + +/* ASN_RRC_SCGFailureInformation */ +typedef struct ASN_RRC_SCGFailureInformation { + struct ASN_RRC_SCGFailureInformation__criticalExtensions { + ASN_RRC_SCGFailureInformation__criticalExtensions_PR present; + union ASN_RRC_SCGFailureInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SCGFailureInformation_IEs *scgFailureInformation; + struct ASN_RRC_SCGFailureInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCGFailureInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCGFailureInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.c b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.c new file mode 100644 index 0000000..b9df222 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCGFailureInformationEUTRA-IEs.h" + +#include "ASN_RRC_FailureReportSCG-EUTRA.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs, failureReportSCG_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FailureReportSCG_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureReportSCG-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* failureReportSCG-EUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_IEs_specs_1 = { + sizeof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs = { + "SCGFailureInformationEUTRA-IEs", + "SCGFailureInformationEUTRA-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.h b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.h new file mode 100644 index 0000000..67bbf81 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCGFailureInformationEUTRA_IEs_H_ +#define _ASN_RRC_SCGFailureInformationEUTRA_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FailureReportSCG_EUTRA; + +/* ASN_RRC_SCGFailureInformationEUTRA-IEs */ +typedef struct ASN_RRC_SCGFailureInformationEUTRA_IEs { + struct ASN_RRC_FailureReportSCG_EUTRA *failureReportSCG_EUTRA; /* OPTIONAL */ + struct ASN_RRC_SCGFailureInformationEUTRA_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCGFailureInformationEUTRA_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCGFailureInformationEUTRA_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.c b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.c new file mode 100644 index 0000000..784234f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCGFailureInformationEUTRA.h" + +#include "ASN_RRC_SCGFailureInformationEUTRA-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions, choice.scgFailureInformationEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInformationEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* scgFailureInformationEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions, present), + sizeof(((struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCGFailureInformationEUTRA, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_specs_1 = { + sizeof(struct ASN_RRC_SCGFailureInformationEUTRA), + offsetof(struct ASN_RRC_SCGFailureInformationEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_SCGFailureInformationEUTRA_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_ASN_RRC_SCGFailureInformationEUTRA = { + "SCGFailureInformationEUTRA", + "SCGFailureInformationEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCGFailureInformationEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.h b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.h new file mode 100644 index 0000000..de96ea0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCGFailureInformationEUTRA.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCGFailureInformationEUTRA_H_ +#define _ASN_RRC_SCGFailureInformationEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR { + ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR_scgFailureInformationEUTRA, + ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SCGFailureInformationEUTRA_IEs; + +/* ASN_RRC_SCGFailureInformationEUTRA */ +typedef struct ASN_RRC_SCGFailureInformationEUTRA { + struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions { + ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions_PR present; + union ASN_RRC_SCGFailureInformationEUTRA__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SCGFailureInformationEUTRA_IEs *scgFailureInformationEUTRA; + struct ASN_RRC_SCGFailureInformationEUTRA__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCGFailureInformationEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCGFailureInformationEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCGFailureInformationEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCGFailureInformationEUTRA_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCGFailureInformationEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.c b/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.c new file mode 100644 index 0000000..1ed057d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.c @@ -0,0 +1,217 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCS-SpecificCarrier.h" + +static int +memb_ASN_RRC_txDirectCurrentLocation_v1530_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_offsetToCarrier_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 <= 2199)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_carrierBandwidth_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 <= 275)) { + /* Constraint 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_ASN_RRC_txDirectCurrentLocation_v1530_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 4095 } /* (0..4095) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_offsetToCarrier_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2199 } /* (0..2199) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_carrierBandwidth_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 275 } /* (1..275) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCS_SpecificCarrier__ext1, txDirectCurrentLocation_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_txDirectCurrentLocation_v1530_constr_7, memb_ASN_RRC_txDirectCurrentLocation_v1530_constraint_6 }, + 0, 0, /* No default value */ + "txDirectCurrentLocation-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* txDirectCurrentLocation-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_6 = { + sizeof(struct ASN_RRC_SCS_SpecificCarrier__ext1), + offsetof(struct ASN_RRC_SCS_SpecificCarrier__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_6, + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_6, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCS_SpecificCarrier_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCS_SpecificCarrier, offsetToCarrier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_offsetToCarrier_constr_2, memb_ASN_RRC_offsetToCarrier_constraint_1 }, + 0, 0, /* No default value */ + "offsetToCarrier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCS_SpecificCarrier, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCS_SpecificCarrier, carrierBandwidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_carrierBandwidth_constr_4, memb_ASN_RRC_carrierBandwidth_constraint_1 }, + 0, 0, /* No default value */ + "carrierBandwidth" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCS_SpecificCarrier, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_SCS_SpecificCarrier_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCS_SpecificCarrier_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* offsetToCarrier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* carrierBandwidth */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCS_SpecificCarrier_specs_1 = { + sizeof(struct ASN_RRC_SCS_SpecificCarrier), + offsetof(struct ASN_RRC_SCS_SpecificCarrier, _asn_ctx), + asn_MAP_ASN_RRC_SCS_SpecificCarrier_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SCS_SpecificCarrier_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCS_SpecificCarrier = { + "SCS-SpecificCarrier", + "SCS-SpecificCarrier", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1, + sizeof(asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCS_SpecificCarrier_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCS_SpecificCarrier_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SCS_SpecificCarrier_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.h b/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.h new file mode 100644 index 0000000..26888be --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCS-SpecificCarrier.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCS_SpecificCarrier_H_ +#define _ASN_RRC_SCS_SpecificCarrier_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SCS-SpecificCarrier */ +typedef struct ASN_RRC_SCS_SpecificCarrier { + long offsetToCarrier; + ASN_RRC_SubcarrierSpacing_t subcarrierSpacing; + long carrierBandwidth; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_SCS_SpecificCarrier__ext1 { + long *txDirectCurrentLocation_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCS_SpecificCarrier_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCS_SpecificCarrier; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCS_SpecificCarrier_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCS_SpecificCarrier_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCS_SpecificCarrier_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCellConfig.c b/src/asn/rrc/ASN_RRC_SCellConfig.c new file mode 100644 index 0000000..e7cea8a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCellConfig.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCellConfig.h" + +#include "ASN_RRC_ServingCellConfigCommon.h" +#include "ASN_RRC_ServingCellConfig.h" +#include "ASN_RRC_SSB-MTC.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCellConfig__ext1, smtc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* smtc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_6 = { + sizeof(struct ASN_RRC_SCellConfig__ext1), + offsetof(struct ASN_RRC_SCellConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_6, + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_6, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SCellConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SCellConfig, sCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellIndex" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SCellConfig, sCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServingCellConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SCellConfig, sCellConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellConfigDedicated" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_SCellConfig_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sCellConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sCellConfigDedicated */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCellConfig_specs_1 = { + sizeof(struct ASN_RRC_SCellConfig), + offsetof(struct ASN_RRC_SCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_SCellConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SCellConfig_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCellConfig = { + "SCellConfig", + "SCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SCellConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCellConfig.h b/src/asn/rrc/ASN_RRC_SCellConfig.h new file mode 100644 index 0000000..fad39fd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCellConfig.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCellConfig_H_ +#define _ASN_RRC_SCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_ServingCellConfigCommon; +struct ASN_RRC_ServingCellConfig; +struct ASN_RRC_SSB_MTC; + +/* ASN_RRC_SCellConfig */ +typedef struct ASN_RRC_SCellConfig { + ASN_RRC_SCellIndex_t sCellIndex; + struct ASN_RRC_ServingCellConfigCommon *sCellConfigCommon; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfig *sCellConfigDedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_SCellConfig__ext1 { + struct ASN_RRC_SSB_MTC *smtc; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SCellConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SCellConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SCellIndex.c b/src/asn/rrc/ASN_RRC_SCellIndex.c new file mode 100644 index 0000000..488ef06 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCellIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SCellIndex.h" + +int +ASN_RRC_SCellIndex_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SCellIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCellIndex = { + "SCellIndex", + "SCellIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SCellIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_SCellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCellIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SCellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_SCellIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SCellIndex_constr_1, ASN_RRC_SCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SCellIndex.h b/src/asn/rrc/ASN_RRC_SCellIndex.h new file mode 100644 index 0000000..8d97a36 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SCellIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SCellIndex_H_ +#define _ASN_RRC_SCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SCellIndex */ +typedef long ASN_RRC_SCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SCellIndex; +asn_struct_free_f ASN_RRC_SCellIndex_free; +asn_struct_print_f ASN_RRC_SCellIndex_print; +asn_constr_check_f ASN_RRC_SCellIndex_constraint; +ber_type_decoder_f ASN_RRC_SCellIndex_decode_ber; +der_type_encoder_f ASN_RRC_SCellIndex_encode_der; +xer_type_decoder_f ASN_RRC_SCellIndex_decode_xer; +xer_type_encoder_f ASN_RRC_SCellIndex_encode_xer; +per_type_decoder_f ASN_RRC_SCellIndex_decode_uper; +per_type_encoder_f ASN_RRC_SCellIndex_encode_uper; +per_type_decoder_f ASN_RRC_SCellIndex_decode_aper; +per_type_encoder_f ASN_RRC_SCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SCellIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SDAP-Config.c b/src/asn/rrc/ASN_RRC_SDAP-Config.c new file mode 100644 index 0000000..c33a0d7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SDAP-Config.c @@ -0,0 +1,340 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SDAP-Config.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 int +memb_ASN_RRC_mappedQoS_FlowsToAdd_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 <= 64)) { + /* 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 int +memb_ASN_RRC_mappedQoS_FlowsToRelease_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 <= 64)) { + /* 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_ASN_RRC_sdap_HeaderDL_constr_3 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_type_ASN_RRC_sdap_HeaderUL_constr_6 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_type_ASN_RRC_mappedQoS_FlowsToAdd_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_mappedQoS_FlowsToRelease_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_mappedQoS_FlowsToAdd_constr_10 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_mappedQoS_FlowsToRelease_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sdap_HeaderDL_value2enum_3[] = { + { 0, 7, "present" }, + { 1, 6, "absent" } +}; +static const unsigned int asn_MAP_ASN_RRC_sdap_HeaderDL_enum2value_3[] = { + 1, /* absent(1) */ + 0 /* present(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sdap_HeaderDL_specs_3 = { + asn_MAP_ASN_RRC_sdap_HeaderDL_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sdap_HeaderDL_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sdap_HeaderDL_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_ASN_RRC_sdap_HeaderDL_3 = { + "sdap-HeaderDL", + "sdap-HeaderDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3, + sizeof(asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3) + /sizeof(asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3) + /sizeof(asn_DEF_ASN_RRC_sdap_HeaderDL_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sdap_HeaderDL_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sdap_HeaderDL_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sdap_HeaderUL_value2enum_6[] = { + { 0, 7, "present" }, + { 1, 6, "absent" } +}; +static const unsigned int asn_MAP_ASN_RRC_sdap_HeaderUL_enum2value_6[] = { + 1, /* absent(1) */ + 0 /* present(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sdap_HeaderUL_specs_6 = { + asn_MAP_ASN_RRC_sdap_HeaderUL_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sdap_HeaderUL_enum2value_6, /* 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_ASN_RRC_sdap_HeaderUL_tags_6[] = { + (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_ASN_RRC_sdap_HeaderUL_6 = { + "sdap-HeaderUL", + "sdap-HeaderUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6, + sizeof(asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6) + /sizeof(asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6) + /sizeof(asn_DEF_ASN_RRC_sdap_HeaderUL_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sdap_HeaderUL_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sdap_HeaderUL_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mappedQoS_FlowsToAdd_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_QFI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_mappedQoS_FlowsToAdd_specs_10 = { + sizeof(struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToAdd), + offsetof(struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToAdd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_10 = { + "mappedQoS-FlowsToAdd", + "mappedQoS-FlowsToAdd", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10, + sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10) + /sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10) + /sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mappedQoS_FlowsToAdd_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_mappedQoS_FlowsToAdd_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_mappedQoS_FlowsToAdd_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mappedQoS_FlowsToRelease_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_QFI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_mappedQoS_FlowsToRelease_specs_12 = { + sizeof(struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToRelease), + offsetof(struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToRelease, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_12 = { + "mappedQoS-FlowsToRelease", + "mappedQoS-FlowsToRelease", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12, + sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12) + /sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12) + /sizeof(asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mappedQoS_FlowsToRelease_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_mappedQoS_FlowsToRelease_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_mappedQoS_FlowsToRelease_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SDAP_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SDAP_Config, pdu_Session), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDU_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdu-Session" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SDAP_Config, sdap_HeaderDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sdap_HeaderDL_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-HeaderDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SDAP_Config, sdap_HeaderUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sdap_HeaderUL_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-HeaderUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SDAP_Config, defaultDRB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "defaultDRB" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SDAP_Config, mappedQoS_FlowsToAdd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_mappedQoS_FlowsToAdd_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_mappedQoS_FlowsToAdd_constr_10, memb_ASN_RRC_mappedQoS_FlowsToAdd_constraint_1 }, + 0, 0, /* No default value */ + "mappedQoS-FlowsToAdd" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SDAP_Config, mappedQoS_FlowsToRelease), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_mappedQoS_FlowsToRelease_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_mappedQoS_FlowsToRelease_constr_12, memb_ASN_RRC_mappedQoS_FlowsToRelease_constraint_1 }, + 0, 0, /* No default value */ + "mappedQoS-FlowsToRelease" + }, +}; +static const int asn_MAP_ASN_RRC_SDAP_Config_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SDAP_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SDAP_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdu-Session */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sdap-HeaderDL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sdap-HeaderUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* defaultDRB */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mappedQoS-FlowsToAdd */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* mappedQoS-FlowsToRelease */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SDAP_Config_specs_1 = { + sizeof(struct ASN_RRC_SDAP_Config), + offsetof(struct ASN_RRC_SDAP_Config, _asn_ctx), + asn_MAP_ASN_RRC_SDAP_Config_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SDAP_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SDAP_Config = { + "SDAP-Config", + "SDAP-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SDAP_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_SDAP_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SDAP_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SDAP_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SDAP_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SDAP_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SDAP_Config_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_SDAP_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SDAP-Config.h b/src/asn/rrc/ASN_RRC_SDAP-Config.h new file mode 100644 index 0000000..d20e23f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SDAP-Config.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SDAP_Config_H_ +#define _ASN_RRC_SDAP_Config_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PDU-SessionID.h" +#include +#include +#include "ASN_RRC_QFI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SDAP_Config__sdap_HeaderDL { + ASN_RRC_SDAP_Config__sdap_HeaderDL_present = 0, + ASN_RRC_SDAP_Config__sdap_HeaderDL_absent = 1 +} e_ASN_RRC_SDAP_Config__sdap_HeaderDL; +typedef enum ASN_RRC_SDAP_Config__sdap_HeaderUL { + ASN_RRC_SDAP_Config__sdap_HeaderUL_present = 0, + ASN_RRC_SDAP_Config__sdap_HeaderUL_absent = 1 +} e_ASN_RRC_SDAP_Config__sdap_HeaderUL; + +/* ASN_RRC_SDAP-Config */ +typedef struct ASN_RRC_SDAP_Config { + ASN_RRC_PDU_SessionID_t pdu_Session; + long sdap_HeaderDL; + long sdap_HeaderUL; + BOOLEAN_t defaultDRB; + struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToAdd { + A_SEQUENCE_OF(ASN_RRC_QFI_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mappedQoS_FlowsToAdd; + struct ASN_RRC_SDAP_Config__mappedQoS_FlowsToRelease { + A_SEQUENCE_OF(ASN_RRC_QFI_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mappedQoS_FlowsToRelease; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SDAP_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sdap_HeaderDL_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sdap_HeaderUL_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SDAP_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SDAP_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SDAP_Config_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SDAP_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SDAP-Parameters.c b/src/asn/rrc/ASN_RRC_SDAP-Parameters.c new file mode 100644 index 0000000..c7a1194 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SDAP-Parameters.c @@ -0,0 +1,96 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SDAP-Parameters.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_as_ReflectiveQoS_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_as_ReflectiveQoS_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_as_ReflectiveQoS_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_as_ReflectiveQoS_specs_2 = { + asn_MAP_ASN_RRC_as_ReflectiveQoS_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_as_ReflectiveQoS_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_as_ReflectiveQoS_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_ASN_RRC_as_ReflectiveQoS_2 = { + "as-ReflectiveQoS", + "as-ReflectiveQoS", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2, + sizeof(asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2) + /sizeof(asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2) + /sizeof(asn_DEF_ASN_RRC_as_ReflectiveQoS_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_as_ReflectiveQoS_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_as_ReflectiveQoS_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SDAP_Parameters_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SDAP_Parameters, as_ReflectiveQoS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_as_ReflectiveQoS_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "as-ReflectiveQoS" + }, +}; +static const int asn_MAP_ASN_RRC_SDAP_Parameters_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SDAP_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SDAP_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* as-ReflectiveQoS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SDAP_Parameters_specs_1 = { + sizeof(struct ASN_RRC_SDAP_Parameters), + offsetof(struct ASN_RRC_SDAP_Parameters, _asn_ctx), + asn_MAP_ASN_RRC_SDAP_Parameters_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SDAP_Parameters_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SDAP_Parameters = { + "SDAP-Parameters", + "SDAP-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SDAP_Parameters_tags_1, + sizeof(asn_DEF_ASN_RRC_SDAP_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_SDAP_Parameters_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SDAP_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SDAP_Parameters_tags_1) + /sizeof(asn_DEF_ASN_RRC_SDAP_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SDAP_Parameters_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SDAP_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SDAP-Parameters.h b/src/asn/rrc/ASN_RRC_SDAP-Parameters.h new file mode 100644 index 0000000..8eec1a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SDAP-Parameters.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SDAP_Parameters_H_ +#define _ASN_RRC_SDAP_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SDAP_Parameters__as_ReflectiveQoS { + ASN_RRC_SDAP_Parameters__as_ReflectiveQoS_true = 0 +} e_ASN_RRC_SDAP_Parameters__as_ReflectiveQoS; + +/* ASN_RRC_SDAP-Parameters */ +typedef struct ASN_RRC_SDAP_Parameters { + long *as_ReflectiveQoS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SDAP_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_as_ReflectiveQoS_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SDAP_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SDAP_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SDAP_Parameters_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SDAP_Parameters_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SI-RequestConfig.c b/src/asn/rrc/ASN_RRC_SI-RequestConfig.c new file mode 100644 index 0000000..ce87746 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-RequestConfig.c @@ -0,0 +1,315 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SI-RequestConfig.h" + +#include "ASN_RRC_SI-RequestResources.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 int +memb_ASN_RRC_si_RequestResources_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_ASN_RRC_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_si_RequestPeriod_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_si_RequestResources_constr_22 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_ASN_RRC_si_RequestResources_constr_22 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_4[] = { + { 0, 9, "oneEighth" }, + { 1, 9, "oneFourth" }, + { 2, 7, "oneHalf" }, + { 3, 3, "one" }, + { 4, 3, "two" }, + { 5, 4, "four" }, + { 6, 5, "eight" }, + { 7, 7, "sixteen" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_4[] = { + 6, /* eight(6) */ + 5, /* four(5) */ + 3, /* one(3) */ + 0, /* oneEighth(0) */ + 1, /* oneFourth(1) */ + 2, /* oneHalf(2) */ + 7, /* sixteen(7) */ + 4 /* two(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_4 = { + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_perRACH_Occasion_enum2value_4, /* 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_ASN_RRC_ssb_perRACH_Occasion_tags_4[] = { + (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_ASN_RRC_ssb_perRACH_Occasion_4 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4, + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ASN_RRC_ssb_perRACH_Occasion_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_perRACH_Occasion_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rach_OccasionsSI_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_RequestConfig__rach_OccasionsSI, rach_ConfigSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_RequestConfig__rach_OccasionsSI, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_perRACH_Occasion_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rach_OccasionsSI_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-ConfigSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ssb-perRACH-Occasion */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_rach_OccasionsSI_specs_2 = { + sizeof(struct ASN_RRC_SI_RequestConfig__rach_OccasionsSI), + offsetof(struct ASN_RRC_SI_RequestConfig__rach_OccasionsSI, _asn_ctx), + asn_MAP_ASN_RRC_rach_OccasionsSI_tag2el_2, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rach_OccasionsSI_2 = { + "rach-OccasionsSI", + "rach-OccasionsSI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2, + sizeof(asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2) + /sizeof(asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2) + /sizeof(asn_DEF_ASN_RRC_rach_OccasionsSI_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_rach_OccasionsSI_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_rach_OccasionsSI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_si_RequestPeriod_value2enum_13[] = { + { 0, 3, "one" }, + { 1, 3, "two" }, + { 2, 4, "four" }, + { 3, 3, "six" }, + { 4, 5, "eight" }, + { 5, 3, "ten" }, + { 6, 6, "twelve" }, + { 7, 7, "sixteen" } +}; +static const unsigned int asn_MAP_ASN_RRC_si_RequestPeriod_enum2value_13[] = { + 4, /* eight(4) */ + 2, /* four(2) */ + 0, /* one(0) */ + 3, /* six(3) */ + 7, /* sixteen(7) */ + 5, /* ten(5) */ + 6, /* twelve(6) */ + 1 /* two(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_si_RequestPeriod_specs_13 = { + asn_MAP_ASN_RRC_si_RequestPeriod_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_si_RequestPeriod_enum2value_13, /* 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_ASN_RRC_si_RequestPeriod_tags_13[] = { + (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_ASN_RRC_si_RequestPeriod_13 = { + "si-RequestPeriod", + "si-RequestPeriod", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_si_RequestPeriod_tags_13, + sizeof(asn_DEF_ASN_RRC_si_RequestPeriod_tags_13) + /sizeof(asn_DEF_ASN_RRC_si_RequestPeriod_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_si_RequestPeriod_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_si_RequestPeriod_tags_13) + /sizeof(asn_DEF_ASN_RRC_si_RequestPeriod_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_si_RequestPeriod_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_si_RequestPeriod_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_si_RequestResources_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SI_RequestResources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_si_RequestResources_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_si_RequestResources_specs_22 = { + sizeof(struct ASN_RRC_SI_RequestConfig__si_RequestResources), + offsetof(struct ASN_RRC_SI_RequestConfig__si_RequestResources, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_si_RequestResources_22 = { + "si-RequestResources", + "si-RequestResources", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_si_RequestResources_tags_22, + sizeof(asn_DEF_ASN_RRC_si_RequestResources_tags_22) + /sizeof(asn_DEF_ASN_RRC_si_RequestResources_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_si_RequestResources_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_si_RequestResources_tags_22) + /sizeof(asn_DEF_ASN_RRC_si_RequestResources_tags_22[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_si_RequestResources_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_si_RequestResources_22, + 1, /* Single element */ + &asn_SPC_ASN_RRC_si_RequestResources_specs_22 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SI_RequestConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SI_RequestConfig, rach_OccasionsSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_rach_OccasionsSI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-OccasionsSI" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SI_RequestConfig, si_RequestPeriod), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_si_RequestPeriod_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_RequestConfig, si_RequestResources), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_si_RequestResources_22, + 0, + { 0, &asn_PER_memb_ASN_RRC_si_RequestResources_constr_22, memb_ASN_RRC_si_RequestResources_constraint_1 }, + 0, 0, /* No default value */ + "si-RequestResources" + }, +}; +static const int asn_MAP_ASN_RRC_SI_RequestConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SI_RequestConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SI_RequestConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rach-OccasionsSI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* si-RequestPeriod */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* si-RequestResources */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_RequestConfig_specs_1 = { + sizeof(struct ASN_RRC_SI_RequestConfig), + offsetof(struct ASN_RRC_SI_RequestConfig, _asn_ctx), + asn_MAP_ASN_RRC_SI_RequestConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SI_RequestConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_RequestConfig = { + "SI-RequestConfig", + "SI-RequestConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SI_RequestConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SI_RequestConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_RequestConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SI_RequestConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SI_RequestConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_RequestConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SI_RequestConfig_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SI_RequestConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SI-RequestConfig.h b/src/asn/rrc/ASN_RRC_SI-RequestConfig.h new file mode 100644 index 0000000..7254944 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-RequestConfig.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SI_RequestConfig_H_ +#define _ASN_RRC_SI_RequestConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_RACH-ConfigGeneric.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion { + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneEighth = 0, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneFourth = 1, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneHalf = 2, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_one = 3, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_two = 4, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_four = 5, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_eight = 6, + ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_sixteen = 7 +} e_ASN_RRC_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion; +typedef enum ASN_RRC_SI_RequestConfig__si_RequestPeriod { + ASN_RRC_SI_RequestConfig__si_RequestPeriod_one = 0, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_two = 1, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_four = 2, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_six = 3, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_eight = 4, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_ten = 5, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_twelve = 6, + ASN_RRC_SI_RequestConfig__si_RequestPeriod_sixteen = 7 +} e_ASN_RRC_SI_RequestConfig__si_RequestPeriod; + +/* Forward declarations */ +struct ASN_RRC_SI_RequestResources; + +/* ASN_RRC_SI-RequestConfig */ +typedef struct ASN_RRC_SI_RequestConfig { + struct ASN_RRC_SI_RequestConfig__rach_OccasionsSI { + ASN_RRC_RACH_ConfigGeneric_t rach_ConfigSI; + long ssb_perRACH_Occasion; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rach_OccasionsSI; + long *si_RequestPeriod; /* OPTIONAL */ + struct ASN_RRC_SI_RequestConfig__si_RequestResources { + A_SEQUENCE_OF(struct ASN_RRC_SI_RequestResources) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } si_RequestResources; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SI_RequestConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_perRACH_Occasion_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_si_RequestPeriod_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_RequestConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_RequestConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SI_RequestConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SI_RequestConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SI-RequestResources.c b/src/asn/rrc/ASN_RRC_SI-RequestResources.c new file mode 100644 index 0000000..63e0b80 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-RequestResources.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SI-RequestResources.h" + +static int +memb_ASN_RRC_ra_PreambleStartIndex_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 int +memb_ASN_RRC_ra_AssociationPeriodIndex_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_ASN_RRC_ra_ssb_OccasionMaskIndex_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_ASN_RRC_ra_PreambleStartIndex_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ra_AssociationPeriodIndex_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_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_SI_RequestResources_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_RequestResources, ra_PreambleStartIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_PreambleStartIndex_constr_2, memb_ASN_RRC_ra_PreambleStartIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleStartIndex" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SI_RequestResources, ra_AssociationPeriodIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_AssociationPeriodIndex_constr_3, memb_ASN_RRC_ra_AssociationPeriodIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-AssociationPeriodIndex" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SI_RequestResources, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constr_4, memb_ASN_RRC_ra_ssb_OccasionMaskIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, +}; +static const int asn_MAP_ASN_RRC_SI_RequestResources_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SI_RequestResources_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SI_RequestResources_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ra-PreambleStartIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ra-AssociationPeriodIndex */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ra-ssb-OccasionMaskIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_RequestResources_specs_1 = { + sizeof(struct ASN_RRC_SI_RequestResources), + offsetof(struct ASN_RRC_SI_RequestResources, _asn_ctx), + asn_MAP_ASN_RRC_SI_RequestResources_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SI_RequestResources_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_RequestResources = { + "SI-RequestResources", + "SI-RequestResources", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SI_RequestResources_tags_1, + sizeof(asn_DEF_ASN_RRC_SI_RequestResources_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_RequestResources_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SI_RequestResources_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SI_RequestResources_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_RequestResources_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SI_RequestResources_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SI_RequestResources_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SI-RequestResources.h b/src/asn/rrc/ASN_RRC_SI-RequestResources.h new file mode 100644 index 0000000..81cc27d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-RequestResources.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SI_RequestResources_H_ +#define _ASN_RRC_SI_RequestResources_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SI-RequestResources */ +typedef struct ASN_RRC_SI_RequestResources { + long ra_PreambleStartIndex; + long *ra_AssociationPeriodIndex; /* OPTIONAL */ + long *ra_ssb_OccasionMaskIndex; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SI_RequestResources_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_RequestResources; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_RequestResources_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SI_RequestResources_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SI_RequestResources_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.c b/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.c new file mode 100644 index 0000000..7e3cf5b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SI-SchedulingInfo.h" + +#include "ASN_RRC_SI-RequestConfig.h" +#include "ASN_RRC_SchedulingInfo.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_schedulingInfoList_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 int +memb_ASN_RRC_systemInformationAreaID_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_type_ASN_RRC_schedulingInfoList_constr_2 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_type_ASN_RRC_si_WindowLength_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (0..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_schedulingInfoList_constr_2 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_ASN_RRC_systemInformationAreaID_constr_16 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_TYPE_member_t asn_MBR_ASN_RRC_schedulingInfoList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SchedulingInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_schedulingInfoList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_schedulingInfoList_specs_2 = { + sizeof(struct ASN_RRC_SI_SchedulingInfo__schedulingInfoList), + offsetof(struct ASN_RRC_SI_SchedulingInfo__schedulingInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_schedulingInfoList_2 = { + "schedulingInfoList", + "schedulingInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_schedulingInfoList_tags_2, + sizeof(asn_DEF_ASN_RRC_schedulingInfoList_tags_2) + /sizeof(asn_DEF_ASN_RRC_schedulingInfoList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_schedulingInfoList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_schedulingInfoList_tags_2) + /sizeof(asn_DEF_ASN_RRC_schedulingInfoList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_schedulingInfoList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_schedulingInfoList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_schedulingInfoList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_si_WindowLength_value2enum_4[] = { + { 0, 2, "s5" }, + { 1, 3, "s10" }, + { 2, 3, "s20" }, + { 3, 3, "s40" }, + { 4, 3, "s80" }, + { 5, 4, "s160" }, + { 6, 4, "s320" }, + { 7, 4, "s640" }, + { 8, 5, "s1280" } +}; +static const unsigned int asn_MAP_ASN_RRC_si_WindowLength_enum2value_4[] = { + 1, /* s10(1) */ + 8, /* s1280(8) */ + 5, /* s160(5) */ + 2, /* s20(2) */ + 6, /* s320(6) */ + 3, /* s40(3) */ + 0, /* s5(0) */ + 7, /* s640(7) */ + 4 /* s80(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_si_WindowLength_specs_4 = { + asn_MAP_ASN_RRC_si_WindowLength_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_si_WindowLength_enum2value_4, /* N => "tag"; sorted by N */ + 9, /* 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_ASN_RRC_si_WindowLength_tags_4[] = { + (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_ASN_RRC_si_WindowLength_4 = { + "si-WindowLength", + "si-WindowLength", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_si_WindowLength_tags_4, + sizeof(asn_DEF_ASN_RRC_si_WindowLength_tags_4) + /sizeof(asn_DEF_ASN_RRC_si_WindowLength_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_si_WindowLength_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_si_WindowLength_tags_4) + /sizeof(asn_DEF_ASN_RRC_si_WindowLength_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_si_WindowLength_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_si_WindowLength_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SI_SchedulingInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_SchedulingInfo, schedulingInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_schedulingInfoList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_schedulingInfoList_constr_2, memb_ASN_RRC_schedulingInfoList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingInfoList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SI_SchedulingInfo, si_WindowLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_si_WindowLength_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-WindowLength" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SI_SchedulingInfo, si_RequestConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SI_RequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SI_SchedulingInfo, si_RequestConfigSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SI_RequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestConfigSUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SI_SchedulingInfo, systemInformationAreaID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_systemInformationAreaID_constr_16, memb_ASN_RRC_systemInformationAreaID_constraint_1 }, + 0, 0, /* No default value */ + "systemInformationAreaID" + }, +}; +static const int asn_MAP_ASN_RRC_SI_SchedulingInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SI_SchedulingInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingInfoList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* si-WindowLength */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* si-RequestConfig */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* si-RequestConfigSUL */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* systemInformationAreaID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_SchedulingInfo_specs_1 = { + sizeof(struct ASN_RRC_SI_SchedulingInfo), + offsetof(struct ASN_RRC_SI_SchedulingInfo, _asn_ctx), + asn_MAP_ASN_RRC_SI_SchedulingInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SI_SchedulingInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_SchedulingInfo = { + "SI-SchedulingInfo", + "SI-SchedulingInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SI_SchedulingInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SI_SchedulingInfo_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_SI_SchedulingInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.h b/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.h new file mode 100644 index 0000000..c3f082b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SI-SchedulingInfo.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SI_SchedulingInfo_H_ +#define _ASN_RRC_SI_SchedulingInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SI_SchedulingInfo__si_WindowLength { + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s5 = 0, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s10 = 1, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s20 = 2, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s40 = 3, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s80 = 4, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s160 = 5, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s320 = 6, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s640 = 7, + ASN_RRC_SI_SchedulingInfo__si_WindowLength_s1280 = 8 +} e_ASN_RRC_SI_SchedulingInfo__si_WindowLength; + +/* Forward declarations */ +struct ASN_RRC_SI_RequestConfig; +struct ASN_RRC_SchedulingInfo; + +/* ASN_RRC_SI-SchedulingInfo */ +typedef struct ASN_RRC_SI_SchedulingInfo { + struct ASN_RRC_SI_SchedulingInfo__schedulingInfoList { + A_SEQUENCE_OF(struct ASN_RRC_SchedulingInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } schedulingInfoList; + long si_WindowLength; + struct ASN_RRC_SI_RequestConfig *si_RequestConfig; /* OPTIONAL */ + struct ASN_RRC_SI_RequestConfig *si_RequestConfigSUL; /* OPTIONAL */ + BIT_STRING_t *systemInformationAreaID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SI_SchedulingInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_si_WindowLength_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SI_SchedulingInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SI_SchedulingInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SI_SchedulingInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SI_SchedulingInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB-Mapping.c b/src/asn/rrc/ASN_RRC_SIB-Mapping.c new file mode 100644 index 0000000..16476a7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB-Mapping.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB-Mapping.h" + +#include "ASN_RRC_SIB-TypeInfo.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_SIB_Mapping_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_ASN_RRC_SIB_Mapping_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SIB_TypeInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB_Mapping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_SIB_Mapping_specs_1 = { + sizeof(struct ASN_RRC_SIB_Mapping), + offsetof(struct ASN_RRC_SIB_Mapping, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB_Mapping = { + "SIB-Mapping", + "SIB-Mapping", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_SIB_Mapping_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB_Mapping_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB_Mapping_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB_Mapping_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB_Mapping_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB_Mapping_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SIB_Mapping_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_SIB_Mapping_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_SIB_Mapping_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB-Mapping.h b/src/asn/rrc/ASN_RRC_SIB-Mapping.h new file mode 100644 index 0000000..acd8706 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB-Mapping.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB_Mapping_H_ +#define _ASN_RRC_SIB_Mapping_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SIB_TypeInfo; + +/* ASN_RRC_SIB-Mapping */ +typedef struct ASN_RRC_SIB_Mapping { + A_SEQUENCE_OF(struct ASN_RRC_SIB_TypeInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB_Mapping_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB_Mapping; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_SIB_Mapping_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB_Mapping_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SIB_Mapping_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB_Mapping_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB-TypeInfo.c b/src/asn/rrc/ASN_RRC_SIB-TypeInfo.c new file mode 100644 index 0000000..b93607c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB-TypeInfo.c @@ -0,0 +1,222 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB-TypeInfo.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 int +memb_ASN_RRC_valueTag_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 <= 31)) { + /* Constraint 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_ASN_RRC_type_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_type_ASN_RRC_areaScope_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_valueTag_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_type_value2enum_2[] = { + { 0, 8, "sibType2" }, + { 1, 8, "sibType3" }, + { 2, 8, "sibType4" }, + { 3, 8, "sibType5" }, + { 4, 8, "sibType6" }, + { 5, 8, "sibType7" }, + { 6, 8, "sibType8" }, + { 7, 8, "sibType9" }, + { 8, 6, "spare8" }, + { 9, 6, "spare7" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_ASN_RRC_type_enum2value_2[] = { + 0, /* sibType2(0) */ + 1, /* sibType3(1) */ + 2, /* sibType4(2) */ + 3, /* sibType5(3) */ + 4, /* sibType6(4) */ + 5, /* sibType7(5) */ + 6, /* sibType8(6) */ + 7, /* sibType9(7) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10, /* spare6(10) */ + 9, /* spare7(9) */ + 8 /* spare8(8) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_type_specs_2 = { + asn_MAP_ASN_RRC_type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_type_enum2value_2, /* 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_ASN_RRC_type_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_ASN_RRC_type_2 = { + "type", + "type", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_type_tags_2, + sizeof(asn_DEF_ASN_RRC_type_tags_2) + /sizeof(asn_DEF_ASN_RRC_type_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_type_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_type_tags_2) + /sizeof(asn_DEF_ASN_RRC_type_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_areaScope_value2enum_21[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_areaScope_enum2value_21[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_areaScope_specs_21 = { + asn_MAP_ASN_RRC_areaScope_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_areaScope_enum2value_21, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_areaScope_tags_21[] = { + (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_ASN_RRC_areaScope_21 = { + "areaScope", + "areaScope", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_areaScope_tags_21, + sizeof(asn_DEF_ASN_RRC_areaScope_tags_21) + /sizeof(asn_DEF_ASN_RRC_areaScope_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_areaScope_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_areaScope_tags_21) + /sizeof(asn_DEF_ASN_RRC_areaScope_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_areaScope_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_areaScope_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB_TypeInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB_TypeInfo, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB_TypeInfo, valueTag), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_valueTag_constr_20, memb_ASN_RRC_valueTag_constraint_1 }, + 0, 0, /* No default value */ + "valueTag" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB_TypeInfo, areaScope), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_areaScope_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScope" + }, +}; +static const int asn_MAP_ASN_RRC_SIB_TypeInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB_TypeInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* valueTag */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* areaScope */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB_TypeInfo_specs_1 = { + sizeof(struct ASN_RRC_SIB_TypeInfo), + offsetof(struct ASN_RRC_SIB_TypeInfo, _asn_ctx), + asn_MAP_ASN_RRC_SIB_TypeInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB_TypeInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB_TypeInfo = { + "SIB-TypeInfo", + "SIB-TypeInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB_TypeInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB_TypeInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SIB_TypeInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB-TypeInfo.h b/src/asn/rrc/ASN_RRC_SIB-TypeInfo.h new file mode 100644 index 0000000..1f7eddf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB-TypeInfo.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB_TypeInfo_H_ +#define _ASN_RRC_SIB_TypeInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SIB_TypeInfo__type { + ASN_RRC_SIB_TypeInfo__type_sibType2 = 0, + ASN_RRC_SIB_TypeInfo__type_sibType3 = 1, + ASN_RRC_SIB_TypeInfo__type_sibType4 = 2, + ASN_RRC_SIB_TypeInfo__type_sibType5 = 3, + ASN_RRC_SIB_TypeInfo__type_sibType6 = 4, + ASN_RRC_SIB_TypeInfo__type_sibType7 = 5, + ASN_RRC_SIB_TypeInfo__type_sibType8 = 6, + ASN_RRC_SIB_TypeInfo__type_sibType9 = 7, + ASN_RRC_SIB_TypeInfo__type_spare8 = 8, + ASN_RRC_SIB_TypeInfo__type_spare7 = 9, + ASN_RRC_SIB_TypeInfo__type_spare6 = 10, + ASN_RRC_SIB_TypeInfo__type_spare5 = 11, + ASN_RRC_SIB_TypeInfo__type_spare4 = 12, + ASN_RRC_SIB_TypeInfo__type_spare3 = 13, + ASN_RRC_SIB_TypeInfo__type_spare2 = 14, + ASN_RRC_SIB_TypeInfo__type_spare1 = 15 + /* + * Enumeration is extensible + */ +} e_ASN_RRC_SIB_TypeInfo__type; +typedef enum ASN_RRC_SIB_TypeInfo__areaScope { + ASN_RRC_SIB_TypeInfo__areaScope_true = 0 +} e_ASN_RRC_SIB_TypeInfo__areaScope; + +/* ASN_RRC_SIB-TypeInfo */ +typedef struct ASN_RRC_SIB_TypeInfo { + long type; + long *valueTag; /* OPTIONAL */ + long *areaScope; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB_TypeInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_areaScope_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB_TypeInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB_TypeInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB_TypeInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB_TypeInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB1.c b/src/asn/rrc/ASN_RRC_SIB1.c new file mode 100644 index 0000000..a931a43 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB1.c @@ -0,0 +1,675 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB1.h" + +#include "ASN_RRC_ConnEstFailureControl.h" +#include "ASN_RRC_SI-SchedulingInfo.h" +#include "ASN_RRC_ServingCellConfigCommonSIB.h" +#include "ASN_RRC_UE-TimersAndConstants.h" +#include "ASN_RRC_UAC-BarringPerCatList.h" +#include "ASN_RRC_UAC-BarringPerPLMN-List.h" +static int +memb_ASN_RRC_q_RxLevMinOffset_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 int +memb_ASN_RRC_q_QualMinOffset_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; + } +} + +/* + * 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_ASN_RRC_individualPLMNList_constraint_21(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 >= 2 && size <= 12)) { + /* 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_RxLevMinOffset_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_q_QualMinOffset_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ims_EmergencySupport_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_eCallOverIMS_Support_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_individualPLMNList_constr_23 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 2, 12 } /* (SIZE(2..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_individualPLMNList_constr_23 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 2, 12 } /* (SIZE(2..12)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_constr_21 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_type_ASN_RRC_useFullResumeID_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_cellSelectionInfo_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, q_RxLevMinOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_RxLevMinOffset_constr_4, memb_ASN_RRC_q_RxLevMinOffset_constraint_2 }, + 0, 0, /* No default value */ + "q-RxLevMinOffset" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, q_QualMinOffset), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_q_QualMinOffset_constr_7, memb_ASN_RRC_q_QualMinOffset_constraint_2 }, + 0, 0, /* No default value */ + "q-QualMinOffset" + }, +}; +static const int asn_MAP_ASN_RRC_cellSelectionInfo_oms_2[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellSelectionInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cellSelectionInfo_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* q-RxLevMin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* q-RxLevMinOffset */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-RxLevMinSUL */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* q-QualMin */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* q-QualMinOffset */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cellSelectionInfo_specs_2 = { + sizeof(struct ASN_RRC_SIB1__cellSelectionInfo), + offsetof(struct ASN_RRC_SIB1__cellSelectionInfo, _asn_ctx), + asn_MAP_ASN_RRC_cellSelectionInfo_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cellSelectionInfo_oms_2, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellSelectionInfo_2 = { + "cellSelectionInfo", + "cellSelectionInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cellSelectionInfo_tags_2, + sizeof(asn_DEF_ASN_RRC_cellSelectionInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_cellSelectionInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellSelectionInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellSelectionInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_cellSelectionInfo_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cellSelectionInfo_2, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_cellSelectionInfo_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ims_EmergencySupport_value2enum_12[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_ims_EmergencySupport_enum2value_12[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ims_EmergencySupport_specs_12 = { + asn_MAP_ASN_RRC_ims_EmergencySupport_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ims_EmergencySupport_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12[] = { + (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_ASN_RRC_ims_EmergencySupport_12 = { + "ims-EmergencySupport", + "ims-EmergencySupport", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12, + sizeof(asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12) + /sizeof(asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12) + /sizeof(asn_DEF_ASN_RRC_ims_EmergencySupport_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ims_EmergencySupport_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ims_EmergencySupport_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_eCallOverIMS_Support_value2enum_14[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_eCallOverIMS_Support_enum2value_14[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_eCallOverIMS_Support_specs_14 = { + asn_MAP_ASN_RRC_eCallOverIMS_Support_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_eCallOverIMS_Support_enum2value_14, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eCallOverIMS_Support_14 = { + "eCallOverIMS-Support", + "eCallOverIMS-Support", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14, + sizeof(asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14) + /sizeof(asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14) + /sizeof(asn_DEF_ASN_RRC_eCallOverIMS_Support_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_eCallOverIMS_Support_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_eCallOverIMS_Support_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_individualPLMNList_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_individualPLMNList_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_individualPLMNList_specs_23 = { + sizeof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList), + offsetof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_individualPLMNList_23 = { + "individualPLMNList", + "individualPLMNList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_individualPLMNList_tags_23, + sizeof(asn_DEF_ASN_RRC_individualPLMNList_tags_23) + /sizeof(asn_DEF_ASN_RRC_individualPLMNList_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_individualPLMNList_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_individualPLMNList_tags_23) + /sizeof(asn_DEF_ASN_RRC_individualPLMNList_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_individualPLMNList_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_individualPLMNList_23, + 1, /* Single element */ + &asn_SPC_ASN_RRC_individualPLMNList_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.plmnCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmnCommon" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.individualPLMNList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_individualPLMNList_23, + 0, + { 0, &asn_PER_memb_ASN_RRC_individualPLMNList_constr_23, memb_ASN_RRC_individualPLMNList_constraint_21 }, + 0, 0, /* No default value */ + "individualPLMNList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmnCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* individualPLMNList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 = { + sizeof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo), + offsetof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, _asn_ctx), + offsetof(struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, present), + sizeof(((struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo *)0)->present), + asn_MAP_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_tag2el_21, + 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_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_21 = { + "uac-AccessCategory1-SelectionAssistanceInfo", + "uac-AccessCategory1-SelectionAssistanceInfo", + &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_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_constr_21, CHOICE_constraint }, + asn_MBR_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_21, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uac_BarringInfo_17[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo, uac_BarringForCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_BarringPerCatList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringForCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo, uac_BarringPerPLMN_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringPerPLMN-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo, uac_BarringInfoSetList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_BarringInfoSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringInfoSetList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB1__uac_BarringInfo, uac_AccessCategory1_SelectionAssistanceInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-AccessCategory1-SelectionAssistanceInfo" + }, +}; +static const int asn_MAP_ASN_RRC_uac_BarringInfo_oms_17[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uac_BarringInfo_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_uac_BarringInfo_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uac-BarringForCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uac-BarringPerPLMN-List */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uac-BarringInfoSetList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* uac-AccessCategory1-SelectionAssistanceInfo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_uac_BarringInfo_specs_17 = { + sizeof(struct ASN_RRC_SIB1__uac_BarringInfo), + offsetof(struct ASN_RRC_SIB1__uac_BarringInfo, _asn_ctx), + asn_MAP_ASN_RRC_uac_BarringInfo_tag2el_17, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_uac_BarringInfo_oms_17, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uac_BarringInfo_17 = { + "uac-BarringInfo", + "uac-BarringInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_uac_BarringInfo_tags_17, + sizeof(asn_DEF_ASN_RRC_uac_BarringInfo_tags_17) + /sizeof(asn_DEF_ASN_RRC_uac_BarringInfo_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uac_BarringInfo_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uac_BarringInfo_tags_17) + /sizeof(asn_DEF_ASN_RRC_uac_BarringInfo_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_uac_BarringInfo_17, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_uac_BarringInfo_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_useFullResumeID_value2enum_25[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_useFullResumeID_enum2value_25[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_useFullResumeID_specs_25 = { + asn_MAP_ASN_RRC_useFullResumeID_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_useFullResumeID_enum2value_25, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_useFullResumeID_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_useFullResumeID_25 = { + "useFullResumeID", + "useFullResumeID", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_useFullResumeID_tags_25, + sizeof(asn_DEF_ASN_RRC_useFullResumeID_tags_25) + /sizeof(asn_DEF_ASN_RRC_useFullResumeID_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_useFullResumeID_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_useFullResumeID_tags_25) + /sizeof(asn_DEF_ASN_RRC_useFullResumeID_tags_25[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_useFullResumeID_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_useFullResumeID_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_28 = { + sizeof(struct ASN_RRC_SIB1__nonCriticalExtension), + offsetof(struct ASN_RRC_SIB1__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_28 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_28, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_28) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_28) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB1_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB1, cellSelectionInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_cellSelectionInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellSelectionInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB1, cellAccessRelatedInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellAccessRelatedInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellAccessRelatedInfo" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_SIB1, connEstFailureControl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ConnEstFailureControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailureControl" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_SIB1, si_SchedulingInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SI_SchedulingInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-SchedulingInfo" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_SIB1, servingCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServingCellConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellConfigCommon" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_SIB1, ims_EmergencySupport), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ims_EmergencySupport_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-EmergencySupport" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_SIB1, eCallOverIMS_Support), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_eCallOverIMS_Support_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eCallOverIMS-Support" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SIB1, ue_TimersAndConstants), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_TimersAndConstants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-TimersAndConstants" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SIB1, uac_BarringInfo), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_uac_BarringInfo_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringInfo" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB1, useFullResumeID), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_useFullResumeID_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useFullResumeID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB1, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB1, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB1_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellSelectionInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellAccessRelatedInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* connEstFailureControl */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* si-SchedulingInfo */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* servingCellConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ims-EmergencySupport */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* eCallOverIMS-Support */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ue-TimersAndConstants */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* uac-BarringInfo */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* useFullResumeID */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB1_specs_1 = { + sizeof(struct ASN_RRC_SIB1), + offsetof(struct ASN_RRC_SIB1, _asn_ctx), + asn_MAP_ASN_RRC_SIB1_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB1_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB1 = { + "SIB1", + "SIB1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB1_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB1_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB1_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB1_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB1_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB1_1, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_SIB1_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB1.h b/src/asn/rrc/ASN_RRC_SIB1.h new file mode 100644 index 0000000..41b0097 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB1.h @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB1_H_ +#define _ASN_RRC_SIB1_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CellAccessRelatedInfo.h" +#include +#include +#include "ASN_RRC_Q-RxLevMin.h" +#include +#include "ASN_RRC_Q-QualMin.h" +#include +#include "ASN_RRC_UAC-BarringInfoSetList.h" +#include "ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SIB1__ims_EmergencySupport { + ASN_RRC_SIB1__ims_EmergencySupport_true = 0 +} e_ASN_RRC_SIB1__ims_EmergencySupport; +typedef enum ASN_RRC_SIB1__eCallOverIMS_Support { + ASN_RRC_SIB1__eCallOverIMS_Support_true = 0 +} e_ASN_RRC_SIB1__eCallOverIMS_Support; +typedef enum ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR { + ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_NOTHING, /* No components present */ + ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_plmnCommon, + ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_individualPLMNList +} ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR; +typedef enum ASN_RRC_SIB1__useFullResumeID { + ASN_RRC_SIB1__useFullResumeID_true = 0 +} e_ASN_RRC_SIB1__useFullResumeID; + +/* Forward declarations */ +struct ASN_RRC_ConnEstFailureControl; +struct ASN_RRC_SI_SchedulingInfo; +struct ASN_RRC_ServingCellConfigCommonSIB; +struct ASN_RRC_UE_TimersAndConstants; +struct ASN_RRC_UAC_BarringPerCatList; +struct ASN_RRC_UAC_BarringPerPLMN_List; + +/* ASN_RRC_SIB1 */ +typedef struct ASN_RRC_SIB1 { + struct ASN_RRC_SIB1__cellSelectionInfo { + ASN_RRC_Q_RxLevMin_t q_RxLevMin; + long *q_RxLevMinOffset; /* OPTIONAL */ + ASN_RRC_Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + ASN_RRC_Q_QualMin_t *q_QualMin; /* OPTIONAL */ + long *q_QualMinOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cellSelectionInfo; + ASN_RRC_CellAccessRelatedInfo_t cellAccessRelatedInfo; + struct ASN_RRC_ConnEstFailureControl *connEstFailureControl; /* OPTIONAL */ + struct ASN_RRC_SI_SchedulingInfo *si_SchedulingInfo; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfigCommonSIB *servingCellConfigCommon; /* OPTIONAL */ + long *ims_EmergencySupport; /* OPTIONAL */ + long *eCallOverIMS_Support; /* OPTIONAL */ + struct ASN_RRC_UE_TimersAndConstants *ue_TimersAndConstants; /* OPTIONAL */ + struct ASN_RRC_SIB1__uac_BarringInfo { + struct ASN_RRC_UAC_BarringPerCatList *uac_BarringForCommon; /* OPTIONAL */ + struct ASN_RRC_UAC_BarringPerPLMN_List *uac_BarringPerPLMN_List; /* OPTIONAL */ + ASN_RRC_UAC_BarringInfoSetList_t uac_BarringInfoSetList; + struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo { + ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR present; + union ASN_RRC_SIB1__ASN_RRC_uac_BarringInfo__ASN_RRC_uac_AccessCategory1_SelectionAssistanceInfo_u { + ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_t plmnCommon; + struct ASN_RRC_SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList { + A_SEQUENCE_OF(ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *individualPLMNList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uac_AccessCategory1_SelectionAssistanceInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uac_BarringInfo; + long *useFullResumeID; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_SIB1__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB1_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ims_EmergencySupport_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_eCallOverIMS_Support_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_useFullResumeID_25; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB1; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB1_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB1_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB1_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB2.c b/src/asn/rrc/ASN_RRC_SIB2.c new file mode 100644 index 0000000..9170aa6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB2.c @@ -0,0 +1,786 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB2.h" + +#include "ASN_RRC_ThresholdNR.h" +#include "ASN_RRC_MultiFrequencyBandListNR-SIB.h" +#include "ASN_RRC_SSB-MTC.h" +#include "ASN_RRC_SS-RSSI-Measurement.h" +#include "ASN_RRC_SSB-ToMeasure.h" +#include "ASN_RRC_SpeedStateScaleFactors.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 int +memb_ASN_RRC_nrofSS_BlocksToAverage_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 >= 2 && value <= 16)) { + /* Constraint 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_ASN_RRC_q_Hyst_constr_6 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_type_ASN_RRC_sf_Medium_constr_26 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_type_ASN_RRC_sf_High_constr_31 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_ASN_RRC_nrofSS_BlocksToAverage_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 2, 16 } /* (2..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_q_Hyst_value2enum_6[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB1" }, + { 2, 3, "dB2" }, + { 3, 3, "dB3" }, + { 4, 3, "dB4" }, + { 5, 3, "dB5" }, + { 6, 3, "dB6" }, + { 7, 3, "dB8" }, + { 8, 4, "dB10" }, + { 9, 4, "dB12" }, + { 10, 4, "dB14" }, + { 11, 4, "dB16" }, + { 12, 4, "dB18" }, + { 13, 4, "dB20" }, + { 14, 4, "dB22" }, + { 15, 4, "dB24" } +}; +static const unsigned int asn_MAP_ASN_RRC_q_Hyst_enum2value_6[] = { + 0, /* dB0(0) */ + 1, /* dB1(1) */ + 8, /* dB10(8) */ + 9, /* dB12(9) */ + 10, /* dB14(10) */ + 11, /* dB16(11) */ + 12, /* dB18(12) */ + 2, /* dB2(2) */ + 13, /* dB20(13) */ + 14, /* dB22(14) */ + 15, /* dB24(15) */ + 3, /* dB3(3) */ + 4, /* dB4(4) */ + 5, /* dB5(5) */ + 6, /* dB6(6) */ + 7 /* dB8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_q_Hyst_specs_6 = { + asn_MAP_ASN_RRC_q_Hyst_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_q_Hyst_enum2value_6, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_q_Hyst_tags_6[] = { + (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_ASN_RRC_q_Hyst_6 = { + "q-Hyst", + "q-Hyst", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_q_Hyst_tags_6, + sizeof(asn_DEF_ASN_RRC_q_Hyst_tags_6) + /sizeof(asn_DEF_ASN_RRC_q_Hyst_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_q_Hyst_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_q_Hyst_tags_6) + /sizeof(asn_DEF_ASN_RRC_q_Hyst_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_q_Hyst_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_q_Hyst_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sf_Medium_value2enum_26[] = { + { 0, 4, "dB-6" }, + { 1, 4, "dB-4" }, + { 2, 4, "dB-2" }, + { 3, 3, "dB0" } +}; +static const unsigned int asn_MAP_ASN_RRC_sf_Medium_enum2value_26[] = { + 2, /* dB-2(2) */ + 1, /* dB-4(1) */ + 0, /* dB-6(0) */ + 3 /* dB0(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sf_Medium_specs_26 = { + asn_MAP_ASN_RRC_sf_Medium_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sf_Medium_enum2value_26, /* 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_ASN_RRC_sf_Medium_tags_26[] = { + (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_ASN_RRC_sf_Medium_26 = { + "sf-Medium", + "sf-Medium", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sf_Medium_tags_26, + sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_26) + /sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_26[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sf_Medium_tags_26, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_26) + /sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_26[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sf_Medium_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sf_Medium_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sf_High_value2enum_31[] = { + { 0, 4, "dB-6" }, + { 1, 4, "dB-4" }, + { 2, 4, "dB-2" }, + { 3, 3, "dB0" } +}; +static const unsigned int asn_MAP_ASN_RRC_sf_High_enum2value_31[] = { + 2, /* dB-2(2) */ + 1, /* dB-4(1) */ + 0, /* dB-6(0) */ + 3 /* dB0(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sf_High_specs_31 = { + asn_MAP_ASN_RRC_sf_High_value2enum_31, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sf_High_enum2value_31, /* 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_ASN_RRC_sf_High_tags_31[] = { + (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_ASN_RRC_sf_High_31 = { + "sf-High", + "sf-High", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sf_High_tags_31, + sizeof(asn_DEF_ASN_RRC_sf_High_tags_31) + /sizeof(asn_DEF_ASN_RRC_sf_High_tags_31[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sf_High_tags_31, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sf_High_tags_31) + /sizeof(asn_DEF_ASN_RRC_sf_High_tags_31[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sf_High_constr_31, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sf_High_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_q_HystSF_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_Medium), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sf_Medium_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-Medium" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_High), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sf_High_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-High" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_q_HystSF_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_q_HystSF_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sf-Medium */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sf-High */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_q_HystSF_specs_25 = { + sizeof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF), + offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, _asn_ctx), + asn_MAP_ASN_RRC_q_HystSF_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_q_HystSF_25 = { + "q-HystSF", + "q-HystSF", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_q_HystSF_tags_25, + sizeof(asn_DEF_ASN_RRC_q_HystSF_tags_25) + /sizeof(asn_DEF_ASN_RRC_q_HystSF_tags_25[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_q_HystSF_tags_25, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_q_HystSF_tags_25) + /sizeof(asn_DEF_ASN_RRC_q_HystSF_tags_25[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_q_HystSF_25, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_q_HystSF_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_speedStateReselectionPars_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars, mobilityStateParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MobilityStateParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityStateParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars, q_HystSF), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_q_HystSF_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-HystSF" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_speedStateReselectionPars_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* mobilityStateParameters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* q-HystSF */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_speedStateReselectionPars_specs_23 = { + sizeof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars), + offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars, _asn_ctx), + asn_MAP_ASN_RRC_speedStateReselectionPars_tag2el_23, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_speedStateReselectionPars_23 = { + "speedStateReselectionPars", + "speedStateReselectionPars", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23, + sizeof(asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23) + /sizeof(asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23) + /sizeof(asn_DEF_ASN_RRC_speedStateReselectionPars_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_speedStateReselectionPars_23, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_speedStateReselectionPars_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cellReselectionInfoCommon_2[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofSS_BlocksToAverage_constr_3, memb_ASN_RRC_nrofSS_BlocksToAverage_constraint_2 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, rangeToBestCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RangeToBestCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rangeToBestCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, q_Hyst), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_q_Hyst_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-Hyst" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, speedStateReselectionPars), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_speedStateReselectionPars_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedStateReselectionPars" + }, +}; +static const int asn_MAP_ASN_RRC_cellReselectionInfoCommon_oms_2[] = { 0, 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cellReselectionInfoCommon_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofSS-BlocksToAverage */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* absThreshSS-BlocksConsolidation */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rangeToBestCell */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* q-Hyst */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* speedStateReselectionPars */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cellReselectionInfoCommon_specs_2 = { + sizeof(struct ASN_RRC_SIB2__cellReselectionInfoCommon), + offsetof(struct ASN_RRC_SIB2__cellReselectionInfoCommon, _asn_ctx), + asn_MAP_ASN_RRC_cellReselectionInfoCommon_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cellReselectionInfoCommon_oms_2, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellReselectionInfoCommon_2 = { + "cellReselectionInfoCommon", + "cellReselectionInfoCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2, + sizeof(asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2) + /sizeof(asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2) + /sizeof(asn_DEF_ASN_RRC_cellReselectionInfoCommon_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cellReselectionInfoCommon_2, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_cellReselectionInfoCommon_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_cellReselectionServingFreqInfo_37[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NonIntraSearchP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NonIntraSearchQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, threshServingLowP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshServingLowP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, threshServingLowQ), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshServingLowQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_ASN_RRC_cellReselectionServingFreqInfo_oms_37[] = { 0, 1, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cellReselectionServingFreqInfo_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* s-NonIntraSearchP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* s-NonIntraSearchQ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* threshServingLowP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* threshServingLowQ */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cellReselectionPriority */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* cellReselectionSubPriority */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cellReselectionServingFreqInfo_specs_37 = { + sizeof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo), + offsetof(struct ASN_RRC_SIB2__cellReselectionServingFreqInfo, _asn_ctx), + asn_MAP_ASN_RRC_cellReselectionServingFreqInfo_tag2el_37, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_cellReselectionServingFreqInfo_oms_37, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_37 = { + "cellReselectionServingFreqInfo", + "cellReselectionServingFreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37, + sizeof(asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37) + /sizeof(asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37) + /sizeof(asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_tags_37[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_cellReselectionServingFreqInfo_37, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_cellReselectionServingFreqInfo_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_60[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo__ext1, t_ReselectionNR_SF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR-SF" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_60[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_60[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* t-ReselectionNR-SF */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_60 = { + sizeof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo__ext1), + offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_60, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_60, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_60 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_60, + sizeof(asn_DEF_ASN_RRC_ext1_tags_60) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_60[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_60, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_60) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_60[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_60, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_60 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_intraFreqCellReselectionInfo_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, s_IntraSearchP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-IntraSearchP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, s_IntraSearchQ), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-IntraSearchQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, t_ReselectionNR), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, frequencyBandListSUL), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListSUL" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, p_Max), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, smtc), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, deriveSSB_IndexFromCell), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deriveSSB-IndexFromCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, ext1), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_intraFreqCellReselectionInfo_oms_45[] = { 1, 2, 4, 6, 7, 8, 9, 10, 11, 13 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_intraFreqCellReselectionInfo_tag2el_45[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* q-RxLevMin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* q-RxLevMinSUL */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* q-QualMin */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* s-IntraSearchP */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* s-IntraSearchQ */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* t-ReselectionNR */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* frequencyBandList */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* frequencyBandListSUL */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* p-Max */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* smtc */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* ss-RSSI-Measurement */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ssb-ToMeasure */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* deriveSSB-IndexFromCell */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* ext1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_intraFreqCellReselectionInfo_specs_45 = { + sizeof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo), + offsetof(struct ASN_RRC_SIB2__intraFreqCellReselectionInfo, _asn_ctx), + asn_MAP_ASN_RRC_intraFreqCellReselectionInfo_tag2el_45, + 14, /* Count of tags in the map */ + asn_MAP_ASN_RRC_intraFreqCellReselectionInfo_oms_45, /* Optional members */ + 9, 1, /* Root/Additions */ + 13, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_45 = { + "intraFreqCellReselectionInfo", + "intraFreqCellReselectionInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45, + sizeof(asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45) + /sizeof(asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45) + /sizeof(asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_tags_45[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_intraFreqCellReselectionInfo_45, + 14, /* Elements count */ + &asn_SPC_ASN_RRC_intraFreqCellReselectionInfo_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2, cellReselectionInfoCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_cellReselectionInfoCommon_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionInfoCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2, cellReselectionServingFreqInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_cellReselectionServingFreqInfo_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionServingFreqInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB2, intraFreqCellReselectionInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_intraFreqCellReselectionInfo_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqCellReselectionInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cellReselectionInfoCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellReselectionServingFreqInfo */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* intraFreqCellReselectionInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB2_specs_1 = { + sizeof(struct ASN_RRC_SIB2), + offsetof(struct ASN_RRC_SIB2, _asn_ctx), + asn_MAP_ASN_RRC_SIB2_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_ASN_RRC_SIB2 = { + "SIB2", + "SIB2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB2_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB2_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB2_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB2_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB2_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SIB2_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB2.h b/src/asn/rrc/ASN_RRC_SIB2.h new file mode 100644 index 0000000..c1eb8bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB2.h @@ -0,0 +1,167 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB2_H_ +#define _ASN_RRC_SIB2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_RangeToBestCell.h" +#include +#include "ASN_RRC_MobilityStateParameters.h" +#include +#include "ASN_RRC_ReselectionThreshold.h" +#include "ASN_RRC_ReselectionThresholdQ.h" +#include "ASN_RRC_CellReselectionPriority.h" +#include "ASN_RRC_CellReselectionSubPriority.h" +#include "ASN_RRC_Q-RxLevMin.h" +#include "ASN_RRC_Q-QualMin.h" +#include "ASN_RRC_T-Reselection.h" +#include "ASN_RRC_P-Max.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst { + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB0 = 0, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB1 = 1, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB2 = 2, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB3 = 3, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB4 = 4, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB5 = 5, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB6 = 6, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB8 = 7, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB10 = 8, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB12 = 9, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB14 = 10, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB16 = 11, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB18 = 12, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB20 = 13, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB22 = 14, + ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst_dB24 = 15 +} e_ASN_RRC_SIB2__cellReselectionInfoCommon__q_Hyst; +typedef enum ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium { + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_6 = 0, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_4 = 1, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_2 = 2, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB0 = 3 +} e_ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium; +typedef enum ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High { + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_6 = 0, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_4 = 1, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_2 = 2, + ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB0 = 3 +} e_ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High; + +/* Forward declarations */ +struct ASN_RRC_ThresholdNR; +struct ASN_RRC_MultiFrequencyBandListNR_SIB; +struct ASN_RRC_SSB_MTC; +struct ASN_RRC_SS_RSSI_Measurement; +struct ASN_RRC_SSB_ToMeasure; +struct ASN_RRC_SpeedStateScaleFactors; + +/* ASN_RRC_SIB2 */ +typedef struct ASN_RRC_SIB2 { + struct ASN_RRC_SIB2__cellReselectionInfoCommon { + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + struct ASN_RRC_ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + ASN_RRC_RangeToBestCell_t *rangeToBestCell; /* OPTIONAL */ + long q_Hyst; + struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars { + ASN_RRC_MobilityStateParameters_t mobilityStateParameters; + struct ASN_RRC_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF { + long sf_Medium; + long sf_High; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } q_HystSF; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *speedStateReselectionPars; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cellReselectionInfoCommon; + struct ASN_RRC_SIB2__cellReselectionServingFreqInfo { + ASN_RRC_ReselectionThreshold_t *s_NonIntraSearchP; /* OPTIONAL */ + ASN_RRC_ReselectionThresholdQ_t *s_NonIntraSearchQ; /* OPTIONAL */ + ASN_RRC_ReselectionThreshold_t threshServingLowP; + ASN_RRC_ReselectionThresholdQ_t *threshServingLowQ; /* OPTIONAL */ + ASN_RRC_CellReselectionPriority_t cellReselectionPriority; + ASN_RRC_CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cellReselectionServingFreqInfo; + struct ASN_RRC_SIB2__intraFreqCellReselectionInfo { + ASN_RRC_Q_RxLevMin_t q_RxLevMin; + ASN_RRC_Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + ASN_RRC_Q_QualMin_t *q_QualMin; /* OPTIONAL */ + ASN_RRC_ReselectionThreshold_t s_IntraSearchP; + ASN_RRC_ReselectionThresholdQ_t *s_IntraSearchQ; /* OPTIONAL */ + ASN_RRC_T_Reselection_t t_ReselectionNR; + struct ASN_RRC_MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + struct ASN_RRC_MultiFrequencyBandListNR_SIB *frequencyBandListSUL; /* OPTIONAL */ + ASN_RRC_P_Max_t *p_Max; /* OPTIONAL */ + struct ASN_RRC_SSB_MTC *smtc; /* OPTIONAL */ + struct ASN_RRC_SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + struct ASN_RRC_SSB_ToMeasure *ssb_ToMeasure; /* OPTIONAL */ + BOOLEAN_t deriveSSB_IndexFromCell; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_SIB2__intraFreqCellReselectionInfo__ext1 { + struct ASN_RRC_SpeedStateScaleFactors *t_ReselectionNR_SF; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } intraFreqCellReselectionInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_q_Hyst_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sf_Medium_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sf_High_31; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB2; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB2_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB2_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB3.c b/src/asn/rrc/ASN_RRC_SIB3.c new file mode 100644 index 0000000..d61a0e1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB3.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB3.h" + +#include "ASN_RRC_IntraFreqNeighCellList.h" +#include "ASN_RRC_IntraFreqBlackCellList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB3_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB3, intraFreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IntraFreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqNeighCellList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB3, intraFreqBlackCellList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IntraFreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqBlackCellList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB3, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB3_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB3_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* intraFreqNeighCellList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* intraFreqBlackCellList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB3_specs_1 = { + sizeof(struct ASN_RRC_SIB3), + offsetof(struct ASN_RRC_SIB3, _asn_ctx), + asn_MAP_ASN_RRC_SIB3_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB3_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB3 = { + "SIB3", + "SIB3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB3_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB3_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB3_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB3_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB3_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB3_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SIB3_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB3.h b/src/asn/rrc/ASN_RRC_SIB3.h new file mode 100644 index 0000000..92ddbd2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB3.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB3_H_ +#define _ASN_RRC_SIB3_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_IntraFreqNeighCellList; +struct ASN_RRC_IntraFreqBlackCellList; + +/* ASN_RRC_SIB3 */ +typedef struct ASN_RRC_SIB3 { + struct ASN_RRC_IntraFreqNeighCellList *intraFreqNeighCellList; /* OPTIONAL */ + struct ASN_RRC_IntraFreqBlackCellList *intraFreqBlackCellList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB3; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB3_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB3_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB3_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB4.c b/src/asn/rrc/ASN_RRC_SIB4.c new file mode 100644 index 0000000..3a2fa6f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB4.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB4.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB4, interFreqCarrierFreqList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_InterFreqCarrierFreqList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqCarrierFreqList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB4, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB4_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB4_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* interFreqCarrierFreqList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB4_specs_1 = { + sizeof(struct ASN_RRC_SIB4), + offsetof(struct ASN_RRC_SIB4, _asn_ctx), + asn_MAP_ASN_RRC_SIB4_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB4_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB4 = { + "SIB4", + "SIB4", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB4_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB4_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB4_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB4_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB4_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB4_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB4_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SIB4_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB4.h b/src/asn/rrc/ASN_RRC_SIB4.h new file mode 100644 index 0000000..49f4ea2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB4.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB4_H_ +#define _ASN_RRC_SIB4_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_InterFreqCarrierFreqList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SIB4 */ +typedef struct ASN_RRC_SIB4 { + ASN_RRC_InterFreqCarrierFreqList_t interFreqCarrierFreqList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB4; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB4_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB4_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB4_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB5.c b/src/asn/rrc/ASN_RRC_SIB5.c new file mode 100644 index 0000000..54a67a2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB5.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB5.h" + +#include "ASN_RRC_CarrierFreqListEUTRA.h" +#include "ASN_RRC_SpeedStateScaleFactors.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB5_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB5, carrierFreqListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CarrierFreqListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreqListEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB5, t_ReselectionEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB5, t_ReselectionEUTRA_SF), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionEUTRA-SF" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB5, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB5_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* carrierFreqListEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* t-ReselectionEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* t-ReselectionEUTRA-SF */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB5_specs_1 = { + sizeof(struct ASN_RRC_SIB5), + offsetof(struct ASN_RRC_SIB5, _asn_ctx), + asn_MAP_ASN_RRC_SIB5_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB5_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB5 = { + "SIB5", + "SIB5", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB5_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB5_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB5_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB5_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB5_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB5_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SIB5_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB5.h b/src/asn/rrc/ASN_RRC_SIB5.h new file mode 100644 index 0000000..f9f71bb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB5.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB5_H_ +#define _ASN_RRC_SIB5_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_T-Reselection.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CarrierFreqListEUTRA; +struct ASN_RRC_SpeedStateScaleFactors; + +/* ASN_RRC_SIB5 */ +typedef struct ASN_RRC_SIB5 { + struct ASN_RRC_CarrierFreqListEUTRA *carrierFreqListEUTRA; /* OPTIONAL */ + ASN_RRC_T_Reselection_t t_ReselectionEUTRA; + struct ASN_RRC_SpeedStateScaleFactors *t_ReselectionEUTRA_SF; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB5; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB5_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB5_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB5_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB6.c b/src/asn/rrc/ASN_RRC_SIB6.c new file mode 100644 index 0000000..1afdd94 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB6.c @@ -0,0 +1,185 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB6.h" + +static int +memb_ASN_RRC_messageIdentifier_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_serialNumber_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_warningType_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 == 2)) { + /* Constraint 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_ASN_RRC_messageIdentifier_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_serialNumber_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_warningType_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB6_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB6, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_messageIdentifier_constr_2, memb_ASN_RRC_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB6, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_serialNumber_constr_3, memb_ASN_RRC_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB6, warningType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_warningType_constr_4, memb_ASN_RRC_warningType_constraint_1 }, + 0, 0, /* No default value */ + "warningType" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB6, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB6_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB6_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB6_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* warningType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB6_specs_1 = { + sizeof(struct ASN_RRC_SIB6), + offsetof(struct ASN_RRC_SIB6, _asn_ctx), + asn_MAP_ASN_RRC_SIB6_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB6_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB6 = { + "SIB6", + "SIB6", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB6_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB6_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB6_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB6_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB6_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB6_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB6_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SIB6_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB6.h b/src/asn/rrc/ASN_RRC_SIB6.h new file mode 100644 index 0000000..170cdb6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB6.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB6_H_ +#define _ASN_RRC_SIB6_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SIB6 */ +typedef struct ASN_RRC_SIB6 { + BIT_STRING_t messageIdentifier; + BIT_STRING_t serialNumber; + OCTET_STRING_t warningType; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB6_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB6; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB6_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB6_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB6_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB7.c b/src/asn/rrc/ASN_RRC_SIB7.c new file mode 100644 index 0000000..46ca5c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB7.c @@ -0,0 +1,291 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB7.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_messageIdentifier_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_serialNumber_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_warningMessageSegmentNumber_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 int +memb_ASN_RRC_dataCodingScheme_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)) { + /* Constraint 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_ASN_RRC_warningMessageSegmentType_constr_4 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_ASN_RRC_messageIdentifier_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_serialNumber_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_warningMessageSegmentNumber_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dataCodingScheme_constr_9 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_warningMessageSegmentType_value2enum_4[] = { + { 0, 14, "notLastSegment" }, + { 1, 11, "lastSegment" } +}; +static const unsigned int asn_MAP_ASN_RRC_warningMessageSegmentType_enum2value_4[] = { + 1, /* lastSegment(1) */ + 0 /* notLastSegment(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_warningMessageSegmentType_specs_4 = { + asn_MAP_ASN_RRC_warningMessageSegmentType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_warningMessageSegmentType_enum2value_4, /* 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_ASN_RRC_warningMessageSegmentType_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_ASN_RRC_warningMessageSegmentType_4 = { + "warningMessageSegmentType", + "warningMessageSegmentType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4, + sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_warningMessageSegmentType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_warningMessageSegmentType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB7_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB7, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_messageIdentifier_constr_2, memb_ASN_RRC_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB7, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_serialNumber_constr_3, memb_ASN_RRC_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB7, warningMessageSegmentType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_warningMessageSegmentType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "warningMessageSegmentType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB7, warningMessageSegmentNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_warningMessageSegmentNumber_constr_7, memb_ASN_RRC_warningMessageSegmentNumber_constraint_1 }, + 0, 0, /* No default value */ + "warningMessageSegmentNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB7, warningMessageSegment), + (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 */ + "warningMessageSegment" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB7, dataCodingScheme), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dataCodingScheme_constr_9, memb_ASN_RRC_dataCodingScheme_constraint_1 }, + 0, 0, /* No default value */ + "dataCodingScheme" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB7, lateNonCriticalExtension), + (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 */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB7_oms_1[] = { 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB7_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* warningMessageSegmentType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* warningMessageSegmentNumber */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* warningMessageSegment */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dataCodingScheme */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB7_specs_1 = { + sizeof(struct ASN_RRC_SIB7), + offsetof(struct ASN_RRC_SIB7, _asn_ctx), + asn_MAP_ASN_RRC_SIB7_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB7_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB7 = { + "SIB7", + "SIB7", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB7_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB7_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB7_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB7_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB7_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB7_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_SIB7_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB7.h b/src/asn/rrc/ASN_RRC_SIB7.h new file mode 100644 index 0000000..239fe30 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB7.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB7_H_ +#define _ASN_RRC_SIB7_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SIB7__warningMessageSegmentType { + ASN_RRC_SIB7__warningMessageSegmentType_notLastSegment = 0, + ASN_RRC_SIB7__warningMessageSegmentType_lastSegment = 1 +} e_ASN_RRC_SIB7__warningMessageSegmentType; + +/* ASN_RRC_SIB7 */ +typedef struct ASN_RRC_SIB7 { + BIT_STRING_t messageIdentifier; + BIT_STRING_t serialNumber; + long warningMessageSegmentType; + long warningMessageSegmentNumber; + OCTET_STRING_t warningMessageSegment; + OCTET_STRING_t *dataCodingScheme; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB7_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_warningMessageSegmentType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB7; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB7_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB7_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB7_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB8.c b/src/asn/rrc/ASN_RRC_SIB8.c new file mode 100644 index 0000000..03ee51a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB8.c @@ -0,0 +1,301 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB8.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_messageIdentifier_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_serialNumber_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 == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_warningMessageSegmentNumber_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 int +memb_ASN_RRC_dataCodingScheme_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)) { + /* Constraint 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_ASN_RRC_warningMessageSegmentType_constr_4 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_ASN_RRC_messageIdentifier_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_serialNumber_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_warningMessageSegmentNumber_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dataCodingScheme_constr_9 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_warningMessageSegmentType_value2enum_4[] = { + { 0, 14, "notLastSegment" }, + { 1, 11, "lastSegment" } +}; +static const unsigned int asn_MAP_ASN_RRC_warningMessageSegmentType_enum2value_4[] = { + 1, /* lastSegment(1) */ + 0 /* notLastSegment(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_warningMessageSegmentType_specs_4 = { + asn_MAP_ASN_RRC_warningMessageSegmentType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_warningMessageSegmentType_enum2value_4, /* 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_ASN_RRC_warningMessageSegmentType_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_ASN_RRC_warningMessageSegmentType_4 = { + "warningMessageSegmentType", + "warningMessageSegmentType", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4, + sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_ASN_RRC_warningMessageSegmentType_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_warningMessageSegmentType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_warningMessageSegmentType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB8, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_messageIdentifier_constr_2, memb_ASN_RRC_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB8, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_serialNumber_constr_3, memb_ASN_RRC_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB8, warningMessageSegmentType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_warningMessageSegmentType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "warningMessageSegmentType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB8, warningMessageSegmentNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_warningMessageSegmentNumber_constr_7, memb_ASN_RRC_warningMessageSegmentNumber_constraint_1 }, + 0, 0, /* No default value */ + "warningMessageSegmentNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB8, warningMessageSegment), + (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 */ + "warningMessageSegment" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB8, dataCodingScheme), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dataCodingScheme_constr_9, memb_ASN_RRC_dataCodingScheme_constraint_1 }, + 0, 0, /* No default value */ + "dataCodingScheme" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB8, warningAreaCoordinatesSegment), + (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 */ + "warningAreaCoordinatesSegment" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB8, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB8_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB8_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* messageIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serialNumber */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* warningMessageSegmentType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* warningMessageSegmentNumber */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* warningMessageSegment */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* dataCodingScheme */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* warningAreaCoordinatesSegment */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB8_specs_1 = { + sizeof(struct ASN_RRC_SIB8), + offsetof(struct ASN_RRC_SIB8, _asn_ctx), + asn_MAP_ASN_RRC_SIB8_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB8_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB8 = { + "SIB8", + "SIB8", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB8_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB8_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB8_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB8_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB8_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB8_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_SIB8_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB8.h b/src/asn/rrc/ASN_RRC_SIB8.h new file mode 100644 index 0000000..1845b8b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB8.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB8_H_ +#define _ASN_RRC_SIB8_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SIB8__warningMessageSegmentType { + ASN_RRC_SIB8__warningMessageSegmentType_notLastSegment = 0, + ASN_RRC_SIB8__warningMessageSegmentType_lastSegment = 1 +} e_ASN_RRC_SIB8__warningMessageSegmentType; + +/* ASN_RRC_SIB8 */ +typedef struct ASN_RRC_SIB8 { + BIT_STRING_t messageIdentifier; + BIT_STRING_t serialNumber; + long warningMessageSegmentType; + long warningMessageSegmentNumber; + OCTET_STRING_t warningMessageSegment; + OCTET_STRING_t *dataCodingScheme; /* OPTIONAL */ + OCTET_STRING_t *warningAreaCoordinatesSegment; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB8_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_warningMessageSegmentType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB8; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB8_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB8_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB8_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SIB9.c b/src/asn/rrc/ASN_RRC_SIB9.c new file mode 100644 index 0000000..3b76215 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB9.c @@ -0,0 +1,269 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SIB9.h" + +static int +memb_ASN_RRC_timeInfoUTC_constraint_2(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 <= 549755813887)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_dayLightSavingTime_constraint_2(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 == 2)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_leapSeconds_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 >= -127 && value <= 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_localTimeOffset_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 >= -63 && value <= 64)) { + /* Constraint 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_ASN_RRC_timeInfoUTC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 39, -1, 0, 549755813887 } /* (0..549755813887) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_dayLightSavingTime_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 2, 2 } /* (SIZE(2..2)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_leapSeconds_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -127, 128 } /* (-127..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_localTimeOffset_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -63, 64 } /* (-63..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_timeInfo_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SIB9__timeInfo, timeInfoUTC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_INTEGER, + 0, + { 0, &asn_PER_memb_ASN_RRC_timeInfoUTC_constr_3, memb_ASN_RRC_timeInfoUTC_constraint_2 }, + 0, 0, /* No default value */ + "timeInfoUTC" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SIB9__timeInfo, dayLightSavingTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_dayLightSavingTime_constr_4, memb_ASN_RRC_dayLightSavingTime_constraint_2 }, + 0, 0, /* No default value */ + "dayLightSavingTime" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB9__timeInfo, leapSeconds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_leapSeconds_constr_5, memb_ASN_RRC_leapSeconds_constraint_2 }, + 0, 0, /* No default value */ + "leapSeconds" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB9__timeInfo, localTimeOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_localTimeOffset_constr_6, memb_ASN_RRC_localTimeOffset_constraint_2 }, + 0, 0, /* No default value */ + "localTimeOffset" + }, +}; +static const int asn_MAP_ASN_RRC_timeInfo_oms_2[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_timeInfo_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeInfoUTC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dayLightSavingTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* leapSeconds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* localTimeOffset */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_timeInfo_specs_2 = { + sizeof(struct ASN_RRC_SIB9__timeInfo), + offsetof(struct ASN_RRC_SIB9__timeInfo, _asn_ctx), + asn_MAP_ASN_RRC_timeInfo_tag2el_2, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_timeInfo_oms_2, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeInfo_2 = { + "timeInfo", + "timeInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_timeInfo_tags_2, + sizeof(asn_DEF_ASN_RRC_timeInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_timeInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_timeInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_timeInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_timeInfo_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_timeInfo_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_timeInfo_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SIB9_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SIB9, timeInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_timeInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SIB9, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SIB9_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SIB9_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SIB9_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* lateNonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB9_specs_1 = { + sizeof(struct ASN_RRC_SIB9), + offsetof(struct ASN_RRC_SIB9, _asn_ctx), + asn_MAP_ASN_RRC_SIB9_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SIB9_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB9 = { + "SIB9", + "SIB9", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SIB9_tags_1, + sizeof(asn_DEF_ASN_RRC_SIB9_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB9_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SIB9_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SIB9_tags_1) + /sizeof(asn_DEF_ASN_RRC_SIB9_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SIB9_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SIB9_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SIB9.h b/src/asn/rrc/ASN_RRC_SIB9.h new file mode 100644 index 0000000..7e0b0eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SIB9.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SIB9_H_ +#define _ASN_RRC_SIB9_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SIB9 */ +typedef struct ASN_RRC_SIB9 { + struct ASN_RRC_SIB9__timeInfo { + INTEGER_t timeInfoUTC; + BIT_STRING_t *dayLightSavingTime; /* OPTIONAL */ + long *leapSeconds; /* OPTIONAL */ + long *localTimeOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *timeInfo; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SIB9_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SIB9; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SIB9_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SIB9_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SIB9_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SINR-Range.c b/src/asn/rrc/ASN_RRC_SINR-Range.c new file mode 100644 index 0000000..cde75c5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SINR-Range.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SINR-Range.h" + +int +ASN_RRC_SINR_Range_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SINR_Range_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SINR_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SINR_Range = { + "SINR-Range", + "SINR-Range", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SINR_Range_tags_1, + sizeof(asn_DEF_ASN_RRC_SINR_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_SINR_Range_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SINR_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SINR_Range_tags_1) + /sizeof(asn_DEF_ASN_RRC_SINR_Range_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SINR_Range_constr_1, ASN_RRC_SINR_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SINR-Range.h b/src/asn/rrc/ASN_RRC_SINR-Range.h new file mode 100644 index 0000000..c88f668 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SINR-Range.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SINR_Range_H_ +#define _ASN_RRC_SINR_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SINR-Range */ +typedef long ASN_RRC_SINR_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SINR_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SINR_Range; +asn_struct_free_f ASN_RRC_SINR_Range_free; +asn_struct_print_f ASN_RRC_SINR_Range_print; +asn_constr_check_f ASN_RRC_SINR_Range_constraint; +ber_type_decoder_f ASN_RRC_SINR_Range_decode_ber; +der_type_encoder_f ASN_RRC_SINR_Range_encode_der; +xer_type_decoder_f ASN_RRC_SINR_Range_decode_xer; +xer_type_encoder_f ASN_RRC_SINR_Range_encode_xer; +per_type_decoder_f ASN_RRC_SINR_Range_decode_uper; +per_type_encoder_f ASN_RRC_SINR_Range_encode_uper; +per_type_decoder_f ASN_RRC_SINR_Range_decode_aper; +per_type_encoder_f ASN_RRC_SINR_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SINR_Range_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.c b/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.c new file mode 100644 index 0000000..2e6197a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SINR-RangeEUTRA.h" + +int +ASN_RRC_SINR_RangeEUTRA_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SINR_RangeEUTRA_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SINR_RangeEUTRA = { + "SINR-RangeEUTRA", + "SINR-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SINR_RangeEUTRA_constr_1, ASN_RRC_SINR_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.h b/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.h new file mode 100644 index 0000000..35fd3fd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SINR-RangeEUTRA.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SINR_RangeEUTRA_H_ +#define _ASN_RRC_SINR_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SINR-RangeEUTRA */ +typedef long ASN_RRC_SINR_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SINR_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SINR_RangeEUTRA; +asn_struct_free_f ASN_RRC_SINR_RangeEUTRA_free; +asn_struct_print_f ASN_RRC_SINR_RangeEUTRA_print; +asn_constr_check_f ASN_RRC_SINR_RangeEUTRA_constraint; +ber_type_decoder_f ASN_RRC_SINR_RangeEUTRA_decode_ber; +der_type_encoder_f ASN_RRC_SINR_RangeEUTRA_encode_der; +xer_type_decoder_f ASN_RRC_SINR_RangeEUTRA_decode_xer; +xer_type_encoder_f ASN_RRC_SINR_RangeEUTRA_encode_xer; +per_type_decoder_f ASN_RRC_SINR_RangeEUTRA_decode_uper; +per_type_encoder_f ASN_RRC_SINR_RangeEUTRA_encode_uper; +per_type_decoder_f ASN_RRC_SINR_RangeEUTRA_decode_aper; +per_type_encoder_f ASN_RRC_SINR_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SINR_RangeEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SK-Counter.c b/src/asn/rrc/ASN_RRC_SK-Counter.c new file mode 100644 index 0000000..22c0f06 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SK-Counter.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SK-Counter.h" + +int +ASN_RRC_SK_Counter_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_ASN_RRC_SK_Counter_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_ASN_RRC_SK_Counter_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SK_Counter = { + "SK-Counter", + "SK-Counter", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SK_Counter_tags_1, + sizeof(asn_DEF_ASN_RRC_SK_Counter_tags_1) + /sizeof(asn_DEF_ASN_RRC_SK_Counter_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SK_Counter_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SK_Counter_tags_1) + /sizeof(asn_DEF_ASN_RRC_SK_Counter_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SK_Counter_constr_1, ASN_RRC_SK_Counter_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SK-Counter.h b/src/asn/rrc/ASN_RRC_SK-Counter.h new file mode 100644 index 0000000..dbd55de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SK-Counter.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SK_Counter_H_ +#define _ASN_RRC_SK_Counter_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SK-Counter */ +typedef long ASN_RRC_SK_Counter_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SK_Counter_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SK_Counter; +asn_struct_free_f ASN_RRC_SK_Counter_free; +asn_struct_print_f ASN_RRC_SK_Counter_print; +asn_constr_check_f ASN_RRC_SK_Counter_constraint; +ber_type_decoder_f ASN_RRC_SK_Counter_decode_ber; +der_type_encoder_f ASN_RRC_SK_Counter_encode_der; +xer_type_decoder_f ASN_RRC_SK_Counter_decode_xer; +xer_type_encoder_f ASN_RRC_SK_Counter_encode_xer; +per_type_decoder_f ASN_RRC_SK_Counter_decode_uper; +per_type_encoder_f ASN_RRC_SK_Counter_encode_uper; +per_type_decoder_f ASN_RRC_SK_Counter_decode_aper; +per_type_encoder_f ASN_RRC_SK_Counter_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SK_Counter_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.c b/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.c new file mode 100644 index 0000000..9de7e72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SN-FieldLengthAM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_SN_FieldLengthAM_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_ASN_RRC_SN_FieldLengthAM_value2enum_1[] = { + { 0, 6, "size12" }, + { 1, 6, "size18" } +}; +static const unsigned int asn_MAP_ASN_RRC_SN_FieldLengthAM_enum2value_1[] = { + 0, /* size12(0) */ + 1 /* size18(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SN_FieldLengthAM_specs_1 = { + asn_MAP_ASN_RRC_SN_FieldLengthAM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_SN_FieldLengthAM_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_ASN_RRC_SN_FieldLengthAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SN_FieldLengthAM = { + "SN-FieldLengthAM", + "SN-FieldLengthAM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1, + sizeof(asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1) + /sizeof(asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1) + /sizeof(asn_DEF_ASN_RRC_SN_FieldLengthAM_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SN_FieldLengthAM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_SN_FieldLengthAM_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.h b/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.h new file mode 100644 index 0000000..ccf2228 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SN-FieldLengthAM.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SN_FieldLengthAM_H_ +#define _ASN_RRC_SN_FieldLengthAM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SN_FieldLengthAM { + ASN_RRC_SN_FieldLengthAM_size12 = 0, + ASN_RRC_SN_FieldLengthAM_size18 = 1 +} e_ASN_RRC_SN_FieldLengthAM; + +/* ASN_RRC_SN-FieldLengthAM */ +typedef long ASN_RRC_SN_FieldLengthAM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SN_FieldLengthAM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SN_FieldLengthAM; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SN_FieldLengthAM_specs_1; +asn_struct_free_f ASN_RRC_SN_FieldLengthAM_free; +asn_struct_print_f ASN_RRC_SN_FieldLengthAM_print; +asn_constr_check_f ASN_RRC_SN_FieldLengthAM_constraint; +ber_type_decoder_f ASN_RRC_SN_FieldLengthAM_decode_ber; +der_type_encoder_f ASN_RRC_SN_FieldLengthAM_encode_der; +xer_type_decoder_f ASN_RRC_SN_FieldLengthAM_decode_xer; +xer_type_encoder_f ASN_RRC_SN_FieldLengthAM_encode_xer; +per_type_decoder_f ASN_RRC_SN_FieldLengthAM_decode_uper; +per_type_encoder_f ASN_RRC_SN_FieldLengthAM_encode_uper; +per_type_decoder_f ASN_RRC_SN_FieldLengthAM_decode_aper; +per_type_encoder_f ASN_RRC_SN_FieldLengthAM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SN_FieldLengthAM_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.c b/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.c new file mode 100644 index 0000000..31eb8fc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SN-FieldLengthUM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_SN_FieldLengthUM_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_ASN_RRC_SN_FieldLengthUM_value2enum_1[] = { + { 0, 5, "size6" }, + { 1, 6, "size12" } +}; +static const unsigned int asn_MAP_ASN_RRC_SN_FieldLengthUM_enum2value_1[] = { + 1, /* size12(1) */ + 0 /* size6(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SN_FieldLengthUM_specs_1 = { + asn_MAP_ASN_RRC_SN_FieldLengthUM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_SN_FieldLengthUM_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_ASN_RRC_SN_FieldLengthUM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SN_FieldLengthUM = { + "SN-FieldLengthUM", + "SN-FieldLengthUM", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1, + sizeof(asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1) + /sizeof(asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1) + /sizeof(asn_DEF_ASN_RRC_SN_FieldLengthUM_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SN_FieldLengthUM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_SN_FieldLengthUM_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.h b/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.h new file mode 100644 index 0000000..6fa92dc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SN-FieldLengthUM.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SN_FieldLengthUM_H_ +#define _ASN_RRC_SN_FieldLengthUM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SN_FieldLengthUM { + ASN_RRC_SN_FieldLengthUM_size6 = 0, + ASN_RRC_SN_FieldLengthUM_size12 = 1 +} e_ASN_RRC_SN_FieldLengthUM; + +/* ASN_RRC_SN-FieldLengthUM */ +typedef long ASN_RRC_SN_FieldLengthUM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SN_FieldLengthUM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SN_FieldLengthUM; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SN_FieldLengthUM_specs_1; +asn_struct_free_f ASN_RRC_SN_FieldLengthUM_free; +asn_struct_print_f ASN_RRC_SN_FieldLengthUM_print; +asn_constr_check_f ASN_RRC_SN_FieldLengthUM_constraint; +ber_type_decoder_f ASN_RRC_SN_FieldLengthUM_decode_ber; +der_type_encoder_f ASN_RRC_SN_FieldLengthUM_encode_der; +xer_type_decoder_f ASN_RRC_SN_FieldLengthUM_decode_xer; +xer_type_encoder_f ASN_RRC_SN_FieldLengthUM_encode_xer; +per_type_decoder_f ASN_RRC_SN_FieldLengthUM_decode_uper; +per_type_encoder_f ASN_RRC_SN_FieldLengthUM_encode_uper; +per_type_decoder_f ASN_RRC_SN_FieldLengthUM_decode_aper; +per_type_encoder_f ASN_RRC_SN_FieldLengthUM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SN_FieldLengthUM_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SPS-Config.c b/src/asn/rrc/ASN_RRC_SPS-Config.c new file mode 100644 index 0000000..20f9dec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SPS-Config.c @@ -0,0 +1,230 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SPS-Config.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 int +memb_ASN_RRC_nrofHARQ_Processes_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 <= 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_type_ASN_RRC_periodicity_constr_2 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_type_ASN_RRC_mcs_Table_constr_21 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_nrofHARQ_Processes_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicity_value2enum_2[] = { + { 0, 4, "ms10" }, + { 1, 4, "ms20" }, + { 2, 4, "ms32" }, + { 3, 4, "ms40" }, + { 4, 4, "ms64" }, + { 5, 4, "ms80" }, + { 6, 5, "ms128" }, + { 7, 5, "ms160" }, + { 8, 5, "ms320" }, + { 9, 5, "ms640" }, + { 10, 6, "spare6" }, + { 11, 6, "spare5" }, + { 12, 6, "spare4" }, + { 13, 6, "spare3" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicity_enum2value_2[] = { + 0, /* ms10(0) */ + 6, /* ms128(6) */ + 7, /* ms160(7) */ + 1, /* ms20(1) */ + 2, /* ms32(2) */ + 8, /* ms320(8) */ + 3, /* ms40(3) */ + 4, /* ms64(4) */ + 9, /* ms640(9) */ + 5, /* ms80(5) */ + 15, /* spare1(15) */ + 14, /* spare2(14) */ + 13, /* spare3(13) */ + 12, /* spare4(12) */ + 11, /* spare5(11) */ + 10 /* spare6(10) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicity_specs_2 = { + asn_MAP_ASN_RRC_periodicity_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicity_enum2value_2, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_periodicity_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_ASN_RRC_periodicity_2 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicity_tags_2, + sizeof(asn_DEF_ASN_RRC_periodicity_tags_2) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicity_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicity_tags_2) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicity_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicity_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_Table_value2enum_21[] = { + { 0, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_ASN_RRC_mcs_Table_enum2value_21[] = { + 0 /* qam64LowSE(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_Table_specs_21 = { + asn_MAP_ASN_RRC_mcs_Table_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_mcs_Table_enum2value_21, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mcs_Table_tags_21[] = { + (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_ASN_RRC_mcs_Table_21 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_mcs_Table_tags_21, + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_21) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_21[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mcs_Table_tags_21, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_21) + /sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_21[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_mcs_Table_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_mcs_Table_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SPS_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SPS_Config, periodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicity_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SPS_Config, nrofHARQ_Processes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofHARQ_Processes_constr_19, memb_ASN_RRC_nrofHARQ_Processes_constraint_1 }, + 0, 0, /* No default value */ + "nrofHARQ-Processes" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SPS_Config, n1PUCCH_AN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1PUCCH-AN" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SPS_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_mcs_Table_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, +}; +static const int asn_MAP_ASN_RRC_SPS_Config_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SPS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SPS_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofHARQ-Processes */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* n1PUCCH-AN */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* mcs-Table */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SPS_Config_specs_1 = { + sizeof(struct ASN_RRC_SPS_Config), + offsetof(struct ASN_RRC_SPS_Config, _asn_ctx), + asn_MAP_ASN_RRC_SPS_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SPS_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SPS_Config = { + "SPS-Config", + "SPS-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SPS_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_SPS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SPS_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SPS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SPS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SPS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SPS_Config_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SPS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SPS-Config.h b/src/asn/rrc/ASN_RRC_SPS-Config.h new file mode 100644 index 0000000..ee8f45e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SPS-Config.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SPS_Config_H_ +#define _ASN_RRC_SPS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_PUCCH-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SPS_Config__periodicity { + ASN_RRC_SPS_Config__periodicity_ms10 = 0, + ASN_RRC_SPS_Config__periodicity_ms20 = 1, + ASN_RRC_SPS_Config__periodicity_ms32 = 2, + ASN_RRC_SPS_Config__periodicity_ms40 = 3, + ASN_RRC_SPS_Config__periodicity_ms64 = 4, + ASN_RRC_SPS_Config__periodicity_ms80 = 5, + ASN_RRC_SPS_Config__periodicity_ms128 = 6, + ASN_RRC_SPS_Config__periodicity_ms160 = 7, + ASN_RRC_SPS_Config__periodicity_ms320 = 8, + ASN_RRC_SPS_Config__periodicity_ms640 = 9, + ASN_RRC_SPS_Config__periodicity_spare6 = 10, + ASN_RRC_SPS_Config__periodicity_spare5 = 11, + ASN_RRC_SPS_Config__periodicity_spare4 = 12, + ASN_RRC_SPS_Config__periodicity_spare3 = 13, + ASN_RRC_SPS_Config__periodicity_spare2 = 14, + ASN_RRC_SPS_Config__periodicity_spare1 = 15 +} e_ASN_RRC_SPS_Config__periodicity; +typedef enum ASN_RRC_SPS_Config__mcs_Table { + ASN_RRC_SPS_Config__mcs_Table_qam64LowSE = 0 +} e_ASN_RRC_SPS_Config__mcs_Table; + +/* ASN_RRC_SPS-Config */ +typedef struct ASN_RRC_SPS_Config { + long periodicity; + long nrofHARQ_Processes; + ASN_RRC_PUCCH_ResourceId_t *n1PUCCH_AN; /* OPTIONAL */ + long *mcs_Table; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SPS_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicity_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SPS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SPS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SPS_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SPS_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRB-Identity.c b/src/asn/rrc/ASN_RRC_SRB-Identity.c new file mode 100644 index 0000000..4eda420 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-Identity.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRB-Identity.h" + +int +ASN_RRC_SRB_Identity_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_SRB_Identity_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (1..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRB_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_Identity = { + "SRB-Identity", + "SRB-Identity", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SRB_Identity_tags_1, + sizeof(asn_DEF_ASN_RRC_SRB_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_Identity_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRB_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRB_Identity_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_Identity_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SRB_Identity_constr_1, ASN_RRC_SRB_Identity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRB-Identity.h b/src/asn/rrc/ASN_RRC_SRB-Identity.h new file mode 100644 index 0000000..3424030 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-Identity.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRB_Identity_H_ +#define _ASN_RRC_SRB_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRB-Identity */ +typedef long ASN_RRC_SRB_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRB_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_Identity; +asn_struct_free_f ASN_RRC_SRB_Identity_free; +asn_struct_print_f ASN_RRC_SRB_Identity_print; +asn_constr_check_f ASN_RRC_SRB_Identity_constraint; +ber_type_decoder_f ASN_RRC_SRB_Identity_decode_ber; +der_type_encoder_f ASN_RRC_SRB_Identity_encode_der; +xer_type_decoder_f ASN_RRC_SRB_Identity_decode_xer; +xer_type_encoder_f ASN_RRC_SRB_Identity_encode_xer; +per_type_decoder_f ASN_RRC_SRB_Identity_decode_uper; +per_type_encoder_f ASN_RRC_SRB_Identity_encode_uper; +per_type_decoder_f ASN_RRC_SRB_Identity_decode_aper; +per_type_encoder_f ASN_RRC_SRB_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRB_Identity_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRB-ToAddMod.c b/src/asn/rrc/ASN_RRC_SRB-ToAddMod.c new file mode 100644 index 0000000..8046722 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-ToAddMod.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRB-ToAddMod.h" + +#include "ASN_RRC_PDCP-Config.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_ASN_RRC_reestablishPDCP_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_discardOnPDCP_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_reestablishPDCP_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_reestablishPDCP_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reestablishPDCP_specs_3 = { + asn_MAP_ASN_RRC_reestablishPDCP_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reestablishPDCP_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reestablishPDCP_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_ASN_RRC_reestablishPDCP_3 = { + "reestablishPDCP", + "reestablishPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reestablishPDCP_tags_3, + sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_3) + /sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reestablishPDCP_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_3) + /sizeof(asn_DEF_ASN_RRC_reestablishPDCP_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reestablishPDCP_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reestablishPDCP_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_discardOnPDCP_value2enum_5[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_discardOnPDCP_enum2value_5[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_discardOnPDCP_specs_5 = { + asn_MAP_ASN_RRC_discardOnPDCP_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_discardOnPDCP_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_discardOnPDCP_tags_5[] = { + (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_ASN_RRC_discardOnPDCP_5 = { + "discardOnPDCP", + "discardOnPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_discardOnPDCP_tags_5, + sizeof(asn_DEF_ASN_RRC_discardOnPDCP_tags_5) + /sizeof(asn_DEF_ASN_RRC_discardOnPDCP_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_discardOnPDCP_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_discardOnPDCP_tags_5) + /sizeof(asn_DEF_ASN_RRC_discardOnPDCP_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_discardOnPDCP_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_discardOnPDCP_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRB_ToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRB_ToAddMod, srb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-Identity" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SRB_ToAddMod, reestablishPDCP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reestablishPDCP_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishPDCP" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRB_ToAddMod, discardOnPDCP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_discardOnPDCP_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "discardOnPDCP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRB_ToAddMod, pdcp_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Config" + }, +}; +static const int asn_MAP_ASN_RRC_SRB_ToAddMod_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRB_ToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srb-Identity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reestablishPDCP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* discardOnPDCP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* pdcp-Config */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRB_ToAddMod_specs_1 = { + sizeof(struct ASN_RRC_SRB_ToAddMod), + offsetof(struct ASN_RRC_SRB_ToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_SRB_ToAddMod_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRB_ToAddMod_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_ToAddMod = { + "SRB-ToAddMod", + "SRB-ToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_ToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRB_ToAddMod_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SRB_ToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRB-ToAddMod.h b/src/asn/rrc/ASN_RRC_SRB-ToAddMod.h new file mode 100644 index 0000000..543775b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-ToAddMod.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRB_ToAddMod_H_ +#define _ASN_RRC_SRB_ToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRB_ToAddMod__reestablishPDCP { + ASN_RRC_SRB_ToAddMod__reestablishPDCP_true = 0 +} e_ASN_RRC_SRB_ToAddMod__reestablishPDCP; +typedef enum ASN_RRC_SRB_ToAddMod__discardOnPDCP { + ASN_RRC_SRB_ToAddMod__discardOnPDCP_true = 0 +} e_ASN_RRC_SRB_ToAddMod__discardOnPDCP; + +/* Forward declarations */ +struct ASN_RRC_PDCP_Config; + +/* ASN_RRC_SRB-ToAddMod */ +typedef struct ASN_RRC_SRB_ToAddMod { + ASN_RRC_SRB_Identity_t srb_Identity; + long *reestablishPDCP; /* OPTIONAL */ + long *discardOnPDCP; /* OPTIONAL */ + struct ASN_RRC_PDCP_Config *pdcp_Config; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRB_ToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reestablishPDCP_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_discardOnPDCP_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_ToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRB_ToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRB_ToAddMod_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRB_ToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRB-ToAddModList.c b/src/asn/rrc/ASN_RRC_SRB-ToAddModList.c new file mode 100644 index 0000000..1daf73f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-ToAddModList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRB-ToAddModList.h" + +#include "ASN_RRC_SRB-ToAddMod.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_SRB_ToAddModList_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_ASN_RRC_SRB_ToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRB_ToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_SRB_ToAddModList_specs_1 = { + sizeof(struct ASN_RRC_SRB_ToAddModList), + offsetof(struct ASN_RRC_SRB_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_ToAddModList = { + "SRB-ToAddModList", + "SRB-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1, + sizeof(asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRB_ToAddModList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SRB_ToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_SRB_ToAddModList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_SRB_ToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRB-ToAddModList.h b/src/asn/rrc/ASN_RRC_SRB-ToAddModList.h new file mode 100644 index 0000000..61db0b8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRB-ToAddModList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRB_ToAddModList_H_ +#define _ASN_RRC_SRB_ToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SRB_ToAddMod; + +/* ASN_RRC_SRB-ToAddModList */ +typedef struct ASN_RRC_SRB_ToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SRB_ToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRB_ToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRB_ToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_SRB_ToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRB_ToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRB_ToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRB_ToAddModList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.c b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.c new file mode 100644 index 0000000..7ca2532 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRI-PUSCH-PowerControl.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_sri_PUSCH_ClosedLoopIndex_constr_5 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_ASN_RRC_sri_PUSCH_ClosedLoopIndex_value2enum_5[] = { + { 0, 2, "i0" }, + { 1, 2, "i1" } +}; +static const unsigned int asn_MAP_ASN_RRC_sri_PUSCH_ClosedLoopIndex_enum2value_5[] = { + 0, /* i0(0) */ + 1 /* i1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sri_PUSCH_ClosedLoopIndex_specs_5 = { + asn_MAP_ASN_RRC_sri_PUSCH_ClosedLoopIndex_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sri_PUSCH_ClosedLoopIndex_enum2value_5, /* 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_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5[] = { + (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_ASN_RRC_sri_PUSCH_ClosedLoopIndex_5 = { + "sri-PUSCH-ClosedLoopIndex", + "sri-PUSCH-ClosedLoopIndex", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5, + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5) + /sizeof(asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sri_PUSCH_ClosedLoopIndex_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sri_PUSCH_ClosedLoopIndex_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRI_PUSCH_PowerControl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRI_PUSCH_PowerControl, sri_PUSCH_PowerControlId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-PowerControlId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRI_PUSCH_PowerControl, sri_PUSCH_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRI_PUSCH_PowerControl, sri_P0_PUSCH_AlphaSetId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-P0-PUSCH-AlphaSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRI_PUSCH_PowerControl, sri_PUSCH_ClosedLoopIndex), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-ClosedLoopIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRI_PUSCH_PowerControl_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sri-PUSCH-PowerControlId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sri-PUSCH-PathlossReferenceRS-Id */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sri-P0-PUSCH-AlphaSetId */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* sri-PUSCH-ClosedLoopIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRI_PUSCH_PowerControl_specs_1 = { + sizeof(struct ASN_RRC_SRI_PUSCH_PowerControl), + offsetof(struct ASN_RRC_SRI_PUSCH_PowerControl, _asn_ctx), + asn_MAP_ASN_RRC_SRI_PUSCH_PowerControl_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl = { + "SRI-PUSCH-PowerControl", + "SRI-PUSCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1, + sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRI_PUSCH_PowerControl_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SRI_PUSCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.h b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.h new file mode 100644 index 0000000..4f72572 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControl.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRI_PUSCH_PowerControl_H_ +#define _ASN_RRC_SRI_PUSCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SRI-PUSCH-PowerControlId.h" +#include "ASN_RRC_PUSCH-PathlossReferenceRS-Id.h" +#include "ASN_RRC_P0-PUSCH-AlphaSetId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex { + ASN_RRC_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i0 = 0, + ASN_RRC_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i1 = 1 +} e_ASN_RRC_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex; + +/* ASN_RRC_SRI-PUSCH-PowerControl */ +typedef struct ASN_RRC_SRI_PUSCH_PowerControl { + ASN_RRC_SRI_PUSCH_PowerControlId_t sri_PUSCH_PowerControlId; + ASN_RRC_PUSCH_PathlossReferenceRS_Id_t sri_PUSCH_PathlossReferenceRS_Id; + ASN_RRC_P0_PUSCH_AlphaSetId_t sri_P0_PUSCH_AlphaSetId; + long sri_PUSCH_ClosedLoopIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRI_PUSCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sri_PUSCH_ClosedLoopIndex_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRI_PUSCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRI_PUSCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRI_PUSCH_PowerControl_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRI_PUSCH_PowerControl_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.c b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.c new file mode 100644 index 0000000..9cedac1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRI-PUSCH-PowerControlId.h" + +int +ASN_RRC_SRI_PUSCH_PowerControlId_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_ASN_RRC_SRI_PUSCH_PowerControlId_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_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId = { + "SRI-PUSCH-PowerControlId", + "SRI-PUSCH-PowerControlId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1, + sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SRI_PUSCH_PowerControlId_constr_1, ASN_RRC_SRI_PUSCH_PowerControlId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.h b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.h new file mode 100644 index 0000000..c081b82 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRI-PUSCH-PowerControlId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRI_PUSCH_PowerControlId_H_ +#define _ASN_RRC_SRI_PUSCH_PowerControlId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRI-PUSCH-PowerControlId */ +typedef long ASN_RRC_SRI_PUSCH_PowerControlId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRI_PUSCH_PowerControlId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRI_PUSCH_PowerControlId; +asn_struct_free_f ASN_RRC_SRI_PUSCH_PowerControlId_free; +asn_struct_print_f ASN_RRC_SRI_PUSCH_PowerControlId_print; +asn_constr_check_f ASN_RRC_SRI_PUSCH_PowerControlId_constraint; +ber_type_decoder_f ASN_RRC_SRI_PUSCH_PowerControlId_decode_ber; +der_type_encoder_f ASN_RRC_SRI_PUSCH_PowerControlId_encode_der; +xer_type_decoder_f ASN_RRC_SRI_PUSCH_PowerControlId_decode_xer; +xer_type_encoder_f ASN_RRC_SRI_PUSCH_PowerControlId_encode_xer; +per_type_decoder_f ASN_RRC_SRI_PUSCH_PowerControlId_decode_uper; +per_type_encoder_f ASN_RRC_SRI_PUSCH_PowerControlId_encode_uper; +per_type_decoder_f ASN_RRC_SRI_PUSCH_PowerControlId_decode_aper; +per_type_encoder_f ASN_RRC_SRI_PUSCH_PowerControlId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRI_PUSCH_PowerControlId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.c b/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.c new file mode 100644 index 0000000..84dd113 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-CC-SetIndex.h" + +static int +memb_ASN_RRC_cc_SetIndex_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_ASN_RRC_cc_IndexInOneCC_Set_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_ASN_RRC_cc_SetIndex_constr_2 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_ASN_RRC_cc_IndexInOneCC_Set_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_CC_SetIndex_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_CC_SetIndex, cc_SetIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cc_SetIndex_constr_2, memb_ASN_RRC_cc_SetIndex_constraint_1 }, + 0, 0, /* No default value */ + "cc-SetIndex" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_CC_SetIndex, cc_IndexInOneCC_Set), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cc_IndexInOneCC_Set_constr_3, memb_ASN_RRC_cc_IndexInOneCC_Set_constraint_1 }, + 0, 0, /* No default value */ + "cc-IndexInOneCC-Set" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_CC_SetIndex_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_CC_SetIndex_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cc-SetIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cc-IndexInOneCC-Set */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_CC_SetIndex_specs_1 = { + sizeof(struct ASN_RRC_SRS_CC_SetIndex), + offsetof(struct ASN_RRC_SRS_CC_SetIndex, _asn_ctx), + asn_MAP_ASN_RRC_SRS_CC_SetIndex_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_CC_SetIndex_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_CC_SetIndex = { + "SRS-CC-SetIndex", + "SRS-CC-SetIndex", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_CC_SetIndex_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_CC_SetIndex_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_CC_SetIndex_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.h b/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.h new file mode 100644 index 0000000..978198d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-CC-SetIndex.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_CC_SetIndex_H_ +#define _ASN_RRC_SRS_CC_SetIndex_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRS-CC-SetIndex */ +typedef struct ASN_RRC_SRS_CC_SetIndex { + long *cc_SetIndex; /* OPTIONAL */ + long *cc_IndexInOneCC_Set; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_CC_SetIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_CC_SetIndex; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_CC_SetIndex_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_CC_SetIndex_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_CC_SetIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.c b/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.c new file mode 100644 index 0000000..b47355f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.c @@ -0,0 +1,359 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-CarrierSwitching.h" + +#include "ASN_RRC_SRS-TPC-PDCCH-Config.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_typeA_constraint_6(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 int +memb_ASN_RRC_srs_SwitchFromServCellIndex_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_monitoringCells_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_ASN_RRC_srs_SwitchFromCarrier_constr_3 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_type_ASN_RRC_typeA_constr_7 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_ASN_RRC_typeA_constr_7 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_type_ASN_RRC_srs_TPC_PDCCH_Group_constr_6 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_type_ASN_RRC_monitoringCells_constr_10 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_ASN_RRC_srs_SwitchFromServCellIndex_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_monitoringCells_constr_10 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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_srs_SwitchFromCarrier_value2enum_3[] = { + { 0, 3, "sUL" }, + { 1, 3, "nUL" } +}; +static const unsigned int asn_MAP_ASN_RRC_srs_SwitchFromCarrier_enum2value_3[] = { + 1, /* nUL(1) */ + 0 /* sUL(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srs_SwitchFromCarrier_specs_3 = { + asn_MAP_ASN_RRC_srs_SwitchFromCarrier_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srs_SwitchFromCarrier_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchFromCarrier_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_ASN_RRC_srs_SwitchFromCarrier_3 = { + "srs-SwitchFromCarrier", + "srs-SwitchFromCarrier", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3, + sizeof(asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchFromCarrier_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchFromCarrier_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srs_SwitchFromCarrier_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_typeA_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_typeA_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_typeA_specs_7 = { + sizeof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group__typeA), + offsetof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group__typeA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_typeA_7 = { + "typeA", + "typeA", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_typeA_tags_7, + sizeof(asn_DEF_ASN_RRC_typeA_tags_7) + /sizeof(asn_DEF_ASN_RRC_typeA_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_typeA_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_typeA_tags_7) + /sizeof(asn_DEF_ASN_RRC_typeA_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_typeA_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_typeA_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_typeA_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_TPC_PDCCH_Group_6[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group, choice.typeA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_typeA_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_typeA_constr_7, memb_ASN_RRC_typeA_constraint_6 }, + 0, 0, /* No default value */ + "typeA" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group, choice.typeB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_srs_TPC_PDCCH_Group_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* typeA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* typeB */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_srs_TPC_PDCCH_Group_specs_6 = { + sizeof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group), + offsetof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group, _asn_ctx), + offsetof(struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group, present), + sizeof(((struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group *)0)->present), + asn_MAP_ASN_RRC_srs_TPC_PDCCH_Group_tag2el_6, + 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_ASN_RRC_srs_TPC_PDCCH_Group_6 = { + "srs-TPC-PDCCH-Group", + "srs-TPC-PDCCH-Group", + &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_ASN_RRC_srs_TPC_PDCCH_Group_constr_6, CHOICE_constraint }, + asn_MBR_ASN_RRC_srs_TPC_PDCCH_Group_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_srs_TPC_PDCCH_Group_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_monitoringCells_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_monitoringCells_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_monitoringCells_specs_10 = { + sizeof(struct ASN_RRC_SRS_CarrierSwitching__monitoringCells), + offsetof(struct ASN_RRC_SRS_CarrierSwitching__monitoringCells, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_monitoringCells_10 = { + "monitoringCells", + "monitoringCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_monitoringCells_tags_10, + sizeof(asn_DEF_ASN_RRC_monitoringCells_tags_10) + /sizeof(asn_DEF_ASN_RRC_monitoringCells_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_monitoringCells_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_monitoringCells_tags_10) + /sizeof(asn_DEF_ASN_RRC_monitoringCells_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_monitoringCells_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_monitoringCells_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_monitoringCells_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_CarrierSwitching_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_CarrierSwitching, srs_SwitchFromServCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_SwitchFromServCellIndex_constr_2, memb_ASN_RRC_srs_SwitchFromServCellIndex_constraint_1 }, + 0, 0, /* No default value */ + "srs-SwitchFromServCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_CarrierSwitching, srs_SwitchFromCarrier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_SwitchFromCarrier_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-SwitchFromCarrier" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_CarrierSwitching, srs_TPC_PDCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_TPC_PDCCH_Group_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-TPC-PDCCH-Group" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_CarrierSwitching, monitoringCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_monitoringCells_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_monitoringCells_constr_10, memb_ASN_RRC_monitoringCells_constraint_1 }, + 0, 0, /* No default value */ + "monitoringCells" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_CarrierSwitching_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_CarrierSwitching_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-SwitchFromServCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srs-SwitchFromCarrier */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* srs-TPC-PDCCH-Group */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* monitoringCells */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_CarrierSwitching_specs_1 = { + sizeof(struct ASN_RRC_SRS_CarrierSwitching), + offsetof(struct ASN_RRC_SRS_CarrierSwitching, _asn_ctx), + asn_MAP_ASN_RRC_SRS_CarrierSwitching_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_CarrierSwitching_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_CarrierSwitching = { + "SRS-CarrierSwitching", + "SRS-CarrierSwitching", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_CarrierSwitching_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_CarrierSwitching_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_CarrierSwitching_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.h b/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.h new file mode 100644 index 0000000..fb1a800 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-CarrierSwitching.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_CarrierSwitching_H_ +#define _ASN_RRC_SRS_CarrierSwitching_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include "ASN_RRC_ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_CarrierSwitching__srs_SwitchFromCarrier { + ASN_RRC_SRS_CarrierSwitching__srs_SwitchFromCarrier_sUL = 0, + ASN_RRC_SRS_CarrierSwitching__srs_SwitchFromCarrier_nUL = 1 +} e_ASN_RRC_SRS_CarrierSwitching__srs_SwitchFromCarrier; +typedef enum ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR { + ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_typeA, + ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_typeB +} ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR; + +/* Forward declarations */ +struct ASN_RRC_SRS_TPC_PDCCH_Config; + +/* ASN_RRC_SRS-CarrierSwitching */ +typedef struct ASN_RRC_SRS_CarrierSwitching { + long *srs_SwitchFromServCellIndex; /* OPTIONAL */ + long srs_SwitchFromCarrier; + struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group { + ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR present; + union ASN_RRC_SRS_CarrierSwitching__ASN_RRC_srs_TPC_PDCCH_Group_u { + struct ASN_RRC_SRS_CarrierSwitching__srs_TPC_PDCCH_Group__typeA { + A_SEQUENCE_OF(struct ASN_RRC_SRS_TPC_PDCCH_Config) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeA; + struct ASN_RRC_SRS_TPC_PDCCH_Config *typeB; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_TPC_PDCCH_Group; + struct ASN_RRC_SRS_CarrierSwitching__monitoringCells { + A_SEQUENCE_OF(ASN_RRC_ServCellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *monitoringCells; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_CarrierSwitching_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchFromCarrier_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_CarrierSwitching; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_CarrierSwitching_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_CarrierSwitching_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_CarrierSwitching_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-Config.c b/src/asn/rrc/ASN_RRC_SRS-Config.c new file mode 100644 index 0000000..214c9d3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Config.c @@ -0,0 +1,430 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-Config.h" + +#include "ASN_RRC_SRS-ResourceSet.h" +#include "ASN_RRC_SRS-Resource.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_srs_ResourceSetToReleaseList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_srs_ResourceSetToAddModList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_srs_ResourceToReleaseList_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 <= 64)) { + /* 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 int +memb_ASN_RRC_srs_ResourceToAddModList_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 <= 64)) { + /* 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_ASN_RRC_srs_ResourceSetToReleaseList_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_srs_ResourceSetToAddModList_constr_4 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_per_constraints_t asn_PER_type_ASN_RRC_srs_ResourceToReleaseList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_srs_ResourceToAddModList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_tpc_Accumulation_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_memb_ASN_RRC_srs_ResourceSetToReleaseList_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_srs_ResourceSetToAddModList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_srs_ResourceToReleaseList_constr_6 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_srs_ResourceToAddModList_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_ResourceSetToReleaseList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_ResourceSetToReleaseList_specs_2 = { + sizeof(struct ASN_RRC_SRS_Config__srs_ResourceSetToReleaseList), + offsetof(struct ASN_RRC_SRS_Config__srs_ResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_2 = { + "srs-ResourceSetToReleaseList", + "srs-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2, + sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_ResourceSetToReleaseList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_ResourceSetToReleaseList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_ResourceSetToReleaseList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_ResourceSetToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_ResourceSetToAddModList_specs_4 = { + sizeof(struct ASN_RRC_SRS_Config__srs_ResourceSetToAddModList), + offsetof(struct ASN_RRC_SRS_Config__srs_ResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_4 = { + "srs-ResourceSetToAddModList", + "srs-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4, + sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_ResourceSetToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_ResourceSetToAddModList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_ResourceSetToAddModList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_ResourceToReleaseList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_ResourceToReleaseList_specs_6 = { + sizeof(struct ASN_RRC_SRS_Config__srs_ResourceToReleaseList), + offsetof(struct ASN_RRC_SRS_Config__srs_ResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_ResourceToReleaseList_6 = { + "srs-ResourceToReleaseList", + "srs-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6, + sizeof(asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceToReleaseList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_ResourceToReleaseList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_ResourceToReleaseList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_ResourceToReleaseList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_ResourceToAddModList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_ResourceToAddModList_specs_8 = { + sizeof(struct ASN_RRC_SRS_Config__srs_ResourceToAddModList), + offsetof(struct ASN_RRC_SRS_Config__srs_ResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_ResourceToAddModList_8 = { + "srs-ResourceToAddModList", + "srs-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8, + sizeof(asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceToAddModList_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_ResourceToAddModList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_ResourceToAddModList_8, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_ResourceToAddModList_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_tpc_Accumulation_value2enum_10[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_tpc_Accumulation_enum2value_10[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_tpc_Accumulation_specs_10 = { + asn_MAP_ASN_RRC_tpc_Accumulation_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_tpc_Accumulation_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tpc_Accumulation_tags_10[] = { + (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_ASN_RRC_tpc_Accumulation_10 = { + "tpc-Accumulation", + "tpc-Accumulation", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_tpc_Accumulation_tags_10, + sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_10) + /sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tpc_Accumulation_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_10) + /sizeof(asn_DEF_ASN_RRC_tpc_Accumulation_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tpc_Accumulation_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_tpc_Accumulation_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Config_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SRS_Config, srs_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_ResourceSetToReleaseList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceSetToReleaseList_constr_2, memb_ASN_RRC_srs_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceSetToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SRS_Config, srs_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_ResourceSetToAddModList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceSetToAddModList_constr_4, memb_ASN_RRC_srs_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceSetToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SRS_Config, srs_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_ResourceToReleaseList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceToReleaseList_constr_6, memb_ASN_RRC_srs_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_Config, srs_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_ResourceToAddModList_8, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceToAddModList_constr_8, memb_ASN_RRC_srs_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_Config, tpc_Accumulation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_tpc_Accumulation_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-Accumulation" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_Config_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-ResourceSetToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srs-ResourceSetToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* srs-ResourceToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* srs-ResourceToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* tpc-Accumulation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Config_specs_1 = { + sizeof(struct ASN_RRC_SRS_Config), + offsetof(struct ASN_RRC_SRS_Config, _asn_ctx), + asn_MAP_ASN_RRC_SRS_Config_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_Config_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Config = { + "SRS-Config", + "SRS-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_Config_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-Config.h b/src/asn/rrc/ASN_RRC_SRS-Config.h new file mode 100644 index 0000000..d5fd53b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Config.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_Config_H_ +#define _ASN_RRC_SRS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SRS-ResourceSetId.h" +#include +#include +#include "ASN_RRC_SRS-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_Config__tpc_Accumulation { + ASN_RRC_SRS_Config__tpc_Accumulation_disabled = 0 +} e_ASN_RRC_SRS_Config__tpc_Accumulation; + +/* Forward declarations */ +struct ASN_RRC_SRS_ResourceSet; +struct ASN_RRC_SRS_Resource; + +/* ASN_RRC_SRS-Config */ +typedef struct ASN_RRC_SRS_Config { + struct ASN_RRC_SRS_Config__srs_ResourceSetToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SRS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceSetToReleaseList; + struct ASN_RRC_SRS_Config__srs_ResourceSetToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SRS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceSetToAddModList; + struct ASN_RRC_SRS_Config__srs_ResourceToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SRS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceToReleaseList; + struct ASN_RRC_SRS_Config__srs_ResourceToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SRS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceToAddModList; + long *tpc_Accumulation; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tpc_Accumulation_10; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Config_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.c b/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.c new file mode 100644 index 0000000..31321e3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.c @@ -0,0 +1,692 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-PeriodicityAndOffset.h" + +static int +memb_ASN_RRC_sl2_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 <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl4_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_ASN_RRC_sl5_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 int +memb_ASN_RRC_sl8_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_ASN_RRC_sl10_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 int +memb_ASN_RRC_sl16_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_ASN_RRC_sl20_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 <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl32_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl40_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 <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl64_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 int +memb_ASN_RRC_sl80_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 <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl160_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 <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl320_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 <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl640_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 <= 639)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl1280_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 <= 1279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl2560_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 <= 2559)) { + /* Constraint 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_ASN_RRC_sl2_constr_3 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_ASN_RRC_sl4_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_ASN_RRC_sl5_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl8_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sl10_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl16_constr_8 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_ASN_RRC_sl20_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl32_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl40_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl64_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl80_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl160_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl320_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl640_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl1280_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1279 } /* (0..1279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl2560_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2559 } /* (0..2559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_SRS_PeriodicityAndOffset_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 16 } /* (0..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_PeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sl1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl2_constr_3, memb_ASN_RRC_sl2_constraint_1 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl4_constr_4, memb_ASN_RRC_sl4_constraint_1 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl5_constr_5, memb_ASN_RRC_sl5_constraint_1 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl8_constr_6, memb_ASN_RRC_sl8_constraint_1 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl10_constr_7, memb_ASN_RRC_sl10_constraint_1 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl16_constr_8, memb_ASN_RRC_sl16_constraint_1 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl20_constr_9, memb_ASN_RRC_sl20_constraint_1 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl32), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl32_constr_10, memb_ASN_RRC_sl32_constraint_1 }, + 0, 0, /* No default value */ + "sl32" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl40_constr_11, memb_ASN_RRC_sl40_constraint_1 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl64), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl64_constr_12, memb_ASN_RRC_sl64_constraint_1 }, + 0, 0, /* No default value */ + "sl64" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl80_constr_13, memb_ASN_RRC_sl80_constraint_1 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl160_constr_14, memb_ASN_RRC_sl160_constraint_1 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl320_constr_15, memb_ASN_RRC_sl320_constraint_1 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl640_constr_16, memb_ASN_RRC_sl640_constraint_1 }, + 0, 0, /* No default value */ + "sl640" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl1280_constr_17, memb_ASN_RRC_sl1280_constraint_1 }, + 0, 0, /* No default value */ + "sl1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, choice.sl2560), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl2560_constr_18, memb_ASN_RRC_sl2560_constraint_1 }, + 0, 0, /* No default value */ + "sl2560" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_PeriodicityAndOffset_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sl1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sl2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sl4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sl5 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sl8 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sl10 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sl16 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sl20 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sl32 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sl40 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sl64 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sl80 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sl160 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* sl320 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* sl640 */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* sl1280 */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* sl2560 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SRS_PeriodicityAndOffset_specs_1 = { + sizeof(struct ASN_RRC_SRS_PeriodicityAndOffset), + offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_SRS_PeriodicityAndOffset, present), + sizeof(((struct ASN_RRC_SRS_PeriodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_SRS_PeriodicityAndOffset_tag2el_1, + 17, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_PeriodicityAndOffset = { + "SRS-PeriodicityAndOffset", + "SRS-PeriodicityAndOffset", + &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_ASN_RRC_SRS_PeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_SRS_PeriodicityAndOffset_1, + 17, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_PeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.h b/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.h new file mode 100644 index 0000000..a134a76 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-PeriodicityAndOffset.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_PeriodicityAndOffset_H_ +#define _ASN_RRC_SRS_PeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_PeriodicityAndOffset_PR { + ASN_RRC_SRS_PeriodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl1, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl2, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl4, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl5, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl8, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl10, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl16, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl20, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl32, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl40, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl64, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl80, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl160, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl320, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl640, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl1280, + ASN_RRC_SRS_PeriodicityAndOffset_PR_sl2560 +} ASN_RRC_SRS_PeriodicityAndOffset_PR; + +/* ASN_RRC_SRS-PeriodicityAndOffset */ +typedef struct ASN_RRC_SRS_PeriodicityAndOffset { + ASN_RRC_SRS_PeriodicityAndOffset_PR present; + union ASN_RRC_SRS_PeriodicityAndOffset_u { + NULL_t sl1; + long sl2; + long sl4; + long sl5; + long sl8; + long sl10; + long sl16; + long sl20; + long sl32; + long sl40; + long sl64; + long sl80; + long sl160; + long sl320; + long sl640; + long sl1280; + long sl2560; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_PeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_PeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SRS_PeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_PeriodicityAndOffset_1[17]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRS_PeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_PeriodicityAndOffset_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-Resource.c b/src/asn/rrc/ASN_RRC_SRS-Resource.c new file mode 100644 index 0000000..21c623a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Resource.c @@ -0,0 +1,1195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-Resource.h" + +#include "ASN_RRC_SRS-SpatialRelationInfo.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 int +memb_ASN_RRC_combOffset_n2_constraint_11(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_cyclicShift_n2_constraint_11(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_combOffset_n4_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_cyclicShift_n4_constraint_14(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 11)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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_ASN_RRC_startPosition_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 <= 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 int +memb_ASN_RRC_c_SRS_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 <= 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 int +memb_ASN_RRC_b_SRS_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 <= 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_ASN_RRC_b_hop_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 <= 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_freqDomainPosition_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 <= 67)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_freqDomainShift_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 <= 268)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sequenceId_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_type_ASN_RRC_nrofSRS_Ports_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_type_ASN_RRC_ptrs_PortIndex_constr_7 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_ASN_RRC_combOffset_n2_constr_12 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_ASN_RRC_cyclicShift_n2_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_combOffset_n4_constr_15 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_ASN_RRC_cyclicShift_n4_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 11 } /* (0..11) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_transmissionComb_constr_10 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_type_ASN_RRC_nrofSymbols_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_type_ASN_RRC_repetitionFactor_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_ASN_RRC_startPosition_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_c_SRS_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_b_SRS_constr_31 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_ASN_RRC_b_hop_constr_32 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_type_ASN_RRC_groupOrSequenceHopping_constr_33 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_resourceType_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_freqDomainPosition_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 67 } /* (0..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_freqDomainShift_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 268 } /* (0..268) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sequenceId_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofSRS_Ports_value2enum_3[] = { + { 0, 5, "port1" }, + { 1, 6, "ports2" }, + { 2, 6, "ports4" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofSRS_Ports_enum2value_3[] = { + 0, /* port1(0) */ + 1, /* ports2(1) */ + 2 /* ports4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofSRS_Ports_specs_3 = { + asn_MAP_ASN_RRC_nrofSRS_Ports_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofSRS_Ports_enum2value_3, /* 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_ASN_RRC_nrofSRS_Ports_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_ASN_RRC_nrofSRS_Ports_3 = { + "nrofSRS-Ports", + "nrofSRS-Ports", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3, + sizeof(asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3) + /sizeof(asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3) + /sizeof(asn_DEF_ASN_RRC_nrofSRS_Ports_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofSRS_Ports_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofSRS_Ports_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ptrs_PortIndex_value2enum_7[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" } +}; +static const unsigned int asn_MAP_ASN_RRC_ptrs_PortIndex_enum2value_7[] = { + 0, /* n0(0) */ + 1 /* n1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ptrs_PortIndex_specs_7 = { + asn_MAP_ASN_RRC_ptrs_PortIndex_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ptrs_PortIndex_enum2value_7, /* 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_ASN_RRC_ptrs_PortIndex_tags_7[] = { + (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_ASN_RRC_ptrs_PortIndex_7 = { + "ptrs-PortIndex", + "ptrs-PortIndex", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7, + sizeof(asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7) + /sizeof(asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7) + /sizeof(asn_DEF_ASN_RRC_ptrs_PortIndex_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ptrs_PortIndex_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ptrs_PortIndex_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_n2_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n2, combOffset_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_combOffset_n2_constr_12, memb_ASN_RRC_combOffset_n2_constraint_11 }, + 0, 0, /* No default value */ + "combOffset-n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n2, cyclicShift_n2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cyclicShift_n2_constr_13, memb_ASN_RRC_cyclicShift_n2_constraint_11 }, + 0, 0, /* No default value */ + "cyclicShift-n2" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_n2_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_n2_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* combOffset-n2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cyclicShift-n2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_n2_specs_11 = { + sizeof(struct ASN_RRC_SRS_Resource__transmissionComb__n2), + offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n2, _asn_ctx), + asn_MAP_ASN_RRC_n2_tag2el_11, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n2_11 = { + "n2", + "n2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_n2_tags_11, + sizeof(asn_DEF_ASN_RRC_n2_tags_11) + /sizeof(asn_DEF_ASN_RRC_n2_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n2_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n2_tags_11) + /sizeof(asn_DEF_ASN_RRC_n2_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_n2_11, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_n2_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_n4_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n4, combOffset_n4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_combOffset_n4_constr_15, memb_ASN_RRC_combOffset_n4_constraint_14 }, + 0, 0, /* No default value */ + "combOffset-n4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n4, cyclicShift_n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_cyclicShift_n4_constr_16, memb_ASN_RRC_cyclicShift_n4_constraint_14 }, + 0, 0, /* No default value */ + "cyclicShift-n4" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_n4_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_n4_tag2el_14[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* combOffset-n4 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cyclicShift-n4 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_n4_specs_14 = { + sizeof(struct ASN_RRC_SRS_Resource__transmissionComb__n4), + offsetof(struct ASN_RRC_SRS_Resource__transmissionComb__n4, _asn_ctx), + asn_MAP_ASN_RRC_n4_tag2el_14, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n4_14 = { + "n4", + "n4", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_n4_tags_14, + sizeof(asn_DEF_ASN_RRC_n4_tags_14) + /sizeof(asn_DEF_ASN_RRC_n4_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n4_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n4_tags_14) + /sizeof(asn_DEF_ASN_RRC_n4_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_n4_14, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_n4_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_transmissionComb_10[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb, choice.n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_n2_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n2" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_Resource__transmissionComb, choice.n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_n4_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n4" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_transmissionComb_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* n2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* n4 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_transmissionComb_specs_10 = { + sizeof(struct ASN_RRC_SRS_Resource__transmissionComb), + offsetof(struct ASN_RRC_SRS_Resource__transmissionComb, _asn_ctx), + offsetof(struct ASN_RRC_SRS_Resource__transmissionComb, present), + sizeof(((struct ASN_RRC_SRS_Resource__transmissionComb *)0)->present), + asn_MAP_ASN_RRC_transmissionComb_tag2el_10, + 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_ASN_RRC_transmissionComb_10 = { + "transmissionComb", + "transmissionComb", + &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_ASN_RRC_transmissionComb_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_transmissionComb_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_transmissionComb_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofSymbols_value2enum_19[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_nrofSymbols_enum2value_19[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofSymbols_specs_19 = { + asn_MAP_ASN_RRC_nrofSymbols_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_nrofSymbols_enum2value_19, /* 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_ASN_RRC_nrofSymbols_tags_19[] = { + (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_ASN_RRC_nrofSymbols_19 = { + "nrofSymbols", + "nrofSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_nrofSymbols_tags_19, + sizeof(asn_DEF_ASN_RRC_nrofSymbols_tags_19) + /sizeof(asn_DEF_ASN_RRC_nrofSymbols_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofSymbols_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofSymbols_tags_19) + /sizeof(asn_DEF_ASN_RRC_nrofSymbols_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_nrofSymbols_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_nrofSymbols_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repetitionFactor_value2enum_23[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_repetitionFactor_enum2value_23[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repetitionFactor_specs_23 = { + asn_MAP_ASN_RRC_repetitionFactor_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_repetitionFactor_enum2value_23, /* 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_ASN_RRC_repetitionFactor_tags_23[] = { + (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_ASN_RRC_repetitionFactor_23 = { + "repetitionFactor", + "repetitionFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_repetitionFactor_tags_23, + sizeof(asn_DEF_ASN_RRC_repetitionFactor_tags_23) + /sizeof(asn_DEF_ASN_RRC_repetitionFactor_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_repetitionFactor_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_repetitionFactor_tags_23) + /sizeof(asn_DEF_ASN_RRC_repetitionFactor_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_repetitionFactor_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_repetitionFactor_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceMapping_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceMapping, startPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startPosition_constr_18, memb_ASN_RRC_startPosition_constraint_17 }, + 0, 0, /* No default value */ + "startPosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceMapping, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofSymbols_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceMapping, repetitionFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_repetitionFactor_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repetitionFactor" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceMapping_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_resourceMapping_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startPosition */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* repetitionFactor */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_resourceMapping_specs_17 = { + sizeof(struct ASN_RRC_SRS_Resource__resourceMapping), + offsetof(struct ASN_RRC_SRS_Resource__resourceMapping, _asn_ctx), + asn_MAP_ASN_RRC_resourceMapping_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceMapping_17 = { + "resourceMapping", + "resourceMapping", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_resourceMapping_tags_17, + sizeof(asn_DEF_ASN_RRC_resourceMapping_tags_17) + /sizeof(asn_DEF_ASN_RRC_resourceMapping_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_resourceMapping_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_resourceMapping_tags_17) + /sizeof(asn_DEF_ASN_RRC_resourceMapping_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_resourceMapping_17, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_resourceMapping_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_freqHopping_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__freqHopping, c_SRS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_c_SRS_constr_30, memb_ASN_RRC_c_SRS_constraint_29 }, + 0, 0, /* No default value */ + "c-SRS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__freqHopping, b_SRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_b_SRS_constr_31, memb_ASN_RRC_b_SRS_constraint_29 }, + 0, 0, /* No default value */ + "b-SRS" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__freqHopping, b_hop), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_b_hop_constr_32, memb_ASN_RRC_b_hop_constraint_29 }, + 0, 0, /* No default value */ + "b-hop" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_freqHopping_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_freqHopping_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c-SRS */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* b-SRS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* b-hop */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_freqHopping_specs_29 = { + sizeof(struct ASN_RRC_SRS_Resource__freqHopping), + offsetof(struct ASN_RRC_SRS_Resource__freqHopping, _asn_ctx), + asn_MAP_ASN_RRC_freqHopping_tag2el_29, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_freqHopping_29 = { + "freqHopping", + "freqHopping", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_freqHopping_tags_29, + sizeof(asn_DEF_ASN_RRC_freqHopping_tags_29) + /sizeof(asn_DEF_ASN_RRC_freqHopping_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_freqHopping_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_freqHopping_tags_29) + /sizeof(asn_DEF_ASN_RRC_freqHopping_tags_29[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_freqHopping_29, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_freqHopping_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_groupOrSequenceHopping_value2enum_33[] = { + { 0, 7, "neither" }, + { 1, 12, "groupHopping" }, + { 2, 15, "sequenceHopping" } +}; +static const unsigned int asn_MAP_ASN_RRC_groupOrSequenceHopping_enum2value_33[] = { + 1, /* groupHopping(1) */ + 0, /* neither(0) */ + 2 /* sequenceHopping(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_groupOrSequenceHopping_specs_33 = { + asn_MAP_ASN_RRC_groupOrSequenceHopping_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_groupOrSequenceHopping_enum2value_33, /* 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_ASN_RRC_groupOrSequenceHopping_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupOrSequenceHopping_33 = { + "groupOrSequenceHopping", + "groupOrSequenceHopping", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33, + sizeof(asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33) + /sizeof(asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33) + /sizeof(asn_DEF_ASN_RRC_groupOrSequenceHopping_tags_33[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_groupOrSequenceHopping_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_groupOrSequenceHopping_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_aperiodic_specs_38 = { + sizeof(struct ASN_RRC_SRS_Resource__resourceType__aperiodic), + offsetof(struct ASN_RRC_SRS_Resource__resourceType__aperiodic, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_38 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_aperiodic_tags_38, + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_38) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_38[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodic_tags_38, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_38) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_aperiodic_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_semi_persistent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceType__semi_persistent, periodicityAndOffset_sp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_PeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset-sp" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semi_persistent_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semi_persistent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* periodicityAndOffset-sp */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semi_persistent_specs_40 = { + sizeof(struct ASN_RRC_SRS_Resource__resourceType__semi_persistent), + offsetof(struct ASN_RRC_SRS_Resource__resourceType__semi_persistent, _asn_ctx), + asn_MAP_ASN_RRC_semi_persistent_tag2el_40, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semi_persistent_40 = { + "semi-persistent", + "semi-persistent", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_semi_persistent_tags_40, + sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_40) + /sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_40[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semi_persistent_tags_40, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_40) + /sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_40[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_semi_persistent_40, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_semi_persistent_specs_40 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodic_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceType__periodic, periodicityAndOffset_p), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_PeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset-p" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodic_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodic_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* periodicityAndOffset-p */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_periodic_specs_43 = { + sizeof(struct ASN_RRC_SRS_Resource__resourceType__periodic), + offsetof(struct ASN_RRC_SRS_Resource__resourceType__periodic, _asn_ctx), + asn_MAP_ASN_RRC_periodic_tag2el_43, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodic_43 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_periodic_tags_43, + sizeof(asn_DEF_ASN_RRC_periodic_tags_43) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_43[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodic_tags_43, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodic_tags_43) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_43[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_periodic_43, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_periodic_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceType_37[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodic_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceType, choice.semi_persistent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_semi_persistent_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semi-persistent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_Resource__resourceType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_periodic_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_resourceType_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aperiodic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semi-persistent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* periodic */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_resourceType_specs_37 = { + sizeof(struct ASN_RRC_SRS_Resource__resourceType), + offsetof(struct ASN_RRC_SRS_Resource__resourceType, _asn_ctx), + offsetof(struct ASN_RRC_SRS_Resource__resourceType, present), + sizeof(((struct ASN_RRC_SRS_Resource__resourceType *)0)->present), + asn_MAP_ASN_RRC_resourceType_tag2el_37, + 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_ASN_RRC_resourceType_37 = { + "resourceType", + "resourceType", + &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_ASN_RRC_resourceType_constr_37, CHOICE_constraint }, + asn_MBR_ASN_RRC_resourceType_37, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_resourceType_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, srs_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, nrofSRS_Ports), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_nrofSRS_Ports_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSRS-Ports" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_Resource, ptrs_PortIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ptrs_PortIndex_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-PortIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, transmissionComb), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_transmissionComb_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmissionComb" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_resourceMapping_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, freqDomainPosition), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_freqDomainPosition_constr_27, memb_ASN_RRC_freqDomainPosition_constraint_1 }, + 0, 0, /* No default value */ + "freqDomainPosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, freqDomainShift), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_freqDomainShift_constr_28, memb_ASN_RRC_freqDomainShift_constraint_1 }, + 0, 0, /* No default value */ + "freqDomainShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, freqHopping), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_ASN_RRC_freqHopping_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, groupOrSequenceHopping), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_groupOrSequenceHopping_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupOrSequenceHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, resourceType), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceType_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resource, sequenceId), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sequenceId_constr_46, memb_ASN_RRC_sequenceId_constraint_1 }, + 0, 0, /* No default value */ + "sequenceId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_Resource, spatialRelationInfo), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_SpatialRelationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spatialRelationInfo" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_Resource_oms_1[] = { 2, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-ResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofSRS-Ports */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ptrs-PortIndex */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transmissionComb */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* resourceMapping */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* freqDomainPosition */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* freqDomainShift */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* freqHopping */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* groupOrSequenceHopping */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* resourceType */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sequenceId */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* spatialRelationInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Resource_specs_1 = { + sizeof(struct ASN_RRC_SRS_Resource), + offsetof(struct ASN_RRC_SRS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_SRS_Resource_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 12, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Resource = { + "SRS-Resource", + "SRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_Resource_1, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-Resource.h b/src/asn/rrc/ASN_RRC_SRS-Resource.h new file mode 100644 index 0000000..ca8672c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Resource.h @@ -0,0 +1,175 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_Resource_H_ +#define _ASN_RRC_SRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SRS-ResourceId.h" +#include +#include +#include +#include +#include "ASN_RRC_SRS-PeriodicityAndOffset.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_Resource__nrofSRS_Ports { + ASN_RRC_SRS_Resource__nrofSRS_Ports_port1 = 0, + ASN_RRC_SRS_Resource__nrofSRS_Ports_ports2 = 1, + ASN_RRC_SRS_Resource__nrofSRS_Ports_ports4 = 2 +} e_ASN_RRC_SRS_Resource__nrofSRS_Ports; +typedef enum ASN_RRC_SRS_Resource__ptrs_PortIndex { + ASN_RRC_SRS_Resource__ptrs_PortIndex_n0 = 0, + ASN_RRC_SRS_Resource__ptrs_PortIndex_n1 = 1 +} e_ASN_RRC_SRS_Resource__ptrs_PortIndex; +typedef enum ASN_RRC_SRS_Resource__transmissionComb_PR { + ASN_RRC_SRS_Resource__transmissionComb_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_Resource__transmissionComb_PR_n2, + ASN_RRC_SRS_Resource__transmissionComb_PR_n4 +} ASN_RRC_SRS_Resource__transmissionComb_PR; +typedef enum ASN_RRC_SRS_Resource__resourceMapping__nrofSymbols { + ASN_RRC_SRS_Resource__resourceMapping__nrofSymbols_n1 = 0, + ASN_RRC_SRS_Resource__resourceMapping__nrofSymbols_n2 = 1, + ASN_RRC_SRS_Resource__resourceMapping__nrofSymbols_n4 = 2 +} e_ASN_RRC_SRS_Resource__resourceMapping__nrofSymbols; +typedef enum ASN_RRC_SRS_Resource__resourceMapping__repetitionFactor { + ASN_RRC_SRS_Resource__resourceMapping__repetitionFactor_n1 = 0, + ASN_RRC_SRS_Resource__resourceMapping__repetitionFactor_n2 = 1, + ASN_RRC_SRS_Resource__resourceMapping__repetitionFactor_n4 = 2 +} e_ASN_RRC_SRS_Resource__resourceMapping__repetitionFactor; +typedef enum ASN_RRC_SRS_Resource__groupOrSequenceHopping { + ASN_RRC_SRS_Resource__groupOrSequenceHopping_neither = 0, + ASN_RRC_SRS_Resource__groupOrSequenceHopping_groupHopping = 1, + ASN_RRC_SRS_Resource__groupOrSequenceHopping_sequenceHopping = 2 +} e_ASN_RRC_SRS_Resource__groupOrSequenceHopping; +typedef enum ASN_RRC_SRS_Resource__resourceType_PR { + ASN_RRC_SRS_Resource__resourceType_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_Resource__resourceType_PR_aperiodic, + ASN_RRC_SRS_Resource__resourceType_PR_semi_persistent, + ASN_RRC_SRS_Resource__resourceType_PR_periodic +} ASN_RRC_SRS_Resource__resourceType_PR; + +/* Forward declarations */ +struct ASN_RRC_SRS_SpatialRelationInfo; + +/* ASN_RRC_SRS-Resource */ +typedef struct ASN_RRC_SRS_Resource { + ASN_RRC_SRS_ResourceId_t srs_ResourceId; + long nrofSRS_Ports; + long *ptrs_PortIndex; /* OPTIONAL */ + struct ASN_RRC_SRS_Resource__transmissionComb { + ASN_RRC_SRS_Resource__transmissionComb_PR present; + union ASN_RRC_SRS_Resource__ASN_RRC_transmissionComb_u { + struct ASN_RRC_SRS_Resource__transmissionComb__n2 { + long combOffset_n2; + long cyclicShift_n2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *n2; + struct ASN_RRC_SRS_Resource__transmissionComb__n4 { + long combOffset_n4; + long cyclicShift_n4; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *n4; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } transmissionComb; + struct ASN_RRC_SRS_Resource__resourceMapping { + long startPosition; + long nrofSymbols; + long repetitionFactor; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resourceMapping; + long freqDomainPosition; + long freqDomainShift; + struct ASN_RRC_SRS_Resource__freqHopping { + long c_SRS; + long b_SRS; + long b_hop; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } freqHopping; + long groupOrSequenceHopping; + struct ASN_RRC_SRS_Resource__resourceType { + ASN_RRC_SRS_Resource__resourceType_PR present; + union ASN_RRC_SRS_Resource__ASN_RRC_resourceType_u { + struct ASN_RRC_SRS_Resource__resourceType__aperiodic { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic; + struct ASN_RRC_SRS_Resource__resourceType__semi_persistent { + ASN_RRC_SRS_PeriodicityAndOffset_t periodicityAndOffset_sp; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semi_persistent; + struct ASN_RRC_SRS_Resource__resourceType__periodic { + ASN_RRC_SRS_PeriodicityAndOffset_t periodicityAndOffset_p; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *periodic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resourceType; + long sequenceId; + struct ASN_RRC_SRS_SpatialRelationInfo *spatialRelationInfo; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofSRS_Ports_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ptrs_PortIndex_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofSymbols_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repetitionFactor_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupOrSequenceHopping_33; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Resource_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceId.c b/src/asn/rrc/ASN_RRC_SRS-ResourceId.c new file mode 100644 index 0000000..2dd591b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-ResourceId.h" + +int +ASN_RRC_SRS_ResourceId_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SRS_ResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceId = { + "SRS-ResourceId", + "SRS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SRS_ResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SRS_ResourceId_constr_1, ASN_RRC_SRS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceId.h b/src/asn/rrc/ASN_RRC_SRS-ResourceId.h new file mode 100644 index 0000000..09c34ee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_ResourceId_H_ +#define _ASN_RRC_SRS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRS-ResourceId */ +typedef long ASN_RRC_SRS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceId; +asn_struct_free_f ASN_RRC_SRS_ResourceId_free; +asn_struct_print_f ASN_RRC_SRS_ResourceId_print; +asn_constr_check_f ASN_RRC_SRS_ResourceId_constraint; +ber_type_decoder_f ASN_RRC_SRS_ResourceId_decode_ber; +der_type_encoder_f ASN_RRC_SRS_ResourceId_encode_der; +xer_type_decoder_f ASN_RRC_SRS_ResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_SRS_ResourceId_encode_xer; +per_type_decoder_f ASN_RRC_SRS_ResourceId_decode_uper; +per_type_encoder_f ASN_RRC_SRS_ResourceId_encode_uper; +per_type_decoder_f ASN_RRC_SRS_ResourceId_decode_aper; +per_type_encoder_f ASN_RRC_SRS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_ResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceSet.c b/src/asn/rrc/ASN_RRC_SRS-ResourceSet.c new file mode 100644 index 0000000..e121469 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceSet.c @@ -0,0 +1,812 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-ResourceSet.h" + +static int +memb_NativeInteger_constraint_12(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 int +memb_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constraint_11(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 <= 2)) { + /* 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 int +memb_ASN_RRC_aperiodicSRS_ResourceTrigger_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 int +memb_ASN_RRC_slotOffset_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_srs_ResourceIdList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_p0_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 >= -202 && value <= 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_type_ASN_RRC_srs_ResourceIdList_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (1..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constr_12 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_per_constraints_t asn_PER_memb_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constr_12 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_per_constraints_t asn_PER_memb_ASN_RRC_aperiodicSRS_ResourceTrigger_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 1, 3 } /* (1..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slotOffset_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (1..32) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_resourceType_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_usage_constr_20 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_type_ASN_RRC_pathlossReferenceRS_constr_27 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_type_ASN_RRC_srs_PowerControlAdjustmentStates_constr_30 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_ASN_RRC_srs_ResourceIdList_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_p0_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, -202, 24 } /* (-202..24) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_srs_ResourceIdList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_ResourceIdList_specs_3 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__srs_ResourceIdList), + offsetof(struct ASN_RRC_SRS_ResourceSet__srs_ResourceIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_ResourceIdList_3 = { + "srs-ResourceIdList", + "srs-ResourceIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3, + sizeof(asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3) + /sizeof(asn_DEF_ASN_RRC_srs_ResourceIdList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_ResourceIdList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_ResourceIdList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_ResourceIdList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_13, memb_NativeInteger_constraint_12 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_specs_12 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1__aperiodicSRS_ResourceTriggerList_v1530), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1__aperiodicSRS_ResourceTriggerList_v1530, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_12 = { + "aperiodicSRS-ResourceTriggerList-v1530", + "aperiodicSRS-ResourceTriggerList-v1530", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12, + sizeof(asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12) + /sizeof(asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12) + /sizeof(asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_12, + 1, /* Single element */ + &asn_SPC_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_11[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1, aperiodicSRS_ResourceTriggerList_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_12, + 0, + { 0, &asn_PER_memb_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constr_12, memb_ASN_RRC_aperiodicSRS_ResourceTriggerList_v1530_constraint_11 }, + 0, 0, /* No default value */ + "aperiodicSRS-ResourceTriggerList-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_11[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* aperiodicSRS-ResourceTriggerList-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_11 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_11, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_11, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_11, + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_11, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodic_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic, aperiodicSRS_ResourceTrigger), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_aperiodicSRS_ResourceTrigger_constr_7, memb_ASN_RRC_aperiodicSRS_ResourceTrigger_constraint_6 }, + 0, 0, /* No default value */ + "aperiodicSRS-ResourceTrigger" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic, slotOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotOffset_constr_9, memb_ASN_RRC_slotOffset_constraint_6 }, + 0, 0, /* No default value */ + "slotOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_aperiodic_oms_6[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_aperiodic_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aperiodicSRS-ResourceTrigger */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* slotOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ext1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_aperiodic_specs_6 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic, _asn_ctx), + asn_MAP_ASN_RRC_aperiodic_tag2el_6, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_aperiodic_oms_6, /* Optional members */ + 2, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_6 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_aperiodic_tags_6, + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_6) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aperiodic_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aperiodic_tags_6) + /sizeof(asn_DEF_ASN_RRC_aperiodic_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_aperiodic_6, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_aperiodic_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_semi_persistent_14[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__semi_persistent, associatedCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedCSI-RS" + }, +}; +static const int asn_MAP_ASN_RRC_semi_persistent_oms_14[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_semi_persistent_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semi_persistent_tag2el_14[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedCSI-RS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semi_persistent_specs_14 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType__semi_persistent), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__semi_persistent, _asn_ctx), + asn_MAP_ASN_RRC_semi_persistent_tag2el_14, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_semi_persistent_oms_14, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semi_persistent_14 = { + "semi-persistent", + "semi-persistent", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_semi_persistent_tags_14, + sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_14) + /sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_semi_persistent_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_14) + /sizeof(asn_DEF_ASN_RRC_semi_persistent_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_semi_persistent_14, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_semi_persistent_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodic_17[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__periodic, associatedCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedCSI-RS" + }, +}; +static const int asn_MAP_ASN_RRC_periodic_oms_17[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodic_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodic_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedCSI-RS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_periodic_specs_17 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType__periodic), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType__periodic, _asn_ctx), + asn_MAP_ASN_RRC_periodic_tag2el_17, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_periodic_oms_17, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodic_17 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_periodic_tags_17, + sizeof(asn_DEF_ASN_RRC_periodic_tags_17) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodic_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodic_tags_17) + /sizeof(asn_DEF_ASN_RRC_periodic_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_periodic_17, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_periodic_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_resourceType_5[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_aperiodic_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType, choice.semi_persistent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_semi_persistent_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semi-persistent" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_periodic_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_resourceType_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aperiodic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semi-persistent */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* periodic */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_resourceType_specs_5 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__resourceType), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType, _asn_ctx), + offsetof(struct ASN_RRC_SRS_ResourceSet__resourceType, present), + sizeof(((struct ASN_RRC_SRS_ResourceSet__resourceType *)0)->present), + asn_MAP_ASN_RRC_resourceType_tag2el_5, + 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_ASN_RRC_resourceType_5 = { + "resourceType", + "resourceType", + &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_ASN_RRC_resourceType_constr_5, CHOICE_constraint }, + asn_MBR_ASN_RRC_resourceType_5, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_resourceType_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_usage_value2enum_20[] = { + { 0, 14, "beamManagement" }, + { 1, 8, "codebook" }, + { 2, 11, "nonCodebook" }, + { 3, 16, "antennaSwitching" } +}; +static const unsigned int asn_MAP_ASN_RRC_usage_enum2value_20[] = { + 3, /* antennaSwitching(3) */ + 0, /* beamManagement(0) */ + 1, /* codebook(1) */ + 2 /* nonCodebook(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_usage_specs_20 = { + asn_MAP_ASN_RRC_usage_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_usage_enum2value_20, /* 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_ASN_RRC_usage_tags_20[] = { + (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_ASN_RRC_usage_20 = { + "usage", + "usage", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_usage_tags_20, + sizeof(asn_DEF_ASN_RRC_usage_tags_20) + /sizeof(asn_DEF_ASN_RRC_usage_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_usage_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_usage_tags_20) + /sizeof(asn_DEF_ASN_RRC_usage_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_usage_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_usage_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_pathlossReferenceRS_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_pathlossReferenceRS_tag2el_27[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RS-Index */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_pathlossReferenceRS_specs_27 = { + sizeof(struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS), + offsetof(struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS, _asn_ctx), + offsetof(struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS, present), + sizeof(((struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS *)0)->present), + asn_MAP_ASN_RRC_pathlossReferenceRS_tag2el_27, + 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_ASN_RRC_pathlossReferenceRS_27 = { + "pathlossReferenceRS", + "pathlossReferenceRS", + &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_ASN_RRC_pathlossReferenceRS_constr_27, CHOICE_constraint }, + asn_MBR_ASN_RRC_pathlossReferenceRS_27, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_pathlossReferenceRS_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_srs_PowerControlAdjustmentStates_value2enum_30[] = { + { 0, 10, "sameAsFci2" }, + { 1, 18, "separateClosedLoop" } +}; +static const unsigned int asn_MAP_ASN_RRC_srs_PowerControlAdjustmentStates_enum2value_30[] = { + 0, /* sameAsFci2(0) */ + 1 /* separateClosedLoop(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srs_PowerControlAdjustmentStates_specs_30 = { + asn_MAP_ASN_RRC_srs_PowerControlAdjustmentStates_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srs_PowerControlAdjustmentStates_enum2value_30, /* 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_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_30 = { + "srs-PowerControlAdjustmentStates", + "srs-PowerControlAdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30, + sizeof(asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30) + /sizeof(asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30) + /sizeof(asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_tags_30[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_PowerControlAdjustmentStates_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srs_PowerControlAdjustmentStates_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet, srs_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-ResourceSetId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet, srs_ResourceIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_ResourceIdList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_ResourceIdList_constr_3, memb_ASN_RRC_srs_ResourceIdList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceIdList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet, resourceType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_resourceType_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_ResourceSet, usage), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_usage_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "usage" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SRS_ResourceSet, alpha), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alpha" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SRS_ResourceSet, p0), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_p0_constr_26, memb_ASN_RRC_p0_constraint_1 }, + 0, 0, /* No default value */ + "p0" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_ResourceSet, pathlossReferenceRS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pathlossReferenceRS_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathlossReferenceRS" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_ResourceSet, srs_PowerControlAdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-PowerControlAdjustmentStates" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_ResourceSet_oms_1[] = { 1, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* srs-ResourceIdList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resourceType */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* usage */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* alpha */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* p0 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* pathlossReferenceRS */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* srs-PowerControlAdjustmentStates */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_SRS_ResourceSet), + offsetof(struct ASN_RRC_SRS_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_SRS_ResourceSet_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_ResourceSet_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceSet = { + "SRS-ResourceSet", + "SRS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_ResourceSet_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceSet.h b/src/asn/rrc/ASN_RRC_SRS-ResourceSet.h new file mode 100644 index 0000000..edd305f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceSet.h @@ -0,0 +1,149 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_ResourceSet_H_ +#define _ASN_RRC_SRS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SRS-ResourceSetId.h" +#include +#include "ASN_RRC_Alpha.h" +#include +#include "ASN_RRC_SRS-ResourceId.h" +#include +#include +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include +#include +#include "ASN_RRC_SSB-Index.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_ResourceSet__resourceType_PR { + ASN_RRC_SRS_ResourceSet__resourceType_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_ResourceSet__resourceType_PR_aperiodic, + ASN_RRC_SRS_ResourceSet__resourceType_PR_semi_persistent, + ASN_RRC_SRS_ResourceSet__resourceType_PR_periodic +} ASN_RRC_SRS_ResourceSet__resourceType_PR; +typedef enum ASN_RRC_SRS_ResourceSet__usage { + ASN_RRC_SRS_ResourceSet__usage_beamManagement = 0, + ASN_RRC_SRS_ResourceSet__usage_codebook = 1, + ASN_RRC_SRS_ResourceSet__usage_nonCodebook = 2, + ASN_RRC_SRS_ResourceSet__usage_antennaSwitching = 3 +} e_ASN_RRC_SRS_ResourceSet__usage; +typedef enum ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR { + ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR_ssb_Index, + ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR_csi_RS_Index +} ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR; +typedef enum ASN_RRC_SRS_ResourceSet__srs_PowerControlAdjustmentStates { + ASN_RRC_SRS_ResourceSet__srs_PowerControlAdjustmentStates_sameAsFci2 = 0, + ASN_RRC_SRS_ResourceSet__srs_PowerControlAdjustmentStates_separateClosedLoop = 1 +} e_ASN_RRC_SRS_ResourceSet__srs_PowerControlAdjustmentStates; + +/* ASN_RRC_SRS-ResourceSet */ +typedef struct ASN_RRC_SRS_ResourceSet { + ASN_RRC_SRS_ResourceSetId_t srs_ResourceSetId; + struct ASN_RRC_SRS_ResourceSet__srs_ResourceIdList { + A_SEQUENCE_OF(ASN_RRC_SRS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceIdList; + struct ASN_RRC_SRS_ResourceSet__resourceType { + ASN_RRC_SRS_ResourceSet__resourceType_PR present; + union ASN_RRC_SRS_ResourceSet__ASN_RRC_resourceType_u { + struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic { + long aperiodicSRS_ResourceTrigger; + ASN_RRC_NZP_CSI_RS_ResourceId_t *csi_RS; /* OPTIONAL */ + long *slotOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1 { + struct ASN_RRC_SRS_ResourceSet__resourceType__aperiodic__ext1__aperiodicSRS_ResourceTriggerList_v1530 { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodicSRS_ResourceTriggerList_v1530; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic; + struct ASN_RRC_SRS_ResourceSet__resourceType__semi_persistent { + ASN_RRC_NZP_CSI_RS_ResourceId_t *associatedCSI_RS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semi_persistent; + struct ASN_RRC_SRS_ResourceSet__resourceType__periodic { + ASN_RRC_NZP_CSI_RS_ResourceId_t *associatedCSI_RS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *periodic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } resourceType; + long usage; + ASN_RRC_Alpha_t *alpha; /* OPTIONAL */ + long *p0; /* OPTIONAL */ + struct ASN_RRC_SRS_ResourceSet__pathlossReferenceRS { + ASN_RRC_SRS_ResourceSet__pathlossReferenceRS_PR present; + union ASN_RRC_SRS_ResourceSet__ASN_RRC_pathlossReferenceRS_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pathlossReferenceRS; + long *srs_PowerControlAdjustmentStates; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_ResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_usage_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_PowerControlAdjustmentStates_30; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_ResourceSet_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.c b/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.c new file mode 100644 index 0000000..7adf617 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-ResourceSetId.h" + +int +ASN_RRC_SRS_ResourceSetId_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_ASN_RRC_SRS_ResourceSetId_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_ASN_RRC_SRS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceSetId = { + "SRS-ResourceSetId", + "SRS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SRS_ResourceSetId_constr_1, ASN_RRC_SRS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.h b/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.h new file mode 100644 index 0000000..a475521 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_ResourceSetId_H_ +#define _ASN_RRC_SRS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRS-ResourceSetId */ +typedef long ASN_RRC_SRS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SRS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_ResourceSetId; +asn_struct_free_f ASN_RRC_SRS_ResourceSetId_free; +asn_struct_print_f ASN_RRC_SRS_ResourceSetId_print; +asn_constr_check_f ASN_RRC_SRS_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_SRS_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_SRS_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_SRS_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_SRS_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_SRS_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_SRS_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_SRS_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_SRS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-Resources.c b/src/asn/rrc/ASN_RRC_SRS-Resources.c new file mode 100644 index 0000000..5179a78 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Resources.c @@ -0,0 +1,404 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-Resources.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_ASN_RRC_maxNumberAperiodicSRS_PerBWP_PerSlot_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 <= 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxNumberPeriodicSRS_PerBWP_PerSlot_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 <= 6)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_PerSlot_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 <= 6)) { + /* Constraint 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_ASN_RRC_maxNumberAperiodicSRS_PerBWP_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberPeriodicSRS_PerBWP_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberSRS_Ports_PerResource_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_ASN_RRC_maxNumberAperiodicSRS_PerBWP_PerSlot_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (1..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberPeriodicSRS_PerBWP_PerSlot_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (1..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_PerSlot_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 1, 6 } /* (1..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberAperiodicSRS_PerBWP_value2enum_2[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberAperiodicSRS_PerBWP_enum2value_2[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberAperiodicSRS_PerBWP_specs_2 = { + asn_MAP_ASN_RRC_maxNumberAperiodicSRS_PerBWP_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberAperiodicSRS_PerBWP_enum2value_2, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberAperiodicSRS_PerBWP_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_ASN_RRC_maxNumberAperiodicSRS_PerBWP_2 = { + "maxNumberAperiodicSRS-PerBWP", + "maxNumberAperiodicSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberAperiodicSRS_PerBWP_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberAperiodicSRS_PerBWP_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberPeriodicSRS_PerBWP_value2enum_9[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberPeriodicSRS_PerBWP_enum2value_9[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberPeriodicSRS_PerBWP_specs_9 = { + asn_MAP_ASN_RRC_maxNumberPeriodicSRS_PerBWP_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberPeriodicSRS_PerBWP_enum2value_9, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9[] = { + (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_ASN_RRC_maxNumberPeriodicSRS_PerBWP_9 = { + "maxNumberPeriodicSRS-PerBWP", + "maxNumberPeriodicSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9, + sizeof(asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberPeriodicSRS_PerBWP_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberPeriodicSRS_PerBWP_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_value2enum_16[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_enum2value_16[] = { + 0, /* n1(0) */ + 4, /* n16(4) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_specs_16 = { + asn_MAP_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_enum2value_16, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16[] = { + (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_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_16 = { + "maxNumberSemiPersistentSRS-PerBWP", + "maxNumberSemiPersistentSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16, + sizeof(asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16) + /sizeof(asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16) + /sizeof(asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_tags_16[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberSRS_Ports_PerResource_value2enum_23[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberSRS_Ports_PerResource_enum2value_23[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberSRS_Ports_PerResource_specs_23 = { + asn_MAP_ASN_RRC_maxNumberSRS_Ports_PerResource_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberSRS_Ports_PerResource_enum2value_23, /* 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_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_23 = { + "maxNumberSRS-Ports-PerResource", + "maxNumberSRS-Ports-PerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23, + sizeof(asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23) + /sizeof(asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23) + /sizeof(asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberSRS_Ports_PerResource_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberSRS_Ports_PerResource_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Resources_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberAperiodicSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberAperiodicSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberAperiodicSRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberAperiodicSRS_PerBWP_PerSlot_constr_8, memb_ASN_RRC_maxNumberAperiodicSRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicSRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberPeriodicSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberPeriodicSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberPeriodicSRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberPeriodicSRS_PerBWP_PerSlot_constr_15, memb_ASN_RRC_maxNumberPeriodicSRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicSRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberSemiPersistentSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberSemiPersistentSRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_PerSlot_constr_22, memb_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentSRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_Resources, maxNumberSRS_Ports_PerResource), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSRS-Ports-PerResource" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_Resources_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_Resources_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberAperiodicSRS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberAperiodicSRS-PerBWP-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNumberPeriodicSRS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* maxNumberPeriodicSRS-PerBWP-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxNumberSemiPersistentSRS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxNumberSemiPersistentSRS-PerBWP-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* maxNumberSRS-Ports-PerResource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Resources_specs_1 = { + sizeof(struct ASN_RRC_SRS_Resources), + offsetof(struct ASN_RRC_SRS_Resources, _asn_ctx), + asn_MAP_ASN_RRC_SRS_Resources_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Resources = { + "SRS-Resources", + "SRS-Resources", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_Resources_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_Resources_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Resources_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_Resources_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_Resources_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_Resources_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_Resources_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_Resources_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-Resources.h b/src/asn/rrc/ASN_RRC_SRS-Resources.h new file mode 100644 index 0000000..034bf16 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-Resources.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_Resources_H_ +#define _ASN_RRC_SRS_Resources_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP { + ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP_n1 = 0, + ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP_n2 = 1, + ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP_n4 = 2, + ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP_n8 = 3, + ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP_n16 = 4 +} e_ASN_RRC_SRS_Resources__maxNumberAperiodicSRS_PerBWP; +typedef enum ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP { + ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP_n1 = 0, + ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP_n2 = 1, + ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP_n4 = 2, + ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP_n8 = 3, + ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP_n16 = 4 +} e_ASN_RRC_SRS_Resources__maxNumberPeriodicSRS_PerBWP; +typedef enum ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP { + ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP_n1 = 0, + ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP_n2 = 1, + ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP_n4 = 2, + ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP_n8 = 3, + ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP_n16 = 4 +} e_ASN_RRC_SRS_Resources__maxNumberSemiPersistentSRS_PerBWP; +typedef enum ASN_RRC_SRS_Resources__maxNumberSRS_Ports_PerResource { + ASN_RRC_SRS_Resources__maxNumberSRS_Ports_PerResource_n1 = 0, + ASN_RRC_SRS_Resources__maxNumberSRS_Ports_PerResource_n2 = 1, + ASN_RRC_SRS_Resources__maxNumberSRS_Ports_PerResource_n4 = 2 +} e_ASN_RRC_SRS_Resources__maxNumberSRS_Ports_PerResource; + +/* ASN_RRC_SRS-Resources */ +typedef struct ASN_RRC_SRS_Resources { + long maxNumberAperiodicSRS_PerBWP; + long maxNumberAperiodicSRS_PerBWP_PerSlot; + long maxNumberPeriodicSRS_PerBWP; + long maxNumberPeriodicSRS_PerBWP_PerSlot; + long maxNumberSemiPersistentSRS_PerBWP; + long maxNumberSemiPersistentSRS_PerBWP_PerSlot; + long maxNumberSRS_Ports_PerResource; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_Resources_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberAperiodicSRS_PerBWP_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberPeriodicSRS_PerBWP_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSemiPersistentSRS_PerBWP_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberSRS_Ports_PerResource_23; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_Resources; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_Resources_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_Resources_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_Resources_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.c b/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.c new file mode 100644 index 0000000..7bff166 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.c @@ -0,0 +1,179 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-SpatialRelationInfo.h" + +static asn_per_constraints_t asn_PER_type_ASN_RRC_referenceSignal_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_TYPE_member_t asn_MBR_ASN_RRC_srs_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal__srs, resourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal__srs, uplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBWP" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_srs_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* resourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkBWP */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_srs_specs_6 = { + sizeof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal__srs), + offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal__srs, _asn_ctx), + asn_MAP_ASN_RRC_srs_tag2el_6, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_6 = { + "srs", + "srs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_srs_tags_6, + sizeof(asn_DEF_ASN_RRC_srs_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_tags_6) + /sizeof(asn_DEF_ASN_RRC_srs_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_srs_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_srs_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal, choice.srs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_referenceSignal_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-Index */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csi-RS-Index */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* srs */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_referenceSignal_specs_3 = { + sizeof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal), + offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal, _asn_ctx), + offsetof(struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal, present), + sizeof(((struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal *)0)->present), + asn_MAP_ASN_RRC_referenceSignal_tag2el_3, + 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_ASN_RRC_referenceSignal_3 = { + "referenceSignal", + "referenceSignal", + &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_ASN_RRC_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_referenceSignal_3, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SpatialRelationInfo_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SRS_SpatialRelationInfo, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_SpatialRelationInfo_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_SpatialRelationInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* referenceSignal */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SpatialRelationInfo_specs_1 = { + sizeof(struct ASN_RRC_SRS_SpatialRelationInfo), + offsetof(struct ASN_RRC_SRS_SpatialRelationInfo, _asn_ctx), + asn_MAP_ASN_RRC_SRS_SpatialRelationInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_SpatialRelationInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SpatialRelationInfo = { + "SRS-SpatialRelationInfo", + "SRS-SpatialRelationInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SpatialRelationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_SpatialRelationInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_SpatialRelationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.h b/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.h new file mode 100644 index 0000000..80607c2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SpatialRelationInfo.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_SpatialRelationInfo_H_ +#define _ASN_RRC_SRS_SpatialRelationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_SSB-Index.h" +#include "ASN_RRC_NZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_SRS-ResourceId.h" +#include "ASN_RRC_BWP-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR { + ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR_NOTHING, /* No components present */ + ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR_ssb_Index, + ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index, + ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR_srs +} ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR; + +/* ASN_RRC_SRS-SpatialRelationInfo */ +typedef struct ASN_RRC_SRS_SpatialRelationInfo { + ASN_RRC_ServCellIndex_t *servingCellId; /* OPTIONAL */ + struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal { + ASN_RRC_SRS_SpatialRelationInfo__referenceSignal_PR present; + union ASN_RRC_SRS_SpatialRelationInfo__ASN_RRC_referenceSignal_u { + ASN_RRC_SSB_Index_t ssb_Index; + ASN_RRC_NZP_CSI_RS_ResourceId_t csi_RS_Index; + struct ASN_RRC_SRS_SpatialRelationInfo__referenceSignal__srs { + ASN_RRC_SRS_ResourceId_t resourceId; + ASN_RRC_BWP_Id_t uplinkBWP; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } referenceSignal; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_SpatialRelationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SpatialRelationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SpatialRelationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SpatialRelationInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_SpatialRelationInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.c b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.c new file mode 100644 index 0000000..1f10094 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.c @@ -0,0 +1,206 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-SwitchingTimeEUTRA.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_ASN_RRC_switchingTimeDL_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_switchingTimeUL_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_switchingTimeDL_value2enum_2[] = { + { 0, 2, "n0" }, + { 1, 6, "n0dot5" }, + { 2, 2, "n1" }, + { 3, 6, "n1dot5" }, + { 4, 2, "n2" }, + { 5, 6, "n2dot5" }, + { 6, 2, "n3" }, + { 7, 6, "n3dot5" }, + { 8, 2, "n4" }, + { 9, 6, "n4dot5" }, + { 10, 2, "n5" }, + { 11, 6, "n5dot5" }, + { 12, 2, "n6" }, + { 13, 6, "n6dot5" }, + { 14, 2, "n7" } +}; +static const unsigned int asn_MAP_ASN_RRC_switchingTimeDL_enum2value_2[] = { + 0, /* n0(0) */ + 1, /* n0dot5(1) */ + 2, /* n1(2) */ + 3, /* n1dot5(3) */ + 4, /* n2(4) */ + 5, /* n2dot5(5) */ + 6, /* n3(6) */ + 7, /* n3dot5(7) */ + 8, /* n4(8) */ + 9, /* n4dot5(9) */ + 10, /* n5(10) */ + 11, /* n5dot5(11) */ + 12, /* n6(12) */ + 13, /* n6dot5(13) */ + 14 /* n7(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_switchingTimeDL_specs_2 = { + asn_MAP_ASN_RRC_switchingTimeDL_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_switchingTimeDL_enum2value_2, /* N => "tag"; sorted by N */ + 15, /* 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_ASN_RRC_switchingTimeDL_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_ASN_RRC_switchingTimeDL_2 = { + "switchingTimeDL", + "switchingTimeDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_switchingTimeDL_tags_2, + sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2) + /sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_switchingTimeDL_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2) + /sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_switchingTimeDL_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_switchingTimeDL_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_switchingTimeUL_value2enum_18[] = { + { 0, 2, "n0" }, + { 1, 6, "n0dot5" }, + { 2, 2, "n1" }, + { 3, 6, "n1dot5" }, + { 4, 2, "n2" }, + { 5, 6, "n2dot5" }, + { 6, 2, "n3" }, + { 7, 6, "n3dot5" }, + { 8, 2, "n4" }, + { 9, 6, "n4dot5" }, + { 10, 2, "n5" }, + { 11, 6, "n5dot5" }, + { 12, 2, "n6" }, + { 13, 6, "n6dot5" }, + { 14, 2, "n7" } +}; +static const unsigned int asn_MAP_ASN_RRC_switchingTimeUL_enum2value_18[] = { + 0, /* n0(0) */ + 1, /* n0dot5(1) */ + 2, /* n1(2) */ + 3, /* n1dot5(3) */ + 4, /* n2(4) */ + 5, /* n2dot5(5) */ + 6, /* n3(6) */ + 7, /* n3dot5(7) */ + 8, /* n4(8) */ + 9, /* n4dot5(9) */ + 10, /* n5(10) */ + 11, /* n5dot5(11) */ + 12, /* n6(12) */ + 13, /* n6dot5(13) */ + 14 /* n7(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_switchingTimeUL_specs_18 = { + asn_MAP_ASN_RRC_switchingTimeUL_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_switchingTimeUL_enum2value_18, /* N => "tag"; sorted by N */ + 15, /* 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_ASN_RRC_switchingTimeUL_tags_18[] = { + (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_ASN_RRC_switchingTimeUL_18 = { + "switchingTimeUL", + "switchingTimeUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_switchingTimeUL_tags_18, + sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_18) + /sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_18[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_switchingTimeUL_tags_18, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_18) + /sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_18[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_switchingTimeUL_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_switchingTimeUL_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SwitchingTimeEUTRA_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_SwitchingTimeEUTRA, switchingTimeDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_switchingTimeDL_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "switchingTimeDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_SwitchingTimeEUTRA, switchingTimeUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_switchingTimeUL_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "switchingTimeUL" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_SwitchingTimeEUTRA_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_SwitchingTimeEUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* switchingTimeDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* switchingTimeUL */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SwitchingTimeEUTRA_specs_1 = { + sizeof(struct ASN_RRC_SRS_SwitchingTimeEUTRA), + offsetof(struct ASN_RRC_SRS_SwitchingTimeEUTRA, _asn_ctx), + asn_MAP_ASN_RRC_SRS_SwitchingTimeEUTRA_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_SwitchingTimeEUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA = { + "SRS-SwitchingTimeEUTRA", + "SRS-SwitchingTimeEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_SwitchingTimeEUTRA_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_SwitchingTimeEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.h b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.h new file mode 100644 index 0000000..ebb6d39 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeEUTRA.h @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_SwitchingTimeEUTRA_H_ +#define _ASN_RRC_SRS_SwitchingTimeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL { + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n0 = 0, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n0dot5 = 1, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n1 = 2, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n1dot5 = 3, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n2 = 4, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n2dot5 = 5, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n3 = 6, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n3dot5 = 7, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n4 = 8, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n4dot5 = 9, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n5 = 10, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n5dot5 = 11, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n6 = 12, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n6dot5 = 13, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL_n7 = 14 +} e_ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeDL; +typedef enum ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL { + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n0 = 0, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n0dot5 = 1, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n1 = 2, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n1dot5 = 3, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n2 = 4, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n2dot5 = 5, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n3 = 6, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n3dot5 = 7, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n4 = 8, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n4dot5 = 9, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n5 = 10, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n5dot5 = 11, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n6 = 12, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n6dot5 = 13, + ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL_n7 = 14 +} e_ASN_RRC_SRS_SwitchingTimeEUTRA__switchingTimeUL; + +/* ASN_RRC_SRS-SwitchingTimeEUTRA */ +typedef struct ASN_RRC_SRS_SwitchingTimeEUTRA { + long *switchingTimeDL; /* OPTIONAL */ + long *switchingTimeUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_SwitchingTimeEUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_switchingTimeDL_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_switchingTimeUL_18; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SwitchingTimeEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SwitchingTimeEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SwitchingTimeEUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_SwitchingTimeEUTRA_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.c b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.c new file mode 100644 index 0000000..2ab86e9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-SwitchingTimeNR.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_ASN_RRC_switchingTimeDL_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_switchingTimeUL_constr_11 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_ASN_RRC_switchingTimeDL_value2enum_2[] = { + { 0, 4, "n0us" }, + { 1, 5, "n30us" }, + { 2, 6, "n100us" }, + { 3, 6, "n140us" }, + { 4, 6, "n200us" }, + { 5, 6, "n300us" }, + { 6, 6, "n500us" }, + { 7, 6, "n900us" } +}; +static const unsigned int asn_MAP_ASN_RRC_switchingTimeDL_enum2value_2[] = { + 0, /* n0us(0) */ + 2, /* n100us(2) */ + 3, /* n140us(3) */ + 4, /* n200us(4) */ + 5, /* n300us(5) */ + 1, /* n30us(1) */ + 6, /* n500us(6) */ + 7 /* n900us(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_switchingTimeDL_specs_2 = { + asn_MAP_ASN_RRC_switchingTimeDL_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_switchingTimeDL_enum2value_2, /* 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_ASN_RRC_switchingTimeDL_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_ASN_RRC_switchingTimeDL_2 = { + "switchingTimeDL", + "switchingTimeDL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_switchingTimeDL_tags_2, + sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2) + /sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_switchingTimeDL_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2) + /sizeof(asn_DEF_ASN_RRC_switchingTimeDL_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_switchingTimeDL_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_switchingTimeDL_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_switchingTimeUL_value2enum_11[] = { + { 0, 4, "n0us" }, + { 1, 5, "n30us" }, + { 2, 6, "n100us" }, + { 3, 6, "n140us" }, + { 4, 6, "n200us" }, + { 5, 6, "n300us" }, + { 6, 6, "n500us" }, + { 7, 6, "n900us" } +}; +static const unsigned int asn_MAP_ASN_RRC_switchingTimeUL_enum2value_11[] = { + 0, /* n0us(0) */ + 2, /* n100us(2) */ + 3, /* n140us(3) */ + 4, /* n200us(4) */ + 5, /* n300us(5) */ + 1, /* n30us(1) */ + 6, /* n500us(6) */ + 7 /* n900us(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_switchingTimeUL_specs_11 = { + asn_MAP_ASN_RRC_switchingTimeUL_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_switchingTimeUL_enum2value_11, /* 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_ASN_RRC_switchingTimeUL_tags_11[] = { + (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_ASN_RRC_switchingTimeUL_11 = { + "switchingTimeUL", + "switchingTimeUL", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_switchingTimeUL_tags_11, + sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_11) + /sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_switchingTimeUL_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_11) + /sizeof(asn_DEF_ASN_RRC_switchingTimeUL_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_switchingTimeUL_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_switchingTimeUL_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SwitchingTimeNR_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_SwitchingTimeNR, switchingTimeDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_switchingTimeDL_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "switchingTimeDL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_SwitchingTimeNR, switchingTimeUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_switchingTimeUL_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "switchingTimeUL" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_SwitchingTimeNR_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_SwitchingTimeNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* switchingTimeDL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* switchingTimeUL */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SwitchingTimeNR_specs_1 = { + sizeof(struct ASN_RRC_SRS_SwitchingTimeNR), + offsetof(struct ASN_RRC_SRS_SwitchingTimeNR, _asn_ctx), + asn_MAP_ASN_RRC_SRS_SwitchingTimeNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_SwitchingTimeNR_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SwitchingTimeNR = { + "SRS-SwitchingTimeNR", + "SRS-SwitchingTimeNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_SwitchingTimeNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_SwitchingTimeNR_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_SwitchingTimeNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.h b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.h new file mode 100644 index 0000000..a3013f2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-SwitchingTimeNR.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_SwitchingTimeNR_H_ +#define _ASN_RRC_SRS_SwitchingTimeNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL { + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n0us = 0, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n30us = 1, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n100us = 2, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n140us = 3, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n200us = 4, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n300us = 5, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n500us = 6, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL_n900us = 7 +} e_ASN_RRC_SRS_SwitchingTimeNR__switchingTimeDL; +typedef enum ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL { + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n0us = 0, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n30us = 1, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n100us = 2, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n140us = 3, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n200us = 4, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n300us = 5, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n500us = 6, + ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL_n900us = 7 +} e_ASN_RRC_SRS_SwitchingTimeNR__switchingTimeUL; + +/* ASN_RRC_SRS-SwitchingTimeNR */ +typedef struct ASN_RRC_SRS_SwitchingTimeNR { + long *switchingTimeDL; /* OPTIONAL */ + long *switchingTimeUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_SwitchingTimeNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_switchingTimeDL_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_switchingTimeUL_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_SwitchingTimeNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_SwitchingTimeNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_SwitchingTimeNR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_SwitchingTimeNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.c b/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.c new file mode 100644 index 0000000..24c5e6d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-TPC-CommandConfig.h" + +static int +memb_ASN_RRC_startingBitOfFormat2_3SUL_v1530_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 >= 1 && value <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_startingBitOfFormat2_3_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 <= 31)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_fieldTypeFormat2_3_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 <= 1)) { + /* Constraint 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_ASN_RRC_startingBitOfFormat2_3SUL_v1530_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_startingBitOfFormat2_3_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 1, 31 } /* (1..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_fieldTypeFormat2_3_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_TPC_CommandConfig__ext1, startingBitOfFormat2_3SUL_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingBitOfFormat2_3SUL_v1530_constr_6, memb_ASN_RRC_startingBitOfFormat2_3SUL_v1530_constraint_5 }, + 0, 0, /* No default value */ + "startingBitOfFormat2-3SUL-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* startingBitOfFormat2-3SUL-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_5 = { + sizeof(struct ASN_RRC_SRS_TPC_CommandConfig__ext1), + offsetof(struct ASN_RRC_SRS_TPC_CommandConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_5, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_5, + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_5) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_5, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_TPC_CommandConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SRS_TPC_CommandConfig, startingBitOfFormat2_3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_startingBitOfFormat2_3_constr_2, memb_ASN_RRC_startingBitOfFormat2_3_constraint_1 }, + 0, 0, /* No default value */ + "startingBitOfFormat2-3" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SRS_TPC_CommandConfig, fieldTypeFormat2_3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_fieldTypeFormat2_3_constr_3, memb_ASN_RRC_fieldTypeFormat2_3_constraint_1 }, + 0, 0, /* No default value */ + "fieldTypeFormat2-3" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_TPC_CommandConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_TPC_CommandConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_TPC_CommandConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startingBitOfFormat2-3 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* fieldTypeFormat2-3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_TPC_CommandConfig_specs_1 = { + sizeof(struct ASN_RRC_SRS_TPC_CommandConfig), + offsetof(struct ASN_RRC_SRS_TPC_CommandConfig, _asn_ctx), + asn_MAP_ASN_RRC_SRS_TPC_CommandConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_TPC_CommandConfig_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_TPC_CommandConfig = { + "SRS-TPC-CommandConfig", + "SRS-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_TPC_CommandConfig_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.h b/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.h new file mode 100644 index 0000000..2a56dfb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-TPC-CommandConfig.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_TPC_CommandConfig_H_ +#define _ASN_RRC_SRS_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SRS-TPC-CommandConfig */ +typedef struct ASN_RRC_SRS_TPC_CommandConfig { + long *startingBitOfFormat2_3; /* OPTIONAL */ + long *fieldTypeFormat2_3; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_SRS_TPC_CommandConfig__ext1 { + long *startingBitOfFormat2_3SUL_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_TPC_CommandConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_TPC_CommandConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.c b/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.c new file mode 100644 index 0000000..c583cb8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SRS-TPC-PDCCH-Config.h" + +#include "ASN_RRC_SRS-CC-SetIndex.h" +static int +memb_ASN_RRC_srs_CC_SetIndexlist_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 <= 4)) { + /* 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_ASN_RRC_srs_CC_SetIndexlist_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_srs_CC_SetIndexlist_constr_2 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_ASN_RRC_srs_CC_SetIndexlist_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SRS_CC_SetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_srs_CC_SetIndexlist_specs_2 = { + sizeof(struct ASN_RRC_SRS_TPC_PDCCH_Config__srs_CC_SetIndexlist), + offsetof(struct ASN_RRC_SRS_TPC_PDCCH_Config__srs_CC_SetIndexlist, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_CC_SetIndexlist_2 = { + "srs-CC-SetIndexlist", + "srs-CC-SetIndexlist", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2, + sizeof(asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_CC_SetIndexlist_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_CC_SetIndexlist_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_srs_CC_SetIndexlist_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_srs_CC_SetIndexlist_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_TPC_PDCCH_Config_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SRS_TPC_PDCCH_Config, srs_CC_SetIndexlist), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_srs_CC_SetIndexlist_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_srs_CC_SetIndexlist_constr_2, memb_ASN_RRC_srs_CC_SetIndexlist_constraint_1 }, + 0, 0, /* No default value */ + "srs-CC-SetIndexlist" + }, +}; +static const int asn_MAP_ASN_RRC_SRS_TPC_PDCCH_Config_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SRS_TPC_PDCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* srs-CC-SetIndexlist */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_TPC_PDCCH_Config_specs_1 = { + sizeof(struct ASN_RRC_SRS_TPC_PDCCH_Config), + offsetof(struct ASN_RRC_SRS_TPC_PDCCH_Config, _asn_ctx), + asn_MAP_ASN_RRC_SRS_TPC_PDCCH_Config_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SRS_TPC_PDCCH_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config = { + "SRS-TPC-PDCCH-Config", + "SRS-TPC-PDCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SRS_TPC_PDCCH_Config_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SRS_TPC_PDCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.h b/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.h new file mode 100644 index 0000000..c8c34bc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SRS-TPC-PDCCH-Config.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SRS_TPC_PDCCH_Config_H_ +#define _ASN_RRC_SRS_TPC_PDCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SRS_CC_SetIndex; + +/* ASN_RRC_SRS-TPC-PDCCH-Config */ +typedef struct ASN_RRC_SRS_TPC_PDCCH_Config { + struct ASN_RRC_SRS_TPC_PDCCH_Config__srs_CC_SetIndexlist { + A_SEQUENCE_OF(struct ASN_RRC_SRS_CC_SetIndex) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_CC_SetIndexlist; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SRS_TPC_PDCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SRS_TPC_PDCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SRS_TPC_PDCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SRS_TPC_PDCCH_Config_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SRS_TPC_PDCCH_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.c b/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.c new file mode 100644 index 0000000..bd51ce5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SS-RSSI-Measurement.h" + +static int +memb_ASN_RRC_measurementSlots_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 <= 80)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_endSymbol_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_ASN_RRC_measurementSlots_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 7, 7, 1, 80 } /* (SIZE(1..80)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_endSymbol_constr_3 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_ASN_RRC_SS_RSSI_Measurement_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SS_RSSI_Measurement, measurementSlots), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_measurementSlots_constr_2, memb_ASN_RRC_measurementSlots_constraint_1 }, + 0, 0, /* No default value */ + "measurementSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SS_RSSI_Measurement, endSymbol), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_endSymbol_constr_3, memb_ASN_RRC_endSymbol_constraint_1 }, + 0, 0, /* No default value */ + "endSymbol" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SS_RSSI_Measurement_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementSlots */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* endSymbol */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SS_RSSI_Measurement_specs_1 = { + sizeof(struct ASN_RRC_SS_RSSI_Measurement), + offsetof(struct ASN_RRC_SS_RSSI_Measurement, _asn_ctx), + asn_MAP_ASN_RRC_SS_RSSI_Measurement_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SS_RSSI_Measurement = { + "SS-RSSI-Measurement", + "SS-RSSI-Measurement", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1, + sizeof(asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1) + /sizeof(asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1) + /sizeof(asn_DEF_ASN_RRC_SS_RSSI_Measurement_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SS_RSSI_Measurement_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SS_RSSI_Measurement_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.h b/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.h new file mode 100644 index 0000000..bc20cb0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SS-RSSI-Measurement.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SS_RSSI_Measurement_H_ +#define _ASN_RRC_SS_RSSI_Measurement_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SS-RSSI-Measurement */ +typedef struct ASN_RRC_SS_RSSI_Measurement { + BIT_STRING_t measurementSlots; + long endSymbol; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SS_RSSI_Measurement_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SS_RSSI_Measurement; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SS_RSSI_Measurement_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SS_RSSI_Measurement_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SS_RSSI_Measurement_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.c b/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.c new file mode 100644 index 0000000..6430d8c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SSB-ConfigMobility.h" + +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_SS-RSSI-Measurement.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_ConfigMobility_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SSB_ConfigMobility, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_ConfigMobility, deriveSSB_IndexFromCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deriveSSB-IndexFromCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SSB_ConfigMobility, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, +}; +static const int asn_MAP_ASN_RRC_SSB_ConfigMobility_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SSB_ConfigMobility_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-ToMeasure */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* deriveSSB-IndexFromCell */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ss-RSSI-Measurement */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_ConfigMobility_specs_1 = { + sizeof(struct ASN_RRC_SSB_ConfigMobility), + offsetof(struct ASN_RRC_SSB_ConfigMobility, _asn_ctx), + asn_MAP_ASN_RRC_SSB_ConfigMobility_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SSB_ConfigMobility_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_ConfigMobility = { + "SSB-ConfigMobility", + "SSB-ConfigMobility", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1, + sizeof(asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_ConfigMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SSB_ConfigMobility_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SSB_ConfigMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.h b/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.h new file mode 100644 index 0000000..d8922de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-ConfigMobility.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SSB_ConfigMobility_H_ +#define _ASN_RRC_SSB_ConfigMobility_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SetupRelease_SSB_ToMeasure; +struct ASN_RRC_SS_RSSI_Measurement; + +/* ASN_RRC_SSB-ConfigMobility */ +typedef struct ASN_RRC_SSB_ConfigMobility { + struct ASN_RRC_SetupRelease_SSB_ToMeasure *ssb_ToMeasure; /* OPTIONAL */ + BOOLEAN_t deriveSSB_IndexFromCell; + struct ASN_RRC_SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SSB_ConfigMobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_ConfigMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_ConfigMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_ConfigMobility_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SSB_ConfigMobility_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SSB-Index.c b/src/asn/rrc/ASN_RRC_SSB-Index.c new file mode 100644 index 0000000..54add7b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-Index.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SSB-Index.h" + +int +ASN_RRC_SSB_Index_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 <= 63)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SSB_Index_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_Index = { + "SSB-Index", + "SSB-Index", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SSB_Index_tags_1, + sizeof(asn_DEF_ASN_RRC_SSB_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_Index_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SSB_Index_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_Index_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SSB_Index_constr_1, ASN_RRC_SSB_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SSB-Index.h b/src/asn/rrc/ASN_RRC_SSB-Index.h new file mode 100644 index 0000000..7bfbe78 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-Index.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SSB_Index_H_ +#define _ASN_RRC_SSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SSB-Index */ +typedef long ASN_RRC_SSB_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SSB_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_Index; +asn_struct_free_f ASN_RRC_SSB_Index_free; +asn_struct_print_f ASN_RRC_SSB_Index_print; +asn_constr_check_f ASN_RRC_SSB_Index_constraint; +ber_type_decoder_f ASN_RRC_SSB_Index_decode_ber; +der_type_encoder_f ASN_RRC_SSB_Index_encode_der; +xer_type_decoder_f ASN_RRC_SSB_Index_decode_xer; +xer_type_encoder_f ASN_RRC_SSB_Index_encode_xer; +per_type_decoder_f ASN_RRC_SSB_Index_decode_uper; +per_type_encoder_f ASN_RRC_SSB_Index_encode_uper; +per_type_decoder_f ASN_RRC_SSB_Index_decode_aper; +per_type_encoder_f ASN_RRC_SSB_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SSB_Index_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SSB-MTC.c b/src/asn/rrc/ASN_RRC_SSB-MTC.c new file mode 100644 index 0000000..11a241d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-MTC.c @@ -0,0 +1,386 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SSB-MTC.h" + +static int +memb_ASN_RRC_sf5_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 <= 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_ASN_RRC_sf10_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 int +memb_ASN_RRC_sf20_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 <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sf40_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 <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sf80_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 <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sf160_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 <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf5_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf10_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf20_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf40_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf80_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sf160_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_periodicityAndOffset_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_duration_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodicityAndOffset_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf5), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf5_constr_3, memb_ASN_RRC_sf5_constraint_2 }, + 0, 0, /* No default value */ + "sf5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf10), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf10_constr_4, memb_ASN_RRC_sf10_constraint_2 }, + 0, 0, /* No default value */ + "sf10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf20), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf20_constr_5, memb_ASN_RRC_sf20_constraint_2 }, + 0, 0, /* No default value */ + "sf20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf40_constr_6, memb_ASN_RRC_sf40_constraint_2 }, + 0, 0, /* No default value */ + "sf40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf80), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf80_constr_7, memb_ASN_RRC_sf80_constraint_2 }, + 0, 0, /* No default value */ + "sf80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, choice.sf160), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sf160_constr_8, memb_ASN_RRC_sf160_constraint_2 }, + 0, 0, /* No default value */ + "sf160" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodicityAndOffset_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sf5 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sf10 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sf20 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sf40 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sf80 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* sf160 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_periodicityAndOffset_specs_2 = { + sizeof(struct ASN_RRC_SSB_MTC__periodicityAndOffset), + offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_SSB_MTC__periodicityAndOffset, present), + sizeof(((struct ASN_RRC_SSB_MTC__periodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_periodicityAndOffset_tag2el_2, + 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_ASN_RRC_periodicityAndOffset_2 = { + "periodicityAndOffset", + "periodicityAndOffset", + &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_ASN_RRC_periodicityAndOffset_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_periodicityAndOffset_2, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_periodicityAndOffset_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_duration_value2enum_9[] = { + { 0, 3, "sf1" }, + { 1, 3, "sf2" }, + { 2, 3, "sf3" }, + { 3, 3, "sf4" }, + { 4, 3, "sf5" } +}; +static const unsigned int asn_MAP_ASN_RRC_duration_enum2value_9[] = { + 0, /* sf1(0) */ + 1, /* sf2(1) */ + 2, /* sf3(2) */ + 3, /* sf4(3) */ + 4 /* sf5(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_duration_specs_9 = { + asn_MAP_ASN_RRC_duration_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_duration_enum2value_9, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_duration_tags_9[] = { + (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_ASN_RRC_duration_9 = { + "duration", + "duration", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_duration_tags_9, + sizeof(asn_DEF_ASN_RRC_duration_tags_9) + /sizeof(asn_DEF_ASN_RRC_duration_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_duration_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_duration_tags_9) + /sizeof(asn_DEF_ASN_RRC_duration_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_duration_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_duration_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_MTC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicityAndOffset_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC, duration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_duration_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SSB_MTC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SSB_MTC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicityAndOffset */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* duration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_MTC_specs_1 = { + sizeof(struct ASN_RRC_SSB_MTC), + offsetof(struct ASN_RRC_SSB_MTC, _asn_ctx), + asn_MAP_ASN_RRC_SSB_MTC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_MTC = { + "SSB-MTC", + "SSB-MTC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SSB_MTC_tags_1, + sizeof(asn_DEF_ASN_RRC_SSB_MTC_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_MTC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SSB_MTC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SSB_MTC_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_MTC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SSB_MTC_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SSB_MTC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SSB-MTC.h b/src/asn/rrc/ASN_RRC_SSB-MTC.h new file mode 100644 index 0000000..68acb2b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-MTC.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SSB_MTC_H_ +#define _ASN_RRC_SSB_MTC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SSB_MTC__periodicityAndOffset_PR { + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf5, + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf10, + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf20, + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf40, + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf80, + ASN_RRC_SSB_MTC__periodicityAndOffset_PR_sf160 +} ASN_RRC_SSB_MTC__periodicityAndOffset_PR; +typedef enum ASN_RRC_SSB_MTC__duration { + ASN_RRC_SSB_MTC__duration_sf1 = 0, + ASN_RRC_SSB_MTC__duration_sf2 = 1, + ASN_RRC_SSB_MTC__duration_sf3 = 2, + ASN_RRC_SSB_MTC__duration_sf4 = 3, + ASN_RRC_SSB_MTC__duration_sf5 = 4 +} e_ASN_RRC_SSB_MTC__duration; + +/* ASN_RRC_SSB-MTC */ +typedef struct ASN_RRC_SSB_MTC { + struct ASN_RRC_SSB_MTC__periodicityAndOffset { + ASN_RRC_SSB_MTC__periodicityAndOffset_PR present; + union ASN_RRC_SSB_MTC__ASN_RRC_periodicityAndOffset_u { + long sf5; + long sf10; + long sf20; + long sf40; + long sf80; + long sf160; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } periodicityAndOffset; + long duration; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SSB_MTC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_duration_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_MTC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_MTC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_MTC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SSB_MTC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SSB-MTC2.c b/src/asn/rrc/ASN_RRC_SSB-MTC2.c new file mode 100644 index 0000000..1e3185f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-MTC2.c @@ -0,0 +1,193 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SSB-MTC2.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_pci_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 <= 64)) { + /* 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_ASN_RRC_pci_List_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_periodicity_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pci_List_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_pci_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_pci_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pci_List_specs_2 = { + sizeof(struct ASN_RRC_SSB_MTC2__pci_List), + offsetof(struct ASN_RRC_SSB_MTC2__pci_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pci_List_2 = { + "pci-List", + "pci-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_pci_List_tags_2, + sizeof(asn_DEF_ASN_RRC_pci_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_pci_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pci_List_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pci_List_tags_2) + /sizeof(asn_DEF_ASN_RRC_pci_List_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pci_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_pci_List_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_pci_List_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicity_value2enum_4[] = { + { 0, 3, "sf5" }, + { 1, 4, "sf10" }, + { 2, 4, "sf20" }, + { 3, 4, "sf40" }, + { 4, 4, "sf80" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_periodicity_enum2value_4[] = { + 1, /* sf10(1) */ + 2, /* sf20(2) */ + 3, /* sf40(3) */ + 0, /* sf5(0) */ + 4, /* sf80(4) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5 /* spare3(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicity_specs_4 = { + asn_MAP_ASN_RRC_periodicity_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_periodicity_enum2value_4, /* 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_ASN_RRC_periodicity_tags_4[] = { + (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_ASN_RRC_periodicity_4 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_periodicity_tags_4, + sizeof(asn_DEF_ASN_RRC_periodicity_tags_4) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_periodicity_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_periodicity_tags_4) + /sizeof(asn_DEF_ASN_RRC_periodicity_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_periodicity_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_periodicity_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_MTC2_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SSB_MTC2, pci_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_pci_List_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_pci_List_constr_2, memb_ASN_RRC_pci_List_constraint_1 }, + 0, 0, /* No default value */ + "pci-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_MTC2, periodicity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicity_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, +}; +static const int asn_MAP_ASN_RRC_SSB_MTC2_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SSB_MTC2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SSB_MTC2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pci-List */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* periodicity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_MTC2_specs_1 = { + sizeof(struct ASN_RRC_SSB_MTC2), + offsetof(struct ASN_RRC_SSB_MTC2, _asn_ctx), + asn_MAP_ASN_RRC_SSB_MTC2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SSB_MTC2_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_MTC2 = { + "SSB-MTC2", + "SSB-MTC2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SSB_MTC2_tags_1, + sizeof(asn_DEF_ASN_RRC_SSB_MTC2_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_MTC2_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SSB_MTC2_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SSB_MTC2_tags_1) + /sizeof(asn_DEF_ASN_RRC_SSB_MTC2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SSB_MTC2_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SSB_MTC2_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SSB-MTC2.h b/src/asn/rrc/ASN_RRC_SSB-MTC2.h new file mode 100644 index 0000000..c06ac31 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-MTC2.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SSB_MTC2_H_ +#define _ASN_RRC_SSB_MTC2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_PhysCellId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SSB_MTC2__periodicity { + ASN_RRC_SSB_MTC2__periodicity_sf5 = 0, + ASN_RRC_SSB_MTC2__periodicity_sf10 = 1, + ASN_RRC_SSB_MTC2__periodicity_sf20 = 2, + ASN_RRC_SSB_MTC2__periodicity_sf40 = 3, + ASN_RRC_SSB_MTC2__periodicity_sf80 = 4, + ASN_RRC_SSB_MTC2__periodicity_spare3 = 5, + ASN_RRC_SSB_MTC2__periodicity_spare2 = 6, + ASN_RRC_SSB_MTC2__periodicity_spare1 = 7 +} e_ASN_RRC_SSB_MTC2__periodicity; + +/* ASN_RRC_SSB-MTC2 */ +typedef struct ASN_RRC_SSB_MTC2 { + struct ASN_RRC_SSB_MTC2__pci_List { + A_SEQUENCE_OF(ASN_RRC_PhysCellId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pci_List; + long periodicity; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SSB_MTC2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicity_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_MTC2; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SSB_MTC2_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_MTC2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SSB_MTC2_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SSB-ToMeasure.c b/src/asn/rrc/ASN_RRC_SSB-ToMeasure.c new file mode 100644 index 0000000..20ba7c1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-ToMeasure.c @@ -0,0 +1,180 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SSB-ToMeasure.h" + +static int +memb_ASN_RRC_shortBitmap_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 == 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_ASN_RRC_mediumBitmap_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_ASN_RRC_longBitmap_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 == 64)) { + /* Constraint 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_ASN_RRC_shortBitmap_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_ASN_RRC_mediumBitmap_constr_3 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_ASN_RRC_longBitmap_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_SSB_ToMeasure_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_ToMeasure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_ToMeasure, choice.shortBitmap), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_shortBitmap_constr_2, memb_ASN_RRC_shortBitmap_constraint_1 }, + 0, 0, /* No default value */ + "shortBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_ToMeasure, choice.mediumBitmap), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_mediumBitmap_constr_3, memb_ASN_RRC_mediumBitmap_constraint_1 }, + 0, 0, /* No default value */ + "mediumBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SSB_ToMeasure, choice.longBitmap), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_longBitmap_constr_4, memb_ASN_RRC_longBitmap_constraint_1 }, + 0, 0, /* No default value */ + "longBitmap" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SSB_ToMeasure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shortBitmap */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mediumBitmap */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longBitmap */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SSB_ToMeasure_specs_1 = { + sizeof(struct ASN_RRC_SSB_ToMeasure), + offsetof(struct ASN_RRC_SSB_ToMeasure, _asn_ctx), + offsetof(struct ASN_RRC_SSB_ToMeasure, present), + sizeof(((struct ASN_RRC_SSB_ToMeasure *)0)->present), + asn_MAP_ASN_RRC_SSB_ToMeasure_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_ToMeasure = { + "SSB-ToMeasure", + "SSB-ToMeasure", + &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_ASN_RRC_SSB_ToMeasure_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_SSB_ToMeasure_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SSB_ToMeasure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SSB-ToMeasure.h b/src/asn/rrc/ASN_RRC_SSB-ToMeasure.h new file mode 100644 index 0000000..bd32a0c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SSB-ToMeasure.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SSB_ToMeasure_H_ +#define _ASN_RRC_SSB_ToMeasure_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SSB_ToMeasure_PR { + ASN_RRC_SSB_ToMeasure_PR_NOTHING, /* No components present */ + ASN_RRC_SSB_ToMeasure_PR_shortBitmap, + ASN_RRC_SSB_ToMeasure_PR_mediumBitmap, + ASN_RRC_SSB_ToMeasure_PR_longBitmap +} ASN_RRC_SSB_ToMeasure_PR; + +/* ASN_RRC_SSB-ToMeasure */ +typedef struct ASN_RRC_SSB_ToMeasure { + ASN_RRC_SSB_ToMeasure_PR present; + union ASN_RRC_SSB_ToMeasure_u { + BIT_STRING_t shortBitmap; + BIT_STRING_t mediumBitmap; + BIT_STRING_t longBitmap; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SSB_ToMeasure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SSB_ToMeasure; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SSB_ToMeasure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SSB_ToMeasure_1[3]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SSB_ToMeasure_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SSB_ToMeasure_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingInfo.c b/src/asn/rrc/ASN_RRC_SchedulingInfo.c new file mode 100644 index 0000000..588884f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingInfo.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingInfo.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_ASN_RRC_si_BroadcastStatus_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_type_ASN_RRC_si_Periodicity_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_si_BroadcastStatus_value2enum_2[] = { + { 0, 12, "broadcasting" }, + { 1, 15, "notBroadcasting" } +}; +static const unsigned int asn_MAP_ASN_RRC_si_BroadcastStatus_enum2value_2[] = { + 0, /* broadcasting(0) */ + 1 /* notBroadcasting(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_si_BroadcastStatus_specs_2 = { + asn_MAP_ASN_RRC_si_BroadcastStatus_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_si_BroadcastStatus_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_si_BroadcastStatus_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_ASN_RRC_si_BroadcastStatus_2 = { + "si-BroadcastStatus", + "si-BroadcastStatus", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2, + sizeof(asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2) + /sizeof(asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2) + /sizeof(asn_DEF_ASN_RRC_si_BroadcastStatus_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_si_BroadcastStatus_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_si_BroadcastStatus_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_si_Periodicity_value2enum_5[] = { + { 0, 3, "rf8" }, + { 1, 4, "rf16" }, + { 2, 4, "rf32" }, + { 3, 4, "rf64" }, + { 4, 5, "rf128" }, + { 5, 5, "rf256" }, + { 6, 5, "rf512" } +}; +static const unsigned int asn_MAP_ASN_RRC_si_Periodicity_enum2value_5[] = { + 4, /* rf128(4) */ + 1, /* rf16(1) */ + 5, /* rf256(5) */ + 2, /* rf32(2) */ + 6, /* rf512(6) */ + 3, /* rf64(3) */ + 0 /* rf8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_si_Periodicity_specs_5 = { + asn_MAP_ASN_RRC_si_Periodicity_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_si_Periodicity_enum2value_5, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_si_Periodicity_tags_5[] = { + (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_ASN_RRC_si_Periodicity_5 = { + "si-Periodicity", + "si-Periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_si_Periodicity_tags_5, + sizeof(asn_DEF_ASN_RRC_si_Periodicity_tags_5) + /sizeof(asn_DEF_ASN_RRC_si_Periodicity_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_si_Periodicity_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_si_Periodicity_tags_5) + /sizeof(asn_DEF_ASN_RRC_si_Periodicity_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_si_Periodicity_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_si_Periodicity_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingInfo, si_BroadcastStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_si_BroadcastStatus_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-BroadcastStatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingInfo, si_Periodicity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_si_Periodicity_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-Periodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingInfo, sib_MappingInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB_Mapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib-MappingInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SchedulingInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SchedulingInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* si-BroadcastStatus */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* si-Periodicity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sib-MappingInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingInfo_specs_1 = { + sizeof(struct ASN_RRC_SchedulingInfo), + offsetof(struct ASN_RRC_SchedulingInfo, _asn_ctx), + asn_MAP_ASN_RRC_SchedulingInfo_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_ASN_RRC_SchedulingInfo = { + "SchedulingInfo", + "SchedulingInfo", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SchedulingInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SchedulingInfo_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SchedulingInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingInfo.h b/src/asn/rrc/ASN_RRC_SchedulingInfo.h new file mode 100644 index 0000000..c9fa246 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingInfo.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingInfo_H_ +#define _ASN_RRC_SchedulingInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_SIB-Mapping.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SchedulingInfo__si_BroadcastStatus { + ASN_RRC_SchedulingInfo__si_BroadcastStatus_broadcasting = 0, + ASN_RRC_SchedulingInfo__si_BroadcastStatus_notBroadcasting = 1 +} e_ASN_RRC_SchedulingInfo__si_BroadcastStatus; +typedef enum ASN_RRC_SchedulingInfo__si_Periodicity { + ASN_RRC_SchedulingInfo__si_Periodicity_rf8 = 0, + ASN_RRC_SchedulingInfo__si_Periodicity_rf16 = 1, + ASN_RRC_SchedulingInfo__si_Periodicity_rf32 = 2, + ASN_RRC_SchedulingInfo__si_Periodicity_rf64 = 3, + ASN_RRC_SchedulingInfo__si_Periodicity_rf128 = 4, + ASN_RRC_SchedulingInfo__si_Periodicity_rf256 = 5, + ASN_RRC_SchedulingInfo__si_Periodicity_rf512 = 6 +} e_ASN_RRC_SchedulingInfo__si_Periodicity; + +/* ASN_RRC_SchedulingInfo */ +typedef struct ASN_RRC_SchedulingInfo { + long si_BroadcastStatus; + long si_Periodicity; + ASN_RRC_SIB_Mapping_t sib_MappingInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SchedulingInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_si_BroadcastStatus_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_si_Periodicity_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.c b/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.c new file mode 100644 index 0000000..8683824 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.c @@ -0,0 +1,209 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingRequestConfig.h" + +#include "ASN_RRC_SchedulingRequestToAddMod.h" +static int +memb_ASN_RRC_schedulingRequestToAddModList_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 <= 8)) { + /* 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 int +memb_ASN_RRC_schedulingRequestToReleaseList_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 <= 8)) { + /* 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_ASN_RRC_schedulingRequestToAddModList_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_schedulingRequestToReleaseList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_schedulingRequestToAddModList_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_schedulingRequestToReleaseList_constr_4 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_ASN_RRC_schedulingRequestToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SchedulingRequestToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_schedulingRequestToAddModList_specs_2 = { + sizeof(struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToAddModList), + offsetof(struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_schedulingRequestToAddModList_2 = { + "schedulingRequestToAddModList", + "schedulingRequestToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_schedulingRequestToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_schedulingRequestToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_schedulingRequestToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_schedulingRequestToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_schedulingRequestToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToReleaseList), + offsetof(struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_schedulingRequestToReleaseList_4 = { + "schedulingRequestToReleaseList", + "schedulingRequestToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_schedulingRequestToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_schedulingRequestToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_schedulingRequestToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_schedulingRequestToReleaseList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SchedulingRequestConfig, schedulingRequestToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_schedulingRequestToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_schedulingRequestToAddModList_constr_2, memb_ASN_RRC_schedulingRequestToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SchedulingRequestConfig, schedulingRequestToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_schedulingRequestToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_schedulingRequestToReleaseList_constr_4, memb_ASN_RRC_schedulingRequestToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestToReleaseList" + }, +}; +static const int asn_MAP_ASN_RRC_SchedulingRequestConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SchedulingRequestConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingRequestToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* schedulingRequestToReleaseList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestConfig_specs_1 = { + sizeof(struct ASN_RRC_SchedulingRequestConfig), + offsetof(struct ASN_RRC_SchedulingRequestConfig, _asn_ctx), + asn_MAP_ASN_RRC_SchedulingRequestConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SchedulingRequestConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestConfig = { + "SchedulingRequestConfig", + "SchedulingRequestConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SchedulingRequestConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SchedulingRequestConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.h b/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.h new file mode 100644 index 0000000..2c8245e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestConfig.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingRequestConfig_H_ +#define _ASN_RRC_SchedulingRequestConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_SchedulingRequestId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SchedulingRequestToAddMod; + +/* ASN_RRC_SchedulingRequestConfig */ +typedef struct ASN_RRC_SchedulingRequestConfig { + struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SchedulingRequestToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestToAddModList; + struct ASN_RRC_SchedulingRequestConfig__schedulingRequestToReleaseList { + A_SEQUENCE_OF(ASN_RRC_SchedulingRequestId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestToReleaseList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SchedulingRequestConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingRequestConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestId.c b/src/asn/rrc/ASN_RRC_SchedulingRequestId.c new file mode 100644 index 0000000..cb974b9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingRequestId.h" + +int +ASN_RRC_SchedulingRequestId_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_ASN_RRC_SchedulingRequestId_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_ASN_RRC_SchedulingRequestId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestId = { + "SchedulingRequestId", + "SchedulingRequestId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SchedulingRequestId_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingRequestId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingRequestId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingRequestId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SchedulingRequestId_constr_1, ASN_RRC_SchedulingRequestId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestId.h b/src/asn/rrc/ASN_RRC_SchedulingRequestId.h new file mode 100644 index 0000000..80c3ce5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingRequestId_H_ +#define _ASN_RRC_SchedulingRequestId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SchedulingRequestId */ +typedef long ASN_RRC_SchedulingRequestId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SchedulingRequestId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestId; +asn_struct_free_f ASN_RRC_SchedulingRequestId_free; +asn_struct_print_f ASN_RRC_SchedulingRequestId_print; +asn_constr_check_f ASN_RRC_SchedulingRequestId_constraint; +ber_type_decoder_f ASN_RRC_SchedulingRequestId_decode_ber; +der_type_encoder_f ASN_RRC_SchedulingRequestId_encode_der; +xer_type_decoder_f ASN_RRC_SchedulingRequestId_decode_xer; +xer_type_encoder_f ASN_RRC_SchedulingRequestId_encode_xer; +per_type_decoder_f ASN_RRC_SchedulingRequestId_decode_uper; +per_type_encoder_f ASN_RRC_SchedulingRequestId_encode_uper; +per_type_decoder_f ASN_RRC_SchedulingRequestId_decode_aper; +per_type_encoder_f ASN_RRC_SchedulingRequestId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingRequestId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.c b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.c new file mode 100644 index 0000000..e6e0949 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.c @@ -0,0 +1,626 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingRequestResourceConfig.h" + +static int +memb_ASN_RRC_sl2_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl4_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl5_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_sl8_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl10_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_sl16_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl20_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl40_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl80_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl160_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl320_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl640_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 639)) { + /* Constraint 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_ASN_RRC_sl2_constr_8 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_ASN_RRC_sl4_constr_9 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_ASN_RRC_sl5_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl8_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sl10_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl16_constr_13 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_ASN_RRC_sl20_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl40_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl80_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl160_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl320_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl640_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_periodicityAndOffset_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_periodicityAndOffset_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sym2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sym2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sym6or7), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sym6or7" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sl1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl2_constr_8, memb_ASN_RRC_sl2_constraint_4 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl4_constr_9, memb_ASN_RRC_sl4_constraint_4 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl5_constr_10, memb_ASN_RRC_sl5_constraint_4 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl8_constr_11, memb_ASN_RRC_sl8_constraint_4 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl10_constr_12, memb_ASN_RRC_sl10_constraint_4 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl16_constr_13, memb_ASN_RRC_sl16_constraint_4 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl20_constr_14, memb_ASN_RRC_sl20_constraint_4 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl40_constr_15, memb_ASN_RRC_sl40_constraint_4 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl80_constr_16, memb_ASN_RRC_sl80_constraint_4 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl160_constr_17, memb_ASN_RRC_sl160_constraint_4 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl320_constr_18, memb_ASN_RRC_sl320_constraint_4 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl640_constr_19, memb_ASN_RRC_sl640_constraint_4 }, + 0, 0, /* No default value */ + "sl640" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodicityAndOffset_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sym2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sym6or7 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sl1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sl2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sl4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sl5 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sl8 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sl10 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sl16 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sl20 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sl40 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sl80 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sl160 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* sl320 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* sl640 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_periodicityAndOffset_specs_4 = { + sizeof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset), + offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset, present), + sizeof(((struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_periodicityAndOffset_tag2el_4, + 15, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicityAndOffset_4 = { + "periodicityAndOffset", + "periodicityAndOffset", + &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_ASN_RRC_periodicityAndOffset_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_periodicityAndOffset_4, + 15, /* Elements count */ + &asn_SPC_ASN_RRC_periodicityAndOffset_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestResourceConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig, schedulingRequestResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SchedulingRequestResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig, schedulingRequestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestID" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_periodicityAndOffset_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SchedulingRequestResourceConfig, resource), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resource" + }, +}; +static const int asn_MAP_ASN_RRC_SchedulingRequestResourceConfig_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SchedulingRequestResourceConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingRequestResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* schedulingRequestID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* periodicityAndOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* resource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestResourceConfig_specs_1 = { + sizeof(struct ASN_RRC_SchedulingRequestResourceConfig), + offsetof(struct ASN_RRC_SchedulingRequestResourceConfig, _asn_ctx), + asn_MAP_ASN_RRC_SchedulingRequestResourceConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SchedulingRequestResourceConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestResourceConfig = { + "SchedulingRequestResourceConfig", + "SchedulingRequestResourceConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SchedulingRequestResourceConfig_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SchedulingRequestResourceConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.h b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.h new file mode 100644 index 0000000..ae927a3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceConfig.h @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingRequestResourceConfig_H_ +#define _ASN_RRC_SchedulingRequestResourceConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SchedulingRequestResourceId.h" +#include "ASN_RRC_SchedulingRequestId.h" +#include "ASN_RRC_PUCCH-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR { + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sym2, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sym6or7, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl1, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl2, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl4, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl5, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl8, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl16, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl20, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl80, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl160, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl320, + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl640 +} ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR; + +/* ASN_RRC_SchedulingRequestResourceConfig */ +typedef struct ASN_RRC_SchedulingRequestResourceConfig { + ASN_RRC_SchedulingRequestResourceId_t schedulingRequestResourceId; + ASN_RRC_SchedulingRequestId_t schedulingRequestID; + struct ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset { + ASN_RRC_SchedulingRequestResourceConfig__periodicityAndOffset_PR present; + union ASN_RRC_SchedulingRequestResourceConfig__ASN_RRC_periodicityAndOffset_u { + NULL_t sym2; + NULL_t sym6or7; + NULL_t sl1; + long sl2; + long sl4; + long sl5; + long sl8; + long sl10; + long sl16; + long sl20; + long sl40; + long sl80; + long sl160; + long sl320; + long sl640; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *periodicityAndOffset; + ASN_RRC_PUCCH_ResourceId_t *resource; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SchedulingRequestResourceConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestResourceConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestResourceConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestResourceConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingRequestResourceConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.c b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.c new file mode 100644 index 0000000..44f2a32 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingRequestResourceId.h" + +int +ASN_RRC_SchedulingRequestResourceId_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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_SchedulingRequestResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SchedulingRequestResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestResourceId = { + "SchedulingRequestResourceId", + "SchedulingRequestResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SchedulingRequestResourceId_constr_1, ASN_RRC_SchedulingRequestResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.h b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.h new file mode 100644 index 0000000..3dfe324 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingRequestResourceId_H_ +#define _ASN_RRC_SchedulingRequestResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SchedulingRequestResourceId */ +typedef long ASN_RRC_SchedulingRequestResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SchedulingRequestResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestResourceId; +asn_struct_free_f ASN_RRC_SchedulingRequestResourceId_free; +asn_struct_print_f ASN_RRC_SchedulingRequestResourceId_print; +asn_constr_check_f ASN_RRC_SchedulingRequestResourceId_constraint; +ber_type_decoder_f ASN_RRC_SchedulingRequestResourceId_decode_ber; +der_type_encoder_f ASN_RRC_SchedulingRequestResourceId_encode_der; +xer_type_decoder_f ASN_RRC_SchedulingRequestResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_SchedulingRequestResourceId_encode_xer; +per_type_decoder_f ASN_RRC_SchedulingRequestResourceId_decode_uper; +per_type_encoder_f ASN_RRC_SchedulingRequestResourceId_encode_uper; +per_type_decoder_f ASN_RRC_SchedulingRequestResourceId_decode_aper; +per_type_encoder_f ASN_RRC_SchedulingRequestResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingRequestResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.c b/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.c new file mode 100644 index 0000000..12f467e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.c @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SchedulingRequestToAddMod.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_ASN_RRC_sr_ProhibitTimer_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_sr_TransMax_constr_12 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_ASN_RRC_sr_ProhibitTimer_value2enum_3[] = { + { 0, 3, "ms1" }, + { 1, 3, "ms2" }, + { 2, 3, "ms4" }, + { 3, 3, "ms8" }, + { 4, 4, "ms16" }, + { 5, 4, "ms32" }, + { 6, 4, "ms64" }, + { 7, 5, "ms128" } +}; +static const unsigned int asn_MAP_ASN_RRC_sr_ProhibitTimer_enum2value_3[] = { + 0, /* ms1(0) */ + 7, /* ms128(7) */ + 4, /* ms16(4) */ + 1, /* ms2(1) */ + 5, /* ms32(5) */ + 2, /* ms4(2) */ + 6, /* ms64(6) */ + 3 /* ms8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sr_ProhibitTimer_specs_3 = { + asn_MAP_ASN_RRC_sr_ProhibitTimer_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sr_ProhibitTimer_enum2value_3, /* 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_ASN_RRC_sr_ProhibitTimer_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_ASN_RRC_sr_ProhibitTimer_3 = { + "sr-ProhibitTimer", + "sr-ProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3, + sizeof(asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3) + /sizeof(asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3) + /sizeof(asn_DEF_ASN_RRC_sr_ProhibitTimer_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sr_ProhibitTimer_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sr_ProhibitTimer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sr_TransMax_value2enum_12[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n16" }, + { 3, 3, "n32" }, + { 4, 3, "n64" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_sr_TransMax_enum2value_12[] = { + 2, /* n16(2) */ + 3, /* n32(3) */ + 0, /* n4(0) */ + 4, /* n64(4) */ + 1, /* n8(1) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5 /* spare3(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sr_TransMax_specs_12 = { + asn_MAP_ASN_RRC_sr_TransMax_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sr_TransMax_enum2value_12, /* 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_ASN_RRC_sr_TransMax_tags_12[] = { + (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_ASN_RRC_sr_TransMax_12 = { + "sr-TransMax", + "sr-TransMax", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sr_TransMax_tags_12, + sizeof(asn_DEF_ASN_RRC_sr_TransMax_tags_12) + /sizeof(asn_DEF_ASN_RRC_sr_TransMax_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sr_TransMax_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sr_TransMax_tags_12) + /sizeof(asn_DEF_ASN_RRC_sr_TransMax_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sr_TransMax_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sr_TransMax_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestToAddMod, schedulingRequestId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SchedulingRequestToAddMod, sr_ProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sr_ProhibitTimer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sr-ProhibitTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SchedulingRequestToAddMod, sr_TransMax), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sr_TransMax_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sr-TransMax" + }, +}; +static const int asn_MAP_ASN_RRC_SchedulingRequestToAddMod_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SchedulingRequestToAddMod_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* schedulingRequestId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sr-ProhibitTimer */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* sr-TransMax */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestToAddMod_specs_1 = { + sizeof(struct ASN_RRC_SchedulingRequestToAddMod), + offsetof(struct ASN_RRC_SchedulingRequestToAddMod, _asn_ctx), + asn_MAP_ASN_RRC_SchedulingRequestToAddMod_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SchedulingRequestToAddMod_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestToAddMod = { + "SchedulingRequestToAddMod", + "SchedulingRequestToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1, + sizeof(asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1) + /sizeof(asn_DEF_ASN_RRC_SchedulingRequestToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SchedulingRequestToAddMod_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SchedulingRequestToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.h b/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.h new file mode 100644 index 0000000..32d3d2d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SchedulingRequestToAddMod.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SchedulingRequestToAddMod_H_ +#define _ASN_RRC_SchedulingRequestToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SchedulingRequestId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer { + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms1 = 0, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms2 = 1, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms4 = 2, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms8 = 3, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms16 = 4, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms32 = 5, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms64 = 6, + ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer_ms128 = 7 +} e_ASN_RRC_SchedulingRequestToAddMod__sr_ProhibitTimer; +typedef enum ASN_RRC_SchedulingRequestToAddMod__sr_TransMax { + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_n4 = 0, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_n8 = 1, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_n16 = 2, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_n32 = 3, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_n64 = 4, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_spare3 = 5, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_spare2 = 6, + ASN_RRC_SchedulingRequestToAddMod__sr_TransMax_spare1 = 7 +} e_ASN_RRC_SchedulingRequestToAddMod__sr_TransMax; + +/* ASN_RRC_SchedulingRequestToAddMod */ +typedef struct ASN_RRC_SchedulingRequestToAddMod { + ASN_RRC_SchedulingRequestId_t schedulingRequestId; + long *sr_ProhibitTimer; /* OPTIONAL */ + long sr_TransMax; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SchedulingRequestToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sr_ProhibitTimer_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sr_TransMax_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SchedulingRequestToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SchedulingRequestToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SchedulingRequestToAddMod_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SchedulingRequestToAddMod_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ScramblingId.c b/src/asn/rrc/ASN_RRC_ScramblingId.c new file mode 100644 index 0000000..e2b08ca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ScramblingId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ScramblingId.h" + +int +ASN_RRC_ScramblingId_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 <= 1023)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ScramblingId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 1023 } /* (0..1023) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ScramblingId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ScramblingId = { + "ScramblingId", + "ScramblingId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ScramblingId_tags_1, + sizeof(asn_DEF_ASN_RRC_ScramblingId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ScramblingId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ScramblingId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ScramblingId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ScramblingId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ScramblingId_constr_1, ASN_RRC_ScramblingId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ScramblingId.h b/src/asn/rrc/ASN_RRC_ScramblingId.h new file mode 100644 index 0000000..d2ae921 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ScramblingId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ScramblingId_H_ +#define _ASN_RRC_ScramblingId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ScramblingId */ +typedef long ASN_RRC_ScramblingId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ScramblingId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ScramblingId; +asn_struct_free_f ASN_RRC_ScramblingId_free; +asn_struct_print_f ASN_RRC_ScramblingId_print; +asn_constr_check_f ASN_RRC_ScramblingId_constraint; +ber_type_decoder_f ASN_RRC_ScramblingId_decode_ber; +der_type_encoder_f ASN_RRC_ScramblingId_encode_der; +xer_type_decoder_f ASN_RRC_ScramblingId_decode_xer; +xer_type_encoder_f ASN_RRC_ScramblingId_encode_xer; +per_type_decoder_f ASN_RRC_ScramblingId_decode_uper; +per_type_encoder_f ASN_RRC_ScramblingId_encode_uper; +per_type_decoder_f ASN_RRC_ScramblingId_decode_aper; +per_type_encoder_f ASN_RRC_ScramblingId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ScramblingId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SearchSpace.c b/src/asn/rrc/ASN_RRC_SearchSpace.c new file mode 100644 index 0000000..426c7d6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpace.c @@ -0,0 +1,1984 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SearchSpace.h" + +static int +memb_ASN_RRC_sl2_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl4_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl5_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_sl8_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl10_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_sl16_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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_ASN_RRC_sl20_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 19)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl40_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 39)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl80_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 79)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl160_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 159)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl320_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 319)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl640_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 639)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl1280_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 1279)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_sl2560_constraint_4(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 2559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * 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. + */ +/* + * 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. + */ +/* + * 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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_duration_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 >= 2 && value <= 2559)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_monitoringSymbolsWithinSlot_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 == 14)) { + /* Constraint 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_ASN_RRC_sl2_constr_6 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_ASN_RRC_sl4_constr_7 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_ASN_RRC_sl5_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl8_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_sl10_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 9 } /* (0..9) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl16_constr_11 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_ASN_RRC_sl20_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 19 } /* (0..19) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl40_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl80_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 79 } /* (0..79) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl160_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 159 } /* (0..159) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl320_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl640_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 10, 10, 0, 639 } /* (0..639) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl1280_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 11, 11, 0, 1279 } /* (0..1279) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_sl2560_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 2559 } /* (0..2559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_monitoringSlotPeriodicityAndOffset_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 14 } /* (0..14) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_aggregationLevel1_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_aggregationLevel2_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_aggregationLevel4_constr_41 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_aggregationLevel8_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_aggregationLevel16_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_aggregationLevel1_constr_74 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_type_ASN_RRC_aggregationLevel2_constr_77 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_type_ASN_RRC_aggregationLevel4_constr_80 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_type_ASN_RRC_aggregationLevel8_constr_83 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_type_ASN_RRC_aggregationLevel16_constr_86 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_type_ASN_RRC_dummy1_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_dummy2_constr_104 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_type_ASN_RRC_dci_Formats_constr_109 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_type_ASN_RRC_searchSpaceType_constr_68 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_ASN_RRC_duration_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 2, 2559 } /* (2..2559) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_monitoringSymbolsWithinSlot_constr_21 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 14, 14 } /* (SIZE(14..14)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_monitoringSlotPeriodicityAndOffset_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sl1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl2_constr_6, memb_ASN_RRC_sl2_constraint_4 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl4_constr_7, memb_ASN_RRC_sl4_constraint_4 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl5_constr_8, memb_ASN_RRC_sl5_constraint_4 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl8_constr_9, memb_ASN_RRC_sl8_constraint_4 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl10_constr_10, memb_ASN_RRC_sl10_constraint_4 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl16_constr_11, memb_ASN_RRC_sl16_constraint_4 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl20_constr_12, memb_ASN_RRC_sl20_constraint_4 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl40_constr_13, memb_ASN_RRC_sl40_constraint_4 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl80_constr_14, memb_ASN_RRC_sl80_constraint_4 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl160_constr_15, memb_ASN_RRC_sl160_constraint_4 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl320_constr_16, memb_ASN_RRC_sl320_constraint_4 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl640_constr_17, memb_ASN_RRC_sl640_constraint_4 }, + 0, 0, /* No default value */ + "sl640" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl1280), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl1280_constr_18, memb_ASN_RRC_sl1280_constraint_4 }, + 0, 0, /* No default value */ + "sl1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2560), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_sl2560_constr_19, memb_ASN_RRC_sl2560_constraint_4 }, + 0, 0, /* No default value */ + "sl2560" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_monitoringSlotPeriodicityAndOffset_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sl1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sl2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sl4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sl5 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sl8 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sl10 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sl16 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* sl20 */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* sl40 */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* sl80 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* sl160 */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* sl320 */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sl640 */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* sl1280 */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* sl2560 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_monitoringSlotPeriodicityAndOffset_specs_4 = { + sizeof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset), + offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, _asn_ctx), + offsetof(struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset, present), + sizeof(((struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset *)0)->present), + asn_MAP_ASN_RRC_monitoringSlotPeriodicityAndOffset_tag2el_4, + 15, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_monitoringSlotPeriodicityAndOffset_4 = { + "monitoringSlotPeriodicityAndOffset", + "monitoringSlotPeriodicityAndOffset", + &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_ASN_RRC_monitoringSlotPeriodicityAndOffset_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_monitoringSlotPeriodicityAndOffset_4, + 15, /* Elements count */ + &asn_SPC_ASN_RRC_monitoringSlotPeriodicityAndOffset_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel1_value2enum_23[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" }, + { 6, 2, "n6" }, + { 7, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel1_enum2value_23[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5, /* n5(5) */ + 6, /* n6(6) */ + 7 /* n8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel1_specs_23 = { + asn_MAP_ASN_RRC_aggregationLevel1_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel1_enum2value_23, /* 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_ASN_RRC_aggregationLevel1_tags_23[] = { + (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_ASN_RRC_aggregationLevel1_23 = { + "aggregationLevel1", + "aggregationLevel1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel1_tags_23, + sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_23) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel1_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_23) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel1_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel1_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel2_value2enum_32[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" }, + { 6, 2, "n6" }, + { 7, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel2_enum2value_32[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5, /* n5(5) */ + 6, /* n6(6) */ + 7 /* n8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel2_specs_32 = { + asn_MAP_ASN_RRC_aggregationLevel2_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel2_enum2value_32, /* 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_ASN_RRC_aggregationLevel2_tags_32[] = { + (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_ASN_RRC_aggregationLevel2_32 = { + "aggregationLevel2", + "aggregationLevel2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel2_tags_32, + sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_32) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_32[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel2_tags_32, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_32) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_32[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel2_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel2_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel4_value2enum_41[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" }, + { 6, 2, "n6" }, + { 7, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel4_enum2value_41[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5, /* n5(5) */ + 6, /* n6(6) */ + 7 /* n8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel4_specs_41 = { + asn_MAP_ASN_RRC_aggregationLevel4_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel4_enum2value_41, /* 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_ASN_RRC_aggregationLevel4_tags_41[] = { + (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_ASN_RRC_aggregationLevel4_41 = { + "aggregationLevel4", + "aggregationLevel4", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel4_tags_41, + sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_41) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_41[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel4_tags_41, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_41) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_41[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel4_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel4_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel8_value2enum_50[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" }, + { 6, 2, "n6" }, + { 7, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel8_enum2value_50[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5, /* n5(5) */ + 6, /* n6(6) */ + 7 /* n8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel8_specs_50 = { + asn_MAP_ASN_RRC_aggregationLevel8_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel8_enum2value_50, /* 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_ASN_RRC_aggregationLevel8_tags_50[] = { + (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_ASN_RRC_aggregationLevel8_50 = { + "aggregationLevel8", + "aggregationLevel8", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel8_tags_50, + sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_50) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_50[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel8_tags_50, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_50) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_50[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel8_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel8_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel16_value2enum_59[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" }, + { 4, 2, "n4" }, + { 5, 2, "n5" }, + { 6, 2, "n6" }, + { 7, 2, "n8" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel16_enum2value_59[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3, /* n3(3) */ + 4, /* n4(4) */ + 5, /* n5(5) */ + 6, /* n6(6) */ + 7 /* n8(7) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel16_specs_59 = { + asn_MAP_ASN_RRC_aggregationLevel16_value2enum_59, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel16_enum2value_59, /* 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_ASN_RRC_aggregationLevel16_tags_59[] = { + (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_ASN_RRC_aggregationLevel16_59 = { + "aggregationLevel16", + "aggregationLevel16", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel16_tags_59, + sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_59) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_59[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel16_tags_59, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_59) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_59[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel16_constr_59, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel16_specs_59 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nrofCandidates_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, aggregationLevel1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, aggregationLevel2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel2_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, aggregationLevel4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel4_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, aggregationLevel8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel8_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel8" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, aggregationLevel16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel16_59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel16" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nrofCandidates_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nrofCandidates_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aggregationLevel1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aggregationLevel2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aggregationLevel4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* aggregationLevel8 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* aggregationLevel16 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nrofCandidates_specs_22 = { + sizeof(struct ASN_RRC_SearchSpace__nrofCandidates), + offsetof(struct ASN_RRC_SearchSpace__nrofCandidates, _asn_ctx), + asn_MAP_ASN_RRC_nrofCandidates_tag2el_22, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofCandidates_22 = { + "nrofCandidates", + "nrofCandidates", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nrofCandidates_tags_22, + sizeof(asn_DEF_ASN_RRC_nrofCandidates_tags_22) + /sizeof(asn_DEF_ASN_RRC_nrofCandidates_tags_22[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofCandidates_tags_22, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofCandidates_tags_22) + /sizeof(asn_DEF_ASN_RRC_nrofCandidates_tags_22[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nrofCandidates_22, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_nrofCandidates_specs_22 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dci_Format0_0_AndFormat1_0_specs_70 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format0_0_AndFormat1_0), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format0_0_AndFormat1_0, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_70 = { + "dci-Format0-0-AndFormat1-0", + "dci-Format0-0-AndFormat1-0", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70, + sizeof(asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70) + /sizeof(asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70) + /sizeof(asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_tags_70[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_dci_Format0_0_AndFormat1_0_specs_70 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel1_value2enum_74[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel1_enum2value_74[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel1_specs_74 = { + asn_MAP_ASN_RRC_aggregationLevel1_value2enum_74, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel1_enum2value_74, /* 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_ASN_RRC_aggregationLevel1_tags_74[] = { + (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_ASN_RRC_aggregationLevel1_74 = { + "aggregationLevel1", + "aggregationLevel1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel1_tags_74, + sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_74) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_74[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel1_tags_74, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_74) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel1_tags_74[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel1_constr_74, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel1_specs_74 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel2_value2enum_77[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel2_enum2value_77[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel2_specs_77 = { + asn_MAP_ASN_RRC_aggregationLevel2_value2enum_77, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel2_enum2value_77, /* 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_ASN_RRC_aggregationLevel2_tags_77[] = { + (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_ASN_RRC_aggregationLevel2_77 = { + "aggregationLevel2", + "aggregationLevel2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel2_tags_77, + sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_77) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_77[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel2_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_77) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel2_tags_77[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel2_constr_77, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel2_specs_77 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel4_value2enum_80[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel4_enum2value_80[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel4_specs_80 = { + asn_MAP_ASN_RRC_aggregationLevel4_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel4_enum2value_80, /* 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_ASN_RRC_aggregationLevel4_tags_80[] = { + (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_ASN_RRC_aggregationLevel4_80 = { + "aggregationLevel4", + "aggregationLevel4", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel4_tags_80, + sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_80) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_80[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel4_tags_80, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_80) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel4_tags_80[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel4_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel4_specs_80 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel8_value2enum_83[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel8_enum2value_83[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel8_specs_83 = { + asn_MAP_ASN_RRC_aggregationLevel8_value2enum_83, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel8_enum2value_83, /* 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_ASN_RRC_aggregationLevel8_tags_83[] = { + (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_ASN_RRC_aggregationLevel8_83 = { + "aggregationLevel8", + "aggregationLevel8", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel8_tags_83, + sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_83) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_83[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel8_tags_83, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_83) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel8_tags_83[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel8_constr_83, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel8_specs_83 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_aggregationLevel16_value2enum_86[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_aggregationLevel16_enum2value_86[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_aggregationLevel16_specs_86 = { + asn_MAP_ASN_RRC_aggregationLevel16_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_aggregationLevel16_enum2value_86, /* 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_ASN_RRC_aggregationLevel16_tags_86[] = { + (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_ASN_RRC_aggregationLevel16_86 = { + "aggregationLevel16", + "aggregationLevel16", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_aggregationLevel16_tags_86, + sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_86) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_86[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_aggregationLevel16_tags_86, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_86) + /sizeof(asn_DEF_ASN_RRC_aggregationLevel16_tags_86[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_aggregationLevel16_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_aggregationLevel16_specs_86 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_nrofCandidates_SFI_73[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel1_74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel1" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel2_77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel2" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel4_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel4" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel8_83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel8" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_aggregationLevel16_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel16" + }, +}; +static const int asn_MAP_ASN_RRC_nrofCandidates_SFI_oms_73[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_nrofCandidates_SFI_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* aggregationLevel1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* aggregationLevel2 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* aggregationLevel4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* aggregationLevel8 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* aggregationLevel16 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nrofCandidates_SFI_specs_73 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, _asn_ctx), + asn_MAP_ASN_RRC_nrofCandidates_SFI_tag2el_73, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_nrofCandidates_SFI_oms_73, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofCandidates_SFI_73 = { + "nrofCandidates-SFI", + "nrofCandidates-SFI", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73, + sizeof(asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73) + /sizeof(asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73) + /sizeof(asn_DEF_ASN_RRC_nrofCandidates_SFI_tags_73[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_nrofCandidates_SFI_73, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_nrofCandidates_SFI_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dci_Format2_0_72[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0, nrofCandidates_SFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_nrofCandidates_SFI_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCandidates-SFI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dci_Format2_0_tags_72[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_dci_Format2_0_tag2el_72[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofCandidates-SFI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dci_Format2_0_specs_72 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0, _asn_ctx), + asn_MAP_ASN_RRC_dci_Format2_0_tag2el_72, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Format2_0_72 = { + "dci-Format2-0", + "dci-Format2-0", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dci_Format2_0_tags_72, + sizeof(asn_DEF_ASN_RRC_dci_Format2_0_tags_72) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_0_tags_72[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Format2_0_tags_72, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Format2_0_tags_72) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_0_tags_72[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_dci_Format2_0_72, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_dci_Format2_0_specs_72 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dci_Format2_1_tags_90[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dci_Format2_1_specs_90 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_1), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_1, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Format2_1_90 = { + "dci-Format2-1", + "dci-Format2-1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dci_Format2_1_tags_90, + sizeof(asn_DEF_ASN_RRC_dci_Format2_1_tags_90) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_1_tags_90[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Format2_1_tags_90, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Format2_1_tags_90) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_1_tags_90[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_dci_Format2_1_specs_90 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dci_Format2_2_tags_92[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dci_Format2_2_specs_92 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_2), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_2, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 0, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Format2_2_92 = { + "dci-Format2-2", + "dci-Format2-2", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dci_Format2_2_tags_92, + sizeof(asn_DEF_ASN_RRC_dci_Format2_2_tags_92) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_2_tags_92[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Format2_2_tags_92, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Format2_2_tags_92) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_2_tags_92[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_dci_Format2_2_specs_92 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy1_value2enum_95[] = { + { 0, 3, "sl1" }, + { 1, 3, "sl2" }, + { 2, 3, "sl4" }, + { 3, 3, "sl5" }, + { 4, 3, "sl8" }, + { 5, 4, "sl10" }, + { 6, 4, "sl16" }, + { 7, 4, "sl20" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy1_enum2value_95[] = { + 0, /* sl1(0) */ + 5, /* sl10(5) */ + 6, /* sl16(6) */ + 1, /* sl2(1) */ + 7, /* sl20(7) */ + 2, /* sl4(2) */ + 3, /* sl5(3) */ + 4 /* sl8(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy1_specs_95 = { + asn_MAP_ASN_RRC_dummy1_value2enum_95, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy1_enum2value_95, /* 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_ASN_RRC_dummy1_tags_95[] = { + (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_ASN_RRC_dummy1_95 = { + "dummy1", + "dummy1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy1_tags_95, + sizeof(asn_DEF_ASN_RRC_dummy1_tags_95) + /sizeof(asn_DEF_ASN_RRC_dummy1_tags_95[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy1_tags_95, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy1_tags_95) + /sizeof(asn_DEF_ASN_RRC_dummy1_tags_95[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy1_constr_95, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy1_specs_95 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy2_value2enum_104[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy2_enum2value_104[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy2_specs_104 = { + asn_MAP_ASN_RRC_dummy2_value2enum_104, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy2_enum2value_104, /* 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_ASN_RRC_dummy2_tags_104[] = { + (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_ASN_RRC_dummy2_104 = { + "dummy2", + "dummy2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy2_tags_104, + sizeof(asn_DEF_ASN_RRC_dummy2_tags_104) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_104[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy2_tags_104, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy2_tags_104) + /sizeof(asn_DEF_ASN_RRC_dummy2_tags_104[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy2_constr_104, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy2_specs_104 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_dci_Format2_3_94[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3, dummy1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy1_95, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3, dummy2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy2_104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy2" + }, +}; +static const int asn_MAP_ASN_RRC_dci_Format2_3_oms_94[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dci_Format2_3_tags_94[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_dci_Format2_3_tag2el_94[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dummy1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dummy2 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_dci_Format2_3_specs_94 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3, _asn_ctx), + asn_MAP_ASN_RRC_dci_Format2_3_tag2el_94, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_dci_Format2_3_oms_94, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Format2_3_94 = { + "dci-Format2-3", + "dci-Format2-3", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_dci_Format2_3_tags_94, + sizeof(asn_DEF_ASN_RRC_dci_Format2_3_tags_94) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_3_tags_94[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Format2_3_tags_94, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Format2_3_tags_94) + /sizeof(asn_DEF_ASN_RRC_dci_Format2_3_tags_94[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_dci_Format2_3_94, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_dci_Format2_3_specs_94 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_common_69[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, dci_Format0_0_AndFormat1_0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_dci_Format0_0_AndFormat1_0_70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format0-0-AndFormat1-0" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, dci_Format2_0), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_dci_Format2_0_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-0" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, dci_Format2_1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_dci_Format2_1_90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-1" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, dci_Format2_2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_dci_Format2_2_92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-2" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, dci_Format2_3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_dci_Format2_3_94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-3" + }, +}; +static const int asn_MAP_ASN_RRC_common_oms_69[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_common_tags_69[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_common_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dci-Format0-0-AndFormat1-0 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dci-Format2-0 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dci-Format2-1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* dci-Format2-2 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* dci-Format2-3 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_common_specs_69 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__common), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__common, _asn_ctx), + asn_MAP_ASN_RRC_common_tag2el_69, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_common_oms_69, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_common_69 = { + "common", + "common", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_common_tags_69, + sizeof(asn_DEF_ASN_RRC_common_tags_69) + /sizeof(asn_DEF_ASN_RRC_common_tags_69[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_common_tags_69, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_common_tags_69) + /sizeof(asn_DEF_ASN_RRC_common_tags_69[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_common_69, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_common_specs_69 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dci_Formats_value2enum_109[] = { + { 0, 18, "formats0-0-And-1-0" }, + { 1, 18, "formats0-1-And-1-1" } +}; +static const unsigned int asn_MAP_ASN_RRC_dci_Formats_enum2value_109[] = { + 0, /* formats0-0-And-1-0(0) */ + 1 /* formats0-1-And-1-1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dci_Formats_specs_109 = { + asn_MAP_ASN_RRC_dci_Formats_value2enum_109, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dci_Formats_enum2value_109, /* 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_ASN_RRC_dci_Formats_tags_109[] = { + (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_ASN_RRC_dci_Formats_109 = { + "dci-Formats", + "dci-Formats", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dci_Formats_tags_109, + sizeof(asn_DEF_ASN_RRC_dci_Formats_tags_109) + /sizeof(asn_DEF_ASN_RRC_dci_Formats_tags_109[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dci_Formats_tags_109, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dci_Formats_tags_109) + /sizeof(asn_DEF_ASN_RRC_dci_Formats_tags_109[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dci_Formats_constr_109, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dci_Formats_specs_109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ue_Specific_108[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__ue_Specific, dci_Formats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dci_Formats_109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ue_Specific_tags_108[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ue_Specific_tag2el_108[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dci-Formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ue_Specific_specs_108 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType__ue_Specific), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType__ue_Specific, _asn_ctx), + asn_MAP_ASN_RRC_ue_Specific_tag2el_108, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ue_Specific_108 = { + "ue-Specific", + "ue-Specific", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ue_Specific_tags_108, + sizeof(asn_DEF_ASN_RRC_ue_Specific_tags_108) + /sizeof(asn_DEF_ASN_RRC_ue_Specific_tags_108[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ue_Specific_tags_108, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ue_Specific_tags_108) + /sizeof(asn_DEF_ASN_RRC_ue_Specific_tags_108[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ue_Specific_108, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ue_Specific_specs_108 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_searchSpaceType_68[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType, choice.common), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_common_69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "common" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SearchSpace__searchSpaceType, choice.ue_Specific), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_ue_Specific_108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Specific" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_searchSpaceType_tag2el_68[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* common */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ue-Specific */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_searchSpaceType_specs_68 = { + sizeof(struct ASN_RRC_SearchSpace__searchSpaceType), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType, _asn_ctx), + offsetof(struct ASN_RRC_SearchSpace__searchSpaceType, present), + sizeof(((struct ASN_RRC_SearchSpace__searchSpaceType *)0)->present), + asn_MAP_ASN_RRC_searchSpaceType_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_ASN_RRC_searchSpaceType_68 = { + "searchSpaceType", + "searchSpaceType", + &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_ASN_RRC_searchSpaceType_constr_68, CHOICE_constraint }, + asn_MBR_ASN_RRC_searchSpaceType_68, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_searchSpaceType_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SearchSpace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SearchSpace, searchSpaceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceId" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_SearchSpace, controlResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetId" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SearchSpace, monitoringSlotPeriodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_monitoringSlotPeriodicityAndOffset_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "monitoringSlotPeriodicityAndOffset" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SearchSpace, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_duration_constr_20, memb_ASN_RRC_duration_constraint_1 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SearchSpace, monitoringSymbolsWithinSlot), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_monitoringSymbolsWithinSlot_constr_21, memb_ASN_RRC_monitoringSymbolsWithinSlot_constraint_1 }, + 0, 0, /* No default value */ + "monitoringSymbolsWithinSlot" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SearchSpace, nrofCandidates), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_nrofCandidates_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCandidates" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SearchSpace, searchSpaceType), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_searchSpaceType_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceType" + }, +}; +static const int asn_MAP_ASN_RRC_SearchSpace_oms_1[] = { 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SearchSpace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SearchSpace_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* searchSpaceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* controlResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* monitoringSlotPeriodicityAndOffset */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* duration */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* monitoringSymbolsWithinSlot */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* nrofCandidates */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* searchSpaceType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SearchSpace_specs_1 = { + sizeof(struct ASN_RRC_SearchSpace), + offsetof(struct ASN_RRC_SearchSpace, _asn_ctx), + asn_MAP_ASN_RRC_SearchSpace_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SearchSpace_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpace = { + "SearchSpace", + "SearchSpace", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SearchSpace_tags_1, + sizeof(asn_DEF_ASN_RRC_SearchSpace_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpace_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SearchSpace_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SearchSpace_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpace_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SearchSpace_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_SearchSpace_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SearchSpace.h b/src/asn/rrc/ASN_RRC_SearchSpace.h new file mode 100644 index 0000000..d08768a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpace.h @@ -0,0 +1,288 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SearchSpace_H_ +#define _ASN_RRC_SearchSpace_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SearchSpaceId.h" +#include "ASN_RRC_ControlResourceSetId.h" +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR { + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_NOTHING, /* No components present */ + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl4, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl8, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl10, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl16, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl20, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl40, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl80, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl160, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl320, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl640, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1280, + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2560 +} ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR; +typedef enum ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1 { + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n0 = 0, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n1 = 1, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n2 = 2, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n3 = 3, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n4 = 4, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n5 = 5, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n6 = 6, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1_n8 = 7 +} e_ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel1; +typedef enum ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2 { + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n0 = 0, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n1 = 1, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n2 = 2, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n3 = 3, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n4 = 4, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n5 = 5, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n6 = 6, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2_n8 = 7 +} e_ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel2; +typedef enum ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4 { + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n0 = 0, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n1 = 1, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n2 = 2, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n3 = 3, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n4 = 4, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n5 = 5, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n6 = 6, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4_n8 = 7 +} e_ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel4; +typedef enum ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8 { + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n0 = 0, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n1 = 1, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n2 = 2, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n3 = 3, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n4 = 4, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n5 = 5, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n6 = 6, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8_n8 = 7 +} e_ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel8; +typedef enum ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16 { + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n0 = 0, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n1 = 1, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n2 = 2, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n3 = 3, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n4 = 4, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n5 = 5, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n6 = 6, + ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16_n8 = 7 +} e_ASN_RRC_SearchSpace__nrofCandidates__aggregationLevel16; +typedef enum ASN_RRC_SearchSpace__searchSpaceType_PR { + ASN_RRC_SearchSpace__searchSpaceType_PR_NOTHING, /* No components present */ + ASN_RRC_SearchSpace__searchSpaceType_PR_common, + ASN_RRC_SearchSpace__searchSpaceType_PR_ue_Specific +} ASN_RRC_SearchSpace__searchSpaceType_PR; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl2 = 1, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl4 = 2, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl5 = 3, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl8 = 4, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl10 = 5, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl16 = 6, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl20 = 7 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2 { + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n1 = 0, + ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n2 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2; +typedef enum ASN_RRC_SearchSpace__searchSpaceType__ue_Specific__dci_Formats { + ASN_RRC_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0 = 0, + ASN_RRC_SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1 = 1 +} e_ASN_RRC_SearchSpace__searchSpaceType__ue_Specific__dci_Formats; + +/* ASN_RRC_SearchSpace */ +typedef struct ASN_RRC_SearchSpace { + ASN_RRC_SearchSpaceId_t searchSpaceId; + ASN_RRC_ControlResourceSetId_t *controlResourceSetId; /* OPTIONAL */ + struct ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset { + ASN_RRC_SearchSpace__monitoringSlotPeriodicityAndOffset_PR present; + union ASN_RRC_SearchSpace__ASN_RRC_monitoringSlotPeriodicityAndOffset_u { + NULL_t sl1; + long sl2; + long sl4; + long sl5; + long sl8; + long sl10; + long sl16; + long sl20; + long sl40; + long sl80; + long sl160; + long sl320; + long sl640; + long sl1280; + long sl2560; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *monitoringSlotPeriodicityAndOffset; + long *duration; /* OPTIONAL */ + BIT_STRING_t *monitoringSymbolsWithinSlot; /* OPTIONAL */ + struct ASN_RRC_SearchSpace__nrofCandidates { + long aggregationLevel1; + long aggregationLevel2; + long aggregationLevel4; + long aggregationLevel8; + long aggregationLevel16; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nrofCandidates; + struct ASN_RRC_SearchSpace__searchSpaceType { + ASN_RRC_SearchSpace__searchSpaceType_PR present; + union ASN_RRC_SearchSpace__ASN_RRC_searchSpaceType_u { + struct ASN_RRC_SearchSpace__searchSpaceType__common { + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format0_0_AndFormat1_0 { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dci_Format0_0_AndFormat1_0; + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0 { + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI { + long *aggregationLevel1; /* OPTIONAL */ + long *aggregationLevel2; /* OPTIONAL */ + long *aggregationLevel4; /* OPTIONAL */ + long *aggregationLevel8; /* OPTIONAL */ + long *aggregationLevel16; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } nrofCandidates_SFI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dci_Format2_0; + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_1 { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dci_Format2_1; + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_2 { + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dci_Format2_2; + struct ASN_RRC_SearchSpace__searchSpaceType__common__dci_Format2_3 { + long *dummy1; /* OPTIONAL */ + long dummy2; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dci_Format2_3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *common; + struct ASN_RRC_SearchSpace__searchSpaceType__ue_Specific { + long dci_Formats; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ue_Specific; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchSpaceType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SearchSpace_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel1_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel2_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel4_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel8_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel16_59; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel1_74; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel2_77; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel4_80; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel8_83; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aggregationLevel16_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy1_95; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy2_104; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dci_Formats_109; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpace; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SearchSpace_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SearchSpace_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SearchSpace_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SearchSpaceId.c b/src/asn/rrc/ASN_RRC_SearchSpaceId.c new file mode 100644 index 0000000..d4b429e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpaceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SearchSpaceId.h" + +int +ASN_RRC_SearchSpaceId_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 <= 39)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SearchSpaceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 39 } /* (0..39) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SearchSpaceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpaceId = { + "SearchSpaceId", + "SearchSpaceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SearchSpaceId_tags_1, + sizeof(asn_DEF_ASN_RRC_SearchSpaceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpaceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SearchSpaceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SearchSpaceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpaceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SearchSpaceId_constr_1, ASN_RRC_SearchSpaceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SearchSpaceId.h b/src/asn/rrc/ASN_RRC_SearchSpaceId.h new file mode 100644 index 0000000..712824f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpaceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SearchSpaceId_H_ +#define _ASN_RRC_SearchSpaceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SearchSpaceId */ +typedef long ASN_RRC_SearchSpaceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SearchSpaceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpaceId; +asn_struct_free_f ASN_RRC_SearchSpaceId_free; +asn_struct_print_f ASN_RRC_SearchSpaceId_print; +asn_constr_check_f ASN_RRC_SearchSpaceId_constraint; +ber_type_decoder_f ASN_RRC_SearchSpaceId_decode_ber; +der_type_encoder_f ASN_RRC_SearchSpaceId_encode_der; +xer_type_decoder_f ASN_RRC_SearchSpaceId_decode_xer; +xer_type_encoder_f ASN_RRC_SearchSpaceId_encode_xer; +per_type_decoder_f ASN_RRC_SearchSpaceId_decode_uper; +per_type_encoder_f ASN_RRC_SearchSpaceId_encode_uper; +per_type_decoder_f ASN_RRC_SearchSpaceId_decode_aper; +per_type_encoder_f ASN_RRC_SearchSpaceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SearchSpaceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SearchSpaceZero.c b/src/asn/rrc/ASN_RRC_SearchSpaceZero.c new file mode 100644 index 0000000..d1ec8f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpaceZero.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SearchSpaceZero.h" + +int +ASN_RRC_SearchSpaceZero_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_ASN_RRC_SearchSpaceZero_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_ASN_RRC_SearchSpaceZero_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpaceZero = { + "SearchSpaceZero", + "SearchSpaceZero", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SearchSpaceZero_tags_1, + sizeof(asn_DEF_ASN_RRC_SearchSpaceZero_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpaceZero_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SearchSpaceZero_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SearchSpaceZero_tags_1) + /sizeof(asn_DEF_ASN_RRC_SearchSpaceZero_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SearchSpaceZero_constr_1, ASN_RRC_SearchSpaceZero_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SearchSpaceZero.h b/src/asn/rrc/ASN_RRC_SearchSpaceZero.h new file mode 100644 index 0000000..1b7b655 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SearchSpaceZero.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SearchSpaceZero_H_ +#define _ASN_RRC_SearchSpaceZero_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SearchSpaceZero */ +typedef long ASN_RRC_SearchSpaceZero_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SearchSpaceZero_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SearchSpaceZero; +asn_struct_free_f ASN_RRC_SearchSpaceZero_free; +asn_struct_print_f ASN_RRC_SearchSpaceZero_print; +asn_constr_check_f ASN_RRC_SearchSpaceZero_constraint; +ber_type_decoder_f ASN_RRC_SearchSpaceZero_decode_ber; +der_type_encoder_f ASN_RRC_SearchSpaceZero_encode_der; +xer_type_decoder_f ASN_RRC_SearchSpaceZero_decode_xer; +xer_type_encoder_f ASN_RRC_SearchSpaceZero_encode_xer; +per_type_decoder_f ASN_RRC_SearchSpaceZero_decode_uper; +per_type_encoder_f ASN_RRC_SearchSpaceZero_encode_uper; +per_type_decoder_f ASN_RRC_SearchSpaceZero_decode_aper; +per_type_encoder_f ASN_RRC_SearchSpaceZero_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SearchSpaceZero_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.c b/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.c new file mode 100644 index 0000000..ca7475a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityAlgorithmConfig.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityAlgorithmConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityAlgorithmConfig, cipheringAlgorithm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CipheringAlgorithm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cipheringAlgorithm" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SecurityAlgorithmConfig, integrityProtAlgorithm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IntegrityProtAlgorithm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtAlgorithm" + }, +}; +static const int asn_MAP_ASN_RRC_SecurityAlgorithmConfig_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityAlgorithmConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cipheringAlgorithm */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* integrityProtAlgorithm */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityAlgorithmConfig_specs_1 = { + sizeof(struct ASN_RRC_SecurityAlgorithmConfig), + offsetof(struct ASN_RRC_SecurityAlgorithmConfig, _asn_ctx), + asn_MAP_ASN_RRC_SecurityAlgorithmConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SecurityAlgorithmConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityAlgorithmConfig = { + "SecurityAlgorithmConfig", + "SecurityAlgorithmConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityAlgorithmConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityAlgorithmConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityAlgorithmConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.h b/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.h new file mode 100644 index 0000000..6df75eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityAlgorithmConfig.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityAlgorithmConfig_H_ +#define _ASN_RRC_SecurityAlgorithmConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_CipheringAlgorithm.h" +#include "ASN_RRC_IntegrityProtAlgorithm.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SecurityAlgorithmConfig */ +typedef struct ASN_RRC_SecurityAlgorithmConfig { + ASN_RRC_CipheringAlgorithm_t cipheringAlgorithm; + ASN_RRC_IntegrityProtAlgorithm_t *integrityProtAlgorithm; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityAlgorithmConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityAlgorithmConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityAlgorithmConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityAlgorithmConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityAlgorithmConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityConfig.c b/src/asn/rrc/ASN_RRC_SecurityConfig.c new file mode 100644 index 0000000..a90d2b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityConfig.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityConfig.h" + +#include "ASN_RRC_SecurityAlgorithmConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_keyToUse_constr_3 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_ASN_RRC_keyToUse_value2enum_3[] = { + { 0, 6, "master" }, + { 1, 9, "secondary" } +}; +static const unsigned int asn_MAP_ASN_RRC_keyToUse_enum2value_3[] = { + 0, /* master(0) */ + 1 /* secondary(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_keyToUse_specs_3 = { + asn_MAP_ASN_RRC_keyToUse_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_keyToUse_enum2value_3, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_keyToUse_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_ASN_RRC_keyToUse_3 = { + "keyToUse", + "keyToUse", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_keyToUse_tags_3, + sizeof(asn_DEF_ASN_RRC_keyToUse_tags_3) + /sizeof(asn_DEF_ASN_RRC_keyToUse_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_keyToUse_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_keyToUse_tags_3) + /sizeof(asn_DEF_ASN_RRC_keyToUse_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_keyToUse_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_keyToUse_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SecurityConfig, securityAlgorithmConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityAlgorithmConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityAlgorithmConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SecurityConfig, keyToUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_keyToUse_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "keyToUse" + }, +}; +static const int asn_MAP_ASN_RRC_SecurityConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityAlgorithmConfig */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* keyToUse */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityConfig_specs_1 = { + sizeof(struct ASN_RRC_SecurityConfig), + offsetof(struct ASN_RRC_SecurityConfig, _asn_ctx), + asn_MAP_ASN_RRC_SecurityConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SecurityConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityConfig = { + "SecurityConfig", + "SecurityConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityConfig.h b/src/asn/rrc/ASN_RRC_SecurityConfig.h new file mode 100644 index 0000000..36bf6b3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityConfig.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityConfig_H_ +#define _ASN_RRC_SecurityConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SecurityConfig__keyToUse { + ASN_RRC_SecurityConfig__keyToUse_master = 0, + ASN_RRC_SecurityConfig__keyToUse_secondary = 1 +} e_ASN_RRC_SecurityConfig__keyToUse; + +/* Forward declarations */ +struct ASN_RRC_SecurityAlgorithmConfig; + +/* ASN_RRC_SecurityConfig */ +typedef struct ASN_RRC_SecurityConfig { + struct ASN_RRC_SecurityAlgorithmConfig *securityAlgorithmConfig; /* OPTIONAL */ + long *keyToUse; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_keyToUse_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityConfigSMC.c b/src/asn/rrc/ASN_RRC_SecurityConfigSMC.c new file mode 100644 index 0000000..21d37ff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityConfigSMC.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityConfigSMC.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityConfigSMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityConfigSMC, securityAlgorithmConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityAlgorithmConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityAlgorithmConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityConfigSMC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* securityAlgorithmConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityConfigSMC_specs_1 = { + sizeof(struct ASN_RRC_SecurityConfigSMC), + offsetof(struct ASN_RRC_SecurityConfigSMC, _asn_ctx), + asn_MAP_ASN_RRC_SecurityConfigSMC_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_ASN_RRC_SecurityConfigSMC = { + "SecurityConfigSMC", + "SecurityConfigSMC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityConfigSMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityConfigSMC_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityConfigSMC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityConfigSMC.h b/src/asn/rrc/ASN_RRC_SecurityConfigSMC.h new file mode 100644 index 0000000..eabd488 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityConfigSMC.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityConfigSMC_H_ +#define _ASN_RRC_SecurityConfigSMC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SecurityAlgorithmConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SecurityConfigSMC */ +typedef struct ASN_RRC_SecurityConfigSMC { + ASN_RRC_SecurityAlgorithmConfig_t securityAlgorithmConfig; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityConfigSMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityConfigSMC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityConfigSMC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityConfigSMC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityConfigSMC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.c b/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.c new file mode 100644 index 0000000..8018ae1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeCommand-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_SecurityModeCommand_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SecurityModeCommand_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeCommand_IEs, securityConfigSMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityConfigSMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityConfigSMC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SecurityModeCommand_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SecurityModeCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SecurityModeCommand_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeCommand_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityConfigSMC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeCommand_IEs_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeCommand_IEs), + offsetof(struct ASN_RRC_SecurityModeCommand_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeCommand_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SecurityModeCommand_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeCommand_IEs = { + "SecurityModeCommand-IEs", + "SecurityModeCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeCommand_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.h b/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.h new file mode 100644 index 0000000..f39139b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeCommand-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeCommand_IEs_H_ +#define _ASN_RRC_SecurityModeCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SecurityConfigSMC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SecurityModeCommand-IEs */ +typedef struct ASN_RRC_SecurityModeCommand_IEs { + ASN_RRC_SecurityConfigSMC_t securityConfigSMC; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_SecurityModeCommand_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeCommand_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeCommand_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeCommand_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeCommand.c b/src/asn/rrc/ASN_RRC_SecurityModeCommand.c new file mode 100644 index 0000000..b3ede61 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeCommand.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeCommand.h" + +#include "ASN_RRC_SecurityModeCommand-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_SecurityModeCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SecurityModeCommand__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeCommand__criticalExtensions, choice.securityModeCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeCommand" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityModeCommand */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_SecurityModeCommand__criticalExtensions), + offsetof(struct ASN_RRC_SecurityModeCommand__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SecurityModeCommand__criticalExtensions, present), + sizeof(((struct ASN_RRC_SecurityModeCommand__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeCommand, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeCommand_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeCommand), + offsetof(struct ASN_RRC_SecurityModeCommand, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeCommand_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeCommand = { + "SecurityModeCommand", + "SecurityModeCommand", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeCommand_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeCommand_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeCommand.h b/src/asn/rrc/ASN_RRC_SecurityModeCommand.h new file mode 100644 index 0000000..5153ab0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeCommand.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeCommand_H_ +#define _ASN_RRC_SecurityModeCommand_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SecurityModeCommand__criticalExtensions_PR { + ASN_RRC_SecurityModeCommand__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SecurityModeCommand__criticalExtensions_PR_securityModeCommand, + ASN_RRC_SecurityModeCommand__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SecurityModeCommand__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SecurityModeCommand_IEs; + +/* ASN_RRC_SecurityModeCommand */ +typedef struct ASN_RRC_SecurityModeCommand { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_SecurityModeCommand__criticalExtensions { + ASN_RRC_SecurityModeCommand__criticalExtensions_PR present; + union ASN_RRC_SecurityModeCommand__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SecurityModeCommand_IEs *securityModeCommand; + struct ASN_RRC_SecurityModeCommand__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeCommand_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeCommand_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.c b/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.c new file mode 100644 index 0000000..8559559 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeComplete-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_SecurityModeComplete_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SecurityModeComplete_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SecurityModeComplete_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SecurityModeComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SecurityModeComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeComplete_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeComplete_IEs_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeComplete_IEs), + offsetof(struct ASN_RRC_SecurityModeComplete_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SecurityModeComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeComplete_IEs = { + "SecurityModeComplete-IEs", + "SecurityModeComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.h b/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.h new file mode 100644 index 0000000..3fd0b50 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeComplete-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeComplete_IEs_H_ +#define _ASN_RRC_SecurityModeComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SecurityModeComplete-IEs */ +typedef struct ASN_RRC_SecurityModeComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_SecurityModeComplete_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeComplete_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeComplete.c b/src/asn/rrc/ASN_RRC_SecurityModeComplete.c new file mode 100644 index 0000000..7787107 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeComplete.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeComplete.h" + +#include "ASN_RRC_SecurityModeComplete-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_SecurityModeComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SecurityModeComplete__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeComplete__criticalExtensions, choice.securityModeComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityModeComplete */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_SecurityModeComplete__criticalExtensions), + offsetof(struct ASN_RRC_SecurityModeComplete__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SecurityModeComplete__criticalExtensions, present), + sizeof(((struct ASN_RRC_SecurityModeComplete__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeComplete_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeComplete_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeComplete), + offsetof(struct ASN_RRC_SecurityModeComplete, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeComplete_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeComplete = { + "SecurityModeComplete", + "SecurityModeComplete", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeComplete_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeComplete_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeComplete.h b/src/asn/rrc/ASN_RRC_SecurityModeComplete.h new file mode 100644 index 0000000..8e17c08 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeComplete.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeComplete_H_ +#define _ASN_RRC_SecurityModeComplete_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SecurityModeComplete__criticalExtensions_PR { + ASN_RRC_SecurityModeComplete__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SecurityModeComplete__criticalExtensions_PR_securityModeComplete, + ASN_RRC_SecurityModeComplete__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SecurityModeComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SecurityModeComplete_IEs; + +/* ASN_RRC_SecurityModeComplete */ +typedef struct ASN_RRC_SecurityModeComplete { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_SecurityModeComplete__criticalExtensions { + ASN_RRC_SecurityModeComplete__criticalExtensions_PR present; + union ASN_RRC_SecurityModeComplete__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SecurityModeComplete_IEs *securityModeComplete; + struct ASN_RRC_SecurityModeComplete__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeComplete_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.c b/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.c new file mode 100644 index 0000000..2bdbfa6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeFailure-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_SecurityModeFailure_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SecurityModeFailure_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeFailure_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SecurityModeFailure_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SecurityModeFailure_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SecurityModeFailure_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeFailure_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeFailure_IEs_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeFailure_IEs), + offsetof(struct ASN_RRC_SecurityModeFailure_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeFailure_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SecurityModeFailure_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeFailure_IEs = { + "SecurityModeFailure-IEs", + "SecurityModeFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeFailure_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeFailure_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.h b/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.h new file mode 100644 index 0000000..c95607a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeFailure-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeFailure_IEs_H_ +#define _ASN_RRC_SecurityModeFailure_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SecurityModeFailure-IEs */ +typedef struct ASN_RRC_SecurityModeFailure_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_SecurityModeFailure_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeFailure_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeFailure_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeFailure_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeFailure_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SecurityModeFailure.c b/src/asn/rrc/ASN_RRC_SecurityModeFailure.c new file mode 100644 index 0000000..186756b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeFailure.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SecurityModeFailure.h" + +#include "ASN_RRC_SecurityModeFailure-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_SecurityModeFailure__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SecurityModeFailure__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeFailure__criticalExtensions, choice.securityModeFailure), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeFailure_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeFailure" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SecurityModeFailure__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* securityModeFailure */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_SecurityModeFailure__criticalExtensions), + offsetof(struct ASN_RRC_SecurityModeFailure__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SecurityModeFailure__criticalExtensions, present), + sizeof(((struct ASN_RRC_SecurityModeFailure__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeFailure, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SecurityModeFailure, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SecurityModeFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SecurityModeFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeFailure_specs_1 = { + sizeof(struct ASN_RRC_SecurityModeFailure), + offsetof(struct ASN_RRC_SecurityModeFailure, _asn_ctx), + asn_MAP_ASN_RRC_SecurityModeFailure_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeFailure = { + "SecurityModeFailure", + "SecurityModeFailure", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SecurityModeFailure_tags_1, + sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SecurityModeFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_tags_1) + /sizeof(asn_DEF_ASN_RRC_SecurityModeFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SecurityModeFailure_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SecurityModeFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SecurityModeFailure.h b/src/asn/rrc/ASN_RRC_SecurityModeFailure.h new file mode 100644 index 0000000..4138f85 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SecurityModeFailure.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SecurityModeFailure_H_ +#define _ASN_RRC_SecurityModeFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SecurityModeFailure__criticalExtensions_PR { + ASN_RRC_SecurityModeFailure__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SecurityModeFailure__criticalExtensions_PR_securityModeFailure, + ASN_RRC_SecurityModeFailure__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SecurityModeFailure__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SecurityModeFailure_IEs; + +/* ASN_RRC_SecurityModeFailure */ +typedef struct ASN_RRC_SecurityModeFailure { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_SecurityModeFailure__criticalExtensions { + ASN_RRC_SecurityModeFailure__criticalExtensions_PR present; + union ASN_RRC_SecurityModeFailure__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SecurityModeFailure_IEs *securityModeFailure; + struct ASN_RRC_SecurityModeFailure__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SecurityModeFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SecurityModeFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SecurityModeFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SecurityModeFailure_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SecurityModeFailure_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ServCellIndex.c b/src/asn/rrc/ASN_RRC_ServCellIndex.c new file mode 100644 index 0000000..e8fbb0e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServCellIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ServCellIndex.h" + +int +ASN_RRC_ServCellIndex_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ServCellIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ServCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServCellIndex = { + "ServCellIndex", + "ServCellIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ServCellIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_ServCellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServCellIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ServCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ServCellIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServCellIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ServCellIndex_constr_1, ASN_RRC_ServCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ServCellIndex.h b/src/asn/rrc/ASN_RRC_ServCellIndex.h new file mode 100644 index 0000000..4c0f6ac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServCellIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ServCellIndex_H_ +#define _ASN_RRC_ServCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ServCellIndex */ +typedef long ASN_RRC_ServCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ServCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServCellIndex; +asn_struct_free_f ASN_RRC_ServCellIndex_free; +asn_struct_print_f ASN_RRC_ServCellIndex_print; +asn_constr_check_f ASN_RRC_ServCellIndex_constraint; +ber_type_decoder_f ASN_RRC_ServCellIndex_decode_ber; +der_type_encoder_f ASN_RRC_ServCellIndex_encode_der; +xer_type_decoder_f ASN_RRC_ServCellIndex_decode_xer; +xer_type_encoder_f ASN_RRC_ServCellIndex_encode_xer; +per_type_decoder_f ASN_RRC_ServCellIndex_decode_uper; +per_type_encoder_f ASN_RRC_ServCellIndex_encode_uper; +per_type_decoder_f ASN_RRC_ServCellIndex_decode_aper; +per_type_encoder_f ASN_RRC_ServCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ServCellIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfig.c b/src/asn/rrc/ASN_RRC_ServingCellConfig.c new file mode 100644 index 0000000..368d575 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfig.c @@ -0,0 +1,948 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ServingCellConfig.h" + +#include "ASN_RRC_TDD-UL-DL-ConfigDedicated.h" +#include "ASN_RRC_BWP-DownlinkDedicated.h" +#include "ASN_RRC_UplinkConfig.h" +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_CrossCarrierSchedulingConfig.h" +#include "ASN_RRC_BWP-Downlink.h" +#include "ASN_RRC_RateMatchPattern.h" +#include "ASN_RRC_SCS-SpecificCarrier.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_ASN_RRC_rateMatchPatternToAddModList_constraint_73(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 <= 4)) { + /* 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 int +memb_ASN_RRC_rateMatchPatternToReleaseList_constraint_73(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 <= 4)) { + /* 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 int +memb_ASN_RRC_downlinkChannelBW_PerSCS_List_constraint_73(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 <= 5)) { + /* 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 int +memb_ASN_RRC_downlinkBWP_ToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_downlinkBWP_ToAddModList_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 <= 4)) { + /* 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_ASN_RRC_downlinkBWP_ToReleaseList_constr_4 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_per_constraints_t asn_PER_type_ASN_RRC_downlinkBWP_ToAddModList_constr_6 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_per_constraints_t asn_PER_type_ASN_RRC_bwp_InactivityTimer_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 30 } /* (0..30) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_sCellDeactivationTimer_constr_47 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_type_ASN_RRC_dummy_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_pathlossReferenceLinking_constr_68 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_type_ASN_RRC_rateMatchPatternToAddModList_constr_75 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_per_constraints_t asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_77 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_per_constraints_t asn_PER_type_ASN_RRC_downlinkChannelBW_PerSCS_List_constr_79 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_75 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_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_77 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_per_constraints_t asn_PER_memb_ASN_RRC_downlinkChannelBW_PerSCS_List_constr_79 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_downlinkBWP_ToReleaseList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_downlinkBWP_ToAddModList_constr_6 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_ASN_RRC_downlinkBWP_ToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_downlinkBWP_ToReleaseList_specs_4 = { + sizeof(struct ASN_RRC_ServingCellConfig__downlinkBWP_ToReleaseList), + offsetof(struct ASN_RRC_ServingCellConfig__downlinkBWP_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_4 = { + "downlinkBWP-ToReleaseList", + "downlinkBWP-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_downlinkBWP_ToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_downlinkBWP_ToReleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_downlinkBWP_ToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_downlinkBWP_ToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BWP_Downlink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_downlinkBWP_ToAddModList_specs_6 = { + sizeof(struct ASN_RRC_ServingCellConfig__downlinkBWP_ToAddModList), + offsetof(struct ASN_RRC_ServingCellConfig__downlinkBWP_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_6 = { + "downlinkBWP-ToAddModList", + "downlinkBWP-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6, + sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6) + /sizeof(asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_downlinkBWP_ToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_downlinkBWP_ToAddModList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_downlinkBWP_ToAddModList_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bwp_InactivityTimer_value2enum_9[] = { + { 0, 3, "ms2" }, + { 1, 3, "ms3" }, + { 2, 3, "ms4" }, + { 3, 3, "ms5" }, + { 4, 3, "ms6" }, + { 5, 3, "ms8" }, + { 6, 4, "ms10" }, + { 7, 4, "ms20" }, + { 8, 4, "ms30" }, + { 9, 4, "ms40" }, + { 10, 4, "ms50" }, + { 11, 4, "ms60" }, + { 12, 4, "ms80" }, + { 13, 5, "ms100" }, + { 14, 5, "ms200" }, + { 15, 5, "ms300" }, + { 16, 5, "ms500" }, + { 17, 5, "ms750" }, + { 18, 6, "ms1280" }, + { 19, 6, "ms1920" }, + { 20, 6, "ms2560" }, + { 21, 7, "spare10" }, + { 22, 6, "spare9" }, + { 23, 6, "spare8" }, + { 24, 6, "spare7" }, + { 25, 6, "spare6" }, + { 26, 6, "spare5" }, + { 27, 6, "spare4" }, + { 28, 6, "spare3" }, + { 29, 6, "spare2" }, + { 30, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_bwp_InactivityTimer_enum2value_9[] = { + 6, /* ms10(6) */ + 13, /* ms100(13) */ + 18, /* ms1280(18) */ + 19, /* ms1920(19) */ + 0, /* ms2(0) */ + 7, /* ms20(7) */ + 14, /* ms200(14) */ + 20, /* ms2560(20) */ + 1, /* ms3(1) */ + 8, /* ms30(8) */ + 15, /* ms300(15) */ + 2, /* ms4(2) */ + 9, /* ms40(9) */ + 3, /* ms5(3) */ + 10, /* ms50(10) */ + 16, /* ms500(16) */ + 4, /* ms6(4) */ + 11, /* ms60(11) */ + 17, /* ms750(17) */ + 5, /* ms8(5) */ + 12, /* ms80(12) */ + 30, /* spare1(30) */ + 21, /* spare10(21) */ + 29, /* spare2(29) */ + 28, /* spare3(28) */ + 27, /* spare4(27) */ + 26, /* spare5(26) */ + 25, /* spare6(25) */ + 24, /* spare7(24) */ + 23, /* spare8(23) */ + 22 /* spare9(22) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bwp_InactivityTimer_specs_9 = { + asn_MAP_ASN_RRC_bwp_InactivityTimer_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bwp_InactivityTimer_enum2value_9, /* N => "tag"; sorted by N */ + 31, /* 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_ASN_RRC_bwp_InactivityTimer_tags_9[] = { + (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_ASN_RRC_bwp_InactivityTimer_9 = { + "bwp-InactivityTimer", + "bwp-InactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9, + sizeof(asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9) + /sizeof(asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9) + /sizeof(asn_DEF_ASN_RRC_bwp_InactivityTimer_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bwp_InactivityTimer_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bwp_InactivityTimer_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sCellDeactivationTimer_value2enum_47[] = { + { 0, 4, "ms20" }, + { 1, 4, "ms40" }, + { 2, 4, "ms80" }, + { 3, 5, "ms160" }, + { 4, 5, "ms200" }, + { 5, 5, "ms240" }, + { 6, 5, "ms320" }, + { 7, 5, "ms400" }, + { 8, 5, "ms480" }, + { 9, 5, "ms520" }, + { 10, 5, "ms640" }, + { 11, 5, "ms720" }, + { 12, 5, "ms840" }, + { 13, 6, "ms1280" }, + { 14, 6, "spare2" }, + { 15, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_sCellDeactivationTimer_enum2value_47[] = { + 13, /* ms1280(13) */ + 3, /* ms160(3) */ + 0, /* ms20(0) */ + 4, /* ms200(4) */ + 5, /* ms240(5) */ + 6, /* ms320(6) */ + 1, /* ms40(1) */ + 7, /* ms400(7) */ + 8, /* ms480(8) */ + 9, /* ms520(9) */ + 10, /* ms640(10) */ + 11, /* ms720(11) */ + 2, /* ms80(2) */ + 12, /* ms840(12) */ + 15, /* spare1(15) */ + 14 /* spare2(14) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sCellDeactivationTimer_specs_47 = { + asn_MAP_ASN_RRC_sCellDeactivationTimer_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sCellDeactivationTimer_enum2value_47, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_sCellDeactivationTimer_tags_47[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCellDeactivationTimer_47 = { + "sCellDeactivationTimer", + "sCellDeactivationTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47, + sizeof(asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47) + /sizeof(asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47) + /sizeof(asn_DEF_ASN_RRC_sCellDeactivationTimer_tags_47[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sCellDeactivationTimer_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sCellDeactivationTimer_specs_47 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_66[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_66[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_66 = { + asn_MAP_ASN_RRC_dummy_value2enum_66, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_66, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_tags_66[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_66 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_66, + sizeof(asn_DEF_ASN_RRC_dummy_tags_66) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_66[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_66, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_66) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_66[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_66, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_66 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pathlossReferenceLinking_value2enum_68[] = { + { 0, 6, "spCell" }, + { 1, 5, "sCell" } +}; +static const unsigned int asn_MAP_ASN_RRC_pathlossReferenceLinking_enum2value_68[] = { + 1, /* sCell(1) */ + 0 /* spCell(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pathlossReferenceLinking_specs_68 = { + asn_MAP_ASN_RRC_pathlossReferenceLinking_value2enum_68, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_pathlossReferenceLinking_enum2value_68, /* 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_ASN_RRC_pathlossReferenceLinking_tags_68[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pathlossReferenceLinking_68 = { + "pathlossReferenceLinking", + "pathlossReferenceLinking", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68, + sizeof(asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68) + /sizeof(asn_DEF_ASN_RRC_pathlossReferenceLinking_tags_68[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_pathlossReferenceLinking_constr_68, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_pathlossReferenceLinking_specs_68 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToAddModList_75[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_75 = { + sizeof(struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToAddModList), + offsetof(struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_75 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_75[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToAddModList_constr_75, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToAddModList_75, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_75 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_77[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_77 = { + sizeof(struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToReleaseList), + offsetof(struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_77 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_77[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_77, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_77, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_77 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_downlinkChannelBW_PerSCS_List_79[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_downlinkChannelBW_PerSCS_List_specs_79 = { + sizeof(struct ASN_RRC_ServingCellConfig__ext1__downlinkChannelBW_PerSCS_List), + offsetof(struct ASN_RRC_ServingCellConfig__ext1__downlinkChannelBW_PerSCS_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_79 = { + "downlinkChannelBW-PerSCS-List", + "downlinkChannelBW-PerSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79, + sizeof(asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79) + /sizeof(asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79) + /sizeof(asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_tags_79[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_downlinkChannelBW_PerSCS_List_constr_79, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_downlinkChannelBW_PerSCS_List_79, + 1, /* Single element */ + &asn_SPC_ASN_RRC_downlinkChannelBW_PerSCS_List_specs_79 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_73[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ServingCellConfig__ext1, lte_CRS_ToMatchAround), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lte-CRS-ToMatchAround" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfig__ext1, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToAddModList_75, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_75, memb_ASN_RRC_rateMatchPatternToAddModList_constraint_73 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfig__ext1, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_77, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_77, memb_ASN_RRC_rateMatchPatternToReleaseList_constraint_73 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfig__ext1, downlinkChannelBW_PerSCS_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_downlinkChannelBW_PerSCS_List_79, + 0, + { 0, &asn_PER_memb_ASN_RRC_downlinkChannelBW_PerSCS_List_constr_79, memb_ASN_RRC_downlinkChannelBW_PerSCS_List_constraint_73 }, + 0, 0, /* No default value */ + "downlinkChannelBW-PerSCS-List" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_73[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_73[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lte-CRS-ToMatchAround */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rateMatchPatternToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rateMatchPatternToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* downlinkChannelBW-PerSCS-List */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_73 = { + sizeof(struct ASN_RRC_ServingCellConfig__ext1), + offsetof(struct ASN_RRC_ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_73, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_73, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_73 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_73, + sizeof(asn_DEF_ASN_RRC_ext1_tags_73) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_73[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_73, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_73) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_73[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_73, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfig_1[] = { + { ATF_POINTER, 14, offsetof(struct ASN_RRC_ServingCellConfig, tdd_UL_DL_ConfigurationDedicated), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationDedicated" + }, + { ATF_POINTER, 13, offsetof(struct ASN_RRC_ServingCellConfig, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_DownlinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, + { ATF_POINTER, 12, offsetof(struct ASN_RRC_ServingCellConfig, downlinkBWP_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_downlinkBWP_ToReleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_downlinkBWP_ToReleaseList_constr_4, memb_ASN_RRC_downlinkBWP_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "downlinkBWP-ToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct ASN_RRC_ServingCellConfig, downlinkBWP_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_downlinkBWP_ToAddModList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_downlinkBWP_ToAddModList_constr_6, memb_ASN_RRC_downlinkBWP_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "downlinkBWP-ToAddModList" + }, + { ATF_POINTER, 10, offsetof(struct ASN_RRC_ServingCellConfig, firstActiveDownlinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstActiveDownlinkBWP-Id" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_ServingCellConfig, bwp_InactivityTimer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bwp_InactivityTimer_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-InactivityTimer" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_ServingCellConfig, defaultDownlinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "defaultDownlinkBWP-Id" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_ServingCellConfig, uplinkConfig), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfig" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_ServingCellConfig, supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_ServingCellConfig, pdcch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ServingCellConfig" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ServingCellConfig, pdsch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ServingCellConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfig, csi_MeasConfig), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_CSI_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-MeasConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfig, sCellDeactivationTimer), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sCellDeactivationTimer_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellDeactivationTimer" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfig, crossCarrierSchedulingConfig), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CrossCarrierSchedulingConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierSchedulingConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfig, tag_Id), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Id" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ServingCellConfig, dummy), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfig, pathlossReferenceLinking), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_pathlossReferenceLinking_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathlossReferenceLinking" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfig, servingCellMO), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellMO" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_ServingCellConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ServingCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tdd-UL-DL-ConfigurationDedicated */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* initialDownlinkBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* downlinkBWP-ToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* downlinkBWP-ToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* firstActiveDownlinkBWP-Id */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* bwp-InactivityTimer */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* defaultDownlinkBWP-Id */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* uplinkConfig */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* supplementaryUplink */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pdcch-ServingCellConfig */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* pdsch-ServingCellConfig */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* csi-MeasConfig */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sCellDeactivationTimer */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* crossCarrierSchedulingConfig */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* tag-Id */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* pathlossReferenceLinking */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* servingCellMO */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfig_specs_1 = { + sizeof(struct ASN_RRC_ServingCellConfig), + offsetof(struct ASN_RRC_ServingCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_ServingCellConfig_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ServingCellConfig_oms_1, /* Optional members */ + 17, 1, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfig = { + "ServingCellConfig", + "ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ServingCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ServingCellConfig_1, + 19, /* Elements count */ + &asn_SPC_ASN_RRC_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfig.h b/src/asn/rrc/ASN_RRC_ServingCellConfig.h new file mode 100644 index 0000000..caf5ee7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfig.h @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ServingCellConfig_H_ +#define _ASN_RRC_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include +#include "ASN_RRC_TAG-Id.h" +#include "ASN_RRC_MeasObjectId.h" +#include +#include +#include "ASN_RRC_RateMatchPatternId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ServingCellConfig__bwp_InactivityTimer { + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms2 = 0, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms3 = 1, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms4 = 2, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms5 = 3, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms6 = 4, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms8 = 5, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms10 = 6, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms20 = 7, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms30 = 8, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms40 = 9, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms50 = 10, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms60 = 11, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms80 = 12, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms100 = 13, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms200 = 14, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms300 = 15, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms500 = 16, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms750 = 17, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms1280 = 18, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms1920 = 19, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_ms2560 = 20, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare10 = 21, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare9 = 22, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare8 = 23, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare7 = 24, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare6 = 25, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare5 = 26, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare4 = 27, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare3 = 28, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare2 = 29, + ASN_RRC_ServingCellConfig__bwp_InactivityTimer_spare1 = 30 +} e_ASN_RRC_ServingCellConfig__bwp_InactivityTimer; +typedef enum ASN_RRC_ServingCellConfig__sCellDeactivationTimer { + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms20 = 0, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms40 = 1, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms80 = 2, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms160 = 3, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms200 = 4, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms240 = 5, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms320 = 6, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms400 = 7, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms480 = 8, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms520 = 9, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms640 = 10, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms720 = 11, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms840 = 12, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_ms1280 = 13, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_spare2 = 14, + ASN_RRC_ServingCellConfig__sCellDeactivationTimer_spare1 = 15 +} e_ASN_RRC_ServingCellConfig__sCellDeactivationTimer; +typedef enum ASN_RRC_ServingCellConfig__dummy { + ASN_RRC_ServingCellConfig__dummy_enabled = 0 +} e_ASN_RRC_ServingCellConfig__dummy; +typedef enum ASN_RRC_ServingCellConfig__pathlossReferenceLinking { + ASN_RRC_ServingCellConfig__pathlossReferenceLinking_spCell = 0, + ASN_RRC_ServingCellConfig__pathlossReferenceLinking_sCell = 1 +} e_ASN_RRC_ServingCellConfig__pathlossReferenceLinking; + +/* Forward declarations */ +struct ASN_RRC_TDD_UL_DL_ConfigDedicated; +struct ASN_RRC_BWP_DownlinkDedicated; +struct ASN_RRC_UplinkConfig; +struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig; +struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig; +struct ASN_RRC_SetupRelease_CSI_MeasConfig; +struct ASN_RRC_CrossCarrierSchedulingConfig; +struct ASN_RRC_BWP_Downlink; +struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS; +struct ASN_RRC_RateMatchPattern; +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_ServingCellConfig */ +typedef struct ASN_RRC_ServingCellConfig { + struct ASN_RRC_TDD_UL_DL_ConfigDedicated *tdd_UL_DL_ConfigurationDedicated; /* OPTIONAL */ + struct ASN_RRC_BWP_DownlinkDedicated *initialDownlinkBWP; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfig__downlinkBWP_ToReleaseList { + A_SEQUENCE_OF(ASN_RRC_BWP_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkBWP_ToReleaseList; + struct ASN_RRC_ServingCellConfig__downlinkBWP_ToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_BWP_Downlink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkBWP_ToAddModList; + ASN_RRC_BWP_Id_t *firstActiveDownlinkBWP_Id; /* OPTIONAL */ + long *bwp_InactivityTimer; /* OPTIONAL */ + ASN_RRC_BWP_Id_t *defaultDownlinkBWP_Id; /* OPTIONAL */ + struct ASN_RRC_UplinkConfig *uplinkConfig; /* OPTIONAL */ + struct ASN_RRC_UplinkConfig *supplementaryUplink; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig *pdcch_ServingCellConfig; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig *pdsch_ServingCellConfig; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_CSI_MeasConfig *csi_MeasConfig; /* OPTIONAL */ + long *sCellDeactivationTimer; /* OPTIONAL */ + struct ASN_RRC_CrossCarrierSchedulingConfig *crossCarrierSchedulingConfig; /* OPTIONAL */ + ASN_RRC_TAG_Id_t tag_Id; + long *dummy; /* OPTIONAL */ + long *pathlossReferenceLinking; /* OPTIONAL */ + ASN_RRC_MeasObjectId_t *servingCellMO; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_ServingCellConfig__ext1 { + struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS *lte_CRS_ToMatchAround; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct ASN_RRC_ServingCellConfig__ext1__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(ASN_RRC_RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + struct ASN_RRC_ServingCellConfig__ext1__downlinkChannelBW_PerSCS_List { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkChannelBW_PerSCS_List; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bwp_InactivityTimer_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sCellDeactivationTimer_47; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_66; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pathlossReferenceLinking_68; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfig_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ServingCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.c b/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.c new file mode 100644 index 0000000..a2055f5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.c @@ -0,0 +1,687 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ServingCellConfigCommon.h" + +#include "ASN_RRC_DownlinkConfigCommon.h" +#include "ASN_RRC_UplinkConfigCommon.h" +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_TDD-UL-DL-ConfigCommon.h" +#include "ASN_RRC_RateMatchPattern.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_shortBitmap_constraint_10(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 == 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_ASN_RRC_mediumBitmap_constraint_10(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_ASN_RRC_longBitmap_constraint_10(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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_rateMatchPatternToAddModList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_rateMatchPatternToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_ss_PBCH_BlockPower_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 >= -60 && value <= 50)) { + /* Constraint 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_ASN_RRC_n_TimingAdvanceOffset_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_shortBitmap_constr_11 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_ASN_RRC_mediumBitmap_constr_12 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_ASN_RRC_longBitmap_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 64, 64 } /* (SIZE(64..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_ssb_PositionsInBurst_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 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_ASN_RRC_ssb_periodicityServingCell_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_dmrs_TypeA_Position_constr_23 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_type_ASN_RRC_rateMatchPatternToAddModList_constr_27 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_per_constraints_t asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_29 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_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_27 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_per_constraints_t asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_29 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_per_constraints_t asn_PER_memb_ASN_RRC_ss_PBCH_BlockPower_constr_33 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 50 } /* (-60..50) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n_TimingAdvanceOffset_value2enum_6[] = { + { 0, 2, "n0" }, + { 1, 6, "n25600" }, + { 2, 6, "n39936" } +}; +static const unsigned int asn_MAP_ASN_RRC_n_TimingAdvanceOffset_enum2value_6[] = { + 0, /* n0(0) */ + 1, /* n25600(1) */ + 2 /* n39936(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n_TimingAdvanceOffset_specs_6 = { + asn_MAP_ASN_RRC_n_TimingAdvanceOffset_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n_TimingAdvanceOffset_enum2value_6, /* 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_ASN_RRC_n_TimingAdvanceOffset_tags_6[] = { + (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_ASN_RRC_n_TimingAdvanceOffset_6 = { + "n-TimingAdvanceOffset", + "n-TimingAdvanceOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6, + sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6) + /sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6) + /sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n_TimingAdvanceOffset_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n_TimingAdvanceOffset_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ssb_PositionsInBurst_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst, choice.shortBitmap), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_shortBitmap_constr_11, memb_ASN_RRC_shortBitmap_constraint_10 }, + 0, 0, /* No default value */ + "shortBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst, choice.mediumBitmap), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_mediumBitmap_constr_12, memb_ASN_RRC_mediumBitmap_constraint_10 }, + 0, 0, /* No default value */ + "mediumBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst, choice.longBitmap), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_longBitmap_constr_13, memb_ASN_RRC_longBitmap_constraint_10 }, + 0, 0, /* No default value */ + "longBitmap" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ssb_PositionsInBurst_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shortBitmap */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mediumBitmap */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longBitmap */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_ssb_PositionsInBurst_specs_10 = { + sizeof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst), + offsetof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst, _asn_ctx), + offsetof(struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst, present), + sizeof(((struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst *)0)->present), + asn_MAP_ASN_RRC_ssb_PositionsInBurst_tag2el_10, + 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_ASN_RRC_ssb_PositionsInBurst_10 = { + "ssb-PositionsInBurst", + "ssb-PositionsInBurst", + &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_ASN_RRC_ssb_PositionsInBurst_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_ssb_PositionsInBurst_10, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ssb_PositionsInBurst_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_periodicityServingCell_value2enum_14[] = { + { 0, 3, "ms5" }, + { 1, 4, "ms10" }, + { 2, 4, "ms20" }, + { 3, 4, "ms40" }, + { 4, 4, "ms80" }, + { 5, 5, "ms160" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_periodicityServingCell_enum2value_14[] = { + 1, /* ms10(1) */ + 5, /* ms160(5) */ + 2, /* ms20(2) */ + 3, /* ms40(3) */ + 0, /* ms5(0) */ + 4, /* ms80(4) */ + 7, /* spare1(7) */ + 6 /* spare2(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_periodicityServingCell_specs_14 = { + asn_MAP_ASN_RRC_ssb_periodicityServingCell_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_periodicityServingCell_enum2value_14, /* 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_ASN_RRC_ssb_periodicityServingCell_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_periodicityServingCell_14 = { + "ssb-periodicityServingCell", + "ssb-periodicityServingCell", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14, + sizeof(asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14) + /sizeof(asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14) + /sizeof(asn_DEF_ASN_RRC_ssb_periodicityServingCell_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_periodicityServingCell_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_periodicityServingCell_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dmrs_TypeA_Position_value2enum_23[] = { + { 0, 4, "pos2" }, + { 1, 4, "pos3" } +}; +static const unsigned int asn_MAP_ASN_RRC_dmrs_TypeA_Position_enum2value_23[] = { + 0, /* pos2(0) */ + 1 /* pos3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dmrs_TypeA_Position_specs_23 = { + asn_MAP_ASN_RRC_dmrs_TypeA_Position_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dmrs_TypeA_Position_enum2value_23, /* 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_ASN_RRC_dmrs_TypeA_Position_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_TypeA_Position_23 = { + "dmrs-TypeA-Position", + "dmrs-TypeA-Position", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23, + sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23) + /sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23) + /sizeof(asn_DEF_ASN_RRC_dmrs_TypeA_Position_tags_23[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dmrs_TypeA_Position_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dmrs_TypeA_Position_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToAddModList_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_27 = { + sizeof(struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToAddModList), + offsetof(struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToAddModList_27 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToAddModList_tags_27[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToAddModList_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToAddModList_27, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToAddModList_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_29 = { + sizeof(struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToReleaseList), + offsetof(struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_29 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29, + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29) + /sizeof(asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_tags_29[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rateMatchPatternToReleaseList_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_rateMatchPatternToReleaseList_29, + 1, /* Single element */ + &asn_SPC_ASN_RRC_rateMatchPatternToReleaseList_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfigCommon_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_ServingCellConfigCommon, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_ServingCellConfigCommon, downlinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DownlinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkConfigCommon" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_ServingCellConfigCommon, uplinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfigCommon" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ServingCellConfigCommon, supplementaryUplinkConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplinkConfig" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfigCommon, n_TimingAdvanceOffset), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n_TimingAdvanceOffset_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n-TimingAdvanceOffset" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfigCommon, ssb_PositionsInBurst), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_PositionsInBurst_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PositionsInBurst" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfigCommon, ssb_periodicityServingCell), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_periodicityServingCell_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-periodicityServingCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommon, dmrs_TypeA_Position), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dmrs_TypeA_Position_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-TypeA-Position" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_ServingCellConfigCommon, lte_CRS_ToMatchAround), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lte-CRS-ToMatchAround" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ServingCellConfigCommon, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToAddModList_27, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToAddModList_constr_27, memb_ASN_RRC_rateMatchPatternToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfigCommon, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ASN_RRC_rateMatchPatternToReleaseList_29, + 0, + { 0, &asn_PER_memb_ASN_RRC_rateMatchPatternToReleaseList_constr_29, memb_ASN_RRC_rateMatchPatternToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfigCommon, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfigCommon, tdd_UL_DL_ConfigurationCommon), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommon, ss_PBCH_BlockPower), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ss_PBCH_BlockPower_constr_33, memb_ASN_RRC_ss_PBCH_BlockPower_constraint_1 }, + 0, 0, /* No default value */ + "ss-PBCH-BlockPower" + }, +}; +static const int asn_MAP_ASN_RRC_ServingCellConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ServingCellConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* downlinkConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uplinkConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supplementaryUplinkConfig */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* n-TimingAdvanceOffset */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ssb-PositionsInBurst */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ssb-periodicityServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* dmrs-TypeA-Position */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* lte-CRS-ToMatchAround */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* rateMatchPatternToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* rateMatchPatternToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ssbSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* tdd-UL-DL-ConfigurationCommon */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* ss-PBCH-BlockPower */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_ServingCellConfigCommon), + offsetof(struct ASN_RRC_ServingCellConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_ServingCellConfigCommon_tag2el_1, + 14, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ServingCellConfigCommon_oms_1, /* Optional members */ + 12, 0, /* Root/Additions */ + 14, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfigCommon = { + "ServingCellConfigCommon", + "ServingCellConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ServingCellConfigCommon_1, + 14, /* Elements count */ + &asn_SPC_ASN_RRC_ServingCellConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.h b/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.h new file mode 100644 index 0000000..435c1d4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfigCommon.h @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ServingCellConfigCommon_H_ +#define _ASN_RRC_ServingCellConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include +#include +#include +#include +#include "ASN_RRC_RateMatchPatternId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ServingCellConfigCommon__n_TimingAdvanceOffset { + ASN_RRC_ServingCellConfigCommon__n_TimingAdvanceOffset_n0 = 0, + ASN_RRC_ServingCellConfigCommon__n_TimingAdvanceOffset_n25600 = 1, + ASN_RRC_ServingCellConfigCommon__n_TimingAdvanceOffset_n39936 = 2 +} e_ASN_RRC_ServingCellConfigCommon__n_TimingAdvanceOffset; +typedef enum ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR { + ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR_NOTHING, /* No components present */ + ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap, + ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap, + ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR_longBitmap +} ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR; +typedef enum ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell { + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms5 = 0, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms10 = 1, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms20 = 2, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms40 = 3, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms80 = 4, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_ms160 = 5, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_spare2 = 6, + ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell_spare1 = 7 +} e_ASN_RRC_ServingCellConfigCommon__ssb_periodicityServingCell; +typedef enum ASN_RRC_ServingCellConfigCommon__dmrs_TypeA_Position { + ASN_RRC_ServingCellConfigCommon__dmrs_TypeA_Position_pos2 = 0, + ASN_RRC_ServingCellConfigCommon__dmrs_TypeA_Position_pos3 = 1 +} e_ASN_RRC_ServingCellConfigCommon__dmrs_TypeA_Position; + +/* Forward declarations */ +struct ASN_RRC_DownlinkConfigCommon; +struct ASN_RRC_UplinkConfigCommon; +struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS; +struct ASN_RRC_TDD_UL_DL_ConfigCommon; +struct ASN_RRC_RateMatchPattern; + +/* ASN_RRC_ServingCellConfigCommon */ +typedef struct ASN_RRC_ServingCellConfigCommon { + ASN_RRC_PhysCellId_t *physCellId; /* OPTIONAL */ + struct ASN_RRC_DownlinkConfigCommon *downlinkConfigCommon; /* OPTIONAL */ + struct ASN_RRC_UplinkConfigCommon *uplinkConfigCommon; /* OPTIONAL */ + struct ASN_RRC_UplinkConfigCommon *supplementaryUplinkConfig; /* OPTIONAL */ + long *n_TimingAdvanceOffset; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst { + ASN_RRC_ServingCellConfigCommon__ssb_PositionsInBurst_PR present; + union ASN_RRC_ServingCellConfigCommon__ASN_RRC_ssb_PositionsInBurst_u { + BIT_STRING_t shortBitmap; + BIT_STRING_t mediumBitmap; + BIT_STRING_t longBitmap; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ssb_PositionsInBurst; + long *ssb_periodicityServingCell; /* OPTIONAL */ + long dmrs_TypeA_Position; + struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS *lte_CRS_ToMatchAround; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct ASN_RRC_ServingCellConfigCommon__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(ASN_RRC_RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + ASN_RRC_SubcarrierSpacing_t *ssbSubcarrierSpacing; /* OPTIONAL */ + struct ASN_RRC_TDD_UL_DL_ConfigCommon *tdd_UL_DL_ConfigurationCommon; /* OPTIONAL */ + long ss_PBCH_BlockPower; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ServingCellConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n_TimingAdvanceOffset_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_periodicityServingCell_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dmrs_TypeA_Position_23; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfigCommon_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ServingCellConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.c b/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.c new file mode 100644 index 0000000..3e51415 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.c @@ -0,0 +1,383 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ServingCellConfigCommonSIB.h" + +#include "ASN_RRC_UplinkConfigCommonSIB.h" +#include "ASN_RRC_TDD-UL-DL-ConfigCommon.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_inOneGroup_constraint_9(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_ASN_RRC_groupPresence_constraint_9(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 NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_ss_PBCH_BlockPower_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 >= -60 && value <= 50)) { + /* Constraint 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_ASN_RRC_n_TimingAdvanceOffset_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_inOneGroup_constr_10 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_ASN_RRC_groupPresence_constr_11 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_type_ASN_RRC_ssb_PeriodicityServingCell_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ss_PBCH_BlockPower_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 50 } /* (-60..50) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n_TimingAdvanceOffset_value2enum_5[] = { + { 0, 2, "n0" }, + { 1, 6, "n25600" }, + { 2, 6, "n39936" } +}; +static const unsigned int asn_MAP_ASN_RRC_n_TimingAdvanceOffset_enum2value_5[] = { + 0, /* n0(0) */ + 1, /* n25600(1) */ + 2 /* n39936(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n_TimingAdvanceOffset_specs_5 = { + asn_MAP_ASN_RRC_n_TimingAdvanceOffset_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n_TimingAdvanceOffset_enum2value_5, /* 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_ASN_RRC_n_TimingAdvanceOffset_tags_5[] = { + (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_ASN_RRC_n_TimingAdvanceOffset_5 = { + "n-TimingAdvanceOffset", + "n-TimingAdvanceOffset", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5, + sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5) + /sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5) + /sizeof(asn_DEF_ASN_RRC_n_TimingAdvanceOffset_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n_TimingAdvanceOffset_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n_TimingAdvanceOffset_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ssb_PositionsInBurst_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB__ssb_PositionsInBurst, inOneGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_inOneGroup_constr_10, memb_ASN_RRC_inOneGroup_constraint_9 }, + 0, 0, /* No default value */ + "inOneGroup" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB__ssb_PositionsInBurst, groupPresence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_groupPresence_constr_11, memb_ASN_RRC_groupPresence_constraint_9 }, + 0, 0, /* No default value */ + "groupPresence" + }, +}; +static const int asn_MAP_ASN_RRC_ssb_PositionsInBurst_oms_9[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ssb_PositionsInBurst_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* inOneGroup */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* groupPresence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ssb_PositionsInBurst_specs_9 = { + sizeof(struct ASN_RRC_ServingCellConfigCommonSIB__ssb_PositionsInBurst), + offsetof(struct ASN_RRC_ServingCellConfigCommonSIB__ssb_PositionsInBurst, _asn_ctx), + asn_MAP_ASN_RRC_ssb_PositionsInBurst_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ssb_PositionsInBurst_oms_9, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_PositionsInBurst_9 = { + "ssb-PositionsInBurst", + "ssb-PositionsInBurst", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9, + sizeof(asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9) + /sizeof(asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9) + /sizeof(asn_DEF_ASN_RRC_ssb_PositionsInBurst_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ssb_PositionsInBurst_9, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ssb_PositionsInBurst_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_ssb_PeriodicityServingCell_value2enum_12[] = { + { 0, 3, "ms5" }, + { 1, 4, "ms10" }, + { 2, 4, "ms20" }, + { 3, 4, "ms40" }, + { 4, 4, "ms80" }, + { 5, 5, "ms160" } +}; +static const unsigned int asn_MAP_ASN_RRC_ssb_PeriodicityServingCell_enum2value_12[] = { + 1, /* ms10(1) */ + 5, /* ms160(5) */ + 2, /* ms20(2) */ + 3, /* ms40(3) */ + 0, /* ms5(0) */ + 4 /* ms80(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_ssb_PeriodicityServingCell_specs_12 = { + asn_MAP_ASN_RRC_ssb_PeriodicityServingCell_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_ssb_PeriodicityServingCell_enum2value_12, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12[] = { + (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_ASN_RRC_ssb_PeriodicityServingCell_12 = { + "ssb-PeriodicityServingCell", + "ssb-PeriodicityServingCell", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12, + sizeof(asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12) + /sizeof(asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12) + /sizeof(asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_ssb_PeriodicityServingCell_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_ssb_PeriodicityServingCell_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, downlinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DownlinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkConfigCommon" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, uplinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UplinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, n_TimingAdvanceOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n_TimingAdvanceOffset_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n-TimingAdvanceOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, ssb_PositionsInBurst), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_ssb_PositionsInBurst_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PositionsInBurst" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, ssb_PeriodicityServingCell), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PeriodicityServingCell" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, tdd_UL_DL_ConfigurationCommon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, ss_PBCH_BlockPower), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_ss_PBCH_BlockPower_constr_20, memb_ASN_RRC_ss_PBCH_BlockPower_constraint_1 }, + 0, 0, /* No default value */ + "ss-PBCH-BlockPower" + }, +}; +static const int asn_MAP_ASN_RRC_ServingCellConfigCommonSIB_oms_1[] = { 1, 2, 3, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ServingCellConfigCommonSIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* downlinkConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uplinkConfigCommon */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* supplementaryUplink */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* n-TimingAdvanceOffset */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ssb-PositionsInBurst */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ssb-PeriodicityServingCell */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* tdd-UL-DL-ConfigurationCommon */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* ss-PBCH-BlockPower */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfigCommonSIB_specs_1 = { + sizeof(struct ASN_RRC_ServingCellConfigCommonSIB), + offsetof(struct ASN_RRC_ServingCellConfigCommonSIB, _asn_ctx), + asn_MAP_ASN_RRC_ServingCellConfigCommonSIB_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ServingCellConfigCommonSIB_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfigCommonSIB = { + "ServingCellConfigCommonSIB", + "ServingCellConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1, + sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ServingCellConfigCommonSIB_1, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_ServingCellConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.h b/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.h new file mode 100644 index 0000000..3b19883 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ServingCellConfigCommonSIB.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ServingCellConfigCommonSIB_H_ +#define _ASN_RRC_ServingCellConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DownlinkConfigCommonSIB.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ServingCellConfigCommonSIB__n_TimingAdvanceOffset { + ASN_RRC_ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n0 = 0, + ASN_RRC_ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n25600 = 1, + ASN_RRC_ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n39936 = 2 +} e_ASN_RRC_ServingCellConfigCommonSIB__n_TimingAdvanceOffset; +typedef enum ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell { + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms5 = 0, + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms10 = 1, + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms20 = 2, + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms40 = 3, + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms80 = 4, + ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms160 = 5 +} e_ASN_RRC_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell; + +/* Forward declarations */ +struct ASN_RRC_UplinkConfigCommonSIB; +struct ASN_RRC_TDD_UL_DL_ConfigCommon; + +/* ASN_RRC_ServingCellConfigCommonSIB */ +typedef struct ASN_RRC_ServingCellConfigCommonSIB { + ASN_RRC_DownlinkConfigCommonSIB_t downlinkConfigCommon; + struct ASN_RRC_UplinkConfigCommonSIB *uplinkConfigCommon; /* OPTIONAL */ + struct ASN_RRC_UplinkConfigCommonSIB *supplementaryUplink; /* OPTIONAL */ + long *n_TimingAdvanceOffset; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfigCommonSIB__ssb_PositionsInBurst { + BIT_STRING_t inOneGroup; + BIT_STRING_t *groupPresence; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } ssb_PositionsInBurst; + long ssb_PeriodicityServingCell; + struct ASN_RRC_TDD_UL_DL_ConfigCommon *tdd_UL_DL_ConfigurationCommon; /* OPTIONAL */ + long ss_PBCH_BlockPower; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ServingCellConfigCommonSIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n_TimingAdvanceOffset_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ssb_PeriodicityServingCell_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ServingCellConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ServingCellConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ServingCellConfigCommonSIB_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ServingCellConfigCommonSIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SetupRelease.c b/src/asn/rrc/ASN_RRC_SetupRelease.c new file mode 100644 index 0000000..a043741 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SetupRelease.c @@ -0,0 +1,2813 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SetupRelease.h" + +#include "ASN_RRC_LocationMeasurementInfo.h" +#include "ASN_RRC_MRDC-SecondaryCellGroupConfig.h" +#include "ASN_RRC_PDCCH-ConfigCommon.h" +#include "ASN_RRC_PDSCH-ConfigCommon.h" +#include "ASN_RRC_PDCCH-Config.h" +#include "ASN_RRC_PDSCH-Config.h" +#include "ASN_RRC_SPS-Config.h" +#include "ASN_RRC_RadioLinkMonitoringConfig.h" +#include "ASN_RRC_RACH-ConfigCommon.h" +#include "ASN_RRC_PUSCH-ConfigCommon.h" +#include "ASN_RRC_PUCCH-ConfigCommon.h" +#include "ASN_RRC_PUCCH-Config.h" +#include "ASN_RRC_PUSCH-Config.h" +#include "ASN_RRC_ConfiguredGrantConfig.h" +#include "ASN_RRC_SRS-Config.h" +#include "ASN_RRC_BeamFailureRecoveryConfig.h" +#include "ASN_RRC_RLF-TimersAndConstants.h" +#include "ASN_RRC_CG-UCI-OnPUSCH.h" +#include "ASN_RRC_CSI-AperiodicTriggerStateList.h" +#include "ASN_RRC_CSI-SemiPersistentOnPUSCH-TriggerStateList.h" +#include "ASN_RRC_PTRS-DownlinkConfig.h" +#include "ASN_RRC_PTRS-UplinkConfig.h" +#include "ASN_RRC_DRX-Config.h" +#include "ASN_RRC_PHR-Config.h" +#include "ASN_RRC_GapConfig.h" +#include "ASN_RRC_CSI-RS-ResourceConfigMobility.h" +#include "ASN_RRC_SSB-ToMeasure.h" +#include "ASN_RRC_DownlinkPreemption.h" +#include "ASN_RRC_PUSCH-TPC-CommandConfig.h" +#include "ASN_RRC_PUCCH-TPC-CommandConfig.h" +#include "ASN_RRC_SRS-TPC-CommandConfig.h" +#include "ASN_RRC_SlotFormatIndicator.h" +#include "ASN_RRC_DMRS-DownlinkConfig.h" +#include "ASN_RRC_PDSCH-TimeDomainResourceAllocationList.h" +#include "ASN_RRC_ZP-CSI-RS-ResourceSet.h" +#include "ASN_RRC_PDSCH-CodeBlockGroupTransmission.h" +#include "ASN_RRC_PUCCH-FormatConfig.h" +#include "ASN_RRC_DMRS-UplinkConfig.h" +#include "ASN_RRC_PUSCH-TimeDomainResourceAllocationList.h" +#include "ASN_RRC_UCI-OnPUSCH.h" +#include "ASN_RRC_PUSCH-CodeBlockGroupTransmission.h" +#include "ASN_RRC_PDCCH-ServingCellConfig.h" +#include "ASN_RRC_PDSCH-ServingCellConfig.h" +#include "ASN_RRC_CSI-MeasConfig.h" +#include "ASN_RRC_RateMatchPatternLTE-CRS.h" +#include "ASN_RRC_PUSCH-ServingCellConfig.h" +#include "ASN_RRC_SRS-CarrierSwitching.h" +#include "ASN_RRC_OverheatingAssistanceConfig.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_LocationMeasurementInfo_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_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDCCH_Config_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDSCH_Config_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SPS_Config_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_RACH_ConfigCommon_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUCCH_Config_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_Config_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_ConfiguredGrantConfig_constr_40 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SRS_Config_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_RLF_TimersAndConstants_constr_49 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_constr_52 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_constr_61 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PTRS_UplinkConfig_constr_64 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_DRX_Config_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PHR_Config_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_DataInactivityTimer_constr_73 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_GapConfig_constr_76 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_MeasGapSharingScheme_constr_79 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SSB_ToMeasure_constr_85 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_DownlinkPreemption_constr_88 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_constr_97 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SlotFormatIndicator_constr_100 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_constr_109 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_constr_112 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_RNTI_Value_constr_115 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDCCH_BlindDetection_constr_118 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUCCH_FormatConfig_constr_121 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_DMRS_UplinkConfig_constr_124 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_constr_127 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_UCI_OnPUSCH_constr_130 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_constr_133 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_constr_136 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_constr_139 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_CSI_MeasConfig_constr_142 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_constr_145 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_constr_148 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_SRS_CarrierSwitching_constr_151 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_constr_154 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_ASN_RRC_SetupRelease_LocationMeasurementInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_LocationMeasurementInfo, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_LocationMeasurementInfo, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LocationMeasurementInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_LocationMeasurementInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_LocationMeasurementInfo_specs_1 = { + sizeof(struct ASN_RRC_SetupRelease_LocationMeasurementInfo), + offsetof(struct ASN_RRC_SetupRelease_LocationMeasurementInfo, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_LocationMeasurementInfo, present), + sizeof(((struct ASN_RRC_SetupRelease_LocationMeasurementInfo *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_LocationMeasurementInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_LocationMeasurementInfo = { + "SetupRelease_LocationMeasurementInfo", + "SetupRelease_LocationMeasurementInfo", + &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_ASN_RRC_SetupRelease_LocationMeasurementInfo_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_LocationMeasurementInfo_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_LocationMeasurementInfo_specs_1 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MRDC_SecondaryCellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_specs_4 = { + sizeof(struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig), + offsetof(struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_tag2el_4, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig = { + "SetupRelease_MRDC-SecondaryCellGroupConfig", + "SetupRelease_MRDC-SecondaryCellGroupConfig", + &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_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_constr_4, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_4, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_specs_7 = { + sizeof(struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon, present), + sizeof(((struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_tag2el_7, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_ConfigCommon = { + "SetupRelease_PDCCH-ConfigCommon", + "SetupRelease_PDCCH-ConfigCommon", + &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_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_constr_7, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_7, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_tag2el_10[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_specs_10 = { + sizeof(struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon, present), + sizeof(((struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_tag2el_10, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_ConfigCommon = { + "SetupRelease_PDSCH-ConfigCommon", + "SetupRelease_PDSCH-ConfigCommon", + &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_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_constr_10, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_10, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_Config_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDCCH_Config_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_Config_specs_13 = { + sizeof(struct ASN_RRC_SetupRelease_PDCCH_Config), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_PDCCH_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDCCH_Config_tag2el_13, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_Config = { + "SetupRelease_PDCCH-Config", + "SetupRelease_PDCCH-Config", + &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_ASN_RRC_SetupRelease_PDCCH_Config_constr_13, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDCCH_Config_13, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDCCH_Config_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_Config_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDSCH_Config_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_Config_specs_16 = { + sizeof(struct ASN_RRC_SetupRelease_PDSCH_Config), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_PDSCH_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDSCH_Config_tag2el_16, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_Config = { + "SetupRelease_PDSCH-Config", + "SetupRelease_PDSCH-Config", + &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_ASN_RRC_SetupRelease_PDSCH_Config_constr_16, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDSCH_Config_16, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDSCH_Config_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SPS_Config_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SPS_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SPS_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SPS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SPS_Config_tag2el_19[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SPS_Config_specs_19 = { + sizeof(struct ASN_RRC_SetupRelease_SPS_Config), + offsetof(struct ASN_RRC_SetupRelease_SPS_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SPS_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_SPS_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SPS_Config_tag2el_19, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SPS_Config = { + "SetupRelease_SPS-Config", + "SetupRelease_SPS-Config", + &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_ASN_RRC_SetupRelease_SPS_Config_constr_19, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SPS_Config_19, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SPS_Config_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RadioLinkMonitoringConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_tag2el_22[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_specs_22 = { + sizeof(struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig), + offsetof(struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_tag2el_22, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig = { + "SetupRelease_RadioLinkMonitoringConfig", + "SetupRelease_RadioLinkMonitoringConfig", + &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_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_constr_22, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_22, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_specs_22 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RACH_ConfigCommon_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RACH_ConfigCommon, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_RACH_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RACH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_RACH_ConfigCommon_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RACH_ConfigCommon_specs_25 = { + sizeof(struct ASN_RRC_SetupRelease_RACH_ConfigCommon), + offsetof(struct ASN_RRC_SetupRelease_RACH_ConfigCommon, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_RACH_ConfigCommon, present), + sizeof(((struct ASN_RRC_SetupRelease_RACH_ConfigCommon *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_RACH_ConfigCommon_tag2el_25, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RACH_ConfigCommon = { + "SetupRelease_RACH-ConfigCommon", + "SetupRelease_RACH-ConfigCommon", + &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_ASN_RRC_SetupRelease_RACH_ConfigCommon_constr_25, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_RACH_ConfigCommon_25, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_RACH_ConfigCommon_specs_25 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_specs_28 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_tag2el_28, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_ConfigCommon = { + "SetupRelease_PUSCH-ConfigCommon", + "SetupRelease_PUSCH-ConfigCommon", + &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_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_constr_28, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_28, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_specs_31 = { + sizeof(struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon, present), + sizeof(((struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_tag2el_31, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_ConfigCommon = { + "SetupRelease_PUCCH-ConfigCommon", + "SetupRelease_PUCCH-ConfigCommon", + &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_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_constr_31, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_31, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_Config_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUCCH_Config_tag2el_34[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_Config_specs_34 = { + sizeof(struct ASN_RRC_SetupRelease_PUCCH_Config), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_PUCCH_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUCCH_Config_tag2el_34, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_Config = { + "SetupRelease_PUCCH-Config", + "SetupRelease_PUCCH-Config", + &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_ASN_RRC_SetupRelease_PUCCH_Config_constr_34, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUCCH_Config_34, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUCCH_Config_specs_34 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_Config_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_Config_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_Config_specs_37 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_Config), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_Config_tag2el_37, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_Config = { + "SetupRelease_PUSCH-Config", + "SetupRelease_PUSCH-Config", + &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_ASN_RRC_SetupRelease_PUSCH_Config_constr_37, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_Config_37, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_Config_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_ConfiguredGrantConfig_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_ConfiguredGrantConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_ConfiguredGrantConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ConfiguredGrantConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_ConfiguredGrantConfig_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_ConfiguredGrantConfig_specs_40 = { + sizeof(struct ASN_RRC_SetupRelease_ConfiguredGrantConfig), + offsetof(struct ASN_RRC_SetupRelease_ConfiguredGrantConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_ConfiguredGrantConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_ConfiguredGrantConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_ConfiguredGrantConfig_tag2el_40, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_ConfiguredGrantConfig = { + "SetupRelease_ConfiguredGrantConfig", + "SetupRelease_ConfiguredGrantConfig", + &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_ASN_RRC_SetupRelease_ConfiguredGrantConfig_constr_40, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_ConfiguredGrantConfig_40, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_ConfiguredGrantConfig_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_Config_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SRS_Config_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_Config_specs_43 = { + sizeof(struct ASN_RRC_SetupRelease_SRS_Config), + offsetof(struct ASN_RRC_SetupRelease_SRS_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SRS_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_SRS_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SRS_Config_tag2el_43, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_Config = { + "SetupRelease_SRS-Config", + "SetupRelease_SRS-Config", + &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_ASN_RRC_SetupRelease_SRS_Config_constr_43, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SRS_Config_43, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SRS_Config_specs_43 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BeamFailureRecoveryConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_specs_46 = { + sizeof(struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig), + offsetof(struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_tag2el_46, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig = { + "SetupRelease_BeamFailureRecoveryConfig", + "SetupRelease_BeamFailureRecoveryConfig", + &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_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_constr_46, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_46, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_specs_46 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RLF_TimersAndConstants_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RLF_TimersAndConstants, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_RLF_TimersAndConstants, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RLF_TimersAndConstants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_RLF_TimersAndConstants_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RLF_TimersAndConstants_specs_49 = { + sizeof(struct ASN_RRC_SetupRelease_RLF_TimersAndConstants), + offsetof(struct ASN_RRC_SetupRelease_RLF_TimersAndConstants, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_RLF_TimersAndConstants, present), + sizeof(((struct ASN_RRC_SetupRelease_RLF_TimersAndConstants *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_RLF_TimersAndConstants_tag2el_49, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RLF_TimersAndConstants = { + "SetupRelease_RLF-TimersAndConstants", + "SetupRelease_RLF-TimersAndConstants", + &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_ASN_RRC_SetupRelease_RLF_TimersAndConstants_constr_49, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_RLF_TimersAndConstants_49, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_RLF_TimersAndConstants_specs_49 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CG_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_tag2el_52[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_specs_52 = { + sizeof(struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH), + offsetof(struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH, present), + sizeof(((struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_tag2el_52, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH = { + "SetupRelease_CG-UCI-OnPUSCH", + "SetupRelease_CG-UCI-OnPUSCH", + &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_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_constr_52, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_52, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_specs_52 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_AperiodicTriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_tag2el_55[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_specs_55 = { + sizeof(struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList), + offsetof(struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList, present), + sizeof(((struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_tag2el_55, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList = { + "SetupRelease_CSI-AperiodicTriggerStateList", + "SetupRelease_CSI-AperiodicTriggerStateList", + &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_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_constr_55, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_55, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_tag2el_58[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_58 = { + sizeof(struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList), + offsetof(struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList, present), + sizeof(((struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_tag2el_58, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList = { + "SetupRelease_CSI-SemiPersistentOnPUSCH-TriggerStateList", + "SetupRelease_CSI-SemiPersistentOnPUSCH-TriggerStateList", + &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_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_58, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_58, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_58 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_specs_61 = { + sizeof(struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig), + offsetof(struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_tag2el_61, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PTRS_DownlinkConfig = { + "SetupRelease_PTRS-DownlinkConfig", + "SetupRelease_PTRS-DownlinkConfig", + &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_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_constr_61, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_61, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_specs_61 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PTRS_UplinkConfig_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PTRS_UplinkConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PTRS_UplinkConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PTRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PTRS_UplinkConfig_tag2el_64[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PTRS_UplinkConfig_specs_64 = { + sizeof(struct ASN_RRC_SetupRelease_PTRS_UplinkConfig), + offsetof(struct ASN_RRC_SetupRelease_PTRS_UplinkConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PTRS_UplinkConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PTRS_UplinkConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PTRS_UplinkConfig_tag2el_64, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PTRS_UplinkConfig = { + "SetupRelease_PTRS-UplinkConfig", + "SetupRelease_PTRS-UplinkConfig", + &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_ASN_RRC_SetupRelease_PTRS_UplinkConfig_constr_64, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PTRS_UplinkConfig_64, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PTRS_UplinkConfig_specs_64 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DRX_Config_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DRX_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_DRX_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_DRX_Config_tag2el_67[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DRX_Config_specs_67 = { + sizeof(struct ASN_RRC_SetupRelease_DRX_Config), + offsetof(struct ASN_RRC_SetupRelease_DRX_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_DRX_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_DRX_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_DRX_Config_tag2el_67, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DRX_Config = { + "SetupRelease_DRX-Config", + "SetupRelease_DRX-Config", + &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_ASN_RRC_SetupRelease_DRX_Config_constr_67, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_DRX_Config_67, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_DRX_Config_specs_67 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PHR_Config_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PHR_Config, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PHR_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PHR_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PHR_Config_tag2el_70[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PHR_Config_specs_70 = { + sizeof(struct ASN_RRC_SetupRelease_PHR_Config), + offsetof(struct ASN_RRC_SetupRelease_PHR_Config, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PHR_Config, present), + sizeof(((struct ASN_RRC_SetupRelease_PHR_Config *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PHR_Config_tag2el_70, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PHR_Config = { + "SetupRelease_PHR-Config", + "SetupRelease_PHR-Config", + &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_ASN_RRC_SetupRelease_PHR_Config_constr_70, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PHR_Config_70, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PHR_Config_specs_70 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DataInactivityTimer_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DataInactivityTimer, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DataInactivityTimer, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DataInactivityTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_DataInactivityTimer_tag2el_73[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DataInactivityTimer_specs_73 = { + sizeof(struct ASN_RRC_SetupRelease_DataInactivityTimer), + offsetof(struct ASN_RRC_SetupRelease_DataInactivityTimer, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_DataInactivityTimer, present), + sizeof(((struct ASN_RRC_SetupRelease_DataInactivityTimer *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_DataInactivityTimer_tag2el_73, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DataInactivityTimer = { + "SetupRelease_DataInactivityTimer", + "SetupRelease_DataInactivityTimer", + &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_ASN_RRC_SetupRelease_DataInactivityTimer_constr_73, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_DataInactivityTimer_73, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_DataInactivityTimer_specs_73 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_GapConfig_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_GapConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_GapConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_GapConfig_tag2el_76[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_GapConfig_specs_76 = { + sizeof(struct ASN_RRC_SetupRelease_GapConfig), + offsetof(struct ASN_RRC_SetupRelease_GapConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_GapConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_GapConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_GapConfig_tag2el_76, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_GapConfig = { + "SetupRelease_GapConfig", + "SetupRelease_GapConfig", + &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_ASN_RRC_SetupRelease_GapConfig_constr_76, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_GapConfig_76, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_GapConfig_specs_76 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_MeasGapSharingScheme_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_MeasGapSharingScheme, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_MeasGapSharingScheme, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_MeasGapSharingScheme_tag2el_79[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_MeasGapSharingScheme_specs_79 = { + sizeof(struct ASN_RRC_SetupRelease_MeasGapSharingScheme), + offsetof(struct ASN_RRC_SetupRelease_MeasGapSharingScheme, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_MeasGapSharingScheme, present), + sizeof(((struct ASN_RRC_SetupRelease_MeasGapSharingScheme *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_MeasGapSharingScheme_tag2el_79, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_MeasGapSharingScheme = { + "SetupRelease_MeasGapSharingScheme", + "SetupRelease_MeasGapSharingScheme", + &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_ASN_RRC_SetupRelease_MeasGapSharingScheme_constr_79, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_MeasGapSharingScheme_79, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_MeasGapSharingScheme_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_82[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ResourceConfigMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_tag2el_82[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_specs_82 = { + sizeof(struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility), + offsetof(struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility, present), + sizeof(((struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_tag2el_82, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility = { + "SetupRelease_CSI-RS-ResourceConfigMobility", + "SetupRelease_CSI-RS-ResourceConfigMobility", + &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_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_constr_82, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_82, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_specs_82 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SSB_ToMeasure_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SSB_ToMeasure, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SSB_ToMeasure, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SSB_ToMeasure_tag2el_85[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SSB_ToMeasure_specs_85 = { + sizeof(struct ASN_RRC_SetupRelease_SSB_ToMeasure), + offsetof(struct ASN_RRC_SetupRelease_SSB_ToMeasure, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SSB_ToMeasure, present), + sizeof(((struct ASN_RRC_SetupRelease_SSB_ToMeasure *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SSB_ToMeasure_tag2el_85, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SSB_ToMeasure = { + "SetupRelease_SSB-ToMeasure", + "SetupRelease_SSB-ToMeasure", + &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_ASN_RRC_SetupRelease_SSB_ToMeasure_constr_85, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SSB_ToMeasure_85, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SSB_ToMeasure_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DownlinkPreemption_88[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DownlinkPreemption, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_DownlinkPreemption, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DownlinkPreemption, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_DownlinkPreemption_tag2el_88[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DownlinkPreemption_specs_88 = { + sizeof(struct ASN_RRC_SetupRelease_DownlinkPreemption), + offsetof(struct ASN_RRC_SetupRelease_DownlinkPreemption, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_DownlinkPreemption, present), + sizeof(((struct ASN_RRC_SetupRelease_DownlinkPreemption *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_DownlinkPreemption_tag2el_88, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DownlinkPreemption = { + "SetupRelease_DownlinkPreemption", + "SetupRelease_DownlinkPreemption", + &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_ASN_RRC_SetupRelease_DownlinkPreemption_constr_88, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_DownlinkPreemption_88, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_DownlinkPreemption_specs_88 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_91[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_tag2el_91[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_specs_91 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_tag2el_91, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig = { + "SetupRelease_PUSCH-TPC-CommandConfig", + "SetupRelease_PUSCH-TPC-CommandConfig", + &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_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_constr_91, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_91, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_specs_91 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_94[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_tag2el_94[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_specs_94 = { + sizeof(struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_tag2el_94, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig = { + "SetupRelease_PUCCH-TPC-CommandConfig", + "SetupRelease_PUCCH-TPC-CommandConfig", + &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_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_constr_94, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_94, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_specs_94 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_tag2el_97[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_specs_97 = { + sizeof(struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig), + offsetof(struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_tag2el_97, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig = { + "SetupRelease_SRS-TPC-CommandConfig", + "SetupRelease_SRS-TPC-CommandConfig", + &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_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_constr_97, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_97, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_specs_97 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SlotFormatIndicator_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SlotFormatIndicator, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SlotFormatIndicator, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SlotFormatIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SlotFormatIndicator_tag2el_100[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SlotFormatIndicator_specs_100 = { + sizeof(struct ASN_RRC_SetupRelease_SlotFormatIndicator), + offsetof(struct ASN_RRC_SetupRelease_SlotFormatIndicator, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SlotFormatIndicator, present), + sizeof(((struct ASN_RRC_SetupRelease_SlotFormatIndicator *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SlotFormatIndicator_tag2el_100, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SlotFormatIndicator = { + "SetupRelease_SlotFormatIndicator", + "SetupRelease_SlotFormatIndicator", + &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_ASN_RRC_SetupRelease_SlotFormatIndicator_constr_100, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SlotFormatIndicator_100, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SlotFormatIndicator_specs_100 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_103[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DMRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_tag2el_103[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_specs_103 = { + sizeof(struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig), + offsetof(struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_tag2el_103, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DMRS_DownlinkConfig = { + "SetupRelease_DMRS-DownlinkConfig", + "SetupRelease_DMRS-DownlinkConfig", + &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_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_constr_103, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_103, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_specs_103 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_106[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_tag2el_106[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_specs_106 = { + sizeof(struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList, present), + sizeof(((struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_tag2el_106, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList = { + "SetupRelease_PDSCH-TimeDomainResourceAllocationList", + "SetupRelease_PDSCH-TimeDomainResourceAllocationList", + &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_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_constr_106, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_106, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_specs_106 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_tag2el_109[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_specs_109 = { + sizeof(struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet), + offsetof(struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet, present), + sizeof(((struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_tag2el_109, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet = { + "SetupRelease_ZP-CSI-RS-ResourceSet", + "SetupRelease_ZP-CSI-RS-ResourceSet", + &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_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_constr_109, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_109, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_specs_109 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_tag2el_112[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_specs_112 = { + sizeof(struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission, present), + sizeof(((struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_tag2el_112, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission = { + "SetupRelease_PDSCH-CodeBlockGroupTransmission", + "SetupRelease_PDSCH-CodeBlockGroupTransmission", + &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_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_constr_112, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_112, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_specs_112 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RNTI_Value_115[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RNTI_Value, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RNTI_Value, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_RNTI_Value_tag2el_115[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RNTI_Value_specs_115 = { + sizeof(struct ASN_RRC_SetupRelease_RNTI_Value), + offsetof(struct ASN_RRC_SetupRelease_RNTI_Value, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_RNTI_Value, present), + sizeof(((struct ASN_RRC_SetupRelease_RNTI_Value *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_RNTI_Value_tag2el_115, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RNTI_Value = { + "SetupRelease_RNTI-Value", + "SetupRelease_RNTI-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_ASN_RRC_SetupRelease_RNTI_Value_constr_115, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_RNTI_Value_115, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_RNTI_Value_specs_115 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_BlindDetection_118[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_BlindDetection, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_BlindDetection, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_BlindDetection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDCCH_BlindDetection_tag2el_118[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_BlindDetection_specs_118 = { + sizeof(struct ASN_RRC_SetupRelease_PDCCH_BlindDetection), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_BlindDetection, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_BlindDetection, present), + sizeof(((struct ASN_RRC_SetupRelease_PDCCH_BlindDetection *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDCCH_BlindDetection_tag2el_118, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_BlindDetection = { + "SetupRelease_PDCCH-BlindDetection", + "SetupRelease_PDCCH-BlindDetection", + &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_ASN_RRC_SetupRelease_PDCCH_BlindDetection_constr_118, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDCCH_BlindDetection_118, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDCCH_BlindDetection_specs_118 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_FormatConfig_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_FormatConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUCCH_FormatConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUCCH_FormatConfig_tag2el_121[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_FormatConfig_specs_121 = { + sizeof(struct ASN_RRC_SetupRelease_PUCCH_FormatConfig), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_FormatConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUCCH_FormatConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PUCCH_FormatConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUCCH_FormatConfig_tag2el_121, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig = { + "SetupRelease_PUCCH-FormatConfig", + "SetupRelease_PUCCH-FormatConfig", + &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_ASN_RRC_SetupRelease_PUCCH_FormatConfig_constr_121, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUCCH_FormatConfig_121, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUCCH_FormatConfig_specs_121 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DMRS_UplinkConfig_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_DMRS_UplinkConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_DMRS_UplinkConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_DMRS_UplinkConfig_tag2el_124[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DMRS_UplinkConfig_specs_124 = { + sizeof(struct ASN_RRC_SetupRelease_DMRS_UplinkConfig), + offsetof(struct ASN_RRC_SetupRelease_DMRS_UplinkConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_DMRS_UplinkConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_DMRS_UplinkConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_DMRS_UplinkConfig_tag2el_124, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DMRS_UplinkConfig = { + "SetupRelease_DMRS-UplinkConfig", + "SetupRelease_DMRS-UplinkConfig", + &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_ASN_RRC_SetupRelease_DMRS_UplinkConfig_constr_124, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_DMRS_UplinkConfig_124, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_DMRS_UplinkConfig_specs_124 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_127[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_tag2el_127[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_specs_127 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_tag2el_127, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList = { + "SetupRelease_PUSCH-TimeDomainResourceAllocationList", + "SetupRelease_PUSCH-TimeDomainResourceAllocationList", + &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_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_constr_127, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_127, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_UCI_OnPUSCH_130[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_UCI_OnPUSCH, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_UCI_OnPUSCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_UCI_OnPUSCH_tag2el_130[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_UCI_OnPUSCH_specs_130 = { + sizeof(struct ASN_RRC_SetupRelease_UCI_OnPUSCH), + offsetof(struct ASN_RRC_SetupRelease_UCI_OnPUSCH, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_UCI_OnPUSCH, present), + sizeof(((struct ASN_RRC_SetupRelease_UCI_OnPUSCH *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_UCI_OnPUSCH_tag2el_130, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_UCI_OnPUSCH = { + "SetupRelease_UCI-OnPUSCH", + "SetupRelease_UCI-OnPUSCH", + &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_ASN_RRC_SetupRelease_UCI_OnPUSCH_constr_130, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_UCI_OnPUSCH_130, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_UCI_OnPUSCH_specs_130 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_tag2el_133[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_specs_133 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_tag2el_133, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission = { + "SetupRelease_PUSCH-CodeBlockGroupTransmission", + "SetupRelease_PUSCH-CodeBlockGroupTransmission", + &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_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_constr_133, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_133, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_specs_133 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_tag2el_136[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_specs_136 = { + sizeof(struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_tag2el_136, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig = { + "SetupRelease_PDCCH-ServingCellConfig", + "SetupRelease_PDCCH-ServingCellConfig", + &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_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_constr_136, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_136, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_specs_136 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_139[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_tag2el_139[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_specs_139 = { + sizeof(struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_tag2el_139, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig = { + "SetupRelease_PDSCH-ServingCellConfig", + "SetupRelease_PDSCH-ServingCellConfig", + &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_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_constr_139, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_139, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_specs_139 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_MeasConfig_142[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_MeasConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_CSI_MeasConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_CSI_MeasConfig_tag2el_142[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_MeasConfig_specs_142 = { + sizeof(struct ASN_RRC_SetupRelease_CSI_MeasConfig), + offsetof(struct ASN_RRC_SetupRelease_CSI_MeasConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_CSI_MeasConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_CSI_MeasConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_CSI_MeasConfig_tag2el_142, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_MeasConfig = { + "SetupRelease_CSI-MeasConfig", + "SetupRelease_CSI-MeasConfig", + &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_ASN_RRC_SetupRelease_CSI_MeasConfig_constr_142, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_CSI_MeasConfig_142, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_CSI_MeasConfig_specs_142 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RateMatchPatternLTE_CRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_tag2el_145[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_specs_145 = { + sizeof(struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS), + offsetof(struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS, present), + sizeof(((struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_tag2el_145, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS = { + "SetupRelease_RateMatchPatternLTE-CRS", + "SetupRelease_RateMatchPatternLTE-CRS", + &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_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_constr_145, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_145, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_specs_145 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PUSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_tag2el_148[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_specs_148 = { + sizeof(struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_tag2el_148, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig = { + "SetupRelease_PUSCH-ServingCellConfig", + "SetupRelease_PUSCH-ServingCellConfig", + &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_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_constr_148, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_148, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_specs_148 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_CarrierSwitching_151[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_CarrierSwitching, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_SRS_CarrierSwitching, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SRS_CarrierSwitching, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_SRS_CarrierSwitching_tag2el_151[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_CarrierSwitching_specs_151 = { + sizeof(struct ASN_RRC_SetupRelease_SRS_CarrierSwitching), + offsetof(struct ASN_RRC_SetupRelease_SRS_CarrierSwitching, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_SRS_CarrierSwitching, present), + sizeof(((struct ASN_RRC_SetupRelease_SRS_CarrierSwitching *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_SRS_CarrierSwitching_tag2el_151, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_CarrierSwitching = { + "SetupRelease_SRS-CarrierSwitching", + "SetupRelease_SRS-CarrierSwitching", + &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_ASN_RRC_SetupRelease_SRS_CarrierSwitching_constr_151, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_SRS_CarrierSwitching_151, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_SRS_CarrierSwitching_specs_151 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_154[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig, choice.release), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "release" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_OverheatingAssistanceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_tag2el_154[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_specs_154 = { + sizeof(struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig), + offsetof(struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig, _asn_ctx), + offsetof(struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig, present), + sizeof(((struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig *)0)->present), + asn_MAP_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_tag2el_154, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_OverheatingAssistanceConfig = { + "SetupRelease_OverheatingAssistanceConfig", + "SetupRelease_OverheatingAssistanceConfig", + &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_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_constr_154, CHOICE_constraint }, + asn_MBR_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_154, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_specs_154 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SetupRelease.h b/src/asn/rrc/ASN_RRC_SetupRelease.h new file mode 100644 index 0000000..913529d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SetupRelease.h @@ -0,0 +1,1075 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SetupRelease_H_ +#define _ASN_RRC_SetupRelease_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_DataInactivityTimer.h" +#include "ASN_RRC_MeasGapSharingScheme.h" +#include "ASN_RRC_RNTI-Value.h" +#include "ASN_RRC_PDCCH-BlindDetection.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SetupRelease_LocationMeasurementInfo_PR { + ASN_RRC_SetupRelease_LocationMeasurementInfo_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_LocationMeasurementInfo_PR_release, + ASN_RRC_SetupRelease_LocationMeasurementInfo_PR_setup +} ASN_RRC_SetupRelease_LocationMeasurementInfo_PR; +typedef enum ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR { + ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR_release, + ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR_setup +} ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR; +typedef enum ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR { + ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR_release, + ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR_setup +} ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR; +typedef enum ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR { + ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR_release, + ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR_setup +} ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR; +typedef enum ASN_RRC_SetupRelease_PDCCH_Config_PR { + ASN_RRC_SetupRelease_PDCCH_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDCCH_Config_PR_release, + ASN_RRC_SetupRelease_PDCCH_Config_PR_setup +} ASN_RRC_SetupRelease_PDCCH_Config_PR; +typedef enum ASN_RRC_SetupRelease_PDSCH_Config_PR { + ASN_RRC_SetupRelease_PDSCH_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDSCH_Config_PR_release, + ASN_RRC_SetupRelease_PDSCH_Config_PR_setup +} ASN_RRC_SetupRelease_PDSCH_Config_PR; +typedef enum ASN_RRC_SetupRelease_SPS_Config_PR { + ASN_RRC_SetupRelease_SPS_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SPS_Config_PR_release, + ASN_RRC_SetupRelease_SPS_Config_PR_setup +} ASN_RRC_SetupRelease_SPS_Config_PR; +typedef enum ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR { + ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR_release, + ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR_setup +} ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR; +typedef enum ASN_RRC_SetupRelease_RACH_ConfigCommon_PR { + ASN_RRC_SetupRelease_RACH_ConfigCommon_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_RACH_ConfigCommon_PR_release, + ASN_RRC_SetupRelease_RACH_ConfigCommon_PR_setup +} ASN_RRC_SetupRelease_RACH_ConfigCommon_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR { + ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR_release, + ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR_setup +} ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR; +typedef enum ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR { + ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR_release, + ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR_setup +} ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR; +typedef enum ASN_RRC_SetupRelease_PUCCH_Config_PR { + ASN_RRC_SetupRelease_PUCCH_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUCCH_Config_PR_release, + ASN_RRC_SetupRelease_PUCCH_Config_PR_setup +} ASN_RRC_SetupRelease_PUCCH_Config_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_Config_PR { + ASN_RRC_SetupRelease_PUSCH_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_Config_PR_release, + ASN_RRC_SetupRelease_PUSCH_Config_PR_setup +} ASN_RRC_SetupRelease_PUSCH_Config_PR; +typedef enum ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR { + ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR_release, + ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR_setup +} ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR; +typedef enum ASN_RRC_SetupRelease_SRS_Config_PR { + ASN_RRC_SetupRelease_SRS_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SRS_Config_PR_release, + ASN_RRC_SetupRelease_SRS_Config_PR_setup +} ASN_RRC_SetupRelease_SRS_Config_PR; +typedef enum ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR { + ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR_release, + ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR_setup +} ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR; +typedef enum ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR { + ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR_release, + ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR_setup +} ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR; +typedef enum ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR { + ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR_release, + ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR_setup +} ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR; +typedef enum ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR { + ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR_release, + ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR_setup +} ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR; +typedef enum ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR { + ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR_release, + ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR_setup +} ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR; +typedef enum ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR { + ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR_release, + ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR_setup +} ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR; +typedef enum ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR { + ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR_release, + ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR_setup +} ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR; +typedef enum ASN_RRC_SetupRelease_DRX_Config_PR { + ASN_RRC_SetupRelease_DRX_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_DRX_Config_PR_release, + ASN_RRC_SetupRelease_DRX_Config_PR_setup +} ASN_RRC_SetupRelease_DRX_Config_PR; +typedef enum ASN_RRC_SetupRelease_PHR_Config_PR { + ASN_RRC_SetupRelease_PHR_Config_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PHR_Config_PR_release, + ASN_RRC_SetupRelease_PHR_Config_PR_setup +} ASN_RRC_SetupRelease_PHR_Config_PR; +typedef enum ASN_RRC_SetupRelease_DataInactivityTimer_PR { + ASN_RRC_SetupRelease_DataInactivityTimer_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_DataInactivityTimer_PR_release, + ASN_RRC_SetupRelease_DataInactivityTimer_PR_setup +} ASN_RRC_SetupRelease_DataInactivityTimer_PR; +typedef enum ASN_RRC_SetupRelease_GapConfig_PR { + ASN_RRC_SetupRelease_GapConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_GapConfig_PR_release, + ASN_RRC_SetupRelease_GapConfig_PR_setup +} ASN_RRC_SetupRelease_GapConfig_PR; +typedef enum ASN_RRC_SetupRelease_MeasGapSharingScheme_PR { + ASN_RRC_SetupRelease_MeasGapSharingScheme_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_MeasGapSharingScheme_PR_release, + ASN_RRC_SetupRelease_MeasGapSharingScheme_PR_setup +} ASN_RRC_SetupRelease_MeasGapSharingScheme_PR; +typedef enum ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR { + ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR_release, + ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR_setup +} ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR; +typedef enum ASN_RRC_SetupRelease_SSB_ToMeasure_PR { + ASN_RRC_SetupRelease_SSB_ToMeasure_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SSB_ToMeasure_PR_release, + ASN_RRC_SetupRelease_SSB_ToMeasure_PR_setup +} ASN_RRC_SetupRelease_SSB_ToMeasure_PR; +typedef enum ASN_RRC_SetupRelease_DownlinkPreemption_PR { + ASN_RRC_SetupRelease_DownlinkPreemption_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_DownlinkPreemption_PR_release, + ASN_RRC_SetupRelease_DownlinkPreemption_PR_setup +} ASN_RRC_SetupRelease_DownlinkPreemption_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR { + ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR_release, + ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR_setup +} ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR; +typedef enum ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR { + ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR_release, + ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR_setup +} ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR; +typedef enum ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR { + ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR_release, + ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR_setup +} ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR; +typedef enum ASN_RRC_SetupRelease_SlotFormatIndicator_PR { + ASN_RRC_SetupRelease_SlotFormatIndicator_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SlotFormatIndicator_PR_release, + ASN_RRC_SetupRelease_SlotFormatIndicator_PR_setup +} ASN_RRC_SetupRelease_SlotFormatIndicator_PR; +typedef enum ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR { + ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR_release, + ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR_setup +} ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR; +typedef enum ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR { + ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR_release, + ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR_setup +} ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR; +typedef enum ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR { + ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR_release, + ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR_setup +} ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR; +typedef enum ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR { + ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR_release, + ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR_setup +} ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR; +typedef enum ASN_RRC_SetupRelease_RNTI_Value_PR { + ASN_RRC_SetupRelease_RNTI_Value_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_RNTI_Value_PR_release, + ASN_RRC_SetupRelease_RNTI_Value_PR_setup +} ASN_RRC_SetupRelease_RNTI_Value_PR; +typedef enum ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR { + ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR_release, + ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR_setup +} ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR; +typedef enum ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR { + ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR_release, + ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR_setup +} ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR; +typedef enum ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR { + ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR_release, + ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR_setup +} ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR { + ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR_release, + ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR_setup +} ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR; +typedef enum ASN_RRC_SetupRelease_UCI_OnPUSCH_PR { + ASN_RRC_SetupRelease_UCI_OnPUSCH_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_UCI_OnPUSCH_PR_release, + ASN_RRC_SetupRelease_UCI_OnPUSCH_PR_setup +} ASN_RRC_SetupRelease_UCI_OnPUSCH_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR { + ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR_release, + ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR_setup +} ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR; +typedef enum ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR { + ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR_release, + ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR_setup +} ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR; +typedef enum ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR { + ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR_release, + ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR_setup +} ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR; +typedef enum ASN_RRC_SetupRelease_CSI_MeasConfig_PR { + ASN_RRC_SetupRelease_CSI_MeasConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_CSI_MeasConfig_PR_release, + ASN_RRC_SetupRelease_CSI_MeasConfig_PR_setup +} ASN_RRC_SetupRelease_CSI_MeasConfig_PR; +typedef enum ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR { + ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR_release, + ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR_setup +} ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR; +typedef enum ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR { + ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR_release, + ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR_setup +} ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR; +typedef enum ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR { + ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR_release, + ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR_setup +} ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR; +typedef enum ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR { + ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR_NOTHING, /* No components present */ + ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR_release, + ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR_setup +} ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR; + +/* Forward declarations */ +struct ASN_RRC_LocationMeasurementInfo; +struct ASN_RRC_MRDC_SecondaryCellGroupConfig; +struct ASN_RRC_PDCCH_ConfigCommon; +struct ASN_RRC_PDSCH_ConfigCommon; +struct ASN_RRC_PDCCH_Config; +struct ASN_RRC_PDSCH_Config; +struct ASN_RRC_SPS_Config; +struct ASN_RRC_RadioLinkMonitoringConfig; +struct ASN_RRC_RACH_ConfigCommon; +struct ASN_RRC_PUSCH_ConfigCommon; +struct ASN_RRC_PUCCH_ConfigCommon; +struct ASN_RRC_PUCCH_Config; +struct ASN_RRC_PUSCH_Config; +struct ASN_RRC_ConfiguredGrantConfig; +struct ASN_RRC_SRS_Config; +struct ASN_RRC_BeamFailureRecoveryConfig; +struct ASN_RRC_RLF_TimersAndConstants; +struct ASN_RRC_CG_UCI_OnPUSCH; +struct ASN_RRC_CSI_AperiodicTriggerStateList; +struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList; +struct ASN_RRC_PTRS_DownlinkConfig; +struct ASN_RRC_PTRS_UplinkConfig; +struct ASN_RRC_DRX_Config; +struct ASN_RRC_PHR_Config; +struct ASN_RRC_GapConfig; +struct ASN_RRC_CSI_RS_ResourceConfigMobility; +struct ASN_RRC_SSB_ToMeasure; +struct ASN_RRC_DownlinkPreemption; +struct ASN_RRC_PUSCH_TPC_CommandConfig; +struct ASN_RRC_PUCCH_TPC_CommandConfig; +struct ASN_RRC_SRS_TPC_CommandConfig; +struct ASN_RRC_SlotFormatIndicator; +struct ASN_RRC_DMRS_DownlinkConfig; +struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList; +struct ASN_RRC_ZP_CSI_RS_ResourceSet; +struct ASN_RRC_PDSCH_CodeBlockGroupTransmission; +struct ASN_RRC_PUCCH_FormatConfig; +struct ASN_RRC_DMRS_UplinkConfig; +struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList; +struct ASN_RRC_UCI_OnPUSCH; +struct ASN_RRC_PUSCH_CodeBlockGroupTransmission; +struct ASN_RRC_PDCCH_ServingCellConfig; +struct ASN_RRC_PDSCH_ServingCellConfig; +struct ASN_RRC_CSI_MeasConfig; +struct ASN_RRC_RateMatchPatternLTE_CRS; +struct ASN_RRC_PUSCH_ServingCellConfig; +struct ASN_RRC_SRS_CarrierSwitching; +struct ASN_RRC_OverheatingAssistanceConfig; + +/* ASN_RRC_SetupRelease */ +typedef struct ASN_RRC_SetupRelease_LocationMeasurementInfo { + ASN_RRC_SetupRelease_LocationMeasurementInfo_PR present; + union ASN_RRC_SetupRelease_LocationMeasurementInfo_u { + NULL_t release; + struct ASN_RRC_LocationMeasurementInfo *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_LocationMeasurementInfo_t; +typedef struct ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig { + ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_PR present; + union ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_u { + NULL_t release; + struct ASN_RRC_MRDC_SecondaryCellGroupConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_t; +typedef struct ASN_RRC_SetupRelease_PDCCH_ConfigCommon { + ASN_RRC_SetupRelease_PDCCH_ConfigCommon_PR present; + union ASN_RRC_SetupRelease_PDCCH_ConfigCommon_u { + NULL_t release; + struct ASN_RRC_PDCCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDCCH_ConfigCommon_t; +typedef struct ASN_RRC_SetupRelease_PDSCH_ConfigCommon { + ASN_RRC_SetupRelease_PDSCH_ConfigCommon_PR present; + union ASN_RRC_SetupRelease_PDSCH_ConfigCommon_u { + NULL_t release; + struct ASN_RRC_PDSCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDSCH_ConfigCommon_t; +typedef struct ASN_RRC_SetupRelease_PDCCH_Config { + ASN_RRC_SetupRelease_PDCCH_Config_PR present; + union ASN_RRC_SetupRelease_PDCCH_Config_u { + NULL_t release; + struct ASN_RRC_PDCCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDCCH_Config_t; +typedef struct ASN_RRC_SetupRelease_PDSCH_Config { + ASN_RRC_SetupRelease_PDSCH_Config_PR present; + union ASN_RRC_SetupRelease_PDSCH_Config_u { + NULL_t release; + struct ASN_RRC_PDSCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDSCH_Config_t; +typedef struct ASN_RRC_SetupRelease_SPS_Config { + ASN_RRC_SetupRelease_SPS_Config_PR present; + union ASN_RRC_SetupRelease_SPS_Config_u { + NULL_t release; + struct ASN_RRC_SPS_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SPS_Config_t; +typedef struct ASN_RRC_SetupRelease_RadioLinkMonitoringConfig { + ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_PR present; + union ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_u { + NULL_t release; + struct ASN_RRC_RadioLinkMonitoringConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_t; +typedef struct ASN_RRC_SetupRelease_RACH_ConfigCommon { + ASN_RRC_SetupRelease_RACH_ConfigCommon_PR present; + union ASN_RRC_SetupRelease_RACH_ConfigCommon_u { + NULL_t release; + struct ASN_RRC_RACH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_RACH_ConfigCommon_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_ConfigCommon { + ASN_RRC_SetupRelease_PUSCH_ConfigCommon_PR present; + union ASN_RRC_SetupRelease_PUSCH_ConfigCommon_u { + NULL_t release; + struct ASN_RRC_PUSCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_ConfigCommon_t; +typedef struct ASN_RRC_SetupRelease_PUCCH_ConfigCommon { + ASN_RRC_SetupRelease_PUCCH_ConfigCommon_PR present; + union ASN_RRC_SetupRelease_PUCCH_ConfigCommon_u { + NULL_t release; + struct ASN_RRC_PUCCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUCCH_ConfigCommon_t; +typedef struct ASN_RRC_SetupRelease_PUCCH_Config { + ASN_RRC_SetupRelease_PUCCH_Config_PR present; + union ASN_RRC_SetupRelease_PUCCH_Config_u { + NULL_t release; + struct ASN_RRC_PUCCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUCCH_Config_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_Config { + ASN_RRC_SetupRelease_PUSCH_Config_PR present; + union ASN_RRC_SetupRelease_PUSCH_Config_u { + NULL_t release; + struct ASN_RRC_PUSCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_Config_t; +typedef struct ASN_RRC_SetupRelease_ConfiguredGrantConfig { + ASN_RRC_SetupRelease_ConfiguredGrantConfig_PR present; + union ASN_RRC_SetupRelease_ConfiguredGrantConfig_u { + NULL_t release; + struct ASN_RRC_ConfiguredGrantConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_ConfiguredGrantConfig_t; +typedef struct ASN_RRC_SetupRelease_SRS_Config { + ASN_RRC_SetupRelease_SRS_Config_PR present; + union ASN_RRC_SetupRelease_SRS_Config_u { + NULL_t release; + struct ASN_RRC_SRS_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SRS_Config_t; +typedef struct ASN_RRC_SetupRelease_BeamFailureRecoveryConfig { + ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_PR present; + union ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_u { + NULL_t release; + struct ASN_RRC_BeamFailureRecoveryConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_t; +typedef struct ASN_RRC_SetupRelease_RLF_TimersAndConstants { + ASN_RRC_SetupRelease_RLF_TimersAndConstants_PR present; + union ASN_RRC_SetupRelease_RLF_TimersAndConstants_u { + NULL_t release; + struct ASN_RRC_RLF_TimersAndConstants *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_RLF_TimersAndConstants_t; +typedef struct ASN_RRC_SetupRelease_CG_UCI_OnPUSCH { + ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_PR present; + union ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_u { + NULL_t release; + struct ASN_RRC_CG_UCI_OnPUSCH *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_t; +typedef struct ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList { + ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_PR present; + union ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_u { + NULL_t release; + struct ASN_RRC_CSI_AperiodicTriggerStateList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_t; +typedef struct ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList { + ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_PR present; + union ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_u { + NULL_t release; + struct ASN_RRC_CSI_SemiPersistentOnPUSCH_TriggerStateList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_t; +typedef struct ASN_RRC_SetupRelease_PTRS_DownlinkConfig { + ASN_RRC_SetupRelease_PTRS_DownlinkConfig_PR present; + union ASN_RRC_SetupRelease_PTRS_DownlinkConfig_u { + NULL_t release; + struct ASN_RRC_PTRS_DownlinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PTRS_DownlinkConfig_t; +typedef struct ASN_RRC_SetupRelease_PTRS_UplinkConfig { + ASN_RRC_SetupRelease_PTRS_UplinkConfig_PR present; + union ASN_RRC_SetupRelease_PTRS_UplinkConfig_u { + NULL_t release; + struct ASN_RRC_PTRS_UplinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PTRS_UplinkConfig_t; +typedef struct ASN_RRC_SetupRelease_DRX_Config { + ASN_RRC_SetupRelease_DRX_Config_PR present; + union ASN_RRC_SetupRelease_DRX_Config_u { + NULL_t release; + struct ASN_RRC_DRX_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_DRX_Config_t; +typedef struct ASN_RRC_SetupRelease_PHR_Config { + ASN_RRC_SetupRelease_PHR_Config_PR present; + union ASN_RRC_SetupRelease_PHR_Config_u { + NULL_t release; + struct ASN_RRC_PHR_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PHR_Config_t; +typedef struct ASN_RRC_SetupRelease_DataInactivityTimer { + ASN_RRC_SetupRelease_DataInactivityTimer_PR present; + union ASN_RRC_SetupRelease_DataInactivityTimer_u { + NULL_t release; + ASN_RRC_DataInactivityTimer_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_DataInactivityTimer_t; +typedef struct ASN_RRC_SetupRelease_GapConfig { + ASN_RRC_SetupRelease_GapConfig_PR present; + union ASN_RRC_SetupRelease_GapConfig_u { + NULL_t release; + struct ASN_RRC_GapConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_GapConfig_t; +typedef struct ASN_RRC_SetupRelease_MeasGapSharingScheme { + ASN_RRC_SetupRelease_MeasGapSharingScheme_PR present; + union ASN_RRC_SetupRelease_MeasGapSharingScheme_u { + NULL_t release; + ASN_RRC_MeasGapSharingScheme_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_MeasGapSharingScheme_t; +typedef struct ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility { + ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_PR present; + union ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_u { + NULL_t release; + struct ASN_RRC_CSI_RS_ResourceConfigMobility *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_t; +typedef struct ASN_RRC_SetupRelease_SSB_ToMeasure { + ASN_RRC_SetupRelease_SSB_ToMeasure_PR present; + union ASN_RRC_SetupRelease_SSB_ToMeasure_u { + NULL_t release; + struct ASN_RRC_SSB_ToMeasure *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SSB_ToMeasure_t; +typedef struct ASN_RRC_SetupRelease_DownlinkPreemption { + ASN_RRC_SetupRelease_DownlinkPreemption_PR present; + union ASN_RRC_SetupRelease_DownlinkPreemption_u { + NULL_t release; + struct ASN_RRC_DownlinkPreemption *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_DownlinkPreemption_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig { + ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_PR present; + union ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_u { + NULL_t release; + struct ASN_RRC_PUSCH_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_t; +typedef struct ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig { + ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_PR present; + union ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_u { + NULL_t release; + struct ASN_RRC_PUCCH_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_t; +typedef struct ASN_RRC_SetupRelease_SRS_TPC_CommandConfig { + ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_PR present; + union ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_u { + NULL_t release; + struct ASN_RRC_SRS_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_t; +typedef struct ASN_RRC_SetupRelease_SlotFormatIndicator { + ASN_RRC_SetupRelease_SlotFormatIndicator_PR present; + union ASN_RRC_SetupRelease_SlotFormatIndicator_u { + NULL_t release; + struct ASN_RRC_SlotFormatIndicator *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SlotFormatIndicator_t; +typedef struct ASN_RRC_SetupRelease_DMRS_DownlinkConfig { + ASN_RRC_SetupRelease_DMRS_DownlinkConfig_PR present; + union ASN_RRC_SetupRelease_DMRS_DownlinkConfig_u { + NULL_t release; + struct ASN_RRC_DMRS_DownlinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_DMRS_DownlinkConfig_t; +typedef struct ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList { + ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_PR present; + union ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_u { + NULL_t release; + struct ASN_RRC_PDSCH_TimeDomainResourceAllocationList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_t; +typedef struct ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet { + ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_PR present; + union ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_u { + NULL_t release; + struct ASN_RRC_ZP_CSI_RS_ResourceSet *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_t; +typedef struct ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission { + ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_PR present; + union ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_u { + NULL_t release; + struct ASN_RRC_PDSCH_CodeBlockGroupTransmission *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_t; +typedef struct ASN_RRC_SetupRelease_RNTI_Value { + ASN_RRC_SetupRelease_RNTI_Value_PR present; + union ASN_RRC_SetupRelease_RNTI_Value_u { + NULL_t release; + ASN_RRC_RNTI_Value_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_RNTI_Value_t; +typedef struct ASN_RRC_SetupRelease_PDCCH_BlindDetection { + ASN_RRC_SetupRelease_PDCCH_BlindDetection_PR present; + union ASN_RRC_SetupRelease_PDCCH_BlindDetection_u { + NULL_t release; + ASN_RRC_PDCCH_BlindDetection_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDCCH_BlindDetection_t; +typedef struct ASN_RRC_SetupRelease_PUCCH_FormatConfig { + ASN_RRC_SetupRelease_PUCCH_FormatConfig_PR present; + union ASN_RRC_SetupRelease_PUCCH_FormatConfig_u { + NULL_t release; + struct ASN_RRC_PUCCH_FormatConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUCCH_FormatConfig_t; +typedef struct ASN_RRC_SetupRelease_DMRS_UplinkConfig { + ASN_RRC_SetupRelease_DMRS_UplinkConfig_PR present; + union ASN_RRC_SetupRelease_DMRS_UplinkConfig_u { + NULL_t release; + struct ASN_RRC_DMRS_UplinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_DMRS_UplinkConfig_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList { + ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_PR present; + union ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_u { + NULL_t release; + struct ASN_RRC_PUSCH_TimeDomainResourceAllocationList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_t; +typedef struct ASN_RRC_SetupRelease_UCI_OnPUSCH { + ASN_RRC_SetupRelease_UCI_OnPUSCH_PR present; + union ASN_RRC_SetupRelease_UCI_OnPUSCH_u { + NULL_t release; + struct ASN_RRC_UCI_OnPUSCH *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_UCI_OnPUSCH_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission { + ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_PR present; + union ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_u { + NULL_t release; + struct ASN_RRC_PUSCH_CodeBlockGroupTransmission *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_t; +typedef struct ASN_RRC_SetupRelease_PDCCH_ServingCellConfig { + ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_PR present; + union ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_u { + NULL_t release; + struct ASN_RRC_PDCCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_t; +typedef struct ASN_RRC_SetupRelease_PDSCH_ServingCellConfig { + ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_PR present; + union ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_u { + NULL_t release; + struct ASN_RRC_PDSCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_t; +typedef struct ASN_RRC_SetupRelease_CSI_MeasConfig { + ASN_RRC_SetupRelease_CSI_MeasConfig_PR present; + union ASN_RRC_SetupRelease_CSI_MeasConfig_u { + NULL_t release; + struct ASN_RRC_CSI_MeasConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_CSI_MeasConfig_t; +typedef struct ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS { + ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_PR present; + union ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_u { + NULL_t release; + struct ASN_RRC_RateMatchPatternLTE_CRS *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_t; +typedef struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig { + ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_PR present; + union ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_u { + NULL_t release; + struct ASN_RRC_PUSCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_t; +typedef struct ASN_RRC_SetupRelease_SRS_CarrierSwitching { + ASN_RRC_SetupRelease_SRS_CarrierSwitching_PR present; + union ASN_RRC_SetupRelease_SRS_CarrierSwitching_u { + NULL_t release; + struct ASN_RRC_SRS_CarrierSwitching *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_SRS_CarrierSwitching_t; +typedef struct ASN_RRC_SetupRelease_OverheatingAssistanceConfig { + ASN_RRC_SetupRelease_OverheatingAssistanceConfig_PR present; + union ASN_RRC_SetupRelease_OverheatingAssistanceConfig_u { + NULL_t release; + struct ASN_RRC_OverheatingAssistanceConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SetupRelease_OverheatingAssistanceConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_LocationMeasurementInfo; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_LocationMeasurementInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_LocationMeasurementInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_LocationMeasurementInfo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_specs_4; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_4[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_MRDC_SecondaryCellGroupConfig_constr_4; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_ConfigCommon; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_specs_7; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_7[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDCCH_ConfigCommon_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_ConfigCommon; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_specs_10; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_10[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDSCH_ConfigCommon_constr_10; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_Config_specs_13; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_Config_13[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDCCH_Config_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_Config_specs_16; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_Config_16[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDSCH_Config_constr_16; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SPS_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SPS_Config_specs_19; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SPS_Config_19[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SPS_Config_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_specs_22; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_22[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_RadioLinkMonitoringConfig_constr_22; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RACH_ConfigCommon; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RACH_ConfigCommon_specs_25; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RACH_ConfigCommon_25[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_RACH_ConfigCommon_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_ConfigCommon; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_specs_28; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_28[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_ConfigCommon_constr_28; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_ConfigCommon; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_specs_31; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_31[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUCCH_ConfigCommon_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_Config_specs_34; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_Config_34[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUCCH_Config_constr_34; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_Config_specs_37; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_Config_37[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_Config_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_ConfiguredGrantConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_ConfiguredGrantConfig_specs_40; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_ConfiguredGrantConfig_40[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_ConfiguredGrantConfig_constr_40; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_Config_specs_43; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_Config_43[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SRS_Config_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_specs_46; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_46[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_BeamFailureRecoveryConfig_constr_46; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RLF_TimersAndConstants; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RLF_TimersAndConstants_specs_49; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RLF_TimersAndConstants_49[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_RLF_TimersAndConstants_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_specs_52; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_52[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH_constr_52; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_specs_55; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_55[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_CSI_AperiodicTriggerStateList_constr_55; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_58; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_58[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_58; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PTRS_DownlinkConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_specs_61; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_61[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PTRS_DownlinkConfig_constr_61; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PTRS_UplinkConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PTRS_UplinkConfig_specs_64; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PTRS_UplinkConfig_64[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PTRS_UplinkConfig_constr_64; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DRX_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DRX_Config_specs_67; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DRX_Config_67[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_DRX_Config_constr_67; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PHR_Config; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PHR_Config_specs_70; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PHR_Config_70[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PHR_Config_constr_70; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DataInactivityTimer; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DataInactivityTimer_specs_73; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DataInactivityTimer_73[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_DataInactivityTimer_constr_73; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_GapConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_GapConfig_specs_76; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_GapConfig_76[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_GapConfig_constr_76; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_MeasGapSharingScheme; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_MeasGapSharingScheme_specs_79; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_MeasGapSharingScheme_79[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_MeasGapSharingScheme_constr_79; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_specs_82; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_82[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_CSI_RS_ResourceConfigMobility_constr_82; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SSB_ToMeasure; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SSB_ToMeasure_specs_85; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SSB_ToMeasure_85[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SSB_ToMeasure_constr_85; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DownlinkPreemption; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DownlinkPreemption_specs_88; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DownlinkPreemption_88[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_DownlinkPreemption_constr_88; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_specs_91; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_91[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_TPC_CommandConfig_constr_91; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_specs_94; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_94[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUCCH_TPC_CommandConfig_constr_94; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_specs_97; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_97[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SRS_TPC_CommandConfig_constr_97; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SlotFormatIndicator; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SlotFormatIndicator_specs_100; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SlotFormatIndicator_100[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SlotFormatIndicator_constr_100; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DMRS_DownlinkConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_specs_103; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_103[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_DMRS_DownlinkConfig_constr_103; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_specs_106; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_106[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDSCH_TimeDomainResourceAllocationList_constr_106; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_specs_109; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_109[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_ZP_CSI_RS_ResourceSet_constr_109; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_specs_112; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_112[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDSCH_CodeBlockGroupTransmission_constr_112; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RNTI_Value; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RNTI_Value_specs_115; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RNTI_Value_115[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_RNTI_Value_constr_115; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_BlindDetection; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_BlindDetection_specs_118; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_BlindDetection_118[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDCCH_BlindDetection_constr_118; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUCCH_FormatConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUCCH_FormatConfig_specs_121; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUCCH_FormatConfig_121[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUCCH_FormatConfig_constr_121; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_DMRS_UplinkConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_DMRS_UplinkConfig_specs_124; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_DMRS_UplinkConfig_124[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_DMRS_UplinkConfig_constr_124; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_specs_127; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_127[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_TimeDomainResourceAllocationList_constr_127; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_UCI_OnPUSCH; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_UCI_OnPUSCH_specs_130; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_UCI_OnPUSCH_130[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_UCI_OnPUSCH_constr_130; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_specs_133; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_133[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_CodeBlockGroupTransmission_constr_133; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_specs_136; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_136[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDCCH_ServingCellConfig_constr_136; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_specs_139; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_139[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PDSCH_ServingCellConfig_constr_139; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_CSI_MeasConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_CSI_MeasConfig_specs_142; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_CSI_MeasConfig_142[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_CSI_MeasConfig_constr_142; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_specs_145; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_145[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_RateMatchPatternLTE_CRS_constr_145; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_specs_148; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_148[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig_constr_148; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_SRS_CarrierSwitching; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_SRS_CarrierSwitching_specs_151; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_SRS_CarrierSwitching_151[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_SRS_CarrierSwitching_constr_151; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SetupRelease_OverheatingAssistanceConfig; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_specs_154; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_154[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SetupRelease_OverheatingAssistanceConfig_constr_154; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SetupRelease_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.c b/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.c new file mode 100644 index 0000000..2cb544b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ShortI-RNTI-Value.h" + +int +ASN_RRC_ShortI_RNTI_Value_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_ASN_RRC_ShortI_RNTI_Value_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_ASN_RRC_ShortI_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ShortI_RNTI_Value = { + "ShortI-RNTI-Value", + "ShortI-RNTI-Value", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1, + sizeof(asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1) + /sizeof(asn_DEF_ASN_RRC_ShortI_RNTI_Value_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ShortI_RNTI_Value_constr_1, ASN_RRC_ShortI_RNTI_Value_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.h b/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.h new file mode 100644 index 0000000..c825597 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ShortI-RNTI-Value.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ShortI_RNTI_Value_H_ +#define _ASN_RRC_ShortI_RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ShortI-RNTI-Value */ +typedef BIT_STRING_t ASN_RRC_ShortI_RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ShortI_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ShortI_RNTI_Value; +asn_struct_free_f ASN_RRC_ShortI_RNTI_Value_free; +asn_struct_print_f ASN_RRC_ShortI_RNTI_Value_print; +asn_constr_check_f ASN_RRC_ShortI_RNTI_Value_constraint; +ber_type_decoder_f ASN_RRC_ShortI_RNTI_Value_decode_ber; +der_type_encoder_f ASN_RRC_ShortI_RNTI_Value_encode_der; +xer_type_decoder_f ASN_RRC_ShortI_RNTI_Value_decode_xer; +xer_type_encoder_f ASN_RRC_ShortI_RNTI_Value_encode_xer; +per_type_decoder_f ASN_RRC_ShortI_RNTI_Value_decode_uper; +per_type_encoder_f ASN_RRC_ShortI_RNTI_Value_encode_uper; +per_type_decoder_f ASN_RRC_ShortI_RNTI_Value_decode_aper; +per_type_encoder_f ASN_RRC_ShortI_RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ShortI_RNTI_Value_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ShortMAC-I.c b/src/asn/rrc/ASN_RRC_ShortMAC-I.c new file mode 100644 index 0000000..2649b2c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ShortMAC-I.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ShortMAC-I.h" + +int +ASN_RRC_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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_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_ASN_RRC_ShortMAC_I_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ShortMAC_I = { + "ShortMAC-I", + "ShortMAC-I", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_ShortMAC_I_tags_1, + sizeof(asn_DEF_ASN_RRC_ShortMAC_I_tags_1) + /sizeof(asn_DEF_ASN_RRC_ShortMAC_I_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ShortMAC_I_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ShortMAC_I_tags_1) + /sizeof(asn_DEF_ASN_RRC_ShortMAC_I_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ShortMAC_I_constr_1, ASN_RRC_ShortMAC_I_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ShortMAC-I.h b/src/asn/rrc/ASN_RRC_ShortMAC-I.h new file mode 100644 index 0000000..4278f33 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ShortMAC-I.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ShortMAC_I_H_ +#define _ASN_RRC_ShortMAC_I_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ShortMAC-I */ +typedef BIT_STRING_t ASN_RRC_ShortMAC_I_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ShortMAC_I_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ShortMAC_I; +asn_struct_free_f ASN_RRC_ShortMAC_I_free; +asn_struct_print_f ASN_RRC_ShortMAC_I_print; +asn_constr_check_f ASN_RRC_ShortMAC_I_constraint; +ber_type_decoder_f ASN_RRC_ShortMAC_I_decode_ber; +der_type_encoder_f ASN_RRC_ShortMAC_I_encode_der; +xer_type_decoder_f ASN_RRC_ShortMAC_I_decode_xer; +xer_type_encoder_f ASN_RRC_ShortMAC_I_encode_xer; +per_type_decoder_f ASN_RRC_ShortMAC_I_decode_uper; +per_type_encoder_f ASN_RRC_ShortMAC_I_encode_uper; +per_type_decoder_f ASN_RRC_ShortMAC_I_decode_aper; +per_type_encoder_f ASN_RRC_ShortMAC_I_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ShortMAC_I_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombination.c b/src/asn/rrc/ASN_RRC_SlotFormatCombination.c new file mode 100644 index 0000000..4cfd6c3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombination.c @@ -0,0 +1,163 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SlotFormatCombination.h" + +static int +memb_NativeInteger_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(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 int +memb_ASN_RRC_slotFormats_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 <= 256)) { + /* 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_memb_ASN_RRC_Member_constr_4 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_type_ASN_RRC_slotFormats_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_slotFormats_constr_3 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_ASN_RRC_slotFormats_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotFormats_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotFormats_specs_3 = { + sizeof(struct ASN_RRC_SlotFormatCombination__slotFormats), + offsetof(struct ASN_RRC_SlotFormatCombination__slotFormats, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotFormats_3 = { + "slotFormats", + "slotFormats", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotFormats_tags_3, + sizeof(asn_DEF_ASN_RRC_slotFormats_tags_3) + /sizeof(asn_DEF_ASN_RRC_slotFormats_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotFormats_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotFormats_tags_3) + /sizeof(asn_DEF_ASN_RRC_slotFormats_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotFormats_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotFormats_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotFormats_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatCombination_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatCombination, slotFormatCombinationId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SlotFormatCombinationId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotFormatCombinationId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatCombination, slotFormats), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_slotFormats_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotFormats_constr_3, memb_ASN_RRC_slotFormats_constraint_1 }, + 0, 0, /* No default value */ + "slotFormats" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SlotFormatCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SlotFormatCombination_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* slotFormatCombinationId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* slotFormats */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatCombination_specs_1 = { + sizeof(struct ASN_RRC_SlotFormatCombination), + offsetof(struct ASN_RRC_SlotFormatCombination, _asn_ctx), + asn_MAP_ASN_RRC_SlotFormatCombination_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombination = { + "SlotFormatCombination", + "SlotFormatCombination", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SlotFormatCombination_tags_1, + sizeof(asn_DEF_ASN_RRC_SlotFormatCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombination_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SlotFormatCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SlotFormatCombination_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombination_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SlotFormatCombination_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SlotFormatCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombination.h b/src/asn/rrc/ASN_RRC_SlotFormatCombination.h new file mode 100644 index 0000000..505276d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombination.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SlotFormatCombination_H_ +#define _ASN_RRC_SlotFormatCombination_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SlotFormatCombinationId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SlotFormatCombination */ +typedef struct ASN_RRC_SlotFormatCombination { + ASN_RRC_SlotFormatCombinationId_t slotFormatCombinationId; + struct ASN_RRC_SlotFormatCombination__slotFormats { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } slotFormats; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SlotFormatCombination_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombination; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatCombination_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SlotFormatCombination_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.c b/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.c new file mode 100644 index 0000000..00cc263 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SlotFormatCombinationId.h" + +int +ASN_RRC_SlotFormatCombinationId_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 <= 511)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_SlotFormatCombinationId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 511 } /* (0..511) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombinationId = { + "SlotFormatCombinationId", + "SlotFormatCombinationId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1, + sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SlotFormatCombinationId_constr_1, ASN_RRC_SlotFormatCombinationId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.h b/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.h new file mode 100644 index 0000000..9397400 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombinationId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SlotFormatCombinationId_H_ +#define _ASN_RRC_SlotFormatCombinationId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_SlotFormatCombinationId */ +typedef long ASN_RRC_SlotFormatCombinationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SlotFormatCombinationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombinationId; +asn_struct_free_f ASN_RRC_SlotFormatCombinationId_free; +asn_struct_print_f ASN_RRC_SlotFormatCombinationId_print; +asn_constr_check_f ASN_RRC_SlotFormatCombinationId_constraint; +ber_type_decoder_f ASN_RRC_SlotFormatCombinationId_decode_ber; +der_type_encoder_f ASN_RRC_SlotFormatCombinationId_encode_der; +xer_type_decoder_f ASN_RRC_SlotFormatCombinationId_decode_xer; +xer_type_encoder_f ASN_RRC_SlotFormatCombinationId_encode_xer; +per_type_decoder_f ASN_RRC_SlotFormatCombinationId_decode_uper; +per_type_encoder_f ASN_RRC_SlotFormatCombinationId_encode_uper; +per_type_decoder_f ASN_RRC_SlotFormatCombinationId_decode_aper; +per_type_encoder_f ASN_RRC_SlotFormatCombinationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SlotFormatCombinationId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.c b/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.c new file mode 100644 index 0000000..9464b88 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.c @@ -0,0 +1,196 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SlotFormatCombinationsPerCell.h" + +#include "ASN_RRC_SlotFormatCombination.h" +static int +memb_ASN_RRC_slotFormatCombinations_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 <= 512)) { + /* 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 int +memb_ASN_RRC_positionInDCI_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 <= 127)) { + /* Constraint 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_ASN_RRC_slotFormatCombinations_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slotFormatCombinations_constr_5 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 512 } /* (SIZE(1..512)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_positionInDCI_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_slotFormatCombinations_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SlotFormatCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotFormatCombinations_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotFormatCombinations_specs_5 = { + sizeof(struct ASN_RRC_SlotFormatCombinationsPerCell__slotFormatCombinations), + offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell__slotFormatCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotFormatCombinations_5 = { + "slotFormatCombinations", + "slotFormatCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotFormatCombinations_tags_5, + sizeof(asn_DEF_ASN_RRC_slotFormatCombinations_tags_5) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombinations_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotFormatCombinations_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotFormatCombinations_tags_5) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombinations_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotFormatCombinations_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotFormatCombinations_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotFormatCombinations_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatCombinationsPerCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, subcarrierSpacing2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing2" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, slotFormatCombinations), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_slotFormatCombinations_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotFormatCombinations_constr_5, memb_ASN_RRC_slotFormatCombinations_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombinations" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, positionInDCI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_positionInDCI_constr_7, memb_ASN_RRC_positionInDCI_constraint_1 }, + 0, 0, /* No default value */ + "positionInDCI" + }, +}; +static const int asn_MAP_ASN_RRC_SlotFormatCombinationsPerCell_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SlotFormatCombinationsPerCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servingCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subcarrierSpacing2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* slotFormatCombinations */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* positionInDCI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatCombinationsPerCell_specs_1 = { + sizeof(struct ASN_RRC_SlotFormatCombinationsPerCell), + offsetof(struct ASN_RRC_SlotFormatCombinationsPerCell, _asn_ctx), + asn_MAP_ASN_RRC_SlotFormatCombinationsPerCell_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SlotFormatCombinationsPerCell_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell = { + "SlotFormatCombinationsPerCell", + "SlotFormatCombinationsPerCell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1, + sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SlotFormatCombinationsPerCell_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_SlotFormatCombinationsPerCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.h b/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.h new file mode 100644 index 0000000..82f33a2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatCombinationsPerCell.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SlotFormatCombinationsPerCell_H_ +#define _ASN_RRC_SlotFormatCombinationsPerCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include "ASN_RRC_SubcarrierSpacing.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SlotFormatCombination; + +/* ASN_RRC_SlotFormatCombinationsPerCell */ +typedef struct ASN_RRC_SlotFormatCombinationsPerCell { + ASN_RRC_ServCellIndex_t servingCellId; + ASN_RRC_SubcarrierSpacing_t subcarrierSpacing; + ASN_RRC_SubcarrierSpacing_t *subcarrierSpacing2; /* OPTIONAL */ + struct ASN_RRC_SlotFormatCombinationsPerCell__slotFormatCombinations { + A_SEQUENCE_OF(struct ASN_RRC_SlotFormatCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotFormatCombinations; + long *positionInDCI; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SlotFormatCombinationsPerCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatCombinationsPerCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatCombinationsPerCell_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SlotFormatCombinationsPerCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SlotFormatIndicator.c b/src/asn/rrc/ASN_RRC_SlotFormatIndicator.c new file mode 100644 index 0000000..433f343 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatIndicator.c @@ -0,0 +1,259 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SlotFormatIndicator.h" + +#include "ASN_RRC_SlotFormatCombinationsPerCell.h" +static int +memb_ASN_RRC_dci_PayloadSize_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 <= 128)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_slotFormatCombToAddModList_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 <= 16)) { + /* 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 int +memb_ASN_RRC_slotFormatCombToReleaseList_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 <= 16)) { + /* 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_ASN_RRC_slotFormatCombToAddModList_constr_4 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_per_constraints_t asn_PER_type_ASN_RRC_slotFormatCombToReleaseList_constr_6 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_per_constraints_t asn_PER_memb_ASN_RRC_dci_PayloadSize_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 1, 128 } /* (1..128) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slotFormatCombToAddModList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_slotFormatCombToReleaseList_constr_6 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_ASN_RRC_slotFormatCombToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SlotFormatCombinationsPerCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotFormatCombToAddModList_specs_4 = { + sizeof(struct ASN_RRC_SlotFormatIndicator__slotFormatCombToAddModList), + offsetof(struct ASN_RRC_SlotFormatIndicator__slotFormatCombToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotFormatCombToAddModList_4 = { + "slotFormatCombToAddModList", + "slotFormatCombToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4, + sizeof(asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombToAddModList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotFormatCombToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotFormatCombToAddModList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotFormatCombToAddModList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_slotFormatCombToReleaseList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotFormatCombToReleaseList_specs_6 = { + sizeof(struct ASN_RRC_SlotFormatIndicator__slotFormatCombToReleaseList), + offsetof(struct ASN_RRC_SlotFormatIndicator__slotFormatCombToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotFormatCombToReleaseList_6 = { + "slotFormatCombToReleaseList", + "slotFormatCombToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6, + sizeof(asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6) + /sizeof(asn_DEF_ASN_RRC_slotFormatCombToReleaseList_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotFormatCombToReleaseList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotFormatCombToReleaseList_6, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotFormatCombToReleaseList_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatIndicator_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatIndicator, sfi_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sfi-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SlotFormatIndicator, dci_PayloadSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_dci_PayloadSize_constr_3, memb_ASN_RRC_dci_PayloadSize_constraint_1 }, + 0, 0, /* No default value */ + "dci-PayloadSize" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SlotFormatIndicator, slotFormatCombToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_slotFormatCombToAddModList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotFormatCombToAddModList_constr_4, memb_ASN_RRC_slotFormatCombToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SlotFormatIndicator, slotFormatCombToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_slotFormatCombToReleaseList_6, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotFormatCombToReleaseList_constr_6, memb_ASN_RRC_slotFormatCombToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombToReleaseList" + }, +}; +static const int asn_MAP_ASN_RRC_SlotFormatIndicator_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SlotFormatIndicator_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sfi-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dci-PayloadSize */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* slotFormatCombToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* slotFormatCombToReleaseList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatIndicator_specs_1 = { + sizeof(struct ASN_RRC_SlotFormatIndicator), + offsetof(struct ASN_RRC_SlotFormatIndicator, _asn_ctx), + asn_MAP_ASN_RRC_SlotFormatIndicator_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SlotFormatIndicator_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatIndicator = { + "SlotFormatIndicator", + "SlotFormatIndicator", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1, + sizeof(asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1) + /sizeof(asn_DEF_ASN_RRC_SlotFormatIndicator_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SlotFormatIndicator_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SlotFormatIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SlotFormatIndicator.h b/src/asn/rrc/ASN_RRC_SlotFormatIndicator.h new file mode 100644 index 0000000..cb39f2e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SlotFormatIndicator.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SlotFormatIndicator_H_ +#define _ASN_RRC_SlotFormatIndicator_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RNTI-Value.h" +#include +#include +#include +#include "ASN_RRC_ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_SlotFormatCombinationsPerCell; + +/* ASN_RRC_SlotFormatIndicator */ +typedef struct ASN_RRC_SlotFormatIndicator { + ASN_RRC_RNTI_Value_t sfi_RNTI; + long dci_PayloadSize; + struct ASN_RRC_SlotFormatIndicator__slotFormatCombToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_SlotFormatCombinationsPerCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotFormatCombToAddModList; + struct ASN_RRC_SlotFormatIndicator__slotFormatCombToReleaseList { + A_SEQUENCE_OF(ASN_RRC_ServCellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotFormatCombToReleaseList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SlotFormatIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SlotFormatIndicator; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SlotFormatIndicator_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SlotFormatIndicator_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SlotFormatIndicator_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SpCellConfig.c b/src/asn/rrc/ASN_RRC_SpCellConfig.c new file mode 100644 index 0000000..3a0e4aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpCellConfig.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SpCellConfig.h" + +#include "ASN_RRC_ReconfigurationWithSync.h" +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_ServingCellConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_rlmInSyncOutOfSyncThreshold_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_rlmInSyncOutOfSyncThreshold_value2enum_5[] = { + { 0, 2, "n1" } +}; +static const unsigned int asn_MAP_ASN_RRC_rlmInSyncOutOfSyncThreshold_enum2value_5[] = { + 0 /* n1(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rlmInSyncOutOfSyncThreshold_specs_5 = { + asn_MAP_ASN_RRC_rlmInSyncOutOfSyncThreshold_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_rlmInSyncOutOfSyncThreshold_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5[] = { + (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_ASN_RRC_rlmInSyncOutOfSyncThreshold_5 = { + "rlmInSyncOutOfSyncThreshold", + "rlmInSyncOutOfSyncThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5, + sizeof(asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5) + /sizeof(asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5) + /sizeof(asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_rlmInSyncOutOfSyncThreshold_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_rlmInSyncOutOfSyncThreshold_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SpCellConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_SpCellConfig, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_SpCellConfig, reconfigurationWithSync), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReconfigurationWithSync, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reconfigurationWithSync" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_SpCellConfig, rlf_TimersAndConstants), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_RLF_TimersAndConstants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlf-TimersAndConstants" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SpCellConfig, rlmInSyncOutOfSyncThreshold), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlmInSyncOutOfSyncThreshold" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SpCellConfig, spCellConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfigDedicated" + }, +}; +static const int asn_MAP_ASN_RRC_SpCellConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SpCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SpCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reconfigurationWithSync */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlf-TimersAndConstants */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rlmInSyncOutOfSyncThreshold */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* spCellConfigDedicated */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpCellConfig_specs_1 = { + sizeof(struct ASN_RRC_SpCellConfig), + offsetof(struct ASN_RRC_SpCellConfig, _asn_ctx), + asn_MAP_ASN_RRC_SpCellConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SpCellConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpCellConfig = { + "SpCellConfig", + "SpCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SpCellConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SpCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SpCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SpCellConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SpCellConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_SpCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SpCellConfig.h b/src/asn/rrc/ASN_RRC_SpCellConfig.h new file mode 100644 index 0000000..a4cdd29 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpCellConfig.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SpCellConfig_H_ +#define _ASN_RRC_SpCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SpCellConfig__rlmInSyncOutOfSyncThreshold { + ASN_RRC_SpCellConfig__rlmInSyncOutOfSyncThreshold_n1 = 0 +} e_ASN_RRC_SpCellConfig__rlmInSyncOutOfSyncThreshold; + +/* Forward declarations */ +struct ASN_RRC_ReconfigurationWithSync; +struct ASN_RRC_SetupRelease_RLF_TimersAndConstants; +struct ASN_RRC_ServingCellConfig; + +/* ASN_RRC_SpCellConfig */ +typedef struct ASN_RRC_SpCellConfig { + ASN_RRC_ServCellIndex_t *servCellIndex; /* OPTIONAL */ + struct ASN_RRC_ReconfigurationWithSync *reconfigurationWithSync; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_RLF_TimersAndConstants *rlf_TimersAndConstants; /* OPTIONAL */ + long *rlmInSyncOutOfSyncThreshold; /* OPTIONAL */ + struct ASN_RRC_ServingCellConfig *spCellConfigDedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SpCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rlmInSyncOutOfSyncThreshold_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SpCellConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SpCellConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SpatialRelations.c b/src/asn/rrc/ASN_RRC_SpatialRelations.c new file mode 100644 index 0000000..81d58c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpatialRelations.c @@ -0,0 +1,284 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SpatialRelations.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 asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberConfiguredSpatialRelations_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberActiveSpatialRelations_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 4 } /* (0..4) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_additionalActiveSpatialRelationPUCCH_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberDL_RS_QCL_TypeD_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_maxNumberConfiguredSpatialRelations_value2enum_2[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" }, + { 2, 3, "n16" }, + { 3, 3, "n32" }, + { 4, 3, "n64" }, + { 5, 3, "n96" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberConfiguredSpatialRelations_enum2value_2[] = { + 2, /* n16(2) */ + 3, /* n32(3) */ + 0, /* n4(0) */ + 4, /* n64(4) */ + 1, /* n8(1) */ + 5 /* n96(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberConfiguredSpatialRelations_specs_2 = { + asn_MAP_ASN_RRC_maxNumberConfiguredSpatialRelations_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberConfiguredSpatialRelations_enum2value_2, /* N => "tag"; sorted by N */ + 6, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_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_ASN_RRC_maxNumberConfiguredSpatialRelations_2 = { + "maxNumberConfiguredSpatialRelations", + "maxNumberConfiguredSpatialRelations", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberConfiguredSpatialRelations_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberConfiguredSpatialRelations_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberActiveSpatialRelations_value2enum_9[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberActiveSpatialRelations_enum2value_9[] = { + 0, /* n1(0) */ + 4, /* n14(4) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberActiveSpatialRelations_specs_9 = { + asn_MAP_ASN_RRC_maxNumberActiveSpatialRelations_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberActiveSpatialRelations_enum2value_9, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberActiveSpatialRelations_tags_9[] = { + (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_ASN_RRC_maxNumberActiveSpatialRelations_9 = { + "maxNumberActiveSpatialRelations", + "maxNumberActiveSpatialRelations", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9, + sizeof(asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9) + /sizeof(asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberActiveSpatialRelations_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberActiveSpatialRelations_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_additionalActiveSpatialRelationPUCCH_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_additionalActiveSpatialRelationPUCCH_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_additionalActiveSpatialRelationPUCCH_specs_15 = { + asn_MAP_ASN_RRC_additionalActiveSpatialRelationPUCCH_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_additionalActiveSpatialRelationPUCCH_enum2value_15, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15[] = { + (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_ASN_RRC_additionalActiveSpatialRelationPUCCH_15 = { + "additionalActiveSpatialRelationPUCCH", + "additionalActiveSpatialRelationPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15, + sizeof(asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15) + /sizeof(asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15) + /sizeof(asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_tags_15[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_additionalActiveSpatialRelationPUCCH_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_additionalActiveSpatialRelationPUCCH_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberDL_RS_QCL_TypeD_value2enum_17[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n14" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberDL_RS_QCL_TypeD_enum2value_17[] = { + 0, /* n1(0) */ + 4, /* n14(4) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberDL_RS_QCL_TypeD_specs_17 = { + asn_MAP_ASN_RRC_maxNumberDL_RS_QCL_TypeD_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberDL_RS_QCL_TypeD_enum2value_17, /* N => "tag"; sorted by N */ + 5, /* 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_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17[] = { + (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_ASN_RRC_maxNumberDL_RS_QCL_TypeD_17 = { + "maxNumberDL-RS-QCL-TypeD", + "maxNumberDL-RS-QCL-TypeD", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17, + sizeof(asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17) + /sizeof(asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17) + /sizeof(asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberDL_RS_QCL_TypeD_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberDL_RS_QCL_TypeD_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SpatialRelations_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SpatialRelations, maxNumberConfiguredSpatialRelations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberConfiguredSpatialRelations" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SpatialRelations, maxNumberActiveSpatialRelations), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberActiveSpatialRelations" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SpatialRelations, additionalActiveSpatialRelationPUCCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalActiveSpatialRelationPUCCH" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SpatialRelations, maxNumberDL_RS_QCL_TypeD), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberDL-RS-QCL-TypeD" + }, +}; +static const int asn_MAP_ASN_RRC_SpatialRelations_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SpatialRelations_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SpatialRelations_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberConfiguredSpatialRelations */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberActiveSpatialRelations */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* additionalActiveSpatialRelationPUCCH */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* maxNumberDL-RS-QCL-TypeD */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpatialRelations_specs_1 = { + sizeof(struct ASN_RRC_SpatialRelations), + offsetof(struct ASN_RRC_SpatialRelations, _asn_ctx), + asn_MAP_ASN_RRC_SpatialRelations_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SpatialRelations_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpatialRelations = { + "SpatialRelations", + "SpatialRelations", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SpatialRelations_tags_1, + sizeof(asn_DEF_ASN_RRC_SpatialRelations_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpatialRelations_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SpatialRelations_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SpatialRelations_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpatialRelations_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SpatialRelations_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_SpatialRelations_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SpatialRelations.h b/src/asn/rrc/ASN_RRC_SpatialRelations.h new file mode 100644 index 0000000..3b49067 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpatialRelations.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SpatialRelations_H_ +#define _ASN_RRC_SpatialRelations_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations { + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n4 = 0, + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n8 = 1, + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n16 = 2, + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n32 = 3, + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n64 = 4, + ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations_n96 = 5 +} e_ASN_RRC_SpatialRelations__maxNumberConfiguredSpatialRelations; +typedef enum ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations { + ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations_n1 = 0, + ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations_n2 = 1, + ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations_n4 = 2, + ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations_n8 = 3, + ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations_n14 = 4 +} e_ASN_RRC_SpatialRelations__maxNumberActiveSpatialRelations; +typedef enum ASN_RRC_SpatialRelations__additionalActiveSpatialRelationPUCCH { + ASN_RRC_SpatialRelations__additionalActiveSpatialRelationPUCCH_supported = 0 +} e_ASN_RRC_SpatialRelations__additionalActiveSpatialRelationPUCCH; +typedef enum ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD { + ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD_n1 = 0, + ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD_n2 = 1, + ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD_n4 = 2, + ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD_n8 = 3, + ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD_n14 = 4 +} e_ASN_RRC_SpatialRelations__maxNumberDL_RS_QCL_TypeD; + +/* ASN_RRC_SpatialRelations */ +typedef struct ASN_RRC_SpatialRelations { + long maxNumberConfiguredSpatialRelations; + long maxNumberActiveSpatialRelations; + long *additionalActiveSpatialRelationPUCCH; /* OPTIONAL */ + long maxNumberDL_RS_QCL_TypeD; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SpatialRelations_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberConfiguredSpatialRelations_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberActiveSpatialRelations_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_additionalActiveSpatialRelationPUCCH_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberDL_RS_QCL_TypeD_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpatialRelations; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpatialRelations_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SpatialRelations_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SpatialRelations_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.c b/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.c new file mode 100644 index 0000000..bb7984a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SpeedStateScaleFactors.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_ASN_RRC_sf_Medium_constr_2 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_type_ASN_RRC_sf_High_constr_7 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_ASN_RRC_sf_Medium_value2enum_2[] = { + { 0, 6, "oDot25" }, + { 1, 5, "oDot5" }, + { 2, 6, "oDot75" }, + { 3, 5, "lDot0" } +}; +static const unsigned int asn_MAP_ASN_RRC_sf_Medium_enum2value_2[] = { + 3, /* lDot0(3) */ + 0, /* oDot25(0) */ + 1, /* oDot5(1) */ + 2 /* oDot75(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sf_Medium_specs_2 = { + asn_MAP_ASN_RRC_sf_Medium_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sf_Medium_enum2value_2, /* 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_ASN_RRC_sf_Medium_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_ASN_RRC_sf_Medium_2 = { + "sf-Medium", + "sf-Medium", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sf_Medium_tags_2, + sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_2) + /sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sf_Medium_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_2) + /sizeof(asn_DEF_ASN_RRC_sf_Medium_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sf_Medium_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sf_Medium_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_sf_High_value2enum_7[] = { + { 0, 6, "oDot25" }, + { 1, 5, "oDot5" }, + { 2, 6, "oDot75" }, + { 3, 5, "lDot0" } +}; +static const unsigned int asn_MAP_ASN_RRC_sf_High_enum2value_7[] = { + 3, /* lDot0(3) */ + 0, /* oDot25(0) */ + 1, /* oDot5(1) */ + 2 /* oDot75(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_sf_High_specs_7 = { + asn_MAP_ASN_RRC_sf_High_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_sf_High_enum2value_7, /* 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_ASN_RRC_sf_High_tags_7[] = { + (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_ASN_RRC_sf_High_7 = { + "sf-High", + "sf-High", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_sf_High_tags_7, + sizeof(asn_DEF_ASN_RRC_sf_High_tags_7) + /sizeof(asn_DEF_ASN_RRC_sf_High_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sf_High_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sf_High_tags_7) + /sizeof(asn_DEF_ASN_RRC_sf_High_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sf_High_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_sf_High_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SpeedStateScaleFactors_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SpeedStateScaleFactors, sf_Medium), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sf_Medium_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-Medium" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SpeedStateScaleFactors, sf_High), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_sf_High_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-High" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SpeedStateScaleFactors_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sf-Medium */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sf-High */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpeedStateScaleFactors_specs_1 = { + sizeof(struct ASN_RRC_SpeedStateScaleFactors), + offsetof(struct ASN_RRC_SpeedStateScaleFactors, _asn_ctx), + asn_MAP_ASN_RRC_SpeedStateScaleFactors_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpeedStateScaleFactors = { + "SpeedStateScaleFactors", + "SpeedStateScaleFactors", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1, + sizeof(asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1) + /sizeof(asn_DEF_ASN_RRC_SpeedStateScaleFactors_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SpeedStateScaleFactors_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SpeedStateScaleFactors_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.h b/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.h new file mode 100644 index 0000000..d5362cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SpeedStateScaleFactors.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SpeedStateScaleFactors_H_ +#define _ASN_RRC_SpeedStateScaleFactors_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SpeedStateScaleFactors__sf_Medium { + ASN_RRC_SpeedStateScaleFactors__sf_Medium_oDot25 = 0, + ASN_RRC_SpeedStateScaleFactors__sf_Medium_oDot5 = 1, + ASN_RRC_SpeedStateScaleFactors__sf_Medium_oDot75 = 2, + ASN_RRC_SpeedStateScaleFactors__sf_Medium_lDot0 = 3 +} e_ASN_RRC_SpeedStateScaleFactors__sf_Medium; +typedef enum ASN_RRC_SpeedStateScaleFactors__sf_High { + ASN_RRC_SpeedStateScaleFactors__sf_High_oDot25 = 0, + ASN_RRC_SpeedStateScaleFactors__sf_High_oDot5 = 1, + ASN_RRC_SpeedStateScaleFactors__sf_High_oDot75 = 2, + ASN_RRC_SpeedStateScaleFactors__sf_High_lDot0 = 3 +} e_ASN_RRC_SpeedStateScaleFactors__sf_High; + +/* ASN_RRC_SpeedStateScaleFactors */ +typedef struct ASN_RRC_SpeedStateScaleFactors { + long sf_Medium; + long sf_High; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SpeedStateScaleFactors_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sf_Medium_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sf_High_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SpeedStateScaleFactors; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SpeedStateScaleFactors_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SpeedStateScaleFactors_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SpeedStateScaleFactors_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SubcarrierSpacing.c b/src/asn/rrc/ASN_RRC_SubcarrierSpacing.c new file mode 100644 index 0000000..4565c57 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SubcarrierSpacing.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SubcarrierSpacing.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_SubcarrierSpacing_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_ASN_RRC_SubcarrierSpacing_value2enum_1[] = { + { 0, 5, "kHz15" }, + { 1, 5, "kHz30" }, + { 2, 5, "kHz60" }, + { 3, 6, "kHz120" }, + { 4, 6, "kHz240" }, + { 5, 6, "spare3" }, + { 6, 6, "spare2" }, + { 7, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_SubcarrierSpacing_enum2value_1[] = { + 3, /* kHz120(3) */ + 0, /* kHz15(0) */ + 4, /* kHz240(4) */ + 1, /* kHz30(1) */ + 2, /* kHz60(2) */ + 7, /* spare1(7) */ + 6, /* spare2(6) */ + 5 /* spare3(5) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SubcarrierSpacing_specs_1 = { + asn_MAP_ASN_RRC_SubcarrierSpacing_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_SubcarrierSpacing_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_ASN_RRC_SubcarrierSpacing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SubcarrierSpacing = { + "SubcarrierSpacing", + "SubcarrierSpacing", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1, + sizeof(asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1) + /sizeof(asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1) + /sizeof(asn_DEF_ASN_RRC_SubcarrierSpacing_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_SubcarrierSpacing_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_SubcarrierSpacing_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SubcarrierSpacing.h b/src/asn/rrc/ASN_RRC_SubcarrierSpacing.h new file mode 100644 index 0000000..57b3add --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SubcarrierSpacing.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SubcarrierSpacing_H_ +#define _ASN_RRC_SubcarrierSpacing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SubcarrierSpacing { + ASN_RRC_SubcarrierSpacing_kHz15 = 0, + ASN_RRC_SubcarrierSpacing_kHz30 = 1, + ASN_RRC_SubcarrierSpacing_kHz60 = 2, + ASN_RRC_SubcarrierSpacing_kHz120 = 3, + ASN_RRC_SubcarrierSpacing_kHz240 = 4, + ASN_RRC_SubcarrierSpacing_spare3 = 5, + ASN_RRC_SubcarrierSpacing_spare2 = 6, + ASN_RRC_SubcarrierSpacing_spare1 = 7 +} e_ASN_RRC_SubcarrierSpacing; + +/* ASN_RRC_SubcarrierSpacing */ +typedef long ASN_RRC_SubcarrierSpacing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SubcarrierSpacing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SubcarrierSpacing; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_SubcarrierSpacing_specs_1; +asn_struct_free_f ASN_RRC_SubcarrierSpacing_free; +asn_struct_print_f ASN_RRC_SubcarrierSpacing_print; +asn_constr_check_f ASN_RRC_SubcarrierSpacing_constraint; +ber_type_decoder_f ASN_RRC_SubcarrierSpacing_decode_ber; +der_type_encoder_f ASN_RRC_SubcarrierSpacing_encode_der; +xer_type_decoder_f ASN_RRC_SubcarrierSpacing_decode_xer; +xer_type_encoder_f ASN_RRC_SubcarrierSpacing_encode_xer; +per_type_decoder_f ASN_RRC_SubcarrierSpacing_decode_uper; +per_type_encoder_f ASN_RRC_SubcarrierSpacing_encode_uper; +per_type_decoder_f ASN_RRC_SubcarrierSpacing_decode_aper; +per_type_encoder_f ASN_RRC_SubcarrierSpacing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SubcarrierSpacing_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SupportedBandwidth.c b/src/asn/rrc/ASN_RRC_SupportedBandwidth.c new file mode 100644 index 0000000..05de0ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SupportedBandwidth.c @@ -0,0 +1,176 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SupportedBandwidth.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_ASN_RRC_fr1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 10 } /* (0..10) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_fr2_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_SupportedBandwidth_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_ASN_RRC_fr1_value2enum_2[] = { + { 0, 4, "mhz5" }, + { 1, 5, "mhz10" }, + { 2, 5, "mhz15" }, + { 3, 5, "mhz20" }, + { 4, 5, "mhz25" }, + { 5, 5, "mhz30" }, + { 6, 5, "mhz40" }, + { 7, 5, "mhz50" }, + { 8, 5, "mhz60" }, + { 9, 5, "mhz80" }, + { 10, 6, "mhz100" } +}; +static const unsigned int asn_MAP_ASN_RRC_fr1_enum2value_2[] = { + 1, /* mhz10(1) */ + 10, /* mhz100(10) */ + 2, /* mhz15(2) */ + 3, /* mhz20(3) */ + 4, /* mhz25(4) */ + 5, /* mhz30(5) */ + 6, /* mhz40(6) */ + 0, /* mhz5(0) */ + 7, /* mhz50(7) */ + 8, /* mhz60(8) */ + 9 /* mhz80(9) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fr1_specs_2 = { + asn_MAP_ASN_RRC_fr1_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fr1_enum2value_2, /* N => "tag"; sorted by N */ + 11, /* 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_ASN_RRC_fr1_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_ASN_RRC_fr1_2 = { + "fr1", + "fr1", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fr1_tags_2, + sizeof(asn_DEF_ASN_RRC_fr1_tags_2) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr1_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr1_tags_2) + /sizeof(asn_DEF_ASN_RRC_fr1_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fr1_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fr1_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_fr2_value2enum_14[] = { + { 0, 5, "mhz50" }, + { 1, 6, "mhz100" }, + { 2, 6, "mhz200" }, + { 3, 6, "mhz400" } +}; +static const unsigned int asn_MAP_ASN_RRC_fr2_enum2value_14[] = { + 1, /* mhz100(1) */ + 2, /* mhz200(2) */ + 3, /* mhz400(3) */ + 0 /* mhz50(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_fr2_specs_14 = { + asn_MAP_ASN_RRC_fr2_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_fr2_enum2value_14, /* 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_ASN_RRC_fr2_tags_14[] = { + (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_ASN_RRC_fr2_14 = { + "fr2", + "fr2", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_fr2_tags_14, + sizeof(asn_DEF_ASN_RRC_fr2_tags_14) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_fr2_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_fr2_tags_14) + /sizeof(asn_DEF_ASN_RRC_fr2_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_fr2_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_fr2_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SupportedBandwidth_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SupportedBandwidth, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fr1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SupportedBandwidth, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_fr2_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SupportedBandwidth_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fr1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fr2 */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SupportedBandwidth_specs_1 = { + sizeof(struct ASN_RRC_SupportedBandwidth), + offsetof(struct ASN_RRC_SupportedBandwidth, _asn_ctx), + offsetof(struct ASN_RRC_SupportedBandwidth, present), + sizeof(((struct ASN_RRC_SupportedBandwidth *)0)->present), + asn_MAP_ASN_RRC_SupportedBandwidth_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SupportedBandwidth = { + "SupportedBandwidth", + "SupportedBandwidth", + &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_ASN_RRC_SupportedBandwidth_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_SupportedBandwidth_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_SupportedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SupportedBandwidth.h b/src/asn/rrc/ASN_RRC_SupportedBandwidth.h new file mode 100644 index 0000000..e03d391 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SupportedBandwidth.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SupportedBandwidth_H_ +#define _ASN_RRC_SupportedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SupportedBandwidth_PR { + ASN_RRC_SupportedBandwidth_PR_NOTHING, /* No components present */ + ASN_RRC_SupportedBandwidth_PR_fr1, + ASN_RRC_SupportedBandwidth_PR_fr2 +} ASN_RRC_SupportedBandwidth_PR; +typedef enum ASN_RRC_SupportedBandwidth__fr1 { + ASN_RRC_SupportedBandwidth__fr1_mhz5 = 0, + ASN_RRC_SupportedBandwidth__fr1_mhz10 = 1, + ASN_RRC_SupportedBandwidth__fr1_mhz15 = 2, + ASN_RRC_SupportedBandwidth__fr1_mhz20 = 3, + ASN_RRC_SupportedBandwidth__fr1_mhz25 = 4, + ASN_RRC_SupportedBandwidth__fr1_mhz30 = 5, + ASN_RRC_SupportedBandwidth__fr1_mhz40 = 6, + ASN_RRC_SupportedBandwidth__fr1_mhz50 = 7, + ASN_RRC_SupportedBandwidth__fr1_mhz60 = 8, + ASN_RRC_SupportedBandwidth__fr1_mhz80 = 9, + ASN_RRC_SupportedBandwidth__fr1_mhz100 = 10 +} e_ASN_RRC_SupportedBandwidth__fr1; +typedef enum ASN_RRC_SupportedBandwidth__fr2 { + ASN_RRC_SupportedBandwidth__fr2_mhz50 = 0, + ASN_RRC_SupportedBandwidth__fr2_mhz100 = 1, + ASN_RRC_SupportedBandwidth__fr2_mhz200 = 2, + ASN_RRC_SupportedBandwidth__fr2_mhz400 = 3 +} e_ASN_RRC_SupportedBandwidth__fr2; + +/* ASN_RRC_SupportedBandwidth */ +typedef struct ASN_RRC_SupportedBandwidth { + ASN_RRC_SupportedBandwidth_PR present; + union ASN_RRC_SupportedBandwidth_u { + long fr1; + long fr2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SupportedBandwidth_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr1_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_fr2_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SupportedBandwidth; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_SupportedBandwidth_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SupportedBandwidth_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_SupportedBandwidth_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SupportedBandwidth_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.c b/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.c new file mode 100644 index 0000000..ce82018 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.c @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SupportedCSI-RS-Resource.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_ASN_RRC_maxNumberResourcesPerBand_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 <= 64)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_totalNumberTxPortsPerBand_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 >= 2 && 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; + } +} + +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_maxNumberResourcesPerBand_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_totalNumberTxPortsPerBand_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p2" }, + { 1, 2, "p4" }, + { 2, 2, "p8" }, + { 3, 3, "p12" }, + { 4, 3, "p16" }, + { 5, 3, "p24" }, + { 6, 3, "p32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2[] = { + 3, /* p12(3) */ + 4, /* p16(4) */ + 0, /* p2(0) */ + 5, /* p24(5) */ + 6, /* p32(6) */ + 1, /* p4(1) */ + 2 /* p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_maxNumberTxPortsPerResource_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_ASN_RRC_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SupportedCSI_RS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SupportedCSI_RS_Resource, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SupportedCSI_RS_Resource, maxNumberResourcesPerBand), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_maxNumberResourcesPerBand_constr_10, memb_ASN_RRC_maxNumberResourcesPerBand_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResourcesPerBand" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SupportedCSI_RS_Resource, totalNumberTxPortsPerBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_totalNumberTxPortsPerBand_constr_11, memb_ASN_RRC_totalNumberTxPortsPerBand_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPortsPerBand" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SupportedCSI_RS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResourcesPerBand */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* totalNumberTxPortsPerBand */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SupportedCSI_RS_Resource_specs_1 = { + sizeof(struct ASN_RRC_SupportedCSI_RS_Resource), + offsetof(struct ASN_RRC_SupportedCSI_RS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_SupportedCSI_RS_Resource_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_ASN_RRC_SupportedCSI_RS_Resource = { + "SupportedCSI-RS-Resource", + "SupportedCSI-RS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_SupportedCSI_RS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SupportedCSI_RS_Resource_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SupportedCSI_RS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.h b/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.h new file mode 100644 index 0000000..93a61b8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SupportedCSI-RS-Resource.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SupportedCSI_RS_Resource_H_ +#define _ASN_RRC_SupportedCSI_RS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource { + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p2 = 0, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p4 = 1, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p8 = 2, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p12 = 3, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p16 = 4, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p24 = 5, + ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource_p32 = 6 +} e_ASN_RRC_SupportedCSI_RS_Resource__maxNumberTxPortsPerResource; + +/* ASN_RRC_SupportedCSI-RS-Resource */ +typedef struct ASN_RRC_SupportedCSI_RS_Resource { + long maxNumberTxPortsPerResource; + long maxNumberResourcesPerBand; + long totalNumberTxPortsPerBand; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SupportedCSI_RS_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SupportedCSI_RS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SupportedCSI_RS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SupportedCSI_RS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SupportedCSI_RS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SuspendConfig.c b/src/asn/rrc/ASN_RRC_SuspendConfig.c new file mode 100644 index 0000000..f44673b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SuspendConfig.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SuspendConfig.h" + +#include "ASN_RRC_RAN-NotificationAreaInfo.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_SuspendConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SuspendConfig, fullI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullI-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SuspendConfig, shortI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ShortI_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortI-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SuspendConfig, ran_PagingCycle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PagingCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-PagingCycle" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SuspendConfig, ran_NotificationAreaInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAN_NotificationAreaInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-NotificationAreaInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SuspendConfig, t380), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PeriodicRNAU_TimerValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t380" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SuspendConfig, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, +}; +static const int asn_MAP_ASN_RRC_SuspendConfig_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SuspendConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SuspendConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fullI-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortI-RNTI */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ran-PagingCycle */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ran-NotificationAreaInfo */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* t380 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* nextHopChainingCount */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SuspendConfig_specs_1 = { + sizeof(struct ASN_RRC_SuspendConfig), + offsetof(struct ASN_RRC_SuspendConfig, _asn_ctx), + asn_MAP_ASN_RRC_SuspendConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SuspendConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SuspendConfig = { + "SuspendConfig", + "SuspendConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SuspendConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_SuspendConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SuspendConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SuspendConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SuspendConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_SuspendConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SuspendConfig_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_SuspendConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SuspendConfig.h b/src/asn/rrc/ASN_RRC_SuspendConfig.h new file mode 100644 index 0000000..b6322e6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SuspendConfig.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SuspendConfig_H_ +#define _ASN_RRC_SuspendConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_I-RNTI-Value.h" +#include "ASN_RRC_ShortI-RNTI-Value.h" +#include "ASN_RRC_PagingCycle.h" +#include "ASN_RRC_PeriodicRNAU-TimerValue.h" +#include "ASN_RRC_NextHopChainingCount.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_RAN_NotificationAreaInfo; + +/* ASN_RRC_SuspendConfig */ +typedef struct ASN_RRC_SuspendConfig { + ASN_RRC_I_RNTI_Value_t fullI_RNTI; + ASN_RRC_ShortI_RNTI_Value_t shortI_RNTI; + ASN_RRC_PagingCycle_t ran_PagingCycle; + struct ASN_RRC_RAN_NotificationAreaInfo *ran_NotificationAreaInfo; /* OPTIONAL */ + ASN_RRC_PeriodicRNAU_TimerValue_t *t380; /* OPTIONAL */ + ASN_RRC_NextHopChainingCount_t nextHopChainingCount; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SuspendConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SuspendConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SuspendConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SuspendConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SuspendConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SystemInformation-IEs.c b/src/asn/rrc/ASN_RRC_SystemInformation-IEs.c new file mode 100644 index 0000000..8805f25 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SystemInformation-IEs.c @@ -0,0 +1,295 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SystemInformation-IEs.h" + +#include "ASN_RRC_SIB2.h" +#include "ASN_RRC_SIB3.h" +#include "ASN_RRC_SIB4.h" +#include "ASN_RRC_SIB5.h" +#include "ASN_RRC_SIB6.h" +#include "ASN_RRC_SIB7.h" +#include "ASN_RRC_SIB8.h" +#include "ASN_RRC_SIB9.h" +static int +memb_ASN_RRC_sib_TypeAndInfo_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_ASN_RRC_Member_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_type_ASN_RRC_sib_TypeAndInfo_constr_2 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_ASN_RRC_sib_TypeAndInfo_constr_2 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_ASN_RRC_Member_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib2" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib3" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib4" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib5" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib6), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib6" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib7), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib7" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib8" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib9), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SIB9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib9" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_Member_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sib2 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* sib3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sib4 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* sib5 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* sib6 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* sib7 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* sib8 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* sib9 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_Member_specs_3 = { + sizeof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member), + offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, _asn_ctx), + offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member, present), + sizeof(((struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member *)0)->present), + asn_MAP_ASN_RRC_Member_tag2el_3, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_Member_3 = { + "CHOICE", + "CHOICE", + &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_ASN_RRC_Member_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_Member_3, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_Member_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_sib_TypeAndInfo_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_ASN_RRC_Member_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_sib_TypeAndInfo_specs_2 = { + sizeof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo), + offsetof(struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_sib_TypeAndInfo_2 = { + "sib-TypeAndInfo", + "sib-TypeAndInfo", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2, + sizeof(asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2) + /sizeof(asn_DEF_ASN_RRC_sib_TypeAndInfo_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_sib_TypeAndInfo_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_sib_TypeAndInfo_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_sib_TypeAndInfo_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_14 = { + sizeof(struct ASN_RRC_SystemInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_SystemInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_14 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_14, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SystemInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SystemInformation_IEs, sib_TypeAndInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_sib_TypeAndInfo_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_sib_TypeAndInfo_constr_2, memb_ASN_RRC_sib_TypeAndInfo_constraint_1 }, + 0, 0, /* No default value */ + "sib-TypeAndInfo" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_SystemInformation_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_SystemInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_SystemInformation_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SystemInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sib-TypeAndInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SystemInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_SystemInformation_IEs), + offsetof(struct ASN_RRC_SystemInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_SystemInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_SystemInformation_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SystemInformation_IEs = { + "SystemInformation-IEs", + "SystemInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_SystemInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SystemInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_SystemInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SystemInformation-IEs.h b/src/asn/rrc/ASN_RRC_SystemInformation-IEs.h new file mode 100644 index 0000000..228151f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SystemInformation-IEs.h @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SystemInformation_IEs_H_ +#define _ASN_RRC_SystemInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR { + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_NOTHING, /* No components present */ + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib2, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib3, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib4, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib5, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib6, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib7, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib8, + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib9 + /* Extensions may appear below */ + +} ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR; + +/* Forward declarations */ +struct ASN_RRC_SIB2; +struct ASN_RRC_SIB3; +struct ASN_RRC_SIB4; +struct ASN_RRC_SIB5; +struct ASN_RRC_SIB6; +struct ASN_RRC_SIB7; +struct ASN_RRC_SIB8; +struct ASN_RRC_SIB9; + +/* Forward definitions */ +typedef struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member { + ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo__Member_PR present; + union ASN_RRC_SystemInformation_IEs__ASN_RRC_sib_TypeAndInfo__ASN_RRC_Member_u { + struct ASN_RRC_SIB2 *sib2; + struct ASN_RRC_SIB3 *sib3; + struct ASN_RRC_SIB4 *sib4; + struct ASN_RRC_SIB5 *sib5; + struct ASN_RRC_SIB6 *sib6; + struct ASN_RRC_SIB7 *sib7; + struct ASN_RRC_SIB8 *sib8; + struct ASN_RRC_SIB9 *sib9; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SystemInformation_IEs__sib_TypeAndInfo__Member; + +/* ASN_RRC_SystemInformation-IEs */ +typedef struct ASN_RRC_SystemInformation_IEs { + struct ASN_RRC_SystemInformation_IEs__sib_TypeAndInfo { + A_SEQUENCE_OF(SystemInformation_IEs__sib_TypeAndInfo__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } sib_TypeAndInfo; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_SystemInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SystemInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SystemInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SystemInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SystemInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SystemInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_SystemInformation.c b/src/asn/rrc/ASN_RRC_SystemInformation.c new file mode 100644 index 0000000..dcf526a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SystemInformation.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_SystemInformation.h" + +#include "ASN_RRC_SystemInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_SystemInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_SystemInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation__criticalExtensions, choice.systemInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SystemInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_SystemInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* systemInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_SystemInformation__criticalExtensions), + offsetof(struct ASN_RRC_SystemInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_SystemInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_SystemInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_SystemInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_SystemInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_SystemInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_SystemInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SystemInformation_specs_1 = { + sizeof(struct ASN_RRC_SystemInformation), + offsetof(struct ASN_RRC_SystemInformation, _asn_ctx), + asn_MAP_ASN_RRC_SystemInformation_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_ASN_RRC_SystemInformation = { + "SystemInformation", + "SystemInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_SystemInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_SystemInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_SystemInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_SystemInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_SystemInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_SystemInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_SystemInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_SystemInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_SystemInformation.h b/src/asn/rrc/ASN_RRC_SystemInformation.h new file mode 100644 index 0000000..f3c1359 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_SystemInformation.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_SystemInformation_H_ +#define _ASN_RRC_SystemInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_SystemInformation__criticalExtensions_PR { + ASN_RRC_SystemInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_SystemInformation__criticalExtensions_PR_systemInformation, + ASN_RRC_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_SystemInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_SystemInformation_IEs; + +/* ASN_RRC_SystemInformation */ +typedef struct ASN_RRC_SystemInformation { + struct ASN_RRC_SystemInformation__criticalExtensions { + ASN_RRC_SystemInformation__criticalExtensions_PR present; + union ASN_RRC_SystemInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_SystemInformation_IEs *systemInformation; + struct ASN_RRC_SystemInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_SystemInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_SystemInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_SystemInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_SystemInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_SystemInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_T-PollRetransmit.c b/src/asn/rrc/ASN_RRC_T-PollRetransmit.c new file mode 100644 index 0000000..8e71392 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-PollRetransmit.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_T-PollRetransmit.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_T_PollRetransmit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_T_PollRetransmit_value2enum_1[] = { + { 0, 3, "ms5" }, + { 1, 4, "ms10" }, + { 2, 4, "ms15" }, + { 3, 4, "ms20" }, + { 4, 4, "ms25" }, + { 5, 4, "ms30" }, + { 6, 4, "ms35" }, + { 7, 4, "ms40" }, + { 8, 4, "ms45" }, + { 9, 4, "ms50" }, + { 10, 4, "ms55" }, + { 11, 4, "ms60" }, + { 12, 4, "ms65" }, + { 13, 4, "ms70" }, + { 14, 4, "ms75" }, + { 15, 4, "ms80" }, + { 16, 4, "ms85" }, + { 17, 4, "ms90" }, + { 18, 4, "ms95" }, + { 19, 5, "ms100" }, + { 20, 5, "ms105" }, + { 21, 5, "ms110" }, + { 22, 5, "ms115" }, + { 23, 5, "ms120" }, + { 24, 5, "ms125" }, + { 25, 5, "ms130" }, + { 26, 5, "ms135" }, + { 27, 5, "ms140" }, + { 28, 5, "ms145" }, + { 29, 5, "ms150" }, + { 30, 5, "ms155" }, + { 31, 5, "ms160" }, + { 32, 5, "ms165" }, + { 33, 5, "ms170" }, + { 34, 5, "ms175" }, + { 35, 5, "ms180" }, + { 36, 5, "ms185" }, + { 37, 5, "ms190" }, + { 38, 5, "ms195" }, + { 39, 5, "ms200" }, + { 40, 5, "ms205" }, + { 41, 5, "ms210" }, + { 42, 5, "ms215" }, + { 43, 5, "ms220" }, + { 44, 5, "ms225" }, + { 45, 5, "ms230" }, + { 46, 5, "ms235" }, + { 47, 5, "ms240" }, + { 48, 5, "ms245" }, + { 49, 5, "ms250" }, + { 50, 5, "ms300" }, + { 51, 5, "ms350" }, + { 52, 5, "ms400" }, + { 53, 5, "ms450" }, + { 54, 5, "ms500" }, + { 55, 5, "ms800" }, + { 56, 6, "ms1000" }, + { 57, 6, "ms2000" }, + { 58, 6, "ms4000" }, + { 59, 6, "spare5" }, + { 60, 6, "spare4" }, + { 61, 6, "spare3" }, + { 62, 6, "spare2" }, + { 63, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_T_PollRetransmit_enum2value_1[] = { + 1, /* ms10(1) */ + 19, /* ms100(19) */ + 56, /* ms1000(56) */ + 20, /* ms105(20) */ + 21, /* ms110(21) */ + 22, /* ms115(22) */ + 23, /* ms120(23) */ + 24, /* ms125(24) */ + 25, /* ms130(25) */ + 26, /* ms135(26) */ + 27, /* ms140(27) */ + 28, /* ms145(28) */ + 2, /* ms15(2) */ + 29, /* ms150(29) */ + 30, /* ms155(30) */ + 31, /* ms160(31) */ + 32, /* ms165(32) */ + 33, /* ms170(33) */ + 34, /* ms175(34) */ + 35, /* ms180(35) */ + 36, /* ms185(36) */ + 37, /* ms190(37) */ + 38, /* ms195(38) */ + 3, /* ms20(3) */ + 39, /* ms200(39) */ + 57, /* ms2000(57) */ + 40, /* ms205(40) */ + 41, /* ms210(41) */ + 42, /* ms215(42) */ + 43, /* ms220(43) */ + 44, /* ms225(44) */ + 45, /* ms230(45) */ + 46, /* ms235(46) */ + 47, /* ms240(47) */ + 48, /* ms245(48) */ + 4, /* ms25(4) */ + 49, /* ms250(49) */ + 5, /* ms30(5) */ + 50, /* ms300(50) */ + 6, /* ms35(6) */ + 51, /* ms350(51) */ + 7, /* ms40(7) */ + 52, /* ms400(52) */ + 58, /* ms4000(58) */ + 8, /* ms45(8) */ + 53, /* ms450(53) */ + 0, /* ms5(0) */ + 9, /* ms50(9) */ + 54, /* ms500(54) */ + 10, /* ms55(10) */ + 11, /* ms60(11) */ + 12, /* ms65(12) */ + 13, /* ms70(13) */ + 14, /* ms75(14) */ + 15, /* ms80(15) */ + 55, /* ms800(55) */ + 16, /* ms85(16) */ + 17, /* ms90(17) */ + 18, /* ms95(18) */ + 63, /* spare1(63) */ + 62, /* spare2(62) */ + 61, /* spare3(61) */ + 60, /* spare4(60) */ + 59 /* spare5(59) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_PollRetransmit_specs_1 = { + asn_MAP_ASN_RRC_T_PollRetransmit_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_T_PollRetransmit_enum2value_1, /* N => "tag"; sorted by N */ + 64, /* 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_ASN_RRC_T_PollRetransmit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_PollRetransmit = { + "T-PollRetransmit", + "T-PollRetransmit", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_T_PollRetransmit_tags_1, + sizeof(asn_DEF_ASN_RRC_T_PollRetransmit_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_PollRetransmit_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_T_PollRetransmit_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_T_PollRetransmit_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_PollRetransmit_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_T_PollRetransmit_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_T_PollRetransmit_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_T-PollRetransmit.h b/src/asn/rrc/ASN_RRC_T-PollRetransmit.h new file mode 100644 index 0000000..672cb52 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-PollRetransmit.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_T_PollRetransmit_H_ +#define _ASN_RRC_T_PollRetransmit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_T_PollRetransmit { + ASN_RRC_T_PollRetransmit_ms5 = 0, + ASN_RRC_T_PollRetransmit_ms10 = 1, + ASN_RRC_T_PollRetransmit_ms15 = 2, + ASN_RRC_T_PollRetransmit_ms20 = 3, + ASN_RRC_T_PollRetransmit_ms25 = 4, + ASN_RRC_T_PollRetransmit_ms30 = 5, + ASN_RRC_T_PollRetransmit_ms35 = 6, + ASN_RRC_T_PollRetransmit_ms40 = 7, + ASN_RRC_T_PollRetransmit_ms45 = 8, + ASN_RRC_T_PollRetransmit_ms50 = 9, + ASN_RRC_T_PollRetransmit_ms55 = 10, + ASN_RRC_T_PollRetransmit_ms60 = 11, + ASN_RRC_T_PollRetransmit_ms65 = 12, + ASN_RRC_T_PollRetransmit_ms70 = 13, + ASN_RRC_T_PollRetransmit_ms75 = 14, + ASN_RRC_T_PollRetransmit_ms80 = 15, + ASN_RRC_T_PollRetransmit_ms85 = 16, + ASN_RRC_T_PollRetransmit_ms90 = 17, + ASN_RRC_T_PollRetransmit_ms95 = 18, + ASN_RRC_T_PollRetransmit_ms100 = 19, + ASN_RRC_T_PollRetransmit_ms105 = 20, + ASN_RRC_T_PollRetransmit_ms110 = 21, + ASN_RRC_T_PollRetransmit_ms115 = 22, + ASN_RRC_T_PollRetransmit_ms120 = 23, + ASN_RRC_T_PollRetransmit_ms125 = 24, + ASN_RRC_T_PollRetransmit_ms130 = 25, + ASN_RRC_T_PollRetransmit_ms135 = 26, + ASN_RRC_T_PollRetransmit_ms140 = 27, + ASN_RRC_T_PollRetransmit_ms145 = 28, + ASN_RRC_T_PollRetransmit_ms150 = 29, + ASN_RRC_T_PollRetransmit_ms155 = 30, + ASN_RRC_T_PollRetransmit_ms160 = 31, + ASN_RRC_T_PollRetransmit_ms165 = 32, + ASN_RRC_T_PollRetransmit_ms170 = 33, + ASN_RRC_T_PollRetransmit_ms175 = 34, + ASN_RRC_T_PollRetransmit_ms180 = 35, + ASN_RRC_T_PollRetransmit_ms185 = 36, + ASN_RRC_T_PollRetransmit_ms190 = 37, + ASN_RRC_T_PollRetransmit_ms195 = 38, + ASN_RRC_T_PollRetransmit_ms200 = 39, + ASN_RRC_T_PollRetransmit_ms205 = 40, + ASN_RRC_T_PollRetransmit_ms210 = 41, + ASN_RRC_T_PollRetransmit_ms215 = 42, + ASN_RRC_T_PollRetransmit_ms220 = 43, + ASN_RRC_T_PollRetransmit_ms225 = 44, + ASN_RRC_T_PollRetransmit_ms230 = 45, + ASN_RRC_T_PollRetransmit_ms235 = 46, + ASN_RRC_T_PollRetransmit_ms240 = 47, + ASN_RRC_T_PollRetransmit_ms245 = 48, + ASN_RRC_T_PollRetransmit_ms250 = 49, + ASN_RRC_T_PollRetransmit_ms300 = 50, + ASN_RRC_T_PollRetransmit_ms350 = 51, + ASN_RRC_T_PollRetransmit_ms400 = 52, + ASN_RRC_T_PollRetransmit_ms450 = 53, + ASN_RRC_T_PollRetransmit_ms500 = 54, + ASN_RRC_T_PollRetransmit_ms800 = 55, + ASN_RRC_T_PollRetransmit_ms1000 = 56, + ASN_RRC_T_PollRetransmit_ms2000 = 57, + ASN_RRC_T_PollRetransmit_ms4000 = 58, + ASN_RRC_T_PollRetransmit_spare5 = 59, + ASN_RRC_T_PollRetransmit_spare4 = 60, + ASN_RRC_T_PollRetransmit_spare3 = 61, + ASN_RRC_T_PollRetransmit_spare2 = 62, + ASN_RRC_T_PollRetransmit_spare1 = 63 +} e_ASN_RRC_T_PollRetransmit; + +/* ASN_RRC_T-PollRetransmit */ +typedef long ASN_RRC_T_PollRetransmit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_T_PollRetransmit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_PollRetransmit; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_PollRetransmit_specs_1; +asn_struct_free_f ASN_RRC_T_PollRetransmit_free; +asn_struct_print_f ASN_RRC_T_PollRetransmit_print; +asn_constr_check_f ASN_RRC_T_PollRetransmit_constraint; +ber_type_decoder_f ASN_RRC_T_PollRetransmit_decode_ber; +der_type_encoder_f ASN_RRC_T_PollRetransmit_encode_der; +xer_type_decoder_f ASN_RRC_T_PollRetransmit_decode_xer; +xer_type_encoder_f ASN_RRC_T_PollRetransmit_encode_xer; +per_type_decoder_f ASN_RRC_T_PollRetransmit_decode_uper; +per_type_encoder_f ASN_RRC_T_PollRetransmit_encode_uper; +per_type_decoder_f ASN_RRC_T_PollRetransmit_decode_aper; +per_type_encoder_f ASN_RRC_T_PollRetransmit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_T_PollRetransmit_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_T-Reassembly.c b/src/asn/rrc/ASN_RRC_T-Reassembly.c new file mode 100644 index 0000000..0101d22 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-Reassembly.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_T-Reassembly.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_T_Reassembly_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_T_Reassembly_value2enum_1[] = { + { 0, 3, "ms0" }, + { 1, 3, "ms5" }, + { 2, 4, "ms10" }, + { 3, 4, "ms15" }, + { 4, 4, "ms20" }, + { 5, 4, "ms25" }, + { 6, 4, "ms30" }, + { 7, 4, "ms35" }, + { 8, 4, "ms40" }, + { 9, 4, "ms45" }, + { 10, 4, "ms50" }, + { 11, 4, "ms55" }, + { 12, 4, "ms60" }, + { 13, 4, "ms65" }, + { 14, 4, "ms70" }, + { 15, 4, "ms75" }, + { 16, 4, "ms80" }, + { 17, 4, "ms85" }, + { 18, 4, "ms90" }, + { 19, 4, "ms95" }, + { 20, 5, "ms100" }, + { 21, 5, "ms110" }, + { 22, 5, "ms120" }, + { 23, 5, "ms130" }, + { 24, 5, "ms140" }, + { 25, 5, "ms150" }, + { 26, 5, "ms160" }, + { 27, 5, "ms170" }, + { 28, 5, "ms180" }, + { 29, 5, "ms190" }, + { 30, 5, "ms200" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_T_Reassembly_enum2value_1[] = { + 0, /* ms0(0) */ + 2, /* ms10(2) */ + 20, /* ms100(20) */ + 21, /* ms110(21) */ + 22, /* ms120(22) */ + 23, /* ms130(23) */ + 24, /* ms140(24) */ + 3, /* ms15(3) */ + 25, /* ms150(25) */ + 26, /* ms160(26) */ + 27, /* ms170(27) */ + 28, /* ms180(28) */ + 29, /* ms190(29) */ + 4, /* ms20(4) */ + 30, /* ms200(30) */ + 5, /* ms25(5) */ + 6, /* ms30(6) */ + 7, /* ms35(7) */ + 8, /* ms40(8) */ + 9, /* ms45(9) */ + 1, /* ms5(1) */ + 10, /* ms50(10) */ + 11, /* ms55(11) */ + 12, /* ms60(12) */ + 13, /* ms65(13) */ + 14, /* ms70(14) */ + 15, /* ms75(15) */ + 16, /* ms80(16) */ + 17, /* ms85(17) */ + 18, /* ms90(18) */ + 19, /* ms95(19) */ + 31 /* spare1(31) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_Reassembly_specs_1 = { + asn_MAP_ASN_RRC_T_Reassembly_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_T_Reassembly_enum2value_1, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_T_Reassembly_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_Reassembly = { + "T-Reassembly", + "T-Reassembly", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_T_Reassembly_tags_1, + sizeof(asn_DEF_ASN_RRC_T_Reassembly_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_Reassembly_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_T_Reassembly_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_T_Reassembly_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_Reassembly_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_T_Reassembly_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_T_Reassembly_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_T-Reassembly.h b/src/asn/rrc/ASN_RRC_T-Reassembly.h new file mode 100644 index 0000000..5e663a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-Reassembly.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_T_Reassembly_H_ +#define _ASN_RRC_T_Reassembly_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_T_Reassembly { + ASN_RRC_T_Reassembly_ms0 = 0, + ASN_RRC_T_Reassembly_ms5 = 1, + ASN_RRC_T_Reassembly_ms10 = 2, + ASN_RRC_T_Reassembly_ms15 = 3, + ASN_RRC_T_Reassembly_ms20 = 4, + ASN_RRC_T_Reassembly_ms25 = 5, + ASN_RRC_T_Reassembly_ms30 = 6, + ASN_RRC_T_Reassembly_ms35 = 7, + ASN_RRC_T_Reassembly_ms40 = 8, + ASN_RRC_T_Reassembly_ms45 = 9, + ASN_RRC_T_Reassembly_ms50 = 10, + ASN_RRC_T_Reassembly_ms55 = 11, + ASN_RRC_T_Reassembly_ms60 = 12, + ASN_RRC_T_Reassembly_ms65 = 13, + ASN_RRC_T_Reassembly_ms70 = 14, + ASN_RRC_T_Reassembly_ms75 = 15, + ASN_RRC_T_Reassembly_ms80 = 16, + ASN_RRC_T_Reassembly_ms85 = 17, + ASN_RRC_T_Reassembly_ms90 = 18, + ASN_RRC_T_Reassembly_ms95 = 19, + ASN_RRC_T_Reassembly_ms100 = 20, + ASN_RRC_T_Reassembly_ms110 = 21, + ASN_RRC_T_Reassembly_ms120 = 22, + ASN_RRC_T_Reassembly_ms130 = 23, + ASN_RRC_T_Reassembly_ms140 = 24, + ASN_RRC_T_Reassembly_ms150 = 25, + ASN_RRC_T_Reassembly_ms160 = 26, + ASN_RRC_T_Reassembly_ms170 = 27, + ASN_RRC_T_Reassembly_ms180 = 28, + ASN_RRC_T_Reassembly_ms190 = 29, + ASN_RRC_T_Reassembly_ms200 = 30, + ASN_RRC_T_Reassembly_spare1 = 31 +} e_ASN_RRC_T_Reassembly; + +/* ASN_RRC_T-Reassembly */ +typedef long ASN_RRC_T_Reassembly_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_T_Reassembly_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_Reassembly; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_Reassembly_specs_1; +asn_struct_free_f ASN_RRC_T_Reassembly_free; +asn_struct_print_f ASN_RRC_T_Reassembly_print; +asn_constr_check_f ASN_RRC_T_Reassembly_constraint; +ber_type_decoder_f ASN_RRC_T_Reassembly_decode_ber; +der_type_encoder_f ASN_RRC_T_Reassembly_encode_der; +xer_type_decoder_f ASN_RRC_T_Reassembly_decode_xer; +xer_type_encoder_f ASN_RRC_T_Reassembly_encode_xer; +per_type_decoder_f ASN_RRC_T_Reassembly_decode_uper; +per_type_encoder_f ASN_RRC_T_Reassembly_encode_uper; +per_type_decoder_f ASN_RRC_T_Reassembly_decode_aper; +per_type_encoder_f ASN_RRC_T_Reassembly_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_T_Reassembly_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_T-Reselection.c b/src/asn/rrc/ASN_RRC_T-Reselection.c new file mode 100644 index 0000000..9e85692 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-Reselection.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_T-Reselection.h" + +int +ASN_RRC_T_Reselection_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_ASN_RRC_T_Reselection_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_ASN_RRC_T_Reselection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_Reselection = { + "T-Reselection", + "T-Reselection", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_T_Reselection_tags_1, + sizeof(asn_DEF_ASN_RRC_T_Reselection_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_Reselection_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_T_Reselection_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_T_Reselection_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_Reselection_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_T_Reselection_constr_1, ASN_RRC_T_Reselection_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_T-Reselection.h b/src/asn/rrc/ASN_RRC_T-Reselection.h new file mode 100644 index 0000000..1bea98a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-Reselection.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_T_Reselection_H_ +#define _ASN_RRC_T_Reselection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_T-Reselection */ +typedef long ASN_RRC_T_Reselection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_T_Reselection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_Reselection; +asn_struct_free_f ASN_RRC_T_Reselection_free; +asn_struct_print_f ASN_RRC_T_Reselection_print; +asn_constr_check_f ASN_RRC_T_Reselection_constraint; +ber_type_decoder_f ASN_RRC_T_Reselection_decode_ber; +der_type_encoder_f ASN_RRC_T_Reselection_encode_der; +xer_type_decoder_f ASN_RRC_T_Reselection_decode_xer; +xer_type_encoder_f ASN_RRC_T_Reselection_encode_xer; +per_type_decoder_f ASN_RRC_T_Reselection_decode_uper; +per_type_encoder_f ASN_RRC_T_Reselection_encode_uper; +per_type_decoder_f ASN_RRC_T_Reselection_decode_aper; +per_type_encoder_f ASN_RRC_T_Reselection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_T_Reselection_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_T-StatusProhibit.c b/src/asn/rrc/ASN_RRC_T-StatusProhibit.c new file mode 100644 index 0000000..37e80ca --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-StatusProhibit.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_T-StatusProhibit.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_T_StatusProhibit_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_T_StatusProhibit_value2enum_1[] = { + { 0, 3, "ms0" }, + { 1, 3, "ms5" }, + { 2, 4, "ms10" }, + { 3, 4, "ms15" }, + { 4, 4, "ms20" }, + { 5, 4, "ms25" }, + { 6, 4, "ms30" }, + { 7, 4, "ms35" }, + { 8, 4, "ms40" }, + { 9, 4, "ms45" }, + { 10, 4, "ms50" }, + { 11, 4, "ms55" }, + { 12, 4, "ms60" }, + { 13, 4, "ms65" }, + { 14, 4, "ms70" }, + { 15, 4, "ms75" }, + { 16, 4, "ms80" }, + { 17, 4, "ms85" }, + { 18, 4, "ms90" }, + { 19, 4, "ms95" }, + { 20, 5, "ms100" }, + { 21, 5, "ms105" }, + { 22, 5, "ms110" }, + { 23, 5, "ms115" }, + { 24, 5, "ms120" }, + { 25, 5, "ms125" }, + { 26, 5, "ms130" }, + { 27, 5, "ms135" }, + { 28, 5, "ms140" }, + { 29, 5, "ms145" }, + { 30, 5, "ms150" }, + { 31, 5, "ms155" }, + { 32, 5, "ms160" }, + { 33, 5, "ms165" }, + { 34, 5, "ms170" }, + { 35, 5, "ms175" }, + { 36, 5, "ms180" }, + { 37, 5, "ms185" }, + { 38, 5, "ms190" }, + { 39, 5, "ms195" }, + { 40, 5, "ms200" }, + { 41, 5, "ms205" }, + { 42, 5, "ms210" }, + { 43, 5, "ms215" }, + { 44, 5, "ms220" }, + { 45, 5, "ms225" }, + { 46, 5, "ms230" }, + { 47, 5, "ms235" }, + { 48, 5, "ms240" }, + { 49, 5, "ms245" }, + { 50, 5, "ms250" }, + { 51, 5, "ms300" }, + { 52, 5, "ms350" }, + { 53, 5, "ms400" }, + { 54, 5, "ms450" }, + { 55, 5, "ms500" }, + { 56, 5, "ms800" }, + { 57, 6, "ms1000" }, + { 58, 6, "ms1200" }, + { 59, 6, "ms1600" }, + { 60, 6, "ms2000" }, + { 61, 6, "ms2400" }, + { 62, 6, "spare2" }, + { 63, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_T_StatusProhibit_enum2value_1[] = { + 0, /* ms0(0) */ + 2, /* ms10(2) */ + 20, /* ms100(20) */ + 57, /* ms1000(57) */ + 21, /* ms105(21) */ + 22, /* ms110(22) */ + 23, /* ms115(23) */ + 24, /* ms120(24) */ + 58, /* ms1200(58) */ + 25, /* ms125(25) */ + 26, /* ms130(26) */ + 27, /* ms135(27) */ + 28, /* ms140(28) */ + 29, /* ms145(29) */ + 3, /* ms15(3) */ + 30, /* ms150(30) */ + 31, /* ms155(31) */ + 32, /* ms160(32) */ + 59, /* ms1600(59) */ + 33, /* ms165(33) */ + 34, /* ms170(34) */ + 35, /* ms175(35) */ + 36, /* ms180(36) */ + 37, /* ms185(37) */ + 38, /* ms190(38) */ + 39, /* ms195(39) */ + 4, /* ms20(4) */ + 40, /* ms200(40) */ + 60, /* ms2000(60) */ + 41, /* ms205(41) */ + 42, /* ms210(42) */ + 43, /* ms215(43) */ + 44, /* ms220(44) */ + 45, /* ms225(45) */ + 46, /* ms230(46) */ + 47, /* ms235(47) */ + 48, /* ms240(48) */ + 61, /* ms2400(61) */ + 49, /* ms245(49) */ + 5, /* ms25(5) */ + 50, /* ms250(50) */ + 6, /* ms30(6) */ + 51, /* ms300(51) */ + 7, /* ms35(7) */ + 52, /* ms350(52) */ + 8, /* ms40(8) */ + 53, /* ms400(53) */ + 9, /* ms45(9) */ + 54, /* ms450(54) */ + 1, /* ms5(1) */ + 10, /* ms50(10) */ + 55, /* ms500(55) */ + 11, /* ms55(11) */ + 12, /* ms60(12) */ + 13, /* ms65(13) */ + 14, /* ms70(14) */ + 15, /* ms75(15) */ + 16, /* ms80(16) */ + 56, /* ms800(56) */ + 17, /* ms85(17) */ + 18, /* ms90(18) */ + 19, /* ms95(19) */ + 63, /* spare1(63) */ + 62 /* spare2(62) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_StatusProhibit_specs_1 = { + asn_MAP_ASN_RRC_T_StatusProhibit_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_T_StatusProhibit_enum2value_1, /* N => "tag"; sorted by N */ + 64, /* 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_ASN_RRC_T_StatusProhibit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_StatusProhibit = { + "T-StatusProhibit", + "T-StatusProhibit", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_T_StatusProhibit_tags_1, + sizeof(asn_DEF_ASN_RRC_T_StatusProhibit_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_StatusProhibit_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_T_StatusProhibit_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_T_StatusProhibit_tags_1) + /sizeof(asn_DEF_ASN_RRC_T_StatusProhibit_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_T_StatusProhibit_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_T_StatusProhibit_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_T-StatusProhibit.h b/src/asn/rrc/ASN_RRC_T-StatusProhibit.h new file mode 100644 index 0000000..c97d2b0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_T-StatusProhibit.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_T_StatusProhibit_H_ +#define _ASN_RRC_T_StatusProhibit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_T_StatusProhibit { + ASN_RRC_T_StatusProhibit_ms0 = 0, + ASN_RRC_T_StatusProhibit_ms5 = 1, + ASN_RRC_T_StatusProhibit_ms10 = 2, + ASN_RRC_T_StatusProhibit_ms15 = 3, + ASN_RRC_T_StatusProhibit_ms20 = 4, + ASN_RRC_T_StatusProhibit_ms25 = 5, + ASN_RRC_T_StatusProhibit_ms30 = 6, + ASN_RRC_T_StatusProhibit_ms35 = 7, + ASN_RRC_T_StatusProhibit_ms40 = 8, + ASN_RRC_T_StatusProhibit_ms45 = 9, + ASN_RRC_T_StatusProhibit_ms50 = 10, + ASN_RRC_T_StatusProhibit_ms55 = 11, + ASN_RRC_T_StatusProhibit_ms60 = 12, + ASN_RRC_T_StatusProhibit_ms65 = 13, + ASN_RRC_T_StatusProhibit_ms70 = 14, + ASN_RRC_T_StatusProhibit_ms75 = 15, + ASN_RRC_T_StatusProhibit_ms80 = 16, + ASN_RRC_T_StatusProhibit_ms85 = 17, + ASN_RRC_T_StatusProhibit_ms90 = 18, + ASN_RRC_T_StatusProhibit_ms95 = 19, + ASN_RRC_T_StatusProhibit_ms100 = 20, + ASN_RRC_T_StatusProhibit_ms105 = 21, + ASN_RRC_T_StatusProhibit_ms110 = 22, + ASN_RRC_T_StatusProhibit_ms115 = 23, + ASN_RRC_T_StatusProhibit_ms120 = 24, + ASN_RRC_T_StatusProhibit_ms125 = 25, + ASN_RRC_T_StatusProhibit_ms130 = 26, + ASN_RRC_T_StatusProhibit_ms135 = 27, + ASN_RRC_T_StatusProhibit_ms140 = 28, + ASN_RRC_T_StatusProhibit_ms145 = 29, + ASN_RRC_T_StatusProhibit_ms150 = 30, + ASN_RRC_T_StatusProhibit_ms155 = 31, + ASN_RRC_T_StatusProhibit_ms160 = 32, + ASN_RRC_T_StatusProhibit_ms165 = 33, + ASN_RRC_T_StatusProhibit_ms170 = 34, + ASN_RRC_T_StatusProhibit_ms175 = 35, + ASN_RRC_T_StatusProhibit_ms180 = 36, + ASN_RRC_T_StatusProhibit_ms185 = 37, + ASN_RRC_T_StatusProhibit_ms190 = 38, + ASN_RRC_T_StatusProhibit_ms195 = 39, + ASN_RRC_T_StatusProhibit_ms200 = 40, + ASN_RRC_T_StatusProhibit_ms205 = 41, + ASN_RRC_T_StatusProhibit_ms210 = 42, + ASN_RRC_T_StatusProhibit_ms215 = 43, + ASN_RRC_T_StatusProhibit_ms220 = 44, + ASN_RRC_T_StatusProhibit_ms225 = 45, + ASN_RRC_T_StatusProhibit_ms230 = 46, + ASN_RRC_T_StatusProhibit_ms235 = 47, + ASN_RRC_T_StatusProhibit_ms240 = 48, + ASN_RRC_T_StatusProhibit_ms245 = 49, + ASN_RRC_T_StatusProhibit_ms250 = 50, + ASN_RRC_T_StatusProhibit_ms300 = 51, + ASN_RRC_T_StatusProhibit_ms350 = 52, + ASN_RRC_T_StatusProhibit_ms400 = 53, + ASN_RRC_T_StatusProhibit_ms450 = 54, + ASN_RRC_T_StatusProhibit_ms500 = 55, + ASN_RRC_T_StatusProhibit_ms800 = 56, + ASN_RRC_T_StatusProhibit_ms1000 = 57, + ASN_RRC_T_StatusProhibit_ms1200 = 58, + ASN_RRC_T_StatusProhibit_ms1600 = 59, + ASN_RRC_T_StatusProhibit_ms2000 = 60, + ASN_RRC_T_StatusProhibit_ms2400 = 61, + ASN_RRC_T_StatusProhibit_spare2 = 62, + ASN_RRC_T_StatusProhibit_spare1 = 63 +} e_ASN_RRC_T_StatusProhibit; + +/* ASN_RRC_T-StatusProhibit */ +typedef long ASN_RRC_T_StatusProhibit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_T_StatusProhibit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_T_StatusProhibit; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_T_StatusProhibit_specs_1; +asn_struct_free_f ASN_RRC_T_StatusProhibit_free; +asn_struct_print_f ASN_RRC_T_StatusProhibit_print; +asn_constr_check_f ASN_RRC_T_StatusProhibit_constraint; +ber_type_decoder_f ASN_RRC_T_StatusProhibit_decode_ber; +der_type_encoder_f ASN_RRC_T_StatusProhibit_encode_der; +xer_type_decoder_f ASN_RRC_T_StatusProhibit_decode_xer; +xer_type_encoder_f ASN_RRC_T_StatusProhibit_encode_xer; +per_type_decoder_f ASN_RRC_T_StatusProhibit_decode_uper; +per_type_encoder_f ASN_RRC_T_StatusProhibit_encode_uper; +per_type_decoder_f ASN_RRC_T_StatusProhibit_decode_aper; +per_type_encoder_f ASN_RRC_T_StatusProhibit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_T_StatusProhibit_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TAG-Config.c b/src/asn/rrc/ASN_RRC_TAG-Config.c new file mode 100644 index 0000000..d5c5289 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG-Config.c @@ -0,0 +1,209 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TAG-Config.h" + +#include "ASN_RRC_TAG.h" +static int +memb_ASN_RRC_tag_ToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_tag_ToAddModList_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 <= 4)) { + /* 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_ASN_RRC_tag_ToReleaseList_constr_2 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_per_constraints_t asn_PER_type_ASN_RRC_tag_ToAddModList_constr_4 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_per_constraints_t asn_PER_memb_ASN_RRC_tag_ToReleaseList_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_tag_ToAddModList_constr_4 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_ASN_RRC_tag_ToReleaseList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tag_ToReleaseList_specs_2 = { + sizeof(struct ASN_RRC_TAG_Config__tag_ToReleaseList), + offsetof(struct ASN_RRC_TAG_Config__tag_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tag_ToReleaseList_2 = { + "tag-ToReleaseList", + "tag-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2, + sizeof(asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2) + /sizeof(asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2) + /sizeof(asn_DEF_ASN_RRC_tag_ToReleaseList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tag_ToReleaseList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tag_ToReleaseList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tag_ToReleaseList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_tag_ToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_TAG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_tag_ToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_tag_ToAddModList_specs_4 = { + sizeof(struct ASN_RRC_TAG_Config__tag_ToAddModList), + offsetof(struct ASN_RRC_TAG_Config__tag_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_tag_ToAddModList_4 = { + "tag-ToAddModList", + "tag-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_tag_ToAddModList_tags_4, + sizeof(asn_DEF_ASN_RRC_tag_ToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_tag_ToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_tag_ToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_tag_ToAddModList_tags_4) + /sizeof(asn_DEF_ASN_RRC_tag_ToAddModList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_tag_ToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_tag_ToAddModList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_tag_ToAddModList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_TAG_Config_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_TAG_Config, tag_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_tag_ToReleaseList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_tag_ToReleaseList_constr_2, memb_ASN_RRC_tag_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tag-ToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TAG_Config, tag_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_tag_ToAddModList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_tag_ToAddModList_constr_4, memb_ASN_RRC_tag_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "tag-ToAddModList" + }, +}; +static const int asn_MAP_ASN_RRC_TAG_Config_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TAG_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TAG_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tag-ToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tag-ToAddModList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TAG_Config_specs_1 = { + sizeof(struct ASN_RRC_TAG_Config), + offsetof(struct ASN_RRC_TAG_Config, _asn_ctx), + asn_MAP_ASN_RRC_TAG_Config_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_TAG_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TAG_Config = { + "TAG-Config", + "TAG-Config", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TAG_Config_tags_1, + sizeof(asn_DEF_ASN_RRC_TAG_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_Config_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TAG_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TAG_Config_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TAG_Config_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_TAG_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TAG-Config.h b/src/asn/rrc/ASN_RRC_TAG-Config.h new file mode 100644 index 0000000..5554b8f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG-Config.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TAG_Config_H_ +#define _ASN_RRC_TAG_Config_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TAG-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_TAG; + +/* ASN_RRC_TAG-Config */ +typedef struct ASN_RRC_TAG_Config { + struct ASN_RRC_TAG_Config__tag_ToReleaseList { + A_SEQUENCE_OF(ASN_RRC_TAG_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tag_ToReleaseList; + struct ASN_RRC_TAG_Config__tag_ToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_TAG) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tag_ToAddModList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TAG_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TAG_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TAG_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TAG_Config_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TAG_Config_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TAG-Id.c b/src/asn/rrc/ASN_RRC_TAG-Id.c new file mode 100644 index 0000000..409e2d9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG-Id.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TAG-Id.h" + +int +ASN_RRC_TAG_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 <= 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 NativeInteger, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_TAG_Id_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 ber_tlv_tag_t asn_DEF_ASN_RRC_TAG_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TAG_Id = { + "TAG-Id", + "TAG-Id", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_TAG_Id_tags_1, + sizeof(asn_DEF_ASN_RRC_TAG_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_Id_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TAG_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TAG_Id_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_Id_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TAG_Id_constr_1, ASN_RRC_TAG_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TAG-Id.h b/src/asn/rrc/ASN_RRC_TAG-Id.h new file mode 100644 index 0000000..cf1d0c9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG-Id.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TAG_Id_H_ +#define _ASN_RRC_TAG_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_TAG-Id */ +typedef long ASN_RRC_TAG_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TAG_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TAG_Id; +asn_struct_free_f ASN_RRC_TAG_Id_free; +asn_struct_print_f ASN_RRC_TAG_Id_print; +asn_constr_check_f ASN_RRC_TAG_Id_constraint; +ber_type_decoder_f ASN_RRC_TAG_Id_decode_ber; +der_type_encoder_f ASN_RRC_TAG_Id_encode_der; +xer_type_decoder_f ASN_RRC_TAG_Id_decode_xer; +xer_type_encoder_f ASN_RRC_TAG_Id_encode_xer; +per_type_decoder_f ASN_RRC_TAG_Id_decode_uper; +per_type_encoder_f ASN_RRC_TAG_Id_encode_uper; +per_type_decoder_f ASN_RRC_TAG_Id_decode_aper; +per_type_encoder_f ASN_RRC_TAG_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TAG_Id_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TAG.c b/src/asn/rrc/ASN_RRC_TAG.c new file mode 100644 index 0000000..cdc1ba4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TAG.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_TAG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TAG, tag_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TAG, timeAlignmentTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeAlignmentTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TAG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TAG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tag-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeAlignmentTimer */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TAG_specs_1 = { + sizeof(struct ASN_RRC_TAG), + offsetof(struct ASN_RRC_TAG, _asn_ctx), + asn_MAP_ASN_RRC_TAG_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_ASN_RRC_TAG = { + "TAG", + "TAG", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TAG_tags_1, + sizeof(asn_DEF_ASN_RRC_TAG_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TAG_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TAG_tags_1) + /sizeof(asn_DEF_ASN_RRC_TAG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TAG_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_TAG_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TAG.h b/src/asn/rrc/ASN_RRC_TAG.h new file mode 100644 index 0000000..da7bb4d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TAG.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TAG_H_ +#define _ASN_RRC_TAG_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TAG-Id.h" +#include "ASN_RRC_TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_TAG */ +typedef struct ASN_RRC_TAG { + ASN_RRC_TAG_Id_t tag_Id; + ASN_RRC_TimeAlignmentTimer_t timeAlignmentTimer; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TAG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TAG; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TAG_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TAG_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TAG_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TCI-State.c b/src/asn/rrc/ASN_RRC_TCI-State.c new file mode 100644 index 0000000..e1638f0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TCI-State.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TCI-State.h" + +#include "ASN_RRC_QCL-Info.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_TCI_State_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TCI_State, tci_StateId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-StateId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TCI_State, qcl_Type1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QCL_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TCI_State, qcl_Type2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QCL_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type2" + }, +}; +static const int asn_MAP_ASN_RRC_TCI_State_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TCI_State_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TCI_State_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tci-StateId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* qcl-Type1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* qcl-Type2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TCI_State_specs_1 = { + sizeof(struct ASN_RRC_TCI_State), + offsetof(struct ASN_RRC_TCI_State, _asn_ctx), + asn_MAP_ASN_RRC_TCI_State_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_TCI_State_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TCI_State = { + "TCI-State", + "TCI-State", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TCI_State_tags_1, + sizeof(asn_DEF_ASN_RRC_TCI_State_tags_1) + /sizeof(asn_DEF_ASN_RRC_TCI_State_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TCI_State_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TCI_State_tags_1) + /sizeof(asn_DEF_ASN_RRC_TCI_State_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TCI_State_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_TCI_State_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TCI-State.h b/src/asn/rrc/ASN_RRC_TCI-State.h new file mode 100644 index 0000000..b7ee449 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TCI-State.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TCI_State_H_ +#define _ASN_RRC_TCI_State_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TCI-StateId.h" +#include "ASN_RRC_QCL-Info.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_QCL_Info; + +/* ASN_RRC_TCI-State */ +typedef struct ASN_RRC_TCI_State { + ASN_RRC_TCI_StateId_t tci_StateId; + ASN_RRC_QCL_Info_t qcl_Type1; + struct ASN_RRC_QCL_Info *qcl_Type2; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TCI_State_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TCI_State; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TCI_State_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TCI_State_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TCI_State_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TCI-StateId.c b/src/asn/rrc/ASN_RRC_TCI-StateId.c new file mode 100644 index 0000000..ac022c0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TCI-StateId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TCI-StateId.h" + +int +ASN_RRC_TCI_StateId_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 <= 127)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_TCI_StateId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 0, 127 } /* (0..127) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TCI_StateId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TCI_StateId = { + "TCI-StateId", + "TCI-StateId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_TCI_StateId_tags_1, + sizeof(asn_DEF_ASN_RRC_TCI_StateId_tags_1) + /sizeof(asn_DEF_ASN_RRC_TCI_StateId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TCI_StateId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TCI_StateId_tags_1) + /sizeof(asn_DEF_ASN_RRC_TCI_StateId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TCI_StateId_constr_1, ASN_RRC_TCI_StateId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TCI-StateId.h b/src/asn/rrc/ASN_RRC_TCI-StateId.h new file mode 100644 index 0000000..2b7dfd7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TCI-StateId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TCI_StateId_H_ +#define _ASN_RRC_TCI_StateId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_TCI-StateId */ +typedef long ASN_RRC_TCI_StateId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TCI_StateId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TCI_StateId; +asn_struct_free_f ASN_RRC_TCI_StateId_free; +asn_struct_print_f ASN_RRC_TCI_StateId_print; +asn_constr_check_f ASN_RRC_TCI_StateId_constraint; +ber_type_decoder_f ASN_RRC_TCI_StateId_decode_ber; +der_type_encoder_f ASN_RRC_TCI_StateId_encode_der; +xer_type_decoder_f ASN_RRC_TCI_StateId_decode_xer; +xer_type_encoder_f ASN_RRC_TCI_StateId_encode_xer; +per_type_decoder_f ASN_RRC_TCI_StateId_decode_uper; +per_type_encoder_f ASN_RRC_TCI_StateId_encode_uper; +per_type_decoder_f ASN_RRC_TCI_StateId_decode_aper; +per_type_encoder_f ASN_RRC_TCI_StateId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TCI_StateId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.c b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.c new file mode 100644 index 0000000..ccccfd3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TDD-UL-DL-ConfigCommon.h" + +#include "ASN_RRC_TDD-UL-DL-Pattern.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_ConfigCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_ConfigCommon, referenceSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_ConfigCommon, pattern1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_Pattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern1" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TDD_UL_DL_ConfigCommon, pattern2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_Pattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern2" + }, +}; +static const int asn_MAP_ASN_RRC_TDD_UL_DL_ConfigCommon_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TDD_UL_DL_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* referenceSubcarrierSpacing */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pattern1 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* pattern2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_ConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_TDD_UL_DL_ConfigCommon), + offsetof(struct ASN_RRC_TDD_UL_DL_ConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_TDD_UL_DL_ConfigCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_TDD_UL_DL_ConfigCommon_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon = { + "TDD-UL-DL-ConfigCommon", + "TDD-UL-DL-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TDD_UL_DL_ConfigCommon_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_TDD_UL_DL_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.h b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.h new file mode 100644 index 0000000..696b582 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigCommon.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TDD_UL_DL_ConfigCommon_H_ +#define _ASN_RRC_TDD_UL_DL_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SubcarrierSpacing.h" +#include "ASN_RRC_TDD-UL-DL-Pattern.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_TDD_UL_DL_Pattern; + +/* ASN_RRC_TDD-UL-DL-ConfigCommon */ +typedef struct ASN_RRC_TDD_UL_DL_ConfigCommon { + ASN_RRC_SubcarrierSpacing_t referenceSubcarrierSpacing; + ASN_RRC_TDD_UL_DL_Pattern_t pattern1; + struct ASN_RRC_TDD_UL_DL_Pattern *pattern2; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TDD_UL_DL_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_ConfigCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TDD_UL_DL_ConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.c b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.c new file mode 100644 index 0000000..fa429cf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.c @@ -0,0 +1,209 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TDD-UL-DL-ConfigDedicated.h" + +#include "ASN_RRC_TDD-UL-DL-SlotConfig.h" +static int +memb_ASN_RRC_slotSpecificConfigurationsToAddModList_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 <= 320)) { + /* 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 int +memb_ASN_RRC_slotSpecificConfigurationsToreleaseList_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 <= 320)) { + /* 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_ASN_RRC_slotSpecificConfigurationsToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 320 } /* (SIZE(1..320)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_slotSpecificConfigurationsToreleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 320 } /* (SIZE(1..320)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slotSpecificConfigurationsToAddModList_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 320 } /* (SIZE(1..320)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_slotSpecificConfigurationsToreleaseList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 9, 9, 1, 320 } /* (SIZE(1..320)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_slotSpecificConfigurationsToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotSpecificConfigurationsToAddModList_specs_2 = { + sizeof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToAddModList), + offsetof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_2 = { + "slotSpecificConfigurationsToAddModList", + "slotSpecificConfigurationsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2, + sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2) + /sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotSpecificConfigurationsToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotSpecificConfigurationsToAddModList_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotSpecificConfigurationsToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_slotSpecificConfigurationsToreleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_slotSpecificConfigurationsToreleaseList_specs_4 = { + sizeof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToreleaseList), + offsetof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToreleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_4 = { + "slotSpecificConfigurationsToreleaseList", + "slotSpecificConfigurationsToreleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4, + sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4) + /sizeof(asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_slotSpecificConfigurationsToreleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_slotSpecificConfigurationsToreleaseList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_slotSpecificConfigurationsToreleaseList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_ConfigDedicated_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated, slotSpecificConfigurationsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_slotSpecificConfigurationsToAddModList_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotSpecificConfigurationsToAddModList_constr_2, memb_ASN_RRC_slotSpecificConfigurationsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "slotSpecificConfigurationsToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated, slotSpecificConfigurationsToreleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_slotSpecificConfigurationsToreleaseList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_slotSpecificConfigurationsToreleaseList_constr_4, memb_ASN_RRC_slotSpecificConfigurationsToreleaseList_constraint_1 }, + 0, 0, /* No default value */ + "slotSpecificConfigurationsToreleaseList" + }, +}; +static const int asn_MAP_ASN_RRC_TDD_UL_DL_ConfigDedicated_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TDD_UL_DL_ConfigDedicated_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* slotSpecificConfigurationsToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* slotSpecificConfigurationsToreleaseList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_ConfigDedicated_specs_1 = { + sizeof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated), + offsetof(struct ASN_RRC_TDD_UL_DL_ConfigDedicated, _asn_ctx), + asn_MAP_ASN_RRC_TDD_UL_DL_ConfigDedicated_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_TDD_UL_DL_ConfigDedicated_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated = { + "TDD-UL-DL-ConfigDedicated", + "TDD-UL-DL-ConfigDedicated", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1, + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TDD_UL_DL_ConfigDedicated_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_TDD_UL_DL_ConfigDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.h b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.h new file mode 100644 index 0000000..fd0afa3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-ConfigDedicated.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TDD_UL_DL_ConfigDedicated_H_ +#define _ASN_RRC_TDD_UL_DL_ConfigDedicated_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ASN_RRC_TDD-UL-DL-SlotIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_TDD_UL_DL_SlotConfig; + +/* ASN_RRC_TDD-UL-DL-ConfigDedicated */ +typedef struct ASN_RRC_TDD_UL_DL_ConfigDedicated { + struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_TDD_UL_DL_SlotConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotSpecificConfigurationsToAddModList; + struct ASN_RRC_TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToreleaseList { + A_SEQUENCE_OF(ASN_RRC_TDD_UL_DL_SlotIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotSpecificConfigurationsToreleaseList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TDD_UL_DL_ConfigDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_ConfigDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_ConfigDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_ConfigDedicated_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TDD_UL_DL_ConfigDedicated_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.c b/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.c new file mode 100644 index 0000000..85957cb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.c @@ -0,0 +1,371 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TDD-UL-DL-Pattern.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 int +memb_ASN_RRC_nrofDownlinkSlots_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 <= 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_ASN_RRC_nrofDownlinkSymbols_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 <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofUplinkSlots_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 <= 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_ASN_RRC_nrofUplinkSymbols_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 <= 13)) { + /* Constraint 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_ASN_RRC_dl_UL_TransmissionPeriodicity_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_constr_17 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_ASN_RRC_nrofDownlinkSlots_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 320 } /* (0..320) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofDownlinkSymbols_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofUplinkSlots_constr_13 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 320 } /* (0..320) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofUplinkSymbols_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 13 } /* (0..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_value2enum_2[] = { + { 0, 5, "ms0p5" }, + { 1, 7, "ms0p625" }, + { 2, 3, "ms1" }, + { 3, 6, "ms1p25" }, + { 4, 3, "ms2" }, + { 5, 5, "ms2p5" }, + { 6, 3, "ms5" }, + { 7, 4, "ms10" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_enum2value_2[] = { + 0, /* ms0p5(0) */ + 1, /* ms0p625(1) */ + 2, /* ms1(2) */ + 7, /* ms10(7) */ + 3, /* ms1p25(3) */ + 4, /* ms2(4) */ + 5, /* ms2p5(5) */ + 6 /* ms5(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_UL_TransmissionPeriodicity_specs_2 = { + asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_enum2value_2, /* 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_ASN_RRC_dl_UL_TransmissionPeriodicity_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_ASN_RRC_dl_UL_TransmissionPeriodicity_2 = { + "dl-UL-TransmissionPeriodicity", + "dl-UL-TransmissionPeriodicity", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2, + sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2) + /sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2) + /sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_UL_TransmissionPeriodicity_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_UL_TransmissionPeriodicity_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_value2enum_17[] = { + { 0, 3, "ms3" }, + { 1, 3, "ms4" } +}; +static const unsigned int asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_enum2value_17[] = { + 0, /* ms3(0) */ + 1 /* ms4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_specs_17 = { + asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_enum2value_17, /* 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_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17[] = { + (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_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_17 = { + "dl-UL-TransmissionPeriodicity-v1530", + "dl-UL-TransmissionPeriodicity-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17, + sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17) + /sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17) + /sizeof(asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_16[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern__ext1, dl_UL_TransmissionPeriodicity_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UL-TransmissionPeriodicity-v1530" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_16[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dl-UL-TransmissionPeriodicity-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_16 = { + sizeof(struct ASN_RRC_TDD_UL_DL_Pattern__ext1), + offsetof(struct ASN_RRC_TDD_UL_DL_Pattern__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_16, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_16, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_16 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_16, + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_16, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_16) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_16, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_Pattern_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, dl_UL_TransmissionPeriodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UL-TransmissionPeriodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, nrofDownlinkSlots), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofDownlinkSlots_constr_11, memb_ASN_RRC_nrofDownlinkSlots_constraint_1 }, + 0, 0, /* No default value */ + "nrofDownlinkSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, nrofDownlinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofDownlinkSymbols_constr_12, memb_ASN_RRC_nrofDownlinkSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofDownlinkSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, nrofUplinkSlots), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofUplinkSlots_constr_13, memb_ASN_RRC_nrofUplinkSlots_constraint_1 }, + 0, 0, /* No default value */ + "nrofUplinkSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, nrofUplinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofUplinkSymbols_constr_14, memb_ASN_RRC_nrofUplinkSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofUplinkSymbols" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_TDD_UL_DL_Pattern_oms_1[] = { 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TDD_UL_DL_Pattern_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dl-UL-TransmissionPeriodicity */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nrofDownlinkSlots */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* nrofDownlinkSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nrofUplinkSlots */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nrofUplinkSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_Pattern_specs_1 = { + sizeof(struct ASN_RRC_TDD_UL_DL_Pattern), + offsetof(struct ASN_RRC_TDD_UL_DL_Pattern, _asn_ctx), + asn_MAP_ASN_RRC_TDD_UL_DL_Pattern_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_TDD_UL_DL_Pattern_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_Pattern = { + "TDD-UL-DL-Pattern", + "TDD-UL-DL-Pattern", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1, + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TDD_UL_DL_Pattern_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_TDD_UL_DL_Pattern_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.h b/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.h new file mode 100644 index 0000000..7f027bc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-Pattern.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TDD_UL_DL_Pattern_H_ +#define _ASN_RRC_TDD_UL_DL_Pattern_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity { + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5 = 0, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p625 = 1, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1 = 2, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1p25 = 3, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2 = 4, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2p5 = 5, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5 = 6, + ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms10 = 7 +} e_ASN_RRC_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity; +typedef enum ASN_RRC_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530 { + ASN_RRC_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms3 = 0, + ASN_RRC_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms4 = 1 +} e_ASN_RRC_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530; + +/* ASN_RRC_TDD-UL-DL-Pattern */ +typedef struct ASN_RRC_TDD_UL_DL_Pattern { + long dl_UL_TransmissionPeriodicity; + long nrofDownlinkSlots; + long nrofDownlinkSymbols; + long nrofUplinkSlots; + long nrofUplinkSymbols; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_TDD_UL_DL_Pattern__ext1 { + long *dl_UL_TransmissionPeriodicity_v1530; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TDD_UL_DL_Pattern_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dl_UL_TransmissionPeriodicity_v1530_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_Pattern; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_Pattern_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_Pattern_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TDD_UL_DL_Pattern_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.c b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.c new file mode 100644 index 0000000..ebc2c54 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.c @@ -0,0 +1,239 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TDD-UL-DL-SlotConfig.h" + +static int +memb_ASN_RRC_nrofDownlinkSymbols_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 13)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_ASN_RRC_nrofUplinkSymbols_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + 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 <= 13)) { + /* Constraint 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_ASN_RRC_nrofDownlinkSymbols_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (1..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofUplinkSymbols_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 13 } /* (1..13) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_symbols_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_TYPE_member_t asn_MBR_ASN_RRC_explicit_6[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols__explicit, nrofDownlinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofDownlinkSymbols_constr_7, memb_ASN_RRC_nrofDownlinkSymbols_constraint_6 }, + 0, 0, /* No default value */ + "nrofDownlinkSymbols" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols__explicit, nrofUplinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_nrofUplinkSymbols_constr_8, memb_ASN_RRC_nrofUplinkSymbols_constraint_6 }, + 0, 0, /* No default value */ + "nrofUplinkSymbols" + }, +}; +static const int asn_MAP_ASN_RRC_explicit_oms_6[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_explicit_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_explicit_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrofDownlinkSymbols */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nrofUplinkSymbols */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_explicit_specs_6 = { + sizeof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols__explicit), + offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols__explicit, _asn_ctx), + asn_MAP_ASN_RRC_explicit_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_explicit_oms_6, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_explicit_6 = { + "explicit", + "explicit", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_explicit_tags_6, + sizeof(asn_DEF_ASN_RRC_explicit_tags_6) + /sizeof(asn_DEF_ASN_RRC_explicit_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_explicit_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_explicit_tags_6) + /sizeof(asn_DEF_ASN_RRC_explicit_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_explicit_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_explicit_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_symbols_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols, choice.allDownlink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allDownlink" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols, choice.allUplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allUplink" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols, choice.Explicit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_explicit_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "explicit" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_symbols_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* allDownlink */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* allUplink */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* explicit */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_symbols_specs_3 = { + sizeof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols), + offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols, _asn_ctx), + offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols, present), + sizeof(((struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols *)0)->present), + asn_MAP_ASN_RRC_symbols_tag2el_3, + 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_ASN_RRC_symbols_3 = { + "symbols", + "symbols", + &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_ASN_RRC_symbols_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_symbols_3, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_symbols_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_SlotConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig, slotIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig, symbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_symbols_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "symbols" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_TDD_UL_DL_SlotConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* slotIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* symbols */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_SlotConfig_specs_1 = { + sizeof(struct ASN_RRC_TDD_UL_DL_SlotConfig), + offsetof(struct ASN_RRC_TDD_UL_DL_SlotConfig, _asn_ctx), + asn_MAP_ASN_RRC_TDD_UL_DL_SlotConfig_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig = { + "TDD-UL-DL-SlotConfig", + "TDD-UL-DL-SlotConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_TDD_UL_DL_SlotConfig_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_TDD_UL_DL_SlotConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.h b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.h new file mode 100644 index 0000000..b7b25a9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotConfig.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TDD_UL_DL_SlotConfig_H_ +#define _ASN_RRC_TDD_UL_DL_SlotConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TDD-UL-DL-SlotIndex.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR { + ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR_NOTHING, /* No components present */ + ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR_allDownlink, + ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR_allUplink, + ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR_explicit +} ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR; + +/* ASN_RRC_TDD-UL-DL-SlotConfig */ +typedef struct ASN_RRC_TDD_UL_DL_SlotConfig { + ASN_RRC_TDD_UL_DL_SlotIndex_t slotIndex; + struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols { + ASN_RRC_TDD_UL_DL_SlotConfig__symbols_PR present; + union ASN_RRC_TDD_UL_DL_SlotConfig__ASN_RRC_symbols_u { + NULL_t allDownlink; + NULL_t allUplink; + struct ASN_RRC_TDD_UL_DL_SlotConfig__symbols__explicit { + long *nrofDownlinkSymbols; /* OPTIONAL */ + long *nrofUplinkSymbols; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *Explicit; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } symbols; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_TDD_UL_DL_SlotConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_TDD_UL_DL_SlotConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_TDD_UL_DL_SlotConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TDD_UL_DL_SlotConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.c b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.c new file mode 100644 index 0000000..539868b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TDD-UL-DL-SlotIndex.h" + +int +ASN_RRC_TDD_UL_DL_SlotIndex_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 <= 319)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_TDD_UL_DL_SlotIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 0, 319 } /* (0..319) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex = { + "TDD-UL-DL-SlotIndex", + "TDD-UL-DL-SlotIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TDD_UL_DL_SlotIndex_constr_1, ASN_RRC_TDD_UL_DL_SlotIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.h b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.h new file mode 100644 index 0000000..0af61a8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TDD-UL-DL-SlotIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TDD_UL_DL_SlotIndex_H_ +#define _ASN_RRC_TDD_UL_DL_SlotIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_TDD-UL-DL-SlotIndex */ +typedef long ASN_RRC_TDD_UL_DL_SlotIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TDD_UL_DL_SlotIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TDD_UL_DL_SlotIndex; +asn_struct_free_f ASN_RRC_TDD_UL_DL_SlotIndex_free; +asn_struct_print_f ASN_RRC_TDD_UL_DL_SlotIndex_print; +asn_constr_check_f ASN_RRC_TDD_UL_DL_SlotIndex_constraint; +ber_type_decoder_f ASN_RRC_TDD_UL_DL_SlotIndex_decode_ber; +der_type_encoder_f ASN_RRC_TDD_UL_DL_SlotIndex_encode_der; +xer_type_decoder_f ASN_RRC_TDD_UL_DL_SlotIndex_decode_xer; +xer_type_encoder_f ASN_RRC_TDD_UL_DL_SlotIndex_encode_xer; +per_type_decoder_f ASN_RRC_TDD_UL_DL_SlotIndex_decode_uper; +per_type_encoder_f ASN_RRC_TDD_UL_DL_SlotIndex_encode_uper; +per_type_decoder_f ASN_RRC_TDD_UL_DL_SlotIndex_decode_aper; +per_type_encoder_f ASN_RRC_TDD_UL_DL_SlotIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TDD_UL_DL_SlotIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ThresholdNR.c b/src/asn/rrc/ASN_RRC_ThresholdNR.c new file mode 100644 index 0000000..a721e45 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ThresholdNR.c @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ThresholdNR.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_ThresholdNR_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ThresholdNR, thresholdRSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdRSRP" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ThresholdNR, thresholdRSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdRSRQ" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ThresholdNR, thresholdSINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdSINR" + }, +}; +static const int asn_MAP_ASN_RRC_ThresholdNR_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ThresholdNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ThresholdNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* thresholdRSRP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* thresholdRSRQ */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* thresholdSINR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ThresholdNR_specs_1 = { + sizeof(struct ASN_RRC_ThresholdNR), + offsetof(struct ASN_RRC_ThresholdNR, _asn_ctx), + asn_MAP_ASN_RRC_ThresholdNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ThresholdNR_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ThresholdNR = { + "ThresholdNR", + "ThresholdNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ThresholdNR_tags_1, + sizeof(asn_DEF_ASN_RRC_ThresholdNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ThresholdNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ThresholdNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ThresholdNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_ThresholdNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ThresholdNR_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ThresholdNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ThresholdNR.h b/src/asn/rrc/ASN_RRC_ThresholdNR.h new file mode 100644 index 0000000..a253192 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ThresholdNR.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ThresholdNR_H_ +#define _ASN_RRC_ThresholdNR_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-Range.h" +#include "ASN_RRC_RSRQ-Range.h" +#include "ASN_RRC_SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ThresholdNR */ +typedef struct ASN_RRC_ThresholdNR { + ASN_RRC_RSRP_Range_t *thresholdRSRP; /* OPTIONAL */ + ASN_RRC_RSRQ_Range_t *thresholdRSRQ; /* OPTIONAL */ + ASN_RRC_SINR_Range_t *thresholdSINR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ThresholdNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ThresholdNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ThresholdNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ThresholdNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ThresholdNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.c b/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.c new file mode 100644 index 0000000..2c737c6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TimeAlignmentTimer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_TimeAlignmentTimer_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_ASN_RRC_TimeAlignmentTimer_value2enum_1[] = { + { 0, 5, "ms500" }, + { 1, 5, "ms750" }, + { 2, 6, "ms1280" }, + { 3, 6, "ms1920" }, + { 4, 6, "ms2560" }, + { 5, 6, "ms5120" }, + { 6, 7, "ms10240" }, + { 7, 8, "infinity" } +}; +static const unsigned int asn_MAP_ASN_RRC_TimeAlignmentTimer_enum2value_1[] = { + 7, /* infinity(7) */ + 6, /* ms10240(6) */ + 2, /* ms1280(2) */ + 3, /* ms1920(3) */ + 4, /* ms2560(4) */ + 0, /* ms500(0) */ + 5, /* ms5120(5) */ + 1 /* ms750(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_TimeAlignmentTimer_specs_1 = { + asn_MAP_ASN_RRC_TimeAlignmentTimer_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_TimeAlignmentTimer_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_ASN_RRC_TimeAlignmentTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TimeAlignmentTimer = { + "TimeAlignmentTimer", + "TimeAlignmentTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1, + sizeof(asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1) + /sizeof(asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1) + /sizeof(asn_DEF_ASN_RRC_TimeAlignmentTimer_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TimeAlignmentTimer_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_TimeAlignmentTimer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.h b/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.h new file mode 100644 index 0000000..c46b7c0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TimeAlignmentTimer.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TimeAlignmentTimer_H_ +#define _ASN_RRC_TimeAlignmentTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_TimeAlignmentTimer { + ASN_RRC_TimeAlignmentTimer_ms500 = 0, + ASN_RRC_TimeAlignmentTimer_ms750 = 1, + ASN_RRC_TimeAlignmentTimer_ms1280 = 2, + ASN_RRC_TimeAlignmentTimer_ms1920 = 3, + ASN_RRC_TimeAlignmentTimer_ms2560 = 4, + ASN_RRC_TimeAlignmentTimer_ms5120 = 5, + ASN_RRC_TimeAlignmentTimer_ms10240 = 6, + ASN_RRC_TimeAlignmentTimer_infinity = 7 +} e_ASN_RRC_TimeAlignmentTimer; + +/* ASN_RRC_TimeAlignmentTimer */ +typedef long ASN_RRC_TimeAlignmentTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TimeAlignmentTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TimeAlignmentTimer; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_TimeAlignmentTimer_specs_1; +asn_struct_free_f ASN_RRC_TimeAlignmentTimer_free; +asn_struct_print_f ASN_RRC_TimeAlignmentTimer_print; +asn_constr_check_f ASN_RRC_TimeAlignmentTimer_constraint; +ber_type_decoder_f ASN_RRC_TimeAlignmentTimer_decode_ber; +der_type_encoder_f ASN_RRC_TimeAlignmentTimer_encode_der; +xer_type_decoder_f ASN_RRC_TimeAlignmentTimer_decode_xer; +xer_type_encoder_f ASN_RRC_TimeAlignmentTimer_encode_xer; +per_type_decoder_f ASN_RRC_TimeAlignmentTimer_decode_uper; +per_type_encoder_f ASN_RRC_TimeAlignmentTimer_encode_uper; +per_type_decoder_f ASN_RRC_TimeAlignmentTimer_decode_aper; +per_type_encoder_f ASN_RRC_TimeAlignmentTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TimeAlignmentTimer_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TimeToTrigger.c b/src/asn/rrc/ASN_RRC_TimeToTrigger.c new file mode 100644 index 0000000..ec66354 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TimeToTrigger.c @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TimeToTrigger.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_TimeToTrigger_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 asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_TimeToTrigger_value2enum_1[] = { + { 0, 3, "ms0" }, + { 1, 4, "ms40" }, + { 2, 4, "ms64" }, + { 3, 4, "ms80" }, + { 4, 5, "ms100" }, + { 5, 5, "ms128" }, + { 6, 5, "ms160" }, + { 7, 5, "ms256" }, + { 8, 5, "ms320" }, + { 9, 5, "ms480" }, + { 10, 5, "ms512" }, + { 11, 5, "ms640" }, + { 12, 6, "ms1024" }, + { 13, 6, "ms1280" }, + { 14, 6, "ms2560" }, + { 15, 6, "ms5120" } +}; +static const unsigned int asn_MAP_ASN_RRC_TimeToTrigger_enum2value_1[] = { + 0, /* ms0(0) */ + 4, /* ms100(4) */ + 12, /* ms1024(12) */ + 5, /* ms128(5) */ + 13, /* ms1280(13) */ + 6, /* ms160(6) */ + 7, /* ms256(7) */ + 14, /* ms2560(14) */ + 8, /* ms320(8) */ + 1, /* ms40(1) */ + 9, /* ms480(9) */ + 10, /* ms512(10) */ + 15, /* ms5120(15) */ + 2, /* ms64(2) */ + 11, /* ms640(11) */ + 3 /* ms80(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_TimeToTrigger_specs_1 = { + asn_MAP_ASN_RRC_TimeToTrigger_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_TimeToTrigger_enum2value_1, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_TimeToTrigger_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TimeToTrigger = { + "TimeToTrigger", + "TimeToTrigger", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_TimeToTrigger_tags_1, + sizeof(asn_DEF_ASN_RRC_TimeToTrigger_tags_1) + /sizeof(asn_DEF_ASN_RRC_TimeToTrigger_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TimeToTrigger_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TimeToTrigger_tags_1) + /sizeof(asn_DEF_ASN_RRC_TimeToTrigger_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TimeToTrigger_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_TimeToTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TimeToTrigger.h b/src/asn/rrc/ASN_RRC_TimeToTrigger.h new file mode 100644 index 0000000..bc578ac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TimeToTrigger.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TimeToTrigger_H_ +#define _ASN_RRC_TimeToTrigger_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_TimeToTrigger { + ASN_RRC_TimeToTrigger_ms0 = 0, + ASN_RRC_TimeToTrigger_ms40 = 1, + ASN_RRC_TimeToTrigger_ms64 = 2, + ASN_RRC_TimeToTrigger_ms80 = 3, + ASN_RRC_TimeToTrigger_ms100 = 4, + ASN_RRC_TimeToTrigger_ms128 = 5, + ASN_RRC_TimeToTrigger_ms160 = 6, + ASN_RRC_TimeToTrigger_ms256 = 7, + ASN_RRC_TimeToTrigger_ms320 = 8, + ASN_RRC_TimeToTrigger_ms480 = 9, + ASN_RRC_TimeToTrigger_ms512 = 10, + ASN_RRC_TimeToTrigger_ms640 = 11, + ASN_RRC_TimeToTrigger_ms1024 = 12, + ASN_RRC_TimeToTrigger_ms1280 = 13, + ASN_RRC_TimeToTrigger_ms2560 = 14, + ASN_RRC_TimeToTrigger_ms5120 = 15 +} e_ASN_RRC_TimeToTrigger; + +/* ASN_RRC_TimeToTrigger */ +typedef long ASN_RRC_TimeToTrigger_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TimeToTrigger_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TimeToTrigger; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_TimeToTrigger_specs_1; +asn_struct_free_f ASN_RRC_TimeToTrigger_free; +asn_struct_print_f ASN_RRC_TimeToTrigger_print; +asn_constr_check_f ASN_RRC_TimeToTrigger_constraint; +ber_type_decoder_f ASN_RRC_TimeToTrigger_decode_ber; +der_type_encoder_f ASN_RRC_TimeToTrigger_encode_der; +xer_type_decoder_f ASN_RRC_TimeToTrigger_decode_xer; +xer_type_encoder_f ASN_RRC_TimeToTrigger_encode_xer; +per_type_decoder_f ASN_RRC_TimeToTrigger_decode_uper; +per_type_encoder_f ASN_RRC_TimeToTrigger_encode_uper; +per_type_decoder_f ASN_RRC_TimeToTrigger_decode_aper; +per_type_encoder_f ASN_RRC_TimeToTrigger_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TimeToTrigger_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_TrackingAreaCode.c b/src/asn/rrc/ASN_RRC_TrackingAreaCode.c new file mode 100644 index 0000000..53ddd1d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TrackingAreaCode.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_TrackingAreaCode.h" + +int +ASN_RRC_TrackingAreaCode_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_ASN_RRC_TrackingAreaCode_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_ASN_RRC_TrackingAreaCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TrackingAreaCode = { + "TrackingAreaCode", + "TrackingAreaCode", + &asn_OP_BIT_STRING, + asn_DEF_ASN_RRC_TrackingAreaCode_tags_1, + sizeof(asn_DEF_ASN_RRC_TrackingAreaCode_tags_1) + /sizeof(asn_DEF_ASN_RRC_TrackingAreaCode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_TrackingAreaCode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_TrackingAreaCode_tags_1) + /sizeof(asn_DEF_ASN_RRC_TrackingAreaCode_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_TrackingAreaCode_constr_1, ASN_RRC_TrackingAreaCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_TrackingAreaCode.h b/src/asn/rrc/ASN_RRC_TrackingAreaCode.h new file mode 100644 index 0000000..26b684b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_TrackingAreaCode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_TrackingAreaCode_H_ +#define _ASN_RRC_TrackingAreaCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_TrackingAreaCode */ +typedef BIT_STRING_t ASN_RRC_TrackingAreaCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_TrackingAreaCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_TrackingAreaCode; +asn_struct_free_f ASN_RRC_TrackingAreaCode_free; +asn_struct_print_f ASN_RRC_TrackingAreaCode_print; +asn_constr_check_f ASN_RRC_TrackingAreaCode_constraint; +ber_type_decoder_f ASN_RRC_TrackingAreaCode_decode_ber; +der_type_encoder_f ASN_RRC_TrackingAreaCode_encode_der; +xer_type_decoder_f ASN_RRC_TrackingAreaCode_decode_xer; +xer_type_encoder_f ASN_RRC_TrackingAreaCode_encode_xer; +per_type_decoder_f ASN_RRC_TrackingAreaCode_decode_uper; +per_type_encoder_f ASN_RRC_TrackingAreaCode_encode_uper; +per_type_decoder_f ASN_RRC_TrackingAreaCode_decode_aper; +per_type_encoder_f ASN_RRC_TrackingAreaCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_TrackingAreaCode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.c b/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.c new file mode 100644 index 0000000..0983c46 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.c @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_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_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1[] = { + { 0, 1, "a" }, + { 1, 1, "b" }, + { 2, 1, "c" } +}; +static const unsigned int asn_MAP_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_enum2value_1[] = { + 0, /* a(0) */ + 1, /* b(1) */ + 2 /* c(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 = { + asn_MAP_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_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_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo = { + "UAC-AccessCategory1-SelectionAssistanceInfo", + "UAC-AccessCategory1-SelectionAssistanceInfo", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h b/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h new file mode 100644 index 0000000..2d7ba49 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_H_ +#define _ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo { + ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_a = 0, + ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_b = 1, + ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_c = 2 +} e_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo; + +/* ASN_RRC_UAC-AccessCategory1-SelectionAssistanceInfo */ +typedef long ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1; +asn_struct_free_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_free; +asn_struct_print_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_print; +asn_constr_check_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_constraint; +ber_type_decoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_decode_ber; +der_type_encoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_encode_der; +xer_type_decoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_decode_xer; +xer_type_encoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_encode_xer; +per_type_decoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_decode_uper; +per_type_encoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_encode_uper; +per_type_decoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_decode_aper; +per_type_encoder_f ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_AccessCategory1_SelectionAssistanceInfo_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.c b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.c new file mode 100644 index 0000000..5f4860d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.c @@ -0,0 +1,238 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringInfoSet.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 int +memb_ASN_RRC_uac_BarringForAccessIdentity_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 asn_per_constraints_t asn_PER_type_ASN_RRC_uac_BarringFactor_constr_2 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_type_ASN_RRC_uac_BarringTime_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_uac_BarringForAccessIdentity_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 7, 7 } /* (SIZE(7..7)) */, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_uac_BarringFactor_value2enum_2[] = { + { 0, 3, "p00" }, + { 1, 3, "p05" }, + { 2, 3, "p10" }, + { 3, 3, "p15" }, + { 4, 3, "p20" }, + { 5, 3, "p25" }, + { 6, 3, "p30" }, + { 7, 3, "p40" }, + { 8, 3, "p50" }, + { 9, 3, "p60" }, + { 10, 3, "p70" }, + { 11, 3, "p75" }, + { 12, 3, "p80" }, + { 13, 3, "p85" }, + { 14, 3, "p90" }, + { 15, 3, "p95" } +}; +static const unsigned int asn_MAP_ASN_RRC_uac_BarringFactor_enum2value_2[] = { + 0, /* p00(0) */ + 1, /* p05(1) */ + 2, /* p10(2) */ + 3, /* p15(3) */ + 4, /* p20(4) */ + 5, /* p25(5) */ + 6, /* p30(6) */ + 7, /* p40(7) */ + 8, /* p50(8) */ + 9, /* p60(9) */ + 10, /* p70(10) */ + 11, /* p75(11) */ + 12, /* p80(12) */ + 13, /* p85(13) */ + 14, /* p90(14) */ + 15 /* p95(15) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_uac_BarringFactor_specs_2 = { + asn_MAP_ASN_RRC_uac_BarringFactor_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_uac_BarringFactor_enum2value_2, /* N => "tag"; sorted by N */ + 16, /* 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_ASN_RRC_uac_BarringFactor_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_ASN_RRC_uac_BarringFactor_2 = { + "uac-BarringFactor", + "uac-BarringFactor", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_uac_BarringFactor_tags_2, + sizeof(asn_DEF_ASN_RRC_uac_BarringFactor_tags_2) + /sizeof(asn_DEF_ASN_RRC_uac_BarringFactor_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uac_BarringFactor_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uac_BarringFactor_tags_2) + /sizeof(asn_DEF_ASN_RRC_uac_BarringFactor_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uac_BarringFactor_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_uac_BarringFactor_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_uac_BarringTime_value2enum_19[] = { + { 0, 2, "s4" }, + { 1, 2, "s8" }, + { 2, 3, "s16" }, + { 3, 3, "s32" }, + { 4, 3, "s64" }, + { 5, 4, "s128" }, + { 6, 4, "s256" }, + { 7, 4, "s512" } +}; +static const unsigned int asn_MAP_ASN_RRC_uac_BarringTime_enum2value_19[] = { + 5, /* s128(5) */ + 2, /* s16(2) */ + 6, /* s256(6) */ + 3, /* s32(3) */ + 0, /* s4(0) */ + 7, /* s512(7) */ + 4, /* s64(4) */ + 1 /* s8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_uac_BarringTime_specs_19 = { + asn_MAP_ASN_RRC_uac_BarringTime_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_uac_BarringTime_enum2value_19, /* 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_ASN_RRC_uac_BarringTime_tags_19[] = { + (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_ASN_RRC_uac_BarringTime_19 = { + "uac-BarringTime", + "uac-BarringTime", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_uac_BarringTime_tags_19, + sizeof(asn_DEF_ASN_RRC_uac_BarringTime_tags_19) + /sizeof(asn_DEF_ASN_RRC_uac_BarringTime_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uac_BarringTime_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uac_BarringTime_tags_19) + /sizeof(asn_DEF_ASN_RRC_uac_BarringTime_tags_19[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uac_BarringTime_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_uac_BarringTime_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringInfoSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringInfoSet, uac_BarringFactor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uac_BarringFactor_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringFactor" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringInfoSet, uac_BarringTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uac_BarringTime_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringInfoSet, uac_BarringForAccessIdentity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_uac_BarringForAccessIdentity_constr_28, memb_ASN_RRC_uac_BarringForAccessIdentity_constraint_1 }, + 0, 0, /* No default value */ + "uac-BarringForAccessIdentity" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UAC_BarringInfoSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uac-BarringFactor */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uac-BarringTime */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* uac-BarringForAccessIdentity */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringInfoSet_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringInfoSet), + offsetof(struct ASN_RRC_UAC_BarringInfoSet, _asn_ctx), + asn_MAP_ASN_RRC_UAC_BarringInfoSet_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_ASN_RRC_UAC_BarringInfoSet = { + "UAC-BarringInfoSet", + "UAC-BarringInfoSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UAC_BarringInfoSet_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UAC_BarringInfoSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.h b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.h new file mode 100644 index 0000000..9e13a7f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSet.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringInfoSet_H_ +#define _ASN_RRC_UAC_BarringInfoSet_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor { + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p00 = 0, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p05 = 1, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p10 = 2, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p15 = 3, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p20 = 4, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p25 = 5, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p30 = 6, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p40 = 7, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p50 = 8, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p60 = 9, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p70 = 10, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p75 = 11, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p80 = 12, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p85 = 13, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p90 = 14, + ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor_p95 = 15 +} e_ASN_RRC_UAC_BarringInfoSet__uac_BarringFactor; +typedef enum ASN_RRC_UAC_BarringInfoSet__uac_BarringTime { + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s4 = 0, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s8 = 1, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s16 = 2, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s32 = 3, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s64 = 4, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s128 = 5, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s256 = 6, + ASN_RRC_UAC_BarringInfoSet__uac_BarringTime_s512 = 7 +} e_ASN_RRC_UAC_BarringInfoSet__uac_BarringTime; + +/* ASN_RRC_UAC-BarringInfoSet */ +typedef struct ASN_RRC_UAC_BarringInfoSet { + long uac_BarringFactor; + long uac_BarringTime; + BIT_STRING_t uac_BarringForAccessIdentity; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringInfoSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uac_BarringFactor_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uac_BarringTime_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringInfoSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringInfoSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringInfoSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringInfoSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.c b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.c new file mode 100644 index 0000000..76daf80 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringInfoSetIndex.h" + +int +ASN_RRC_UAC_BarringInfoSetIndex_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. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringInfoSetIndex_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_UAC_BarringInfoSetIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex = { + "UAC-BarringInfoSetIndex", + "UAC-BarringInfoSetIndex", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UAC_BarringInfoSetIndex_constr_1, ASN_RRC_UAC_BarringInfoSetIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.h b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.h new file mode 100644 index 0000000..9cfc035 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetIndex.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringInfoSetIndex_H_ +#define _ASN_RRC_UAC_BarringInfoSetIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UAC-BarringInfoSetIndex */ +typedef long ASN_RRC_UAC_BarringInfoSetIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringInfoSetIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex; +asn_struct_free_f ASN_RRC_UAC_BarringInfoSetIndex_free; +asn_struct_print_f ASN_RRC_UAC_BarringInfoSetIndex_print; +asn_constr_check_f ASN_RRC_UAC_BarringInfoSetIndex_constraint; +ber_type_decoder_f ASN_RRC_UAC_BarringInfoSetIndex_decode_ber; +der_type_encoder_f ASN_RRC_UAC_BarringInfoSetIndex_encode_der; +xer_type_decoder_f ASN_RRC_UAC_BarringInfoSetIndex_decode_xer; +xer_type_encoder_f ASN_RRC_UAC_BarringInfoSetIndex_encode_xer; +per_type_decoder_f ASN_RRC_UAC_BarringInfoSetIndex_decode_uper; +per_type_encoder_f ASN_RRC_UAC_BarringInfoSetIndex_encode_uper; +per_type_decoder_f ASN_RRC_UAC_BarringInfoSetIndex_decode_aper; +per_type_encoder_f ASN_RRC_UAC_BarringInfoSetIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringInfoSetIndex_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.c b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.c new file mode 100644 index 0000000..40b0fd6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringInfoSetList.h" + +#include "ASN_RRC_UAC-BarringInfoSet.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringInfoSetList_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_ASN_RRC_UAC_BarringInfoSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UAC_BarringInfoSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringInfoSetList_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringInfoSetList), + offsetof(struct ASN_RRC_UAC_BarringInfoSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringInfoSetList = { + "UAC-BarringInfoSetList", + "UAC-BarringInfoSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UAC_BarringInfoSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UAC_BarringInfoSetList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UAC_BarringInfoSetList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.h b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.h new file mode 100644 index 0000000..275c37c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringInfoSetList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringInfoSetList_H_ +#define _ASN_RRC_UAC_BarringInfoSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UAC_BarringInfoSet; + +/* ASN_RRC_UAC-BarringInfoSetList */ +typedef struct ASN_RRC_UAC_BarringInfoSetList { + A_SEQUENCE_OF(struct ASN_RRC_UAC_BarringInfoSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringInfoSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringInfoSetList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringInfoSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringInfoSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringInfoSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringInfoSetList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.c b/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.c new file mode 100644 index 0000000..7835f04 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringPerCat.h" + +static int +memb_ASN_RRC_accessCategory_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 <= 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_ASN_RRC_accessCategory_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (1..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerCat_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringPerCat, accessCategory), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_accessCategory_constr_2, memb_ASN_RRC_accessCategory_constraint_1 }, + 0, 0, /* No default value */ + "accessCategory" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringPerCat, uac_barringInfoSetIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-barringInfoSetIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UAC_BarringPerCat_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessCategory */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uac-barringInfoSetIndex */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerCat_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringPerCat), + offsetof(struct ASN_RRC_UAC_BarringPerCat, _asn_ctx), + asn_MAP_ASN_RRC_UAC_BarringPerCat_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerCat = { + "UAC-BarringPerCat", + "UAC-BarringPerCat", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCat_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UAC_BarringPerCat_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UAC_BarringPerCat_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.h b/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.h new file mode 100644 index 0000000..14abb3a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerCat.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringPerCat_H_ +#define _ASN_RRC_UAC_BarringPerCat_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_UAC-BarringInfoSetIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UAC-BarringPerCat */ +typedef struct ASN_RRC_UAC_BarringPerCat { + long accessCategory; + ASN_RRC_UAC_BarringInfoSetIndex_t uac_barringInfoSetIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringPerCat_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerCat; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerCat_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerCat_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringPerCat_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.c b/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.c new file mode 100644 index 0000000..e067ae6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringPerCatList.h" + +#include "ASN_RRC_UAC-BarringPerCat.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringPerCatList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 63 } /* (SIZE(1..63)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerCatList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UAC_BarringPerCat, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerCatList_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringPerCatList), + offsetof(struct ASN_RRC_UAC_BarringPerCatList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerCatList = { + "UAC-BarringPerCatList", + "UAC-BarringPerCatList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerCatList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UAC_BarringPerCatList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UAC_BarringPerCatList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UAC_BarringPerCatList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.h b/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.h new file mode 100644 index 0000000..f38ae9d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerCatList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringPerCatList_H_ +#define _ASN_RRC_UAC_BarringPerCatList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UAC_BarringPerCat; + +/* ASN_RRC_UAC-BarringPerCatList */ +typedef struct ASN_RRC_UAC_BarringPerCatList { + A_SEQUENCE_OF(struct ASN_RRC_UAC_BarringPerCat) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringPerCatList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerCatList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerCatList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerCatList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringPerCatList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringPerCatList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.c b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.c new file mode 100644 index 0000000..2eb7ba3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringPerPLMN-List.h" + +#include "ASN_RRC_UAC-BarringPerPLMN.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringPerPLMN_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (SIZE(1..12)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerPLMN_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UAC_BarringPerPLMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerPLMN_List_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringPerPLMN_List), + offsetof(struct ASN_RRC_UAC_BarringPerPLMN_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List = { + "UAC-BarringPerPLMN-List", + "UAC-BarringPerPLMN-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UAC_BarringPerPLMN_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UAC_BarringPerPLMN_List_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UAC_BarringPerPLMN_List_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.h b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.h new file mode 100644 index 0000000..008ef72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN-List.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringPerPLMN_List_H_ +#define _ASN_RRC_UAC_BarringPerPLMN_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UAC_BarringPerPLMN; + +/* ASN_RRC_UAC-BarringPerPLMN-List */ +typedef struct ASN_RRC_UAC_BarringPerPLMN_List { + A_SEQUENCE_OF(struct ASN_RRC_UAC_BarringPerPLMN) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringPerPLMN_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN_List; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerPLMN_List_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerPLMN_List_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UAC_BarringPerPLMN_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringPerPLMN_List_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.c b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.c new file mode 100644 index 0000000..03dad76 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.c @@ -0,0 +1,220 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UAC-BarringPerPLMN.h" + +#include "ASN_RRC_UAC-BarringPerCatList.h" +static int +memb_ASN_RRC_uac_ImplicitACBarringList_constraint_3(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 == 63)) { + /* 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 int +memb_ASN_RRC_plmn_IdentityIndex_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 <= 12)) { + /* Constraint 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_ASN_RRC_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 63, 63 } /* (SIZE(63..63)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 63, 63 } /* (SIZE(63..63)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_uac_ACBarringListType_constr_3 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_ASN_RRC_plmn_IdentityIndex_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 12 } /* (1..12) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_uac_ImplicitACBarringList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_UAC_BarringInfoSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uac_ImplicitACBarringList_specs_4 = { + sizeof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList), + offsetof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uac_ImplicitACBarringList_4 = { + "uac-ImplicitACBarringList", + "uac-ImplicitACBarringList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4, + sizeof(asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4) + /sizeof(asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4) + /sizeof(asn_DEF_ASN_RRC_uac_ImplicitACBarringList_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uac_ImplicitACBarringList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uac_ImplicitACBarringList_4, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uac_ImplicitACBarringList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uac_ACBarringListType_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ImplicitACBarringList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_uac_ImplicitACBarringList_4, + 0, + { 0, &asn_PER_memb_ASN_RRC_uac_ImplicitACBarringList_constr_4, memb_ASN_RRC_uac_ImplicitACBarringList_constraint_3 }, + 0, 0, /* No default value */ + "uac-ImplicitACBarringList" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ExplicitACBarringList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UAC_BarringPerCatList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-ExplicitACBarringList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_uac_ACBarringListType_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* uac-ImplicitACBarringList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uac-ExplicitACBarringList */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_uac_ACBarringListType_specs_3 = { + sizeof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType), + offsetof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType, _asn_ctx), + offsetof(struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType, present), + sizeof(((struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType *)0)->present), + asn_MAP_ASN_RRC_uac_ACBarringListType_tag2el_3, + 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_ASN_RRC_uac_ACBarringListType_3 = { + "uac-ACBarringListType", + "uac-ACBarringListType", + &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_ASN_RRC_uac_ACBarringListType_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_uac_ACBarringListType_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_uac_ACBarringListType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerPLMN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UAC_BarringPerPLMN, plmn_IdentityIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_plmn_IdentityIndex_constr_2, memb_ASN_RRC_plmn_IdentityIndex_constraint_1 }, + 0, 0, /* No default value */ + "plmn-IdentityIndex" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UAC_BarringPerPLMN, uac_ACBarringListType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_uac_ACBarringListType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-ACBarringListType" + }, +}; +static const int asn_MAP_ASN_RRC_UAC_BarringPerPLMN_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UAC_BarringPerPLMN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* plmn-IdentityIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uac-ACBarringListType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerPLMN_specs_1 = { + sizeof(struct ASN_RRC_UAC_BarringPerPLMN), + offsetof(struct ASN_RRC_UAC_BarringPerPLMN, _asn_ctx), + asn_MAP_ASN_RRC_UAC_BarringPerPLMN_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UAC_BarringPerPLMN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN = { + "UAC-BarringPerPLMN", + "UAC-BarringPerPLMN", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1, + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1) + /sizeof(asn_DEF_ASN_RRC_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UAC_BarringPerPLMN_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UAC_BarringPerPLMN_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.h b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.h new file mode 100644 index 0000000..45c29ec --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UAC-BarringPerPLMN.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UAC_BarringPerPLMN_H_ +#define _ASN_RRC_UAC_BarringPerPLMN_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ASN_RRC_UAC-BarringInfoSetIndex.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR { + ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR_NOTHING, /* No components present */ + ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ImplicitACBarringList, + ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ExplicitACBarringList +} ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR; + +/* Forward declarations */ +struct ASN_RRC_UAC_BarringPerCatList; + +/* ASN_RRC_UAC-BarringPerPLMN */ +typedef struct ASN_RRC_UAC_BarringPerPLMN { + long plmn_IdentityIndex; + struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType { + ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType_PR present; + union ASN_RRC_UAC_BarringPerPLMN__ASN_RRC_uac_ACBarringListType_u { + struct ASN_RRC_UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList { + A_SEQUENCE_OF(ASN_RRC_UAC_BarringInfoSetIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uac_ImplicitACBarringList; + struct ASN_RRC_UAC_BarringPerCatList *uac_ExplicitACBarringList; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uac_ACBarringListType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UAC_BarringPerPLMN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UAC_BarringPerPLMN; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UAC_BarringPerPLMN_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UAC_BarringPerPLMN_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UAC_BarringPerPLMN_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.c b/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.c new file mode 100644 index 0000000..0dba90a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.c @@ -0,0 +1,240 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UCI-OnPUSCH.h" + +#include "ASN_RRC_BetaOffsets.h" +static int +memb_ASN_RRC_dynamic_constraint_2(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 == 4)) { + /* 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; + } +} + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_dynamic_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_ASN_RRC_dynamic_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_type_ASN_RRC_betaOffsets_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_type_ASN_RRC_scaling_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_dynamic_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dynamic_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_dynamic_specs_3 = { + sizeof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets__dynamic), + offsetof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets__dynamic, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dynamic_3 = { + "dynamic", + "dynamic", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_dynamic_tags_3, + sizeof(asn_DEF_ASN_RRC_dynamic_tags_3) + /sizeof(asn_DEF_ASN_RRC_dynamic_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dynamic_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dynamic_tags_3) + /sizeof(asn_DEF_ASN_RRC_dynamic_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dynamic_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_dynamic_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_dynamic_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_betaOffsets_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets, choice.dynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_dynamic_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_dynamic_constr_3, memb_ASN_RRC_dynamic_constraint_2 }, + 0, 0, /* No default value */ + "dynamic" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets, choice.semiStatic), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStatic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_betaOffsets_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dynamic */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* semiStatic */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_betaOffsets_specs_2 = { + sizeof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets), + offsetof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets, _asn_ctx), + offsetof(struct ASN_RRC_UCI_OnPUSCH__betaOffsets, present), + sizeof(((struct ASN_RRC_UCI_OnPUSCH__betaOffsets *)0)->present), + asn_MAP_ASN_RRC_betaOffsets_tag2el_2, + 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_ASN_RRC_betaOffsets_2 = { + "betaOffsets", + "betaOffsets", + &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_ASN_RRC_betaOffsets_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_betaOffsets_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_betaOffsets_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_scaling_value2enum_6[] = { + { 0, 4, "f0p5" }, + { 1, 5, "f0p65" }, + { 2, 4, "f0p8" }, + { 3, 2, "f1" } +}; +static const unsigned int asn_MAP_ASN_RRC_scaling_enum2value_6[] = { + 0, /* f0p5(0) */ + 1, /* f0p65(1) */ + 2, /* f0p8(2) */ + 3 /* f1(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_scaling_specs_6 = { + asn_MAP_ASN_RRC_scaling_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_scaling_enum2value_6, /* 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_ASN_RRC_scaling_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_ASN_RRC_scaling_6 = { + "scaling", + "scaling", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_scaling_tags_6, + sizeof(asn_DEF_ASN_RRC_scaling_tags_6) + /sizeof(asn_DEF_ASN_RRC_scaling_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_scaling_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_scaling_tags_6) + /sizeof(asn_DEF_ASN_RRC_scaling_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_scaling_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_scaling_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UCI_OnPUSCH_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UCI_OnPUSCH, betaOffsets), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_betaOffsets_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "betaOffsets" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UCI_OnPUSCH, scaling), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_scaling_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaling" + }, +}; +static const int asn_MAP_ASN_RRC_UCI_OnPUSCH_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UCI_OnPUSCH_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* betaOffsets */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* scaling */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UCI_OnPUSCH_specs_1 = { + sizeof(struct ASN_RRC_UCI_OnPUSCH), + offsetof(struct ASN_RRC_UCI_OnPUSCH, _asn_ctx), + asn_MAP_ASN_RRC_UCI_OnPUSCH_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UCI_OnPUSCH_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UCI_OnPUSCH = { + "UCI-OnPUSCH", + "UCI-OnPUSCH", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1, + sizeof(asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1) + /sizeof(asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1) + /sizeof(asn_DEF_ASN_RRC_UCI_OnPUSCH_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UCI_OnPUSCH_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UCI_OnPUSCH_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.h b/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.h new file mode 100644 index 0000000..ef1d42f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UCI-OnPUSCH.h @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UCI_OnPUSCH_H_ +#define _ASN_RRC_UCI_OnPUSCH_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UCI_OnPUSCH__betaOffsets_PR { + ASN_RRC_UCI_OnPUSCH__betaOffsets_PR_NOTHING, /* No components present */ + ASN_RRC_UCI_OnPUSCH__betaOffsets_PR_dynamic, + ASN_RRC_UCI_OnPUSCH__betaOffsets_PR_semiStatic +} ASN_RRC_UCI_OnPUSCH__betaOffsets_PR; +typedef enum ASN_RRC_UCI_OnPUSCH__scaling { + ASN_RRC_UCI_OnPUSCH__scaling_f0p5 = 0, + ASN_RRC_UCI_OnPUSCH__scaling_f0p65 = 1, + ASN_RRC_UCI_OnPUSCH__scaling_f0p8 = 2, + ASN_RRC_UCI_OnPUSCH__scaling_f1 = 3 +} e_ASN_RRC_UCI_OnPUSCH__scaling; + +/* Forward declarations */ +struct ASN_RRC_BetaOffsets; + +/* ASN_RRC_UCI-OnPUSCH */ +typedef struct ASN_RRC_UCI_OnPUSCH { + struct ASN_RRC_UCI_OnPUSCH__betaOffsets { + ASN_RRC_UCI_OnPUSCH__betaOffsets_PR present; + union ASN_RRC_UCI_OnPUSCH__ASN_RRC_betaOffsets_u { + struct ASN_RRC_UCI_OnPUSCH__betaOffsets__dynamic { + A_SEQUENCE_OF(struct ASN_RRC_BetaOffsets) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dynamic; + struct ASN_RRC_BetaOffsets *semiStatic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *betaOffsets; + long scaling; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UCI_OnPUSCH_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_scaling_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UCI_OnPUSCH; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UCI_OnPUSCH_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UCI_OnPUSCH_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UCI_OnPUSCH_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.c new file mode 100644 index 0000000..f55d1b4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRAT-Container.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_Container_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_CapabilityRAT_Container, rat_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAT_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_CapabilityRAT_Container, ue_CapabilityRAT_Container), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-Container" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_CapabilityRAT_Container_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ue-CapabilityRAT-Container */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_Container_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRAT_Container), + offsetof(struct ASN_RRC_UE_CapabilityRAT_Container, _asn_ctx), + asn_MAP_ASN_RRC_UE_CapabilityRAT_Container_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Container = { + "UE-CapabilityRAT-Container", + "UE-CapabilityRAT-Container", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Container_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRAT_Container_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_CapabilityRAT_Container_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.h new file mode 100644 index 0000000..3528e72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Container.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRAT_Container_H_ +#define _ASN_RRC_UE_CapabilityRAT_Container_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RAT-Type.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UE-CapabilityRAT-Container */ +typedef struct ASN_RRC_UE_CapabilityRAT_Container { + ASN_RRC_RAT_Type_t rat_Type; + OCTET_STRING_t ue_CapabilityRAT_Container; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRAT_Container_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Container; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_Container_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_Container_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRAT_Container_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.c new file mode 100644 index 0000000..1dcf32f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRAT-ContainerList.h" + +#include "ASN_RRC_UE-CapabilityRAT-Container.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UE_CapabilityRAT_ContainerList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 4, 4, 0, 8 } /* (SIZE(0..8)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_ContainerList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UE_CapabilityRAT_Container, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_ContainerList_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRAT_ContainerList), + offsetof(struct ASN_RRC_UE_CapabilityRAT_ContainerList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList = { + "UE-CapabilityRAT-ContainerList", + "UE-CapabilityRAT-ContainerList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UE_CapabilityRAT_ContainerList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRAT_ContainerList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UE_CapabilityRAT_ContainerList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.h new file mode 100644 index 0000000..b19e0e0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-ContainerList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRAT_ContainerList_H_ +#define _ASN_RRC_UE_CapabilityRAT_ContainerList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UE_CapabilityRAT_Container; + +/* ASN_RRC_UE-CapabilityRAT-ContainerList */ +typedef struct ASN_RRC_UE_CapabilityRAT_ContainerList { + A_SEQUENCE_OF(struct ASN_RRC_UE_CapabilityRAT_Container) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRAT_ContainerList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_ContainerList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_ContainerList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UE_CapabilityRAT_ContainerList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRAT_ContainerList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.c new file mode 100644 index 0000000..de60582 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRAT-Request.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_Request_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_CapabilityRAT_Request, rat_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RAT_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rat-Type" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_CapabilityRAT_Request, capabilityRequestFilter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "capabilityRequestFilter" + }, +}; +static const int asn_MAP_ASN_RRC_UE_CapabilityRAT_Request_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_CapabilityRAT_Request_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rat-Type */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* capabilityRequestFilter */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_Request_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRAT_Request), + offsetof(struct ASN_RRC_UE_CapabilityRAT_Request, _asn_ctx), + asn_MAP_ASN_RRC_UE_CapabilityRAT_Request_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_CapabilityRAT_Request_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Request = { + "UE-CapabilityRAT-Request", + "UE-CapabilityRAT-Request", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_Request_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRAT_Request_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_CapabilityRAT_Request_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.h new file mode 100644 index 0000000..804bcd6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-Request.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRAT_Request_H_ +#define _ASN_RRC_UE_CapabilityRAT_Request_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RAT-Type.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UE-CapabilityRAT-Request */ +typedef struct ASN_RRC_UE_CapabilityRAT_Request { + ASN_RRC_RAT_Type_t rat_Type; + OCTET_STRING_t *capabilityRequestFilter; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRAT_Request_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_Request; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_Request_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_Request_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRAT_Request_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.c new file mode 100644 index 0000000..c8576b5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRAT-RequestList.h" + +#include "ASN_RRC_UE-CapabilityRAT-Request.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UE_CapabilityRAT_RequestList_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_ASN_RRC_UE_CapabilityRAT_RequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UE_CapabilityRAT_Request, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_RequestList_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRAT_RequestList), + offsetof(struct ASN_RRC_UE_CapabilityRAT_RequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList = { + "UE-CapabilityRAT-RequestList", + "UE-CapabilityRAT-RequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UE_CapabilityRAT_RequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRAT_RequestList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UE_CapabilityRAT_RequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.h new file mode 100644 index 0000000..11d3596 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRAT-RequestList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRAT_RequestList_H_ +#define _ASN_RRC_UE_CapabilityRAT_RequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UE_CapabilityRAT_Request; + +/* ASN_RRC_UE-CapabilityRAT-RequestList */ +typedef struct ASN_RRC_UE_CapabilityRAT_RequestList { + A_SEQUENCE_OF(struct ASN_RRC_UE_CapabilityRAT_Request) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRAT_RequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRAT_RequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRAT_RequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UE_CapabilityRAT_RequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRAT_RequestList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.c new file mode 100644 index 0000000..bd52739 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.c @@ -0,0 +1,249 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRequestFilterCommon.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_ASN_RRC_omitEN_DC_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_includeNR_DC_constr_5 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_includeNE_DC_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_omitEN_DC_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_omitEN_DC_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_omitEN_DC_specs_3 = { + asn_MAP_ASN_RRC_omitEN_DC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_omitEN_DC_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_omitEN_DC_tags_3[] = { + (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_ASN_RRC_omitEN_DC_3 = { + "omitEN-DC", + "omitEN-DC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_omitEN_DC_tags_3, + sizeof(asn_DEF_ASN_RRC_omitEN_DC_tags_3) + /sizeof(asn_DEF_ASN_RRC_omitEN_DC_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_omitEN_DC_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_omitEN_DC_tags_3) + /sizeof(asn_DEF_ASN_RRC_omitEN_DC_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_omitEN_DC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_omitEN_DC_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_includeNR_DC_value2enum_5[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_includeNR_DC_enum2value_5[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_includeNR_DC_specs_5 = { + asn_MAP_ASN_RRC_includeNR_DC_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_includeNR_DC_enum2value_5, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_includeNR_DC_tags_5[] = { + (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_ASN_RRC_includeNR_DC_5 = { + "includeNR-DC", + "includeNR-DC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_includeNR_DC_tags_5, + sizeof(asn_DEF_ASN_RRC_includeNR_DC_tags_5) + /sizeof(asn_DEF_ASN_RRC_includeNR_DC_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_includeNR_DC_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_includeNR_DC_tags_5) + /sizeof(asn_DEF_ASN_RRC_includeNR_DC_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_includeNR_DC_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_includeNR_DC_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_includeNE_DC_value2enum_7[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_includeNE_DC_enum2value_7[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_includeNE_DC_specs_7 = { + asn_MAP_ASN_RRC_includeNE_DC_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_includeNE_DC_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_includeNE_DC_tags_7[] = { + (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_ASN_RRC_includeNE_DC_7 = { + "includeNE-DC", + "includeNE-DC", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_includeNE_DC_tags_7, + sizeof(asn_DEF_ASN_RRC_includeNE_DC_tags_7) + /sizeof(asn_DEF_ASN_RRC_includeNE_DC_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_includeNE_DC_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_includeNE_DC_tags_7) + /sizeof(asn_DEF_ASN_RRC_includeNE_DC_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_includeNE_DC_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_includeNE_DC_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_mrdc_Request_2[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request, omitEN_DC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_omitEN_DC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "omitEN-DC" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request, includeNR_DC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_includeNR_DC_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "includeNR-DC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request, includeNE_DC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_includeNE_DC_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "includeNE-DC" + }, +}; +static const int asn_MAP_ASN_RRC_mrdc_Request_oms_2[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_mrdc_Request_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_mrdc_Request_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* omitEN-DC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* includeNR-DC */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* includeNE-DC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_mrdc_Request_specs_2 = { + sizeof(struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request), + offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request, _asn_ctx), + asn_MAP_ASN_RRC_mrdc_Request_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_mrdc_Request_oms_2, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mrdc_Request_2 = { + "mrdc-Request", + "mrdc-Request", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_mrdc_Request_tags_2, + sizeof(asn_DEF_ASN_RRC_mrdc_Request_tags_2) + /sizeof(asn_DEF_ASN_RRC_mrdc_Request_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_mrdc_Request_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_mrdc_Request_tags_2) + /sizeof(asn_DEF_ASN_RRC_mrdc_Request_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_mrdc_Request_2, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_mrdc_Request_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRequestFilterCommon_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon, mrdc_Request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_mrdc_Request_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-Request" + }, +}; +static const int asn_MAP_ASN_RRC_UE_CapabilityRequestFilterCommon_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_CapabilityRequestFilterCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mrdc-Request */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRequestFilterCommon_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRequestFilterCommon), + offsetof(struct ASN_RRC_UE_CapabilityRequestFilterCommon, _asn_ctx), + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterCommon_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterCommon_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon = { + "UE-CapabilityRequestFilterCommon", + "UE-CapabilityRequestFilterCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRequestFilterCommon_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UE_CapabilityRequestFilterCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.h new file mode 100644 index 0000000..c6b2233 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterCommon.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRequestFilterCommon_H_ +#define _ASN_RRC_UE_CapabilityRequestFilterCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__omitEN_DC { + ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__omitEN_DC_true = 0 +} e_ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__omitEN_DC; +typedef enum ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNR_DC { + ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNR_DC_true = 0 +} e_ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNR_DC; +typedef enum ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNE_DC { + ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNE_DC_true = 0 +} e_ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request__includeNE_DC; + +/* ASN_RRC_UE-CapabilityRequestFilterCommon */ +typedef struct ASN_RRC_UE_CapabilityRequestFilterCommon { + struct ASN_RRC_UE_CapabilityRequestFilterCommon__mrdc_Request { + long *omitEN_DC; /* OPTIONAL */ + long *includeNR_DC; /* OPTIONAL */ + long *includeNE_DC; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mrdc_Request; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRequestFilterCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_omitEN_DC_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_includeNR_DC_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_includeNE_DC_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRequestFilterCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRequestFilterCommon_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRequestFilterCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.c new file mode 100644 index 0000000..f2cbfd5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_srs_SwitchingTimeRequest_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_srs_SwitchingTimeRequest_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_srs_SwitchingTimeRequest_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_srs_SwitchingTimeRequest_specs_2 = { + asn_MAP_ASN_RRC_srs_SwitchingTimeRequest_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_srs_SwitchingTimeRequest_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_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_ASN_RRC_srs_SwitchingTimeRequest_2 = { + "srs-SwitchingTimeRequest", + "srs-SwitchingTimeRequest", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2, + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2) + /sizeof(asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_srs_SwitchingTimeRequest_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_srs_SwitchingTimeRequest_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540__nonCriticalExtension), + offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540, srs_SwitchingTimeRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-SwitchingTimeRequest" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* srs-SwitchingTimeRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540), + offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540, _asn_ctx), + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540 = { + "UE-CapabilityRequestFilterNR-v1540", + "UE-CapabilityRequestFilterNR-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h new file mode 100644 index 0000000..67a5949 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h @@ -0,0 +1,51 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRequestFilterNR_v1540_H_ +#define _ASN_RRC_UE_CapabilityRequestFilterNR_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_CapabilityRequestFilterNR_v1540__srs_SwitchingTimeRequest { + ASN_RRC_UE_CapabilityRequestFilterNR_v1540__srs_SwitchingTimeRequest_true = 0 +} e_ASN_RRC_UE_CapabilityRequestFilterNR_v1540__srs_SwitchingTimeRequest; + +/* ASN_RRC_UE-CapabilityRequestFilterNR-v1540 */ +typedef struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540 { + long *srs_SwitchingTimeRequest; /* OPTIONAL */ + struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRequestFilterNR_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_srs_SwitchingTimeRequest_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRequestFilterNR_v1540_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRequestFilterNR_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.c b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.c new file mode 100644 index 0000000..6007331 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-CapabilityRequestFilterNR.h" + +#include "ASN_RRC_FreqBandList.h" +#include "ASN_RRC_UE-CapabilityRequestFilterNR-v1540.h" +static asn_TYPE_member_t asn_MBR_ASN_RRC_UE_CapabilityRequestFilterNR_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR, frequencyBandListFilter), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListFilter" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyBandListFilter */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_CapabilityRequestFilterNR_specs_1 = { + sizeof(struct ASN_RRC_UE_CapabilityRequestFilterNR), + offsetof(struct ASN_RRC_UE_CapabilityRequestFilterNR, _asn_ctx), + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_CapabilityRequestFilterNR_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR = { + "UE-CapabilityRequestFilterNR", + "UE-CapabilityRequestFilterNR", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_CapabilityRequestFilterNR_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_CapabilityRequestFilterNR_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.h b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.h new file mode 100644 index 0000000..f223a10 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-CapabilityRequestFilterNR.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_CapabilityRequestFilterNR_H_ +#define _ASN_RRC_UE_CapabilityRequestFilterNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FreqBandList; +struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540; + +/* ASN_RRC_UE-CapabilityRequestFilterNR */ +typedef struct ASN_RRC_UE_CapabilityRequestFilterNR { + struct ASN_RRC_FreqBandList *frequencyBandListFilter; /* OPTIONAL */ + struct ASN_RRC_UE_CapabilityRequestFilterNR_v1540 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_CapabilityRequestFilterNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_CapabilityRequestFilterNR; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_CapabilityRequestFilterNR_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.c b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.c new file mode 100644 index 0000000..b56db4b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-MRDC-Capability-v1560.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC-v1560.h" +#include "ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h" +static int +memb_ASN_RRC_receivedFilters_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_receivedFilters_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 = { + sizeof(struct ASN_RRC_UE_MRDC_Capability_v1560__nonCriticalExtension), + offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_Capability_v1560_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, receivedFilters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_receivedFilters_constr_2, memb_ASN_RRC_receivedFilters_constraint_1 }, + 0, 0, /* No default value */ + "receivedFilters" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, measAndMobParametersMRDC_v1560), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-v1560" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, fdd_Add_UE_MRDC_Capabilities_v1560), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-MRDC-Capabilities-v1560" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, tdd_Add_UE_MRDC_Capabilities_v1560), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-MRDC-Capabilities-v1560" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_MRDC_Capability_v1560_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_MRDC_Capability_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* receivedFilters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measAndMobParametersMRDC-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fdd-Add-UE-MRDC-Capabilities-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* tdd-Add-UE-MRDC-Capabilities-v1560 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_Capability_v1560_specs_1 = { + sizeof(struct ASN_RRC_UE_MRDC_Capability_v1560), + offsetof(struct ASN_RRC_UE_MRDC_Capability_v1560, _asn_ctx), + asn_MAP_ASN_RRC_UE_MRDC_Capability_v1560_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_MRDC_Capability_v1560_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560 = { + "UE-MRDC-Capability-v1560", + "UE-MRDC-Capability-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_MRDC_Capability_v1560_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_UE_MRDC_Capability_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.h b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.h new file mode 100644 index 0000000..b7aaa03 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability-v1560.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_MRDC_Capability_v1560_H_ +#define _ASN_RRC_UE_MRDC_Capability_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC_v1560; +struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560; + +/* ASN_RRC_UE-MRDC-Capability-v1560 */ +typedef struct ASN_RRC_UE_MRDC_Capability_v1560 { + OCTET_STRING_t *receivedFilters; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersMRDC_v1560 *measAndMobParametersMRDC_v1560; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560 *fdd_Add_UE_MRDC_Capabilities_v1560; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560 *tdd_Add_UE_MRDC_Capabilities_v1560; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_Capability_v1560__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_MRDC_Capability_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_Capability_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_Capability_v1560_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_MRDC_Capability_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.c b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.c new file mode 100644 index 0000000..00a5275 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.c @@ -0,0 +1,243 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-MRDC-Capability.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC.h" +#include "ASN_RRC_Phy-ParametersMRDC.h" +#include "ASN_RRC_GeneralParametersMRDC-XDD-Diff.h" +#include "ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h" +#include "ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h" +#include "ASN_RRC_PDCP-ParametersMRDC.h" +#include "ASN_RRC_UE-MRDC-Capability-v1560.h" +#include "ASN_RRC_FeatureSetCombination.h" +static int +memb_ASN_RRC_featureSetCombinations_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 <= 1024)) { + /* 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_ASN_RRC_featureSetCombinations_constr_10 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetCombinations_constr_10 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_ASN_RRC_featureSetCombinations_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetCombinations_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetCombinations_specs_10 = { + sizeof(struct ASN_RRC_UE_MRDC_Capability__featureSetCombinations), + offsetof(struct ASN_RRC_UE_MRDC_Capability__featureSetCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetCombinations_10 = { + "featureSetCombinations", + "featureSetCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetCombinations_tags_10, + sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_10) + /sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetCombinations_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_10) + /sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetCombinations_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetCombinations_10, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetCombinations_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_Capability_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_MRDC_Capability, measAndMobParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_MRDC_Capability, phy_ParametersMRDC_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersMRDC-v1530" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_MRDC_Capability, rf_ParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RF_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rf-ParametersMRDC" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_UE_MRDC_Capability, generalParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generalParametersMRDC" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_UE_MRDC_Capability, fdd_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_UE_MRDC_Capability, tdd_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_UE_MRDC_Capability, fr1_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UE_MRDC_Capability, fr2_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UE_MRDC_Capability, featureSetCombinations), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetCombinations_10, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetCombinations_constr_10, memb_ASN_RRC_featureSetCombinations_constraint_1 }, + 0, 0, /* No default value */ + "featureSetCombinations" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_MRDC_Capability, pdcp_ParametersMRDC_v1530), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCP_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-ParametersMRDC-v1530" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_MRDC_Capability, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_MRDC_Capability, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_MRDC_Capability_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_MRDC_Capability_oms_1[] = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_MRDC_Capability_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phy-ParametersMRDC-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rf-ParametersMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* generalParametersMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fdd-Add-UE-MRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tdd-Add-UE-MRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* fr1-Add-UE-MRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fr2-Add-UE-MRDC-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* featureSetCombinations */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pdcp-ParametersMRDC-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* nonCriticalExtension */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_Capability_specs_1 = { + sizeof(struct ASN_RRC_UE_MRDC_Capability), + offsetof(struct ASN_RRC_UE_MRDC_Capability, _asn_ctx), + asn_MAP_ASN_RRC_UE_MRDC_Capability_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_MRDC_Capability_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_Capability = { + "UE-MRDC-Capability", + "UE-MRDC-Capability", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_Capability_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_MRDC_Capability_1, + 12, /* Elements count */ + &asn_SPC_ASN_RRC_UE_MRDC_Capability_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.h b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.h new file mode 100644 index 0000000..af2e3fd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-Capability.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_MRDC_Capability_H_ +#define _ASN_RRC_UE_MRDC_Capability_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RF-ParametersMRDC.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC; +struct ASN_RRC_Phy_ParametersMRDC; +struct ASN_RRC_GeneralParametersMRDC_XDD_Diff; +struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode; +struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode; +struct ASN_RRC_PDCP_ParametersMRDC; +struct ASN_RRC_UE_MRDC_Capability_v1560; +struct ASN_RRC_FeatureSetCombination; + +/* ASN_RRC_UE-MRDC-Capability */ +typedef struct ASN_RRC_UE_MRDC_Capability { + struct ASN_RRC_MeasAndMobParametersMRDC *measAndMobParametersMRDC; /* OPTIONAL */ + struct ASN_RRC_Phy_ParametersMRDC *phy_ParametersMRDC_v1530; /* OPTIONAL */ + ASN_RRC_RF_ParametersMRDC_t rf_ParametersMRDC; + struct ASN_RRC_GeneralParametersMRDC_XDD_Diff *generalParametersMRDC; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode *fdd_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode *tdd_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode *fr1_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode *fr2_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_Capability__featureSetCombinations { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetCombinations; + struct ASN_RRC_PDCP_ParametersMRDC *pdcp_ParametersMRDC_v1530; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_UE_MRDC_Capability_v1560 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_MRDC_Capability_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_Capability; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_MRDC_Capability_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.c b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.c new file mode 100644 index 0000000..9d9ded3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, measAndMobParametersMRDC_FRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-FRX-Diff" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measAndMobParametersMRDC-FRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_specs_1 = { + sizeof(struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode), + offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode, _asn_ctx), + asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_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_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode = { + "UE-MRDC-CapabilityAddFRX-Mode", + "UE-MRDC-CapabilityAddFRX-Mode", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h new file mode 100644 index 0000000..bb9870f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_H_ +#define _ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasAndMobParametersMRDC-FRX-Diff.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UE-MRDC-CapabilityAddFRX-Mode */ +typedef struct ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode { + ASN_RRC_MeasAndMobParametersMRDC_FRX_Diff_t measAndMobParametersMRDC_FRX_Diff; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_MRDC_CapabilityAddFRX_Mode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.c b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.c new file mode 100644 index 0000000..f63549b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff-v1560.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560, measAndMobParametersMRDC_XDD_Diff_v1560), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff-v1560" + }, +}; +static const int asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measAndMobParametersMRDC-XDD-Diff-v1560 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_specs_1 = { + sizeof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560), + offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560, _asn_ctx), + asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560 = { + "UE-MRDC-CapabilityAddXDD-Mode-v1560", + "UE-MRDC-CapabilityAddXDD-Mode-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h new file mode 100644 index 0000000..20cf558 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_H_ +#define _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560; + +/* ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode-v1560 */ +typedef struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560 { + struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff_v1560 *measAndMobParametersMRDC_XDD_Diff_v1560; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.c b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.c new file mode 100644 index 0000000..bbae14f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h" + +#include "ASN_RRC_MeasAndMobParametersMRDC-XDD-Diff.h" +#include "ASN_RRC_GeneralParametersMRDC-XDD-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, measAndMobParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, generalParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_GeneralParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generalParametersMRDC-XDD-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersMRDC-XDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* generalParametersMRDC-XDD-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_specs_1 = { + sizeof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode), + offsetof(struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode, _asn_ctx), + asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode = { + "UE-MRDC-CapabilityAddXDD-Mode", + "UE-MRDC-CapabilityAddXDD-Mode", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h new file mode 100644 index 0000000..9b2d45d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_H_ +#define _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff; +struct ASN_RRC_GeneralParametersMRDC_XDD_Diff; + +/* ASN_RRC_UE-MRDC-CapabilityAddXDD-Mode */ +typedef struct ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode { + struct ASN_RRC_MeasAndMobParametersMRDC_XDD_Diff *measAndMobParametersMRDC_XDD_Diff; /* OPTIONAL */ + struct ASN_RRC_GeneralParametersMRDC_XDD_Diff *generalParametersMRDC_XDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_MRDC_CapabilityAddXDD_Mode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.c b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.c new file mode 100644 index 0000000..d234cf4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.c @@ -0,0 +1,247 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-Capability-v1530.h" + +#include "ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h" +#include "ASN_RRC_InterRAT-Parameters.h" +#include "ASN_RRC_UE-NR-Capability-v1540.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_ASN_RRC_dummy_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_inactiveState_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_delayBudgetReporting_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_dummy_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_4 = { + asn_MAP_ASN_RRC_dummy_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_dummy_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_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_ASN_RRC_dummy_4 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_dummy_tags_4, + sizeof(asn_DEF_ASN_RRC_dummy_tags_4) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_dummy_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_dummy_tags_4) + /sizeof(asn_DEF_ASN_RRC_dummy_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_dummy_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_dummy_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_inactiveState_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_inactiveState_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_inactiveState_specs_7 = { + asn_MAP_ASN_RRC_inactiveState_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_inactiveState_enum2value_7, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_inactiveState_tags_7[] = { + (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_ASN_RRC_inactiveState_7 = { + "inactiveState", + "inactiveState", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_inactiveState_tags_7, + sizeof(asn_DEF_ASN_RRC_inactiveState_tags_7) + /sizeof(asn_DEF_ASN_RRC_inactiveState_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_inactiveState_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_inactiveState_tags_7) + /sizeof(asn_DEF_ASN_RRC_inactiveState_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_inactiveState_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_inactiveState_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_delayBudgetReporting_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_delayBudgetReporting_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_delayBudgetReporting_specs_9 = { + asn_MAP_ASN_RRC_delayBudgetReporting_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_delayBudgetReporting_enum2value_9, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_delayBudgetReporting_tags_9[] = { + (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_ASN_RRC_delayBudgetReporting_9 = { + "delayBudgetReporting", + "delayBudgetReporting", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_delayBudgetReporting_tags_9, + sizeof(asn_DEF_ASN_RRC_delayBudgetReporting_tags_9) + /sizeof(asn_DEF_ASN_RRC_delayBudgetReporting_tags_9[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_delayBudgetReporting_tags_9, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_delayBudgetReporting_tags_9) + /sizeof(asn_DEF_ASN_RRC_delayBudgetReporting_tags_9[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_delayBudgetReporting_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_delayBudgetReporting_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1530_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, fdd_Add_UE_NR_Capabilities_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-NR-Capabilities-v1530" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, tdd_Add_UE_NR_Capabilities_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-NR-Capabilities-v1530" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, dummy), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_dummy_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, interRAT_Parameters), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_InterRAT_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interRAT-Parameters" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, inactiveState), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_inactiveState_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "inactiveState" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, delayBudgetReporting), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_delayBudgetReporting_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReporting" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability_v1530, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_Capability_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_Capability_v1530_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_Capability_v1530_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* fdd-Add-UE-NR-Capabilities-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* tdd-Add-UE-NR-Capabilities-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* dummy */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* interRAT-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* inactiveState */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* delayBudgetReporting */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1530_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_Capability_v1530), + offsetof(struct ASN_RRC_UE_NR_Capability_v1530, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_Capability_v1530_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_Capability_v1530_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1530 = { + "UE-NR-Capability-v1530", + "UE-NR-Capability-v1530", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1530_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_Capability_v1530_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_Capability_v1530_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.h b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.h new file mode 100644 index 0000000..2ad9b40 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1530.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_Capability_v1530_H_ +#define _ASN_RRC_UE_NR_Capability_v1530_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_NR_Capability_v1530__dummy { + ASN_RRC_UE_NR_Capability_v1530__dummy_supported = 0 +} e_ASN_RRC_UE_NR_Capability_v1530__dummy; +typedef enum ASN_RRC_UE_NR_Capability_v1530__inactiveState { + ASN_RRC_UE_NR_Capability_v1530__inactiveState_supported = 0 +} e_ASN_RRC_UE_NR_Capability_v1530__inactiveState; +typedef enum ASN_RRC_UE_NR_Capability_v1530__delayBudgetReporting { + ASN_RRC_UE_NR_Capability_v1530__delayBudgetReporting_supported = 0 +} e_ASN_RRC_UE_NR_Capability_v1530__delayBudgetReporting; + +/* Forward declarations */ +struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530; +struct ASN_RRC_InterRAT_Parameters; +struct ASN_RRC_UE_NR_Capability_v1540; + +/* ASN_RRC_UE-NR-Capability-v1530 */ +typedef struct ASN_RRC_UE_NR_Capability_v1530 { + struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530 *fdd_Add_UE_NR_Capabilities_v1530; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530 *tdd_Add_UE_NR_Capabilities_v1530; /* OPTIONAL */ + long *dummy; /* OPTIONAL */ + struct ASN_RRC_InterRAT_Parameters *interRAT_Parameters; /* OPTIONAL */ + long *inactiveState; /* OPTIONAL */ + long *delayBudgetReporting; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability_v1540 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_Capability_v1530_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_inactiveState_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_delayBudgetReporting_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1530; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1530_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1530_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_Capability_v1530_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.c b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.c new file mode 100644 index 0000000..e2f86e5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.c @@ -0,0 +1,161 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-Capability-v1540.h" + +#include "ASN_RRC_SDAP-Parameters.h" +#include "ASN_RRC_IMS-Parameters.h" +#include "ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h" +#include "ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h" +#include "ASN_RRC_UE-NR-Capability-v1550.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_overheatingInd_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_overheatingInd_value2enum_3[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_overheatingInd_enum2value_3[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_overheatingInd_specs_3 = { + asn_MAP_ASN_RRC_overheatingInd_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_overheatingInd_enum2value_3, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_overheatingInd_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_ASN_RRC_overheatingInd_3 = { + "overheatingInd", + "overheatingInd", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_overheatingInd_tags_3, + sizeof(asn_DEF_ASN_RRC_overheatingInd_tags_3) + /sizeof(asn_DEF_ASN_RRC_overheatingInd_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_overheatingInd_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_overheatingInd_tags_3) + /sizeof(asn_DEF_ASN_RRC_overheatingInd_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_overheatingInd_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_overheatingInd_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1540_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, sdap_Parameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SDAP_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-Parameters" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, overheatingInd), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_overheatingInd_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overheatingInd" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, ims_Parameters), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IMS_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-Parameters" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, fr1_Add_UE_NR_Capabilities_v1540), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-NR-Capabilities-v1540" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, fr2_Add_UE_NR_Capabilities_v1540), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-NR-Capabilities-v1540" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, fr1_fr2_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-fr2-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability_v1540, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_Capability_v1550, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_Capability_v1540_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_Capability_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sdap-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* overheatingInd */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ims-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fr1-Add-UE-NR-Capabilities-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fr2-Add-UE-NR-Capabilities-v1540 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* fr1-fr2-Add-UE-NR-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1540_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_Capability_v1540), + offsetof(struct ASN_RRC_UE_NR_Capability_v1540, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_Capability_v1540_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_Capability_v1540_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1540 = { + "UE-NR-Capability-v1540", + "UE-NR-Capability-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_Capability_v1540_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_Capability_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.h b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.h new file mode 100644 index 0000000..32a8f47 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1540.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_Capability_v1540_H_ +#define _ASN_RRC_UE_NR_Capability_v1540_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_NR_Capability_v1540__overheatingInd { + ASN_RRC_UE_NR_Capability_v1540__overheatingInd_supported = 0 +} e_ASN_RRC_UE_NR_Capability_v1540__overheatingInd; + +/* Forward declarations */ +struct ASN_RRC_SDAP_Parameters; +struct ASN_RRC_IMS_Parameters; +struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540; +struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode; +struct ASN_RRC_UE_NR_Capability_v1550; + +/* ASN_RRC_UE-NR-Capability-v1540 */ +typedef struct ASN_RRC_UE_NR_Capability_v1540 { + struct ASN_RRC_SDAP_Parameters *sdap_Parameters; /* OPTIONAL */ + long *overheatingInd; /* OPTIONAL */ + struct ASN_RRC_IMS_Parameters *ims_Parameters; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540 *fr1_Add_UE_NR_Capabilities_v1540; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540 *fr2_Add_UE_NR_Capabilities_v1540; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode *fr1_fr2_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability_v1550 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_Capability_v1540_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_overheatingInd_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1540_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_Capability_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.c b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.c new file mode 100644 index 0000000..f8756cd --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.c @@ -0,0 +1,107 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-Capability-v1550.h" + +#include "ASN_RRC_UE-NR-Capability-v1560.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_reducedCP_Latency_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_reducedCP_Latency_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ASN_RRC_reducedCP_Latency_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reducedCP_Latency_specs_2 = { + asn_MAP_ASN_RRC_reducedCP_Latency_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_reducedCP_Latency_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_reducedCP_Latency_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_ASN_RRC_reducedCP_Latency_2 = { + "reducedCP-Latency", + "reducedCP-Latency", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_reducedCP_Latency_tags_2, + sizeof(asn_DEF_ASN_RRC_reducedCP_Latency_tags_2) + /sizeof(asn_DEF_ASN_RRC_reducedCP_Latency_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_reducedCP_Latency_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_reducedCP_Latency_tags_2) + /sizeof(asn_DEF_ASN_RRC_reducedCP_Latency_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_reducedCP_Latency_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_reducedCP_Latency_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1550_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability_v1550, reducedCP_Latency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_reducedCP_Latency_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedCP-Latency" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability_v1550, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_Capability_v1560, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_Capability_v1550_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_Capability_v1550_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reducedCP-Latency */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1550_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_Capability_v1550), + offsetof(struct ASN_RRC_UE_NR_Capability_v1550, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_Capability_v1550_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_Capability_v1550_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1550 = { + "UE-NR-Capability-v1550", + "UE-NR-Capability-v1550", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1550_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_Capability_v1550_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_Capability_v1550_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.h b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.h new file mode 100644 index 0000000..406ea3a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1550.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_Capability_v1550_H_ +#define _ASN_RRC_UE_NR_Capability_v1550_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_NR_Capability_v1550__reducedCP_Latency { + ASN_RRC_UE_NR_Capability_v1550__reducedCP_Latency_supported = 0 +} e_ASN_RRC_UE_NR_Capability_v1550__reducedCP_Latency; + +/* Forward declarations */ +struct ASN_RRC_UE_NR_Capability_v1560; + +/* ASN_RRC_UE-NR-Capability-v1550 */ +typedef struct ASN_RRC_UE_NR_Capability_v1550 { + long *reducedCP_Latency; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability_v1560 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_Capability_v1550_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reducedCP_Latency_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1550; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1550_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1550_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_Capability_v1550_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.c b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.c new file mode 100644 index 0000000..f130a6f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.c @@ -0,0 +1,127 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-Capability-v1560.h" + +#include "ASN_RRC_NRDC-Parameters.h" +static int +memb_ASN_RRC_receivedFilters_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_receivedFilters_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_UE_NR_Capability_v1560__nonCriticalExtension), + offsetof(struct ASN_RRC_UE_NR_Capability_v1560__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1560_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_NR_Capability_v1560, nrdc_Parameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_NRDC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrdc-Parameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability_v1560, receivedFilters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_receivedFilters_constr_3, memb_ASN_RRC_receivedFilters_constraint_1 }, + 0, 0, /* No default value */ + "receivedFilters" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability_v1560, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_Capability_v1560_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_Capability_v1560_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nrdc-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* receivedFilters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1560_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_Capability_v1560), + offsetof(struct ASN_RRC_UE_NR_Capability_v1560, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_Capability_v1560_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_Capability_v1560_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1560 = { + "UE-NR-Capability-v1560", + "UE-NR-Capability-v1560", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_v1560_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_Capability_v1560_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_Capability_v1560_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.h b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.h new file mode 100644 index 0000000..8d46718 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability-v1560.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_Capability_v1560_H_ +#define _ASN_RRC_UE_NR_Capability_v1560_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_NRDC_Parameters; + +/* ASN_RRC_UE-NR-Capability-v1560 */ +typedef struct ASN_RRC_UE_NR_Capability_v1560 { + struct ASN_RRC_NRDC_Parameters *nrdc_Parameters; /* OPTIONAL */ + OCTET_STRING_t *receivedFilters; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability_v1560__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_Capability_v1560_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability_v1560; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_v1560_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_v1560_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_Capability_v1560_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability.c b/src/asn/rrc/ASN_RRC_UE-NR-Capability.c new file mode 100644 index 0000000..780923a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability.c @@ -0,0 +1,273 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-Capability.h" + +#include "ASN_RRC_RLC-Parameters.h" +#include "ASN_RRC_MAC-Parameters.h" +#include "ASN_RRC_MeasAndMobParameters.h" +#include "ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h" +#include "ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h" +#include "ASN_RRC_FeatureSets.h" +#include "ASN_RRC_UE-NR-Capability-v1530.h" +#include "ASN_RRC_FeatureSetCombination.h" +static int +memb_ASN_RRC_featureSetCombinations_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 <= 1024)) { + /* 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_ASN_RRC_featureSetCombinations_constr_14 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_per_constraints_t asn_PER_memb_ASN_RRC_featureSetCombinations_constr_14 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_ASN_RRC_featureSetCombinations_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_FeatureSetCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_featureSetCombinations_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_featureSetCombinations_specs_14 = { + sizeof(struct ASN_RRC_UE_NR_Capability__featureSetCombinations), + offsetof(struct ASN_RRC_UE_NR_Capability__featureSetCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_featureSetCombinations_14 = { + "featureSetCombinations", + "featureSetCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_featureSetCombinations_tags_14, + sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_14) + /sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_14[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_featureSetCombinations_tags_14, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_14) + /sizeof(asn_DEF_ASN_RRC_featureSetCombinations_tags_14[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_featureSetCombinations_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_featureSetCombinations_14, + 1, /* Single element */ + &asn_SPC_ASN_RRC_featureSetCombinations_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_Capability_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_NR_Capability, accessStratumRelease), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_AccessStratumRelease, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accessStratumRelease" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_NR_Capability, pdcp_Parameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PDCP_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Parameters" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability, rlc_Parameters), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RLC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlc-Parameters" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability, mac_Parameters), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MAC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-Parameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_NR_Capability, phy_Parameters), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-Parameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_NR_Capability, rf_Parameters), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RF_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rf-Parameters" + }, + { ATF_POINTER, 9, offsetof(struct ASN_RRC_UE_NR_Capability, measAndMobParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParameters" + }, + { ATF_POINTER, 8, offsetof(struct ASN_RRC_UE_NR_Capability, fdd_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 7, offsetof(struct ASN_RRC_UE_NR_Capability, tdd_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_UE_NR_Capability, fr1_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UE_NR_Capability, fr2_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UE_NR_Capability, featureSets), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FeatureSets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "featureSets" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_NR_Capability, featureSetCombinations), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_ASN_RRC_featureSetCombinations_14, + 0, + { 0, &asn_PER_memb_ASN_RRC_featureSetCombinations_constr_14, memb_ASN_RRC_featureSetCombinations_constraint_1 }, + 0, 0, /* No default value */ + "featureSetCombinations" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_Capability, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_Capability, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_NR_Capability_v1530, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_Capability_oms_1[] = { 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_Capability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_Capability_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessStratumRelease */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdcp-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mac-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* phy-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rf-Parameters */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measAndMobParameters */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fdd-Add-UE-NR-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tdd-Add-UE-NR-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* fr1-Add-UE-NR-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* fr2-Add-UE-NR-Capabilities */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* featureSets */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* featureSetCombinations */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* nonCriticalExtension */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_Capability_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_Capability), + offsetof(struct ASN_RRC_UE_NR_Capability, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_Capability_tag2el_1, + 15, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_Capability_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability = { + "UE-NR-Capability", + "UE-NR-Capability", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_Capability_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_Capability_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_Capability_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_Capability_1, + 15, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_Capability_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-Capability.h b/src/asn/rrc/ASN_RRC_UE-NR-Capability.h new file mode 100644 index 0000000..7ec8fa7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-Capability.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_Capability_H_ +#define _ASN_RRC_UE_NR_Capability_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_AccessStratumRelease.h" +#include "ASN_RRC_PDCP-Parameters.h" +#include "ASN_RRC_Phy-Parameters.h" +#include "ASN_RRC_RF-Parameters.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_RLC_Parameters; +struct ASN_RRC_MAC_Parameters; +struct ASN_RRC_MeasAndMobParameters; +struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode; +struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode; +struct ASN_RRC_FeatureSets; +struct ASN_RRC_UE_NR_Capability_v1530; +struct ASN_RRC_FeatureSetCombination; + +/* ASN_RRC_UE-NR-Capability */ +typedef struct ASN_RRC_UE_NR_Capability { + ASN_RRC_AccessStratumRelease_t accessStratumRelease; + ASN_RRC_PDCP_Parameters_t pdcp_Parameters; + struct ASN_RRC_RLC_Parameters *rlc_Parameters; /* OPTIONAL */ + struct ASN_RRC_MAC_Parameters *mac_Parameters; /* OPTIONAL */ + ASN_RRC_Phy_Parameters_t phy_Parameters; + ASN_RRC_RF_Parameters_t rf_Parameters; + struct ASN_RRC_MeasAndMobParameters *measAndMobParameters; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode *fdd_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode *tdd_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode *fr1_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode *fr2_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct ASN_RRC_FeatureSets *featureSets; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability__featureSetCombinations { + A_SEQUENCE_OF(struct ASN_RRC_FeatureSetCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetCombinations; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_UE_NR_Capability_v1530 *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_Capability_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_Capability; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_Capability_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.c b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.c new file mode 100644 index 0000000..fdc9d94 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h" + +#include "ASN_RRC_IMS-ParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540, ims_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_IMS_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-ParametersFRX-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ims-ParametersFRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540), + offsetof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540 = { + "UE-NR-CapabilityAddFRX-Mode-v1540", + "UE-NR-CapabilityAddFRX-Mode-v1540", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h new file mode 100644 index 0000000..43f049b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_H_ +#define _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_IMS_ParametersFRX_Diff; + +/* ASN_RRC_UE-NR-CapabilityAddFRX-Mode-v1540 */ +typedef struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540 { + struct ASN_RRC_IMS_ParametersFRX_Diff *ims_ParametersFRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_v1540_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.c b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.c new file mode 100644 index 0000000..1a5688c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h" + +#include "ASN_RRC_Phy-ParametersFRX-Diff.h" +#include "ASN_RRC_MeasAndMobParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode, phy_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFRX-Diff" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode, measAndMobParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersFRX-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* phy-ParametersFRX-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* measAndMobParametersFRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode), + offsetof(struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode = { + "UE-NR-CapabilityAddFRX-Mode", + "UE-NR-CapabilityAddFRX-Mode", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h new file mode 100644 index 0000000..293b96e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddFRX-Mode.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_H_ +#define _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_Phy_ParametersFRX_Diff; +struct ASN_RRC_MeasAndMobParametersFRX_Diff; + +/* ASN_RRC_UE-NR-CapabilityAddFRX-Mode */ +typedef struct ASN_RRC_UE_NR_CapabilityAddFRX_Mode { + struct ASN_RRC_Phy_ParametersFRX_Diff *phy_ParametersFRX_Diff; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersFRX_Diff *measAndMobParametersFRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_CapabilityAddFRX_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddFRX_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddFRX_Mode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_CapabilityAddFRX_Mode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.c b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.c new file mode 100644 index 0000000..885fedc --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530, eutra_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_EUTRA_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-ParametersXDD-Diff" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eutra-ParametersXDD-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530), + offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_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_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530 = { + "UE-NR-CapabilityAddXDD-Mode-v1530", + "UE-NR-CapabilityAddXDD-Mode-v1530", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h new file mode 100644 index 0000000..949b753 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_H_ +#define _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_EUTRA-ParametersXDD-Diff.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UE-NR-CapabilityAddXDD-Mode-v1530 */ +typedef struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530 { + ASN_RRC_EUTRA_ParametersXDD_Diff_t eutra_ParametersXDD_Diff; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_v1530_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.c b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.c new file mode 100644 index 0000000..0d14eb8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h" + +#include "ASN_RRC_Phy-ParametersXDD-Diff.h" +#include "ASN_RRC_MAC-ParametersXDD-Diff.h" +#include "ASN_RRC_MeasAndMobParametersXDD-Diff.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode, phy_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_Phy_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersXDD-Diff" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode, mac_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MAC_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersXDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode, measAndMobParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasAndMobParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersXDD-Diff" + }, +}; +static const int asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* phy-ParametersXDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mac-ParametersXDD-Diff */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* measAndMobParametersXDD-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_specs_1 = { + sizeof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode), + offsetof(struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode, _asn_ctx), + asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode = { + "UE-NR-CapabilityAddXDD-Mode", + "UE-NR-CapabilityAddXDD-Mode", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h new file mode 100644 index 0000000..3397624 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-NR-CapabilityAddXDD-Mode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_H_ +#define _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_Phy_ParametersXDD_Diff; +struct ASN_RRC_MAC_ParametersXDD_Diff; +struct ASN_RRC_MeasAndMobParametersXDD_Diff; + +/* ASN_RRC_UE-NR-CapabilityAddXDD-Mode */ +typedef struct ASN_RRC_UE_NR_CapabilityAddXDD_Mode { + struct ASN_RRC_Phy_ParametersXDD_Diff *phy_ParametersXDD_Diff; /* OPTIONAL */ + struct ASN_RRC_MAC_ParametersXDD_Diff *mac_ParametersXDD_Diff; /* OPTIONAL */ + struct ASN_RRC_MeasAndMobParametersXDD_Diff *measAndMobParametersXDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_NR_CapabilityAddXDD_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_NR_CapabilityAddXDD_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_NR_CapabilityAddXDD_Mode_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_NR_CapabilityAddXDD_Mode_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.c b/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.c new file mode 100644 index 0000000..83e926d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.c @@ -0,0 +1,512 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UE-TimersAndConstants.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. + */ +/* + * 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_ASN_RRC_t300_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t301_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t310_constr_20 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_n310_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t311_constr_37 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 6 } /* (0..6) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_type_ASN_RRC_n311_constr_45 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_t319_constr_54 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_ASN_RRC_t300_value2enum_2[] = { + { 0, 5, "ms100" }, + { 1, 5, "ms200" }, + { 2, 5, "ms300" }, + { 3, 5, "ms400" }, + { 4, 5, "ms600" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms1500" }, + { 7, 6, "ms2000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t300_enum2value_2[] = { + 0, /* ms100(0) */ + 5, /* ms1000(5) */ + 6, /* ms1500(6) */ + 1, /* ms200(1) */ + 7, /* ms2000(7) */ + 2, /* ms300(2) */ + 3, /* ms400(3) */ + 4 /* ms600(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t300_specs_2 = { + asn_MAP_ASN_RRC_t300_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t300_enum2value_2, /* 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_ASN_RRC_t300_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_ASN_RRC_t300_2 = { + "t300", + "t300", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t300_tags_2, + sizeof(asn_DEF_ASN_RRC_t300_tags_2) + /sizeof(asn_DEF_ASN_RRC_t300_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t300_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t300_tags_2) + /sizeof(asn_DEF_ASN_RRC_t300_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t300_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t300_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t301_value2enum_11[] = { + { 0, 5, "ms100" }, + { 1, 5, "ms200" }, + { 2, 5, "ms300" }, + { 3, 5, "ms400" }, + { 4, 5, "ms600" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms1500" }, + { 7, 6, "ms2000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t301_enum2value_11[] = { + 0, /* ms100(0) */ + 5, /* ms1000(5) */ + 6, /* ms1500(6) */ + 1, /* ms200(1) */ + 7, /* ms2000(7) */ + 2, /* ms300(2) */ + 3, /* ms400(3) */ + 4 /* ms600(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t301_specs_11 = { + asn_MAP_ASN_RRC_t301_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t301_enum2value_11, /* 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_ASN_RRC_t301_tags_11[] = { + (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_ASN_RRC_t301_11 = { + "t301", + "t301", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t301_tags_11, + sizeof(asn_DEF_ASN_RRC_t301_tags_11) + /sizeof(asn_DEF_ASN_RRC_t301_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t301_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t301_tags_11) + /sizeof(asn_DEF_ASN_RRC_t301_tags_11[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t301_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t301_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t310_value2enum_20[] = { + { 0, 3, "ms0" }, + { 1, 4, "ms50" }, + { 2, 5, "ms100" }, + { 3, 5, "ms200" }, + { 4, 5, "ms500" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms2000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t310_enum2value_20[] = { + 0, /* ms0(0) */ + 2, /* ms100(2) */ + 5, /* ms1000(5) */ + 3, /* ms200(3) */ + 6, /* ms2000(6) */ + 1, /* ms50(1) */ + 4 /* ms500(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t310_specs_20 = { + asn_MAP_ASN_RRC_t310_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t310_enum2value_20, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_t310_tags_20[] = { + (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_ASN_RRC_t310_20 = { + "t310", + "t310", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t310_tags_20, + sizeof(asn_DEF_ASN_RRC_t310_tags_20) + /sizeof(asn_DEF_ASN_RRC_t310_tags_20[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t310_tags_20, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t310_tags_20) + /sizeof(asn_DEF_ASN_RRC_t310_tags_20[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t310_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t310_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n310_value2enum_28[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" }, + { 4, 2, "n6" }, + { 5, 2, "n8" }, + { 6, 3, "n10" }, + { 7, 3, "n20" } +}; +static const unsigned int asn_MAP_ASN_RRC_n310_enum2value_28[] = { + 0, /* n1(0) */ + 6, /* n10(6) */ + 1, /* n2(1) */ + 7, /* n20(7) */ + 2, /* n3(2) */ + 3, /* n4(3) */ + 4, /* n6(4) */ + 5 /* n8(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n310_specs_28 = { + asn_MAP_ASN_RRC_n310_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n310_enum2value_28, /* 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_ASN_RRC_n310_tags_28[] = { + (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_ASN_RRC_n310_28 = { + "n310", + "n310", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n310_tags_28, + sizeof(asn_DEF_ASN_RRC_n310_tags_28) + /sizeof(asn_DEF_ASN_RRC_n310_tags_28[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n310_tags_28, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n310_tags_28) + /sizeof(asn_DEF_ASN_RRC_n310_tags_28[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n310_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n310_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t311_value2enum_37[] = { + { 0, 6, "ms1000" }, + { 1, 6, "ms3000" }, + { 2, 6, "ms5000" }, + { 3, 7, "ms10000" }, + { 4, 7, "ms15000" }, + { 5, 7, "ms20000" }, + { 6, 7, "ms30000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t311_enum2value_37[] = { + 0, /* ms1000(0) */ + 3, /* ms10000(3) */ + 4, /* ms15000(4) */ + 5, /* ms20000(5) */ + 1, /* ms3000(1) */ + 6, /* ms30000(6) */ + 2 /* ms5000(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t311_specs_37 = { + asn_MAP_ASN_RRC_t311_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t311_enum2value_37, /* N => "tag"; sorted by N */ + 7, /* 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_ASN_RRC_t311_tags_37[] = { + (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_ASN_RRC_t311_37 = { + "t311", + "t311", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t311_tags_37, + sizeof(asn_DEF_ASN_RRC_t311_tags_37) + /sizeof(asn_DEF_ASN_RRC_t311_tags_37[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t311_tags_37, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t311_tags_37) + /sizeof(asn_DEF_ASN_RRC_t311_tags_37[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t311_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t311_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_n311_value2enum_45[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" }, + { 4, 2, "n5" }, + { 5, 2, "n6" }, + { 6, 2, "n8" }, + { 7, 3, "n10" } +}; +static const unsigned int asn_MAP_ASN_RRC_n311_enum2value_45[] = { + 0, /* n1(0) */ + 7, /* n10(7) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3, /* n4(3) */ + 4, /* n5(4) */ + 5, /* n6(5) */ + 6 /* n8(6) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_n311_specs_45 = { + asn_MAP_ASN_RRC_n311_value2enum_45, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_n311_enum2value_45, /* 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_ASN_RRC_n311_tags_45[] = { + (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_ASN_RRC_n311_45 = { + "n311", + "n311", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_n311_tags_45, + sizeof(asn_DEF_ASN_RRC_n311_tags_45) + /sizeof(asn_DEF_ASN_RRC_n311_tags_45[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_n311_tags_45, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_n311_tags_45) + /sizeof(asn_DEF_ASN_RRC_n311_tags_45[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_n311_constr_45, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_n311_specs_45 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_t319_value2enum_54[] = { + { 0, 5, "ms100" }, + { 1, 5, "ms200" }, + { 2, 5, "ms300" }, + { 3, 5, "ms400" }, + { 4, 5, "ms600" }, + { 5, 6, "ms1000" }, + { 6, 6, "ms1500" }, + { 7, 6, "ms2000" } +}; +static const unsigned int asn_MAP_ASN_RRC_t319_enum2value_54[] = { + 0, /* ms100(0) */ + 5, /* ms1000(5) */ + 6, /* ms1500(6) */ + 1, /* ms200(1) */ + 7, /* ms2000(7) */ + 2, /* ms300(2) */ + 3, /* ms400(3) */ + 4 /* ms600(4) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_t319_specs_54 = { + asn_MAP_ASN_RRC_t319_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_t319_enum2value_54, /* 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_ASN_RRC_t319_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t319_54 = { + "t319", + "t319", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_t319_tags_54, + sizeof(asn_DEF_ASN_RRC_t319_tags_54) + /sizeof(asn_DEF_ASN_RRC_t319_tags_54[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_t319_tags_54, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_t319_tags_54) + /sizeof(asn_DEF_ASN_RRC_t319_tags_54[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_t319_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_t319_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UE_TimersAndConstants_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, t300), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t300_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t300" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, t301), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t301_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t301" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, t310), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t310_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t310" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, n310), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n310_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n310" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, t311), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t311_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t311" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, n311), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_n311_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n311" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UE_TimersAndConstants, t319), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_t319_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t319" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UE_TimersAndConstants_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* t300 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* t301 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* t310 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* n310 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* t311 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* n311 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* t319 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_TimersAndConstants_specs_1 = { + sizeof(struct ASN_RRC_UE_TimersAndConstants), + offsetof(struct ASN_RRC_UE_TimersAndConstants, _asn_ctx), + asn_MAP_ASN_RRC_UE_TimersAndConstants_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_TimersAndConstants = { + "UE-TimersAndConstants", + "UE-TimersAndConstants", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1, + sizeof(asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1) + /sizeof(asn_DEF_ASN_RRC_UE_TimersAndConstants_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UE_TimersAndConstants_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_UE_TimersAndConstants_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.h b/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.h new file mode 100644 index 0000000..c5b67ef --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UE-TimersAndConstants.h @@ -0,0 +1,127 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UE_TimersAndConstants_H_ +#define _ASN_RRC_UE_TimersAndConstants_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UE_TimersAndConstants__t300 { + ASN_RRC_UE_TimersAndConstants__t300_ms100 = 0, + ASN_RRC_UE_TimersAndConstants__t300_ms200 = 1, + ASN_RRC_UE_TimersAndConstants__t300_ms300 = 2, + ASN_RRC_UE_TimersAndConstants__t300_ms400 = 3, + ASN_RRC_UE_TimersAndConstants__t300_ms600 = 4, + ASN_RRC_UE_TimersAndConstants__t300_ms1000 = 5, + ASN_RRC_UE_TimersAndConstants__t300_ms1500 = 6, + ASN_RRC_UE_TimersAndConstants__t300_ms2000 = 7 +} e_ASN_RRC_UE_TimersAndConstants__t300; +typedef enum ASN_RRC_UE_TimersAndConstants__t301 { + ASN_RRC_UE_TimersAndConstants__t301_ms100 = 0, + ASN_RRC_UE_TimersAndConstants__t301_ms200 = 1, + ASN_RRC_UE_TimersAndConstants__t301_ms300 = 2, + ASN_RRC_UE_TimersAndConstants__t301_ms400 = 3, + ASN_RRC_UE_TimersAndConstants__t301_ms600 = 4, + ASN_RRC_UE_TimersAndConstants__t301_ms1000 = 5, + ASN_RRC_UE_TimersAndConstants__t301_ms1500 = 6, + ASN_RRC_UE_TimersAndConstants__t301_ms2000 = 7 +} e_ASN_RRC_UE_TimersAndConstants__t301; +typedef enum ASN_RRC_UE_TimersAndConstants__t310 { + ASN_RRC_UE_TimersAndConstants__t310_ms0 = 0, + ASN_RRC_UE_TimersAndConstants__t310_ms50 = 1, + ASN_RRC_UE_TimersAndConstants__t310_ms100 = 2, + ASN_RRC_UE_TimersAndConstants__t310_ms200 = 3, + ASN_RRC_UE_TimersAndConstants__t310_ms500 = 4, + ASN_RRC_UE_TimersAndConstants__t310_ms1000 = 5, + ASN_RRC_UE_TimersAndConstants__t310_ms2000 = 6 +} e_ASN_RRC_UE_TimersAndConstants__t310; +typedef enum ASN_RRC_UE_TimersAndConstants__n310 { + ASN_RRC_UE_TimersAndConstants__n310_n1 = 0, + ASN_RRC_UE_TimersAndConstants__n310_n2 = 1, + ASN_RRC_UE_TimersAndConstants__n310_n3 = 2, + ASN_RRC_UE_TimersAndConstants__n310_n4 = 3, + ASN_RRC_UE_TimersAndConstants__n310_n6 = 4, + ASN_RRC_UE_TimersAndConstants__n310_n8 = 5, + ASN_RRC_UE_TimersAndConstants__n310_n10 = 6, + ASN_RRC_UE_TimersAndConstants__n310_n20 = 7 +} e_ASN_RRC_UE_TimersAndConstants__n310; +typedef enum ASN_RRC_UE_TimersAndConstants__t311 { + ASN_RRC_UE_TimersAndConstants__t311_ms1000 = 0, + ASN_RRC_UE_TimersAndConstants__t311_ms3000 = 1, + ASN_RRC_UE_TimersAndConstants__t311_ms5000 = 2, + ASN_RRC_UE_TimersAndConstants__t311_ms10000 = 3, + ASN_RRC_UE_TimersAndConstants__t311_ms15000 = 4, + ASN_RRC_UE_TimersAndConstants__t311_ms20000 = 5, + ASN_RRC_UE_TimersAndConstants__t311_ms30000 = 6 +} e_ASN_RRC_UE_TimersAndConstants__t311; +typedef enum ASN_RRC_UE_TimersAndConstants__n311 { + ASN_RRC_UE_TimersAndConstants__n311_n1 = 0, + ASN_RRC_UE_TimersAndConstants__n311_n2 = 1, + ASN_RRC_UE_TimersAndConstants__n311_n3 = 2, + ASN_RRC_UE_TimersAndConstants__n311_n4 = 3, + ASN_RRC_UE_TimersAndConstants__n311_n5 = 4, + ASN_RRC_UE_TimersAndConstants__n311_n6 = 5, + ASN_RRC_UE_TimersAndConstants__n311_n8 = 6, + ASN_RRC_UE_TimersAndConstants__n311_n10 = 7 +} e_ASN_RRC_UE_TimersAndConstants__n311; +typedef enum ASN_RRC_UE_TimersAndConstants__t319 { + ASN_RRC_UE_TimersAndConstants__t319_ms100 = 0, + ASN_RRC_UE_TimersAndConstants__t319_ms200 = 1, + ASN_RRC_UE_TimersAndConstants__t319_ms300 = 2, + ASN_RRC_UE_TimersAndConstants__t319_ms400 = 3, + ASN_RRC_UE_TimersAndConstants__t319_ms600 = 4, + ASN_RRC_UE_TimersAndConstants__t319_ms1000 = 5, + ASN_RRC_UE_TimersAndConstants__t319_ms1500 = 6, + ASN_RRC_UE_TimersAndConstants__t319_ms2000 = 7 +} e_ASN_RRC_UE_TimersAndConstants__t319; + +/* ASN_RRC_UE-TimersAndConstants */ +typedef struct ASN_RRC_UE_TimersAndConstants { + long t300; + long t301; + long t310; + long n310; + long t311; + long n311; + long t319; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UE_TimersAndConstants_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t300_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t301_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t310_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n310_28; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t311_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_n311_45; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t319_54; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UE_TimersAndConstants; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UE_TimersAndConstants_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UE_TimersAndConstants_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UE_TimersAndConstants_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.c b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.c new file mode 100644 index 0000000..6513eb3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UEAssistanceInformation-IEs.h" + +#include "ASN_RRC_DelayBudgetReport.h" +#include "ASN_RRC_UEAssistanceInformation-v1540-IEs.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UEAssistanceInformation_IEs, delayBudgetReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DelayBudgetReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReport" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UEAssistanceInformation_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UEAssistanceInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UEAssistanceInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UEAssistanceInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* delayBudgetReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_UEAssistanceInformation_IEs), + offsetof(struct ASN_RRC_UEAssistanceInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UEAssistanceInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UEAssistanceInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UEAssistanceInformation_IEs = { + "UEAssistanceInformation-IEs", + "UEAssistanceInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UEAssistanceInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UEAssistanceInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.h b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.h new file mode 100644 index 0000000..2a74ff2 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-IEs.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UEAssistanceInformation_IEs_H_ +#define _ASN_RRC_UEAssistanceInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_DelayBudgetReport; +struct ASN_RRC_UEAssistanceInformation_v1540_IEs; + +/* ASN_RRC_UEAssistanceInformation-IEs */ +typedef struct ASN_RRC_UEAssistanceInformation_IEs { + struct ASN_RRC_DelayBudgetReport *delayBudgetReport; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_UEAssistanceInformation_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UEAssistanceInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UEAssistanceInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UEAssistanceInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.c b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.c new file mode 100644 index 0000000..c46fb40 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UEAssistanceInformation-v1540-IEs.h" + +#include "ASN_RRC_OverheatingAssistance.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_v1540_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs, overheatingAssistance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_OverheatingAssistance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overheatingAssistance" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UEAssistanceInformation_v1540_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UEAssistanceInformation_v1540_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* overheatingAssistance */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_v1540_IEs_specs_1 = { + sizeof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs), + offsetof(struct ASN_RRC_UEAssistanceInformation_v1540_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UEAssistanceInformation_v1540_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UEAssistanceInformation_v1540_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs = { + "UEAssistanceInformation-v1540-IEs", + "UEAssistanceInformation-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UEAssistanceInformation_v1540_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UEAssistanceInformation_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.h b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.h new file mode 100644 index 0000000..99221ea --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation-v1540-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UEAssistanceInformation_v1540_IEs_H_ +#define _ASN_RRC_UEAssistanceInformation_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_OverheatingAssistance; + +/* ASN_RRC_UEAssistanceInformation-v1540-IEs */ +typedef struct ASN_RRC_UEAssistanceInformation_v1540_IEs { + struct ASN_RRC_OverheatingAssistance *overheatingAssistance; /* OPTIONAL */ + struct ASN_RRC_UEAssistanceInformation_v1540_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UEAssistanceInformation_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UEAssistanceInformation_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_v1540_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UEAssistanceInformation_v1540_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation.c b/src/asn/rrc/ASN_RRC_UEAssistanceInformation.c new file mode 100644 index 0000000..84c3c1d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UEAssistanceInformation.h" + +#include "ASN_RRC_UEAssistanceInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions, choice.ueAssistanceInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UEAssistanceInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueAssistanceInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueAssistanceInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions), + offsetof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_UEAssistanceInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_UEAssistanceInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UEAssistanceInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UEAssistanceInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_specs_1 = { + sizeof(struct ASN_RRC_UEAssistanceInformation), + offsetof(struct ASN_RRC_UEAssistanceInformation, _asn_ctx), + asn_MAP_ASN_RRC_UEAssistanceInformation_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_ASN_RRC_UEAssistanceInformation = { + "UEAssistanceInformation", + "UEAssistanceInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UEAssistanceInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UEAssistanceInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UEAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UEAssistanceInformation.h b/src/asn/rrc/ASN_RRC_UEAssistanceInformation.h new file mode 100644 index 0000000..12c18a9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UEAssistanceInformation.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UEAssistanceInformation_H_ +#define _ASN_RRC_UEAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UEAssistanceInformation__criticalExtensions_PR { + ASN_RRC_UEAssistanceInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_UEAssistanceInformation__criticalExtensions_PR_ueAssistanceInformation, + ASN_RRC_UEAssistanceInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_UEAssistanceInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_UEAssistanceInformation_IEs; + +/* ASN_RRC_UEAssistanceInformation */ +typedef struct ASN_RRC_UEAssistanceInformation { + struct ASN_RRC_UEAssistanceInformation__criticalExtensions { + ASN_RRC_UEAssistanceInformation__criticalExtensions_PR present; + union ASN_RRC_UEAssistanceInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_UEAssistanceInformation_IEs *ueAssistanceInformation; + struct ASN_RRC_UEAssistanceInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UEAssistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UEAssistanceInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UEAssistanceInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UEAssistanceInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UEAssistanceInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.c b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.c new file mode 100644 index 0000000..0bf290f --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.c @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UECapabilityEnquiry-IEs.h" + +static int +memb_ASN_RRC_ue_CapabilityEnquiryExt_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ue_CapabilityEnquiryExt_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityEnquiry_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UECapabilityEnquiry_IEs, ue_CapabilityRAT_RequestList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_CapabilityRAT_RequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-RequestList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UECapabilityEnquiry_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UECapabilityEnquiry_IEs, ue_CapabilityEnquiryExt), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ue_CapabilityEnquiryExt_constr_4, memb_ASN_RRC_ue_CapabilityEnquiryExt_constraint_1 }, + 0, 0, /* No default value */ + "ue-CapabilityEnquiryExt" + }, +}; +static const int asn_MAP_ASN_RRC_UECapabilityEnquiry_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UECapabilityEnquiry_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-CapabilityRAT-RequestList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ue-CapabilityEnquiryExt */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityEnquiry_IEs_specs_1 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry_IEs), + offsetof(struct ASN_RRC_UECapabilityEnquiry_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UECapabilityEnquiry_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UECapabilityEnquiry_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs = { + "UECapabilityEnquiry-IEs", + "UECapabilityEnquiry-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UECapabilityEnquiry_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UECapabilityEnquiry_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.h b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.h new file mode 100644 index 0000000..2794d66 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-IEs.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UECapabilityEnquiry_IEs_H_ +#define _ASN_RRC_UECapabilityEnquiry_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UE-CapabilityRAT-RequestList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UECapabilityEnquiry-IEs */ +typedef struct ASN_RRC_UECapabilityEnquiry_IEs { + ASN_RRC_UE_CapabilityRAT_RequestList_t ue_CapabilityRAT_RequestList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + OCTET_STRING_t *ue_CapabilityEnquiryExt; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UECapabilityEnquiry_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityEnquiry_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityEnquiry_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UECapabilityEnquiry_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.c b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.c new file mode 100644 index 0000000..3a270ed --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UECapabilityEnquiry-v1560-IEs.h" + +#include "ASN_RRC_UE-CapabilityRequestFilterCommon.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityEnquiry_v1560_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs, capabilityRequestFilterCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_CapabilityRequestFilterCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "capabilityRequestFilterCommon" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UECapabilityEnquiry_v1560_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* capabilityRequestFilterCommon */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityEnquiry_v1560_IEs_specs_1 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs), + offsetof(struct ASN_RRC_UECapabilityEnquiry_v1560_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UECapabilityEnquiry_v1560_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs = { + "UECapabilityEnquiry-v1560-IEs", + "UECapabilityEnquiry-v1560-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UECapabilityEnquiry_v1560_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UECapabilityEnquiry_v1560_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.h b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.h new file mode 100644 index 0000000..d4a2d1c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry-v1560-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UECapabilityEnquiry_v1560_IEs_H_ +#define _ASN_RRC_UECapabilityEnquiry_v1560_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UE_CapabilityRequestFilterCommon; + +/* ASN_RRC_UECapabilityEnquiry-v1560-IEs */ +typedef struct ASN_RRC_UECapabilityEnquiry_v1560_IEs { + struct ASN_RRC_UE_CapabilityRequestFilterCommon *capabilityRequestFilterCommon; /* OPTIONAL */ + struct ASN_RRC_UECapabilityEnquiry_v1560_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UECapabilityEnquiry_v1560_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry_v1560_IEs; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UECapabilityEnquiry_v1560_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.c b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.c new file mode 100644 index 0000000..21dedc7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UECapabilityEnquiry.h" + +#include "ASN_RRC_UECapabilityEnquiry-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions, choice.ueCapabilityEnquiry), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UECapabilityEnquiry_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityEnquiry" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueCapabilityEnquiry */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions), + offsetof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_UECapabilityEnquiry__criticalExtensions, present), + sizeof(((struct ASN_RRC_UECapabilityEnquiry__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityEnquiry_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UECapabilityEnquiry, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UECapabilityEnquiry, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UECapabilityEnquiry_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityEnquiry_specs_1 = { + sizeof(struct ASN_RRC_UECapabilityEnquiry), + offsetof(struct ASN_RRC_UECapabilityEnquiry, _asn_ctx), + asn_MAP_ASN_RRC_UECapabilityEnquiry_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry = { + "UECapabilityEnquiry", + "UECapabilityEnquiry", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1, + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityEnquiry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UECapabilityEnquiry_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UECapabilityEnquiry_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.h b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.h new file mode 100644 index 0000000..718d7bf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityEnquiry.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UECapabilityEnquiry_H_ +#define _ASN_RRC_UECapabilityEnquiry_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR { + ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR_ueCapabilityEnquiry, + ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_UECapabilityEnquiry_IEs; + +/* ASN_RRC_UECapabilityEnquiry */ +typedef struct ASN_RRC_UECapabilityEnquiry { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_UECapabilityEnquiry__criticalExtensions { + ASN_RRC_UECapabilityEnquiry__criticalExtensions_PR present; + union ASN_RRC_UECapabilityEnquiry__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_UECapabilityEnquiry_IEs *ueCapabilityEnquiry; + struct ASN_RRC_UECapabilityEnquiry__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UECapabilityEnquiry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityEnquiry; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityEnquiry_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityEnquiry_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UECapabilityEnquiry_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.c b/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.c new file mode 100644 index 0000000..73858a3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.c @@ -0,0 +1,101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UECapabilityInformation-IEs.h" + +#include "ASN_RRC_UE-CapabilityRAT-ContainerList.h" +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_UECapabilityInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_UECapabilityInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UECapabilityInformation_IEs, ue_CapabilityRAT_ContainerList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UE_CapabilityRAT_ContainerList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-ContainerList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UECapabilityInformation_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UECapabilityInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UECapabilityInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UECapabilityInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-CapabilityRAT-ContainerList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_UECapabilityInformation_IEs), + offsetof(struct ASN_RRC_UECapabilityInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UECapabilityInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UECapabilityInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityInformation_IEs = { + "UECapabilityInformation-IEs", + "UECapabilityInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UECapabilityInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UECapabilityInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.h b/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.h new file mode 100644 index 0000000..bfac5f3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityInformation-IEs.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UECapabilityInformation_IEs_H_ +#define _ASN_RRC_UECapabilityInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UE_CapabilityRAT_ContainerList; + +/* ASN_RRC_UECapabilityInformation-IEs */ +typedef struct ASN_RRC_UECapabilityInformation_IEs { + struct ASN_RRC_UE_CapabilityRAT_ContainerList *ue_CapabilityRAT_ContainerList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_UECapabilityInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UECapabilityInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UECapabilityInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UECapabilityInformation.c b/src/asn/rrc/ASN_RRC_UECapabilityInformation.c new file mode 100644 index 0000000..08f3740 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityInformation.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UECapabilityInformation.h" + +#include "ASN_RRC_UECapabilityInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 = { + sizeof(struct ASN_RRC_UECapabilityInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_UECapabilityInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UECapabilityInformation__criticalExtensions, choice.ueCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UECapabilityInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UECapabilityInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueCapabilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_3 = { + sizeof(struct ASN_RRC_UECapabilityInformation__criticalExtensions), + offsetof(struct ASN_RRC_UECapabilityInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_UECapabilityInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_UECapabilityInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_3, + 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_ASN_RRC_criticalExtensions_3 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UECapabilityInformation, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UECapabilityInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UECapabilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UECapabilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrc-TransactionIdentifier */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityInformation_specs_1 = { + sizeof(struct ASN_RRC_UECapabilityInformation), + offsetof(struct ASN_RRC_UECapabilityInformation, _asn_ctx), + asn_MAP_ASN_RRC_UECapabilityInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityInformation = { + "UECapabilityInformation", + "UECapabilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UECapabilityInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UECapabilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UECapabilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UECapabilityInformation_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UECapabilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UECapabilityInformation.h b/src/asn/rrc/ASN_RRC_UECapabilityInformation.h new file mode 100644 index 0000000..241bbf1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UECapabilityInformation.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UECapabilityInformation_H_ +#define _ASN_RRC_UECapabilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UECapabilityInformation__criticalExtensions_PR { + ASN_RRC_UECapabilityInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_UECapabilityInformation__criticalExtensions_PR_ueCapabilityInformation, + ASN_RRC_UECapabilityInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_UECapabilityInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_UECapabilityInformation_IEs; + +/* ASN_RRC_UECapabilityInformation */ +typedef struct ASN_RRC_UECapabilityInformation { + ASN_RRC_RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct ASN_RRC_UECapabilityInformation__criticalExtensions { + ASN_RRC_UECapabilityInformation__criticalExtensions_PR present; + union ASN_RRC_UECapabilityInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_UECapabilityInformation_IEs *ueCapabilityInformation; + struct ASN_RRC_UECapabilityInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UECapabilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UECapabilityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UECapabilityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UECapabilityInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UECapabilityInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.c b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.c new file mode 100644 index 0000000..3aabe8d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UERadioAccessCapabilityInformation-IEs.h" + +static int +memb_ASN_RRC_ue_RadioAccessCapabilityInfo_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; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + (void)st; /* Unused variable */ + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_per_constraints_t asn_PER_memb_ASN_RRC_ue_RadioAccessCapabilityInfo_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 } /* (SIZE(0..MAX)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioAccessCapabilityInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs, ue_RadioAccessCapabilityInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, &asn_PER_memb_ASN_RRC_ue_RadioAccessCapabilityInfo_constr_2, memb_ASN_RRC_ue_RadioAccessCapabilityInfo_constraint_1 }, + 0, 0, /* No default value */ + "ue-RadioAccessCapabilityInfo" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_IEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ue-RadioAccessCapabilityInfo */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioAccessCapabilityInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_IEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs = { + "UERadioAccessCapabilityInformation-IEs", + "UERadioAccessCapabilityInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UERadioAccessCapabilityInformation_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UERadioAccessCapabilityInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.h b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.h new file mode 100644 index 0000000..5a7903a --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation-IEs.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UERadioAccessCapabilityInformation_IEs_H_ +#define _ASN_RRC_UERadioAccessCapabilityInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UERadioAccessCapabilityInformation-IEs */ +typedef struct ASN_RRC_UERadioAccessCapabilityInformation_IEs { + OCTET_STRING_t ue_RadioAccessCapabilityInfo; + struct ASN_RRC_UERadioAccessCapabilityInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UERadioAccessCapabilityInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioAccessCapabilityInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioAccessCapabilityInformation_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UERadioAccessCapabilityInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.c b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.c new file mode 100644 index 0000000..d3a39aa --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.c @@ -0,0 +1,247 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UERadioAccessCapabilityInformation.h" + +#include "ASN_RRC_UERadioAccessCapabilityInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.ueRadioAccessCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueRadioAccessCapabilityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare7), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare7" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare6), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare6" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueRadioAccessCapabilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare7 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare6 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* spare5 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spare4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_12 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_12 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioAccessCapabilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioAccessCapabilityInformation_specs_1 = { + sizeof(struct ASN_RRC_UERadioAccessCapabilityInformation), + offsetof(struct ASN_RRC_UERadioAccessCapabilityInformation, _asn_ctx), + asn_MAP_ASN_RRC_UERadioAccessCapabilityInformation_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_ASN_RRC_UERadioAccessCapabilityInformation = { + "UERadioAccessCapabilityInformation", + "UERadioAccessCapabilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UERadioAccessCapabilityInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UERadioAccessCapabilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.h b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.h new file mode 100644 index 0000000..fc4deda --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioAccessCapabilityInformation.h @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UERadioAccessCapabilityInformation_H_ +#define _ASN_RRC_UERadioAccessCapabilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR { + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR_c1, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR; +typedef enum ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR { + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_ueRadioAccessCapabilityInformation, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare7, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare6, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare5, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare4, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare3, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare2, + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare1 +} ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_UERadioAccessCapabilityInformation_IEs; + +/* ASN_RRC_UERadioAccessCapabilityInformation */ +typedef struct ASN_RRC_UERadioAccessCapabilityInformation { + struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions { + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions_PR present; + union ASN_RRC_UERadioAccessCapabilityInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1 { + ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__c1_PR present; + union ASN_RRC_UERadioAccessCapabilityInformation__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_UERadioAccessCapabilityInformation_IEs *ueRadioAccessCapabilityInformation; + NULL_t spare7; + NULL_t spare6; + NULL_t spare5; + NULL_t spare4; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_UERadioAccessCapabilityInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UERadioAccessCapabilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioAccessCapabilityInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UERadioAccessCapabilityInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.c b/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.c new file mode 100644 index 0000000..1f16db6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.c @@ -0,0 +1,163 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UERadioPagingInformation-IEs.h" + +static int +memb_ASN_RRC_supportedBandListNRForPaging_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 <= 1024)) { + /* 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_ASN_RRC_supportedBandListNRForPaging_constr_2 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_per_constraints_t asn_PER_memb_ASN_RRC_supportedBandListNRForPaging_constr_2 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_ASN_RRC_supportedBandListNRForPaging_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_supportedBandListNRForPaging_specs_2 = { + sizeof(struct ASN_RRC_UERadioPagingInformation_IEs__supportedBandListNRForPaging), + offsetof(struct ASN_RRC_UERadioPagingInformation_IEs__supportedBandListNRForPaging, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_supportedBandListNRForPaging_2 = { + "supportedBandListNRForPaging", + "supportedBandListNRForPaging", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2, + sizeof(asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2) + /sizeof(asn_DEF_ASN_RRC_supportedBandListNRForPaging_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_supportedBandListNRForPaging_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_supportedBandListNRForPaging_2, + 1, /* Single element */ + &asn_SPC_ASN_RRC_supportedBandListNRForPaging_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_UERadioPagingInformation_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_UERadioPagingInformation_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioPagingInformation_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UERadioPagingInformation_IEs, supportedBandListNRForPaging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_supportedBandListNRForPaging_2, + 0, + { 0, &asn_PER_memb_ASN_RRC_supportedBandListNRForPaging_constr_2, memb_ASN_RRC_supportedBandListNRForPaging_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListNRForPaging" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UERadioPagingInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_UERadioPagingInformation_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UERadioPagingInformation_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedBandListNRForPaging */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioPagingInformation_IEs_specs_1 = { + sizeof(struct ASN_RRC_UERadioPagingInformation_IEs), + offsetof(struct ASN_RRC_UERadioPagingInformation_IEs, _asn_ctx), + asn_MAP_ASN_RRC_UERadioPagingInformation_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UERadioPagingInformation_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioPagingInformation_IEs = { + "UERadioPagingInformation-IEs", + "UERadioPagingInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UERadioPagingInformation_IEs_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UERadioPagingInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.h b/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.h new file mode 100644 index 0000000..9fbdc46 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioPagingInformation-IEs.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UERadioPagingInformation_IEs_H_ +#define _ASN_RRC_UERadioPagingInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FreqBandIndicatorNR.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UERadioPagingInformation-IEs */ +typedef struct ASN_RRC_UERadioPagingInformation_IEs { + struct ASN_RRC_UERadioPagingInformation_IEs__supportedBandListNRForPaging { + A_SEQUENCE_OF(ASN_RRC_FreqBandIndicatorNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *supportedBandListNRForPaging; + struct ASN_RRC_UERadioPagingInformation_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UERadioPagingInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioPagingInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioPagingInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioPagingInformation_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UERadioPagingInformation_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UERadioPagingInformation.c b/src/asn/rrc/ASN_RRC_UERadioPagingInformation.c new file mode 100644 index 0000000..bd29f51 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioPagingInformation.c @@ -0,0 +1,247 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UERadioPagingInformation.h" + +#include "ASN_RRC_UERadioPagingInformation-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.ueRadioPagingInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UERadioPagingInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueRadioPagingInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare7), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare7" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare6), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare6" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare5" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare4" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ueRadioPagingInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare7 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare6 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* spare5 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* spare4 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1), + offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 8, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_12 = { + sizeof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_12 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions), + offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_UERadioPagingInformation__criticalExtensions, present), + sizeof(((struct ASN_RRC_UERadioPagingInformation__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UERadioPagingInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UERadioPagingInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UERadioPagingInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UERadioPagingInformation_specs_1 = { + sizeof(struct ASN_RRC_UERadioPagingInformation), + offsetof(struct ASN_RRC_UERadioPagingInformation, _asn_ctx), + asn_MAP_ASN_RRC_UERadioPagingInformation_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_ASN_RRC_UERadioPagingInformation = { + "UERadioPagingInformation", + "UERadioPagingInformation", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1, + sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1) + /sizeof(asn_DEF_ASN_RRC_UERadioPagingInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UERadioPagingInformation_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UERadioPagingInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UERadioPagingInformation.h b/src/asn/rrc/ASN_RRC_UERadioPagingInformation.h new file mode 100644 index 0000000..f839030 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UERadioPagingInformation.h @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UERadioPagingInformation_H_ +#define _ASN_RRC_UERadioPagingInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UERadioPagingInformation__criticalExtensions_PR { + ASN_RRC_UERadioPagingInformation__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_UERadioPagingInformation__criticalExtensions_PR_c1, + ASN_RRC_UERadioPagingInformation__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_UERadioPagingInformation__criticalExtensions_PR; +typedef enum ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR { + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_ueRadioPagingInformation, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare7, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare6, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare5, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare4, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare3, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare2, + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR_spare1 +} ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_UERadioPagingInformation_IEs; + +/* ASN_RRC_UERadioPagingInformation */ +typedef struct ASN_RRC_UERadioPagingInformation { + struct ASN_RRC_UERadioPagingInformation__criticalExtensions { + ASN_RRC_UERadioPagingInformation__criticalExtensions_PR present; + union ASN_RRC_UERadioPagingInformation__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_UERadioPagingInformation__criticalExtensions__c1 { + ASN_RRC_UERadioPagingInformation__criticalExtensions__c1_PR present; + union ASN_RRC_UERadioPagingInformation__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_UERadioPagingInformation_IEs *ueRadioPagingInformation; + NULL_t spare7; + NULL_t spare6; + NULL_t spare5; + NULL_t spare4; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_UERadioPagingInformation__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UERadioPagingInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UERadioPagingInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UERadioPagingInformation_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-AM-RLC.c b/src/asn/rrc/ASN_RRC_UL-AM-RLC.c new file mode 100644 index 0000000..19f9aa0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-AM-RLC.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-AM-RLC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_per_constraints_t asn_PER_type_ASN_RRC_maxRetxThreshold_constr_6 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_ASN_RRC_maxRetxThreshold_value2enum_6[] = { + { 0, 2, "t1" }, + { 1, 2, "t2" }, + { 2, 2, "t3" }, + { 3, 2, "t4" }, + { 4, 2, "t6" }, + { 5, 2, "t8" }, + { 6, 3, "t16" }, + { 7, 3, "t32" } +}; +static const unsigned int asn_MAP_ASN_RRC_maxRetxThreshold_enum2value_6[] = { + 0, /* t1(0) */ + 6, /* t16(6) */ + 1, /* t2(1) */ + 2, /* t3(2) */ + 7, /* t32(7) */ + 3, /* t4(3) */ + 4, /* t6(4) */ + 5 /* t8(5) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_maxRetxThreshold_specs_6 = { + asn_MAP_ASN_RRC_maxRetxThreshold_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_maxRetxThreshold_enum2value_6, /* 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_ASN_RRC_maxRetxThreshold_tags_6[] = { + (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_ASN_RRC_maxRetxThreshold_6 = { + "maxRetxThreshold", + "maxRetxThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_maxRetxThreshold_tags_6, + sizeof(asn_DEF_ASN_RRC_maxRetxThreshold_tags_6) + /sizeof(asn_DEF_ASN_RRC_maxRetxThreshold_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_maxRetxThreshold_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_maxRetxThreshold_tags_6) + /sizeof(asn_DEF_ASN_RRC_maxRetxThreshold_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_maxRetxThreshold_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_maxRetxThreshold_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UL_AM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UL_AM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SN_FieldLengthAM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_AM_RLC, t_PollRetransmit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_T_PollRetransmit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-PollRetransmit" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_AM_RLC, pollPDU), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PollPDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pollPDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_AM_RLC, pollByte), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PollByte, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pollByte" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_AM_RLC, maxRetxThreshold), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_maxRetxThreshold_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxRetxThreshold" + }, +}; +static const int asn_MAP_ASN_RRC_UL_AM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UL_AM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_AM_RLC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sn-FieldLength */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* t-PollRetransmit */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pollPDU */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* pollByte */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxRetxThreshold */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_AM_RLC_specs_1 = { + sizeof(struct ASN_RRC_UL_AM_RLC), + offsetof(struct ASN_RRC_UL_AM_RLC, _asn_ctx), + asn_MAP_ASN_RRC_UL_AM_RLC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UL_AM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_AM_RLC = { + "UL-AM-RLC", + "UL-AM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UL_AM_RLC_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_AM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_AM_RLC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_AM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_AM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_AM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UL_AM_RLC_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_UL_AM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-AM-RLC.h b/src/asn/rrc/ASN_RRC_UL-AM-RLC.h new file mode 100644 index 0000000..82f1cc3 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-AM-RLC.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_AM_RLC_H_ +#define _ASN_RRC_UL_AM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SN-FieldLengthAM.h" +#include "ASN_RRC_T-PollRetransmit.h" +#include "ASN_RRC_PollPDU.h" +#include "ASN_RRC_PollByte.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UL_AM_RLC__maxRetxThreshold { + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t1 = 0, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t2 = 1, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t3 = 2, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t4 = 3, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t6 = 4, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t8 = 5, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t16 = 6, + ASN_RRC_UL_AM_RLC__maxRetxThreshold_t32 = 7 +} e_ASN_RRC_UL_AM_RLC__maxRetxThreshold; + +/* ASN_RRC_UL-AM-RLC */ +typedef struct ASN_RRC_UL_AM_RLC { + ASN_RRC_SN_FieldLengthAM_t *sn_FieldLength; /* OPTIONAL */ + ASN_RRC_T_PollRetransmit_t t_PollRetransmit; + ASN_RRC_PollPDU_t pollPDU; + ASN_RRC_PollByte_t pollByte; + long maxRetxThreshold; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_AM_RLC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_maxRetxThreshold_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_AM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_AM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UL_AM_RLC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_AM_RLC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH-Message.c b/src/asn/rrc/ASN_RRC_UL-CCCH-Message.c new file mode 100644 index 0000000..9048491 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-CCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_CCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_CCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_CCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_CCCH_Message_specs_1 = { + sizeof(struct ASN_RRC_UL_CCCH_Message), + offsetof(struct ASN_RRC_UL_CCCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_UL_CCCH_Message_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_ASN_RRC_UL_CCCH_Message = { + "UL-CCCH-Message", + "UL-CCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_CCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UL_CCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UL_CCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH-Message.h b/src/asn/rrc/ASN_RRC_UL-CCCH-Message.h new file mode 100644 index 0000000..13b4b34 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_CCCH_Message_H_ +#define _ASN_RRC_UL_CCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UL-CCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UL-CCCH-Message */ +typedef struct ASN_RRC_UL_CCCH_Message { + ASN_RRC_UL_CCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_CCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_CCCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.c b/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.c new file mode 100644 index 0000000..52a8f37 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-CCCH-MessageType.h" + +#include "ASN_RRC_RRCSetupRequest.h" +#include "ASN_RRC_RRCResumeRequest.h" +#include "ASN_RRC_RRCReestablishmentRequest.h" +#include "ASN_RRC_RRCSystemInfoRequest.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_UL_CCCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, choice.rrcSetupRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupRequest" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, choice.rrcResumeRequest), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, choice.rrcReestablishmentRequest), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishmentRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentRequest" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, choice.rrcSystemInfoRequest), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSystemInfoRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSystemInfoRequest" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcSetupRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rrcResumeRequest */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rrcReestablishmentRequest */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* rrcSystemInfoRequest */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_UL_CCCH_MessageType__c1), + offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_UL_CCCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_UL_CCCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_7 = { + sizeof(struct ASN_RRC_UL_CCCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_UL_CCCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_7, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_CCCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_CCCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_UL_CCCH_MessageType), + offsetof(struct ASN_RRC_UL_CCCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_UL_CCCH_MessageType, present), + sizeof(((struct ASN_RRC_UL_CCCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_UL_CCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH_MessageType = { + "UL-CCCH-MessageType", + "UL-CCCH-MessageType", + &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_ASN_RRC_UL_CCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_UL_CCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UL_CCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.h b/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.h new file mode 100644 index 0000000..f1b14d0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH-MessageType.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_CCCH_MessageType_H_ +#define _ASN_RRC_UL_CCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UL_CCCH_MessageType_PR { + ASN_RRC_UL_CCCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_UL_CCCH_MessageType_PR_c1, + ASN_RRC_UL_CCCH_MessageType_PR_messageClassExtension +} ASN_RRC_UL_CCCH_MessageType_PR; +typedef enum ASN_RRC_UL_CCCH_MessageType__c1_PR { + ASN_RRC_UL_CCCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_UL_CCCH_MessageType__c1_PR_rrcSetupRequest, + ASN_RRC_UL_CCCH_MessageType__c1_PR_rrcResumeRequest, + ASN_RRC_UL_CCCH_MessageType__c1_PR_rrcReestablishmentRequest, + ASN_RRC_UL_CCCH_MessageType__c1_PR_rrcSystemInfoRequest +} ASN_RRC_UL_CCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCSetupRequest; +struct ASN_RRC_RRCResumeRequest; +struct ASN_RRC_RRCReestablishmentRequest; +struct ASN_RRC_RRCSystemInfoRequest; + +/* ASN_RRC_UL-CCCH-MessageType */ +typedef struct ASN_RRC_UL_CCCH_MessageType { + ASN_RRC_UL_CCCH_MessageType_PR present; + union ASN_RRC_UL_CCCH_MessageType_u { + struct ASN_RRC_UL_CCCH_MessageType__c1 { + ASN_RRC_UL_CCCH_MessageType__c1_PR present; + union ASN_RRC_UL_CCCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_RRCSetupRequest *rrcSetupRequest; + struct ASN_RRC_RRCResumeRequest *rrcResumeRequest; + struct ASN_RRC_RRCReestablishmentRequest *rrcReestablishmentRequest; + struct ASN_RRC_RRCSystemInfoRequest *rrcSystemInfoRequest; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_UL_CCCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_CCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_CCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UL_CCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_CCCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.c b/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.c new file mode 100644 index 0000000..a9ad318 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-CCCH1-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH1_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_CCCH1_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_CCCH1_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_CCCH1_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_CCCH1_Message_specs_1 = { + sizeof(struct ASN_RRC_UL_CCCH1_Message), + offsetof(struct ASN_RRC_UL_CCCH1_Message, _asn_ctx), + asn_MAP_ASN_RRC_UL_CCCH1_Message_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_ASN_RRC_UL_CCCH1_Message = { + "UL-CCCH1-Message", + "UL-CCCH1-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_CCCH1_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UL_CCCH1_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UL_CCCH1_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.h b/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.h new file mode 100644 index 0000000..e851382 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH1-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_CCCH1_Message_H_ +#define _ASN_RRC_UL_CCCH1_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UL-CCCH1-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UL-CCCH1-Message */ +typedef struct ASN_RRC_UL_CCCH1_Message { + ASN_RRC_UL_CCCH1_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_CCCH1_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH1_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_CCCH1_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.c b/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.c new file mode 100644 index 0000000..ce04da7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.c @@ -0,0 +1,165 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-CCCH1-MessageType.h" + +#include "ASN_RRC_RRCResumeRequest1.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_UL_CCCH1_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, choice.rrcResumeRequest1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeRequest1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest1" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* rrcResumeRequest1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_UL_CCCH1_MessageType__c1), + offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_UL_CCCH1_MessageType__c1, present), + sizeof(((struct ASN_RRC_UL_CCCH1_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_7 = { + sizeof(struct ASN_RRC_UL_CCCH1_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_UL_CCCH1_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_7, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH1_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_CCCH1_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_CCCH1_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_CCCH1_MessageType_specs_1 = { + sizeof(struct ASN_RRC_UL_CCCH1_MessageType), + offsetof(struct ASN_RRC_UL_CCCH1_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_UL_CCCH1_MessageType, present), + sizeof(((struct ASN_RRC_UL_CCCH1_MessageType *)0)->present), + asn_MAP_ASN_RRC_UL_CCCH1_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH1_MessageType = { + "UL-CCCH1-MessageType", + "UL-CCCH1-MessageType", + &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_ASN_RRC_UL_CCCH1_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_UL_CCCH1_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UL_CCCH1_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.h b/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.h new file mode 100644 index 0000000..4f7673d --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-CCCH1-MessageType.h @@ -0,0 +1,78 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_CCCH1_MessageType_H_ +#define _ASN_RRC_UL_CCCH1_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UL_CCCH1_MessageType_PR { + ASN_RRC_UL_CCCH1_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_UL_CCCH1_MessageType_PR_c1, + ASN_RRC_UL_CCCH1_MessageType_PR_messageClassExtension +} ASN_RRC_UL_CCCH1_MessageType_PR; +typedef enum ASN_RRC_UL_CCCH1_MessageType__c1_PR { + ASN_RRC_UL_CCCH1_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_UL_CCCH1_MessageType__c1_PR_rrcResumeRequest1, + ASN_RRC_UL_CCCH1_MessageType__c1_PR_spare3, + ASN_RRC_UL_CCCH1_MessageType__c1_PR_spare2, + ASN_RRC_UL_CCCH1_MessageType__c1_PR_spare1 +} ASN_RRC_UL_CCCH1_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_RRCResumeRequest1; + +/* ASN_RRC_UL-CCCH1-MessageType */ +typedef struct ASN_RRC_UL_CCCH1_MessageType { + ASN_RRC_UL_CCCH1_MessageType_PR present; + union ASN_RRC_UL_CCCH1_MessageType_u { + struct ASN_RRC_UL_CCCH1_MessageType__c1 { + ASN_RRC_UL_CCCH1_MessageType__c1_PR present; + union ASN_RRC_UL_CCCH1_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_RRCResumeRequest1 *rrcResumeRequest1; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_UL_CCCH1_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_CCCH1_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_CCCH1_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_CCCH1_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UL_CCCH1_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UL_CCCH1_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_CCCH1_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-DCCH-Message.c b/src/asn/rrc/ASN_RRC_UL-DCCH-Message.c new file mode 100644 index 0000000..dd1b805 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DCCH-Message.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-DCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_UL_DCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UL_DCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UL_DCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_DCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_DCCH_Message_specs_1 = { + sizeof(struct ASN_RRC_UL_DCCH_Message), + offsetof(struct ASN_RRC_UL_DCCH_Message, _asn_ctx), + asn_MAP_ASN_RRC_UL_DCCH_Message_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_ASN_RRC_UL_DCCH_Message = { + "UL-DCCH-Message", + "UL-DCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_DCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UL_DCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UL_DCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-DCCH-Message.h b/src/asn/rrc/ASN_RRC_UL-DCCH-Message.h new file mode 100644 index 0000000..e9f4fd8 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DCCH-Message.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_DCCH_Message_H_ +#define _ASN_RRC_UL_DCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_UL-DCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UL-DCCH-Message */ +typedef struct ASN_RRC_UL_DCCH_Message { + ASN_RRC_UL_DCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_DCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_DCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_DCCH_Message_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.c b/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.c new file mode 100644 index 0000000..e6f833b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.c @@ -0,0 +1,300 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-DCCH-MessageType.h" + +#include "ASN_RRC_MeasurementReport.h" +#include "ASN_RRC_RRCReconfigurationComplete.h" +#include "ASN_RRC_RRCSetupComplete.h" +#include "ASN_RRC_RRCReestablishmentComplete.h" +#include "ASN_RRC_RRCResumeComplete.h" +#include "ASN_RRC_SecurityModeComplete.h" +#include "ASN_RRC_SecurityModeFailure.h" +#include "ASN_RRC_ULInformationTransfer.h" +#include "ASN_RRC_LocationMeasurementIndication.h" +#include "ASN_RRC_UECapabilityInformation.h" +#include "ASN_RRC_CounterCheckResponse.h" +#include "ASN_RRC_UEAssistanceInformation.h" +#include "ASN_RRC_FailureInformation.h" +#include "ASN_RRC_ULInformationTransferMRDC.h" +#include "ASN_RRC_SCGFailureInformation.h" +#include "ASN_RRC_SCGFailureInformationEUTRA.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_per_constraints_t asn_PER_type_ASN_RRC_UL_DCCH_MessageType_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 asn_TYPE_member_t asn_MBR_ASN_RRC_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.measurementReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasurementReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementReport" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.rrcReconfigurationComplete), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReconfigurationComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfigurationComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.rrcSetupComplete), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCSetupComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.rrcReestablishmentComplete), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCReestablishmentComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.rrcResumeComplete), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RRCResumeComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.securityModeComplete), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeComplete" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.securityModeFailure), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SecurityModeFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeFailure" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.ulInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ULInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.locationMeasurementIndication), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_LocationMeasurementIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationMeasurementIndication" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.ueCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UECapabilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.counterCheckResponse), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CounterCheckResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheckResponse" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.ueAssistanceInformation), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_UEAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueAssistanceInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.failureInformation), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FailureInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.ulInformationTransferMRDC), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ULInformationTransferMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransferMRDC" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.scgFailureInformation), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SCGFailureInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInformation" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, choice.scgFailureInformationEUTRA), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SCGFailureInformationEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInformationEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measurementReport */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rrcReconfigurationComplete */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rrcSetupComplete */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* rrcReestablishmentComplete */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* rrcResumeComplete */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* securityModeComplete */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* securityModeFailure */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* ulInformationTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* locationMeasurementIndication */ + { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* ueCapabilityInformation */ + { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* counterCheckResponse */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ueAssistanceInformation */ + { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* failureInformation */ + { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* ulInformationTransferMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* scgFailureInformation */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* scgFailureInformationEUTRA */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_2 = { + sizeof(struct ASN_RRC_UL_DCCH_MessageType__c1), + offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, _asn_ctx), + offsetof(struct ASN_RRC_UL_DCCH_MessageType__c1, present), + sizeof(((struct ASN_RRC_UL_DCCH_MessageType__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_2, + 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_ASN_RRC_c1_2 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_2, + 16, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_messageClassExtension_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_messageClassExtension_specs_19 = { + sizeof(struct ASN_RRC_UL_DCCH_MessageType__messageClassExtension), + offsetof(struct ASN_RRC_UL_DCCH_MessageType__messageClassExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_messageClassExtension_19 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_messageClassExtension_tags_19, + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_messageClassExtension_tags_19, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19) + /sizeof(asn_DEF_ASN_RRC_messageClassExtension_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_messageClassExtension_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UL_DCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_UL_DCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_messageClassExtension_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_DCCH_MessageType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* messageClassExtension */ +}; +asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_DCCH_MessageType_specs_1 = { + sizeof(struct ASN_RRC_UL_DCCH_MessageType), + offsetof(struct ASN_RRC_UL_DCCH_MessageType, _asn_ctx), + offsetof(struct ASN_RRC_UL_DCCH_MessageType, present), + sizeof(((struct ASN_RRC_UL_DCCH_MessageType *)0)->present), + asn_MAP_ASN_RRC_UL_DCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_DCCH_MessageType = { + "UL-DCCH-MessageType", + "UL-DCCH-MessageType", + &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_ASN_RRC_UL_DCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_ASN_RRC_UL_DCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_UL_DCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.h b/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.h new file mode 100644 index 0000000..a03c7a0 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DCCH-MessageType.h @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_DCCH_MessageType_H_ +#define _ASN_RRC_UL_DCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UL_DCCH_MessageType_PR { + ASN_RRC_UL_DCCH_MessageType_PR_NOTHING, /* No components present */ + ASN_RRC_UL_DCCH_MessageType_PR_c1, + ASN_RRC_UL_DCCH_MessageType_PR_messageClassExtension +} ASN_RRC_UL_DCCH_MessageType_PR; +typedef enum ASN_RRC_UL_DCCH_MessageType__c1_PR { + ASN_RRC_UL_DCCH_MessageType__c1_PR_NOTHING, /* No components present */ + ASN_RRC_UL_DCCH_MessageType__c1_PR_measurementReport, + ASN_RRC_UL_DCCH_MessageType__c1_PR_rrcReconfigurationComplete, + ASN_RRC_UL_DCCH_MessageType__c1_PR_rrcSetupComplete, + ASN_RRC_UL_DCCH_MessageType__c1_PR_rrcReestablishmentComplete, + ASN_RRC_UL_DCCH_MessageType__c1_PR_rrcResumeComplete, + ASN_RRC_UL_DCCH_MessageType__c1_PR_securityModeComplete, + ASN_RRC_UL_DCCH_MessageType__c1_PR_securityModeFailure, + ASN_RRC_UL_DCCH_MessageType__c1_PR_ulInformationTransfer, + ASN_RRC_UL_DCCH_MessageType__c1_PR_locationMeasurementIndication, + ASN_RRC_UL_DCCH_MessageType__c1_PR_ueCapabilityInformation, + ASN_RRC_UL_DCCH_MessageType__c1_PR_counterCheckResponse, + ASN_RRC_UL_DCCH_MessageType__c1_PR_ueAssistanceInformation, + ASN_RRC_UL_DCCH_MessageType__c1_PR_failureInformation, + ASN_RRC_UL_DCCH_MessageType__c1_PR_ulInformationTransferMRDC, + ASN_RRC_UL_DCCH_MessageType__c1_PR_scgFailureInformation, + ASN_RRC_UL_DCCH_MessageType__c1_PR_scgFailureInformationEUTRA +} ASN_RRC_UL_DCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasurementReport; +struct ASN_RRC_RRCReconfigurationComplete; +struct ASN_RRC_RRCSetupComplete; +struct ASN_RRC_RRCReestablishmentComplete; +struct ASN_RRC_RRCResumeComplete; +struct ASN_RRC_SecurityModeComplete; +struct ASN_RRC_SecurityModeFailure; +struct ASN_RRC_ULInformationTransfer; +struct ASN_RRC_LocationMeasurementIndication; +struct ASN_RRC_UECapabilityInformation; +struct ASN_RRC_CounterCheckResponse; +struct ASN_RRC_UEAssistanceInformation; +struct ASN_RRC_FailureInformation; +struct ASN_RRC_ULInformationTransferMRDC; +struct ASN_RRC_SCGFailureInformation; +struct ASN_RRC_SCGFailureInformationEUTRA; + +/* ASN_RRC_UL-DCCH-MessageType */ +typedef struct ASN_RRC_UL_DCCH_MessageType { + ASN_RRC_UL_DCCH_MessageType_PR present; + union ASN_RRC_UL_DCCH_MessageType_u { + struct ASN_RRC_UL_DCCH_MessageType__c1 { + ASN_RRC_UL_DCCH_MessageType__c1_PR present; + union ASN_RRC_UL_DCCH_MessageType__ASN_RRC_c1_u { + struct ASN_RRC_MeasurementReport *measurementReport; + struct ASN_RRC_RRCReconfigurationComplete *rrcReconfigurationComplete; + struct ASN_RRC_RRCSetupComplete *rrcSetupComplete; + struct ASN_RRC_RRCReestablishmentComplete *rrcReestablishmentComplete; + struct ASN_RRC_RRCResumeComplete *rrcResumeComplete; + struct ASN_RRC_SecurityModeComplete *securityModeComplete; + struct ASN_RRC_SecurityModeFailure *securityModeFailure; + struct ASN_RRC_ULInformationTransfer *ulInformationTransfer; + struct ASN_RRC_LocationMeasurementIndication *locationMeasurementIndication; + struct ASN_RRC_UECapabilityInformation *ueCapabilityInformation; + struct ASN_RRC_CounterCheckResponse *counterCheckResponse; + struct ASN_RRC_UEAssistanceInformation *ueAssistanceInformation; + struct ASN_RRC_FailureInformation *failureInformation; + struct ASN_RRC_ULInformationTransferMRDC *ulInformationTransferMRDC; + struct ASN_RRC_SCGFailureInformation *scgFailureInformation; + struct ASN_RRC_SCGFailureInformationEUTRA *scgFailureInformationEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_UL_DCCH_MessageType__messageClassExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *messageClassExtension; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_DCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_DCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_ASN_RRC_UL_DCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UL_DCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UL_DCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_DCCH_MessageType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.c b/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.c new file mode 100644 index 0000000..7049bac --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-DataSplitThreshold.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +asn_per_constraints_t asn_PER_type_ASN_RRC_UL_DataSplitThreshold_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_UL_DataSplitThreshold_value2enum_1[] = { + { 0, 2, "b0" }, + { 1, 4, "b100" }, + { 2, 4, "b200" }, + { 3, 4, "b400" }, + { 4, 4, "b800" }, + { 5, 5, "b1600" }, + { 6, 5, "b3200" }, + { 7, 5, "b6400" }, + { 8, 6, "b12800" }, + { 9, 6, "b25600" }, + { 10, 6, "b51200" }, + { 11, 7, "b102400" }, + { 12, 7, "b204800" }, + { 13, 7, "b409600" }, + { 14, 7, "b819200" }, + { 15, 8, "b1228800" }, + { 16, 8, "b1638400" }, + { 17, 8, "b2457600" }, + { 18, 8, "b3276800" }, + { 19, 8, "b4096000" }, + { 20, 8, "b4915200" }, + { 21, 8, "b5734400" }, + { 22, 8, "b6553600" }, + { 23, 8, "infinity" }, + { 24, 6, "spare8" }, + { 25, 6, "spare7" }, + { 26, 6, "spare6" }, + { 27, 6, "spare5" }, + { 28, 6, "spare4" }, + { 29, 6, "spare3" }, + { 30, 6, "spare2" }, + { 31, 6, "spare1" } +}; +static const unsigned int asn_MAP_ASN_RRC_UL_DataSplitThreshold_enum2value_1[] = { + 0, /* b0(0) */ + 1, /* b100(1) */ + 11, /* b102400(11) */ + 15, /* b1228800(15) */ + 8, /* b12800(8) */ + 5, /* b1600(5) */ + 16, /* b1638400(16) */ + 2, /* b200(2) */ + 12, /* b204800(12) */ + 17, /* b2457600(17) */ + 9, /* b25600(9) */ + 6, /* b3200(6) */ + 18, /* b3276800(18) */ + 3, /* b400(3) */ + 13, /* b409600(13) */ + 19, /* b4096000(19) */ + 20, /* b4915200(20) */ + 10, /* b51200(10) */ + 21, /* b5734400(21) */ + 7, /* b6400(7) */ + 22, /* b6553600(22) */ + 4, /* b800(4) */ + 14, /* b819200(14) */ + 23, /* infinity(23) */ + 31, /* spare1(31) */ + 30, /* spare2(30) */ + 29, /* spare3(29) */ + 28, /* spare4(28) */ + 27, /* spare5(27) */ + 26, /* spare6(26) */ + 25, /* spare7(25) */ + 24 /* spare8(24) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_UL_DataSplitThreshold_specs_1 = { + asn_MAP_ASN_RRC_UL_DataSplitThreshold_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_UL_DataSplitThreshold_enum2value_1, /* N => "tag"; sorted by N */ + 32, /* 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_ASN_RRC_UL_DataSplitThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_DataSplitThreshold = { + "UL-DataSplitThreshold", + "UL-DataSplitThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_DataSplitThreshold_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UL_DataSplitThreshold_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_UL_DataSplitThreshold_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.h b/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.h new file mode 100644 index 0000000..dab0a44 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-DataSplitThreshold.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_DataSplitThreshold_H_ +#define _ASN_RRC_UL_DataSplitThreshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_UL_DataSplitThreshold { + ASN_RRC_UL_DataSplitThreshold_b0 = 0, + ASN_RRC_UL_DataSplitThreshold_b100 = 1, + ASN_RRC_UL_DataSplitThreshold_b200 = 2, + ASN_RRC_UL_DataSplitThreshold_b400 = 3, + ASN_RRC_UL_DataSplitThreshold_b800 = 4, + ASN_RRC_UL_DataSplitThreshold_b1600 = 5, + ASN_RRC_UL_DataSplitThreshold_b3200 = 6, + ASN_RRC_UL_DataSplitThreshold_b6400 = 7, + ASN_RRC_UL_DataSplitThreshold_b12800 = 8, + ASN_RRC_UL_DataSplitThreshold_b25600 = 9, + ASN_RRC_UL_DataSplitThreshold_b51200 = 10, + ASN_RRC_UL_DataSplitThreshold_b102400 = 11, + ASN_RRC_UL_DataSplitThreshold_b204800 = 12, + ASN_RRC_UL_DataSplitThreshold_b409600 = 13, + ASN_RRC_UL_DataSplitThreshold_b819200 = 14, + ASN_RRC_UL_DataSplitThreshold_b1228800 = 15, + ASN_RRC_UL_DataSplitThreshold_b1638400 = 16, + ASN_RRC_UL_DataSplitThreshold_b2457600 = 17, + ASN_RRC_UL_DataSplitThreshold_b3276800 = 18, + ASN_RRC_UL_DataSplitThreshold_b4096000 = 19, + ASN_RRC_UL_DataSplitThreshold_b4915200 = 20, + ASN_RRC_UL_DataSplitThreshold_b5734400 = 21, + ASN_RRC_UL_DataSplitThreshold_b6553600 = 22, + ASN_RRC_UL_DataSplitThreshold_infinity = 23, + ASN_RRC_UL_DataSplitThreshold_spare8 = 24, + ASN_RRC_UL_DataSplitThreshold_spare7 = 25, + ASN_RRC_UL_DataSplitThreshold_spare6 = 26, + ASN_RRC_UL_DataSplitThreshold_spare5 = 27, + ASN_RRC_UL_DataSplitThreshold_spare4 = 28, + ASN_RRC_UL_DataSplitThreshold_spare3 = 29, + ASN_RRC_UL_DataSplitThreshold_spare2 = 30, + ASN_RRC_UL_DataSplitThreshold_spare1 = 31 +} e_ASN_RRC_UL_DataSplitThreshold; + +/* ASN_RRC_UL-DataSplitThreshold */ +typedef long ASN_RRC_UL_DataSplitThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UL_DataSplitThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_DataSplitThreshold; +extern const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_UL_DataSplitThreshold_specs_1; +asn_struct_free_f ASN_RRC_UL_DataSplitThreshold_free; +asn_struct_print_f ASN_RRC_UL_DataSplitThreshold_print; +asn_constr_check_f ASN_RRC_UL_DataSplitThreshold_constraint; +ber_type_decoder_f ASN_RRC_UL_DataSplitThreshold_decode_ber; +der_type_encoder_f ASN_RRC_UL_DataSplitThreshold_encode_der; +xer_type_decoder_f ASN_RRC_UL_DataSplitThreshold_decode_xer; +xer_type_encoder_f ASN_RRC_UL_DataSplitThreshold_encode_xer; +per_type_decoder_f ASN_RRC_UL_DataSplitThreshold_decode_uper; +per_type_encoder_f ASN_RRC_UL_DataSplitThreshold_encode_uper; +per_type_decoder_f ASN_RRC_UL_DataSplitThreshold_decode_aper; +per_type_encoder_f ASN_RRC_UL_DataSplitThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_DataSplitThreshold_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UL-UM-RLC.c b/src/asn/rrc/ASN_RRC_UL-UM-RLC.c new file mode 100644 index 0000000..f822d49 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-UM-RLC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UL-UM-RLC.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UL_UM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UL_UM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SN_FieldLengthUM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, +}; +static const int asn_MAP_ASN_RRC_UL_UM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UL_UM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UL_UM_RLC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sn-FieldLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_UM_RLC_specs_1 = { + sizeof(struct ASN_RRC_UL_UM_RLC), + offsetof(struct ASN_RRC_UL_UM_RLC, _asn_ctx), + asn_MAP_ASN_RRC_UL_UM_RLC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UL_UM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_UM_RLC = { + "UL-UM-RLC", + "UL-UM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UL_UM_RLC_tags_1, + sizeof(asn_DEF_ASN_RRC_UL_UM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_UM_RLC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UL_UM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UL_UM_RLC_tags_1) + /sizeof(asn_DEF_ASN_RRC_UL_UM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UL_UM_RLC_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_UL_UM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UL-UM-RLC.h b/src/asn/rrc/ASN_RRC_UL-UM-RLC.h new file mode 100644 index 0000000..89d02a5 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UL-UM-RLC.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UL_UM_RLC_H_ +#define _ASN_RRC_UL_UM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_SN-FieldLengthUM.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UL-UM-RLC */ +typedef struct ASN_RRC_UL_UM_RLC { + ASN_RRC_SN_FieldLengthUM_t *sn_FieldLength; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UL_UM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UL_UM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UL_UM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UL_UM_RLC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UL_UM_RLC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.c b/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.c new file mode 100644 index 0000000..fcc9697 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ULInformationTransfer-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 = { + sizeof(struct ASN_RRC_ULInformationTransfer_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_ULInformationTransfer_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransfer_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ULInformationTransfer_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ULInformationTransfer_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ULInformationTransfer_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_ULInformationTransfer_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ULInformationTransfer_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dedicatedNAS-Message */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransfer_IEs_specs_1 = { + sizeof(struct ASN_RRC_ULInformationTransfer_IEs), + offsetof(struct ASN_RRC_ULInformationTransfer_IEs, _asn_ctx), + asn_MAP_ASN_RRC_ULInformationTransfer_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ULInformationTransfer_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransfer_IEs = { + "ULInformationTransfer-IEs", + "ULInformationTransfer-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ULInformationTransfer_IEs_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ULInformationTransfer_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.h b/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.h new file mode 100644 index 0000000..36577b1 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransfer-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ULInformationTransfer_IEs_H_ +#define _ASN_RRC_ULInformationTransfer_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_DedicatedNAS-Message.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ULInformationTransfer-IEs */ +typedef struct ASN_RRC_ULInformationTransfer_IEs { + ASN_RRC_DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_ULInformationTransfer_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ULInformationTransfer_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransfer_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransfer_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransfer_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ULInformationTransfer_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransfer.c b/src/asn/rrc/ASN_RRC_ULInformationTransfer.c new file mode 100644 index 0000000..21f1c44 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransfer.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ULInformationTransfer.h" + +#include "ASN_RRC_ULInformationTransfer-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_criticalExtensions_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 const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ASN_RRC_ULInformationTransfer__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_ULInformationTransfer__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ULInformationTransfer__criticalExtensions, choice.ulInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ULInformationTransfer_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ULInformationTransfer__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ulInformationTransfer */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_ULInformationTransfer__criticalExtensions), + offsetof(struct ASN_RRC_ULInformationTransfer__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_ULInformationTransfer__criticalExtensions, present), + sizeof(((struct ASN_RRC_ULInformationTransfer__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ULInformationTransfer, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ULInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ULInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransfer_specs_1 = { + sizeof(struct ASN_RRC_ULInformationTransfer), + offsetof(struct ASN_RRC_ULInformationTransfer, _asn_ctx), + asn_MAP_ASN_RRC_ULInformationTransfer_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_ASN_RRC_ULInformationTransfer = { + "ULInformationTransfer", + "ULInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ULInformationTransfer_tags_1, + sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ULInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ULInformationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ULInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransfer.h b/src/asn/rrc/ASN_RRC_ULInformationTransfer.h new file mode 100644 index 0000000..ae37c72 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransfer.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ULInformationTransfer_H_ +#define _ASN_RRC_ULInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ULInformationTransfer__criticalExtensions_PR { + ASN_RRC_ULInformationTransfer__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_ULInformationTransfer__criticalExtensions_PR_ulInformationTransfer, + ASN_RRC_ULInformationTransfer__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_ULInformationTransfer__criticalExtensions_PR; + +/* Forward declarations */ +struct ASN_RRC_ULInformationTransfer_IEs; + +/* ASN_RRC_ULInformationTransfer */ +typedef struct ASN_RRC_ULInformationTransfer { + struct ASN_RRC_ULInformationTransfer__criticalExtensions { + ASN_RRC_ULInformationTransfer__criticalExtensions_PR present; + union ASN_RRC_ULInformationTransfer__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_ULInformationTransfer_IEs *ulInformationTransfer; + struct ASN_RRC_ULInformationTransfer__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ULInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ULInformationTransfer_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.c b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.c new file mode 100644 index 0000000..5d2b51b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.c @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ULInformationTransferMRDC-IEs.h" + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC_IEs__nonCriticalExtension), + offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs__nonCriticalExtension, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nonCriticalExtension_5 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_nonCriticalExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_ASN_RRC_nonCriticalExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_nonCriticalExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransferMRDC_IEs_1[] = { + { ATF_POINTER, 4, offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs, ul_DCCH_MessageNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-DCCH-MessageNR" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs, ul_DCCH_MessageEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-DCCH-MessageEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs, lateNonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lateNonCriticalExtension" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ASN_RRC_nonCriticalExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ASN_RRC_ULInformationTransferMRDC_IEs_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ULInformationTransferMRDC_IEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ul-DCCH-MessageNR */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ul-DCCH-MessageEUTRA */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* lateNonCriticalExtension */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransferMRDC_IEs_specs_1 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC_IEs), + offsetof(struct ASN_RRC_ULInformationTransferMRDC_IEs, _asn_ctx), + asn_MAP_ASN_RRC_ULInformationTransferMRDC_IEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ULInformationTransferMRDC_IEs_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs = { + "ULInformationTransferMRDC-IEs", + "ULInformationTransferMRDC-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1, + sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ULInformationTransferMRDC_IEs_1, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_ULInformationTransferMRDC_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.h b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.h new file mode 100644 index 0000000..a123499 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ULInformationTransferMRDC_IEs_H_ +#define _ASN_RRC_ULInformationTransferMRDC_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ULInformationTransferMRDC-IEs */ +typedef struct ASN_RRC_ULInformationTransferMRDC_IEs { + OCTET_STRING_t *ul_DCCH_MessageNR; /* OPTIONAL */ + OCTET_STRING_t *ul_DCCH_MessageEUTRA; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct ASN_RRC_ULInformationTransferMRDC_IEs__nonCriticalExtension { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nonCriticalExtension; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ULInformationTransferMRDC_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransferMRDC_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransferMRDC_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ULInformationTransferMRDC_IEs_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.c b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.c new file mode 100644 index 0000000..6c57a23 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.c @@ -0,0 +1,207 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ULInformationTransferMRDC.h" + +#include "ASN_RRC_ULInformationTransferMRDC-IEs.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_c1_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_type_ASN_RRC_criticalExtensions_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_TYPE_member_t asn_MBR_ASN_RRC_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, choice.ulInformationTransferMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ULInformationTransferMRDC_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransferMRDC" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, choice.spare3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare3" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, choice.spare2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, choice.spare1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NULL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spare1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_c1_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ulInformationTransferMRDC */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* spare3 */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* spare2 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* spare1 */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_c1_specs_3 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1), + offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, _asn_ctx), + offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1, present), + sizeof(((struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1 *)0)->present), + asn_MAP_ASN_RRC_c1_tag2el_3, + 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_ASN_RRC_c1_3 = { + "c1", + "c1", + &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_ASN_RRC_c1_constr_3, CHOICE_constraint }, + asn_MBR_ASN_RRC_c1_3, + 4, /* Elements count */ + &asn_SPC_ASN_RRC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__criticalExtensionsFuture), + offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__criticalExtensionsFuture, _asn_ctx), + 0, /* No top level tags */ + 0, /* No tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_ASN_RRC_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_ASN_RRC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* c1 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_criticalExtensions_specs_2 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions), + offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions, _asn_ctx), + offsetof(struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions, present), + sizeof(((struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions *)0)->present), + asn_MAP_ASN_RRC_criticalExtensions_tag2el_2, + 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_ASN_RRC_criticalExtensions_2 = { + "criticalExtensions", + "criticalExtensions", + &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_ASN_RRC_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_ASN_RRC_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransferMRDC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ULInformationTransferMRDC, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ULInformationTransferMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransferMRDC_specs_1 = { + sizeof(struct ASN_RRC_ULInformationTransferMRDC), + offsetof(struct ASN_RRC_ULInformationTransferMRDC, _asn_ctx), + asn_MAP_ASN_RRC_ULInformationTransferMRDC_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_ASN_RRC_ULInformationTransferMRDC = { + "ULInformationTransferMRDC", + "ULInformationTransferMRDC", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1, + sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1) + /sizeof(asn_DEF_ASN_RRC_ULInformationTransferMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ULInformationTransferMRDC_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ULInformationTransferMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.h b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.h new file mode 100644 index 0000000..d8f3903 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ULInformationTransferMRDC.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ULInformationTransferMRDC_H_ +#define _ASN_RRC_ULInformationTransferMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR { + ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR_NOTHING, /* No components present */ + ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR_c1, + ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR_criticalExtensionsFuture +} ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR; +typedef enum ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR { + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR_NOTHING, /* No components present */ + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR_ulInformationTransferMRDC, + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR_spare3, + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR_spare2, + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR_spare1 +} ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct ASN_RRC_ULInformationTransferMRDC_IEs; + +/* ASN_RRC_ULInformationTransferMRDC */ +typedef struct ASN_RRC_ULInformationTransferMRDC { + struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions { + ASN_RRC_ULInformationTransferMRDC__criticalExtensions_PR present; + union ASN_RRC_ULInformationTransferMRDC__ASN_RRC_criticalExtensions_u { + struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1 { + ASN_RRC_ULInformationTransferMRDC__criticalExtensions__c1_PR present; + union ASN_RRC_ULInformationTransferMRDC__ASN_RRC_criticalExtensions__ASN_RRC_c1_u { + struct ASN_RRC_ULInformationTransferMRDC_IEs *ulInformationTransferMRDC; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct ASN_RRC_ULInformationTransferMRDC__criticalExtensions__criticalExtensionsFuture { + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *criticalExtensionsFuture; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } criticalExtensions; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ULInformationTransferMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ULInformationTransferMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ULInformationTransferMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ULInformationTransferMRDC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ULInformationTransferMRDC_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkConfig.c b/src/asn/rrc/ASN_RRC_UplinkConfig.c new file mode 100644 index 0000000..1bfcc74 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfig.c @@ -0,0 +1,390 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkConfig.h" + +#include "ASN_RRC_BWP-UplinkDedicated.h" +#include "ASN_RRC_SetupRelease.h" +#include "ASN_RRC_BWP-Uplink.h" +#include "ASN_RRC_SCS-SpecificCarrier.h" +static int +memb_ASN_RRC_uplinkChannelBW_PerSCS_List_constraint_11(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 <= 5)) { + /* 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 int +memb_ASN_RRC_uplinkBWP_ToReleaseList_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 <= 4)) { + /* 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 int +memb_ASN_RRC_uplinkBWP_ToAddModList_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 <= 4)) { + /* 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_ASN_RRC_uplinkBWP_ToReleaseList_constr_3 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_per_constraints_t asn_PER_type_ASN_RRC_uplinkBWP_ToAddModList_constr_5 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_per_constraints_t asn_PER_type_ASN_RRC_uplinkChannelBW_PerSCS_List_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_uplinkChannelBW_PerSCS_List_constr_13 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 3, 3, 1, 5 } /* (SIZE(1..5)) */, + 0, 0 /* No PER value map */ +}; +static asn_per_constraints_t asn_PER_memb_ASN_RRC_uplinkBWP_ToReleaseList_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_uplinkBWP_ToAddModList_constr_5 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_ASN_RRC_uplinkBWP_ToReleaseList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uplinkBWP_ToReleaseList_specs_3 = { + sizeof(struct ASN_RRC_UplinkConfig__uplinkBWP_ToReleaseList), + offsetof(struct ASN_RRC_UplinkConfig__uplinkBWP_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_3 = { + "uplinkBWP-ToReleaseList", + "uplinkBWP-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3, + sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3) + /sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3) + /sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkBWP_ToReleaseList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uplinkBWP_ToReleaseList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uplinkBWP_ToReleaseList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uplinkBWP_ToAddModList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_BWP_Uplink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uplinkBWP_ToAddModList_specs_5 = { + sizeof(struct ASN_RRC_UplinkConfig__uplinkBWP_ToAddModList), + offsetof(struct ASN_RRC_UplinkConfig__uplinkBWP_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_5 = { + "uplinkBWP-ToAddModList", + "uplinkBWP-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5, + sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5) + /sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5) + /sizeof(asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_tags_5[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkBWP_ToAddModList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uplinkBWP_ToAddModList_5, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uplinkBWP_ToAddModList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uplinkChannelBW_PerSCS_List_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uplinkChannelBW_PerSCS_List_specs_13 = { + sizeof(struct ASN_RRC_UplinkConfig__ext1__uplinkChannelBW_PerSCS_List), + offsetof(struct ASN_RRC_UplinkConfig__ext1__uplinkChannelBW_PerSCS_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_13 = { + "uplinkChannelBW-PerSCS-List", + "uplinkChannelBW-PerSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13, + sizeof(asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13) + /sizeof(asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13) + /sizeof(asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_tags_13[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkChannelBW_PerSCS_List_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uplinkChannelBW_PerSCS_List_13, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uplinkChannelBW_PerSCS_List_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_11[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UplinkConfig__ext1, powerBoostPi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerBoostPi2BPSK" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UplinkConfig__ext1, uplinkChannelBW_PerSCS_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkChannelBW_PerSCS_List_13, + 0, + { 0, &asn_PER_memb_ASN_RRC_uplinkChannelBW_PerSCS_List_constr_13, memb_ASN_RRC_uplinkChannelBW_PerSCS_List_constraint_11 }, + 0, 0, /* No default value */ + "uplinkChannelBW-PerSCS-List" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_11[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* powerBoostPi2BPSK */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkChannelBW-PerSCS-List */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_11 = { + sizeof(struct ASN_RRC_UplinkConfig__ext1), + offsetof(struct ASN_RRC_UplinkConfig__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_11, + 2, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_11, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_11, + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_11) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_11, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfig_1[] = { + { ATF_POINTER, 7, offsetof(struct ASN_RRC_UplinkConfig, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_UplinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_POINTER, 6, offsetof(struct ASN_RRC_UplinkConfig, uplinkBWP_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkBWP_ToReleaseList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_uplinkBWP_ToReleaseList_constr_3, memb_ASN_RRC_uplinkBWP_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "uplinkBWP-ToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_UplinkConfig, uplinkBWP_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkBWP_ToAddModList_5, + 0, + { 0, &asn_PER_memb_ASN_RRC_uplinkBWP_ToAddModList_constr_5, memb_ASN_RRC_uplinkBWP_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "uplinkBWP-ToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_UplinkConfig, firstActiveUplinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstActiveUplinkBWP-Id" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_UplinkConfig, pusch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_PUSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ServingCellConfig" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UplinkConfig, carrierSwitching), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_SetupRelease_SRS_CarrierSwitching, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierSwitching" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UplinkConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_UplinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UplinkConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* initialUplinkBWP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uplinkBWP-ToReleaseList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uplinkBWP-ToAddModList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* firstActiveUplinkBWP-Id */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* pusch-ServingCellConfig */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* carrierSwitching */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfig_specs_1 = { + sizeof(struct ASN_RRC_UplinkConfig), + offsetof(struct ASN_RRC_UplinkConfig, _asn_ctx), + asn_MAP_ASN_RRC_UplinkConfig_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UplinkConfig_oms_1, /* Optional members */ + 6, 1, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkConfig = { + "UplinkConfig", + "UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UplinkConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UplinkConfig_1, + 7, /* Elements count */ + &asn_SPC_ASN_RRC_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkConfig.h b/src/asn/rrc/ASN_RRC_UplinkConfig.h new file mode 100644 index 0000000..f048a58 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfig.h @@ -0,0 +1,81 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkConfig_H_ +#define _ASN_RRC_UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_BWP_UplinkDedicated; +struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig; +struct ASN_RRC_SetupRelease_SRS_CarrierSwitching; +struct ASN_RRC_BWP_Uplink; +struct ASN_RRC_SCS_SpecificCarrier; + +/* ASN_RRC_UplinkConfig */ +typedef struct ASN_RRC_UplinkConfig { + struct ASN_RRC_BWP_UplinkDedicated *initialUplinkBWP; /* OPTIONAL */ + struct ASN_RRC_UplinkConfig__uplinkBWP_ToReleaseList { + A_SEQUENCE_OF(ASN_RRC_BWP_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkBWP_ToReleaseList; + struct ASN_RRC_UplinkConfig__uplinkBWP_ToAddModList { + A_SEQUENCE_OF(struct ASN_RRC_BWP_Uplink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkBWP_ToAddModList; + ASN_RRC_BWP_Id_t *firstActiveUplinkBWP_Id; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_PUSCH_ServingCellConfig *pusch_ServingCellConfig; /* OPTIONAL */ + struct ASN_RRC_SetupRelease_SRS_CarrierSwitching *carrierSwitching; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_UplinkConfig__ext1 { + BOOLEAN_t *powerBoostPi2BPSK; /* OPTIONAL */ + struct ASN_RRC_UplinkConfig__ext1__uplinkChannelBW_PerSCS_List { + A_SEQUENCE_OF(struct ASN_RRC_SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkChannelBW_PerSCS_List; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfig_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkConfigCommon.c b/src/asn/rrc/ASN_RRC_UplinkConfigCommon.c new file mode 100644 index 0000000..9cab145 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfigCommon.c @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkConfigCommon.h" + +#include "ASN_RRC_FrequencyInfoUL.h" +#include "ASN_RRC_BWP-UplinkCommon.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfigCommon_1[] = { + { ATF_POINTER, 2, offsetof(struct ASN_RRC_UplinkConfigCommon, frequencyInfoUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FrequencyInfoUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoUL" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UplinkConfigCommon, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkConfigCommon, dummy), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_ASN_RRC_UplinkConfigCommon_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UplinkConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyInfoUL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* initialUplinkBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* dummy */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfigCommon_specs_1 = { + sizeof(struct ASN_RRC_UplinkConfigCommon), + offsetof(struct ASN_RRC_UplinkConfigCommon, _asn_ctx), + asn_MAP_ASN_RRC_UplinkConfigCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UplinkConfigCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkConfigCommon = { + "UplinkConfigCommon", + "UplinkConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UplinkConfigCommon_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UplinkConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkConfigCommon.h b/src/asn/rrc/ASN_RRC_UplinkConfigCommon.h new file mode 100644 index 0000000..a24ff08 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfigCommon.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkConfigCommon_H_ +#define _ASN_RRC_UplinkConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_FrequencyInfoUL; +struct ASN_RRC_BWP_UplinkCommon; + +/* ASN_RRC_UplinkConfigCommon */ +typedef struct ASN_RRC_UplinkConfigCommon { + struct ASN_RRC_FrequencyInfoUL *frequencyInfoUL; /* OPTIONAL */ + struct ASN_RRC_BWP_UplinkCommon *initialUplinkBWP; /* OPTIONAL */ + ASN_RRC_TimeAlignmentTimer_t dummy; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfigCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkConfigCommon_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.c b/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.c new file mode 100644 index 0000000..8131b28 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkConfigCommonSIB.h" + +asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkConfigCommonSIB, frequencyInfoUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_FrequencyInfoUL_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkConfigCommonSIB, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkConfigCommonSIB, timeAlignmentTimerCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeAlignmentTimerCommon" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UplinkConfigCommonSIB_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyInfoUL */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* initialUplinkBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* timeAlignmentTimerCommon */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfigCommonSIB_specs_1 = { + sizeof(struct ASN_RRC_UplinkConfigCommonSIB), + offsetof(struct ASN_RRC_UplinkConfigCommonSIB, _asn_ctx), + asn_MAP_ASN_RRC_UplinkConfigCommonSIB_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_ASN_RRC_UplinkConfigCommonSIB = { + "UplinkConfigCommonSIB", + "UplinkConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UplinkConfigCommonSIB_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UplinkConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.h b/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.h new file mode 100644 index 0000000..50babee --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkConfigCommonSIB.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkConfigCommonSIB_H_ +#define _ASN_RRC_UplinkConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_FrequencyInfoUL-SIB.h" +#include "ASN_RRC_BWP-UplinkCommon.h" +#include "ASN_RRC_TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UplinkConfigCommonSIB */ +typedef struct ASN_RRC_UplinkConfigCommonSIB { + ASN_RRC_FrequencyInfoUL_SIB_t frequencyInfoUL; + ASN_RRC_BWP_UplinkCommon_t initialUplinkBWP; + ASN_RRC_TimeAlignmentTimer_t timeAlignmentTimerCommon; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkConfigCommonSIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkConfigCommonSIB_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkConfigCommonSIB_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.c b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.c new file mode 100644 index 0000000..e3a5f35 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.c @@ -0,0 +1,100 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkTxDirectCurrentBWP.h" + +static int +memb_ASN_RRC_txDirectCurrentLocation_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 <= 3301)) { + /* Constraint 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_ASN_RRC_txDirectCurrentLocation_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 12, 12, 0, 3301 } /* (0..3301) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkTxDirectCurrentBWP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkTxDirectCurrentBWP, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkTxDirectCurrentBWP, shift7dot5kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shift7dot5kHz" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkTxDirectCurrentBWP, txDirectCurrentLocation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, &asn_PER_memb_ASN_RRC_txDirectCurrentLocation_constr_4, memb_ASN_RRC_txDirectCurrentLocation_constraint_1 }, + 0, 0, /* No default value */ + "txDirectCurrentLocation" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UplinkTxDirectCurrentBWP_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bwp-Id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shift7dot5kHz */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* txDirectCurrentLocation */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentBWP_specs_1 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentBWP), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentBWP, _asn_ctx), + asn_MAP_ASN_RRC_UplinkTxDirectCurrentBWP_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_ASN_RRC_UplinkTxDirectCurrentBWP = { + "UplinkTxDirectCurrentBWP", + "UplinkTxDirectCurrentBWP", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UplinkTxDirectCurrentBWP_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UplinkTxDirectCurrentBWP_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.h b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.h new file mode 100644 index 0000000..644a363 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentBWP.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkTxDirectCurrentBWP_H_ +#define _ASN_RRC_UplinkTxDirectCurrentBWP_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_BWP-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_UplinkTxDirectCurrentBWP */ +typedef struct ASN_RRC_UplinkTxDirectCurrentBWP { + ASN_RRC_BWP_Id_t bwp_Id; + BOOLEAN_t shift7dot5kHz; + long txDirectCurrentLocation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkTxDirectCurrentBWP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentBWP_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkTxDirectCurrentBWP_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkTxDirectCurrentBWP_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.c b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.c new file mode 100644 index 0000000..487579e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.c @@ -0,0 +1,264 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkTxDirectCurrentCell.h" + +#include "ASN_RRC_UplinkTxDirectCurrentBWP.h" +static int +memb_ASN_RRC_uplinkDirectCurrentBWP_SUL_constraint_6(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 <= 4)) { + /* 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 int +memb_ASN_RRC_uplinkDirectCurrentBWP_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 <= 4)) { + /* 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_ASN_RRC_uplinkDirectCurrentBWP_constr_3 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_per_constraints_t asn_PER_type_ASN_RRC_uplinkDirectCurrentBWP_SUL_constr_7 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_per_constraints_t asn_PER_memb_ASN_RRC_uplinkDirectCurrentBWP_SUL_constr_7 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_per_constraints_t asn_PER_memb_ASN_RRC_uplinkDirectCurrentBWP_constr_3 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_ASN_RRC_uplinkDirectCurrentBWP_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uplinkDirectCurrentBWP_specs_3 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_3 = { + "uplinkDirectCurrentBWP", + "uplinkDirectCurrentBWP", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3, + sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3) + /sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3) + /sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkDirectCurrentBWP_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uplinkDirectCurrentBWP_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uplinkDirectCurrentBWP_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_uplinkDirectCurrentBWP_SUL_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UplinkTxDirectCurrentBWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_uplinkDirectCurrentBWP_SUL_specs_7 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentCell__ext1__uplinkDirectCurrentBWP_SUL), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell__ext1__uplinkDirectCurrentBWP_SUL, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_7 = { + "uplinkDirectCurrentBWP-SUL", + "uplinkDirectCurrentBWP-SUL", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7, + sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7) + /sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7) + /sizeof(asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_tags_7[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_uplinkDirectCurrentBWP_SUL_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_uplinkDirectCurrentBWP_SUL_7, + 1, /* Single element */ + &asn_SPC_ASN_RRC_uplinkDirectCurrentBWP_SUL_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell__ext1, uplinkDirectCurrentBWP_SUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_SUL_7, + 0, + { 0, &asn_PER_memb_ASN_RRC_uplinkDirectCurrentBWP_SUL_constr_7, memb_ASN_RRC_uplinkDirectCurrentBWP_SUL_constraint_6 }, + 0, 0, /* No default value */ + "uplinkDirectCurrentBWP-SUL" + }, +}; +static const int asn_MAP_ASN_RRC_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* uplinkDirectCurrentBWP-SUL */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_6 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentCell__ext1), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell__ext1, _asn_ctx), + asn_MAP_ASN_RRC_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ext1_oms_6, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ext1_tags_6, + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ext1_tags_6) + /sizeof(asn_DEF_ASN_RRC_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ext1_6, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkTxDirectCurrentCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell, uplinkDirectCurrentBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_uplinkDirectCurrentBWP_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_uplinkDirectCurrentBWP_constr_3, memb_ASN_RRC_uplinkDirectCurrentBWP_constraint_1 }, + 0, 0, /* No default value */ + "uplinkDirectCurrentBWP" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ASN_RRC_UplinkTxDirectCurrentCell_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_UplinkTxDirectCurrentCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* uplinkDirectCurrentBWP */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ext1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentCell_specs_1 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentCell), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentCell, _asn_ctx), + asn_MAP_ASN_RRC_UplinkTxDirectCurrentCell_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_UplinkTxDirectCurrentCell_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell = { + "UplinkTxDirectCurrentCell", + "UplinkTxDirectCurrentCell", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_UplinkTxDirectCurrentCell_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_UplinkTxDirectCurrentCell_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.h b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.h new file mode 100644 index 0000000..db8cc3e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentCell.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkTxDirectCurrentCell_H_ +#define _ASN_RRC_UplinkTxDirectCurrentCell_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ServCellIndex.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UplinkTxDirectCurrentBWP; + +/* ASN_RRC_UplinkTxDirectCurrentCell */ +typedef struct ASN_RRC_UplinkTxDirectCurrentCell { + ASN_RRC_ServCellIndex_t servCellIndex; + struct ASN_RRC_UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP { + A_SEQUENCE_OF(struct ASN_RRC_UplinkTxDirectCurrentBWP) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } uplinkDirectCurrentBWP; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ASN_RRC_UplinkTxDirectCurrentCell__ext1 { + struct ASN_RRC_UplinkTxDirectCurrentCell__ext1__uplinkDirectCurrentBWP_SUL { + A_SEQUENCE_OF(struct ASN_RRC_UplinkTxDirectCurrentBWP) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkDirectCurrentBWP_SUL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkTxDirectCurrentCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentCell_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkTxDirectCurrentCell_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkTxDirectCurrentCell_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.c b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.c new file mode 100644 index 0000000..2e479e4 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_UplinkTxDirectCurrentList.h" + +#include "ASN_RRC_UplinkTxDirectCurrentCell.h" +asn_per_constraints_t asn_PER_type_ASN_RRC_UplinkTxDirectCurrentList_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_ASN_RRC_UplinkTxDirectCurrentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_UplinkTxDirectCurrentCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentList_specs_1 = { + sizeof(struct ASN_RRC_UplinkTxDirectCurrentList), + offsetof(struct ASN_RRC_UplinkTxDirectCurrentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentList = { + "UplinkTxDirectCurrentList", + "UplinkTxDirectCurrentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1, + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1) + /sizeof(asn_DEF_ASN_RRC_UplinkTxDirectCurrentList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_UplinkTxDirectCurrentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_UplinkTxDirectCurrentList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_UplinkTxDirectCurrentList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.h b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.h new file mode 100644 index 0000000..6c51c15 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_UplinkTxDirectCurrentList.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_UplinkTxDirectCurrentList_H_ +#define _ASN_RRC_UplinkTxDirectCurrentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_UplinkTxDirectCurrentCell; + +/* ASN_RRC_UplinkTxDirectCurrentList */ +typedef struct ASN_RRC_UplinkTxDirectCurrentList { + A_SEQUENCE_OF(struct ASN_RRC_UplinkTxDirectCurrentCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_UplinkTxDirectCurrentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_UplinkTxDirectCurrentList; +extern asn_SET_OF_specifics_t asn_SPC_ASN_RRC_UplinkTxDirectCurrentList_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_UplinkTxDirectCurrentList_1[1]; +extern asn_per_constraints_t asn_PER_type_ASN_RRC_UplinkTxDirectCurrentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_UplinkTxDirectCurrentList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarMeasConfig.c b/src/asn/rrc/ASN_RRC_VarMeasConfig.c new file mode 100644 index 0000000..3356c91 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasConfig.c @@ -0,0 +1,150 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarMeasConfig.h" + +#include "ASN_RRC_MeasIdToAddModList.h" +#include "ASN_RRC_MeasObjectToAddModList.h" +#include "ASN_RRC_ReportConfigToAddModList.h" +#include "ASN_RRC_QuantityConfig.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_s_MeasureConfig_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_s_MeasureConfig_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarMeasConfig__s_MeasureConfig, choice.ssb_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarMeasConfig__s_MeasureConfig, choice.csi_RSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_s_MeasureConfig_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ssb-RSRP */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* csi-RSRP */ +}; +static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_s_MeasureConfig_specs_6 = { + sizeof(struct ASN_RRC_VarMeasConfig__s_MeasureConfig), + offsetof(struct ASN_RRC_VarMeasConfig__s_MeasureConfig, _asn_ctx), + offsetof(struct ASN_RRC_VarMeasConfig__s_MeasureConfig, present), + sizeof(((struct ASN_RRC_VarMeasConfig__s_MeasureConfig *)0)->present), + asn_MAP_ASN_RRC_s_MeasureConfig_tag2el_6, + 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_ASN_RRC_s_MeasureConfig_6 = { + "s-MeasureConfig", + "s-MeasureConfig", + &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_ASN_RRC_s_MeasureConfig_constr_6, CHOICE_constraint }, + asn_MBR_ASN_RRC_s_MeasureConfig_6, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_s_MeasureConfig_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ASN_RRC_VarMeasConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct ASN_RRC_VarMeasConfig, measIdList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasIdToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdList" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_VarMeasConfig, measObjectList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasObjectToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectList" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_VarMeasConfig, reportConfigList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ReportConfigToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigList" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_VarMeasConfig, quantityConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_QuantityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfig" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_VarMeasConfig, s_MeasureConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_s_MeasureConfig_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-MeasureConfig" + }, +}; +static const int asn_MAP_ASN_RRC_VarMeasConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarMeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VarMeasConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measIdList */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* measObjectList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportConfigList */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* quantityConfig */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* s-MeasureConfig */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarMeasConfig_specs_1 = { + sizeof(struct ASN_RRC_VarMeasConfig), + offsetof(struct ASN_RRC_VarMeasConfig, _asn_ctx), + asn_MAP_ASN_RRC_VarMeasConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ASN_RRC_VarMeasConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasConfig = { + "VarMeasConfig", + "VarMeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VarMeasConfig_tags_1, + sizeof(asn_DEF_ASN_RRC_VarMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasConfig_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarMeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarMeasConfig_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VarMeasConfig_1, + 5, /* Elements count */ + &asn_SPC_ASN_RRC_VarMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarMeasConfig.h b/src/asn/rrc/ASN_RRC_VarMeasConfig.h new file mode 100644 index 0000000..ce0aad7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasConfig.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarMeasConfig_H_ +#define _ASN_RRC_VarMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_RSRP-Range.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_VarMeasConfig__s_MeasureConfig_PR { + ASN_RRC_VarMeasConfig__s_MeasureConfig_PR_NOTHING, /* No components present */ + ASN_RRC_VarMeasConfig__s_MeasureConfig_PR_ssb_RSRP, + ASN_RRC_VarMeasConfig__s_MeasureConfig_PR_csi_RSRP +} ASN_RRC_VarMeasConfig__s_MeasureConfig_PR; + +/* Forward declarations */ +struct ASN_RRC_MeasIdToAddModList; +struct ASN_RRC_MeasObjectToAddModList; +struct ASN_RRC_ReportConfigToAddModList; +struct ASN_RRC_QuantityConfig; + +/* ASN_RRC_VarMeasConfig */ +typedef struct ASN_RRC_VarMeasConfig { + struct ASN_RRC_MeasIdToAddModList *measIdList; /* OPTIONAL */ + struct ASN_RRC_MeasObjectToAddModList *measObjectList; /* OPTIONAL */ + struct ASN_RRC_ReportConfigToAddModList *reportConfigList; /* OPTIONAL */ + struct ASN_RRC_QuantityConfig *quantityConfig; /* OPTIONAL */ + struct ASN_RRC_VarMeasConfig__s_MeasureConfig { + ASN_RRC_VarMeasConfig__s_MeasureConfig_PR present; + union ASN_RRC_VarMeasConfig__ASN_RRC_s_MeasureConfig_u { + ASN_RRC_RSRP_Range_t ssb_RSRP; + ASN_RRC_RSRP_Range_t csi_RSRP; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *s_MeasureConfig; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarMeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasConfig; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarMeasConfig_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarMeasReport.c b/src/asn/rrc/ASN_RRC_VarMeasReport.c new file mode 100644 index 0000000..9b56be6 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasReport.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarMeasReport.h" + +#include "ASN_RRC_CellsTriggeredList.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_VarMeasReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarMeasReport, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_VarMeasReport, cellsTriggeredList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellsTriggeredList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsTriggeredList" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarMeasReport, numberOfReportsSent), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfReportsSent" + }, +}; +static const int asn_MAP_ASN_RRC_VarMeasReport_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarMeasReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VarMeasReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cellsTriggeredList */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* numberOfReportsSent */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarMeasReport_specs_1 = { + sizeof(struct ASN_RRC_VarMeasReport), + offsetof(struct ASN_RRC_VarMeasReport, _asn_ctx), + asn_MAP_ASN_RRC_VarMeasReport_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_VarMeasReport_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasReport = { + "VarMeasReport", + "VarMeasReport", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VarMeasReport_tags_1, + sizeof(asn_DEF_ASN_RRC_VarMeasReport_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasReport_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarMeasReport_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarMeasReport_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VarMeasReport_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_VarMeasReport_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarMeasReport.h b/src/asn/rrc/ASN_RRC_VarMeasReport.h new file mode 100644 index 0000000..965d1e7 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasReport.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarMeasReport_H_ +#define _ASN_RRC_VarMeasReport_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_MeasId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CellsTriggeredList; + +/* ASN_RRC_VarMeasReport */ +typedef struct ASN_RRC_VarMeasReport { + ASN_RRC_MeasId_t measId; + struct ASN_RRC_CellsTriggeredList *cellsTriggeredList; /* OPTIONAL */ + long numberOfReportsSent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarMeasReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasReport; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarMeasReport_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_VarMeasReport_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarMeasReport_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarMeasReportList.c b/src/asn/rrc/ASN_RRC_VarMeasReportList.c new file mode 100644 index 0000000..96f7b4c --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasReportList.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarMeasReportList.h" + +#include "ASN_RRC_VarMeasReport.h" +static asn_per_constraints_t asn_PER_type_ASN_RRC_VarMeasReportList_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 6, 6, 1, 64 } /* (SIZE(1..64)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_ASN_RRC_VarMeasReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ASN_RRC_VarMeasReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarMeasReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_VarMeasReportList_specs_1 = { + sizeof(struct ASN_RRC_VarMeasReportList), + offsetof(struct ASN_RRC_VarMeasReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasReportList = { + "VarMeasReportList", + "VarMeasReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_VarMeasReportList_tags_1, + sizeof(asn_DEF_ASN_RRC_VarMeasReportList_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasReportList_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarMeasReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarMeasReportList_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarMeasReportList_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_VarMeasReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_VarMeasReportList_1, + 1, /* Single element */ + &asn_SPC_ASN_RRC_VarMeasReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarMeasReportList.h b/src/asn/rrc/ASN_RRC_VarMeasReportList.h new file mode 100644 index 0000000..d9f1323 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarMeasReportList.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarMeasReportList_H_ +#define _ASN_RRC_VarMeasReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_VarMeasReport; + +/* ASN_RRC_VarMeasReportList */ +typedef struct ASN_RRC_VarMeasReportList { + A_SEQUENCE_OF(struct ASN_RRC_VarMeasReport) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarMeasReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarMeasReportList; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarMeasReportList_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.c b/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.c new file mode 100644 index 0000000..80bee01 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarPendingRNA-Update.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_VarPendingRNA_Update_1[] = { + { ATF_POINTER, 1, offsetof(struct ASN_RRC_VarPendingRNA_Update, pendingRNA_Update), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BOOLEAN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pendingRNA-Update" + }, +}; +static const int asn_MAP_ASN_RRC_VarPendingRNA_Update_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VarPendingRNA_Update_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pendingRNA-Update */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarPendingRNA_Update_specs_1 = { + sizeof(struct ASN_RRC_VarPendingRNA_Update), + offsetof(struct ASN_RRC_VarPendingRNA_Update, _asn_ctx), + asn_MAP_ASN_RRC_VarPendingRNA_Update_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_ASN_RRC_VarPendingRNA_Update_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarPendingRNA_Update = { + "VarPendingRNA-Update", + "VarPendingRNA-Update", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1, + sizeof(asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarPendingRNA_Update_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VarPendingRNA_Update_1, + 1, /* Elements count */ + &asn_SPC_ASN_RRC_VarPendingRNA_Update_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.h b/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.h new file mode 100644 index 0000000..92fd7eb --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarPendingRNA-Update.h @@ -0,0 +1,38 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarPendingRNA_Update_H_ +#define _ASN_RRC_VarPendingRNA_Update_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_VarPendingRNA-Update */ +typedef struct ASN_RRC_VarPendingRNA_Update { + BOOLEAN_t *pendingRNA_Update; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarPendingRNA_Update_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarPendingRNA_Update; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarPendingRNA_Update_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.c b/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.c new file mode 100644 index 0000000..922c106 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarResumeMAC-Input.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_VarResumeMAC_Input_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarResumeMAC_Input, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarResumeMAC_Input, targetCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarResumeMAC_Input, source_c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "source-c-RNTI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VarResumeMAC_Input_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourcePhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetCellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* source-c-RNTI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarResumeMAC_Input_specs_1 = { + sizeof(struct ASN_RRC_VarResumeMAC_Input), + offsetof(struct ASN_RRC_VarResumeMAC_Input, _asn_ctx), + asn_MAP_ASN_RRC_VarResumeMAC_Input_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_ASN_RRC_VarResumeMAC_Input = { + "VarResumeMAC-Input", + "VarResumeMAC-Input", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1, + sizeof(asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarResumeMAC_Input_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VarResumeMAC_Input_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_VarResumeMAC_Input_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.h b/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.h new file mode 100644 index 0000000..992547b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarResumeMAC-Input.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarResumeMAC_Input_H_ +#define _ASN_RRC_VarResumeMAC_Input_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_CellIdentity.h" +#include "ASN_RRC_RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_VarResumeMAC-Input */ +typedef struct ASN_RRC_VarResumeMAC_Input { + ASN_RRC_PhysCellId_t sourcePhysCellId; + ASN_RRC_CellIdentity_t targetCellIdentity; + ASN_RRC_RNTI_Value_t source_c_RNTI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarResumeMAC_Input_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarResumeMAC_Input; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarResumeMAC_Input_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VarShortMAC-Input.c b/src/asn/rrc/ASN_RRC_VarShortMAC-Input.c new file mode 100644 index 0000000..33aaed9 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarShortMAC-Input.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VarShortMAC-Input.h" + +static asn_TYPE_member_t asn_MBR_ASN_RRC_VarShortMAC_Input_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarShortMAC_Input, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarShortMAC_Input, targetCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_VarShortMAC_Input, source_c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "source-c-RNTI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VarShortMAC_Input_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sourcePhysCellId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* targetCellIdentity */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* source-c-RNTI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VarShortMAC_Input_specs_1 = { + sizeof(struct ASN_RRC_VarShortMAC_Input), + offsetof(struct ASN_RRC_VarShortMAC_Input, _asn_ctx), + asn_MAP_ASN_RRC_VarShortMAC_Input_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_ASN_RRC_VarShortMAC_Input = { + "VarShortMAC-Input", + "VarShortMAC-Input", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1, + sizeof(asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1) + /sizeof(asn_DEF_ASN_RRC_VarShortMAC_Input_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VarShortMAC_Input_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_VarShortMAC_Input_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VarShortMAC-Input.h b/src/asn/rrc/ASN_RRC_VarShortMAC-Input.h new file mode 100644 index 0000000..3426f80 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VarShortMAC-Input.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VarShortMAC_Input_H_ +#define _ASN_RRC_VarShortMAC_Input_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_PhysCellId.h" +#include "ASN_RRC_CellIdentity.h" +#include "ASN_RRC_RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_VarShortMAC-Input */ +typedef struct ASN_RRC_VarShortMAC_Input { + ASN_RRC_PhysCellId_t sourcePhysCellId; + ASN_RRC_CellIdentity_t targetCellIdentity; + ASN_RRC_RNTI_Value_t source_c_RNTI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VarShortMAC_Input_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VarShortMAC_Input; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VarShortMAC_Input_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_VictimSystemType.c b/src/asn/rrc/ASN_RRC_VictimSystemType.c new file mode 100644 index 0000000..64c317b --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VictimSystemType.c @@ -0,0 +1,366 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_VictimSystemType.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. + */ +/* + * 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_ASN_RRC_gps_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_glonass_constr_4 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bds_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_galileo_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_wlan_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_bluetooth_constr_12 CC_NOTUSED = { + { APC_CONSTRAINED, 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_ASN_RRC_gps_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_gps_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_gps_specs_2 = { + asn_MAP_ASN_RRC_gps_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_gps_enum2value_2, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_gps_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_ASN_RRC_gps_2 = { + "gps", + "gps", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_gps_tags_2, + sizeof(asn_DEF_ASN_RRC_gps_tags_2) + /sizeof(asn_DEF_ASN_RRC_gps_tags_2[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_gps_tags_2, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_gps_tags_2) + /sizeof(asn_DEF_ASN_RRC_gps_tags_2[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_gps_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_gps_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_glonass_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_glonass_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_glonass_specs_4 = { + asn_MAP_ASN_RRC_glonass_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_glonass_enum2value_4, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_glonass_tags_4[] = { + (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_ASN_RRC_glonass_4 = { + "glonass", + "glonass", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_glonass_tags_4, + sizeof(asn_DEF_ASN_RRC_glonass_tags_4) + /sizeof(asn_DEF_ASN_RRC_glonass_tags_4[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_glonass_tags_4, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_glonass_tags_4) + /sizeof(asn_DEF_ASN_RRC_glonass_tags_4[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_glonass_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_glonass_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bds_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_bds_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bds_specs_6 = { + asn_MAP_ASN_RRC_bds_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bds_enum2value_6, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bds_tags_6[] = { + (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_ASN_RRC_bds_6 = { + "bds", + "bds", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bds_tags_6, + sizeof(asn_DEF_ASN_RRC_bds_tags_6) + /sizeof(asn_DEF_ASN_RRC_bds_tags_6[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bds_tags_6, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bds_tags_6) + /sizeof(asn_DEF_ASN_RRC_bds_tags_6[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bds_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bds_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_galileo_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_galileo_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_galileo_specs_8 = { + asn_MAP_ASN_RRC_galileo_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_galileo_enum2value_8, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_galileo_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_ASN_RRC_galileo_8 = { + "galileo", + "galileo", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_galileo_tags_8, + sizeof(asn_DEF_ASN_RRC_galileo_tags_8) + /sizeof(asn_DEF_ASN_RRC_galileo_tags_8[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_galileo_tags_8, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_galileo_tags_8) + /sizeof(asn_DEF_ASN_RRC_galileo_tags_8[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_galileo_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_galileo_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_wlan_value2enum_10[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_wlan_enum2value_10[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_wlan_specs_10 = { + asn_MAP_ASN_RRC_wlan_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_wlan_enum2value_10, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_wlan_tags_10[] = { + (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_ASN_RRC_wlan_10 = { + "wlan", + "wlan", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_wlan_tags_10, + sizeof(asn_DEF_ASN_RRC_wlan_tags_10) + /sizeof(asn_DEF_ASN_RRC_wlan_tags_10[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_wlan_tags_10, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_wlan_tags_10) + /sizeof(asn_DEF_ASN_RRC_wlan_tags_10[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_wlan_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_wlan_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_bluetooth_value2enum_12[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ASN_RRC_bluetooth_enum2value_12[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_bluetooth_specs_12 = { + asn_MAP_ASN_RRC_bluetooth_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_ASN_RRC_bluetooth_enum2value_12, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 0, /* Enumeration is not extensible */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_bluetooth_tags_12[] = { + (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_ASN_RRC_bluetooth_12 = { + "bluetooth", + "bluetooth", + &asn_OP_NativeEnumerated, + asn_DEF_ASN_RRC_bluetooth_tags_12, + sizeof(asn_DEF_ASN_RRC_bluetooth_tags_12) + /sizeof(asn_DEF_ASN_RRC_bluetooth_tags_12[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_bluetooth_tags_12, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_bluetooth_tags_12) + /sizeof(asn_DEF_ASN_RRC_bluetooth_tags_12[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_bluetooth_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ASN_RRC_bluetooth_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_VictimSystemType_1[] = { + { ATF_POINTER, 6, offsetof(struct ASN_RRC_VictimSystemType, gps), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_gps_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gps" + }, + { ATF_POINTER, 5, offsetof(struct ASN_RRC_VictimSystemType, glonass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_glonass_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "glonass" + }, + { ATF_POINTER, 4, offsetof(struct ASN_RRC_VictimSystemType, bds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bds_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bds" + }, + { ATF_POINTER, 3, offsetof(struct ASN_RRC_VictimSystemType, galileo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_galileo_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "galileo" + }, + { ATF_POINTER, 2, offsetof(struct ASN_RRC_VictimSystemType, wlan), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_wlan_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlan" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_VictimSystemType, bluetooth), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_bluetooth_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetooth" + }, +}; +static const int asn_MAP_ASN_RRC_VictimSystemType_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_VictimSystemType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_VictimSystemType_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gps */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* glonass */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* bds */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* galileo */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* wlan */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* bluetooth */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VictimSystemType_specs_1 = { + sizeof(struct ASN_RRC_VictimSystemType), + offsetof(struct ASN_RRC_VictimSystemType, _asn_ctx), + asn_MAP_ASN_RRC_VictimSystemType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_ASN_RRC_VictimSystemType_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VictimSystemType = { + "VictimSystemType", + "VictimSystemType", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_VictimSystemType_tags_1, + sizeof(asn_DEF_ASN_RRC_VictimSystemType_tags_1) + /sizeof(asn_DEF_ASN_RRC_VictimSystemType_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_VictimSystemType_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_VictimSystemType_tags_1) + /sizeof(asn_DEF_ASN_RRC_VictimSystemType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_VictimSystemType_1, + 6, /* Elements count */ + &asn_SPC_ASN_RRC_VictimSystemType_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_VictimSystemType.h b/src/asn/rrc/ASN_RRC_VictimSystemType.h new file mode 100644 index 0000000..6ece589 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_VictimSystemType.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_VictimSystemType_H_ +#define _ASN_RRC_VictimSystemType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ASN_RRC_VictimSystemType__gps { + ASN_RRC_VictimSystemType__gps_true = 0 +} e_ASN_RRC_VictimSystemType__gps; +typedef enum ASN_RRC_VictimSystemType__glonass { + ASN_RRC_VictimSystemType__glonass_true = 0 +} e_ASN_RRC_VictimSystemType__glonass; +typedef enum ASN_RRC_VictimSystemType__bds { + ASN_RRC_VictimSystemType__bds_true = 0 +} e_ASN_RRC_VictimSystemType__bds; +typedef enum ASN_RRC_VictimSystemType__galileo { + ASN_RRC_VictimSystemType__galileo_true = 0 +} e_ASN_RRC_VictimSystemType__galileo; +typedef enum ASN_RRC_VictimSystemType__wlan { + ASN_RRC_VictimSystemType__wlan_true = 0 +} e_ASN_RRC_VictimSystemType__wlan; +typedef enum ASN_RRC_VictimSystemType__bluetooth { + ASN_RRC_VictimSystemType__bluetooth_true = 0 +} e_ASN_RRC_VictimSystemType__bluetooth; + +/* ASN_RRC_VictimSystemType */ +typedef struct ASN_RRC_VictimSystemType { + long *gps; /* OPTIONAL */ + long *glonass; /* OPTIONAL */ + long *bds; /* OPTIONAL */ + long *galileo; /* OPTIONAL */ + long *wlan; /* OPTIONAL */ + long *bluetooth; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_VictimSystemType_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_gps_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_glonass_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bds_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_galileo_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_wlan_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_bluetooth_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_VictimSystemType; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_VictimSystemType_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_VictimSystemType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_VictimSystemType_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.c b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.c new file mode 100644 index 0000000..17c3245 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.c @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ZP-CSI-RS-Resource.h" + +#include "ASN_RRC_CSI-ResourcePeriodicityAndOffset.h" +asn_TYPE_member_t asn_MBR_ASN_RRC_ZP_CSI_RS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ZP_CSI_RS_Resource, zp_CSI_RS_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ZP_CSI_RS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_RS_ResourceMapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_POINTER, 1, offsetof(struct ASN_RRC_ZP_CSI_RS_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ASN_RRC_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, +}; +static const int asn_MAP_ASN_RRC_ZP_CSI_RS_Resource_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ZP_CSI_RS_Resource_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zp-CSI-RS-ResourceId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* resourceMapping */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* periodicityAndOffset */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ZP_CSI_RS_Resource_specs_1 = { + sizeof(struct ASN_RRC_ZP_CSI_RS_Resource), + offsetof(struct ASN_RRC_ZP_CSI_RS_Resource, _asn_ctx), + asn_MAP_ASN_RRC_ZP_CSI_RS_Resource_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ASN_RRC_ZP_CSI_RS_Resource_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_Resource = { + "ZP-CSI-RS-Resource", + "ZP-CSI-RS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1, + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ZP_CSI_RS_Resource_1, + 3, /* Elements count */ + &asn_SPC_ASN_RRC_ZP_CSI_RS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.h b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.h new file mode 100644 index 0000000..7402ddf --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-Resource.h @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ZP_CSI_RS_Resource_H_ +#define _ASN_RRC_ZP_CSI_RS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ZP-CSI-RS-ResourceId.h" +#include "ASN_RRC_CSI-RS-ResourceMapping.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ASN_RRC_CSI_ResourcePeriodicityAndOffset; + +/* ASN_RRC_ZP-CSI-RS-Resource */ +typedef struct ASN_RRC_ZP_CSI_RS_Resource { + ASN_RRC_ZP_CSI_RS_ResourceId_t zp_CSI_RS_ResourceId; + ASN_RRC_CSI_RS_ResourceMapping_t resourceMapping; + struct ASN_RRC_CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ZP_CSI_RS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ZP_CSI_RS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ZP_CSI_RS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ZP_CSI_RS_Resource_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.c b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.c new file mode 100644 index 0000000..fbbde65 --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ZP-CSI-RS-ResourceId.h" + +int +ASN_RRC_ZP_CSI_RS_ResourceId_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 <= 31)) { + /* Constraint check succeeded */ + return 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_ASN_RRC_ZP_CSI_RS_ResourceId_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId = { + "ZP-CSI-RS-ResourceId", + "ZP-CSI-RS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1, + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ZP_CSI_RS_ResourceId_constr_1, ASN_RRC_ZP_CSI_RS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.h b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.h new file mode 100644 index 0000000..f8acb3e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ZP_CSI_RS_ResourceId_H_ +#define _ASN_RRC_ZP_CSI_RS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ZP-CSI-RS-ResourceId */ +typedef long ASN_RRC_ZP_CSI_RS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ZP_CSI_RS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId; +asn_struct_free_f ASN_RRC_ZP_CSI_RS_ResourceId_free; +asn_struct_print_f ASN_RRC_ZP_CSI_RS_ResourceId_print; +asn_constr_check_f ASN_RRC_ZP_CSI_RS_ResourceId_constraint; +ber_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceId_decode_ber; +der_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceId_encode_der; +xer_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceId_decode_xer; +xer_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceId_encode_xer; +per_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceId_decode_uper; +per_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceId_encode_uper; +per_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceId_decode_aper; +per_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ZP_CSI_RS_ResourceId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.c b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.c new file mode 100644 index 0000000..d66561e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.c @@ -0,0 +1,133 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ZP-CSI-RS-ResourceSet.h" + +static int +memb_ASN_RRC_zp_CSI_RS_ResourceIdList_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 <= 16)) { + /* 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_ASN_RRC_zp_CSI_RS_ResourceIdList_constr_3 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_per_constraints_t asn_PER_memb_ASN_RRC_zp_CSI_RS_ResourceIdList_constr_3 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_ASN_RRC_zp_CSI_RS_ResourceIdList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_zp_CSI_RS_ResourceIdList_specs_3 = { + sizeof(struct ASN_RRC_ZP_CSI_RS_ResourceSet__zp_CSI_RS_ResourceIdList), + offsetof(struct ASN_RRC_ZP_CSI_RS_ResourceSet__zp_CSI_RS_ResourceIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_3 = { + "zp-CSI-RS-ResourceIdList", + "zp-CSI-RS-ResourceIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3, + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3) + /sizeof(asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_tags_3[0]), /* 2 */ + { 0, &asn_PER_type_ASN_RRC_zp_CSI_RS_ResourceIdList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ASN_RRC_zp_CSI_RS_ResourceIdList_3, + 1, /* Single element */ + &asn_SPC_ASN_RRC_zp_CSI_RS_ResourceIdList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ASN_RRC_ZP_CSI_RS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ZP_CSI_RS_ResourceSet, zp_CSI_RS_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ZP_CSI_RS_ResourceSet, zp_CSI_RS_ResourceIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ASN_RRC_zp_CSI_RS_ResourceIdList_3, + 0, + { 0, &asn_PER_memb_ASN_RRC_zp_CSI_RS_ResourceIdList_constr_3, memb_ASN_RRC_zp_CSI_RS_ResourceIdList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ZP_CSI_RS_ResourceSet_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* zp-CSI-RS-ResourceSetId */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* zp-CSI-RS-ResourceIdList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ZP_CSI_RS_ResourceSet_specs_1 = { + sizeof(struct ASN_RRC_ZP_CSI_RS_ResourceSet), + offsetof(struct ASN_RRC_ZP_CSI_RS_ResourceSet, _asn_ctx), + asn_MAP_ASN_RRC_ZP_CSI_RS_ResourceSet_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_ASN_RRC_ZP_CSI_RS_ResourceSet = { + "ZP-CSI-RS-ResourceSet", + "ZP-CSI-RS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1, + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ASN_RRC_ZP_CSI_RS_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_ASN_RRC_ZP_CSI_RS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.h b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.h new file mode 100644 index 0000000..e2045ff --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSet.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ZP_CSI_RS_ResourceSet_H_ +#define _ASN_RRC_ZP_CSI_RS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ASN_RRC_ZP-CSI-RS-ResourceSetId.h" +#include "ASN_RRC_ZP-CSI-RS-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ZP-CSI-RS-ResourceSet */ +typedef struct ASN_RRC_ZP_CSI_RS_ResourceSet { + ASN_RRC_ZP_CSI_RS_ResourceSetId_t zp_CSI_RS_ResourceSetId; + struct ASN_RRC_ZP_CSI_RS_ResourceSet__zp_CSI_RS_ResourceIdList { + A_SEQUENCE_OF(ASN_RRC_ZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } zp_CSI_RS_ResourceIdList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ASN_RRC_ZP_CSI_RS_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ZP_CSI_RS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ASN_RRC_ZP_CSI_RS_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ZP_CSI_RS_ResourceSet_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.c b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.c new file mode 100644 index 0000000..32d29de --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.c @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#include "ASN_RRC_ZP-CSI-RS-ResourceSetId.h" + +int +ASN_RRC_ZP_CSI_RS_ResourceSetId_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_ASN_RRC_ZP_CSI_RS_ResourceSetId_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_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId = { + "ZP-CSI-RS-ResourceSetId", + "ZP-CSI-RS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1, + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + { 0, &asn_PER_type_ASN_RRC_ZP_CSI_RS_ResourceSetId_constr_1, ASN_RRC_ZP_CSI_RS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.h b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.h new file mode 100644 index 0000000..975582e --- /dev/null +++ b/src/asn/rrc/ASN_RRC_ZP-CSI-RS-ResourceSetId.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "asn/nr-rrc-15.6.0.asn1" + * `asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc` + */ + +#ifndef _ASN_RRC_ZP_CSI_RS_ResourceSetId_H_ +#define _ASN_RRC_ZP_CSI_RS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ASN_RRC_ZP-CSI-RS-ResourceSetId */ +typedef long ASN_RRC_ZP_CSI_RS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ASN_RRC_ZP_CSI_RS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ZP_CSI_RS_ResourceSetId; +asn_struct_free_f ASN_RRC_ZP_CSI_RS_ResourceSetId_free; +asn_struct_print_f ASN_RRC_ZP_CSI_RS_ResourceSetId_print; +asn_constr_check_f ASN_RRC_ZP_CSI_RS_ResourceSetId_constraint; +ber_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_decode_ber; +der_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_encode_der; +xer_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_decode_xer; +xer_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_encode_xer; +per_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_decode_uper; +per_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_encode_uper; +per_type_decoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_decode_aper; +per_type_encoder_f ASN_RRC_ZP_CSI_RS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ZP_CSI_RS_ResourceSetId_H_ */ +#include diff --git a/src/asn/rrc/ASN_RRC_asn_constant.h b/src/asn/rrc/ASN_RRC_asn_constant.h new file mode 100644 index 0000000..668ffda --- /dev/null +++ b/src/asn/rrc/ASN_RRC_asn_constant.h @@ -0,0 +1,368 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _ASN_RRC_ASN_CONSTANT_H +#define _ASN_RRC_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_ASN_RRC_AdditionalSpectrumEmission (0) +#define max_val_ASN_RRC_AdditionalSpectrumEmission (7) +#define min_val_ASN_RRC_ARFCN_ValueEUTRA (0) +#define max_val_ASN_RRC_ARFCN_ValueEUTRA (262143) +#define min_val_ASN_RRC_ARFCN_ValueNR (0) +#define max_val_ASN_RRC_ARFCN_ValueNR (3279165) +#define min_val_ASN_RRC_BWP_Id (0) +#define max_val_ASN_RRC_BWP_Id (4) +#define min_val_ASN_RRC_CellGroupId (0) +#define max_val_ASN_RRC_CellGroupId (3) +#define min_val_ASN_RRC_CellReselectionPriority (0) +#define max_val_ASN_RRC_CellReselectionPriority (7) +#define min_val_ASN_RRC_ControlResourceSetId (0) +#define max_val_ASN_RRC_ControlResourceSetId (11) +#define min_val_ASN_RRC_ControlResourceSetZero (0) +#define max_val_ASN_RRC_ControlResourceSetZero (15) +#define min_val_ASN_RRC_CSI_IM_ResourceId (0) +#define max_val_ASN_RRC_CSI_IM_ResourceId (31) +#define min_val_ASN_RRC_CSI_IM_ResourceSetId (0) +#define max_val_ASN_RRC_CSI_IM_ResourceSetId (63) +#define min_val_ASN_RRC_PortIndex8 (0) +#define max_val_ASN_RRC_PortIndex8 (7) +#define min_val_ASN_RRC_PortIndex4 (0) +#define max_val_ASN_RRC_PortIndex4 (3) +#define min_val_ASN_RRC_PortIndex2 (0) +#define max_val_ASN_RRC_PortIndex2 (1) +#define min_val_ASN_RRC_CSI_ReportConfigId (0) +#define max_val_ASN_RRC_CSI_ReportConfigId (47) +#define min_val_ASN_RRC_CSI_ResourceConfigId (0) +#define max_val_ASN_RRC_CSI_ResourceConfigId (111) +#define min_val_ASN_RRC_CSI_RS_Index (0) +#define max_val_ASN_RRC_CSI_RS_Index (95) +#define min_val_ASN_RRC_CSI_SSB_ResourceSetId (0) +#define max_val_ASN_RRC_CSI_SSB_ResourceSetId (63) +#define min_val_ASN_RRC_DRB_Identity (1) +#define max_val_ASN_RRC_DRB_Identity (32) +#define min_val_ASN_RRC_FreqBandIndicatorNR (1) +#define max_val_ASN_RRC_FreqBandIndicatorNR (1024) +#define min_val_ASN_RRC_Hysteresis (0) +#define max_val_ASN_RRC_Hysteresis (30) +#define min_val_ASN_RRC_LogicalChannelIdentity (1) +#define max_val_ASN_RRC_LogicalChannelIdentity (32) +#define min_val_ASN_RRC_MeasId (1) +#define max_val_ASN_RRC_MeasId (64) +#define min_val_ASN_RRC_EUTRA_CellIndex (1) +#define max_val_ASN_RRC_EUTRA_CellIndex (32) +#define min_val_ASN_RRC_MeasObjectId (1) +#define max_val_ASN_RRC_MeasObjectId (64) +#define min_val_ASN_RRC_NextHopChainingCount (0) +#define max_val_ASN_RRC_NextHopChainingCount (7) +#define min_val_ASN_RRC_NZP_CSI_RS_ResourceId (0) +#define max_val_ASN_RRC_NZP_CSI_RS_ResourceId (191) +#define min_val_ASN_RRC_NZP_CSI_RS_ResourceSetId (0) +#define max_val_ASN_RRC_NZP_CSI_RS_ResourceSetId (63) +#define min_val_ASN_RRC_P_Max (-30) +#define max_val_ASN_RRC_P_Max (33) +#define min_val_ASN_RRC_PCI_RangeIndex (1) +#define max_val_ASN_RRC_PCI_RangeIndex (8) +#define min_val_ASN_RRC_PhysCellId (0) +#define max_val_ASN_RRC_PhysCellId (1007) +#define min_val_ASN_RRC_PDCCH_BlindDetection (1) +#define max_val_ASN_RRC_PDCCH_BlindDetection (15) +#define min_val_ASN_RRC_MCC_MNC_Digit (0) +#define max_val_ASN_RRC_MCC_MNC_Digit (9) +#define min_val_ASN_RRC_PRB_Id (0) +#define max_val_ASN_RRC_PRB_Id (274) +#define min_val_ASN_RRC_PUCCH_ResourceSetId (0) +#define max_val_ASN_RRC_PUCCH_ResourceSetId (3) +#define min_val_ASN_RRC_PUCCH_ResourceId (0) +#define max_val_ASN_RRC_PUCCH_ResourceId (127) +#define min_val_ASN_RRC_PUCCH_PathlossReferenceRS_Id (0) +#define max_val_ASN_RRC_PUCCH_PathlossReferenceRS_Id (3) +#define min_val_ASN_RRC_P0_PUCCH_Id (1) +#define max_val_ASN_RRC_P0_PUCCH_Id (8) +#define min_val_ASN_RRC_PUCCH_SpatialRelationInfoId (1) +#define max_val_ASN_RRC_PUCCH_SpatialRelationInfoId (8) +#define min_val_ASN_RRC_P0_PUSCH_AlphaSetId (0) +#define max_val_ASN_RRC_P0_PUSCH_AlphaSetId (29) +#define min_val_ASN_RRC_PUSCH_PathlossReferenceRS_Id (0) +#define max_val_ASN_RRC_PUSCH_PathlossReferenceRS_Id (3) +#define min_val_ASN_RRC_SRI_PUSCH_PowerControlId (0) +#define max_val_ASN_RRC_SRI_PUSCH_PowerControlId (15) +#define min_val_ASN_RRC_Q_QualMin (-43) +#define max_val_ASN_RRC_Q_QualMin (-12) +#define min_val_ASN_RRC_Q_RxLevMin (-70) +#define max_val_ASN_RRC_Q_RxLevMin (-22) +#define min_val_ASN_RRC_RadioLinkMonitoringRS_Id (0) +#define max_val_ASN_RRC_RadioLinkMonitoringRS_Id (9) +#define min_val_ASN_RRC_RAN_AreaCode (0) +#define max_val_ASN_RRC_RAN_AreaCode (255) +#define min_val_ASN_RRC_RateMatchPatternId (0) +#define max_val_ASN_RRC_RateMatchPatternId (3) +#define min_val_ASN_RRC_RejectWaitTime (1) +#define max_val_ASN_RRC_RejectWaitTime (16) +#define min_val_ASN_RRC_ReportConfigId (1) +#define max_val_ASN_RRC_ReportConfigId (64) +#define min_val_ASN_RRC_RSRP_RangeEUTRA (0) +#define max_val_ASN_RRC_RSRP_RangeEUTRA (97) +#define min_val_ASN_RRC_RSRQ_RangeEUTRA (0) +#define max_val_ASN_RRC_RSRQ_RangeEUTRA (34) +#define min_val_ASN_RRC_SINR_RangeEUTRA (0) +#define max_val_ASN_RRC_SINR_RangeEUTRA (127) +#define min_val_ASN_RRC_ReselectionThreshold (0) +#define max_val_ASN_RRC_ReselectionThreshold (31) +#define min_val_ASN_RRC_ReselectionThresholdQ (0) +#define max_val_ASN_RRC_ReselectionThresholdQ (31) +#define min_val_ASN_RRC_RNTI_Value (0) +#define max_val_ASN_RRC_RNTI_Value (65535) +#define min_val_ASN_RRC_RSRP_Range (0) +#define max_val_ASN_RRC_RSRP_Range (127) +#define min_val_ASN_RRC_RSRQ_Range (0) +#define max_val_ASN_RRC_RSRQ_Range (127) +#define min_val_ASN_RRC_SCellIndex (1) +#define max_val_ASN_RRC_SCellIndex (31) +#define min_val_ASN_RRC_SchedulingRequestId (0) +#define max_val_ASN_RRC_SchedulingRequestId (7) +#define min_val_ASN_RRC_SchedulingRequestResourceId (1) +#define max_val_ASN_RRC_SchedulingRequestResourceId (8) +#define min_val_ASN_RRC_ScramblingId (0) +#define max_val_ASN_RRC_ScramblingId (1023) +#define min_val_ASN_RRC_QFI (0) +#define max_val_ASN_RRC_QFI (63) +#define min_val_ASN_RRC_PDU_SessionID (0) +#define max_val_ASN_RRC_PDU_SessionID (255) +#define min_val_ASN_RRC_SearchSpaceId (0) +#define max_val_ASN_RRC_SearchSpaceId (39) +#define min_val_ASN_RRC_SearchSpaceZero (0) +#define max_val_ASN_RRC_SearchSpaceZero (15) +#define min_val_ASN_RRC_ServCellIndex (0) +#define max_val_ASN_RRC_ServCellIndex (31) +#define min_val_ASN_RRC_SINR_Range (0) +#define max_val_ASN_RRC_SINR_Range (127) +#define min_val_ASN_RRC_SK_Counter (0) +#define max_val_ASN_RRC_SK_Counter (65535) +#define min_val_ASN_RRC_SlotFormatCombinationId (0) +#define max_val_ASN_RRC_SlotFormatCombinationId (511) +#define min_val_ASN_RRC_SRB_Identity (1) +#define max_val_ASN_RRC_SRB_Identity (3) +#define min_val_ASN_RRC_SRS_ResourceSetId (0) +#define max_val_ASN_RRC_SRS_ResourceSetId (15) +#define min_val_ASN_RRC_SRS_ResourceId (0) +#define max_val_ASN_RRC_SRS_ResourceId (63) +#define min_val_ASN_RRC_SSB_Index (0) +#define max_val_ASN_RRC_SSB_Index (63) +#define min_val_ASN_RRC_TAG_Id (0) +#define max_val_ASN_RRC_TAG_Id (3) +#define min_val_ASN_RRC_TCI_StateId (0) +#define max_val_ASN_RRC_TCI_StateId (127) +#define min_val_ASN_RRC_TDD_UL_DL_SlotIndex (0) +#define max_val_ASN_RRC_TDD_UL_DL_SlotIndex (319) +#define min_val_ASN_RRC_T_Reselection (0) +#define max_val_ASN_RRC_T_Reselection (7) +#define min_val_ASN_RRC_UAC_BarringInfoSetIndex (1) +#define max_val_ASN_RRC_UAC_BarringInfoSetIndex (8) +#define min_val_ASN_RRC_ZP_CSI_RS_ResourceId (0) +#define max_val_ASN_RRC_ZP_CSI_RS_ResourceId (31) +#define min_val_ASN_RRC_ZP_CSI_RS_ResourceSetId (0) +#define max_val_ASN_RRC_ZP_CSI_RS_ResourceSetId (15) +#define min_val_ASN_RRC_FeatureSetCombinationId (0) +#define max_val_ASN_RRC_FeatureSetCombinationId (1024) +#define min_val_ASN_RRC_FeatureSetDownlinkId (0) +#define max_val_ASN_RRC_FeatureSetDownlinkId (1024) +#define min_val_ASN_RRC_FeatureSetDownlinkPerCC_Id (1) +#define max_val_ASN_RRC_FeatureSetDownlinkPerCC_Id (1024) +#define min_val_ASN_RRC_FeatureSetEUTRA_DownlinkId (0) +#define max_val_ASN_RRC_FeatureSetEUTRA_DownlinkId (256) +#define min_val_ASN_RRC_FeatureSetEUTRA_UplinkId (0) +#define max_val_ASN_RRC_FeatureSetEUTRA_UplinkId (256) +#define min_val_ASN_RRC_FeatureSetUplinkId (0) +#define max_val_ASN_RRC_FeatureSetUplinkId (1024) +#define min_val_ASN_RRC_FeatureSetUplinkPerCC_Id (1) +#define max_val_ASN_RRC_FeatureSetUplinkPerCC_Id (1024) +#define min_val_ASN_RRC_FreqBandIndicatorEUTRA (1) +#define max_val_ASN_RRC_FreqBandIndicatorEUTRA (256) +#define min_val_ASN_RRC_NumberOfCarriers (1) +#define max_val_ASN_RRC_NumberOfCarriers (16) +#define min_val_ASN_RRC_EUTRA_PhysCellId (0) +#define max_val_ASN_RRC_EUTRA_PhysCellId (503) +#define min_val_ASN_RRC_RRC_TransactionIdentifier (0) +#define max_val_ASN_RRC_RRC_TransactionIdentifier (3) +#define ASN_RRC_maxBandComb (65536) +#define ASN_RRC_maxCellBlack (16) +#define ASN_RRC_maxCellInter (16) +#define ASN_RRC_maxCellIntra (16) +#define ASN_RRC_maxCellMeasEUTRA (32) +#define ASN_RRC_maxEARFCN (262143) +#define ASN_RRC_maxEUTRA_CellBlack (16) +#define ASN_RRC_maxEUTRA_NS_Pmax (8) +#define ASN_RRC_maxMultiBands (8) +#define ASN_RRC_maxNARFCN (3279165) +#define ASN_RRC_maxNR_NS_Pmax (8) +#define ASN_RRC_maxNrofServingCells (32) +#define ASN_RRC_maxNrofServingCells_1 (31) +#define ASN_RRC_maxNrofAggregatedCellsPerCellGroup (16) +#define ASN_RRC_maxNrofSCells (31) +#define ASN_RRC_maxNrofCellMeas (32) +#define ASN_RRC_maxNrofSS_BlocksToAverage (16) +#define ASN_RRC_maxNrofCSI_RS_ResourcesToAverage (16) +#define ASN_RRC_maxNrofDL_Allocations (16) +#define ASN_RRC_maxNrofSR_ConfigPerCellGroup (8) +#define ASN_RRC_maxLCG_ID (7) +#define ASN_RRC_maxLC_ID (32) +#define ASN_RRC_maxNrofTAGs (4) +#define ASN_RRC_maxNrofTAGs_1 (3) +#define ASN_RRC_maxNrofBWPs (4) +#define ASN_RRC_maxNrofCombIDC (128) +#define ASN_RRC_maxNrofSymbols_1 (13) +#define ASN_RRC_maxNrofSlots (320) +#define ASN_RRC_maxNrofSlots_1 (319) +#define ASN_RRC_maxNrofPhysicalResourceBlocks (275) +#define ASN_RRC_maxNrofPhysicalResourceBlocks_1 (274) +#define ASN_RRC_maxNrofPhysicalResourceBlocksPlus1 (276) +#define ASN_RRC_maxNrofControlResourceSets_1 (11) +#define ASN_RRC_maxCoReSetDuration (3) +#define ASN_RRC_maxNrofSearchSpaces_1 (39) +#define ASN_RRC_maxSFI_DCI_PayloadSize (128) +#define ASN_RRC_maxSFI_DCI_PayloadSize_1 (127) +#define ASN_RRC_maxINT_DCI_PayloadSize (126) +#define ASN_RRC_maxINT_DCI_PayloadSize_1 (125) +#define ASN_RRC_maxNrofRateMatchPatterns (4) +#define ASN_RRC_maxNrofRateMatchPatterns_1 (3) +#define ASN_RRC_maxNrofRateMatchPatternsPerGroup (8) +#define ASN_RRC_maxNrofCSI_ReportConfigurations (48) +#define ASN_RRC_maxNrofCSI_ReportConfigurations_1 (47) +#define ASN_RRC_maxNrofCSI_ResourceConfigurations (112) +#define ASN_RRC_maxNrofCSI_ResourceConfigurations_1 (111) +#define ASN_RRC_maxNrofAP_CSI_RS_ResourcesPerSet (16) +#define ASN_RRC_maxNrOfCSI_AperiodicTriggers (128) +#define ASN_RRC_maxNrofReportConfigPerAperiodicTrigger (16) +#define ASN_RRC_maxNrofNZP_CSI_RS_Resources (192) +#define ASN_RRC_maxNrofNZP_CSI_RS_Resources_1 (191) +#define ASN_RRC_maxNrofNZP_CSI_RS_ResourcesPerSet (64) +#define ASN_RRC_maxNrofNZP_CSI_RS_ResourceSets (64) +#define ASN_RRC_maxNrofNZP_CSI_RS_ResourceSets_1 (63) +#define ASN_RRC_maxNrofNZP_CSI_RS_ResourceSetsPerConfig (16) +#define ASN_RRC_maxNrofNZP_CSI_RS_ResourcesPerConfig (128) +#define ASN_RRC_maxNrofZP_CSI_RS_Resources (32) +#define ASN_RRC_maxNrofZP_CSI_RS_Resources_1 (31) +#define ASN_RRC_maxNrofZP_CSI_RS_ResourceSets_1 (15) +#define ASN_RRC_maxNrofZP_CSI_RS_ResourcesPerSet (16) +#define ASN_RRC_maxNrofZP_CSI_RS_ResourceSets (16) +#define ASN_RRC_maxNrofCSI_IM_Resources (32) +#define ASN_RRC_maxNrofCSI_IM_Resources_1 (31) +#define ASN_RRC_maxNrofCSI_IM_ResourcesPerSet (8) +#define ASN_RRC_maxNrofCSI_IM_ResourceSets (64) +#define ASN_RRC_maxNrofCSI_IM_ResourceSets_1 (63) +#define ASN_RRC_maxNrofCSI_IM_ResourceSetsPerConfig (16) +#define ASN_RRC_maxNrofCSI_SSB_ResourcePerSet (64) +#define ASN_RRC_maxNrofCSI_SSB_ResourceSets (64) +#define ASN_RRC_maxNrofCSI_SSB_ResourceSets_1 (63) +#define ASN_RRC_maxNrofCSI_SSB_ResourceSetsPerConfig (1) +#define ASN_RRC_maxNrofFailureDetectionResources (10) +#define ASN_RRC_maxNrofFailureDetectionResources_1 (9) +#define ASN_RRC_maxNrofObjectId (64) +#define ASN_RRC_maxNrofPageRec (32) +#define ASN_RRC_maxNrofPCI_Ranges (8) +#define ASN_RRC_maxPLMN (12) +#define ASN_RRC_maxNrofCSI_RS_ResourcesRRM (96) +#define ASN_RRC_maxNrofCSI_RS_ResourcesRRM_1 (95) +#define ASN_RRC_maxNrofMeasId (64) +#define ASN_RRC_maxNrofQuantityConfig (2) +#define ASN_RRC_maxNrofCSI_RS_CellsRRM (96) +#define ASN_RRC_maxNrofSRS_ResourceSets (16) +#define ASN_RRC_maxNrofSRS_ResourceSets_1 (15) +#define ASN_RRC_maxNrofSRS_Resources (64) +#define ASN_RRC_maxNrofSRS_Resources_1 (63) +#define ASN_RRC_maxNrofSRS_ResourcesPerSet (16) +#define ASN_RRC_maxNrofSRS_TriggerStates_1 (3) +#define ASN_RRC_maxNrofSRS_TriggerStates_2 (2) +#define ASN_RRC_maxRAT_CapabilityContainers (8) +#define ASN_RRC_maxSimultaneousBands (32) +#define ASN_RRC_maxNrofSlotFormatCombinationsPerSet (512) +#define ASN_RRC_maxNrofSlotFormatCombinationsPerSet_1 (511) +#define ASN_RRC_maxNrofPUCCH_Resources (128) +#define ASN_RRC_maxNrofPUCCH_Resources_1 (127) +#define ASN_RRC_maxNrofPUCCH_ResourceSets (4) +#define ASN_RRC_maxNrofPUCCH_ResourceSets_1 (3) +#define ASN_RRC_maxNrofPUCCH_ResourcesPerSet (32) +#define ASN_RRC_maxNrofPUCCH_P0_PerSet (8) +#define ASN_RRC_maxNrofPUCCH_PathlossReferenceRSs (4) +#define ASN_RRC_maxNrofPUCCH_PathlossReferenceRSs_1 (3) +#define ASN_RRC_maxNrofP0_PUSCH_AlphaSets (30) +#define ASN_RRC_maxNrofP0_PUSCH_AlphaSets_1 (29) +#define ASN_RRC_maxNrofPUSCH_PathlossReferenceRSs (4) +#define ASN_RRC_maxNrofPUSCH_PathlossReferenceRSs_1 (3) +#define ASN_RRC_maxNrofNAICS_Entries (8) +#define ASN_RRC_maxBands (1024) +#define ASN_RRC_maxBandsMRDC (1280) +#define ASN_RRC_maxBandsEUTRA (256) +#define ASN_RRC_maxCellReport (8) +#define ASN_RRC_maxDRB (29) +#define ASN_RRC_maxFreq (8) +#define ASN_RRC_maxFreqIDC_MRDC (32) +#define ASN_RRC_maxNrofCandidateBeams (16) +#define ASN_RRC_maxNrofPCIsPerSMTC (64) +#define ASN_RRC_maxNrofQFIs (64) +#define ASN_RRC_maxNrOfSemiPersistentPUSCH_Triggers (64) +#define ASN_RRC_maxNrofSR_Resources (8) +#define ASN_RRC_maxNrofSlotFormatsPerCombination (256) +#define ASN_RRC_maxNrofSpatialRelationInfos (8) +#define ASN_RRC_maxNrofIndexesToReport (32) +#define ASN_RRC_maxNrofIndexesToReport2 (64) +#define ASN_RRC_maxNrofSSBs_1 (63) +#define ASN_RRC_maxNrofS_NSSAI (8) +#define ASN_RRC_maxNrofTCI_StatesPDCCH (64) +#define ASN_RRC_maxNrofTCI_States (128) +#define ASN_RRC_maxNrofTCI_States_1 (127) +#define ASN_RRC_maxNrofUL_Allocations (16) +#define ASN_RRC_maxQFI (63) +#define ASN_RRC_maxRA_CSIRS_Resources (96) +#define ASN_RRC_maxRA_OccasionsPerCSIRS (64) +#define ASN_RRC_maxRA_Occasions_1 (511) +#define ASN_RRC_maxRA_SSB_Resources (64) +#define ASN_RRC_maxSCSs (5) +#define ASN_RRC_maxSecondaryCellGroups (3) +#define ASN_RRC_maxNrofServingCellsEUTRA (32) +#define ASN_RRC_maxMBSFN_Allocations (8) +#define ASN_RRC_maxNrofMultiBands (8) +#define ASN_RRC_maxCellSFTD (3) +#define ASN_RRC_maxReportConfigId (64) +#define ASN_RRC_maxNrofCodebooks (16) +#define ASN_RRC_maxNrofCSI_RS_Resources (7) +#define ASN_RRC_maxNrofSRI_PUSCH_Mappings (16) +#define ASN_RRC_maxNrofSRI_PUSCH_Mappings_1 (15) +#define ASN_RRC_maxSIB (32) +#define ASN_RRC_maxSI_Message (32) +#define ASN_RRC_maxPO_perPF (4) +#define ASN_RRC_maxAccessCat_1 (63) +#define ASN_RRC_maxBarringInfoSet (8) +#define ASN_RRC_maxCellEUTRA (8) +#define ASN_RRC_maxEUTRA_Carrier (8) +#define ASN_RRC_maxPLMNIdentities (8) +#define ASN_RRC_maxDownlinkFeatureSets (1024) +#define ASN_RRC_maxUplinkFeatureSets (1024) +#define ASN_RRC_maxEUTRA_DL_FeatureSets (256) +#define ASN_RRC_maxEUTRA_UL_FeatureSets (256) +#define ASN_RRC_maxFeatureSetsPerBand (128) +#define ASN_RRC_maxPerCC_FeatureSets (1024) +#define ASN_RRC_maxFeatureSetCombinations (1024) +#define ASN_RRC_maxInterRAT_RSTD_Freq (3) +#define min_val_ASN_RRC_BandCombinationIndex (1) +#define max_val_ASN_RRC_BandCombinationIndex (65536) +#define min_val_ASN_RRC_BandEntryIndex (0) +#define max_val_ASN_RRC_BandEntryIndex (32) +#define min_val_ASN_RRC_FeatureSetEntryIndex (1) +#define max_val_ASN_RRC_FeatureSetEntryIndex (128) +#define ASN_RRC_maxMeasFreqsMN (32) +#define ASN_RRC_maxMeasFreqsSN (32) +#define ASN_RRC_maxMeasIdentitiesMN (62) +#define ASN_RRC_maxCellPrep (32) + + +#ifdef __cplusplus +} +#endif + +#endif /* _ASN_RRC_ASN_CONSTANT_H */ diff --git a/src/asn/rrc/CMakeLists.txt b/src/asn/rrc/CMakeLists.txt new file mode 100644 index 0000000..d400d4c --- /dev/null +++ b/src/asn/rrc/CMakeLists.txt @@ -0,0 +1,5 @@ +file(GLOB HDR_FILES *.h) +file(GLOB SRC_FILES *.c) + +add_library(asn-rrc ${HDR_FILES} ${SRC_FILES}) +target_link_libraries(asn-rrc asn-asn1c) diff --git a/src/binder.cpp b/src/binder.cpp new file mode 100644 index 0000000..f18e6f0 --- /dev/null +++ b/src/binder.cpp @@ -0,0 +1,113 @@ +// +// This file is a part of UERANSIM project. +// Copyright (c) 2023 ALİ GÜNGÖR. +// +// https://github.com/aligungr/UERANSIM/ +// See README, LICENSE, and CONTRIBUTING files for licensing details. +// + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +int (*real_socket)(int, int, int); +int (*real_setsockopt)(int, int, int, const void *, socklen_t); +int (*real_bind)(int, const struct sockaddr *, socklen_t); +int (*real_connect)(int, const struct sockaddr *, socklen_t); + +char *bind_addr_env; +unsigned long int bind_addr_saddr; +unsigned long int inaddr_any_saddr; +struct sockaddr_in local_sockaddr_in[1]; + +extern "C" void _init(void) +{ + const char *err; + + real_socket = reinterpret_cast(dlsym(RTLD_NEXT, "socket")); + if ((err = dlerror()) != nullptr) + { + fprintf(stderr, "dlsym (socket): %s\n", err); + } + + real_setsockopt = reinterpret_cast(dlsym(RTLD_NEXT, "setsockopt")); + if ((err = dlerror()) != nullptr) + { + fprintf(stderr, "dlsym (setsockopt): %s\n", err); + } + + real_bind = reinterpret_cast(dlsym(RTLD_NEXT, "bind")); + if ((err = dlerror()) != nullptr) + { + fprintf(stderr, "dlsym (bind): %s\n", err); + } + + real_connect = reinterpret_cast(dlsym(RTLD_NEXT, "connect")); + if ((err = dlerror()) != nullptr) + { + fprintf(stderr, "dlsym (connect): %s\n", err); + } + + inaddr_any_saddr = htonl(INADDR_ANY); + + bind_addr_env = getenv("UE_BIND_ADDR"); + + if (bind_addr_env) + { + bind_addr_saddr = inet_addr(bind_addr_env); + local_sockaddr_in->sin_family = AF_INET; + local_sockaddr_in->sin_addr.s_addr = bind_addr_saddr; + local_sockaddr_in->sin_port = htons(0); + } +} + +extern "C" int socket(int domain, int type, int protocol) +{ + return real_socket(domain, type, protocol); +} + +extern "C" int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen) +{ + return real_setsockopt(sockfd, level, optname, optval, optlen); +} + +extern "C" int bind(int fd, const struct sockaddr *sk, socklen_t sl) +{ + static struct sockaddr_in *lsk_in; + + lsk_in = (struct sockaddr_in *)sk; + + if ((lsk_in->sin_family == AF_INET) && (lsk_in->sin_addr.s_addr == inaddr_any_saddr) && (bind_addr_env)) + { + lsk_in->sin_addr.s_addr = bind_addr_saddr; + } + return real_bind(fd, sk, sl); +} + +extern "C" int connect(int fd, const struct sockaddr *sk, socklen_t sl) +{ + static struct sockaddr_in *rsk_in; + + rsk_in = (struct sockaddr_in *)sk; + + if ((rsk_in->sin_family == AF_INET) && (bind_addr_env)) + { + // HACK: DNS sorgusunu 127.0.0.53'e yaptığından eğer DNS sorgusu yapılıyorsa source IP değiştirmiyoruz. + // 127.0.0.53'in hex karşılığı: 0x3500007F (big endian) + // LATER NOTE: Aslında bunu DNS için değil genel olarak loopback'lerin hepsi için yapmak gerekir. + // Belki de rotalamada linux üzerinden ayar yapılırken specify ediliyordur. Bu kısma gerek + // kalmayabilir. + if (rsk_in->sin_addr.s_addr != 0x3500007F) + { + real_bind(fd, (struct sockaddr *)local_sockaddr_in, sizeof(struct sockaddr)); + } + } + return real_connect(fd, sk, sl); +} \ No newline at end of file diff --git a/src/cli.cpp b/src/cli.cpp new file mode 100644 index 0000000..25282d0 --- /dev/null +++ b/src/cli.cpp @@ -0,0 +1,309 @@ +// +// This file is a part of UERANSIM project. +// Copyright (c) 2023 ALİ GÜNGÖR. +// +// https://github.com/aligungr/UERANSIM/ +// See README, LICENSE, and CONTRIBUTING files for licensing details. +// + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +static struct Options +{ + bool dumpNodes{}; + std::string nodeName{}; + std::string directCmd{}; +} g_options{}; + +static std::set FindProcesses() +{ + std::set res{}; + for (const auto &file : io::GetEntries(cons::PROCESS_DIR)) + { + if (!io::IsRegularFile(file)) + { + auto name = io::GetStem(file); + if (!utils::IsNumeric(name)) + continue; + int pid = utils::ParseInt(name); + res.insert(pid); + } + } + return res; +} + +static uint16_t DiscoverNode(const std::string &node, int &skippedDueToVersion) +{ + if (!io::Exists(cons::PROC_TABLE_DIR)) + return 0; + + // Find all processes in the environment + auto processes = FindProcesses(); + + // Read and parse ProcTable entries. + std::unordered_map entries{}; + for (const auto &file : io::GetEntries(cons::PROC_TABLE_DIR)) + { + if (!io::IsRegularFile(file)) + continue; + std::string content = io::ReadAllText(file); + entries[file] = app::ProcTableEntry::Decode(content); + } + + uint16_t found = 0; + skippedDueToVersion = 0; + + for (auto &e : entries) + { + // If no such process, it means that this ProcTable file is outdated + // Therefore that file should be deleted + if (processes.count(e.second.pid) == 0) + { + io::Remove(e.first); + continue; + } + + // If searching node exists in this file, extract port number from it. + for (auto &n : e.second.nodes) + { + if (n == node) + { + if (e.second.major == cons::Major && e.second.minor == cons::Minor && e.second.patch == cons::Patch) + found = e.second.port; + else + skippedDueToVersion++; + } + } + } + + return found; +} + +static std::vector DumpNames() +{ + std::vector v{}; + + if (!io::Exists(cons::PROC_TABLE_DIR)) + return v; + + // Find all processes in the environment + auto processes = FindProcesses(); + + // Read and parse ProcTable entries. + std::unordered_map entries{}; + for (const auto &file : io::GetEntries(cons::PROC_TABLE_DIR)) + { + if (!io::IsRegularFile(file)) + continue; + std::string content = io::ReadAllText(file); + entries[file] = app::ProcTableEntry::Decode(content); + } + + for (auto &e : entries) + { + // If no such process, it means that this ProcTable file is outdated + // Therefore that file should be deleted + if (processes.count(e.second.pid) == 0) + { + io::Remove(e.first); + continue; + } + + for (auto &n : e.second.nodes) + v.push_back(n); + } + + std::sort(v.begin(), v.end()); + return v; +} + +static void ReadOptions(int argc, char **argv) +{ + opt::OptionsDescription desc{"UERANSIM", cons::Tag, "Command Line Interface", + cons::Owner, "nr-cli", {" [option...]", "--dump"}, + {}, true, false}; + + opt::OptionItem itemDump = {'d', "dump", "List all UE and gNBs in the environment", std::nullopt}; + opt::OptionItem itemExec = {'e', "exec", "Execute the given command directly without an interactive shell", + "command"}; + + desc.items.push_back(itemDump); + desc.items.push_back(itemExec); + + opt::OptionsResult opt{argc, argv, desc, false, nullptr}; + + g_options.dumpNodes = opt.hasFlag(itemDump); + + if (!g_options.dumpNodes) + { + if (opt.positionalCount() == 0) + { + opt.showError("Node name is expected"); + return; + } + if (opt.positionalCount() > 1) + { + opt.showError("Only one node name is expected"); + return; + } + + g_options.nodeName = opt.getPositional(0); + if (g_options.nodeName.size() < cons::MinNodeName) + { + opt.showError("Node name is too short"); + return; + } + if (g_options.nodeName.size() > cons::MaxNodeName) + { + opt.showError("Node name is too long"); + return; + } + + g_options.directCmd = opt.getOption(itemExec); + if (opt.hasFlag(itemExec) && g_options.directCmd.size() < 3) + { + opt.showError("Command is too short"); + return; + } + } +} + +static bool HandleMessage(const app::CliMessage &msg, bool isOneShot) +{ + if (msg.type == app::CliMessage::Type::ERROR) + { + std::cerr << "ERROR: " << msg.value << std::endl; + if (isOneShot) + exit(1); + return true; + } + + if (msg.type == app::CliMessage::Type::ECHO) + { + std::cout << msg.value << std::endl; + return true; + } + + if (msg.type == app::CliMessage::Type::RESULT) + { + std::cout << msg.value << std::endl; + if (isOneShot) + exit(0); + return true; + } + + return false; +} + +[[noreturn]] static void SendCommand(uint16_t port) +{ + app::CliServer server{}; + + if (g_options.directCmd.empty()) + { + while (true) + { + std::cout << "\x1b[1m"; + std::cout << std::string(92, '-') << std::endl; + std::string line{}; + bool isEof{}; + std::vector tokens{}; + if (!opt::ReadLine(std::cin, std::cout, line, tokens, isEof)) + { + if (isEof) + exit(0); + else + std::cout << "ERROR: Invalid command" << std::endl; + } + std::cout << "\x1b[0m"; + if (line.empty()) + continue; + + server.sendMessage( + app::CliMessage::Command(InetAddress{cons::CMD_SERVER_IP, port}, line, g_options.nodeName)); + + while (!HandleMessage(server.receiveMessage(), false)) + { + // empty + } + } + } + else + { + server.sendMessage( + app::CliMessage::Command(InetAddress{cons::CMD_SERVER_IP, port}, g_options.directCmd, g_options.nodeName)); + + while (true) + HandleMessage(server.receiveMessage(), true); + } +} + +int main(int argc, char **argv) +{ + ReadOptions(argc, argv); + + // NOTE: This does not guarantee showing the exact realtime status. + if (g_options.dumpNodes) + { + for (auto &n : DumpNames()) + std::cout << n << "\n"; + std::cout.flush(); + exit(0); + } + + if (g_options.nodeName.empty()) + { + std::cerr << "ERROR: No node name is specified" << std::endl; + exit(1); + } + + if (g_options.nodeName.size() > cons::MaxNodeName) + { + std::cerr << "ERROR: Node name is too long" << std::endl; + exit(1); + } + + if (g_options.nodeName.size() < cons::MinNodeName) + { + std::cerr << "ERROR: Node name is too short" << std::endl; + exit(1); + } + + uint16_t cmdPort{}; + int skippedDueToVersion{}; + + try + { + cmdPort = DiscoverNode(g_options.nodeName, skippedDueToVersion); + } + catch (const std::runtime_error &e) + { + throw std::runtime_error("Node discovery failure: " + std::string{e.what()}); + } + + if (cmdPort == 0) + { + std::cerr << "ERROR: No node found with name: " << g_options.nodeName << std::endl; + if (skippedDueToVersion > 0) + std::cerr << "WARNING: " << skippedDueToVersion + << " node(s) skipped due to version mismatch between the node and the CLI" << std::endl; + return 1; + } + + SendCommand(cmdPort); + return 0; +} \ No newline at end of file diff --git a/src/ext/CMakeLists.txt b/src/ext/CMakeLists.txt new file mode 100644 index 0000000..a7cee10 --- /dev/null +++ b/src/ext/CMakeLists.txt @@ -0,0 +1,9 @@ +file(GLOB_RECURSE H_FILES *.h) +file(GLOB_RECURSE C_FILES *.c) +file(GLOB_RECURSE HDR_FILES *.hpp) +file(GLOB_RECURSE SRC_FILES *.cpp) + +add_library(ext ${H_FILES} ${C_FILES} ${HDR_FILES} ${SRC_FILES}) + +target_compile_options(ext PRIVATE -Wall -Wextra -pedantic -Wno-unused-parameter) +target_include_directories(ext PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/src/ext/compact25519/c25519/README.md b/src/ext/compact25519/c25519/README.md new file mode 100644 index 0000000..e7587ed --- /dev/null +++ b/src/ext/compact25519/c25519/README.md @@ -0,0 +1,4 @@ +This directory contains [Daniel Beer's (Public Domain) c25519 implementation](https://www.dlbeer.co.nz/oss/c25519.html), +with some minor adjustments to add define guards. + +Version: 2017-10-05 \ No newline at end of file diff --git a/src/ext/compact25519/c25519/c25519.c b/src/ext/compact25519/c25519/c25519.c new file mode 100644 index 0000000..223ecf2 --- /dev/null +++ b/src/ext/compact25519/c25519/c25519.c @@ -0,0 +1,126 @@ +/* Curve25519 (Montgomery form) + * Daniel Beer , 18 Apr 2014 + * + * This file is in the public domain. + */ + +#include "c25519.h" + +#ifndef COMPACT_DISABLE_X25519 +const uint8_t c25519_base_x[F25519_SIZE] = {9}; + +/* Double an X-coordinate */ +static void xc_double(uint8_t *x3, uint8_t *z3, + const uint8_t *x1, const uint8_t *z1) +{ + /* Explicit formulas database: dbl-1987-m + * + * source 1987 Montgomery "Speeding the Pollard and elliptic + * curve methods of factorization", page 261, fourth display + * compute X3 = (X1^2-Z1^2)^2 + * compute Z3 = 4 X1 Z1 (X1^2 + a X1 Z1 + Z1^2) + */ + uint8_t x1sq[F25519_SIZE]; + uint8_t z1sq[F25519_SIZE]; + uint8_t x1z1[F25519_SIZE]; + uint8_t a[F25519_SIZE]; + + f25519_mul__distinct(x1sq, x1, x1); + f25519_mul__distinct(z1sq, z1, z1); + f25519_mul__distinct(x1z1, x1, z1); + + f25519_sub(a, x1sq, z1sq); + f25519_mul__distinct(x3, a, a); + + f25519_mul_c(a, x1z1, 486662); + f25519_add(a, x1sq, a); + f25519_add(a, z1sq, a); + f25519_mul__distinct(x1sq, x1z1, a); + f25519_mul_c(z3, x1sq, 4); +} + +/* Differential addition */ +static void xc_diffadd(uint8_t *x5, uint8_t *z5, + const uint8_t *x1, const uint8_t *z1, + const uint8_t *x2, const uint8_t *z2, + const uint8_t *x3, const uint8_t *z3) +{ + /* Explicit formulas database: dbl-1987-m3 + * + * source 1987 Montgomery "Speeding the Pollard and elliptic curve + * methods of factorization", page 261, fifth display, plus + * common-subexpression elimination + * compute A = X2+Z2 + * compute B = X2-Z2 + * compute C = X3+Z3 + * compute D = X3-Z3 + * compute DA = D A + * compute CB = C B + * compute X5 = Z1(DA+CB)^2 + * compute Z5 = X1(DA-CB)^2 + */ + uint8_t da[F25519_SIZE]; + uint8_t cb[F25519_SIZE]; + uint8_t a[F25519_SIZE]; + uint8_t b[F25519_SIZE]; + + f25519_add(a, x2, z2); + f25519_sub(b, x3, z3); /* D */ + f25519_mul__distinct(da, a, b); + + f25519_sub(b, x2, z2); + f25519_add(a, x3, z3); /* C */ + f25519_mul__distinct(cb, a, b); + + f25519_add(a, da, cb); + f25519_mul__distinct(b, a, a); + f25519_mul__distinct(x5, z1, b); + + f25519_sub(a, da, cb); + f25519_mul__distinct(b, a, a); + f25519_mul__distinct(z5, x1, b); +} + +void c25519_smult(uint8_t *result, const uint8_t *q, const uint8_t *e) +{ + /* Current point: P_m */ + uint8_t xm[F25519_SIZE]; + uint8_t zm[F25519_SIZE] = {1}; + + /* Predecessor: P_(m-1) */ + uint8_t xm1[F25519_SIZE] = {1}; + uint8_t zm1[F25519_SIZE] = {0}; + + int i; + + /* Note: bit 254 is assumed to be 1 */ + f25519_copy(xm, q); + + for (i = 253; i >= 0; i--) { + const int bit = (e[i >> 3] >> (i & 7)) & 1; + uint8_t xms[F25519_SIZE]; + uint8_t zms[F25519_SIZE]; + + /* From P_m and P_(m-1), compute P_(2m) and P_(2m-1) */ + xc_diffadd(xm1, zm1, q, f25519_one, xm, zm, xm1, zm1); + xc_double(xm, zm, xm, zm); + + /* Compute P_(2m+1) */ + xc_diffadd(xms, zms, xm1, zm1, xm, zm, q, f25519_one); + + /* Select: + * bit = 1 --> (P_(2m+1), P_(2m)) + * bit = 0 --> (P_(2m), P_(2m-1)) + */ + f25519_select(xm1, xm1, xm, bit); + f25519_select(zm1, zm1, zm, bit); + f25519_select(xm, xm, xms, bit); + f25519_select(zm, zm, zms, bit); + } + + /* Freeze out of projective coordinates */ + f25519_inv__distinct(zm1, zm); + f25519_mul__distinct(result, zm1, xm); + f25519_normalize(result); +} +#endif diff --git a/src/ext/compact25519/c25519/c25519.h b/src/ext/compact25519/c25519/c25519.h new file mode 100644 index 0000000..eeac849 --- /dev/null +++ b/src/ext/compact25519/c25519/c25519.h @@ -0,0 +1,49 @@ +/* Curve25519 (Montgomery form) + * Daniel Beer , 18 Apr 2014 + * + * This file is in the public domain. + */ + +#ifndef C25519_H_ +#define C25519_H_ + +#ifndef COMPACT_DISABLE_X25519 +#include +#include "f25519.h" + +/* Curve25519 has the equation over F(p = 2^255-19): + * + * y^2 = x^3 + 486662x^2 + x + * + * 486662 = 4A+2, where A = 121665. This is a Montgomery curve. + * + * For more information, see: + * + * Bernstein, D.J. (2006) "Curve25519: New Diffie-Hellman speed + * records". Document ID: 4230efdfa673480fc079449d90f322c0. + */ + +/* This is the site of a Curve25519 exponent (private key) */ +#define C25519_EXPONENT_SIZE 32 + +/* Having generated 32 random bytes, you should call this function to + * finalize the generated key. + */ +static inline void c25519_prepare(uint8_t *key) +{ + key[0] &= 0xf8; + key[31] &= 0x7f; + key[31] |= 0x40; +} + +/* X-coordinate of the base point */ +extern const uint8_t c25519_base_x[F25519_SIZE]; + +/* X-coordinate scalar multiply: given the X-coordinate of q, return the + * X-coordinate of e*q. + * + * result and q are field elements. e is an exponent. + */ +void c25519_smult(uint8_t *result, const uint8_t *q, const uint8_t *e); +#endif +#endif diff --git a/src/ext/compact25519/c25519/ed25519.c b/src/ext/compact25519/c25519/ed25519.c new file mode 100644 index 0000000..fb8cfa2 --- /dev/null +++ b/src/ext/compact25519/c25519/ed25519.c @@ -0,0 +1,323 @@ +/* Edwards curve operations + * Daniel Beer , 9 Jan 2014 + * + * This file is in the public domain. + */ + +#include "ed25519.h" + +#ifndef COMPACT_DISABLE_ED25519 + +/* Base point is (numbers wrapped): + * + * x = 151122213495354007725011514095885315114 + * 54012693041857206046113283949847762202 + * y = 463168356949264781694283940034751631413 + * 07993866256225615783033603165251855960 + * + * y is derived by transforming the original Montgomery base (u=9). x + * is the corresponding positive coordinate for the new curve equation. + * t is x*y. + */ +const struct ed25519_pt ed25519_base = { + .x = { + 0x1a, 0xd5, 0x25, 0x8f, 0x60, 0x2d, 0x56, 0xc9, + 0xb2, 0xa7, 0x25, 0x95, 0x60, 0xc7, 0x2c, 0x69, + 0x5c, 0xdc, 0xd6, 0xfd, 0x31, 0xe2, 0xa4, 0xc0, + 0xfe, 0x53, 0x6e, 0xcd, 0xd3, 0x36, 0x69, 0x21 + }, + .y = { + 0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66 + }, + .t = { + 0xa3, 0xdd, 0xb7, 0xa5, 0xb3, 0x8a, 0xde, 0x6d, + 0xf5, 0x52, 0x51, 0x77, 0x80, 0x9f, 0xf0, 0x20, + 0x7d, 0xe3, 0xab, 0x64, 0x8e, 0x4e, 0xea, 0x66, + 0x65, 0x76, 0x8b, 0xd7, 0x0f, 0x5f, 0x87, 0x67 + }, + .z = {1, 0} +}; + +const struct ed25519_pt ed25519_neutral = { + .x = {0}, + .y = {1, 0}, + .t = {0}, + .z = {1, 0} +}; + +/* Conversion to and from projective coordinates */ +void ed25519_project(struct ed25519_pt *p, + const uint8_t *x, const uint8_t *y) +{ + f25519_copy(p->x, x); + f25519_copy(p->y, y); + f25519_load(p->z, 1); + f25519_mul__distinct(p->t, x, y); +} + +void ed25519_unproject(uint8_t *x, uint8_t *y, + const struct ed25519_pt *p) +{ + uint8_t z1[F25519_SIZE]; + + f25519_inv__distinct(z1, p->z); + f25519_mul__distinct(x, p->x, z1); + f25519_mul__distinct(y, p->y, z1); + + f25519_normalize(x); + f25519_normalize(y); +} + +/* Compress/uncompress points. We compress points by storing the x + * coordinate and the parity of the y coordinate. + * + * Rearranging the curve equation, we obtain explicit formulae for the + * coordinates: + * + * x = sqrt((y^2-1) / (1+dy^2)) + * y = sqrt((x^2+1) / (1-dx^2)) + * + * Where d = (-121665/121666), or: + * + * d = 370957059346694393431380835087545651895 + * 42113879843219016388785533085940283555 + */ + +static const uint8_t ed25519_d[F25519_SIZE] = { + 0xa3, 0x78, 0x59, 0x13, 0xca, 0x4d, 0xeb, 0x75, + 0xab, 0xd8, 0x41, 0x41, 0x4d, 0x0a, 0x70, 0x00, + 0x98, 0xe8, 0x79, 0x77, 0x79, 0x40, 0xc7, 0x8c, + 0x73, 0xfe, 0x6f, 0x2b, 0xee, 0x6c, 0x03, 0x52 +}; + +void ed25519_pack(uint8_t *c, const uint8_t *x, const uint8_t *y) +{ + uint8_t tmp[F25519_SIZE]; + uint8_t parity; + + f25519_copy(tmp, x); + f25519_normalize(tmp); + parity = (tmp[0] & 1) << 7; + + f25519_copy(c, y); + f25519_normalize(c); + c[31] |= parity; +} + +uint8_t ed25519_try_unpack(uint8_t *x, uint8_t *y, const uint8_t *comp) +{ + const int parity = comp[31] >> 7; + uint8_t a[F25519_SIZE]; + uint8_t b[F25519_SIZE]; + uint8_t c[F25519_SIZE]; + + /* Unpack y */ + f25519_copy(y, comp); + y[31] &= 127; + + /* Compute c = y^2 */ + f25519_mul__distinct(c, y, y); + + /* Compute b = (1+dy^2)^-1 */ + f25519_mul__distinct(b, c, ed25519_d); + f25519_add(a, b, f25519_one); + f25519_inv__distinct(b, a); + + /* Compute a = y^2-1 */ + f25519_sub(a, c, f25519_one); + + /* Compute c = a*b = (y^2-1)/(1-dy^2) */ + f25519_mul__distinct(c, a, b); + + /* Compute a, b = +/-sqrt(c), if c is square */ + f25519_sqrt(a, c); + f25519_neg(b, a); + + /* Select one of them, based on the compressed parity bit */ + f25519_select(x, a, b, (a[0] ^ parity) & 1); + + /* Verify that x^2 = c */ + f25519_mul__distinct(a, x, x); + f25519_normalize(a); + f25519_normalize(c); + + return f25519_eq(a, c); +} + +/* k = 2d */ +static const uint8_t ed25519_k[F25519_SIZE] = { + 0x59, 0xf1, 0xb2, 0x26, 0x94, 0x9b, 0xd6, 0xeb, + 0x56, 0xb1, 0x83, 0x82, 0x9a, 0x14, 0xe0, 0x00, + 0x30, 0xd1, 0xf3, 0xee, 0xf2, 0x80, 0x8e, 0x19, + 0xe7, 0xfc, 0xdf, 0x56, 0xdc, 0xd9, 0x06, 0x24 +}; + +void ed25519_add(struct ed25519_pt *r, + const struct ed25519_pt *p1, const struct ed25519_pt *p2) +{ + /* Explicit formulas database: add-2008-hwcd-3 + * + * source 2008 Hisil--Wong--Carter--Dawson, + * http://eprint.iacr.org/2008/522, Section 3.1 + * appliesto extended-1 + * parameter k + * assume k = 2 d + * compute A = (Y1-X1)(Y2-X2) + * compute B = (Y1+X1)(Y2+X2) + * compute C = T1 k T2 + * compute D = Z1 2 Z2 + * compute E = B - A + * compute F = D - C + * compute G = D + C + * compute H = B + A + * compute X3 = E F + * compute Y3 = G H + * compute T3 = E H + * compute Z3 = F G + */ + uint8_t a[F25519_SIZE]; + uint8_t b[F25519_SIZE]; + uint8_t c[F25519_SIZE]; + uint8_t d[F25519_SIZE]; + uint8_t e[F25519_SIZE]; + uint8_t f[F25519_SIZE]; + uint8_t g[F25519_SIZE]; + uint8_t h[F25519_SIZE]; + + /* A = (Y1-X1)(Y2-X2) */ + f25519_sub(c, p1->y, p1->x); + f25519_sub(d, p2->y, p2->x); + f25519_mul__distinct(a, c, d); + + /* B = (Y1+X1)(Y2+X2) */ + f25519_add(c, p1->y, p1->x); + f25519_add(d, p2->y, p2->x); + f25519_mul__distinct(b, c, d); + + /* C = T1 k T2 */ + f25519_mul__distinct(d, p1->t, p2->t); + f25519_mul__distinct(c, d, ed25519_k); + + /* D = Z1 2 Z2 */ + f25519_mul__distinct(d, p1->z, p2->z); + f25519_add(d, d, d); + + /* E = B - A */ + f25519_sub(e, b, a); + + /* F = D - C */ + f25519_sub(f, d, c); + + /* G = D + C */ + f25519_add(g, d, c); + + /* H = B + A */ + f25519_add(h, b, a); + + /* X3 = E F */ + f25519_mul__distinct(r->x, e, f); + + /* Y3 = G H */ + f25519_mul__distinct(r->y, g, h); + + /* T3 = E H */ + f25519_mul__distinct(r->t, e, h); + + /* Z3 = F G */ + f25519_mul__distinct(r->z, f, g); +} + +void ed25519_double(struct ed25519_pt *r, const struct ed25519_pt *p) +{ + /* Explicit formulas database: dbl-2008-hwcd + * + * source 2008 Hisil--Wong--Carter--Dawson, + * http://eprint.iacr.org/2008/522, Section 3.3 + * compute A = X1^2 + * compute B = Y1^2 + * compute C = 2 Z1^2 + * compute D = a A + * compute E = (X1+Y1)^2-A-B + * compute G = D + B + * compute F = G - C + * compute H = D - B + * compute X3 = E F + * compute Y3 = G H + * compute T3 = E H + * compute Z3 = F G + */ + uint8_t a[F25519_SIZE]; + uint8_t b[F25519_SIZE]; + uint8_t c[F25519_SIZE]; + uint8_t e[F25519_SIZE]; + uint8_t f[F25519_SIZE]; + uint8_t g[F25519_SIZE]; + uint8_t h[F25519_SIZE]; + + /* A = X1^2 */ + f25519_mul__distinct(a, p->x, p->x); + + /* B = Y1^2 */ + f25519_mul__distinct(b, p->y, p->y); + + /* C = 2 Z1^2 */ + f25519_mul__distinct(c, p->z, p->z); + f25519_add(c, c, c); + + /* D = a A (alter sign) */ + /* E = (X1+Y1)^2-A-B */ + f25519_add(f, p->x, p->y); + f25519_mul__distinct(e, f, f); + f25519_sub(e, e, a); + f25519_sub(e, e, b); + + /* G = D + B */ + f25519_sub(g, b, a); + + /* F = G - C */ + f25519_sub(f, g, c); + + /* H = D - B */ + f25519_neg(h, b); + f25519_sub(h, h, a); + + /* X3 = E F */ + f25519_mul__distinct(r->x, e, f); + + /* Y3 = G H */ + f25519_mul__distinct(r->y, g, h); + + /* T3 = E H */ + f25519_mul__distinct(r->t, e, h); + + /* Z3 = F G */ + f25519_mul__distinct(r->z, f, g); +} + +void ed25519_smult(struct ed25519_pt *r_out, const struct ed25519_pt *p, + const uint8_t *e) +{ + struct ed25519_pt r; + int i; + + ed25519_copy(&r, &ed25519_neutral); + + for (i = 255; i >= 0; i--) { + const uint8_t bit = (e[i >> 3] >> (i & 7)) & 1; + struct ed25519_pt s; + + ed25519_double(&r, &r); + ed25519_add(&s, &r, p); + + f25519_select(r.x, r.x, s.x, bit); + f25519_select(r.y, r.y, s.y, bit); + f25519_select(r.z, r.z, s.z, bit); + f25519_select(r.t, r.t, s.t, bit); + } + + ed25519_copy(r_out, &r); +} +#endif diff --git a/src/ext/compact25519/c25519/ed25519.h b/src/ext/compact25519/c25519/ed25519.h new file mode 100644 index 0000000..0e63467 --- /dev/null +++ b/src/ext/compact25519/c25519/ed25519.h @@ -0,0 +1,84 @@ +/* Edwards curve operations + * Daniel Beer , 9 Jan 2014 + * + * This file is in the public domain. + */ + +#ifndef ED25519_H_ +#define ED25519_H_ + +#ifndef COMPACT_DISABLE_ED25519 +#include "f25519.h" + +/* This is not the Ed25519 signature system. Rather, we're implementing + * basic operations on the twisted Edwards curve over (Z mod 2^255-19): + * + * -x^2 + y^2 = 1 - (121665/121666)x^2y^2 + * + * With the positive-x base point y = 4/5. + * + * These functions will not leak secret data through timing. + * + * For more information, see: + * + * Bernstein, D.J. & Lange, T. (2007) "Faster addition and doubling on + * elliptic curves". Document ID: 95616567a6ba20f575c5f25e7cebaf83. + * + * Hisil, H. & Wong, K K. & Carter, G. & Dawson, E. (2008) "Twisted + * Edwards curves revisited". Advances in Cryptology, ASIACRYPT 2008, + * Vol. 5350, pp. 326-343. + */ + +/* Projective coordinates */ +struct ed25519_pt { + uint8_t x[F25519_SIZE]; + uint8_t y[F25519_SIZE]; + uint8_t t[F25519_SIZE]; + uint8_t z[F25519_SIZE]; +}; + +extern const struct ed25519_pt ed25519_base; +extern const struct ed25519_pt ed25519_neutral; + +/* Convert between projective and affine coordinates (x/y in F25519) */ +void ed25519_project(struct ed25519_pt *p, + const uint8_t *x, const uint8_t *y); + +void ed25519_unproject(uint8_t *x, uint8_t *y, + const struct ed25519_pt *p); + +/* Compress/uncompress points. try_unpack() will check that the + * compressed point is on the curve, returning 1 if the unpacked point + * is valid, and 0 otherwise. + */ +#define ED25519_PACK_SIZE F25519_SIZE + +void ed25519_pack(uint8_t *c, const uint8_t *x, const uint8_t *y); +uint8_t ed25519_try_unpack(uint8_t *x, uint8_t *y, const uint8_t *c); + +/* Add, double and scalar multiply */ +#define ED25519_EXPONENT_SIZE 32 + +/* Prepare an exponent by clamping appropriate bits */ +static inline void ed25519_prepare(uint8_t *e) +{ + e[0] &= 0xf8; + e[31] &= 0x7f; + e[31] |= 0x40; +} + +/* Order of the group generated by the base point */ +static inline void ed25519_copy(struct ed25519_pt *dst, + const struct ed25519_pt *src) +{ + memcpy(dst, src, sizeof(*dst)); +} + +void ed25519_add(struct ed25519_pt *r, + const struct ed25519_pt *a, const struct ed25519_pt *b); +void ed25519_double(struct ed25519_pt *r, const struct ed25519_pt *a); +void ed25519_smult(struct ed25519_pt *r, const struct ed25519_pt *a, + const uint8_t *e); + +#endif +#endif diff --git a/src/ext/compact25519/c25519/edsign.c b/src/ext/compact25519/c25519/edsign.c new file mode 100644 index 0000000..cee3538 --- /dev/null +++ b/src/ext/compact25519/c25519/edsign.c @@ -0,0 +1,171 @@ +/* Edwards curve signature system + * Daniel Beer , 22 Apr 2014 + * + * This file is in the public domain. + */ + +#include "ed25519.h" + +#ifndef COMPACT_DISABLE_ED25519 +#include "sha512.h" +#include "fprime.h" +#include "edsign.h" + +#define EXPANDED_SIZE 64 + +static const uint8_t ed25519_order[FPRIME_SIZE] = { + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, + 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 +}; + +static void expand_key(uint8_t *expanded, const uint8_t *secret) +{ + struct sha512_state s; + + sha512_init(&s); + sha512_final(&s, secret, EDSIGN_SECRET_KEY_SIZE); + sha512_get(&s, expanded, 0, EXPANDED_SIZE); + ed25519_prepare(expanded); +} + +static uint8_t upp(struct ed25519_pt *p, const uint8_t *packed) +{ + uint8_t x[F25519_SIZE]; + uint8_t y[F25519_SIZE]; + uint8_t ok = ed25519_try_unpack(x, y, packed); + + ed25519_project(p, x, y); + return ok; +} + +static void pp(uint8_t *packed, const struct ed25519_pt *p) +{ + uint8_t x[F25519_SIZE]; + uint8_t y[F25519_SIZE]; + + ed25519_unproject(x, y, p); + ed25519_pack(packed, x, y); +} + +static void sm_pack(uint8_t *r, const uint8_t *k) +{ + struct ed25519_pt p; + + ed25519_smult(&p, &ed25519_base, k); + pp(r, &p); +} + +void edsign_sec_to_pub(uint8_t *pub, const uint8_t *secret) +{ + uint8_t expanded[EXPANDED_SIZE]; + + expand_key(expanded, secret); + sm_pack(pub, expanded); +} + +static void hash_with_prefix(uint8_t *out_fp, + uint8_t *init_block, unsigned int prefix_size, + const uint8_t *message, size_t len) +{ + struct sha512_state s; + + sha512_init(&s); + + if (len < SHA512_BLOCK_SIZE && len + prefix_size < SHA512_BLOCK_SIZE) { + memcpy(init_block + prefix_size, message, len); + sha512_final(&s, init_block, len + prefix_size); + } else { + size_t i; + + memcpy(init_block + prefix_size, message, + SHA512_BLOCK_SIZE - prefix_size); + sha512_block(&s, init_block); + + for (i = SHA512_BLOCK_SIZE - prefix_size; + i + SHA512_BLOCK_SIZE <= len; + i += SHA512_BLOCK_SIZE) + sha512_block(&s, message + i); + + sha512_final(&s, message + i, len + prefix_size); + } + + sha512_get(&s, init_block, 0, SHA512_HASH_SIZE); + fprime_from_bytes(out_fp, init_block, SHA512_HASH_SIZE, ed25519_order); +} + +static void generate_k(uint8_t *k, const uint8_t *kgen_key, + const uint8_t *message, size_t len) +{ + uint8_t block[SHA512_BLOCK_SIZE]; + + memcpy(block, kgen_key, 32); + hash_with_prefix(k, block, 32, message, len); +} + +static void hash_message(uint8_t *z, const uint8_t *r, const uint8_t *a, + const uint8_t *m, size_t len) +{ + uint8_t block[SHA512_BLOCK_SIZE]; + + memcpy(block, r, 32); + memcpy(block + 32, a, 32); + hash_with_prefix(z, block, 64, m, len); +} + +void edsign_sign(uint8_t *signature, const uint8_t *pub, + const uint8_t *secret, + const uint8_t *message, size_t len) +{ + uint8_t expanded[EXPANDED_SIZE]; + uint8_t e[FPRIME_SIZE]; + uint8_t s[FPRIME_SIZE]; + uint8_t k[FPRIME_SIZE]; + uint8_t z[FPRIME_SIZE]; + + expand_key(expanded, secret); + + /* Generate k and R = kB */ + generate_k(k, expanded + 32, message, len); + sm_pack(signature, k); + + /* Compute z = H(R, A, M) */ + hash_message(z, signature, pub, message, len); + + /* Obtain e */ + fprime_from_bytes(e, expanded, 32, ed25519_order); + + /* Compute s = ze + k */ + fprime_mul(s, z, e, ed25519_order); + fprime_add(s, k, ed25519_order); + memcpy(signature + 32, s, 32); +} + +uint8_t edsign_verify(const uint8_t *signature, const uint8_t *pub, + const uint8_t *message, size_t len) +{ + struct ed25519_pt p; + struct ed25519_pt q; + uint8_t lhs[F25519_SIZE]; + uint8_t rhs[F25519_SIZE]; + uint8_t z[FPRIME_SIZE]; + uint8_t ok = 1; + + /* Compute z = H(R, A, M) */ + hash_message(z, signature, pub, message, len); + + /* sB = (ze + k)B = ... */ + sm_pack(lhs, signature + 32); + + /* ... = zA + R */ + ok &= upp(&p, pub); + ed25519_smult(&p, &p, z); + ok &= upp(&q, signature); + ed25519_add(&p, &p, &q); + pp(rhs, &p); + + /* Equal? */ + return ok & f25519_eq(lhs, rhs); +} +#endif diff --git a/src/ext/compact25519/c25519/edsign.h b/src/ext/compact25519/c25519/edsign.h new file mode 100644 index 0000000..cbdf904 --- /dev/null +++ b/src/ext/compact25519/c25519/edsign.h @@ -0,0 +1,53 @@ +/* Edwards curve signature system + * Daniel Beer , 22 Apr 2014 + * + * This file is in the public domain. + */ + +#ifndef EDSIGN_H_ +#define EDSIGN_H_ + +#ifndef COMPACT_DISABLE_ED25519 +#include +#include + +/* This is the Ed25519 signature system, as described in: + * + * Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin + * Yang. High-speed high-security signatures. Journal of Cryptographic + * Engineering 2 (2012), 77-89. Document ID: + * a1a62a2f76d23f65d622484ddd09caf8. URL: + * http://cr.yp.to/papers.html#ed25519. Date: 2011.09.26. + * + * The format and calculation of signatures is compatible with the + * Ed25519 implementation in SUPERCOP. Note, however, that our secret + * keys are half the size: we don't store a copy of the public key in + * the secret key (we generate it on demand). + */ + +/* Any string of 32 random bytes is a valid secret key. There is no + * clamping of bits, because we don't use the key directly as an + * exponent (the exponent is derived from part of a key expansion). + */ +#define EDSIGN_SECRET_KEY_SIZE 32 + +/* Given a secret key, produce the public key (a packed Edwards-curve + * point). + */ +#define EDSIGN_PUBLIC_KEY_SIZE 32 + +void edsign_sec_to_pub(uint8_t *pub, const uint8_t *secret); + +/* Produce a signature for a message. */ +#define EDSIGN_SIGNATURE_SIZE 64 + +void edsign_sign(uint8_t *signature, const uint8_t *pub, + const uint8_t *secret, + const uint8_t *message, size_t len); + +/* Verify a message signature. Returns non-zero if ok. */ +uint8_t edsign_verify(const uint8_t *signature, const uint8_t *pub, + const uint8_t *message, size_t len); + +#endif +#endif diff --git a/src/ext/compact25519/c25519/f25519.c b/src/ext/compact25519/c25519/f25519.c new file mode 100644 index 0000000..c6e1bff --- /dev/null +++ b/src/ext/compact25519/c25519/f25519.c @@ -0,0 +1,330 @@ +/* Arithmetic mod p = 2^255-19 + * Daniel Beer , 5 Jan 2014 + * + * This file is in the public domain. + */ + +#include "f25519.h" + +#ifdef FULL_C25519_CODE +const uint8_t f25519_zero[F25519_SIZE] = {0}; +#endif +const uint8_t f25519_one[F25519_SIZE] = {1}; + +void f25519_load(uint8_t *x, uint32_t c) +{ + unsigned int i; + + for (i = 0; i < sizeof(c); i++) { + x[i] = c; + c >>= 8; + } + + for (; i < F25519_SIZE; i++) + x[i] = 0; +} + +void f25519_normalize(uint8_t *x) +{ + uint8_t minusp[F25519_SIZE]; + uint16_t c; + int i; + + /* Reduce using 2^255 = 19 mod p */ + c = (x[31] >> 7) * 19; + x[31] &= 127; + + for (i = 0; i < F25519_SIZE; i++) { + c += x[i]; + x[i] = c; + c >>= 8; + } + + /* The number is now less than 2^255 + 18, and therefore less than + * 2p. Try subtracting p, and conditionally load the subtracted + * value if underflow did not occur. + */ + c = 19; + + for (i = 0; i + 1 < F25519_SIZE; i++) { + c += x[i]; + minusp[i] = c; + c >>= 8; + } + + c += ((uint16_t)x[i]) - 128; + minusp[31] = c; + + /* Load x-p if no underflow */ + f25519_select(x, minusp, x, (c >> 15) & 1); +} + +uint8_t f25519_eq(const uint8_t *x, const uint8_t *y) +{ + uint8_t sum = 0; + int i; + + for (i = 0; i < F25519_SIZE; i++) + sum |= x[i] ^ y[i]; + + sum |= (sum >> 4); + sum |= (sum >> 2); + sum |= (sum >> 1); + + return (sum ^ 1) & 1; +} + +void f25519_select(uint8_t *dst, + const uint8_t *zero, const uint8_t *one, + uint8_t condition) +{ + const uint8_t mask = -condition; + int i; + + for (i = 0; i < F25519_SIZE; i++) + dst[i] = zero[i] ^ (mask & (one[i] ^ zero[i])); +} + +void f25519_add(uint8_t *r, const uint8_t *a, const uint8_t *b) +{ + uint16_t c = 0; + int i; + + /* Add */ + for (i = 0; i < F25519_SIZE; i++) { + c >>= 8; + c += ((uint16_t)a[i]) + ((uint16_t)b[i]); + r[i] = c; + } + + /* Reduce with 2^255 = 19 mod p */ + r[31] &= 127; + c = (c >> 7) * 19; + + for (i = 0; i < F25519_SIZE; i++) { + c += r[i]; + r[i] = c; + c >>= 8; + } +} + +void f25519_sub(uint8_t *r, const uint8_t *a, const uint8_t *b) +{ + uint32_t c = 0; + int i; + + /* Calculate a + 2p - b, to avoid underflow */ + c = 218; + for (i = 0; i + 1 < F25519_SIZE; i++) { + c += 65280 + ((uint32_t)a[i]) - ((uint32_t)b[i]); + r[i] = c; + c >>= 8; + } + + c += ((uint32_t)a[31]) - ((uint32_t)b[31]); + r[31] = c & 127; + c = (c >> 7) * 19; + + for (i = 0; i < F25519_SIZE; i++) { + c += r[i]; + r[i] = c; + c >>= 8; + } +} + +void f25519_neg(uint8_t *r, const uint8_t *a) +{ + uint32_t c = 0; + int i; + + /* Calculate 2p - a, to avoid underflow */ + c = 218; + for (i = 0; i + 1 < F25519_SIZE; i++) { + c += 65280 - ((uint32_t)a[i]); + r[i] = c; + c >>= 8; + } + + c -= ((uint32_t)a[31]); + r[31] = c & 127; + c = (c >> 7) * 19; + + for (i = 0; i < F25519_SIZE; i++) { + c += r[i]; + r[i] = c; + c >>= 8; + } +} + +void f25519_mul__distinct(uint8_t *r, const uint8_t *a, const uint8_t *b) +{ + uint32_t c = 0; + int i; + + for (i = 0; i < F25519_SIZE; i++) { + int j; + + c >>= 8; + for (j = 0; j <= i; j++) + c += ((uint32_t)a[j]) * ((uint32_t)b[i - j]); + + for (; j < F25519_SIZE; j++) + c += ((uint32_t)a[j]) * + ((uint32_t)b[i + F25519_SIZE - j]) * 38; + + r[i] = c; + } + + r[31] &= 127; + c = (c >> 7) * 19; + + for (i = 0; i < F25519_SIZE; i++) { + c += r[i]; + r[i] = c; + c >>= 8; + } +} + +#ifdef FULL_C25519_CODE +void f25519_mul(uint8_t *r, const uint8_t *a, const uint8_t *b) +{ + uint8_t tmp[F25519_SIZE]; + + f25519_mul__distinct(tmp, a, b); + f25519_copy(r, tmp); +} +#endif + +void f25519_mul_c(uint8_t *r, const uint8_t *a, uint32_t b) +{ + uint32_t c = 0; + int i; + + for (i = 0; i < F25519_SIZE; i++) { + c >>= 8; + c += b * ((uint32_t)a[i]); + r[i] = c; + } + + r[31] &= 127; + c >>= 7; + c *= 19; + + for (i = 0; i < F25519_SIZE; i++) { + c += r[i]; + r[i] = c; + c >>= 8; + } +} + +void f25519_inv__distinct(uint8_t *r, const uint8_t *x) +{ + uint8_t s[F25519_SIZE]; + int i; + + /* This is a prime field, so by Fermat's little theorem: + * + * x^(p-1) = 1 mod p + * + * Therefore, raise to (p-2) = 2^255-21 to get a multiplicative + * inverse. + * + * This is a 255-bit binary number with the digits: + * + * 11111111... 01011 + * + * We compute the result by the usual binary chain, but + * alternate between keeping the accumulator in r and s, so as + * to avoid copying temporaries. + */ + + /* 1 1 */ + f25519_mul__distinct(s, x, x); + f25519_mul__distinct(r, s, x); + + /* 1 x 248 */ + for (i = 0; i < 248; i++) { + f25519_mul__distinct(s, r, r); + f25519_mul__distinct(r, s, x); + } + + /* 0 */ + f25519_mul__distinct(s, r, r); + + /* 1 */ + f25519_mul__distinct(r, s, s); + f25519_mul__distinct(s, r, x); + + /* 0 */ + f25519_mul__distinct(r, s, s); + + /* 1 */ + f25519_mul__distinct(s, r, r); + f25519_mul__distinct(r, s, x); + + /* 1 */ + f25519_mul__distinct(s, r, r); + f25519_mul__distinct(r, s, x); +} + +#ifdef FULL_C25519_CODE +void f25519_inv(uint8_t *r, const uint8_t *x) +{ + uint8_t tmp[F25519_SIZE]; + + f25519_inv__distinct(tmp, x); + f25519_copy(r, tmp); +} +#endif + +/* Raise x to the power of (p-5)/8 = 2^252-3, using s for temporary + * storage. + */ +static void exp2523(uint8_t *r, const uint8_t *x, uint8_t *s) +{ + int i; + + /* This number is a 252-bit number with the binary expansion: + * + * 111111... 01 + */ + + /* 1 1 */ + f25519_mul__distinct(r, x, x); + f25519_mul__distinct(s, r, x); + + /* 1 x 248 */ + for (i = 0; i < 248; i++) { + f25519_mul__distinct(r, s, s); + f25519_mul__distinct(s, r, x); + } + + /* 0 */ + f25519_mul__distinct(r, s, s); + + /* 1 */ + f25519_mul__distinct(s, r, r); + f25519_mul__distinct(r, s, x); +} + +void f25519_sqrt(uint8_t *r, const uint8_t *a) +{ + uint8_t v[F25519_SIZE]; + uint8_t i[F25519_SIZE]; + uint8_t x[F25519_SIZE]; + uint8_t y[F25519_SIZE]; + + /* v = (2a)^((p-5)/8) [x = 2a] */ + f25519_mul_c(x, a, 2); + exp2523(v, x, y); + + /* i = 2av^2 - 1 */ + f25519_mul__distinct(y, v, v); + f25519_mul__distinct(i, x, y); + f25519_load(y, 1); + f25519_sub(i, i, y); + + /* r = avi */ + f25519_mul__distinct(x, v, a); + f25519_mul__distinct(r, x, i); +} diff --git a/src/ext/compact25519/c25519/f25519.h b/src/ext/compact25519/c25519/f25519.h new file mode 100644 index 0000000..bb70fdc --- /dev/null +++ b/src/ext/compact25519/c25519/f25519.h @@ -0,0 +1,98 @@ +/* Arithmetic mod p = 2^255-19 + * Daniel Beer , 8 Jan 2014 + * + * This file is in the public domain. + */ + +#ifndef F25519_H_ +#define F25519_H_ + +#include +#include + +/* Field elements are represented as little-endian byte strings. All + * operations have timings which are independent of input data, so they + * can be safely used for cryptography. + * + * Computation is performed on un-normalized elements. These are byte + * strings which fall into the range 0 <= x < 2p. Use f25519_normalize() + * to convert to a value 0 <= x < p. + * + * Elements received from the outside may greater even than 2p. + * f25519_normalize() will correctly deal with these numbers too. + */ +#define F25519_SIZE 32 + +/* Identity constants */ +#ifdef FULL_C25519_CODE +extern const uint8_t f25519_zero[F25519_SIZE]; +#endif +extern const uint8_t f25519_one[F25519_SIZE]; + +/* Load a small constant */ +void f25519_load(uint8_t *x, uint32_t c); + +/* Copy two points */ +static inline void f25519_copy(uint8_t *x, const uint8_t *a) +{ + memcpy(x, a, F25519_SIZE); +} + +/* Normalize a field point x < 2*p by subtracting p if necessary */ +void f25519_normalize(uint8_t *x); + +/* Compare two field points in constant time. Return one if equal, zero + * otherwise. This should be performed only on normalized values. + */ +uint8_t f25519_eq(const uint8_t *x, const uint8_t *y); + +/* Conditional copy. If condition == 0, then zero is copied to dst. If + * condition == 1, then one is copied to dst. Any other value results in + * undefined behaviour. + */ +void f25519_select(uint8_t *dst, + const uint8_t *zero, const uint8_t *one, + uint8_t condition); + +/* Add/subtract two field points. The three pointers are not required to + * be distinct. + */ +void f25519_add(uint8_t *r, const uint8_t *a, const uint8_t *b); +void f25519_sub(uint8_t *r, const uint8_t *a, const uint8_t *b); + +/* Unary negation */ +void f25519_neg(uint8_t *r, const uint8_t *a); + +/* Multiply two field points. The __distinct variant is used when r is + * known to be in a different location to a and b. + */ +#ifdef FULL_C25519_CODE +void f25519_mul(uint8_t *r, const uint8_t *a, const uint8_t *b); +#endif +void f25519_mul__distinct(uint8_t *r, const uint8_t *a, const uint8_t *b); + +/* Multiply a point by a small constant. The two pointers are not + * required to be distinct. + * + * The constant must be less than 2^24. + */ +void f25519_mul_c(uint8_t *r, const uint8_t *a, uint32_t b); + +/* Take the reciprocal of a field point. The __distinct variant is used + * when r is known to be in a different location to x. + */ +#ifdef FULL_C25519_CODE +void f25519_inv(uint8_t *r, const uint8_t *x); +#endif +void f25519_inv__distinct(uint8_t *r, const uint8_t *x); + +/* Compute one of the square roots of the field element, if the element + * is square. The other square is -r. + * + * If the input is not square, the returned value is a valid field + * element, but not the correct answer. If you don't already know that + * your element is square, you should square the return value and test. + */ +void f25519_sqrt(uint8_t *r, const uint8_t *x); + +#endif diff --git a/src/ext/compact25519/c25519/fprime.c b/src/ext/compact25519/c25519/fprime.c new file mode 100644 index 0000000..c1ea4b3 --- /dev/null +++ b/src/ext/compact25519/c25519/fprime.c @@ -0,0 +1,226 @@ +/* Arithmetic in prime fields + * Daniel Beer , 10 Jan 2014 + * + * This file is in the public domain. + */ + +#include "fprime.h" + +#ifndef COMPACT_DISABLE_ED25519 +#ifdef FULL_C25519_CODE +const uint8_t fprime_zero[FPRIME_SIZE] = {0}; +const uint8_t fprime_one[FPRIME_SIZE] = {1}; +#endif + +static void raw_add(uint8_t *x, const uint8_t *p) +{ + uint16_t c = 0; + int i; + + for (i = 0; i < FPRIME_SIZE; i++) { + c += ((uint16_t)x[i]) + ((uint16_t)p[i]); + x[i] = c; + c >>= 8; + } +} + +static void raw_try_sub(uint8_t *x, const uint8_t *p) +{ + uint8_t minusp[FPRIME_SIZE]; + uint16_t c = 0; + int i; + + for (i = 0; i < FPRIME_SIZE; i++) { + c = ((uint16_t)x[i]) - ((uint16_t)p[i]) - c; + minusp[i] = c; + c = (c >> 8) & 1; + } + + fprime_select(x, minusp, x, c); +} + +/* Warning: this function is variable-time */ +static int prime_msb(const uint8_t *p) +{ + int i; + uint8_t x; + + for (i = FPRIME_SIZE - 1; i >= 0; i--) + if (p[i]) + break; + + x = p[i]; + i <<= 3; + + while (x) { + x >>= 1; + i++; + } + + return i - 1; +} + +/* Warning: this function may be variable-time in the argument n */ +static void shift_n_bits(uint8_t *x, int n) +{ + uint16_t c = 0; + int i; + + for (i = 0; i < FPRIME_SIZE; i++) { + c |= ((uint16_t)x[i]) << n; + x[i] = c; + c >>= 8; + } +} + +#ifdef FULL_C25519_CODE +void fprime_load(uint8_t *x, uint32_t c) +{ + unsigned int i; + + for (i = 0; i < sizeof(c); i++) { + x[i] = c; + c >>= 8; + } + + for (; i < FPRIME_SIZE; i++) + x[i] = 0; +} +#endif + +static inline int min_int(int a, int b) +{ + return a < b ? a : b; +} + +void fprime_from_bytes(uint8_t *n, + const uint8_t *x, size_t len, + const uint8_t *modulus) +{ + const int preload_total = min_int(prime_msb(modulus) - 1, len << 3); + const int preload_bytes = preload_total >> 3; + const int preload_bits = preload_total & 7; + const int rbits = (len << 3) - preload_total; + int i; + + memset(n, 0, FPRIME_SIZE); + + for (i = 0; i < preload_bytes; i++) + n[i] = x[len - preload_bytes + i]; + + if (preload_bits) { + shift_n_bits(n, preload_bits); + n[0] |= x[len - preload_bytes - 1] >> (8 - preload_bits); + } + + for (i = rbits - 1; i >= 0; i--) { + const uint8_t bit = (x[i >> 3] >> (i & 7)) & 1; + + shift_n_bits(n, 1); + n[0] |= bit; + raw_try_sub(n, modulus); + } +} + +#ifdef FULL_C25519_CODE +void fprime_normalize(uint8_t *x, const uint8_t *modulus) +{ + uint8_t n[FPRIME_SIZE]; + + fprime_from_bytes(n, x, FPRIME_SIZE, modulus); + fprime_copy(x, n); +} + +uint8_t fprime_eq(const uint8_t *x, const uint8_t *y) +{ + uint8_t sum = 0; + int i; + + for (i = 0; i < FPRIME_SIZE; i++) + sum |= x[i] ^ y[i]; + + sum |= (sum >> 4); + sum |= (sum >> 2); + sum |= (sum >> 1); + + return (sum ^ 1) & 1; +} +#endif +void fprime_select(uint8_t *dst, + const uint8_t *zero, const uint8_t *one, + uint8_t condition) +{ + const uint8_t mask = -condition; + int i; + + for (i = 0; i < FPRIME_SIZE; i++) + dst[i] = zero[i] ^ (mask & (one[i] ^ zero[i])); +} + +void fprime_add(uint8_t *r, const uint8_t *a, const uint8_t *modulus) +{ + raw_add(r, a); + raw_try_sub(r, modulus); +} + +#ifdef FULL_C25519_CODE +void fprime_sub(uint8_t *r, const uint8_t *a, const uint8_t *modulus) +{ + raw_add(r, modulus); + raw_try_sub(r, a); + raw_try_sub(r, modulus); +} +#endif + +void fprime_mul(uint8_t *r, const uint8_t *a, const uint8_t *b, + const uint8_t *modulus) +{ + int i; + + memset(r, 0, FPRIME_SIZE); + + for (i = prime_msb(modulus); i >= 0; i--) { + const uint8_t bit = (b[i >> 3] >> (i & 7)) & 1; + uint8_t plusa[FPRIME_SIZE]; + + shift_n_bits(r, 1); + raw_try_sub(r, modulus); + + fprime_copy(plusa, r); + fprime_add(plusa, a, modulus); + + fprime_select(r, r, plusa, bit); + } +} + +#ifdef FULL_C25519_CODE +void fprime_inv(uint8_t *r, const uint8_t *a, const uint8_t *modulus) +{ + uint8_t pm2[FPRIME_SIZE]; + uint16_t c = 2; + int i; + + /* Compute (p-2) */ + fprime_copy(pm2, modulus); + for (i = 0; i < FPRIME_SIZE; i++) { + c = modulus[i] - c; + pm2[i] = c; + c >>= 8; + } + + /* Binary exponentiation */ + fprime_load(r, 1); + + for (i = prime_msb(modulus); i >= 0; i--) { + uint8_t r2[FPRIME_SIZE]; + + fprime_mul(r2, r, r, modulus); + + if ((pm2[i >> 3] >> (i & 7)) & 1) + fprime_mul(r, r2, a, modulus); + else + fprime_copy(r, r2); + } +} +#endif +#endif diff --git a/src/ext/compact25519/c25519/fprime.h b/src/ext/compact25519/c25519/fprime.h new file mode 100644 index 0000000..50c962d --- /dev/null +++ b/src/ext/compact25519/c25519/fprime.h @@ -0,0 +1,81 @@ +/* Arithmetic in prime fields + * Daniel Beer , 10 Jan 2014 + * + * This file is in the public domain. + */ + +#ifndef FPRIME_H_ +#define FPRIME_H_ + +#ifndef COMPACT_DISABLE_ED25519 +#include +#include + +/* Maximum size of a field element (or a prime). Field elements are + * always manipulated and stored in normalized form, with 0 <= x < p. + * You can use normalize() to convert a denormalized bitstring to normal + * form. + * + * Operations are constant with respect to the value of field elements, + * but not with respect to the modulus. + * + * The modulus is a number p, such that 2p-1 fits in FPRIME_SIZE bytes. + */ +#define FPRIME_SIZE 32 + +#ifdef FULL_C25519_CODE +/* Useful constants */ +extern const uint8_t fprime_zero[FPRIME_SIZE]; +extern const uint8_t fprime_one[FPRIME_SIZE]; +#endif + +#ifdef FULL_C25519_CODE +/* Load a small constant */ +void fprime_load(uint8_t *x, uint32_t c); +#endif + +/* Load a large constant */ +void fprime_from_bytes(uint8_t *n, + const uint8_t *x, size_t len, + const uint8_t *modulus); + +/* Copy an element */ +static inline void fprime_copy(uint8_t *x, const uint8_t *a) +{ + memcpy(x, a, FPRIME_SIZE); +} + +#ifdef FULL_C25519_CODE +/* Normalize a field element */ +void fprime_normalize(uint8_t *x, const uint8_t *modulus); + +/* Compare two field points in constant time. Return one if equal, zero + * otherwise. This should be performed only on normalized values. + */ +uint8_t fprime_eq(const uint8_t *x, const uint8_t *y); + +#endif +/* Conditional copy. If condition == 0, then zero is copied to dst. If + * condition == 1, then one is copied to dst. Any other value results in + * undefined behaviour. + */ +void fprime_select(uint8_t *dst, + const uint8_t *zero, const uint8_t *one, + uint8_t condition); + +/* Add one value to another. The two pointers must be distinct. */ +void fprime_add(uint8_t *r, const uint8_t *a, const uint8_t *modulus); +#ifdef FULL_C25519_CODE +void fprime_sub(uint8_t *r, const uint8_t *a, const uint8_t *modulus); +#endif + +/* Multiply two values to get a third. r must be distinct from a and b */ +void fprime_mul(uint8_t *r, const uint8_t *a, const uint8_t *b, + const uint8_t *modulus); + +#ifdef FULL_C25519_CODE +/* Compute multiplicative inverse. r must be distinct from a */ +void fprime_inv(uint8_t *r, const uint8_t *a, const uint8_t *modulus); +#endif +#endif +#endif diff --git a/src/ext/compact25519/c25519/sha512.c b/src/ext/compact25519/c25519/sha512.c new file mode 100644 index 0000000..71f9a9d --- /dev/null +++ b/src/ext/compact25519/c25519/sha512.c @@ -0,0 +1,230 @@ +/* SHA512 + * Daniel Beer , 22 Apr 2014 + * + * This file is in the public domain. + */ + +#include "sha512.h" + +#if !defined(COMPACT_DISABLE_ED25519) || !defined(COMPACT_DISABLE_X25519_DERIVE) +const struct sha512_state sha512_initial_state = { { + 0x6a09e667f3bcc908LL, 0xbb67ae8584caa73bLL, + 0x3c6ef372fe94f82bLL, 0xa54ff53a5f1d36f1LL, + 0x510e527fade682d1LL, 0x9b05688c2b3e6c1fLL, + 0x1f83d9abfb41bd6bLL, 0x5be0cd19137e2179LL, +} }; + +static const uint64_t round_k[80] = { + 0x428a2f98d728ae22LL, 0x7137449123ef65cdLL, + 0xb5c0fbcfec4d3b2fLL, 0xe9b5dba58189dbbcLL, + 0x3956c25bf348b538LL, 0x59f111f1b605d019LL, + 0x923f82a4af194f9bLL, 0xab1c5ed5da6d8118LL, + 0xd807aa98a3030242LL, 0x12835b0145706fbeLL, + 0x243185be4ee4b28cLL, 0x550c7dc3d5ffb4e2LL, + 0x72be5d74f27b896fLL, 0x80deb1fe3b1696b1LL, + 0x9bdc06a725c71235LL, 0xc19bf174cf692694LL, + 0xe49b69c19ef14ad2LL, 0xefbe4786384f25e3LL, + 0x0fc19dc68b8cd5b5LL, 0x240ca1cc77ac9c65LL, + 0x2de92c6f592b0275LL, 0x4a7484aa6ea6e483LL, + 0x5cb0a9dcbd41fbd4LL, 0x76f988da831153b5LL, + 0x983e5152ee66dfabLL, 0xa831c66d2db43210LL, + 0xb00327c898fb213fLL, 0xbf597fc7beef0ee4LL, + 0xc6e00bf33da88fc2LL, 0xd5a79147930aa725LL, + 0x06ca6351e003826fLL, 0x142929670a0e6e70LL, + 0x27b70a8546d22ffcLL, 0x2e1b21385c26c926LL, + 0x4d2c6dfc5ac42aedLL, 0x53380d139d95b3dfLL, + 0x650a73548baf63deLL, 0x766a0abb3c77b2a8LL, + 0x81c2c92e47edaee6LL, 0x92722c851482353bLL, + 0xa2bfe8a14cf10364LL, 0xa81a664bbc423001LL, + 0xc24b8b70d0f89791LL, 0xc76c51a30654be30LL, + 0xd192e819d6ef5218LL, 0xd69906245565a910LL, + 0xf40e35855771202aLL, 0x106aa07032bbd1b8LL, + 0x19a4c116b8d2d0c8LL, 0x1e376c085141ab53LL, + 0x2748774cdf8eeb99LL, 0x34b0bcb5e19b48a8LL, + 0x391c0cb3c5c95a63LL, 0x4ed8aa4ae3418acbLL, + 0x5b9cca4f7763e373LL, 0x682e6ff3d6b2b8a3LL, + 0x748f82ee5defb2fcLL, 0x78a5636f43172f60LL, + 0x84c87814a1f0ab72LL, 0x8cc702081a6439ecLL, + 0x90befffa23631e28LL, 0xa4506cebde82bde9LL, + 0xbef9a3f7b2c67915LL, 0xc67178f2e372532bLL, + 0xca273eceea26619cLL, 0xd186b8c721c0c207LL, + 0xeada7dd6cde0eb1eLL, 0xf57d4f7fee6ed178LL, + 0x06f067aa72176fbaLL, 0x0a637dc5a2c898a6LL, + 0x113f9804bef90daeLL, 0x1b710b35131c471bLL, + 0x28db77f523047d84LL, 0x32caab7b40c72493LL, + 0x3c9ebe0a15c9bebcLL, 0x431d67c49c100d4cLL, + 0x4cc5d4becb3e42b6LL, 0x597f299cfc657e2aLL, + 0x5fcb6fab3ad6faecLL, 0x6c44198c4a475817LL, +}; + +static inline uint64_t load64(const uint8_t *x) +{ + uint64_t r; + + r = *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + r = (r << 8) | *(x++); + + return r; +} + +static inline void store64(uint8_t *x, uint64_t v) +{ + x += 7; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; + v >>= 8; + *(x--) = v; +} + +static inline uint64_t rot64(uint64_t x, int bits) +{ + return (x >> bits) | (x << (64 - bits)); +} + +void sha512_block(struct sha512_state *s, const uint8_t *blk) +{ + uint64_t w[16]; + uint64_t a, b, c, d, e, f, g, h; + int i; + + for (i = 0; i < 16; i++) { + w[i] = load64(blk); + blk += 8; + } + + /* Load state */ + a = s->h[0]; + b = s->h[1]; + c = s->h[2]; + d = s->h[3]; + e = s->h[4]; + f = s->h[5]; + g = s->h[6]; + h = s->h[7]; + + for (i = 0; i < 80; i++) { + /* Compute value of w[i + 16]. w[wrap(i)] is currently w[i] */ + const uint64_t wi = w[i & 15]; + const uint64_t wi15 = w[(i + 1) & 15]; + const uint64_t wi2 = w[(i + 14) & 15]; + const uint64_t wi7 = w[(i + 9) & 15]; + const uint64_t s0 = + rot64(wi15, 1) ^ rot64(wi15, 8) ^ (wi15 >> 7); + const uint64_t s1 = + rot64(wi2, 19) ^ rot64(wi2, 61) ^ (wi2 >> 6); + + /* Round calculations */ + const uint64_t S0 = rot64(a, 28) ^ rot64(a, 34) ^ rot64(a, 39); + const uint64_t S1 = rot64(e, 14) ^ rot64(e, 18) ^ rot64(e, 41); + const uint64_t ch = (e & f) ^ ((~e) & g); + const uint64_t temp1 = h + S1 + ch + round_k[i] + wi; + const uint64_t maj = (a & b) ^ (a & c) ^ (b & c); + const uint64_t temp2 = S0 + maj; + + /* Update round state */ + h = g; + g = f; + f = e; + e = d + temp1; + d = c; + c = b; + b = a; + a = temp1 + temp2; + + /* w[wrap(i)] becomes w[i + 16] */ + w[i & 15] = wi + s0 + wi7 + s1; + } + + /* Store state */ + s->h[0] += a; + s->h[1] += b; + s->h[2] += c; + s->h[3] += d; + s->h[4] += e; + s->h[5] += f; + s->h[6] += g; + s->h[7] += h; +} + +void sha512_final(struct sha512_state *s, const uint8_t *blk, + size_t total_size) +{ + uint8_t temp[SHA512_BLOCK_SIZE] = {0}; + const size_t last_size = total_size & (SHA512_BLOCK_SIZE - 1); + + if (last_size) + memcpy(temp, blk, last_size); + temp[last_size] = 0x80; + + if (last_size > 111) { + sha512_block(s, temp); + memset(temp, 0, sizeof(temp)); + } + + /* Note: we assume total_size fits in 61 bits */ + store64(temp + SHA512_BLOCK_SIZE - 8, total_size << 3); + sha512_block(s, temp); +} + +void sha512_get(const struct sha512_state *s, uint8_t *hash, + unsigned int offset, unsigned int len) +{ + int i; + + if (offset > SHA512_BLOCK_SIZE) + return; + + if (len > SHA512_BLOCK_SIZE - offset) + len = SHA512_BLOCK_SIZE - offset; + + /* Skip whole words */ + i = offset >> 3; + offset &= 7; + + /* Skip/read out bytes */ + if (offset) { + uint8_t tmp[8]; + unsigned int c = 8 - offset; + + if (c > len) + c = len; + + store64(tmp, s->h[i++]); + memcpy(hash, tmp + offset, c); + len -= c; + hash += c; + } + + /* Read out whole words */ + while (len >= 8) { + store64(hash, s->h[i++]); + hash += 8; + len -= 8; + } + + /* Read out bytes */ + if (len) { + uint8_t tmp[8]; + + store64(tmp, s->h[i]); + memcpy(hash, tmp, len); + } +} +#endif diff --git a/src/ext/compact25519/c25519/sha512.h b/src/ext/compact25519/c25519/sha512.h new file mode 100644 index 0000000..881118e --- /dev/null +++ b/src/ext/compact25519/c25519/sha512.h @@ -0,0 +1,54 @@ +/* SHA512 + * Daniel Beer , 22 Apr 2014 + * + * This file is in the public domain. + */ + +#ifndef SHA512_H_ +#define SHA512_H_ + +#if !defined(COMPACT_DISABLE_ED25519) || !defined(COMPACT_DISABLE_X25519_DERIVE) +#include +#include +#include + +/* SHA512 state. State is updated as data is fed in, and then the final + * hash can be read out in slices. + * + * Data is fed in as a sequence of full blocks terminated by a single + * partial block. + */ +struct sha512_state { + uint64_t h[8]; +}; + +/* Initial state */ +extern const struct sha512_state sha512_initial_state; + +/* Set up a new context */ +static inline void sha512_init(struct sha512_state *s) +{ + memcpy(s, &sha512_initial_state, sizeof(*s)); +} + +/* Feed a full block in */ +#define SHA512_BLOCK_SIZE 128 + +void sha512_block(struct sha512_state *s, const uint8_t *blk); + +/* Feed the last partial block in. The total stream size must be + * specified. The size of the block given is assumed to be (total_size % + * SHA512_BLOCK_SIZE). This might be zero, but you still need to call + * this function to terminate the stream. + */ +void sha512_final(struct sha512_state *s, const uint8_t *blk, + size_t total_size); + +/* Fetch a slice of the hash result. */ +#define SHA512_HASH_SIZE 64 + +void sha512_get(const struct sha512_state *s, uint8_t *hash, + unsigned int offset, unsigned int len); + +#endif +#endif diff --git a/src/ext/compact25519/compact_wipe.c b/src/ext/compact25519/compact_wipe.c new file mode 100644 index 0000000..e3c7049 --- /dev/null +++ b/src/ext/compact25519/compact_wipe.c @@ -0,0 +1,12 @@ +#include "compact_wipe.h" +#include +#include + +void *compact_wipe(void *data, size_t length) { +// simplification of: https://www.cryptologie.net/article/419/zeroing-memory-compiler-optimizations-and-memset_s/ + volatile unsigned char *p = data; + while (length--){ + *p++ = 0; + } + return data; +} diff --git a/src/ext/compact25519/compact_wipe.h b/src/ext/compact25519/compact_wipe.h new file mode 100644 index 0000000..cd348e0 --- /dev/null +++ b/src/ext/compact25519/compact_wipe.h @@ -0,0 +1,14 @@ +#ifndef __COMPACT_WIPE_H +#define __COMPACT_WIPE_H +#include +#include +/* + Try to wipe contents of a buffer, as best as we can. + (memset can be ignored by the compiler) + + Use this to clear private key data if you do not need it anymore. + + returns the data pointer, makes for easier chaining +*/ +void *compact_wipe(void *data, size_t length); +#endif diff --git a/src/ext/compact25519/compact_x25519.c b/src/ext/compact25519/compact_x25519.c new file mode 100644 index 0000000..7733764 --- /dev/null +++ b/src/ext/compact25519/compact_x25519.c @@ -0,0 +1,68 @@ + +#ifndef COMPACT_DISABLE_X25519 +#include "compact_x25519.h" +#include "c25519/c25519.h" +#include "c25519/sha512.h" +#include "compact_wipe.h" + +void compact_x25519_keygen( + uint8_t private_key[X25519_KEY_SIZE], + uint8_t public_key[X25519_KEY_SIZE], + uint8_t random_seed[X25519_KEY_SIZE] +) { + memcpy(private_key, random_seed, X25519_KEY_SIZE); + compact_wipe(random_seed, X25519_KEY_SIZE); + c25519_prepare(private_key); + c25519_smult(public_key, c25519_base_x, private_key); +} + +void compact_x25519_shared( + uint8_t shared_secret[X25519_SHARED_SIZE], + const uint8_t my_private_key[X25519_KEY_SIZE], + const uint8_t their_public_key[X25519_KEY_SIZE] +) { + // Ensure that supplied private key is clamped (fix issue #1). + // Calling `c25519_prepare` multiple times for the same private key + // is OK because it won't modify already clamped key. + uint8_t clamped_private_key[X25519_KEY_SIZE]; + memcpy(clamped_private_key, my_private_key, X25519_KEY_SIZE); + c25519_prepare(clamped_private_key); + c25519_smult(shared_secret, their_public_key, clamped_private_key); + compact_wipe(clamped_private_key, X25519_KEY_SIZE); +} + +#ifndef COMPACT_DISABLE_X25519_DERIVE +#if (X25519_KEY_SIZE + (2 * X25519_KEY_SIZE)) > SHA512_BLOCK_SIZE +#error "Unexpected key sizes" +#endif + +static uint8_t* append(uint8_t *dst, const void * source, size_t length) { + memcpy(dst, source, length); + return dst + length; +} + +void compact_x25519_derive_encryption_key( + uint8_t *encryption_key, + size_t key_size, + const uint8_t shared_secret[X25519_SHARED_SIZE], + const uint8_t public_key1[X25519_KEY_SIZE], + const uint8_t public_key2[X25519_KEY_SIZE] +) { + if (key_size > SHA512_HASH_SIZE) { + key_size = SHA512_HASH_SIZE; + } + uint8_t key_data[X25519_SHARED_SIZE + 2 * X25519_KEY_SIZE]; + uint8_t *p = key_data; + p = append(p, shared_secret, X25519_SHARED_SIZE); + p = append(p, public_key1, X25519_KEY_SIZE); + append(p, public_key2, X25519_KEY_SIZE); + + struct sha512_state hasher; + sha512_init(&hasher); + sha512_final(&hasher, key_data, sizeof(key_data)); + sha512_get(&hasher, encryption_key, 0, key_size); + + compact_wipe(key_data, X25519_SHARED_SIZE); // clear the session key at least +} +#endif +#endif diff --git a/src/ext/compact25519/compact_x25519.h b/src/ext/compact25519/compact_x25519.h new file mode 100644 index 0000000..41879b8 --- /dev/null +++ b/src/ext/compact25519/compact_x25519.h @@ -0,0 +1,101 @@ +#ifndef _COMPACT_X25519_H +#define _COMPACT_X25519_H + +#ifndef COMPACT_DISABLE_X25519 +/* + X25519 is a DH key exchange over Curve25519. + + Two parties can share their public keys over an open channel and agree upon + a shared secret, that a third party cannot derive. + + Security concern: if a third party can intercept and change your connection in + some way, then X25519 is not enough. The third party could for example run + two X25519 sessions, one between themselfs and you, and another one between + themselfs and the server. X25519 has no protection against this. + + A possible solution is to use Ed25519 to sign the public keys exchanged, with a + special set of keys that is known before hand. Depending on your scenario, this + either means embedding a set of long-term keys in your application or setting up + some kind of Public Key Infrastructure (PKI). + + If that sounds to complicated or would not work for your case, checkout + the Noise framework. It is a bit less compact than X25519 + Ed25519 but much + more flexible in the kind of session setup styles. +*/ + +#include +#include + +#define X25519_KEY_SIZE (32) +#define X25519_SHARED_SIZE (32) + +/* + Calculate public & private keypair for X25519 key exchange. + Never transmit the private_key! + + input: + - random_seed = random bytes that need to be filled from a good source of + random entropy, PLEASE research the options on your platform! + + output: + - private_key = resulting private key, never share this with the other party + - public_key = public key to be shared with the other party +*/ +void compact_x25519_keygen( + uint8_t private_key[X25519_KEY_SIZE], + uint8_t public_key[X25519_KEY_SIZE], + uint8_t random_seed[X25519_KEY_SIZE] +); + +/* + Calculate shared secret based on the others side public key. + The shared secret does not have a uniform distribution so common advice + is to avoid using it directly as a key. You can use + compact_x25519_derive_encryption_key to get a more suitable encryption + key out of this shared secret + + input: + - my_private_key = private key that came out of compact_x25519_keygen + - their_public_key = public key that was shared by the other party + + output: + - shared_secret = X25519_SHARED_SIZE bytes that both sides now share +*/ +void compact_x25519_shared( + uint8_t shared_secret[X25519_SHARED_SIZE], + const uint8_t my_private_key[X25519_KEY_SIZE], + const uint8_t their_public_key[X25519_KEY_SIZE] +); + +#ifndef COMPACT_DISABLE_X25519_DERIVE +/* + Derive an more suitable encryption key from the shared secret. + This is not part of the normal X25519 specification, but the specifications + does warn that the shared secret is less suited as symmetric encryption key. + + The encryption key is the result of + sha512(concat(shared_secret, public_key1, public_key2))[0..key_size] + + You have to make sure both parties agree which public key goes in first. + + input: + - key_size = number between 1 and 64, of how big your encryption_key + needs to be, make sure there is enough room where + the encryption_key points to + - shared_secret = result of compact_x25519_shared + - public_key1 = first public key to mix in with the key + - public_key2 = second public key to mix in with the key + + output: + - encryption_key = supplied buffer is filled with a encryption key +*/ +void compact_x25519_derive_encryption_key( + uint8_t *encryption_key, + size_t key_size, + const uint8_t shared_secret[X25519_SHARED_SIZE], + const uint8_t public_key1[X25519_KEY_SIZE], + const uint8_t public_key2[X25519_KEY_SIZE] +); +#endif +#endif +#endif diff --git a/src/ext/compact25519/compact_x25519.hpp b/src/ext/compact25519/compact_x25519.hpp new file mode 100644 index 0000000..cc46cce --- /dev/null +++ b/src/ext/compact25519/compact_x25519.hpp @@ -0,0 +1,14 @@ +// Source: https://github.com/kokke/tiny-AES-c + +#ifndef _COMPACT_X25519_HPP_ +#define _COMPACT_X25519_HPP_ + +#ifndef __cplusplus +#error Do not include the hpp header in a c project! +#endif //__cplusplus + +extern "C" { +#include "compact_x25519.h" +} + +#endif //_COMPACT_X25519_HPP_ diff --git a/src/ext/crypt-ext/aes.c b/src/ext/crypt-ext/aes.c new file mode 100644 index 0000000..df4979d --- /dev/null +++ b/src/ext/crypt-ext/aes.c @@ -0,0 +1,555 @@ +// Source: https://github.com/kokke/tiny-AES-c + +/* + +This is an implementation of the AES algorithm, specifically ECB, CTR and CBC mode. +Block size can be chosen in aes.h - available choices are AES128, AES192, AES256. + +The implementation is verified against the test vectors in: + National Institute of Standards and Technology Special Publication 800-38A 2001 ED + +ECB-AES128 +---------- + + plain-text: + 6bc1bee22e409f96e93d7e117393172a + ae2d8a571e03ac9c9eb76fac45af8e51 + 30c81c46a35ce411e5fbc1191a0a52ef + f69f2445df4f9b17ad2b417be66c3710 + + key: + 2b7e151628aed2a6abf7158809cf4f3c + + resulting cipher + 3ad77bb40d7a3660a89ecaf32466ef97 + f5d3d58503b9699de785895a96fdbaaf + 43b1cd7f598ece23881b00e3ed030688 + 7b0c785e27e8ad3f8223207104725dd4 + + +NOTE: String length must be evenly divisible by 16byte (str_len % 16 == 0) + You should pad the end of the string with zeros if this is not the case. + For AES192/256 the key size is proportionally larger. + +*/ + +/*****************************************************************************/ +/* Includes: */ +/*****************************************************************************/ +#include "aes.h" +#include // CBC mode, for memset + +/*****************************************************************************/ +/* Defines: */ +/*****************************************************************************/ +// The number of columns comprising a state in AES. This is a constant in AES. Value=4 +#define Nb 4 + +#if defined(AES256) && (AES256 == 1) +#define Nk 8 +#define Nr 14 +#elif defined(AES192) && (AES192 == 1) +#define Nk 6 +#define Nr 12 +#else +#define Nk 4 // The number of 32 bit words in a key. +#define Nr 10 // The number of rounds in AES Cipher. +#endif + +// jcallan@github points out that declaring Multiply as a function +// reduces code size considerably with the Keil ARM compiler. +// See this link for more information: https://github.com/kokke/tiny-AES-C/pull/3 +#ifndef MULTIPLY_AS_A_FUNCTION +#define MULTIPLY_AS_A_FUNCTION 0 +#endif + +/*****************************************************************************/ +/* Private variables: */ +/*****************************************************************************/ +// state - array holding the intermediate results during decryption. +typedef uint8_t state_t[4][4]; + +// The lookup-tables are marked const so they can be placed in read-only storage instead of RAM +// The numbers below can be computed dynamically trading ROM for RAM - +// This can be useful in (embedded) bootloader applications, where ROM is often limited. +static const uint8_t sbox[256] = { + // 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, + 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, + 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, + 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, + 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, + 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, + 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, + 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, + 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, + 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, + 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, + 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, + 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, + 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16}; + +#if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) +static const uint8_t rsbox[256] = { + 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, + 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, + 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, + 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, + 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, + 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, + 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, + 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, + 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, + 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, + 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, + 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, + 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, + 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d}; +#endif + +// The round constant word array, Rcon[i], contains the values given by +// x to the power (i-1) being powers of x (x is denoted as {02}) in the field GF(2^8) +static const uint8_t Rcon[11] = {0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36}; + +/* + * Jordan Goulder points out in PR #12 (https://github.com/kokke/tiny-AES-C/pull/12), + * that you can remove most of the elements in the Rcon array, because they are unused. + * + * From Wikipedia's article on the Rijndael key schedule @ https://en.wikipedia.org/wiki/Rijndael_key_schedule#Rcon + * + * "Only the first some of these constants are actually used – up to rcon[10] for AES-128 (as 11 round keys are needed), + * up to rcon[8] for AES-192, up to rcon[7] for AES-256. rcon[0] is not used in AES algorithm." + */ + +/*****************************************************************************/ +/* Private functions: */ +/*****************************************************************************/ +/* +static uint8_t getSBoxValue(uint8_t num) +{ + return sbox[num]; +} +*/ +#define getSBoxValue(num) (sbox[(num)]) + +// This function produces Nb(Nr+1) round keys. The round keys are used in each round to decrypt the states. +static void KeyExpansion(uint8_t *RoundKey, const uint8_t *Key) +{ + unsigned i, j, k; + uint8_t tempa[4]; // Used for the column/row operations + + // The first round key is the key itself. + for (i = 0; i < Nk; ++i) + { + RoundKey[(i * 4) + 0] = Key[(i * 4) + 0]; + RoundKey[(i * 4) + 1] = Key[(i * 4) + 1]; + RoundKey[(i * 4) + 2] = Key[(i * 4) + 2]; + RoundKey[(i * 4) + 3] = Key[(i * 4) + 3]; + } + + // All other round keys are found from the previous round keys. + for (i = Nk; i < Nb * (Nr + 1); ++i) + { + { + k = (i - 1) * 4; + tempa[0] = RoundKey[k + 0]; + tempa[1] = RoundKey[k + 1]; + tempa[2] = RoundKey[k + 2]; + tempa[3] = RoundKey[k + 3]; + } + + if (i % Nk == 0) + { + // This function shifts the 4 bytes in a word to the left once. + // [a0,a1,a2,a3] becomes [a1,a2,a3,a0] + + // Function RotWord() + { + const uint8_t u8tmp = tempa[0]; + tempa[0] = tempa[1]; + tempa[1] = tempa[2]; + tempa[2] = tempa[3]; + tempa[3] = u8tmp; + } + + // SubWord() is a function that takes a four-byte input word and + // applies the S-box to each of the four bytes to produce an output word. + + // Function Subword() + { + tempa[0] = getSBoxValue(tempa[0]); + tempa[1] = getSBoxValue(tempa[1]); + tempa[2] = getSBoxValue(tempa[2]); + tempa[3] = getSBoxValue(tempa[3]); + } + + tempa[0] = tempa[0] ^ Rcon[i / Nk]; + } +#if defined(AES256) && (AES256 == 1) + if (i % Nk == 4) + { + // Function Subword() + { + tempa[0] = getSBoxValue(tempa[0]); + tempa[1] = getSBoxValue(tempa[1]); + tempa[2] = getSBoxValue(tempa[2]); + tempa[3] = getSBoxValue(tempa[3]); + } + } +#endif + j = i * 4; + k = (i - Nk) * 4; + RoundKey[j + 0] = RoundKey[k + 0] ^ tempa[0]; + RoundKey[j + 1] = RoundKey[k + 1] ^ tempa[1]; + RoundKey[j + 2] = RoundKey[k + 2] ^ tempa[2]; + RoundKey[j + 3] = RoundKey[k + 3] ^ tempa[3]; + } +} + +void AES_init_ctx(struct AES_ctx *ctx, const uint8_t *key) +{ + KeyExpansion(ctx->RoundKey, key); +} +#if (defined(CBC) && (CBC == 1)) || (defined(CTR) && (CTR == 1)) +void AES_init_ctx_iv(struct AES_ctx *ctx, const uint8_t *key, const uint8_t *iv) +{ + KeyExpansion(ctx->RoundKey, key); + memcpy(ctx->Iv, iv, AES_BLOCKLEN); +} +void AES_ctx_set_iv(struct AES_ctx *ctx, const uint8_t *iv) +{ + memcpy(ctx->Iv, iv, AES_BLOCKLEN); +} +#endif + +// This function adds the round key to state. +// The round key is added to the state by an XOR function. +static void AddRoundKey(uint8_t round, state_t *state, const uint8_t *RoundKey) +{ + uint8_t i, j; + for (i = 0; i < 4; ++i) + { + for (j = 0; j < 4; ++j) + { + (*state)[i][j] ^= RoundKey[(round * Nb * 4) + (i * Nb) + j]; + } + } +} + +// The SubBytes Function Substitutes the values in the +// state matrix with values in an S-box. +static void SubBytes(state_t *state) +{ + uint8_t i, j; + for (i = 0; i < 4; ++i) + { + for (j = 0; j < 4; ++j) + { + (*state)[j][i] = getSBoxValue((*state)[j][i]); + } + } +} + +// The ShiftRows() function shifts the rows in the state to the left. +// Each row is shifted with different offset. +// Offset = Row number. So the first row is not shifted. +static void ShiftRows(state_t *state) +{ + uint8_t temp; + + // Rotate first row 1 columns to left + temp = (*state)[0][1]; + (*state)[0][1] = (*state)[1][1]; + (*state)[1][1] = (*state)[2][1]; + (*state)[2][1] = (*state)[3][1]; + (*state)[3][1] = temp; + + // Rotate second row 2 columns to left + temp = (*state)[0][2]; + (*state)[0][2] = (*state)[2][2]; + (*state)[2][2] = temp; + + temp = (*state)[1][2]; + (*state)[1][2] = (*state)[3][2]; + (*state)[3][2] = temp; + + // Rotate third row 3 columns to left + temp = (*state)[0][3]; + (*state)[0][3] = (*state)[3][3]; + (*state)[3][3] = (*state)[2][3]; + (*state)[2][3] = (*state)[1][3]; + (*state)[1][3] = temp; +} + +static uint8_t xtime(uint8_t x) +{ + return ((x << 1) ^ (((x >> 7) & 1) * 0x1b)); +} + +// MixColumns function mixes the columns of the state matrix +static void MixColumns(state_t *state) +{ + uint8_t i; + uint8_t Tmp, Tm, t; + for (i = 0; i < 4; ++i) + { + t = (*state)[i][0]; + Tmp = (*state)[i][0] ^ (*state)[i][1] ^ (*state)[i][2] ^ (*state)[i][3]; + Tm = (*state)[i][0] ^ (*state)[i][1]; + Tm = xtime(Tm); + (*state)[i][0] ^= Tm ^ Tmp; + Tm = (*state)[i][1] ^ (*state)[i][2]; + Tm = xtime(Tm); + (*state)[i][1] ^= Tm ^ Tmp; + Tm = (*state)[i][2] ^ (*state)[i][3]; + Tm = xtime(Tm); + (*state)[i][2] ^= Tm ^ Tmp; + Tm = (*state)[i][3] ^ t; + Tm = xtime(Tm); + (*state)[i][3] ^= Tm ^ Tmp; + } +} + +// Multiply is used to multiply numbers in the field GF(2^8) +// Note: The last call to xtime() is unneeded, but often ends up generating a smaller binary +// The compiler seems to be able to vectorize the operation better this way. +// See https://github.com/kokke/tiny-AES-c/pull/34 +#if MULTIPLY_AS_A_FUNCTION +static uint8_t Multiply(uint8_t x, uint8_t y) +{ + return (((y & 1) * x) ^ ((y >> 1 & 1) * xtime(x)) ^ ((y >> 2 & 1) * xtime(xtime(x))) ^ + ((y >> 3 & 1) * xtime(xtime(xtime(x)))) ^ + ((y >> 4 & 1) * xtime(xtime(xtime(xtime(x)))))); /* this last call to xtime() can be omitted */ +} +#else +#define Multiply(x, y) \ + (((y & 1) * x) ^ ((y >> 1 & 1) * xtime(x)) ^ ((y >> 2 & 1) * xtime(xtime(x))) ^ \ + ((y >> 3 & 1) * xtime(xtime(xtime(x)))) ^ ((y >> 4 & 1) * xtime(xtime(xtime(xtime(x)))))) + +#endif + +#if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) +/* +static uint8_t getSBoxInvert(uint8_t num) +{ + return rsbox[num]; +} +*/ +#define getSBoxInvert(num) (rsbox[(num)]) + +// MixColumns function mixes the columns of the state matrix. +// The method used to multiply may be difficult to understand for the inexperienced. +// Please use the references to gain more information. +static void InvMixColumns(state_t *state) +{ + int i; + uint8_t a, b, c, d; + for (i = 0; i < 4; ++i) + { + a = (*state)[i][0]; + b = (*state)[i][1]; + c = (*state)[i][2]; + d = (*state)[i][3]; + + (*state)[i][0] = Multiply(a, 0x0e) ^ Multiply(b, 0x0b) ^ Multiply(c, 0x0d) ^ Multiply(d, 0x09); + (*state)[i][1] = Multiply(a, 0x09) ^ Multiply(b, 0x0e) ^ Multiply(c, 0x0b) ^ Multiply(d, 0x0d); + (*state)[i][2] = Multiply(a, 0x0d) ^ Multiply(b, 0x09) ^ Multiply(c, 0x0e) ^ Multiply(d, 0x0b); + (*state)[i][3] = Multiply(a, 0x0b) ^ Multiply(b, 0x0d) ^ Multiply(c, 0x09) ^ Multiply(d, 0x0e); + } +} + +// The SubBytes Function Substitutes the values in the +// state matrix with values in an S-box. +static void InvSubBytes(state_t *state) +{ + uint8_t i, j; + for (i = 0; i < 4; ++i) + { + for (j = 0; j < 4; ++j) + { + (*state)[j][i] = getSBoxInvert((*state)[j][i]); + } + } +} + +static void InvShiftRows(state_t *state) +{ + uint8_t temp; + + // Rotate first row 1 columns to right + temp = (*state)[3][1]; + (*state)[3][1] = (*state)[2][1]; + (*state)[2][1] = (*state)[1][1]; + (*state)[1][1] = (*state)[0][1]; + (*state)[0][1] = temp; + + // Rotate second row 2 columns to right + temp = (*state)[0][2]; + (*state)[0][2] = (*state)[2][2]; + (*state)[2][2] = temp; + + temp = (*state)[1][2]; + (*state)[1][2] = (*state)[3][2]; + (*state)[3][2] = temp; + + // Rotate third row 3 columns to right + temp = (*state)[0][3]; + (*state)[0][3] = (*state)[1][3]; + (*state)[1][3] = (*state)[2][3]; + (*state)[2][3] = (*state)[3][3]; + (*state)[3][3] = temp; +} +#endif // #if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) + +// Cipher is the main function that encrypts the PlainText. +static void Cipher(state_t *state, const uint8_t *RoundKey) +{ + uint8_t round = 0; + + // Add the First round key to the state before starting the rounds. + AddRoundKey(0, state, RoundKey); + + // There will be Nr rounds. + // The first Nr-1 rounds are identical. + // These Nr rounds are executed in the loop below. + // Last one without MixColumns() + for (round = 1;; ++round) + { + SubBytes(state); + ShiftRows(state); + if (round == Nr) + { + break; + } + MixColumns(state); + AddRoundKey(round, state, RoundKey); + } + // Add round key to last round + AddRoundKey(Nr, state, RoundKey); +} + +#if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) +static void InvCipher(state_t *state, const uint8_t *RoundKey) +{ + uint8_t round = 0; + + // Add the First round key to the state before starting the rounds. + AddRoundKey(Nr, state, RoundKey); + + // There will be Nr rounds. + // The first Nr-1 rounds are identical. + // These Nr rounds are executed in the loop below. + // Last one without InvMixColumn() + for (round = (Nr - 1);; --round) + { + InvShiftRows(state); + InvSubBytes(state); + AddRoundKey(round, state, RoundKey); + if (round == 0) + { + break; + } + InvMixColumns(state); + } +} +#endif // #if (defined(CBC) && CBC == 1) || (defined(ECB) && ECB == 1) + +/*****************************************************************************/ +/* Public functions: */ +/*****************************************************************************/ +#if defined(ECB) && (ECB == 1) + +void AES_ECB_encrypt(const struct AES_ctx *ctx, uint8_t *buf) +{ + // The next function call encrypts the PlainText with the Key using AES algorithm. + Cipher((state_t *)buf, ctx->RoundKey); +} + +void AES_ECB_decrypt(const struct AES_ctx *ctx, uint8_t *buf) +{ + // The next function call decrypts the PlainText with the Key using AES algorithm. + InvCipher((state_t *)buf, ctx->RoundKey); +} + +#endif // #if defined(ECB) && (ECB == 1) + +#if defined(CBC) && (CBC == 1) + +static void XorWithIv(uint8_t *buf, const uint8_t *Iv) +{ + uint8_t i; + for (i = 0; i < AES_BLOCKLEN; ++i) // The block in AES is always 128bit no matter the key size + { + buf[i] ^= Iv[i]; + } +} + +void AES_CBC_encrypt_buffer(struct AES_ctx *ctx, uint8_t *buf, size_t length) +{ + size_t i; + uint8_t *Iv = ctx->Iv; + for (i = 0; i < length; i += AES_BLOCKLEN) + { + XorWithIv(buf, Iv); + Cipher((state_t *)buf, ctx->RoundKey); + Iv = buf; + buf += AES_BLOCKLEN; + } + /* store Iv in ctx for next call */ + memcpy(ctx->Iv, Iv, AES_BLOCKLEN); +} + +void AES_CBC_decrypt_buffer(struct AES_ctx *ctx, uint8_t *buf, size_t length) +{ + size_t i; + uint8_t storeNextIv[AES_BLOCKLEN]; + for (i = 0; i < length; i += AES_BLOCKLEN) + { + memcpy(storeNextIv, buf, AES_BLOCKLEN); + InvCipher((state_t *)buf, ctx->RoundKey); + XorWithIv(buf, ctx->Iv); + memcpy(ctx->Iv, storeNextIv, AES_BLOCKLEN); + buf += AES_BLOCKLEN; + } +} + +#endif // #if defined(CBC) && (CBC == 1) + +#if defined(CTR) && (CTR == 1) + +/* Symmetrical operation: same function for encrypting as for decrypting. Note any IV/nonce should never be reused with + * the same key */ +void AES_CTR_xcrypt_buffer(struct AES_ctx *ctx, uint8_t *buf, size_t length) +{ + uint8_t buffer[AES_BLOCKLEN]; + + size_t i; + int bi; + for (i = 0, bi = AES_BLOCKLEN; i < length; ++i, ++bi) + { + if (bi == AES_BLOCKLEN) /* we need to regen xor compliment in buffer */ + { + + memcpy(buffer, ctx->Iv, AES_BLOCKLEN); + Cipher((state_t *)buffer, ctx->RoundKey); + + /* Increment Iv and handle overflow */ + for (bi = (AES_BLOCKLEN - 1); bi >= 0; --bi) + { + /* inc will overflow */ + if (ctx->Iv[bi] == 255) + { + ctx->Iv[bi] = 0; + continue; + } + ctx->Iv[bi] += 1; + break; + } + bi = 0; + } + + buf[i] = (buf[i] ^ buffer[bi]); + } +} + +#endif // #if defined(CTR) && (CTR == 1) diff --git a/src/ext/crypt-ext/aes.h b/src/ext/crypt-ext/aes.h new file mode 100644 index 0000000..3080037 --- /dev/null +++ b/src/ext/crypt-ext/aes.h @@ -0,0 +1,93 @@ +// Source: https://github.com/kokke/tiny-AES-c + +#ifndef _AES_H_ +#define _AES_H_ + +#include +#include + +// #define the macros below to 1/0 to enable/disable the mode of operation. +// +// CBC enables AES encryption in CBC-mode of operation. +// CTR enables encryption in counter-mode. +// ECB enables the basic ECB 16-byte block algorithm. All can be enabled simultaneously. + +// The #ifndef-guard allows it to be configured before #include'ing or at compile time. +#ifndef CBC +#define CBC 1 +#endif + +#ifndef ECB +#define ECB 1 +#endif + +#ifndef CTR +#define CTR 1 +#endif + + +#define AES128 1 +//#define AES192 1 +//#define AES256 1 + +#define AES_BLOCKLEN 16 // Block length in bytes - AES is 128b block only + +#if defined(AES256) && (AES256 == 1) +#define AES_KEYLEN 32 + #define AES_keyExpSize 240 +#elif defined(AES192) && (AES192 == 1) +#define AES_KEYLEN 24 + #define AES_keyExpSize 208 +#else +#define AES_KEYLEN 16 // Key length in bytes +#define AES_keyExpSize 176 +#endif + +struct AES_ctx +{ + uint8_t RoundKey[AES_keyExpSize]; +#if (defined(CBC) && (CBC == 1)) || (defined(CTR) && (CTR == 1)) + uint8_t Iv[AES_BLOCKLEN]; +#endif +}; + +void AES_init_ctx(struct AES_ctx* ctx, const uint8_t* key); +#if (defined(CBC) && (CBC == 1)) || (defined(CTR) && (CTR == 1)) +void AES_init_ctx_iv(struct AES_ctx* ctx, const uint8_t* key, const uint8_t* iv); +void AES_ctx_set_iv(struct AES_ctx* ctx, const uint8_t* iv); +#endif + +#if defined(ECB) && (ECB == 1) +// buffer size is exactly AES_BLOCKLEN bytes; +// you need only AES_init_ctx as IV is not used in ECB +// NB: ECB is considered insecure for most uses +void AES_ECB_encrypt(const struct AES_ctx* ctx, uint8_t* buf); +void AES_ECB_decrypt(const struct AES_ctx* ctx, uint8_t* buf); + +#endif // #if defined(ECB) && (ECB == !) + + +#if defined(CBC) && (CBC == 1) +// buffer size MUST be mutile of AES_BLOCKLEN; +// Suggest https://en.wikipedia.org/wiki/Padding_(cryptography)#PKCS7 for padding scheme +// NOTES: you need to set IV in ctx via AES_init_ctx_iv() or AES_ctx_set_iv() +// no IV should ever be reused with the same key +void AES_CBC_encrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, size_t length); +void AES_CBC_decrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, size_t length); + +#endif // #if defined(CBC) && (CBC == 1) + + +#if defined(CTR) && (CTR == 1) + +// Same function for encrypting as for decrypting. +// IV is incremented for every block, and used after encryption as XOR-compliment for output +// Suggesting https://en.wikipedia.org/wiki/Padding_(cryptography)#PKCS7 for padding scheme +// NOTES: you need to set IV in ctx with AES_init_ctx_iv() or AES_ctx_set_iv() +// no IV should ever be reused with the same key +void AES_CTR_xcrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, size_t length); + +#endif // #if defined(CTR) && (CTR == 1) + + +#endif // _AES_H_ diff --git a/src/ext/crypt-ext/aes.hpp b/src/ext/crypt-ext/aes.hpp new file mode 100644 index 0000000..13ada84 --- /dev/null +++ b/src/ext/crypt-ext/aes.hpp @@ -0,0 +1,14 @@ +// Source: https://github.com/kokke/tiny-AES-c + +#ifndef _AES_HPP_ +#define _AES_HPP_ + +#ifndef __cplusplus +#error Do not include the hpp header in a c project! +#endif //__cplusplus + +extern "C" { +#include "aes.h" +} + +#endif //_AES_HPP_ diff --git a/src/ext/crypt-ext/apicheck.h b/src/ext/crypt-ext/apicheck.h new file mode 100644 index 0000000..28a4041 --- /dev/null +++ b/src/ext/crypt-ext/apicheck.h @@ -0,0 +1,50 @@ +/* + * apicheck.h + * Copyright (C) 2017 Adrian Perez + * + * Distributed under terms of the MIT license. + */ + +#ifndef APICHECK_H +#define APICHECK_H + +#include +#include + +#ifndef API_CHECK_OUTPUT_FILE +#define API_CHECK_OUTPUT_FILE stderr +#endif /* !API_CHECK_OUTPUT_FILE */ + +#ifndef API_CHECK_SHOULD_ABORT +#define API_CHECK_SHOULD_ABORT 0 +#endif /* !API_CHECK_SHOULD_ABORT */ + +#if defined(API_CHECK_DISABLE) && API_CHECK_DISABLE + +#define api_check_return(expr) ((void)(expr)) +#define api_check_return_val(expr, val) ((void)(expr), (void)(val)) + +#else + +#define api_check_return_val(expr, val) \ + do \ + { \ + if (!(expr)) \ + { \ + FILE *__api_check_output_##__LINE__ = (API_CHECK_OUTPUT_FILE); \ + if (!__api_check_output_##__LINE__) \ + __api_check_output_##__LINE__ = stderr; \ + fprintf(__api_check_output_##__LINE__, "API check '%s' failed at %s (%s:%d)\n", #expr, __func__, __FILE__, \ + __LINE__); \ + fflush(__api_check_output_##__LINE__); \ + if (!!(API_CHECK_SHOULD_ABORT)) \ + abort(); \ + return val; \ + } \ + } while (0) + +#define api_check_return(expr) api_check_return_val(expr, ) + +#endif /* API_CHECK_DISABLE */ + +#endif /* !APICHECK_H */ diff --git a/src/ext/crypt-ext/cmac.c b/src/ext/crypt-ext/cmac.c new file mode 100644 index 0000000..28fb758 --- /dev/null +++ b/src/ext/crypt-ext/cmac.c @@ -0,0 +1,396 @@ +/* + * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* ***** This source is modified for/by UERANSIM ***** */ + +#define AES_BLOCK_SIZE 16 +#define AES_MAX_KEY_BITS 256 +#define AES_RKLENGTH(keybits) ((keybits) / 8 + 28) +#define FULL_UNROLL + +#include + +static const uint32_t Te0[256] = { + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, + 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, + 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, + 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, + 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, + 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, + 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, + 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, + 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, + 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, + 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, + 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, + 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, + 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, + 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, + 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, + 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, + 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, + 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, + 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, + 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, + 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, +}; + +static const uint32_t Te1[256] = { + 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, 0x50603030U, + 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, 0x458fcacaU, 0x9d1f8282U, + 0x4089c9c9U, 0x87fa7d7dU, 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, + 0xea45afafU, 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, + 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, 0x93e27171U, + 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, 0x28301818U, 0xa1379696U, + 0x0f0a0505U, 0xb52f9a9aU, 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, + 0x9fea7575U, 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, + 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, 0xf5a65353U, + 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, 0xbed46a6aU, 0x468dcbcbU, + 0xd967bebeU, 0x4b723939U, 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, + 0x16edfbfbU, 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, + 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, 0xad3f9292U, + 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, 0x30201010U, 0x1ae5ffffU, + 0x0efdf3f3U, 0x6dbfd2d2U, 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, + 0x392e1717U, 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, + 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, 0xca8c4646U, + 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, 0x3bdbe0e0U, 0x56643232U, + 0x4e743a3aU, 0x1e140a0aU, 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, + 0xa6c46262U, 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, + 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, 0xafca6565U, + 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, 0x24381c1cU, 0xf157a6a6U, + 0xc773b4b4U, 0x5197c6c6U, 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, + 0x850f8a8aU, 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, + 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, 0x38d9e1e1U, + 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, 0xb62d9b9bU, 0x223c1e1eU, + 0x92158787U, 0x20c9e9e9U, 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, + 0x171a0d0dU, 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, + 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, +}; + +static const uint32_t Te2[256] = { + 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, 0x30506030U, + 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, 0xca458fcaU, 0x829d1f82U, + 0xc94089c9U, 0x7d87fa7dU, 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, + 0xafea45afU, 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, + 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, 0x7193e271U, + 0xd873abd8U, 0x31536231U, 0x153f2a15U, 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, 0x18283018U, 0x96a13796U, + 0x050f0a05U, 0x9ab52f9aU, 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, + 0x759fea75U, 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, + 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, 0x53f5a653U, + 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, 0x6abed46aU, 0xcb468dcbU, + 0xbed967beU, 0x394b7239U, 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, + 0xfb16edfbU, 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, + 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, 0x92ad3f92U, + 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, 0x10302010U, 0xff1ae5ffU, + 0xf30efdf3U, 0xd26dbfd2U, 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, + 0x17392e17U, 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, + 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, 0x46ca8c46U, + 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, 0xe03bdbe0U, 0x32566432U, + 0x3a4e743aU, 0x0a1e140aU, 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, + 0x62a6c462U, 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, + 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, 0x65afca65U, + 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, 0x1c24381cU, 0xa6f157a6U, + 0xb4c773b4U, 0xc65197c6U, 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, + 0x8a850f8aU, 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, + 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, 0xe138d9e1U, + 0xf813ebf8U, 0x98b32b98U, 0x11332211U, 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, 0x9bb62d9bU, 0x1e223c1eU, + 0x87921587U, 0xe920c9e9U, 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, + 0x0d171a0dU, 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, + 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, +}; + +static const uint32_t Te3[256] = { + 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, 0x30305060U, + 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, 0xcaca458fU, 0x82829d1fU, + 0xc9c94089U, 0x7d7d87faU, 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, + 0xafafea45U, 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, + 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, 0x717193e2U, + 0xd8d873abU, 0x31315362U, 0x15153f2aU, 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, 0x18182830U, 0x9696a137U, + 0x05050f0aU, 0x9a9ab52fU, 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, + 0x75759feaU, 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, + 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, 0x5353f5a6U, + 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, 0x6a6abed4U, 0xcbcb468dU, + 0xbebed967U, 0x39394b72U, 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, + 0xfbfb16edU, 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, + 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, 0x9292ad3fU, + 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, 0x10103020U, 0xffff1ae5U, + 0xf3f30efdU, 0xd2d26dbfU, 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, + 0x1717392eU, 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, + 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, 0x4646ca8cU, + 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, 0xe0e03bdbU, 0x32325664U, + 0x3a3a4e74U, 0x0a0a1e14U, 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, + 0x6262a6c4U, 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, + 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, 0x6565afcaU, + 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, 0x1c1c2438U, 0xa6a6f157U, + 0xb4b4c773U, 0xc6c65197U, 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, + 0x8a8a850fU, 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, + 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, 0xe1e138d9U, + 0xf8f813ebU, 0x9898b32bU, 0x11113322U, 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, 0x9b9bb62dU, 0x1e1e223cU, + 0x87879215U, 0xe9e920c9U, 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, + 0x0d0d171aU, 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, + 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, +}; + +static const uint32_t Te4[256] = { + 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, 0x30303030U, + 0x01010101U, 0x67676767U, 0x2b2b2b2bU, 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, 0xcacacacaU, 0x82828282U, + 0xc9c9c9c9U, 0x7d7d7d7dU, 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, + 0xafafafafU, 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, + 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, 0x71717171U, + 0xd8d8d8d8U, 0x31313131U, 0x15151515U, 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, 0x18181818U, 0x96969696U, + 0x05050505U, 0x9a9a9a9aU, 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, + 0x75757575U, 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, + 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, 0x53535353U, + 0xd1d1d1d1U, 0x00000000U, 0xededededU, 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, 0x6a6a6a6aU, 0xcbcbcbcbU, + 0xbebebebeU, 0x39393939U, 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, + 0xfbfbfbfbU, 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, + 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, 0x92929292U, + 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, 0x10101010U, 0xffffffffU, + 0xf3f3f3f3U, 0xd2d2d2d2U, 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, 0x5f5f5f5fU, 0x97979797U, 0x44444444U, + 0x17171717U, 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, + 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, 0x46464646U, + 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, 0xe0e0e0e0U, 0x32323232U, + 0x3a3a3a3aU, 0x0a0a0a0aU, 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, + 0x62626262U, 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, + 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, 0x65656565U, + 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, 0x1c1c1c1cU, 0xa6a6a6a6U, + 0xb4b4b4b4U, 0xc6c6c6c6U, 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, + 0x8a8a8a8aU, 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, + 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, 0xe1e1e1e1U, + 0xf8f8f8f8U, 0x98989898U, 0x11111111U, 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, 0x9b9b9b9bU, 0x1e1e1e1eU, + 0x87878787U, 0xe9e9e9e9U, 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, + 0x0d0d0d0dU, 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, + 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, +}; + +static const uint32_t rcon[] = { + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, +}; + +#define GETU32(plaintext) \ + (((uint32_t)(plaintext)[0] << 24) ^ ((uint32_t)(plaintext)[1] << 16) ^ ((uint32_t)(plaintext)[2] << 8) ^ \ + ((uint32_t)(plaintext)[3])) + +#define PUTU32(ciphertext, st) \ + { \ + (ciphertext)[0] = (uint8_t)((st) >> 24); \ + (ciphertext)[1] = (uint8_t)((st) >> 16); \ + (ciphertext)[2] = (uint8_t)((st) >> 8); \ + (ciphertext)[3] = (uint8_t)(st); \ + } + +static int AesSetup(uint32_t *rk, const uint8_t *key) +{ + int i = 0; + uint32_t temp; + + rk[0] = GETU32(key); + rk[1] = GETU32(key + 4); + rk[2] = GETU32(key + 8); + rk[3] = GETU32(key + 12); + for (;;) + { + temp = rk[3]; + rk[4] = rk[0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ + (Te4[(temp)&0xff] & 0x0000ff00) ^ (Te4[(temp >> 24)] & 0x000000ff) ^ rcon[i]; + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + if (++i == 10) + return 10; + rk += 4; + } +} + +static void AesEncrypt(const uint32_t *rk, const uint8_t plaintext[16], uint8_t ciphertext[16]) +{ + uint32_t s0, s1, s2, s3, t0, t1, t2, t3; +#ifndef FULL_UNROLL + int r; +#endif /* ?FULL_UNROLL */ + /* + * map byte array block to cipher state + * and add initial round key: + */ + s0 = GETU32(plaintext) ^ rk[0]; + s1 = GETU32(plaintext + 4) ^ rk[1]; + s2 = GETU32(plaintext + 8) ^ rk[2]; + s3 = GETU32(plaintext + 12) ^ rk[3]; +#ifdef FULL_UNROLL + /* round 1: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[4]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[5]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[6]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[7]; + /* round 2: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[8]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[9]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11]; + /* round 3: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15]; + /* round 4: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19]; + /* round 5: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23]; + /* round 6: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27]; + /* round 7: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31]; + /* round 8: */ + s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32]; + s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33]; + s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34]; + s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35]; + /* round 9: */ + t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36]; + t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37]; + t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38]; + t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39]; + rk += 10 << 2; +#else /* !FULL_UNROLL */ + +#endif /* ?FULL_UNROLL */ + /* + * apply last round and + * map cipher state to byte array block: + */ + s0 = (Te4[(t0 >> 24)] & 0xff000000) ^ (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t3)&0xff] & 0x000000ff) ^ rk[0]; + PUTU32(ciphertext, s0); + s1 = (Te4[(t1 >> 24)] & 0xff000000) ^ (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t0)&0xff] & 0x000000ff) ^ rk[1]; + PUTU32(ciphertext + 4, s1); + s2 = (Te4[(t2 >> 24)] & 0xff000000) ^ (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t1)&0xff] & 0x000000ff) ^ rk[2]; + PUTU32(ciphertext + 8, s2); + s3 = (Te4[(t3 >> 24)] & 0xff000000) ^ (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ + (Te4[(t2)&0xff] & 0x000000ff) ^ rk[3]; + PUTU32(ciphertext + 12, s3); +} + +static void GenerateSubKey(uint8_t *k1, uint8_t *k2, const uint8_t *key) +{ + uint8_t zero[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint8_t rb[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87}; + uint8_t L[16]; + + uint32_t rk[AES_RKLENGTH(AES_MAX_KEY_BITS)]; + int i; + + AesSetup(rk, key); + AesEncrypt(rk, zero, L); + + if ((L[0] & 0x80) == 0) + { + for (i = 0; i < 15; i++) + k1[i] = ((L[i] << 1) & 0xfe) | ((L[i + 1] & 0x80) ? 1 : 0); + k1[15] = ((L[15] << 1) & 0xfe); + } + else + { + for (i = 0; i < 15; i++) + k1[i] = (((L[i] << 1) & 0xfe) | ((L[i + 1] & 0x80) ? 1 : 0)) ^ rb[i]; + k1[15] = ((L[15] << 1) & 0xfe) ^ rb[15]; + } + + if ((k1[0] & 0x80) == 0) + { + for (i = 0; i < 15; i++) + k2[i] = ((k1[i] << 1) & 0xfe) | ((k1[i + 1] & 0x80) ? 1 : 0); + k2[15] = ((k1[15] << 1) & 0xfe); + } + else + { + for (i = 0; i < 15; i++) + k2[i] = (((k1[i] << 1) & 0xfe) | ((k1[i + 1] & 0x80) ? 1 : 0)) ^ rb[i]; + k2[15] = ((k1[15] << 1) & 0xfe) ^ rb[15]; + } +} + +void external_aes_cmac(uint8_t *cmac, const uint8_t *key, const uint8_t *msg, const uint32_t len) +{ + uint8_t x[16] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + uint8_t y[16], m_last[16]; + uint8_t k1[16], k2[16]; + int i, j, n, bs, flag; + uint32_t rk[AES_RKLENGTH(AES_MAX_KEY_BITS)]; + + GenerateSubKey(k1, k2, key); + + n = (int)(len + 15) / AES_BLOCK_SIZE; + + if (n == 0) + { + n = 1; + flag = 0; + } + else + { + if (len % AES_BLOCK_SIZE == 0) + flag = 1; + else + flag = 0; + } + + bs = (n - 1) * AES_BLOCK_SIZE; + + if (flag) + { + for (i = 0; i < 16; i++) + m_last[i] = msg[bs + i] ^ k1[i]; + } + else + { + for (i = 0; i < (int)(len % AES_BLOCK_SIZE); i++) + m_last[i] = msg[bs + i] ^ k2[i]; + + m_last[i] = 0x80 ^ k2[i]; + + for (i = i + 1; i < AES_BLOCK_SIZE; i++) + m_last[i] = 0x00 ^ k2[i]; + } + + AesSetup(rk, key); + + for (i = 0; i <= n - 2; i++) + { + bs = i * AES_BLOCK_SIZE; + for (j = 0; j < 16; j++) + y[j] = x[j] ^ msg[bs + j]; + AesEncrypt(rk, y, x); + } + + for (j = 0; j < 16; j++) + y[j] = m_last[j] ^ x[j]; + AesEncrypt(rk, y, cmac); +} diff --git a/src/ext/crypt-ext/cmac.hpp b/src/ext/crypt-ext/cmac.hpp new file mode 100644 index 0000000..c1dab5f --- /dev/null +++ b/src/ext/crypt-ext/cmac.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include + +extern "C" +{ + void external_aes_cmac(uint8_t *cmac, const uint8_t *key, const uint8_t *msg, uint32_t len); +} diff --git a/src/ext/crypt-ext/hmac-sha256.c b/src/ext/crypt-ext/hmac-sha256.c new file mode 100644 index 0000000..7c09239 --- /dev/null +++ b/src/ext/crypt-ext/hmac-sha256.c @@ -0,0 +1,98 @@ +/* + * hmac-sha256.c + * Copyright (C) 2017 Adrian Perez + * + * Distributed under terms of the MIT license. + */ + +#include "hmac-sha256.h" +#include "apicheck.h" +#include "sha256.h" + +/* + * HMAC(H, K) == H(K ^ opad, H(K ^ ipad, text)) + * + * H: Hash function (sha256) + * K: Secret key + * B: Block byte length + * L: Byte length of hash function output + * + * https://tools.ietf.org/html/rfc2104 + */ + +#define B 64 +#define L (SHA256_DIGEST_SIZE) +#define K (SHA256_DIGEST_SIZE * 2) + +#define I_PAD 0x36 +#define O_PAD 0x5C + +void hmac_sha256(uint8_t out[HMAC_SHA256_DIGEST_SIZE], const uint8_t *data, size_t data_len, const uint8_t *key, + size_t key_len) +{ + api_check_return(out); + api_check_return(data); + api_check_return(key); + api_check_return(key_len <= B); + + sha256_t ss; + uint8_t kh[SHA256_DIGEST_SIZE]; + + /* + * If the key length is bigger than the buffer size B, apply the hash + * function to it first and use the result instead. + */ + if (key_len > B) + { + sha256_init(&ss); + sha256_update(&ss, key, key_len); + sha256_final(&ss, kh); + key_len = SHA256_DIGEST_SIZE; + key = kh; + } + + /* + * (1) append zeros to the end of K to create a B byte string + * (e.g., if K is of length 20 bytes and B=64, then K will be + * appended with 44 zero bytes 0x00) + * (2) XOR (bitwise exclusive-OR) the B byte string computed in step + * (1) with ipad + */ + uint8_t kx[B]; + for (size_t i = 0; i < key_len; i++) + kx[i] = I_PAD ^ key[i]; + for (size_t i = key_len; i < B; i++) + kx[i] = I_PAD ^ 0; + + /* + * (3) append the stream of data 'text' to the B byte string resulting + * from step (2) + * (4) apply H to the stream generated in step (3) + */ + sha256_init(&ss); + sha256_update(&ss, kx, B); + sha256_update(&ss, data, data_len); + sha256_final(&ss, out); + + /* + * (5) XOR (bitwise exclusive-OR) the B byte string computed in + * step (1) with opad + * + * NOTE: The "kx" variable is reused. + */ + for (size_t i = 0; i < key_len; i++) + kx[i] = O_PAD ^ key[i]; + for (size_t i = key_len; i < B; i++) + kx[i] = O_PAD ^ 0; + + /* + * (6) append the H result from step (4) to the B byte string + * resulting from step (5) + * (7) apply H to the stream generated in step (6) and output + * the result + */ + sha256_init(&ss); + sha256_update(&ss, kx, B); + sha256_update(&ss, out, SHA256_DIGEST_SIZE); + sha256_final(&ss, out); +} diff --git a/src/ext/crypt-ext/hmac-sha256.h b/src/ext/crypt-ext/hmac-sha256.h new file mode 100644 index 0000000..ef5dac8 --- /dev/null +++ b/src/ext/crypt-ext/hmac-sha256.h @@ -0,0 +1,28 @@ +/* + * hmac-sha256.h + * Copyright (C) 2017 Adrian Perez + * + * Distributed under terms of the MIT license. + */ + +#ifndef HMAC_SHA256_H +#define HMAC_SHA256_H + +#include +#include + +#define HMAC_SHA256_DIGEST_SIZE 32 /* Same as SHA-256's output size. */ + +#ifdef __cplusplus +extern "C" +{ +#endif + + void hmac_sha256(uint8_t out[HMAC_SHA256_DIGEST_SIZE], const uint8_t *data, size_t data_len, const uint8_t *key, + size_t key_len); + +#ifdef __cplusplus +} +#endif + +#endif /* !HMAC_SHA256_H */ diff --git a/src/ext/crypt-ext/milenage.c b/src/ext/crypt-ext/milenage.c new file mode 100644 index 0000000..535dfc7 --- /dev/null +++ b/src/ext/crypt-ext/milenage.c @@ -0,0 +1,904 @@ +/* + * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208) + * Copyright (c) 2006-2007 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Alternatively, this software may be distributed under the terms of BSD + * license. + * + * See README and COPYING for more details. + */ + +#include "milenage.h" + +#include +#include +#include + +#define MSG_DEBUG +#define wpa_hexdump(x, ...) +#define wpa_hexdump_key(x, ...) +#define wpa_printf(x, ...) + +#define os_memcpy(x, y, z) memcpy(x, y, z) +#define os_memcmp(x, y, z) memcmp(x, y, z) +#define os_memset(x, y, z) memset(x, y, z) +#define os_malloc(x) malloc(x) +#define os_free(x) free(x) + +typedef uint8_t u8; +typedef uint32_t u32; + +#define AES_BLOCK_SIZE 16 + +#define AES_SMALL_TABLES + +#ifndef AES_SMALL_TABLES + +#define RCON(i) rcon[(i)] + +#define TE0(i) Te0[((i) >> 24) & 0xff] +#define TE1(i) Te1[((i) >> 16) & 0xff] +#define TE2(i) Te2[((i) >> 8) & 0xff] +#define TE3(i) Te3[(i)&0xff] +#define TE41(i) (Te4[((i) >> 24) & 0xff] & 0xff000000) +#define TE42(i) (Te4[((i) >> 16) & 0xff] & 0x00ff0000) +#define TE43(i) (Te4[((i) >> 8) & 0xff] & 0x0000ff00) +#define TE44(i) (Te4[(i)&0xff] & 0x000000ff) +#define TE421(i) (Te4[((i) >> 16) & 0xff] & 0xff000000) +#define TE432(i) (Te4[((i) >> 8) & 0xff] & 0x00ff0000) +#define TE443(i) (Te4[(i)&0xff] & 0x0000ff00) +#define TE414(i) (Te4[((i) >> 24) & 0xff] & 0x000000ff) +#define TE4(i) (Te4[(i)] & 0x000000ff) + +#define TD0(i) Td0[((i) >> 24) & 0xff] +#define TD1(i) Td1[((i) >> 16) & 0xff] +#define TD2(i) Td2[((i) >> 8) & 0xff] +#define TD3(i) Td3[(i)&0xff] +#define TD41(i) (Td4[((i) >> 24) & 0xff] & 0xff000000) +#define TD42(i) (Td4[((i) >> 16) & 0xff] & 0x00ff0000) +#define TD43(i) (Td4[((i) >> 8) & 0xff] & 0x0000ff00) +#define TD44(i) (Td4[(i)&0xff] & 0x000000ff) +#define TD0_(i) Td0[(i)&0xff] +#define TD1_(i) Td1[(i)&0xff] +#define TD2_(i) Td2[(i)&0xff] +#define TD3_(i) Td3[(i)&0xff] + +#else /* AES_SMALL_TABLES */ + +#define RCON(i) (rcons[(i)] << 24) + +static inline u32 rotr(u32 val, int bits) +{ + return (val >> bits) | (val << (32 - bits)); +} + +#define TE0(i) Te0[((i) >> 24) & 0xff] +#define TE1(i) rotr(Te0[((i) >> 16) & 0xff], 8) +#define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16) +#define TE3(i) rotr(Te0[(i)&0xff], 24) +#define TE41(i) ((Te0[((i) >> 24) & 0xff] << 8) & 0xff000000) +#define TE42(i) (Te0[((i) >> 16) & 0xff] & 0x00ff0000) +#define TE43(i) (Te0[((i) >> 8) & 0xff] & 0x0000ff00) +#define TE44(i) ((Te0[(i)&0xff] >> 8) & 0x000000ff) +#define TE421(i) ((Te0[((i) >> 16) & 0xff] << 8) & 0xff000000) +#define TE432(i) (Te0[((i) >> 8) & 0xff] & 0x00ff0000) +#define TE443(i) (Te0[(i)&0xff] & 0x0000ff00) +#define TE414(i) ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff) +#define TE4(i) ((Te0[(i)] >> 8) & 0x000000ff) + +#define TD0(i) Td0[((i) >> 24) & 0xff] +#define TD1(i) rotr(Td0[((i) >> 16) & 0xff], 8) +#define TD2(i) rotr(Td0[((i) >> 8) & 0xff], 16) +#define TD3(i) rotr(Td0[(i)&0xff], 24) +#define TD41(i) (Td4s[((i) >> 24) & 0xff] << 24) +#define TD42(i) (Td4s[((i) >> 16) & 0xff] << 16) +#define TD43(i) (Td4s[((i) >> 8) & 0xff] << 8) +#define TD44(i) (Td4s[(i)&0xff]) +#define TD0_(i) Td0[(i)&0xff] +#define TD1_(i) rotr(Td0[(i)&0xff], 8) +#define TD2_(i) rotr(Td0[(i)&0xff], 16) +#define TD3_(i) rotr(Td0[(i)&0xff], 24) + +#endif /* AES_SMALL_TABLES */ + +#ifdef _MSC_VER +#define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) +#define GETU32(p) SWAP(*((u32 *)(p))) +#define PUTU32(ct, st) \ + { \ + *((u32 *)(ct)) = SWAP((st)); \ + } +#else +#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) +#define PUTU32(ct, st) \ + { \ + (ct)[0] = (u8)((st) >> 24); \ + (ct)[1] = (u8)((st) >> 16); \ + (ct)[2] = (u8)((st) >> 8); \ + (ct)[3] = (u8)(st); \ + } +#endif + +#define AES_PRIV_SIZE (4 * 44) + +/* + * rijndael-alg-fst.c + * + * @version 3.0 (December 2000) + * + * Optimised ANSI C code for the Rijndael cipher (now AES) + * + * @author Vincent Rijmen + * @author Antoon Bosselaers + * @author Paulo Barreto + * + * This code is hereby placed in the public domain. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* +Te0[x] = S [x].[02, 01, 01, 03]; +Te1[x] = S [x].[03, 02, 01, 01]; +Te2[x] = S [x].[01, 03, 02, 01]; +Te3[x] = S [x].[01, 01, 03, 02]; +Te4[x] = S [x].[01, 01, 01, 01]; +Td0[x] = Si[x].[0e, 09, 0d, 0b]; +Td1[x] = Si[x].[0b, 0e, 09, 0d]; +Td2[x] = Si[x].[0d, 0b, 0e, 09]; +Td3[x] = Si[x].[09, 0d, 0b, 0e]; +Td4[x] = Si[x].[01, 01, 01, 01]; +*/ + +static const u32 Te0[256] = { + 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, + 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, + 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, + 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, + 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, + 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, + 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, + 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, + 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, + 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, + 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, + 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, + 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, + 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, + 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, + 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, + 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, + 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, + 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, + 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, + 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, + 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, + 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, + 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, + 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, + 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, + 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, + 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, + 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, +}; +#ifndef AES_SMALL_TABLES +static const u32 Te1[256] = { + 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, 0x50603030U, + 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, 0x458fcacaU, 0x9d1f8282U, + 0x4089c9c9U, 0x87fa7d7dU, 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, + 0xea45afafU, 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, + 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, 0x93e27171U, + 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, 0x28301818U, 0xa1379696U, + 0x0f0a0505U, 0xb52f9a9aU, 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, + 0x9fea7575U, 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, + 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, 0xf5a65353U, + 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, 0xbed46a6aU, 0x468dcbcbU, + 0xd967bebeU, 0x4b723939U, 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, + 0x16edfbfbU, 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, + 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, 0xad3f9292U, + 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, 0x30201010U, 0x1ae5ffffU, + 0x0efdf3f3U, 0x6dbfd2d2U, 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, + 0x392e1717U, 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, + 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, 0xca8c4646U, + 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, 0x3bdbe0e0U, 0x56643232U, + 0x4e743a3aU, 0x1e140a0aU, 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, + 0xa6c46262U, 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, + 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, 0xafca6565U, + 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, 0x24381c1cU, 0xf157a6a6U, + 0xc773b4b4U, 0x5197c6c6U, 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, + 0x850f8a8aU, 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, + 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, 0x38d9e1e1U, + 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, 0xb62d9b9bU, 0x223c1e1eU, + 0x92158787U, 0x20c9e9e9U, 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, + 0x171a0d0dU, 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, + 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, +}; +static const u32 Te2[256] = { + 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, 0x30506030U, + 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, 0xca458fcaU, 0x829d1f82U, + 0xc94089c9U, 0x7d87fa7dU, 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, + 0xafea45afU, 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, + 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, 0x7193e271U, + 0xd873abd8U, 0x31536231U, 0x153f2a15U, 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, 0x18283018U, 0x96a13796U, + 0x050f0a05U, 0x9ab52f9aU, 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, + 0x759fea75U, 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, + 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, 0x53f5a653U, + 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, 0x6abed46aU, 0xcb468dcbU, + 0xbed967beU, 0x394b7239U, 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, + 0xfb16edfbU, 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, + 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, 0x92ad3f92U, + 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, 0x10302010U, 0xff1ae5ffU, + 0xf30efdf3U, 0xd26dbfd2U, 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, + 0x17392e17U, 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, + 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, 0x46ca8c46U, + 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, 0xe03bdbe0U, 0x32566432U, + 0x3a4e743aU, 0x0a1e140aU, 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, + 0x62a6c462U, 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, + 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, 0x65afca65U, + 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, 0x1c24381cU, 0xa6f157a6U, + 0xb4c773b4U, 0xc65197c6U, 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, + 0x8a850f8aU, 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, + 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, 0xe138d9e1U, + 0xf813ebf8U, 0x98b32b98U, 0x11332211U, 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, 0x9bb62d9bU, 0x1e223c1eU, + 0x87921587U, 0xe920c9e9U, 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, + 0x0d171a0dU, 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, + 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, +}; +static const u32 Te3[256] = { + + 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, 0x30305060U, + 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, 0xcaca458fU, 0x82829d1fU, + 0xc9c94089U, 0x7d7d87faU, 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, + 0xafafea45U, 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, + 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, 0x717193e2U, + 0xd8d873abU, 0x31315362U, 0x15153f2aU, 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, 0x18182830U, 0x9696a137U, + 0x05050f0aU, 0x9a9ab52fU, 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, + 0x75759feaU, 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, + 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, 0x5353f5a6U, + 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, 0x6a6abed4U, 0xcbcb468dU, + 0xbebed967U, 0x39394b72U, 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, + 0xfbfb16edU, 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, + 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, 0x9292ad3fU, + 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, 0x10103020U, 0xffff1ae5U, + 0xf3f30efdU, 0xd2d26dbfU, 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, + 0x1717392eU, 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, + 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, 0x4646ca8cU, + 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, 0xe0e03bdbU, 0x32325664U, + 0x3a3a4e74U, 0x0a0a1e14U, 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, + 0x6262a6c4U, 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, + 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, 0x6565afcaU, + 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, 0x1c1c2438U, 0xa6a6f157U, + 0xb4b4c773U, 0xc6c65197U, 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, + 0x8a8a850fU, 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, + 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, 0xe1e138d9U, + 0xf8f813ebU, 0x9898b32bU, 0x11113322U, 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, 0x9b9bb62dU, 0x1e1e223cU, + 0x87879215U, 0xe9e920c9U, 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, + 0x0d0d171aU, 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, + 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, +}; +static const u32 Te4[256] = { + 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, 0x30303030U, + 0x01010101U, 0x67676767U, 0x2b2b2b2bU, 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, 0xcacacacaU, 0x82828282U, + 0xc9c9c9c9U, 0x7d7d7d7dU, 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, + 0xafafafafU, 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, + 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, 0x71717171U, + 0xd8d8d8d8U, 0x31313131U, 0x15151515U, 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, 0x18181818U, 0x96969696U, + 0x05050505U, 0x9a9a9a9aU, 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, + 0x75757575U, 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, + 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, 0x53535353U, + 0xd1d1d1d1U, 0x00000000U, 0xededededU, 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, 0x6a6a6a6aU, 0xcbcbcbcbU, + 0xbebebebeU, 0x39393939U, 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, + 0xfbfbfbfbU, 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, + 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, 0x92929292U, + 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, 0x10101010U, 0xffffffffU, + 0xf3f3f3f3U, 0xd2d2d2d2U, 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, 0x5f5f5f5fU, 0x97979797U, 0x44444444U, + 0x17171717U, 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, + 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, 0x46464646U, + 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, 0xe0e0e0e0U, 0x32323232U, + 0x3a3a3a3aU, 0x0a0a0a0aU, 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, + 0x62626262U, 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, + 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, 0x65656565U, + 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, 0x1c1c1c1cU, 0xa6a6a6a6U, + 0xb4b4b4b4U, 0xc6c6c6c6U, 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, + 0x8a8a8a8aU, 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, + 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, 0xe1e1e1e1U, + 0xf8f8f8f8U, 0x98989898U, 0x11111111U, 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, 0x9b9b9b9bU, 0x1e1e1e1eU, + 0x87878787U, 0xe9e9e9e9U, 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, + 0x0d0d0d0dU, 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, + 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, +}; +#endif /* AES_SMALL_TABLES */ +#ifndef AES_SMALL_TABLES +static const u32 Td1[256] = { + 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, 0x552030faU, + 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, 0x49deb15aU, 0x6725ba1bU, + 0x9845ea0eU, 0xe15dfec0U, 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, + 0xda955259U, 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, + 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, 0xe0b16477U, + 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, 0x23ab73d3U, 0xe2724b02U, + 0x57e31f8fU, 0x2a6655abU, 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, 0xf2302887U, 0xb223bfa5U, 0xba02036aU, + 0x5ced1682U, 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, + 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, 0xf93e218aU, + 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, 0x241998fbU, 0x97d6bde9U, + 0xcc894043U, 0x7767d99eU, 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, + 0x00000000U, 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, + 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, 0x4f80c0c5U, + 0xa261dc20U, 0x695a774bU, 0x161c121aU, 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, 0x0b0e090dU, 0xadf28bc7U, + 0xb92db6a8U, 0xc8141ea9U, 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, + 0x345bfb7eU, 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, + 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, 0x6c2bb316U, + 0x99a970b9U, 0xfa119448U, 0x2247e964U, 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, 0xc787494eU, 0xc1d938d1U, + 0xfe8ccaa2U, 0x3698d40bU, 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, + 0x62547e46U, 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, + 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, 0x65e6956eU, + 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, 0xaf31a4b2U, 0x312a3f23U, + 0x30c6a594U, 0xc035a266U, 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, + 0x2f1791f6U, 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, + 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, 0x8c9ad761U, + 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, 0x599cd2dfU, 0x3f55f273U, + 0x791814ceU, 0xbf73c737U, 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, + 0x5fc2a340U, 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, + 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, +}; +static const u32 Td2[256] = { + 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, 0xfa552030U, + 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, 0x5a49deb1U, 0x1b6725baU, + 0x0e9845eaU, 0xc0e15dfeU, 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, + 0x59da9552U, 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, + 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, 0x77e0b164U, + 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, 0xd323ab73U, 0x02e2724bU, + 0x8f57e31fU, 0xab2a6655U, 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, + 0x825ced16U, 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, + 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, + + 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, 0xfb241998U, + 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, 0x0a47a17cU, 0x0fe97c42U, + 0x1ec9f884U, 0x00000000U, 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, + 0x3927362dU, 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, + 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, 0x0d0b0e09U, + 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, 0x269ff701U, 0xf5bc5c72U, + 0x3bc54466U, 0x7e345bfbU, 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, 0xdccad731U, 0x85104263U, 0x22401397U, + 0x112084c6U, 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, + 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, 0x4ec78749U, + 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, 0x9de42c3aU, 0x920d5078U, + 0xcc9b6a5fU, 0x4662547eU, 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, + 0x12b3cf25U, 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, + 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, 0xb2af31a4U, + 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, 0x984af104U, 0xdaf741ecU, + 0x500e7fcdU, 0xf62f1791U, 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, + 0x517f4665U, 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, + 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, 0xdf599cd2U, + 0x733f55f2U, 0xce791814U, 0x37bf73c7U, 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, 0xf381caafU, 0xc43eb968U, + 0x342c3824U, 0x405fc2a3U, 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, + 0xc1906456U, 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, +}; +static const u32 Td3[256] = { + 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, 0x30fa5520U, + 0x766df6adU, 0xcc769188U, 0x024c25f5U, 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, 0xb15a49deU, 0xba1b6725U, + 0xea0e9845U, 0xfec0e15dU, 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, + 0x5259da95U, 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, + 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, 0x6477e0b1U, + 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, 0x73d323abU, 0x4b02e272U, + 0x1f8f57e3U, 0x55ab2a66U, 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, 0x2887f230U, 0xbfa5b223U, 0x036aba02U, + 0x16825cedU, 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, + 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, 0x218af93eU, + 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, 0x98fb2419U, 0xbde997d6U, + 0x4043cc89U, 0xd99e7767U, 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, + 0x00000000U, 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, + 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, 0xc0c54f80U, + 0xdc20a261U, 0x774b695aU, 0x121a161cU, 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, 0x090d0b0eU, 0x8bc7adf2U, + 0xb6a8b92dU, 0x1ea9c814U, 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, + 0xfb7e345bU, 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, + 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, 0xb3166c2bU, + 0x70b999a9U, 0x9448fa11U, 0xe9642247U, 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, 0x494ec787U, 0x38d1c1d9U, + 0xcaa2fe8cU, 0xd40b3698U, 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, + 0x7e466254U, 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, + 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, 0x956e65e6U, + 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, 0xa4b2af31U, 0x3f23312aU, + 0xa59430c6U, 0xa266c035U, 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, + 0x91f62f17U, 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, + 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, 0xd7618c9aU, + 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, 0xd2df599cU, 0xf2733f55U, + 0x14ce7918U, 0xc737bf73U, 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, 0xaff381caU, 0x68c43eb9U, 0x24342c38U, + 0xa3405fc2U, 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, + 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, +}; +static const u32 Td4[256] = { + 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, 0xbfbfbfbfU, + 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, 0x7c7c7c7cU, 0xe3e3e3e3U, + 0x39393939U, 0x82828282U, 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, 0x34343434U, 0x8e8e8e8eU, 0x43434343U, + 0x44444444U, 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, + 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, 0x42424242U, + 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, 0x28282828U, 0xd9d9d9d9U, + 0x24242424U, 0xb2b2b2b2U, 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, + 0x25252525U, 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, + 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, 0x6c6c6c6cU, + 0x70707070U, 0x48484848U, 0x50505050U, 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, 0x5e5e5e5eU, 0x15151515U, + 0x46464646U, 0x57575757U, 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, 0x90909090U, 0xd8d8d8d8U, 0xababababU, + 0x00000000U, 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, + 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, 0xcacacacaU, + 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, 0x01010101U, 0x13131313U, + 0x8a8a8a8aU, 0x6b6b6b6bU, 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, + 0xeaeaeaeaU, 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, + 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, 0xe2e2e2e2U, + 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, 0x47474747U, 0xf1f1f1f1U, + 0x1a1a1a1aU, 0x71717171U, 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, + 0x0e0e0e0eU, 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, + 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, 0x78787878U, + 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, 0x88888888U, 0x07070707U, + 0xc7c7c7c7U, 0x31313131U, 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, 0x27272727U, 0x80808080U, 0xececececU, + 0x5f5f5f5fU, 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, + 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, 0xa0a0a0a0U, + 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, 0xc8c8c8c8U, 0xebebebebU, + 0xbbbbbbbbU, 0x3c3c3c3cU, 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, 0x17171717U, 0x2b2b2b2bU, 0x04040404U, + 0x7e7e7e7eU, 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, + 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, +}; +static const u32 rcon[] = { + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, + 0x40000000, 0x80000000, 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values + */ +}; +#else /* AES_SMALL_TABLES */ +static const u8 rcons[] = { + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, + 0x40, 0x80, 0x1B, 0x36 + /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ +}; +#endif /* AES_SMALL_TABLES */ +/** + * Expand the cipher key into the encryption key schedule. + * + * @return the number of rounds for the given cipher key size. + */ +static void rijndaelKeySetupEnc(u32 rk[/*44*/], const u8 cipherKey[]) +{ + int i; + u32 temp; + + rk[0] = GETU32(cipherKey); + rk[1] = GETU32(cipherKey + 4); + rk[2] = GETU32(cipherKey + 8); + rk[3] = GETU32(cipherKey + 12); + for (i = 0; i < 10; i++) + { + temp = rk[3]; + rk[4] = rk[0] ^ TE421(temp) ^ TE432(temp) ^ TE443(temp) ^ TE414(temp) ^ RCON(i); + rk[5] = rk[1] ^ rk[4]; + rk[6] = rk[2] ^ rk[5]; + rk[7] = rk[3] ^ rk[6]; + rk += 4; + } +} + +static void rijndaelEncrypt(const u32 rk[/*44*/], const u8 pt[16], u8 ct[16]) +{ + u32 s0, s1, s2, s3, t0, t1, t2, t3; + const int Nr = 10; +#ifndef FULL_UNROLL + int r; +#endif /* ?FULL_UNROLL */ + + /* + * map byte array block to cipher state + * and add initial round key: + */ + s0 = GETU32(pt) ^ rk[0]; + s1 = GETU32(pt + 4) ^ rk[1]; + s2 = GETU32(pt + 8) ^ rk[2]; + s3 = GETU32(pt + 12) ^ rk[3]; + +#define ROUND(i, d, s) \ + d##0 = TE0(s##0) ^ TE1(s##1) ^ TE2(s##2) ^ TE3(s##3) ^ rk[4 * i]; \ + d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \ + d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \ + d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3] + +#ifdef FULL_UNROLL + + ROUND(1, t, s); + ROUND(2, s, t); + ROUND(3, t, s); + ROUND(4, s, t); + ROUND(5, t, s); + ROUND(6, s, t); + ROUND(7, t, s); + ROUND(8, s, t); + ROUND(9, t, s); + + rk += Nr << 2; + +#else /* !FULL_UNROLL */ + + /* Nr - 1 full rounds: */ + r = Nr >> 1; + for (;;) + { + ROUND(1, t, s); + rk += 8; + if (--r == 0) + break; + ROUND(0, s, t); + } + +#endif /* ?FULL_UNROLL */ + +#undef ROUND + + /* + * apply last round and + * map cipher state to byte array block: + */ + s0 = TE41(t0) ^ TE42(t1) ^ TE43(t2) ^ TE44(t3) ^ rk[0]; + PUTU32(ct, s0); + s1 = TE41(t1) ^ TE42(t2) ^ TE43(t3) ^ TE44(t0) ^ rk[1]; + PUTU32(ct + 4, s1); + s2 = TE41(t2) ^ TE42(t3) ^ TE43(t0) ^ TE44(t1) ^ rk[2]; + PUTU32(ct + 8, s2); + s3 = TE41(t3) ^ TE42(t0) ^ TE43(t1) ^ TE44(t2) ^ rk[3]; + PUTU32(ct + 12, s3); +} + +static void *aes_encrypt_init(const u8 *key, size_t len) +{ + u32 *rk; + if (len != 16) + return NULL; + rk = os_malloc(AES_PRIV_SIZE); + if (rk == NULL) + return NULL; + rijndaelKeySetupEnc(rk, key); + return rk; +} + +static void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt) +{ + rijndaelEncrypt(ctx, plain, crypt); +} + +static void aes_encrypt_deinit(void *ctx) +{ + os_memset(ctx, 0, AES_PRIV_SIZE); + os_free(ctx); +} + +/** + * aes_128_encrypt_block - Perform one AES 128-bit block operation + * @key: Key for AES + * @in: Input data (16 bytes) + * @out: Output of the AES block operation (16 bytes) + * Returns: 0 on success, -1 on failure + */ +static int aes_128_encrypt_block(const u8 *key, const u8 *in, u8 *out) +{ + void *ctx; + ctx = aes_encrypt_init(key, 16); + if (ctx == NULL) + return -1; + aes_encrypt(ctx, in, out); + aes_encrypt_deinit(ctx); + return 0; +} + +/** + * milenage_f1 - Milenage f1 and f1* algorithms + * @opc: OPc = 128-bit value derived from OP and K + * @k: K = 128-bit subscriber key + * @_rand: RAND = 128-bit random challenge + * @sqn: SQN = 48-bit sequence number + * @amf: AMF = 16-bit authentication management field + * @mac_a: Buffer for MAC-A = 64-bit network authentication code, or %NULL + * @mac_s: Buffer for MAC-S = 64-bit resync authentication code, or %NULL + * Returns: 0 on success, -1 on failure + */ +int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s) +{ + u8 tmp1[16], tmp2[16], tmp3[16]; + int i; + + /* tmp1 = TEMP = E_K(RAND XOR OP_C) */ + for (i = 0; i < 16; i++) + tmp1[i] = _rand[i] ^ opc[i]; + if (aes_128_encrypt_block(k, tmp1, tmp1)) + return -1; + + /* tmp2 = IN1 = SQN || AMF || SQN || AMF */ + os_memcpy(tmp2, sqn, 6); + os_memcpy(tmp2 + 6, amf, 2); + os_memcpy(tmp2 + 8, tmp2, 8); + + /* OUT1 = E_K(TEMP XOR rot(IN1 XOR OP_C, r1) XOR c1) XOR OP_C */ + + /* rotate (tmp2 XOR OP_C) by r1 (= 0x40 = 8 bytes) */ + for (i = 0; i < 16; i++) + tmp3[(i + 8) % 16] = tmp2[i] ^ opc[i]; + /* XOR with TEMP = E_K(RAND XOR OP_C) */ + for (i = 0; i < 16; i++) + tmp3[i] ^= tmp1[i]; + /* XOR with c1 (= ..00, i.e., NOP) */ + + /* f1 || f1* = E_K(tmp3) XOR OP_c */ + if (aes_128_encrypt_block(k, tmp3, tmp1)) + return -1; + for (i = 0; i < 16; i++) + tmp1[i] ^= opc[i]; + if (mac_a) + os_memcpy(mac_a, tmp1, 8); /* f1 */ + if (mac_s) + os_memcpy(mac_s, tmp1 + 8, 8); /* f1* */ + return 0; +} + +/** + * milenage_f2345 - Milenage f2, f3, f4, f5, f5* algorithms + * @opc: OPc = 128-bit value derived from OP and K + * @k: K = 128-bit subscriber key + * @_rand: RAND = 128-bit random challenge + * @res: Buffer for RES = 64-bit signed response (f2), or %NULL + * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL + * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL + * @ak: Buffer for AK = 48-bit anonymity key (f5), or %NULL + * @akstar: Buffer for AK = 48-bit anonymity key (f5*), or %NULL + * Returns: 0 on success, -1 on failure + */ +int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand, u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar) +{ + u8 tmp1[16], tmp2[16], tmp3[16]; + int i; + + /* tmp2 = TEMP = E_K(RAND XOR OP_C) */ + for (i = 0; i < 16; i++) + tmp1[i] = _rand[i] ^ opc[i]; + if (aes_128_encrypt_block(k, tmp1, tmp2)) + return -1; + + /* OUT2 = E_K(rot(TEMP XOR OP_C, r2) XOR c2) XOR OP_C */ + /* OUT3 = E_K(rot(TEMP XOR OP_C, r3) XOR c3) XOR OP_C */ + /* OUT4 = E_K(rot(TEMP XOR OP_C, r4) XOR c4) XOR OP_C */ + /* OUT5 = E_K(rot(TEMP XOR OP_C, r5) XOR c5) XOR OP_C */ + + /* f2 and f5 */ + /* rotate by r2 (= 0, i.e., NOP) */ + for (i = 0; i < 16; i++) + tmp1[i] = tmp2[i] ^ opc[i]; + tmp1[15] ^= 1; /* XOR c2 (= ..01) */ + /* f5 || f2 = E_K(tmp1) XOR OP_c */ + if (aes_128_encrypt_block(k, tmp1, tmp3)) + return -1; + for (i = 0; i < 16; i++) + tmp3[i] ^= opc[i]; + if (res) + os_memcpy(res, tmp3 + 8, 8); /* f2 */ + if (ak) + os_memcpy(ak, tmp3, 6); /* f5 */ + + /* f3 */ + if (ck) + { + /* rotate by r3 = 0x20 = 4 bytes */ + for (i = 0; i < 16; i++) + tmp1[(i + 12) % 16] = tmp2[i] ^ opc[i]; + tmp1[15] ^= 2; /* XOR c3 (= ..02) */ + if (aes_128_encrypt_block(k, tmp1, ck)) + return -1; + for (i = 0; i < 16; i++) + ck[i] ^= opc[i]; + } + + /* f4 */ + if (ik) + { + /* rotate by r4 = 0x40 = 8 bytes */ + for (i = 0; i < 16; i++) + tmp1[(i + 8) % 16] = tmp2[i] ^ opc[i]; + tmp1[15] ^= 4; /* XOR c4 (= ..04) */ + if (aes_128_encrypt_block(k, tmp1, ik)) + return -1; + for (i = 0; i < 16; i++) + ik[i] ^= opc[i]; + } + + /* f5* */ + if (akstar) + { + /* rotate by r5 = 0x60 = 12 bytes */ + for (i = 0; i < 16; i++) + tmp1[(i + 4) % 16] = tmp2[i] ^ opc[i]; + tmp1[15] ^= 8; /* XOR c5 (= ..08) */ + if (aes_128_encrypt_block(k, tmp1, tmp1)) + return -1; + for (i = 0; i < 6; i++) + akstar[i] = tmp1[i] ^ opc[i]; + } + + return 0; +} + +/** + * milenage_generate - Generate AKA AUTN,IK,CK,RES + * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.) + * @amf: AMF = 16-bit authentication management field + * @k: K = 128-bit subscriber key + * @sqn: SQN = 48-bit sequence number + * @_rand: RAND = 128-bit random challenge + * @autn: Buffer for AUTN = 128-bit authentication token + * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL + * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL + * @res: Buffer for RES = 64-bit signed response (f2), or %NULL + * @res_len: Max length for res; set to used length or 0 on failure + */ +void milenage_generate(const u8 *opc, const u8 *amf, const u8 *k, const u8 *sqn, const u8 *_rand, u8 *autn, u8 *ik, + u8 *ck, u8 *res, size_t *res_len) +{ + int i; + u8 mac_a[8], ak[6]; + + if (*res_len < 8) + { + *res_len = 0; + return; + } + if (milenage_f1(opc, k, _rand, sqn, amf, mac_a, NULL) || milenage_f2345(opc, k, _rand, res, ck, ik, ak, NULL)) + { + *res_len = 0; + return; + } + *res_len = 8; + + /* AUTN = (SQN ^ AK) || AMF || MAC */ + for (i = 0; i < 6; i++) + autn[i] = sqn[i] ^ ak[i]; + os_memcpy(autn + 6, amf, 2); + os_memcpy(autn + 8, mac_a, 8); +} + +/** + * milenage_auts - Milenage AUTS validation + * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.) + * @k: K = 128-bit subscriber key + * @_rand: RAND = 128-bit random challenge + * @auts: AUTS = 112-bit authentication token from client + * @sqn: Buffer for SQN = 48-bit sequence number + * Returns: 0 = success (sqn filled), -1 on failure + */ +int milenage_auts(const u8 *opc, const u8 *k, const u8 *_rand, const u8 *auts, u8 *sqn) +{ + u8 amf[2] = {0x00, 0x00}; /* TS 33.102 v7.0.0, 6.3.3 */ + u8 ak[6], mac_s[8]; + int i; + + if (milenage_f2345(opc, k, _rand, NULL, NULL, NULL, NULL, ak)) + return -1; + for (i = 0; i < 6; i++) + sqn[i] = auts[i] ^ ak[i]; + if (milenage_f1(opc, k, _rand, sqn, amf, NULL, mac_s) || memcmp(mac_s, auts + 6, 8) != 0) + return -1; + return 0; +} + +/** + * gsm_milenage - Generate GSM-Milenage (3GPP TS 55.205) authentication triplet + * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.) + * @k: K = 128-bit subscriber key + * @_rand: RAND = 128-bit random challenge + * @sres: Buffer for SRES = 32-bit SRES + * @kc: Buffer for Kc = 64-bit Kc + * Returns: 0 on success, -1 on failure + */ +int gsm_milenage(const u8 *opc, const u8 *k, const u8 *_rand, u8 *sres, u8 *kc) +{ + u8 res[8], ck[16], ik[16]; + int i; + + if (milenage_f2345(opc, k, _rand, res, ck, ik, NULL, NULL)) + return -1; + + for (i = 0; i < 8; i++) + kc[i] = ck[i] ^ ck[i + 8] ^ ik[i] ^ ik[i + 8]; + +#ifdef GSM_MILENAGE_ALT_SRES + os_memcpy(sres, res, 4); +#else /* GSM_MILENAGE_ALT_SRES */ + for (i = 0; i < 4; i++) + sres[i] = res[i] ^ res[i + 4]; +#endif /* GSM_MILENAGE_ALT_SRES */ + return 0; +} + +/** + * milenage_generate - Generate AKA AUTN,IK,CK,RES + * @opc: OPc = 128-bit operator variant algorithm configuration field (encr.) + * @k: K = 128-bit subscriber key + * @sqn: SQN = 48-bit sequence number + * @_rand: RAND = 128-bit random challenge + * @autn: AUTN = 128-bit authentication token + * @ik: Buffer for IK = 128-bit integrity key (f4), or %NULL + * @ck: Buffer for CK = 128-bit confidentiality key (f3), or %NULL + * @res: Buffer for RES = 64-bit signed response (f2), or %NULL + * @res_len: Variable that will be set to RES length + * @auts: 112-bit buffer for AUTS + * Returns: 0 on success, -1 on failure, or -2 on synchronization failure + */ +int milenage_check(const u8 *opc, const u8 *k, const u8 *sqn, const u8 *_rand, const u8 *autn, u8 *ik, u8 *ck, u8 *res, + size_t *res_len, u8 *auts) +{ + int i; + u8 mac_a[8], ak[6], rx_sqn[6]; + const u8 *amf; + + wpa_hexdump(MSG_DEBUG, "Milenage: AUTN", autn, 16); + wpa_hexdump(MSG_DEBUG, "Milenage: RAND", _rand, 16); + + if (milenage_f2345(opc, k, _rand, res, ck, ik, ak, NULL)) + return -1; + + *res_len = 8; + wpa_hexdump_key(MSG_DEBUG, "Milenage: RES", res, *res_len); + wpa_hexdump_key(MSG_DEBUG, "Milenage: CK", ck, 16); + wpa_hexdump_key(MSG_DEBUG, "Milenage: IK", ik, 16); + wpa_hexdump_key(MSG_DEBUG, "Milenage: AK", ak, 6); + + /* AUTN = (SQN ^ AK) || AMF || MAC */ + for (i = 0; i < 6; i++) + rx_sqn[i] = autn[i] ^ ak[i]; + wpa_hexdump(MSG_DEBUG, "Milenage: SQN", rx_sqn, 6); + + if (os_memcmp(rx_sqn, sqn, 6) <= 0) + { + u8 auts_amf[2] = {0x00, 0x00}; /* TS 33.102 v7.0.0, 6.3.3 */ + if (milenage_f2345(opc, k, _rand, NULL, NULL, NULL, NULL, ak)) + return -1; + wpa_hexdump_key(MSG_DEBUG, "Milenage: AK*", ak, 6); + for (i = 0; i < 6; i++) + auts[i] = sqn[i] ^ ak[i]; + if (milenage_f1(opc, k, _rand, sqn, auts_amf, NULL, auts + 6)) + return -1; + wpa_hexdump(MSG_DEBUG, "Milenage: AUTS", auts, 14); + return -2; + } + + amf = autn + 6; + wpa_hexdump(MSG_DEBUG, "Milenage: AMF", amf, 2); + if (milenage_f1(opc, k, _rand, rx_sqn, amf, mac_a, NULL)) + return -1; + + wpa_hexdump(MSG_DEBUG, "Milenage: MAC_A", mac_a, 8); + + if (os_memcmp(mac_a, autn + 8, 8) != 0) + { + wpa_printf(MSG_DEBUG, "Milenage: MAC mismatch"); + wpa_hexdump(MSG_DEBUG, "Milenage: Received MAC_A", autn + 8, 8); + return -1; + } + + return 0; +} + +int milenage_opc_gen(u8 *opc, const u8 *k, const u8 *op) +{ + int i; + + /* Encrypt OP using K */ + if (aes_128_encrypt_block(k, op, opc)) + return -1; + + /* XOR the resulting Ek(OP) with OP */ + for (i = 0; i < 16; i++) + opc[i] = opc[i] ^ op[i]; + + return 0; +} diff --git a/src/ext/crypt-ext/milenage.h b/src/ext/crypt-ext/milenage.h new file mode 100644 index 0000000..761ee13 --- /dev/null +++ b/src/ext/crypt-ext/milenage.h @@ -0,0 +1,31 @@ +#pragma once + +/* + * UMTS AKA - Milenage algorithm (3GPP TS 35.205, .206, .207, .208) + * Copyright (c) 2006-2007 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Alternatively, this software may be distributed under the terms of BSD + * license. + * + * See README and COPYING for more details. + */ + +#include +#include + +void milenage_generate(const uint8_t *opc, const uint8_t *amf, const uint8_t *k, const uint8_t *sqn, + const uint8_t *_rand, uint8_t *autn, uint8_t *ik, uint8_t *ck, uint8_t *res, size_t *res_len); +int milenage_auts(const uint8_t *opc, const uint8_t *k, const uint8_t *_rand, const uint8_t *auts, uint8_t *sqn); +int gsm_milenage(const uint8_t *opc, const uint8_t *k, const uint8_t *_rand, uint8_t *sres, uint8_t *kc); +int milenage_check(const uint8_t *opc, const uint8_t *k, const uint8_t *sqn, const uint8_t *_rand, const uint8_t *autn, + uint8_t *ik, uint8_t *ck, uint8_t *res, size_t *res_len, uint8_t *auts); +int milenage_f1(const uint8_t *opc, const uint8_t *k, const uint8_t *_rand, const uint8_t *sqn, const uint8_t *amf, + uint8_t *mac_a, uint8_t *mac_s); +int milenage_f2345(const uint8_t *opc, const uint8_t *k, const uint8_t *_rand, uint8_t *res, uint8_t *ck, uint8_t *ik, + uint8_t *ak, uint8_t *akstar); + +int milenage_opc_gen(uint8_t *opc, const uint8_t *k, const uint8_t *op); diff --git a/src/ext/crypt-ext/milenage.hpp b/src/ext/crypt-ext/milenage.hpp new file mode 100644 index 0000000..1cb23fa --- /dev/null +++ b/src/ext/crypt-ext/milenage.hpp @@ -0,0 +1,10 @@ +#pragma once + +#ifndef __cplusplus +#error Do not include the hpp header in a c project! +#endif //__cplusplus + +extern "C" +{ +#include "milenage.h" +} diff --git a/src/ext/crypt-ext/rotate-bits.h b/src/ext/crypt-ext/rotate-bits.h new file mode 100644 index 0000000..b72a976 --- /dev/null +++ b/src/ext/crypt-ext/rotate-bits.h @@ -0,0 +1,40 @@ +#ifndef __ROTATE_DEFS_H +#define __ROTATE_DEFS_H + +#ifdef _MSC_VER + +#include + +#define ROTL32(v, n) _rotl((v), (n)) +#define ROTL64(v, n) _rotl64((v), (n)) + +#define ROTR32(v, n) _rotr((v), (n)) +#define ROTR64(v, n) _rotr64((v), (n)) + +#else + +#include + +#define U8V(v) ((uint8_t)(v)&0xFFU) +#define U16V(v) ((uint16_t)(v)&0xFFFFU) +#define U32V(v) ((uint32_t)(v)&0xFFFFFFFFU) +#define U64V(v) ((uint64_t)(v)&0xFFFFFFFFFFFFFFFFU) + +#define ROTL32(v, n) (U32V((uint32_t)(v) << (n)) | ((uint32_t)(v) >> (32 - (n)))) + +// tests fail if we don't have this cast... +#define ROTL64(v, n) (U64V((uint64_t)(v) << (n)) | ((uint64_t)(v) >> (64 - (n)))) + +#define ROTR32(v, n) ROTL32(v, 32 - (n)) +#define ROTR64(v, n) ROTL64(v, 64 - (n)) + +#endif + +#define ROTL8(v, n) (U8V((uint8_t)(v) << (n)) | ((uint8_t)(v) >> (8 - (n)))) + +#define ROTL16(v, n) (U16V((uint16_t)(v) << (n)) | ((uint16_t)(v) >> (16 - (n)))) + +#define ROTR8(v, n) ROTL8(v, 8 - (n)) +#define ROTR16(v, n) ROTL16(v, 16 - (n)) + +#endif diff --git a/src/ext/crypt-ext/sha256.c b/src/ext/crypt-ext/sha256.c new file mode 100644 index 0000000..4973f13 --- /dev/null +++ b/src/ext/crypt-ext/sha256.c @@ -0,0 +1,215 @@ +/* Crypto/Sha256.c -- SHA-256 Hash +2010-06-11 : Igor Pavlov : Public domain +This code is based on public domain code from Wei Dai's Crypto++ library. */ + +#include "sha256.h" +#include "rotate-bits.h" + +/* define it for speed optimization */ +#define _SHA256_UNROLL +#define _SHA256_UNROLL2 + +void sha256_init(sha256_t *p) +{ + p->state[0] = 0x6a09e667; + p->state[1] = 0xbb67ae85; + p->state[2] = 0x3c6ef372; + p->state[3] = 0xa54ff53a; + p->state[4] = 0x510e527f; + p->state[5] = 0x9b05688c; + p->state[6] = 0x1f83d9ab; + p->state[7] = 0x5be0cd19; + p->count = 0; +} + +#define S0(x) (ROTR32(x, 2) ^ ROTR32(x, 13) ^ ROTR32(x, 22)) +#define S1(x) (ROTR32(x, 6) ^ ROTR32(x, 11) ^ ROTR32(x, 25)) +#define s0(x) (ROTR32(x, 7) ^ ROTR32(x, 18) ^ (x >> 3)) +#define s1(x) (ROTR32(x, 17) ^ ROTR32(x, 19) ^ (x >> 10)) + +#define blk0(i) (W[i] = data[i]) +#define blk2(i) (W[(i)&15] += s1(W[((i)-2) & 15]) + W[((i)-7) & 15] + s0(W[((i)-15) & 15])) + +#define Ch(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) +#define Maj(x, y, z) (((x) & (y)) | ((z) & ((x) | (y)))) + +#define a(i) T[(0 - (i)) & 7] +#define b(i) T[(1 - (i)) & 7] +#define c(i) T[(2 - (i)) & 7] +#define d(i) T[(3 - (i)) & 7] +#define e(i) T[(4 - (i)) & 7] +#define f(i) T[(5 - (i)) & 7] +#define g(i) T[(6 - (i)) & 7] +#define h(i) T[(7 - (i)) & 7] + +#ifdef _SHA256_UNROLL2 + +#define R(a, b, c, d, e, f, g, h, i) \ + h += S1(e) + Ch(e, f, g) + K[(i) + j] + (j ? blk2(i) : blk0(i)); \ + (d) += (h); \ + (h) += S0(a) + Maj(a, b, c) + +#define RX_8(i) \ + R(a, b, c, d, e, f, g, h, i); \ + R(h, a, b, c, d, e, f, g, ((i) + 1)); \ + R(g, h, a, b, c, d, e, f, ((i) + 2)); \ + R(f, g, h, a, b, c, d, e, ((i) + 3)); \ + R(e, f, g, h, a, b, c, d, ((i) + 4)); \ + R(d, e, f, g, h, a, b, c, ((i) + 5)); \ + R(c, d, e, f, g, h, a, b, ((i) + 6)); \ + R(b, c, d, e, f, g, h, a, ((i) + 7)) + +#else + +#define R(i) \ + h(i) += S1(e(i)) + Ch(e(i), f(i), g(i)) + K[i + j] + (j ? blk2(i) : blk0(i)); \ + d(i) += h(i); \ + h(i) += S0(a(i)) + Maj(a(i), b(i), c(i)) + +#ifdef _SHA256_UNROLL + +#define RX_8(i) \ + R(i + 0); \ + R(i + 1); \ + R(i + 2); \ + R(i + 3); \ + R(i + 4); \ + R(i + 5); \ + R(i + 6); \ + R(i + 7); + +#endif + +#endif + +static const uint32_t K[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2}; + +static void sha256_transform(uint32_t *state, const uint32_t *data) +{ + uint32_t W[16]; + unsigned j; +#ifdef _SHA256_UNROLL2 + uint32_t a, b, c, d, e, f, g, h; + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + e = state[4]; + f = state[5]; + g = state[6]; + h = state[7]; +#else + uint32_t T[8]; + for (j = 0; j < 8; j++) + T[j] = state[j]; +#endif + + for (j = 0; j < 64; j += 16) + { +#if defined(_SHA256_UNROLL) || defined(_SHA256_UNROLL2) + RX_8(0); + RX_8(8); +#else + unsigned i; + for (i = 0; i < 16; i++) + { + R(i); + } +#endif + } + +#ifdef _SHA256_UNROLL2 + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + state[5] += f; + state[6] += g; + state[7] += h; +#else + for (j = 0; j < 8; j++) + state[j] += T[j]; +#endif + + /* Wipe variables */ + /* memset(W, 0, sizeof(W)); */ + /* memset(T, 0, sizeof(T)); */ +} + +#undef S0 +#undef S1 +#undef s0 +#undef s1 + +static void sha256_write_byte_block(sha256_t *p) +{ + uint32_t data32[16]; + unsigned i; + for (i = 0; i < 16; i++) + data32[i] = ((uint32_t)(p->buffer[i * 4]) << 24) + ((uint32_t)(p->buffer[i * 4 + 1]) << 16) + + ((uint32_t)(p->buffer[i * 4 + 2]) << 8) + ((uint32_t)(p->buffer[i * 4 + 3])); + sha256_transform(p->state, data32); +} + +void sha256_hash(unsigned char *buf, const unsigned char *data, size_t size) +{ + sha256_t hash; + sha256_init(&hash); + sha256_update(&hash, data, size); + sha256_final(&hash, buf); +} + +void sha256_update(sha256_t *p, const unsigned char *data, size_t size) +{ + uint32_t curBufferPos = (uint32_t)p->count & 0x3F; + while (size > 0) + { + p->buffer[curBufferPos++] = *data++; + p->count++; + size--; + if (curBufferPos == 64) + { + curBufferPos = 0; + sha256_write_byte_block(p); + } + } +} + +void sha256_final(sha256_t *p, unsigned char *digest) +{ + uint64_t lenInBits = (p->count << 3); + uint32_t curBufferPos = (uint32_t)p->count & 0x3F; + unsigned i; + p->buffer[curBufferPos++] = 0x80; + while (curBufferPos != (64 - 8)) + { + curBufferPos &= 0x3F; + if (curBufferPos == 0) + sha256_write_byte_block(p); + p->buffer[curBufferPos++] = 0; + } + for (i = 0; i < 8; i++) + { + p->buffer[curBufferPos++] = (unsigned char)(lenInBits >> 56); + lenInBits <<= 8; + } + sha256_write_byte_block(p); + + for (i = 0; i < 8; i++) + { + *digest++ = (unsigned char)(p->state[i] >> 24); + *digest++ = (unsigned char)(p->state[i] >> 16); + *digest++ = (unsigned char)(p->state[i] >> 8); + *digest++ = (unsigned char)(p->state[i]); + } + sha256_init(p); +} diff --git a/src/ext/crypt-ext/sha256.h b/src/ext/crypt-ext/sha256.h new file mode 100644 index 0000000..c46484e --- /dev/null +++ b/src/ext/crypt-ext/sha256.h @@ -0,0 +1,30 @@ +/* Sha256.h -- SHA-256 Hash +2010-06-11 : Igor Pavlov : Public domain */ + +#pragma once + +#include +#include + +#define SHA256_DIGEST_SIZE 32 + +#ifdef __cplusplus +extern "C" +{ +#endif + + typedef struct sha256_t + { + uint32_t state[8]; + uint64_t count; + unsigned char buffer[64]; + } sha256_t; + + void sha256_init(sha256_t *p); + void sha256_update(sha256_t *p, const unsigned char *data, size_t size); + void sha256_final(sha256_t *p, unsigned char *digest); + void sha256_hash(unsigned char *buf, const unsigned char *data, size_t size); + +#ifdef __cplusplus +} +#endif diff --git a/src/ext/crypt-ext/x963kdf.c b/src/ext/crypt-ext/x963kdf.c new file mode 100644 index 0000000..b60e810 --- /dev/null +++ b/src/ext/crypt-ext/x963kdf.c @@ -0,0 +1,46 @@ +/* X963kdf.h -- X9.63 Key Derivation Function +2023-03-22 : Stephane G. : Public domain */ + +#include "x963kdf.h" +// STEPHANE +#include + +// function X963KDF(sharedSecret, sharedInfo, keySize){ +// var maxCount = Math.ceil(keySize/digestLen); +// var result = Buffer.allocUnsafe(0); +// for (var count = 1; count < maxCount + 1; count++){ +// var counter = Buffer.allocUnsafe(4); +// counter.writeUInt32BE(count, 0); +// var current = Buffer.concat([sharedSecret, counter, sharedInfo]); +// var hash = crypto.createHash(digest).update(current).digest(); +// result = Buffer.concat([result, hash]); +// } + +// return result.slice(0, keySize); +// } + +void x963kdf(unsigned char *output, const unsigned char *sharedSecret, const unsigned char *sharedInfo, size_t keySize) +{ + int maxCount = ceil(keySize/SHA256_DIGEST_SIZE); + uint8_t result[keySize]; + uint8_t counterBuf[4]; + + for (int count = 1; count < maxCount + 1; count++) + { + sha256_t ss; + uint8_t hash[SHA256_DIGEST_SIZE]; + + sha256_init(&ss); + sha256_update(&ss, sharedSecret, 32); + // To be improved in order to deal with Little and Big Endian + counterBuf[0] = (uint8_t) ((count >> 24) & 0xff); + counterBuf[1] = (uint8_t) ((count >> 16) & 0xff); + counterBuf[2] = (uint8_t) ((count >> 8) & 0xff); + counterBuf[3] = (uint8_t) ((count >> 0) & 0xff); + sha256_update(&ss, counterBuf, 4); + sha256_update(&ss, sharedInfo, 32); + sha256_final(&ss, hash); + memcpy(result + (count -1)*SHA256_DIGEST_SIZE, hash, SHA256_DIGEST_SIZE); + } + memcpy(output, result, keySize); +} \ No newline at end of file diff --git a/src/ext/crypt-ext/x963kdf.h b/src/ext/crypt-ext/x963kdf.h new file mode 100644 index 0000000..85fcead --- /dev/null +++ b/src/ext/crypt-ext/x963kdf.h @@ -0,0 +1,23 @@ +/* X963kdf.h -- X9.63 Key Derivation Function +2023-03-22 : Stephane G. : Public domain */ + +#pragma once + +// #include +// #include +#include "sha256.h" +#include +#include + +#define SHA256_DIGEST_SIZE 32 + +#ifdef __cplusplus +extern "C" +{ +#endif + + void x963kdf(unsigned char *buf, const unsigned char *sharedSecret, const unsigned char *sharedInfo, size_t size); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/src/ext/spdlog/async.h b/src/ext/spdlog/async.h new file mode 100644 index 0000000..f795630 --- /dev/null +++ b/src/ext/spdlog/async.h @@ -0,0 +1,93 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +// +// Async logging using global thread pool +// All loggers created here share same global thread pool. +// Each log message is pushed to a queue along with a shared pointer to the +// logger. +// If a logger deleted while having pending messages in the queue, it's actual +// destruction will defer +// until all its messages are processed by the thread pool. +// This is because each message in the queue holds a shared_ptr to the +// originating logger. + +#include +#include +#include + +#include +#include +#include + +namespace spdlog { + +namespace details { +static const size_t default_async_q_size = 8192; +} + +// async logger factory - creates async loggers backed with thread pool. +// if a global thread pool doesn't already exist, create it with default queue +// size of 8192 items and single thread. +template +struct async_factory_impl +{ + template + static std::shared_ptr create(std::string logger_name, SinkArgs &&...args) + { + auto ®istry_inst = details::registry::instance(); + + // create global thread pool if not already exists.. + + auto &mutex = registry_inst.tp_mutex(); + std::lock_guard tp_lock(mutex); + auto tp = registry_inst.get_tp(); + if (tp == nullptr) + { + tp = std::make_shared(details::default_async_q_size, 1); + registry_inst.set_tp(tp); + } + + auto sink = std::make_shared(std::forward(args)...); + auto new_logger = std::make_shared(std::move(logger_name), std::move(sink), std::move(tp), OverflowPolicy); + registry_inst.initialize_logger(new_logger); + return new_logger; + } +}; + +using async_factory = async_factory_impl; +using async_factory_nonblock = async_factory_impl; + +template +inline std::shared_ptr create_async(std::string logger_name, SinkArgs &&...sink_args) +{ + return async_factory::create(std::move(logger_name), std::forward(sink_args)...); +} + +template +inline std::shared_ptr create_async_nb(std::string logger_name, SinkArgs &&...sink_args) +{ + return async_factory_nonblock::create(std::move(logger_name), std::forward(sink_args)...); +} + +// set global thread pool. +inline void init_thread_pool(size_t q_size, size_t thread_count, std::function on_thread_start) +{ + auto tp = std::make_shared(q_size, thread_count, on_thread_start); + details::registry::instance().set_tp(std::move(tp)); +} + +// set global thread pool. +inline void init_thread_pool(size_t q_size, size_t thread_count) +{ + init_thread_pool(q_size, thread_count, [] {}); +} + +// get the global thread pool. +inline std::shared_ptr thread_pool() +{ + return details::registry::instance().get_tp(); +} +} // namespace spdlog diff --git a/src/ext/spdlog/async_logger-inl.h b/src/ext/spdlog/async_logger-inl.h new file mode 100644 index 0000000..f8c9694 --- /dev/null +++ b/src/ext/spdlog/async_logger-inl.h @@ -0,0 +1,92 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include +#include + +#include +#include + +SPDLOG_INLINE spdlog::async_logger::async_logger( + std::string logger_name, sinks_init_list sinks_list, std::weak_ptr tp, async_overflow_policy overflow_policy) + : async_logger(std::move(logger_name), sinks_list.begin(), sinks_list.end(), std::move(tp), overflow_policy) +{} + +SPDLOG_INLINE spdlog::async_logger::async_logger( + std::string logger_name, sink_ptr single_sink, std::weak_ptr tp, async_overflow_policy overflow_policy) + : async_logger(std::move(logger_name), {std::move(single_sink)}, std::move(tp), overflow_policy) +{} + +// send the log message to the thread pool +SPDLOG_INLINE void spdlog::async_logger::sink_it_(const details::log_msg &msg) +{ + if (auto pool_ptr = thread_pool_.lock()) + { + pool_ptr->post_log(shared_from_this(), msg, overflow_policy_); + } + else + { + throw_spdlog_ex("async log: thread pool doesn't exist anymore"); + } +} + +// send flush request to the thread pool +SPDLOG_INLINE void spdlog::async_logger::flush_() +{ + if (auto pool_ptr = thread_pool_.lock()) + { + pool_ptr->post_flush(shared_from_this(), overflow_policy_); + } + else + { + throw_spdlog_ex("async flush: thread pool doesn't exist anymore"); + } +} + +// +// backend functions - called from the thread pool to do the actual job +// +SPDLOG_INLINE void spdlog::async_logger::backend_sink_it_(const details::log_msg &msg) +{ + for (auto &sink : sinks_) + { + if (sink->should_log(msg.level)) + { + SPDLOG_TRY + { + sink->log(msg); + } + SPDLOG_LOGGER_CATCH() + } + } + + if (should_flush_(msg)) + { + backend_flush_(); + } +} + +SPDLOG_INLINE void spdlog::async_logger::backend_flush_() +{ + for (auto &sink : sinks_) + { + SPDLOG_TRY + { + sink->flush(); + } + SPDLOG_LOGGER_CATCH() + } +} + +SPDLOG_INLINE std::shared_ptr spdlog::async_logger::clone(std::string new_name) +{ + auto cloned = std::make_shared(*this); + cloned->name_ = std::move(new_name); + return cloned; +} diff --git a/src/ext/spdlog/async_logger.h b/src/ext/spdlog/async_logger.h new file mode 100644 index 0000000..6f29967 --- /dev/null +++ b/src/ext/spdlog/async_logger.h @@ -0,0 +1,68 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +// Fast asynchronous logger. +// Uses pre allocated queue. +// Creates a single back thread to pop messages from the queue and log them. +// +// Upon each log write the logger: +// 1. Checks if its log level is enough to log the message +// 2. Push a new copy of the message to a queue (or block the caller until +// space is available in the queue) +// Upon destruction, logs all remaining messages in the queue before +// destructing.. + +#include + +namespace spdlog { + +// Async overflow policy - block by default. +enum class async_overflow_policy +{ + block, // Block until message can be enqueued + overrun_oldest // Discard oldest message in the queue if full when trying to + // add new item. +}; + +namespace details { +class thread_pool; +} + +class SPDLOG_API async_logger final : public std::enable_shared_from_this, public logger +{ + friend class details::thread_pool; + +public: + template + async_logger(std::string logger_name, It begin, It end, std::weak_ptr tp, + async_overflow_policy overflow_policy = async_overflow_policy::block) + : logger(std::move(logger_name), begin, end) + , thread_pool_(std::move(tp)) + , overflow_policy_(overflow_policy) + {} + + async_logger(std::string logger_name, sinks_init_list sinks_list, std::weak_ptr tp, + async_overflow_policy overflow_policy = async_overflow_policy::block); + + async_logger(std::string logger_name, sink_ptr single_sink, std::weak_ptr tp, + async_overflow_policy overflow_policy = async_overflow_policy::block); + + std::shared_ptr clone(std::string new_name) override; + +protected: + void sink_it_(const details::log_msg &msg) override; + void flush_() override; + void backend_sink_it_(const details::log_msg &incoming_log_msg); + void backend_flush_(); + +private: + std::weak_ptr thread_pool_; + async_overflow_policy overflow_policy_; +}; +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "async_logger-inl.h" +#endif diff --git a/src/ext/spdlog/cfg/argv.h b/src/ext/spdlog/cfg/argv.h new file mode 100644 index 0000000..36d9f1c --- /dev/null +++ b/src/ext/spdlog/cfg/argv.h @@ -0,0 +1,44 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once +#include +#include + +// +// Init log levels using each argv entry that starts with "SPDLOG_LEVEL=" +// +// set all loggers to debug level: +// example.exe "SPDLOG_LEVEL=debug" + +// set logger1 to trace level +// example.exe "SPDLOG_LEVEL=logger1=trace" + +// turn off all logging except for logger1 and logger2: +// example.exe "SPDLOG_LEVEL=off,logger1=debug,logger2=info" + +namespace spdlog { +namespace cfg { + +// search for SPDLOG_LEVEL= in the args and use it to init the levels +inline void load_argv_levels(int argc, const char **argv) +{ + const std::string spdlog_level_prefix = "SPDLOG_LEVEL="; + for (int i = 1; i < argc; i++) + { + std::string arg = argv[i]; + if (arg.find(spdlog_level_prefix) == 0) + { + auto levels_string = arg.substr(spdlog_level_prefix.size()); + helpers::load_levels(levels_string); + } + } +} + +inline void load_argv_levels(int argc, char **argv) +{ + load_argv_levels(argc, const_cast(argv)); +} + +} // namespace cfg +} // namespace spdlog diff --git a/src/ext/spdlog/cfg/env.h b/src/ext/spdlog/cfg/env.h new file mode 100644 index 0000000..1f39ebb --- /dev/null +++ b/src/ext/spdlog/cfg/env.h @@ -0,0 +1,38 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once +#include +#include +#include + +// +// Init levels and patterns from env variables SPDLOG_LEVEL +// Inspired from Rust's "env_logger" crate (https://crates.io/crates/env_logger). +// Note - fallback to "info" level on unrecognized levels +// +// Examples: +// +// set global level to debug: +// export SPDLOG_LEVEL=debug +// +// turn off all logging except for logger1: +// export SPDLOG_LEVEL="*=off,logger1=debug" +// + +// turn off all logging except for logger1 and logger2: +// export SPDLOG_LEVEL="off,logger1=debug,logger2=info" + +namespace spdlog { +namespace cfg { +inline void load_env_levels() +{ + auto env_val = details::os::getenv("SPDLOG_LEVEL"); + if (!env_val.empty()) + { + helpers::load_levels(env_val); + } +} + +} // namespace cfg +} // namespace spdlog diff --git a/src/ext/spdlog/cfg/helpers-inl.h b/src/ext/spdlog/cfg/helpers-inl.h new file mode 100644 index 0000000..9e4daed --- /dev/null +++ b/src/ext/spdlog/cfg/helpers-inl.h @@ -0,0 +1,120 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include +#include +#include + +#include +#include +#include +#include + +namespace spdlog { +namespace cfg { +namespace helpers { + +// inplace convert to lowercase +inline std::string &to_lower_(std::string &str) +{ + std::transform( + str.begin(), str.end(), str.begin(), [](char ch) { return static_cast((ch >= 'A' && ch <= 'Z') ? ch + ('a' - 'A') : ch); }); + return str; +} + +// inplace trim spaces +inline std::string &trim_(std::string &str) +{ + const char *spaces = " \n\r\t"; + str.erase(str.find_last_not_of(spaces) + 1); + str.erase(0, str.find_first_not_of(spaces)); + return str; +} + +// return (name,value) trimmed pair from given "name=value" string. +// return empty string on missing parts +// "key=val" => ("key", "val") +// " key = val " => ("key", "val") +// "key=" => ("key", "") +// "val" => ("", "val") + +inline std::pair extract_kv_(char sep, const std::string &str) +{ + auto n = str.find(sep); + std::string k, v; + if (n == std::string::npos) + { + v = str; + } + else + { + k = str.substr(0, n); + v = str.substr(n + 1); + } + return std::make_pair(trim_(k), trim_(v)); +} + +// return vector of key/value pairs from sequence of "K1=V1,K2=V2,.." +// "a=AAA,b=BBB,c=CCC,.." => {("a","AAA"),("b","BBB"),("c", "CCC"),...} +inline std::unordered_map extract_key_vals_(const std::string &str) +{ + std::string token; + std::istringstream token_stream(str); + std::unordered_map rv{}; + while (std::getline(token_stream, token, ',')) + { + if (token.empty()) + { + continue; + } + auto kv = extract_kv_('=', token); + rv[kv.first] = kv.second; + } + return rv; +} + +SPDLOG_INLINE void load_levels(const std::string &input) +{ + if (input.empty() || input.size() > 512) + { + return; + } + + auto key_vals = extract_key_vals_(input); + std::unordered_map levels; + level::level_enum global_level = level::info; + bool global_level_found = false; + + for (auto &name_level : key_vals) + { + auto &logger_name = name_level.first; + auto level_name = to_lower_(name_level.second); + auto level = level::from_str(level_name); + // ignore unrecognized level names + if (level == level::off && level_name != "off") + { + continue; + } + if (logger_name.empty()) // no logger name indicate global level + { + global_level_found = true; + global_level = level; + } + else + { + levels[logger_name] = level; + } + } + + details::registry::instance().set_levels(std::move(levels), global_level_found ? &global_level : nullptr); +} + +} // namespace helpers +} // namespace cfg +} // namespace spdlog diff --git a/src/ext/spdlog/cfg/helpers.h b/src/ext/spdlog/cfg/helpers.h new file mode 100644 index 0000000..a795f39 --- /dev/null +++ b/src/ext/spdlog/cfg/helpers.h @@ -0,0 +1,29 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include +#include + +namespace spdlog { +namespace cfg { +namespace helpers { +// +// Init levels from given string +// +// Examples: +// +// set global level to debug: "debug" +// turn off all logging except for logger1: "off,logger1=debug" +// turn off all logging except for logger1 and logger2: "off,logger1=debug,logger2=info" +// +SPDLOG_API void load_levels(const std::string &txt); +} // namespace helpers + +} // namespace cfg +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "helpers-inl.h" +#endif // SPDLOG_HEADER_ONLY diff --git a/src/ext/spdlog/common-inl.h b/src/ext/spdlog/common-inl.h new file mode 100644 index 0000000..be0d8f8 --- /dev/null +++ b/src/ext/spdlog/common-inl.h @@ -0,0 +1,76 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +namespace spdlog { +namespace level { +static string_view_t level_string_views[] SPDLOG_LEVEL_NAMES; + +static const char *short_level_names[] SPDLOG_SHORT_LEVEL_NAMES; + +SPDLOG_INLINE string_view_t &to_string_view(spdlog::level::level_enum l) SPDLOG_NOEXCEPT +{ + return level_string_views[l]; +} + +SPDLOG_INLINE const char *to_short_c_str(spdlog::level::level_enum l) SPDLOG_NOEXCEPT +{ + return short_level_names[l]; +} + +SPDLOG_INLINE spdlog::level::level_enum from_str(const std::string &name) SPDLOG_NOEXCEPT +{ + int level = 0; + for (const auto &level_str : level_string_views) + { + if (level_str == name) + { + return static_cast(level); + } + level++; + } + // check also for "warn" and "err" before giving up.. + if (name == "warn") + { + return level::warn; + } + if (name == "err") + { + return level::err; + } + return level::off; +} +} // namespace level + +SPDLOG_INLINE spdlog_ex::spdlog_ex(std::string msg) + : msg_(std::move(msg)) +{} + +SPDLOG_INLINE spdlog_ex::spdlog_ex(const std::string &msg, int last_errno) +{ + memory_buf_t outbuf; + fmt::format_system_error(outbuf, last_errno, msg); + msg_ = fmt::to_string(outbuf); +} + +SPDLOG_INLINE const char *spdlog_ex::what() const SPDLOG_NOEXCEPT +{ + return msg_.c_str(); +} + +SPDLOG_INLINE void throw_spdlog_ex(const std::string &msg, int last_errno) +{ + SPDLOG_THROW(spdlog_ex(msg, last_errno)); +} + +SPDLOG_INLINE void throw_spdlog_ex(std::string msg) +{ + SPDLOG_THROW(spdlog_ex(std::move(msg))); +} + +} // namespace spdlog diff --git a/src/ext/spdlog/common.h b/src/ext/spdlog/common.h new file mode 100644 index 0000000..0c3ebcb --- /dev/null +++ b/src/ext/spdlog/common.h @@ -0,0 +1,245 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "ext/spdlog/details/null_mutex.h" +#include "tweakme.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef SPDLOG_COMPILED_LIB +#undef SPDLOG_HEADER_ONLY +#if defined(_WIN32) && defined(SPDLOG_SHARED_LIB) +#ifdef spdlog_EXPORTS +#define SPDLOG_API __declspec(dllexport) +#else +#define SPDLOG_API __declspec(dllimport) +#endif +#else // !defined(_WIN32) || !defined(SPDLOG_SHARED_LIB) +#define SPDLOG_API +#endif +#define SPDLOG_INLINE +#else // !defined(SPDLOG_COMPILED_LIB) +#define SPDLOG_API +#define SPDLOG_HEADER_ONLY +#define SPDLOG_INLINE inline +#endif // #ifdef SPDLOG_COMPILED_LIB + +#include "ext/spdlog/fmt/fmt.h" + +// visual studio upto 2013 does not support noexcept nor constexpr +#if defined(_MSC_VER) && (_MSC_VER < 1900) +#define SPDLOG_NOEXCEPT _NOEXCEPT +#define SPDLOG_CONSTEXPR +#else +#define SPDLOG_NOEXCEPT noexcept +#define SPDLOG_CONSTEXPR constexpr +#endif + +#if defined(__GNUC__) || defined(__clang__) +#define SPDLOG_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) +#define SPDLOG_DEPRECATED __declspec(deprecated) +#else +#define SPDLOG_DEPRECATED +#endif + +// disable thread local on msvc 2013 +#ifndef SPDLOG_NO_TLS +#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt) +#define SPDLOG_NO_TLS 1 +#endif +#endif + +#ifndef SPDLOG_FUNCTION +#define SPDLOG_FUNCTION static_cast(__FUNCTION__) +#endif + +#ifdef SPDLOG_NO_EXCEPTIONS +#define SPDLOG_TRY +#define SPDLOG_THROW(ex) \ + do \ + { \ + printf("spdlog fatal error: %s\n", ex.what()); \ + std::abort(); \ + } while (0) +#define SPDLOG_CATCH_ALL() +#else +#define SPDLOG_TRY try +#define SPDLOG_THROW(ex) throw(ex) +#define SPDLOG_CATCH_ALL() catch (...) +#endif + +namespace spdlog { + +class formatter; + +namespace sinks { +class sink; +} + +#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES) +using filename_t = std::wstring; +#define SPDLOG_FILENAME_T(s) L##s +#else +using filename_t = std::string; +#define SPDLOG_FILENAME_T(s) s +#endif + +using log_clock = std::chrono::system_clock; +using sink_ptr = std::shared_ptr; +using sinks_init_list = std::initializer_list; +using err_handler = std::function; +using string_view_t = fmt::basic_string_view; +using wstring_view_t = fmt::basic_string_view; +using memory_buf_t = fmt::basic_memory_buffer; + +#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT +#ifndef _WIN32 +#error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows +#else +template +struct is_convertible_to_wstring_view : std::is_convertible +{}; +#endif // _WIN32 +#else +template +struct is_convertible_to_wstring_view : std::false_type +{}; +#endif // SPDLOG_WCHAR_TO_UTF8_SUPPORT + +#if defined(SPDLOG_NO_ATOMIC_LEVELS) +using level_t = details::null_atomic_int; +#else +using level_t = std::atomic; +#endif + +#define SPDLOG_LEVEL_TRACE 0 +#define SPDLOG_LEVEL_DEBUG 1 +#define SPDLOG_LEVEL_INFO 2 +#define SPDLOG_LEVEL_WARN 3 +#define SPDLOG_LEVEL_ERROR 4 +#define SPDLOG_LEVEL_CRITICAL 5 +#define SPDLOG_LEVEL_OFF 6 + +#if !defined(SPDLOG_ACTIVE_LEVEL) +#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO +#endif + +// Log level enum +namespace level { +enum level_enum +{ + trace = SPDLOG_LEVEL_TRACE, + debug = SPDLOG_LEVEL_DEBUG, + info = SPDLOG_LEVEL_INFO, + warn = SPDLOG_LEVEL_WARN, + err = SPDLOG_LEVEL_ERROR, + critical = SPDLOG_LEVEL_CRITICAL, + off = SPDLOG_LEVEL_OFF, + n_levels +}; + +#if !defined(SPDLOG_LEVEL_NAMES) +#define SPDLOG_LEVEL_NAMES \ + { \ + "trace", "debug", "info", "warning", "error", "critical", "off" \ + } +#endif + +#if !defined(SPDLOG_SHORT_LEVEL_NAMES) + +#define SPDLOG_SHORT_LEVEL_NAMES \ + { \ + "T", "D", "I", "W", "E", "C", "O" \ + } +#endif + +SPDLOG_API string_view_t &to_string_view(spdlog::level::level_enum l) SPDLOG_NOEXCEPT; +SPDLOG_API const char *to_short_c_str(spdlog::level::level_enum l) SPDLOG_NOEXCEPT; +SPDLOG_API spdlog::level::level_enum from_str(const std::string &name) SPDLOG_NOEXCEPT; + +} // namespace level + +// +// Color mode used by sinks with color support. +// +enum class color_mode +{ + always, + automatic, + never +}; + +// +// Pattern time - specific time getting to use for pattern_formatter. +// local time by default +// +enum class pattern_time_type +{ + local, // log localtime + utc // log utc +}; + +// +// Log exception +// +class SPDLOG_API spdlog_ex : public std::exception +{ +public: + explicit spdlog_ex(std::string msg); + spdlog_ex(const std::string &msg, int last_errno); + const char *what() const SPDLOG_NOEXCEPT override; + +private: + std::string msg_; +}; + +SPDLOG_API void throw_spdlog_ex(const std::string &msg, int last_errno); +SPDLOG_API void throw_spdlog_ex(std::string msg); + +struct source_loc +{ + SPDLOG_CONSTEXPR source_loc() = default; + SPDLOG_CONSTEXPR source_loc(const char *filename_in, int line_in, const char *funcname_in) + : filename{filename_in} + , line{line_in} + , funcname{funcname_in} + {} + + SPDLOG_CONSTEXPR bool empty() const SPDLOG_NOEXCEPT + { + return line == 0; + } + const char *filename{nullptr}; + int line{0}; + const char *funcname{nullptr}; +}; + +namespace details { +// make_unique support for pre c++14 + +#if __cplusplus >= 201402L // C++14 and beyond +using std::make_unique; +#else +template +std::unique_ptr make_unique(Args &&...args) +{ + static_assert(!std::is_array::value, "arrays not supported"); + return std::unique_ptr(new T(std::forward(args)...)); +} +#endif +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "common-inl.h" +#endif diff --git a/src/ext/spdlog/details/backtracer-inl.h b/src/ext/spdlog/details/backtracer-inl.h new file mode 100644 index 0000000..21553c2 --- /dev/null +++ b/src/ext/spdlog/details/backtracer-inl.h @@ -0,0 +1,69 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif +namespace spdlog { +namespace details { +SPDLOG_INLINE backtracer::backtracer(const backtracer &other) +{ + std::lock_guard lock(other.mutex_); + enabled_ = other.enabled(); + messages_ = other.messages_; +} + +SPDLOG_INLINE backtracer::backtracer(backtracer &&other) SPDLOG_NOEXCEPT +{ + std::lock_guard lock(other.mutex_); + enabled_ = other.enabled(); + messages_ = std::move(other.messages_); +} + +SPDLOG_INLINE backtracer &backtracer::operator=(backtracer other) +{ + std::lock_guard lock(mutex_); + enabled_ = other.enabled(); + messages_ = std::move(other.messages_); + return *this; +} + +SPDLOG_INLINE void backtracer::enable(size_t size) +{ + std::lock_guard lock{mutex_}; + enabled_.store(true, std::memory_order_relaxed); + messages_ = circular_q{size}; +} + +SPDLOG_INLINE void backtracer::disable() +{ + std::lock_guard lock{mutex_}; + enabled_.store(false, std::memory_order_relaxed); +} + +SPDLOG_INLINE bool backtracer::enabled() const +{ + return enabled_.load(std::memory_order_relaxed); +} + +SPDLOG_INLINE void backtracer::push_back(const log_msg &msg) +{ + std::lock_guard lock{mutex_}; + messages_.push_back(log_msg_buffer{msg}); +} + +// pop all items in the q and apply the given fun on each of them. +SPDLOG_INLINE void backtracer::foreach_pop(std::function fun) +{ + std::lock_guard lock{mutex_}; + while (!messages_.empty()) + { + auto &front_msg = messages_.front(); + fun(front_msg); + messages_.pop_front(); + } +} +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/backtracer.h b/src/ext/spdlog/details/backtracer.h new file mode 100644 index 0000000..c4a520d --- /dev/null +++ b/src/ext/spdlog/details/backtracer.h @@ -0,0 +1,45 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "circular_q.h" +#include "log_msg_buffer.h" + +#include +#include +#include + +// Store log messages in circular buffer. +// Useful for storing debug data in case of error/warning happens. + +namespace spdlog { +namespace details { +class SPDLOG_API backtracer +{ + mutable std::mutex mutex_; + std::atomic enabled_{false}; + circular_q messages_; + +public: + backtracer() = default; + backtracer(const backtracer &other); + + backtracer(backtracer &&other) SPDLOG_NOEXCEPT; + backtracer &operator=(backtracer other); + + void enable(size_t size); + void disable(); + bool enabled() const; + void push_back(const log_msg &msg); + + // pop all items in the q and apply the given fun on each of them. + void foreach_pop(std::function fun); +}; + +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "backtracer-inl.h" +#endif \ No newline at end of file diff --git a/src/ext/spdlog/details/circular_q.h b/src/ext/spdlog/details/circular_q.h new file mode 100644 index 0000000..1f2712e --- /dev/null +++ b/src/ext/spdlog/details/circular_q.h @@ -0,0 +1,141 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +// circular q view of std::vector. +#pragma once + +#include +#include + +namespace spdlog { +namespace details { +template +class circular_q +{ + size_t max_items_ = 0; + typename std::vector::size_type head_ = 0; + typename std::vector::size_type tail_ = 0; + size_t overrun_counter_ = 0; + std::vector v_; + +public: + using value_type = T; + + // empty ctor - create a disabled queue with no elements allocated at all + circular_q() = default; + + explicit circular_q(size_t max_items) + : max_items_(max_items + 1) // one item is reserved as marker for full q + , v_(max_items_) + {} + + circular_q(const circular_q &) = default; + circular_q &operator=(const circular_q &) = default; + + // move cannot be default, + // since we need to reset head_, tail_, etc to zero in the moved object + circular_q(circular_q &&other) SPDLOG_NOEXCEPT + { + copy_moveable(std::move(other)); + } + + circular_q &operator=(circular_q &&other) SPDLOG_NOEXCEPT + { + copy_moveable(std::move(other)); + return *this; + } + + // push back, overrun (oldest) item if no room left + void push_back(T &&item) + { + if (max_items_ > 0) + { + v_[tail_] = std::move(item); + tail_ = (tail_ + 1) % max_items_; + + if (tail_ == head_) // overrun last item if full + { + head_ = (head_ + 1) % max_items_; + ++overrun_counter_; + } + } + } + + // Return reference to the front item. + // If there are no elements in the container, the behavior is undefined. + const T &front() const + { + return v_[head_]; + } + + T &front() + { + return v_[head_]; + } + + // Return number of elements actually stored + size_t size() const + { + if (tail_ >= head_) + { + return tail_ - head_; + } + else + { + return max_items_ - (head_ - tail_); + } + } + + // Return const reference to item by index. + // If index is out of range 0…size()-1, the behavior is undefined. + const T &at(size_t i) const + { + assert(i < size()); + return v_[(head_ + i) % max_items_]; + } + + // Pop item from front. + // If there are no elements in the container, the behavior is undefined. + void pop_front() + { + head_ = (head_ + 1) % max_items_; + } + + bool empty() const + { + return tail_ == head_; + } + + bool full() const + { + // head is ahead of the tail by 1 + if (max_items_ > 0) + { + return ((tail_ + 1) % max_items_) == head_; + } + return false; + } + + size_t overrun_counter() const + { + return overrun_counter_; + } + +private: + // copy from other&& and reset it to disabled state + void copy_moveable(circular_q &&other) SPDLOG_NOEXCEPT + { + max_items_ = other.max_items_; + head_ = other.head_; + tail_ = other.tail_; + overrun_counter_ = other.overrun_counter_; + v_ = std::move(other.v_); + + // put &&other in disabled, but valid state + other.max_items_ = 0; + other.head_ = other.tail_ = 0; + other.overrun_counter_ = 0; + } +}; +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/console_globals.h b/src/ext/spdlog/details/console_globals.h new file mode 100644 index 0000000..eddbd32 --- /dev/null +++ b/src/ext/spdlog/details/console_globals.h @@ -0,0 +1,32 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "null_mutex.h" +#include + +namespace spdlog { +namespace details { + +struct console_mutex +{ + using mutex_t = std::mutex; + static mutex_t &mutex() + { + static mutex_t s_mutex; + return s_mutex; + } +}; + +struct console_nullmutex +{ + using mutex_t = null_mutex; + static mutex_t &mutex() + { + static mutex_t s_mutex; + return s_mutex; + } +}; +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/file_helper-inl.h b/src/ext/spdlog/details/file_helper-inl.h new file mode 100644 index 0000000..10de26e --- /dev/null +++ b/src/ext/spdlog/details/file_helper-inl.h @@ -0,0 +1,132 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include "ext/spdlog/common.h" +#include "os.h" + +#include +#include +#include +#include +#include +#include + +namespace spdlog { +namespace details { + +SPDLOG_INLINE file_helper::~file_helper() +{ + close(); +} + +SPDLOG_INLINE void file_helper::open(const filename_t &fname, bool truncate) +{ + close(); + filename_ = fname; + auto *mode = truncate ? SPDLOG_FILENAME_T("wb") : SPDLOG_FILENAME_T("ab"); + + for (int tries = 0; tries < open_tries_; ++tries) + { + // create containing folder if not exists already. + os::create_dir(os::dir_name(fname)); + if (!os::fopen_s(&fd_, fname, mode)) + { + return; + } + + details::os::sleep_for_millis(open_interval_); + } + + throw_spdlog_ex("Failed opening file " + os::filename_to_str(filename_) + " for writing", errno); +} + +SPDLOG_INLINE void file_helper::reopen(bool truncate) +{ + if (filename_.empty()) + { + throw_spdlog_ex("Failed re opening file - was not opened before"); + } + this->open(filename_, truncate); +} + +SPDLOG_INLINE void file_helper::flush() +{ + std::fflush(fd_); +} + +SPDLOG_INLINE void file_helper::close() +{ + if (fd_ != nullptr) + { + std::fclose(fd_); + fd_ = nullptr; + } +} + +SPDLOG_INLINE void file_helper::write(const memory_buf_t &buf) +{ + size_t msg_size = buf.size(); + auto data = buf.data(); + if (std::fwrite(data, 1, msg_size, fd_) != msg_size) + { + throw_spdlog_ex("Failed writing to file " + os::filename_to_str(filename_), errno); + } +} + +SPDLOG_INLINE size_t file_helper::size() const +{ + if (fd_ == nullptr) + { + throw_spdlog_ex("Cannot use size() on closed file " + os::filename_to_str(filename_)); + } + return os::filesize(fd_); +} + +SPDLOG_INLINE const filename_t &file_helper::filename() const +{ + return filename_; +} + +// +// return file path and its extension: +// +// "mylog.txt" => ("mylog", ".txt") +// "mylog" => ("mylog", "") +// "mylog." => ("mylog.", "") +// "/dir1/dir2/mylog.txt" => ("/dir1/dir2/mylog", ".txt") +// +// the starting dot in filenames is ignored (hidden files): +// +// ".mylog" => (".mylog". "") +// "my_folder/.mylog" => ("my_folder/.mylog", "") +// "my_folder/.mylog.txt" => ("my_folder/.mylog", ".txt") +SPDLOG_INLINE std::tuple file_helper::split_by_extension(const filename_t &fname) +{ + auto ext_index = fname.rfind('.'); + + // no valid extension found - return whole path and empty string as + // extension + if (ext_index == filename_t::npos || ext_index == 0 || ext_index == fname.size() - 1) + { + return std::make_tuple(fname, filename_t()); + } + + // treat cases like "/etc/rc.d/somelogfile or "/abc/.hiddenfile" + auto folder_index = fname.rfind(details::os::folder_sep); + if (folder_index != filename_t::npos && folder_index >= ext_index - 1) + { + return std::make_tuple(fname, filename_t()); + } + + // finally - return a valid base and extension tuple + return std::make_tuple(fname.substr(0, ext_index), fname.substr(ext_index)); +} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/file_helper.h b/src/ext/spdlog/details/file_helper.h new file mode 100644 index 0000000..9209231 --- /dev/null +++ b/src/ext/spdlog/details/file_helper.h @@ -0,0 +1,59 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "ext/spdlog/common.h" +#include + +namespace spdlog { +namespace details { + +// Helper class for file sinks. +// When failing to open a file, retry several times(5) with a delay interval(10 ms). +// Throw spdlog_ex exception on errors. + +class SPDLOG_API file_helper +{ +public: + explicit file_helper() = default; + + file_helper(const file_helper &) = delete; + file_helper &operator=(const file_helper &) = delete; + ~file_helper(); + + void open(const filename_t &fname, bool truncate = false); + void reopen(bool truncate); + void flush(); + void close(); + void write(const memory_buf_t &buf); + size_t size() const; + const filename_t &filename() const; + + // + // return file path and its extension: + // + // "mylog.txt" => ("mylog", ".txt") + // "mylog" => ("mylog", "") + // "mylog." => ("mylog.", "") + // "/dir1/dir2/mylog.txt" => ("/dir1/dir2/mylog", ".txt") + // + // the starting dot in filenames is ignored (hidden files): + // + // ".mylog" => (".mylog". "") + // "my_folder/.mylog" => ("my_folder/.mylog", "") + // "my_folder/.mylog.txt" => ("my_folder/.mylog", ".txt") + static std::tuple split_by_extension(const filename_t &fname); + +private: + const int open_tries_ = 5; + const int open_interval_ = 10; + std::FILE *fd_{nullptr}; + filename_t filename_; +}; +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "file_helper-inl.h" +#endif diff --git a/src/ext/spdlog/details/fmt_helper.h b/src/ext/spdlog/details/fmt_helper.h new file mode 100644 index 0000000..b8faca4 --- /dev/null +++ b/src/ext/spdlog/details/fmt_helper.h @@ -0,0 +1,116 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) +#pragma once + +#include "ext/spdlog/common.h" +#include "ext/spdlog/fmt/fmt.h" +#include +#include + +// Some fmt helpers to efficiently format and pad ints and strings +namespace spdlog { +namespace details { +namespace fmt_helper { + +inline spdlog::string_view_t to_string_view(const memory_buf_t &buf) SPDLOG_NOEXCEPT +{ + return spdlog::string_view_t{buf.data(), buf.size()}; +} + +inline void append_string_view(spdlog::string_view_t view, memory_buf_t &dest) +{ + auto *buf_ptr = view.data(); + dest.append(buf_ptr, buf_ptr + view.size()); +} + +template +inline void append_int(T n, memory_buf_t &dest) +{ + fmt::format_int i(n); + dest.append(i.data(), i.data() + i.size()); +} + +template +inline unsigned int count_digits(T n) +{ + using count_type = typename std::conditional<(sizeof(T) > sizeof(uint32_t)), uint64_t, uint32_t>::type; + return static_cast(fmt:: +// fmt 7.0.0 renamed the internal namespace to detail. +// See: https://github.com/fmtlib/fmt/issues/1538 +#if FMT_VERSION < 70000 + internal +#else + detail +#endif + ::count_digits(static_cast(n))); +} + +inline void pad2(int n, memory_buf_t &dest) +{ + if (n >= 0 && n < 100) // 0-99 + { + dest.push_back(static_cast('0' + n / 10)); + dest.push_back(static_cast('0' + n % 10)); + } + else // unlikely, but just in case, let fmt deal with it + { + fmt::format_to(dest, "{:02}", n); + } +} + +template +inline void pad_uint(T n, unsigned int width, memory_buf_t &dest) +{ + static_assert(std::is_unsigned::value, "pad_uint must get unsigned T"); + for (auto digits = count_digits(n); digits < width; digits++) + { + dest.push_back('0'); + } + append_int(n, dest); +} + +template +inline void pad3(T n, memory_buf_t &dest) +{ + static_assert(std::is_unsigned::value, "pad3 must get unsigned T"); + if (n < 1000) + { + dest.push_back(static_cast(n / 100 + '0')); + n = n % 100; + dest.push_back(static_cast((n / 10) + '0')); + dest.push_back(static_cast((n % 10) + '0')); + } + else + { + append_int(n, dest); + } +} + +template +inline void pad6(T n, memory_buf_t &dest) +{ + pad_uint(n, 6, dest); +} + +template +inline void pad9(T n, memory_buf_t &dest) +{ + pad_uint(n, 9, dest); +} + +// return fraction of a second of the given time_point. +// e.g. +// fraction(tp) -> will return the millis part of the second +template +inline ToDuration time_fraction(log_clock::time_point tp) +{ + using std::chrono::duration_cast; + using std::chrono::seconds; + auto duration = tp.time_since_epoch(); + auto secs = duration_cast(duration); + return duration_cast(duration) - duration_cast(secs); +} + +} // namespace fmt_helper +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/log_msg-inl.h b/src/ext/spdlog/details/log_msg-inl.h new file mode 100644 index 0000000..2cd86c3 --- /dev/null +++ b/src/ext/spdlog/details/log_msg-inl.h @@ -0,0 +1,37 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include "os.h" + +namespace spdlog { +namespace details { + +SPDLOG_INLINE log_msg::log_msg(spdlog::log_clock::time_point log_time, spdlog::source_loc loc, string_view_t a_logger_name, + spdlog::level::level_enum lvl, spdlog::string_view_t msg) + : logger_name(a_logger_name) + , level(lvl) + , time(log_time) +#ifndef SPDLOG_NO_THREAD_ID + , thread_id(os::thread_id()) +#endif + , source(loc) + , payload(msg) +{} + +SPDLOG_INLINE log_msg::log_msg( + spdlog::source_loc loc, string_view_t a_logger_name, spdlog::level::level_enum lvl, spdlog::string_view_t msg) + : log_msg(os::now(), loc, a_logger_name, lvl, msg) +{} + +SPDLOG_INLINE log_msg::log_msg(string_view_t a_logger_name, spdlog::level::level_enum lvl, spdlog::string_view_t msg) + : log_msg(os::now(), source_loc{}, a_logger_name, lvl, msg) +{} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/log_msg.h b/src/ext/spdlog/details/log_msg.h new file mode 100644 index 0000000..84c2514 --- /dev/null +++ b/src/ext/spdlog/details/log_msg.h @@ -0,0 +1,36 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "ext/spdlog/common.h" +#include + +namespace spdlog { +namespace details { +struct SPDLOG_API log_msg +{ + log_msg() = default; + log_msg(log_clock::time_point log_time, source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg); + log_msg(source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg); + log_msg(string_view_t logger_name, level::level_enum lvl, string_view_t msg); + log_msg(const log_msg &other) = default; + + string_view_t logger_name; + level::level_enum level{level::off}; + log_clock::time_point time; + size_t thread_id{0}; + + // wrapping the formatted text with color (updated by pattern_formatter). + mutable size_t color_range_start{0}; + mutable size_t color_range_end{0}; + + source_loc source; + string_view_t payload; +}; +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "log_msg-inl.h" +#endif diff --git a/src/ext/spdlog/details/log_msg_buffer-inl.h b/src/ext/spdlog/details/log_msg_buffer-inl.h new file mode 100644 index 0000000..51f4d5b --- /dev/null +++ b/src/ext/spdlog/details/log_msg_buffer-inl.h @@ -0,0 +1,58 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +namespace spdlog { +namespace details { + +SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg &orig_msg) + : log_msg{orig_msg} +{ + buffer.append(logger_name.begin(), logger_name.end()); + buffer.append(payload.begin(), payload.end()); + update_string_views(); +} + +SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg_buffer &other) + : log_msg{other} +{ + buffer.append(logger_name.begin(), logger_name.end()); + buffer.append(payload.begin(), payload.end()); + update_string_views(); +} + +SPDLOG_INLINE log_msg_buffer::log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT : log_msg{other}, buffer{std::move(other.buffer)} +{ + update_string_views(); +} + +SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(const log_msg_buffer &other) +{ + log_msg::operator=(other); + buffer.clear(); + buffer.append(other.buffer.data(), other.buffer.data() + other.buffer.size()); + update_string_views(); + return *this; +} + +SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT +{ + log_msg::operator=(other); + buffer = std::move(other.buffer); + update_string_views(); + return *this; +} + +SPDLOG_INLINE void log_msg_buffer::update_string_views() +{ + logger_name = string_view_t{buffer.data(), logger_name.size()}; + payload = string_view_t{buffer.data() + logger_name.size(), payload.size()}; +} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/log_msg_buffer.h b/src/ext/spdlog/details/log_msg_buffer.h new file mode 100644 index 0000000..315f79b --- /dev/null +++ b/src/ext/spdlog/details/log_msg_buffer.h @@ -0,0 +1,33 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "log_msg.h" + +namespace spdlog { +namespace details { + +// Extend log_msg with internal buffer to store its payload. +// This is needed since log_msg holds string_views that points to stack data. + +class SPDLOG_API log_msg_buffer : public log_msg +{ + memory_buf_t buffer; + void update_string_views(); + +public: + log_msg_buffer() = default; + explicit log_msg_buffer(const log_msg &orig_msg); + log_msg_buffer(const log_msg_buffer &other); + log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT; + log_msg_buffer &operator=(const log_msg_buffer &other); + log_msg_buffer &operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT; +}; + +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "log_msg_buffer-inl.h" +#endif diff --git a/src/ext/spdlog/details/mpmc_blocking_q.h b/src/ext/spdlog/details/mpmc_blocking_q.h new file mode 100644 index 0000000..5c3cca7 --- /dev/null +++ b/src/ext/spdlog/details/mpmc_blocking_q.h @@ -0,0 +1,126 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +// multi producer-multi consumer blocking queue. +// enqueue(..) - will block until room found to put the new message. +// enqueue_nowait(..) - will return immediately with false if no room left in +// the queue. +// dequeue_for(..) - will block until the queue is not empty or timeout have +// passed. + +#include + +#include +#include + +namespace spdlog { +namespace details { + +template +class mpmc_blocking_queue +{ +public: + using item_type = T; + explicit mpmc_blocking_queue(size_t max_items) + : q_(max_items) + {} + +#ifndef __MINGW32__ + // try to enqueue and block if no room left + void enqueue(T &&item) + { + { + std::unique_lock lock(queue_mutex_); + pop_cv_.wait(lock, [this] { return !this->q_.full(); }); + q_.push_back(std::move(item)); + } + push_cv_.notify_one(); + } + + // enqueue immediately. overrun oldest message in the queue if no room left. + void enqueue_nowait(T &&item) + { + { + std::unique_lock lock(queue_mutex_); + q_.push_back(std::move(item)); + } + push_cv_.notify_one(); + } + + // try to dequeue item. if no item found. wait upto timeout and try again + // Return true, if succeeded dequeue item, false otherwise + bool dequeue_for(T &popped_item, std::chrono::milliseconds wait_duration) + { + { + std::unique_lock lock(queue_mutex_); + if (!push_cv_.wait_for(lock, wait_duration, [this] { return !this->q_.empty(); })) + { + return false; + } + popped_item = std::move(q_.front()); + q_.pop_front(); + } + pop_cv_.notify_one(); + return true; + } + +#else + // apparently mingw deadlocks if the mutex is released before cv.notify_one(), + // so release the mutex at the very end each function. + + // try to enqueue and block if no room left + void enqueue(T &&item) + { + std::unique_lock lock(queue_mutex_); + pop_cv_.wait(lock, [this] { return !this->q_.full(); }); + q_.push_back(std::move(item)); + push_cv_.notify_one(); + } + + // enqueue immediately. overrun oldest message in the queue if no room left. + void enqueue_nowait(T &&item) + { + std::unique_lock lock(queue_mutex_); + q_.push_back(std::move(item)); + push_cv_.notify_one(); + } + + // try to dequeue item. if no item found. wait upto timeout and try again + // Return true, if succeeded dequeue item, false otherwise + bool dequeue_for(T &popped_item, std::chrono::milliseconds wait_duration) + { + std::unique_lock lock(queue_mutex_); + if (!push_cv_.wait_for(lock, wait_duration, [this] { return !this->q_.empty(); })) + { + return false; + } + popped_item = std::move(q_.front()); + q_.pop_front(); + pop_cv_.notify_one(); + return true; + } + +#endif + + size_t overrun_counter() + { + std::unique_lock lock(queue_mutex_); + return q_.overrun_counter(); + } + + size_t size() + { + std::unique_lock lock(queue_mutex_); + return q_.size(); + } + +private: + std::mutex queue_mutex_; + std::condition_variable push_cv_; + std::condition_variable pop_cv_; + spdlog::details::circular_q q_; +}; +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/null_mutex.h b/src/ext/spdlog/details/null_mutex.h new file mode 100644 index 0000000..83533d4 --- /dev/null +++ b/src/ext/spdlog/details/null_mutex.h @@ -0,0 +1,49 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include +#include +// null, no cost dummy "mutex" and dummy "atomic" int + +namespace spdlog { +namespace details { +struct null_mutex +{ + void lock() const {} + void unlock() const {} + bool try_lock() const + { + return true; + } +}; + +struct null_atomic_int +{ + int value; + null_atomic_int() = default; + + explicit null_atomic_int(int new_value) + : value(new_value) + {} + + int load(std::memory_order = std::memory_order_relaxed) const + { + return value; + } + + void store(int new_value, std::memory_order = std::memory_order_relaxed) + { + value = new_value; + } + + int exchange(int new_value, std::memory_order = std::memory_order_relaxed) + { + std::swap(new_value, value); + return new_value; // return value before the call + } +}; + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/os-inl.h b/src/ext/spdlog/details/os-inl.h new file mode 100644 index 0000000..2004479 --- /dev/null +++ b/src/ext/spdlog/details/os-inl.h @@ -0,0 +1,554 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include "ext/spdlog/common.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _WIN32 + +#include // _get_osfhandle and _isatty support +#include // _get_pid support +#include + +#ifdef __MINGW32__ +#include +#endif + +#if defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES) +#include +#endif + +#include // for _mkdir/_wmkdir + +#else // unix + +#include +#include + +#ifdef __linux__ +#include //Use gettid() syscall under linux to get thread id + +#elif defined(_AIX) +#include // for pthread_getthreadid_np + +#elif defined(__DragonFly__) || defined(__FreeBSD__) +#include // for pthread_getthreadid_np + +#elif defined(__NetBSD__) +#include // for _lwp_self + +#elif defined(__sun) +#include // for thr_self +#endif + +#endif // unix + +#ifndef __has_feature // Clang - feature checking macros. +#define __has_feature(x) 0 // Compatibility with non-clang compilers. +#endif + +namespace spdlog { +namespace details { +namespace os { + +SPDLOG_INLINE spdlog::log_clock::time_point now() SPDLOG_NOEXCEPT +{ + +#if defined __linux__ && defined SPDLOG_CLOCK_COARSE + timespec ts; + ::clock_gettime(CLOCK_REALTIME_COARSE, &ts); + return std::chrono::time_point( + std::chrono::duration_cast(std::chrono::seconds(ts.tv_sec) + std::chrono::nanoseconds(ts.tv_nsec))); + +#else + return log_clock::now(); +#endif +} +SPDLOG_INLINE std::tm localtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT +{ + +#ifdef _WIN32 + std::tm tm; + ::localtime_s(&tm, &time_tt); +#else + std::tm tm; + ::localtime_r(&time_tt, &tm); +#endif + return tm; +} + +SPDLOG_INLINE std::tm localtime() SPDLOG_NOEXCEPT +{ + std::time_t now_t = ::time(nullptr); + return localtime(now_t); +} + +SPDLOG_INLINE std::tm gmtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT +{ + +#ifdef _WIN32 + std::tm tm; + ::gmtime_s(&tm, &time_tt); +#else + std::tm tm; + ::gmtime_r(&time_tt, &tm); +#endif + return tm; +} + +SPDLOG_INLINE std::tm gmtime() SPDLOG_NOEXCEPT +{ + std::time_t now_t = ::time(nullptr); + return gmtime(now_t); +} + +// fopen_s on non windows for writing +SPDLOG_INLINE bool fopen_s(FILE **fp, const filename_t &filename, const filename_t &mode) +{ +#ifdef _WIN32 +#ifdef SPDLOG_WCHAR_FILENAMES + *fp = ::_wfsopen((filename.c_str()), mode.c_str(), _SH_DENYNO); +#else + *fp = ::_fsopen((filename.c_str()), mode.c_str(), _SH_DENYNO); +#endif +#if defined(SPDLOG_PREVENT_CHILD_FD) + if (*fp != nullptr) + { + auto file_handle = reinterpret_cast(_get_osfhandle(::_fileno(*fp))); + if (!::SetHandleInformation(file_handle, HANDLE_FLAG_INHERIT, 0)) + { + ::fclose(*fp); + *fp = nullptr; + } + } +#endif +#else // unix +#if defined(SPDLOG_PREVENT_CHILD_FD) + const int mode_flag = mode == SPDLOG_FILENAME_T("ab") ? O_APPEND : O_TRUNC; + const int fd = ::open((filename.c_str()), O_CREAT | O_WRONLY | O_CLOEXEC | mode_flag, mode_t(0644)); + if (fd == -1) + { + return false; + } + *fp = ::fdopen(fd, mode.c_str()); + if (*fp == nullptr) + { + ::close(fd); + } +#else + *fp = ::fopen((filename.c_str()), mode.c_str()); +#endif +#endif + + return *fp == nullptr; +} + +SPDLOG_INLINE int remove(const filename_t &filename) SPDLOG_NOEXCEPT +{ +#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES) + return ::_wremove(filename.c_str()); +#else + return std::remove(filename.c_str()); +#endif +} + +SPDLOG_INLINE int remove_if_exists(const filename_t &filename) SPDLOG_NOEXCEPT +{ + return path_exists(filename) ? remove(filename) : 0; +} + +SPDLOG_INLINE int rename(const filename_t &filename1, const filename_t &filename2) SPDLOG_NOEXCEPT +{ +#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES) + return ::_wrename(filename1.c_str(), filename2.c_str()); +#else + return std::rename(filename1.c_str(), filename2.c_str()); +#endif +} + +// Return true if path exists (file or directory) +SPDLOG_INLINE bool path_exists(const filename_t &filename) SPDLOG_NOEXCEPT +{ +#ifdef _WIN32 +#ifdef SPDLOG_WCHAR_FILENAMES + auto attribs = ::GetFileAttributesW(filename.c_str()); +#else + auto attribs = ::GetFileAttributesA(filename.c_str()); +#endif + return attribs != INVALID_FILE_ATTRIBUTES; +#else // common linux/unix all have the stat system call + struct stat buffer; + return (::stat(filename.c_str(), &buffer) == 0); +#endif +} + +// Return file size according to open FILE* object +SPDLOG_INLINE size_t filesize(FILE *f) +{ + if (f == nullptr) + { + throw_spdlog_ex("Failed getting file size. fd is null"); + } +#if defined(_WIN32) && !defined(__CYGWIN__) + int fd = ::_fileno(f); +#if _WIN64 // 64 bits + __int64 ret = ::_filelengthi64(fd); + if (ret >= 0) + { + return static_cast(ret); + } + +#else // windows 32 bits + long ret = ::_filelength(fd); + if (ret >= 0) + { + return static_cast(ret); + } +#endif + +#else // unix +// OpenBSD doesn't compile with :: before the fileno(..) +#if defined(__OpenBSD__) + int fd = fileno(f); +#else + int fd = ::fileno(f); +#endif +// 64 bits(but not in osx or cygwin, where fstat64 is deprecated) +#if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64)) + struct stat64 st; + if (::fstat64(fd, &st) == 0) + { + return static_cast(st.st_size); + } +#else // other unix or linux 32 bits or cygwin + struct stat st; + if (::fstat(fd, &st) == 0) + { + return static_cast(st.st_size); + } +#endif +#endif + throw_spdlog_ex("Failed getting file size from fd", errno); + return 0; // will not be reached. +} + +// Return utc offset in minutes or throw spdlog_ex on failure +SPDLOG_INLINE int utc_minutes_offset(const std::tm &tm) +{ + +#ifdef _WIN32 +#if _WIN32_WINNT < _WIN32_WINNT_WS08 + TIME_ZONE_INFORMATION tzinfo; + auto rv = ::GetTimeZoneInformation(&tzinfo); +#else + DYNAMIC_TIME_ZONE_INFORMATION tzinfo; + auto rv = ::GetDynamicTimeZoneInformation(&tzinfo); +#endif + if (rv == TIME_ZONE_ID_INVALID) + throw_spdlog_ex("Failed getting timezone info. ", errno); + + int offset = -tzinfo.Bias; + if (tm.tm_isdst) + { + offset -= tzinfo.DaylightBias; + } + else + { + offset -= tzinfo.StandardBias; + } + return offset; +#else + +#if defined(sun) || defined(__sun) || defined(_AIX) || (!defined(_BSD_SOURCE) && !defined(_GNU_SOURCE)) + // 'tm_gmtoff' field is BSD extension and it's missing on SunOS/Solaris + struct helper + { + static long int calculate_gmt_offset(const std::tm &localtm = details::os::localtime(), const std::tm &gmtm = details::os::gmtime()) + { + int local_year = localtm.tm_year + (1900 - 1); + int gmt_year = gmtm.tm_year + (1900 - 1); + + long int days = ( + // difference in day of year + localtm.tm_yday - + gmtm.tm_yday + + // + intervening leap days + + ((local_year >> 2) - (gmt_year >> 2)) - (local_year / 100 - gmt_year / 100) + + ((local_year / 100 >> 2) - (gmt_year / 100 >> 2)) + + // + difference in years * 365 */ + + (long int)(local_year - gmt_year) * 365); + + long int hours = (24 * days) + (localtm.tm_hour - gmtm.tm_hour); + long int mins = (60 * hours) + (localtm.tm_min - gmtm.tm_min); + long int secs = (60 * mins) + (localtm.tm_sec - gmtm.tm_sec); + + return secs; + } + }; + + auto offset_seconds = helper::calculate_gmt_offset(tm); +#else + auto offset_seconds = tm.tm_gmtoff; +#endif + + return static_cast(offset_seconds / 60); +#endif +} + +// Return current thread id as size_t +// It exists because the std::this_thread::get_id() is much slower(especially +// under VS 2013) +SPDLOG_INLINE size_t _thread_id() SPDLOG_NOEXCEPT +{ +#ifdef _WIN32 + return static_cast(::GetCurrentThreadId()); +#elif defined(__linux__) +#if defined(__ANDROID__) && defined(__ANDROID_API__) && (__ANDROID_API__ < 21) +#define SYS_gettid __NR_gettid +#endif + return static_cast(::syscall(SYS_gettid)); +#elif defined(_AIX) || defined(__DragonFly__) || defined(__FreeBSD__) + return static_cast(::pthread_getthreadid_np()); +#elif defined(__NetBSD__) + return static_cast(::_lwp_self()); +#elif defined(__OpenBSD__) + return static_cast(::getthrid()); +#elif defined(__sun) + return static_cast(::thr_self()); +#elif __APPLE__ + uint64_t tid; + pthread_threadid_np(nullptr, &tid); + return static_cast(tid); +#else // Default to standard C++11 (other Unix) + return static_cast(std::hash()(std::this_thread::get_id())); +#endif +} + +// Return current thread id as size_t (from thread local storage) +SPDLOG_INLINE size_t thread_id() SPDLOG_NOEXCEPT +{ +#if defined(SPDLOG_NO_TLS) + return _thread_id(); +#else // cache thread id in tls + static thread_local const size_t tid = _thread_id(); + return tid; +#endif +} + +// This is avoid msvc issue in sleep_for that happens if the clock changes. +// See https://github.com/gabime/spdlog/issues/609 +SPDLOG_INLINE void sleep_for_millis(int milliseconds) SPDLOG_NOEXCEPT +{ +#if defined(_WIN32) + ::Sleep(milliseconds); +#else + std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds)); +#endif +} + +// wchar support for windows file names (SPDLOG_WCHAR_FILENAMES must be defined) +#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES) +SPDLOG_INLINE std::string filename_to_str(const filename_t &filename) +{ + memory_buf_t buf; + wstr_to_utf8buf(filename, buf); + return fmt::to_string(buf); +} +#else +SPDLOG_INLINE std::string filename_to_str(const filename_t &filename) +{ + return filename; +} +#endif + +SPDLOG_INLINE int pid() SPDLOG_NOEXCEPT +{ + +#ifdef _WIN32 + return static_cast(::GetCurrentProcessId()); +#else + return static_cast(::getpid()); +#endif +} + +// Determine if the terminal supports colors +// Based on: https://github.com/agauniyal/rang/ +SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT +{ +#ifdef _WIN32 + return true; +#else + static constexpr std::array terms = { + {"ansi", "color", "console", "cygwin", "gnome", "konsole", "kterm", "linux", "msys", "putty", "rxvt", "screen", "vt100", "xterm"}}; + + const char *env_p = std::getenv("TERM"); + if (env_p == nullptr) + { + return false; + } + + static const bool result = + std::any_of(terms.begin(), terms.end(), [&](const char *term) { return std::strstr(env_p, term) != nullptr; }); + return result; +#endif +} + +// Determine if the terminal attached +// Source: https://github.com/agauniyal/rang/ +SPDLOG_INLINE bool in_terminal(FILE *file) SPDLOG_NOEXCEPT +{ + +#ifdef _WIN32 + return ::_isatty(_fileno(file)) != 0; +#else + return ::isatty(fileno(file)) != 0; +#endif +} + +#if (defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES)) && defined(_WIN32) +SPDLOG_INLINE void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target) +{ + if (wstr.size() > static_cast((std::numeric_limits::max)())) + { + throw_spdlog_ex("UTF-16 string is too big to be converted to UTF-8"); + } + + int wstr_size = static_cast(wstr.size()); + if (wstr_size == 0) + { + target.resize(0); + return; + } + + int result_size = static_cast(target.capacity()); + if ((wstr_size + 1) * 2 > result_size) + { + result_size = ::WideCharToMultiByte(CP_UTF8, 0, wstr.data(), wstr_size, NULL, 0, NULL, NULL); + } + + if (result_size > 0) + { + target.resize(result_size); + result_size = ::WideCharToMultiByte(CP_UTF8, 0, wstr.data(), wstr_size, target.data(), result_size, NULL, NULL); + + if (result_size > 0) + { + target.resize(result_size); + return; + } + } + + throw_spdlog_ex(fmt::format("WideCharToMultiByte failed. Last error: {}", ::GetLastError())); +} +#endif // (defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES)) && defined(_WIN32) + +// return true on success +static SPDLOG_INLINE bool mkdir_(const filename_t &path) +{ +#ifdef _WIN32 +#ifdef SPDLOG_WCHAR_FILENAMES + return ::_wmkdir(path.c_str()) == 0; +#else + return ::_mkdir(path.c_str()) == 0; +#endif +#else + return ::mkdir(path.c_str(), mode_t(0755)) == 0; +#endif +} + +// create the given directory - and all directories leading to it +// return true on success or if the directory already exists +SPDLOG_INLINE bool create_dir(filename_t path) +{ + if (path_exists(path)) + { + return true; + } + + if (path.empty()) + { + return false; + } + +#ifdef _WIN32 + // support forward slash in windows + std::replace(path.begin(), path.end(), '/', folder_sep); +#endif + + size_t search_offset = 0; + do + { + auto token_pos = path.find(folder_sep, search_offset); + // treat the entire path as a folder if no folder separator not found + if (token_pos == filename_t::npos) + { + token_pos = path.size(); + } + + auto subdir = path.substr(0, token_pos); + + if (!subdir.empty() && !path_exists(subdir) && !mkdir_(subdir)) + { + return false; // return error if failed creating dir + } + search_offset = token_pos + 1; + } while (search_offset < path.size()); + + return true; +} + +// Return directory name from given path or empty string +// "abc/file" => "abc" +// "abc/" => "abc" +// "abc" => "" +// "abc///" => "abc//" +SPDLOG_INLINE filename_t dir_name(filename_t path) +{ +#ifdef _WIN32 + // support forward slash in windows + std::replace(path.begin(), path.end(), '/', folder_sep); +#endif + auto pos = path.find_last_of(folder_sep); + return pos != filename_t::npos ? path.substr(0, pos) : filename_t{}; +} + +std::string SPDLOG_INLINE getenv(const char *field) +{ + +#if defined(_MSC_VER) +#if defined(__cplusplus_winrt) + return std::string{}; // not supported under uwp +#else + size_t len = 0; + char buf[128]; + bool ok = ::getenv_s(&len, buf, sizeof(buf), field) == 0; + return ok ? buf : std::string{}; +#endif +#else // revert to getenv + char *buf = ::getenv(field); + return buf ? buf : std::string{}; +#endif +} + +} // namespace os +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/os.h b/src/ext/spdlog/details/os.h new file mode 100644 index 0000000..bc0940b --- /dev/null +++ b/src/ext/spdlog/details/os.h @@ -0,0 +1,111 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "ext/spdlog/common.h" +#include // std::time_t + +namespace spdlog { +namespace details { +namespace os { + +SPDLOG_API spdlog::log_clock::time_point now() SPDLOG_NOEXCEPT; + +SPDLOG_API std::tm localtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT; + +SPDLOG_API std::tm localtime() SPDLOG_NOEXCEPT; + +SPDLOG_API std::tm gmtime(const std::time_t &time_tt) SPDLOG_NOEXCEPT; + +SPDLOG_API std::tm gmtime() SPDLOG_NOEXCEPT; + +// eol definition +#if !defined(SPDLOG_EOL) +#ifdef _WIN32 +#define SPDLOG_EOL "\r\n" +#else +#define SPDLOG_EOL "\n" +#endif +#endif + +SPDLOG_CONSTEXPR static const char *default_eol = SPDLOG_EOL; + +// folder separator +#ifdef _WIN32 +static const char folder_sep = '\\'; +#else +SPDLOG_CONSTEXPR static const char folder_sep = '/'; +#endif + +// fopen_s on non windows for writing +SPDLOG_API bool fopen_s(FILE **fp, const filename_t &filename, const filename_t &mode); + +// Remove filename. return 0 on success +SPDLOG_API int remove(const filename_t &filename) SPDLOG_NOEXCEPT; + +// Remove file if exists. return 0 on success +// Note: Non atomic (might return failure to delete if concurrently deleted by other process/thread) +SPDLOG_API int remove_if_exists(const filename_t &filename) SPDLOG_NOEXCEPT; + +SPDLOG_API int rename(const filename_t &filename1, const filename_t &filename2) SPDLOG_NOEXCEPT; + +// Return if file exists. +SPDLOG_API bool path_exists(const filename_t &filename) SPDLOG_NOEXCEPT; + +// Return file size according to open FILE* object +SPDLOG_API size_t filesize(FILE *f); + +// Return utc offset in minutes or throw spdlog_ex on failure +SPDLOG_API int utc_minutes_offset(const std::tm &tm = details::os::localtime()); + +// Return current thread id as size_t +// It exists because the std::this_thread::get_id() is much slower(especially +// under VS 2013) +SPDLOG_API size_t _thread_id() SPDLOG_NOEXCEPT; + +// Return current thread id as size_t (from thread local storage) +SPDLOG_API size_t thread_id() SPDLOG_NOEXCEPT; + +// This is avoid msvc issue in sleep_for that happens if the clock changes. +// See https://github.com/gabime/spdlog/issues/609 +SPDLOG_API void sleep_for_millis(int milliseconds) SPDLOG_NOEXCEPT; + +SPDLOG_API std::string filename_to_str(const filename_t &filename); + +SPDLOG_API int pid() SPDLOG_NOEXCEPT; + +// Determine if the terminal supports colors +// Source: https://github.com/agauniyal/rang/ +SPDLOG_API bool is_color_terminal() SPDLOG_NOEXCEPT; + +// Determine if the terminal attached +// Source: https://github.com/agauniyal/rang/ +SPDLOG_API bool in_terminal(FILE *file) SPDLOG_NOEXCEPT; + +#if (defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) || defined(SPDLOG_WCHAR_FILENAMES)) && defined(_WIN32) +SPDLOG_API void wstr_to_utf8buf(wstring_view_t wstr, memory_buf_t &target); +#endif + +// Return directory name from given path or empty string +// "abc/file" => "abc" +// "abc/" => "abc" +// "abc" => "" +// "abc///" => "abc//" +SPDLOG_API filename_t dir_name(filename_t path); + +// Create a dir from the given path. +// Return true if succeeded or if this dir already exists. +SPDLOG_API bool create_dir(filename_t path); + +// non thread safe, cross platform getenv/getenv_s +// return empty string if field not found +SPDLOG_API std::string getenv(const char *field); + +} // namespace os +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "os-inl.h" +#endif diff --git a/src/ext/spdlog/details/periodic_worker-inl.h b/src/ext/spdlog/details/periodic_worker-inl.h new file mode 100644 index 0000000..1d79499 --- /dev/null +++ b/src/ext/spdlog/details/periodic_worker-inl.h @@ -0,0 +1,49 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +namespace spdlog { +namespace details { + +SPDLOG_INLINE periodic_worker::periodic_worker(const std::function &callback_fun, std::chrono::seconds interval) +{ + active_ = (interval > std::chrono::seconds::zero()); + if (!active_) + { + return; + } + + worker_thread_ = std::thread([this, callback_fun, interval]() { + for (;;) + { + std::unique_lock lock(this->mutex_); + if (this->cv_.wait_for(lock, interval, [this] { return !this->active_; })) + { + return; // active_ == false, so exit this thread + } + callback_fun(); + } + }); +} + +// stop the worker thread and join it +SPDLOG_INLINE periodic_worker::~periodic_worker() +{ + if (worker_thread_.joinable()) + { + { + std::lock_guard lock(mutex_); + active_ = false; + } + cv_.notify_one(); + worker_thread_.join(); + } +} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/periodic_worker.h b/src/ext/spdlog/details/periodic_worker.h new file mode 100644 index 0000000..4237366 --- /dev/null +++ b/src/ext/spdlog/details/periodic_worker.h @@ -0,0 +1,40 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +// periodic worker thread - periodically executes the given callback function. +// +// RAII over the owned thread: +// creates the thread on construction. +// stops and joins the thread on destruction (if the thread is executing a callback, wait for it to finish first). + +#include +#include +#include +#include +#include +namespace spdlog { +namespace details { + +class SPDLOG_API periodic_worker +{ +public: + periodic_worker(const std::function &callback_fun, std::chrono::seconds interval); + periodic_worker(const periodic_worker &) = delete; + periodic_worker &operator=(const periodic_worker &) = delete; + // stop the worker thread and join it + ~periodic_worker(); + +private: + bool active_; + std::thread worker_thread_; + std::mutex mutex_; + std::condition_variable cv_; +}; +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "periodic_worker-inl.h" +#endif diff --git a/src/ext/spdlog/details/registry-inl.h b/src/ext/spdlog/details/registry-inl.h new file mode 100644 index 0000000..fc4d78d --- /dev/null +++ b/src/ext/spdlog/details/registry-inl.h @@ -0,0 +1,313 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include "ext/spdlog/common.h" +#include "ext/spdlog/logger.h" +#include "ext/spdlog/pattern_formatter.h" +#include "periodic_worker.h" + +#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER +// support for the default stdout color logger +#ifdef _WIN32 +#include +#else +#include "ext/spdlog/sinks/ansicolor_sink.h" +#endif +#endif // SPDLOG_DISABLE_DEFAULT_LOGGER + +#include +#include +#include +#include +#include + +namespace spdlog { +namespace details { + +SPDLOG_INLINE registry::registry() + : formatter_(new pattern_formatter()) +{ + +#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER + // create default logger (ansicolor_stdout_sink_mt or wincolor_stdout_sink_mt in windows). +#ifdef _WIN32 + auto color_sink = std::make_shared(); +#else + auto color_sink = std::make_shared(); +#endif + + const char *default_logger_name = ""; + default_logger_ = std::make_shared(default_logger_name, std::move(color_sink)); + loggers_[default_logger_name] = default_logger_; + +#endif // SPDLOG_DISABLE_DEFAULT_LOGGER +} + +SPDLOG_INLINE registry::~registry() = default; + +SPDLOG_INLINE void registry::register_logger(std::shared_ptr new_logger) +{ + std::lock_guard lock(logger_map_mutex_); + register_logger_(std::move(new_logger)); +} + +SPDLOG_INLINE void registry::initialize_logger(std::shared_ptr new_logger) +{ + std::lock_guard lock(logger_map_mutex_); + new_logger->set_formatter(formatter_->clone()); + + if (err_handler_) + { + new_logger->set_error_handler(err_handler_); + } + + // set new level according to previously configured level or default level + auto it = log_levels_.find(new_logger->name()); + auto new_level = it != log_levels_.end() ? it->second : global_log_level_; + new_logger->set_level(new_level); + + new_logger->flush_on(flush_level_); + + if (backtrace_n_messages_ > 0) + { + new_logger->enable_backtrace(backtrace_n_messages_); + } + + if (automatic_registration_) + { + register_logger_(std::move(new_logger)); + } +} + +SPDLOG_INLINE std::shared_ptr registry::get(const std::string &logger_name) +{ + std::lock_guard lock(logger_map_mutex_); + auto found = loggers_.find(logger_name); + return found == loggers_.end() ? nullptr : found->second; +} + +SPDLOG_INLINE std::shared_ptr registry::default_logger() +{ + std::lock_guard lock(logger_map_mutex_); + return default_logger_; +} + +// Return raw ptr to the default logger. +// To be used directly by the spdlog default api (e.g. spdlog::info) +// This make the default API faster, but cannot be used concurrently with set_default_logger(). +// e.g do not call set_default_logger() from one thread while calling spdlog::info() from another. +SPDLOG_INLINE logger *registry::get_default_raw() +{ + return default_logger_.get(); +} + +// set default logger. +// default logger is stored in default_logger_ (for faster retrieval) and in the loggers_ map. +SPDLOG_INLINE void registry::set_default_logger(std::shared_ptr new_default_logger) +{ + std::lock_guard lock(logger_map_mutex_); + // remove previous default logger from the map + if (default_logger_ != nullptr) + { + loggers_.erase(default_logger_->name()); + } + if (new_default_logger != nullptr) + { + loggers_[new_default_logger->name()] = new_default_logger; + } + default_logger_ = std::move(new_default_logger); +} + +SPDLOG_INLINE void registry::set_tp(std::shared_ptr tp) +{ + std::lock_guard lock(tp_mutex_); + tp_ = std::move(tp); +} + +SPDLOG_INLINE std::shared_ptr registry::get_tp() +{ + std::lock_guard lock(tp_mutex_); + return tp_; +} + +// Set global formatter. Each sink in each logger will get a clone of this object +SPDLOG_INLINE void registry::set_formatter(std::unique_ptr formatter) +{ + std::lock_guard lock(logger_map_mutex_); + formatter_ = std::move(formatter); + for (auto &l : loggers_) + { + l.second->set_formatter(formatter_->clone()); + } +} + +SPDLOG_INLINE void registry::enable_backtrace(size_t n_messages) +{ + std::lock_guard lock(logger_map_mutex_); + backtrace_n_messages_ = n_messages; + + for (auto &l : loggers_) + { + l.second->enable_backtrace(n_messages); + } +} + +SPDLOG_INLINE void registry::disable_backtrace() +{ + std::lock_guard lock(logger_map_mutex_); + backtrace_n_messages_ = 0; + for (auto &l : loggers_) + { + l.second->disable_backtrace(); + } +} + +SPDLOG_INLINE void registry::set_level(level::level_enum log_level) +{ + std::lock_guard lock(logger_map_mutex_); + for (auto &l : loggers_) + { + l.second->set_level(log_level); + } + global_log_level_ = log_level; +} + +SPDLOG_INLINE void registry::flush_on(level::level_enum log_level) +{ + std::lock_guard lock(logger_map_mutex_); + for (auto &l : loggers_) + { + l.second->flush_on(log_level); + } + flush_level_ = log_level; +} + +SPDLOG_INLINE void registry::flush_every(std::chrono::seconds interval) +{ + std::lock_guard lock(flusher_mutex_); + auto clbk = [this]() { this->flush_all(); }; + periodic_flusher_ = details::make_unique(clbk, interval); +} + +SPDLOG_INLINE void registry::set_error_handler(void (*handler)(const std::string &msg)) +{ + std::lock_guard lock(logger_map_mutex_); + for (auto &l : loggers_) + { + l.second->set_error_handler(handler); + } + err_handler_ = handler; +} + +SPDLOG_INLINE void registry::apply_all(const std::function)> &fun) +{ + std::lock_guard lock(logger_map_mutex_); + for (auto &l : loggers_) + { + fun(l.second); + } +} + +SPDLOG_INLINE void registry::flush_all() +{ + std::lock_guard lock(logger_map_mutex_); + for (auto &l : loggers_) + { + l.second->flush(); + } +} + +SPDLOG_INLINE void registry::drop(const std::string &logger_name) +{ + std::lock_guard lock(logger_map_mutex_); + loggers_.erase(logger_name); + if (default_logger_ && default_logger_->name() == logger_name) + { + default_logger_.reset(); + } +} + +SPDLOG_INLINE void registry::drop_all() +{ + std::lock_guard lock(logger_map_mutex_); + loggers_.clear(); + default_logger_.reset(); +} + +// clean all resources and threads started by the registry +SPDLOG_INLINE void registry::shutdown() +{ + { + std::lock_guard lock(flusher_mutex_); + periodic_flusher_.reset(); + } + + drop_all(); + + { + std::lock_guard lock(tp_mutex_); + tp_.reset(); + } +} + +SPDLOG_INLINE std::recursive_mutex ®istry::tp_mutex() +{ + return tp_mutex_; +} + +SPDLOG_INLINE void registry::set_automatic_registration(bool automatic_registration) +{ + std::lock_guard lock(logger_map_mutex_); + automatic_registration_ = automatic_registration; +} + +SPDLOG_INLINE void registry::set_levels(log_levels levels, level::level_enum *global_level) +{ + std::lock_guard lock(logger_map_mutex_); + log_levels_ = std::move(levels); + auto global_level_requested = global_level != nullptr; + global_log_level_ = global_level_requested ? *global_level : global_log_level_; + + for (auto &logger : loggers_) + { + auto logger_entry = log_levels_.find(logger.first); + if (logger_entry != log_levels_.end()) + { + logger.second->set_level(logger_entry->second); + } + else if (global_level_requested) + { + logger.second->set_level(*global_level); + } + } +} + +SPDLOG_INLINE registry ®istry::instance() +{ + static registry s_instance; + return s_instance; +} + +SPDLOG_INLINE void registry::throw_if_exists_(const std::string &logger_name) +{ + if (loggers_.find(logger_name) != loggers_.end()) + { + throw_spdlog_ex("logger with name '" + logger_name + "' already exists"); + } +} + +SPDLOG_INLINE void registry::register_logger_(std::shared_ptr new_logger) +{ + auto logger_name = new_logger->name(); + throw_if_exists_(logger_name); + loggers_[logger_name] = std::move(new_logger); +} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/registry.h b/src/ext/spdlog/details/registry.h new file mode 100644 index 0000000..010f9a8 --- /dev/null +++ b/src/ext/spdlog/details/registry.h @@ -0,0 +1,115 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +// Loggers registry of unique name->logger pointer +// An attempt to create a logger with an already existing name will result with spdlog_ex exception. +// If user requests a non existing logger, nullptr will be returned +// This class is thread safe + +#include "ext/spdlog/common.h" + +#include +#include +#include +#include +#include +#include + +namespace spdlog { +class logger; + +namespace details { +class thread_pool; +class periodic_worker; + +class SPDLOG_API registry +{ +public: + using log_levels = std::unordered_map; + registry(const registry &) = delete; + registry &operator=(const registry &) = delete; + + void register_logger(std::shared_ptr new_logger); + void initialize_logger(std::shared_ptr new_logger); + std::shared_ptr get(const std::string &logger_name); + std::shared_ptr default_logger(); + + // Return raw ptr to the default logger. + // To be used directly by the spdlog default api (e.g. spdlog::info) + // This make the default API faster, but cannot be used concurrently with set_default_logger(). + // e.g do not call set_default_logger() from one thread while calling spdlog::info() from another. + logger *get_default_raw(); + + // set default logger. + // default logger is stored in default_logger_ (for faster retrieval) and in the loggers_ map. + void set_default_logger(std::shared_ptr new_default_logger); + + void set_tp(std::shared_ptr tp); + + std::shared_ptr get_tp(); + + // Set global formatter. Each sink in each logger will get a clone of this object + void set_formatter(std::unique_ptr formatter); + + void enable_backtrace(size_t n_messages); + + void disable_backtrace(); + + void set_level(level::level_enum log_level); + + void flush_on(level::level_enum log_level); + + void flush_every(std::chrono::seconds interval); + + void set_error_handler(void (*handler)(const std::string &msg)); + + void apply_all(const std::function)> &fun); + + void flush_all(); + + void drop(const std::string &logger_name); + + void drop_all(); + + // clean all resources and threads started by the registry + void shutdown(); + + std::recursive_mutex &tp_mutex(); + + void set_automatic_registration(bool automatic_registration); + + // set levels for all existing/future loggers. global_level can be null if should not set. + void set_levels(log_levels levels, level::level_enum *global_level); + + static registry &instance(); + +private: + registry(); + ~registry(); + + void throw_if_exists_(const std::string &logger_name); + void register_logger_(std::shared_ptr new_logger); + bool set_level_from_cfg_(logger *logger); + std::mutex logger_map_mutex_, flusher_mutex_; + std::recursive_mutex tp_mutex_; + std::unordered_map> loggers_; + log_levels log_levels_; + std::unique_ptr formatter_; + spdlog::level::level_enum global_log_level_ = level::info; + level::level_enum flush_level_ = level::off; + void (*err_handler_)(const std::string &msg); + std::shared_ptr tp_; + std::unique_ptr periodic_flusher_; + std::shared_ptr default_logger_; + bool automatic_registration_ = true; + size_t backtrace_n_messages_ = 0; +}; + +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "registry-inl.h" +#endif diff --git a/src/ext/spdlog/details/synchronous_factory.h b/src/ext/spdlog/details/synchronous_factory.h new file mode 100644 index 0000000..b48f593 --- /dev/null +++ b/src/ext/spdlog/details/synchronous_factory.h @@ -0,0 +1,24 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "registry.h" + +namespace spdlog { + +// Default logger factory- creates synchronous loggers +class logger; + +struct synchronous_factory +{ + template + static std::shared_ptr create(std::string logger_name, SinkArgs &&...args) + { + auto sink = std::make_shared(std::forward(args)...); + auto new_logger = std::make_shared(std::move(logger_name), std::move(sink)); + details::registry::instance().initialize_logger(new_logger); + return new_logger; + } +}; +} // namespace spdlog \ No newline at end of file diff --git a/src/ext/spdlog/details/tcp_client-windows.h b/src/ext/spdlog/details/tcp_client-windows.h new file mode 100644 index 0000000..7ee7292 --- /dev/null +++ b/src/ext/spdlog/details/tcp_client-windows.h @@ -0,0 +1,175 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#define WIN32_LEAN_AND_MEAN +// tcp client helper +#include +#include + +#include +#include +#include +#include +#include +#include + +#pragma comment(lib, "Ws2_32.lib") +#pragma comment(lib, "Mswsock.lib") +#pragma comment(lib, "AdvApi32.lib") + +namespace spdlog { +namespace details { +class tcp_client +{ + SOCKET socket_ = INVALID_SOCKET; + + static bool winsock_initialized_() + { + SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (s == INVALID_SOCKET) + { + return false; + } + else + { + closesocket(s); + return true; + } + } + + static void init_winsock_() + { + WSADATA wsaData; + auto rv = WSAStartup(MAKEWORD(2, 2), &wsaData); + if (rv != 0) + { + throw_winsock_error_("WSAStartup failed", ::WSAGetLastError()); + } + } + + static void throw_winsock_error_(const std::string &msg, int last_error) + { + char buf[512]; + ::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, last_error, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, (sizeof(buf) / sizeof(char)), NULL); + + throw_spdlog_ex(fmt::format("tcp_sink - {}: {}", msg, buf)); + } + +public: + bool is_connected() const + { + return socket_ != INVALID_SOCKET; + } + + void close() + { + ::closesocket(socket_); + socket_ = INVALID_SOCKET; + WSACleanup(); + } + + SOCKET fd() const + { + return socket_; + } + + ~tcp_client() + { + close(); + } + + // try to connect or throw on failure + void connect(const std::string &host, int port) + { + // initialize winsock if needed + if (!winsock_initialized_()) + { + init_winsock_(); + } + + if (is_connected()) + { + close(); + } + struct addrinfo hints + {}; + ZeroMemory(&hints, sizeof(hints)); + + hints.ai_family = AF_INET; // IPv4 + hints.ai_socktype = SOCK_STREAM; // TCP + hints.ai_flags = AI_NUMERICSERV; // port passed as as numeric value + hints.ai_protocol = 0; + + auto port_str = std::to_string(port); + struct addrinfo *addrinfo_result; + auto rv = ::getaddrinfo(host.c_str(), port_str.c_str(), &hints, &addrinfo_result); + int last_error = 0; + if (rv != 0) + { + last_error = ::WSAGetLastError(); + WSACleanup(); + throw_winsock_error_("getaddrinfo failed", last_error); + } + + // Try each address until we successfully connect(2). + + for (auto *rp = addrinfo_result; rp != nullptr; rp = rp->ai_next) + { + socket_ = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); + if (socket_ == INVALID_SOCKET) + { + last_error = ::WSAGetLastError(); + WSACleanup(); + continue; + } + if (::connect(socket_, rp->ai_addr, (int)rp->ai_addrlen) == 0) + { + break; + } + else + { + last_error = ::WSAGetLastError(); + close(); + } + } + ::freeaddrinfo(addrinfo_result); + if (socket_ == INVALID_SOCKET) + { + WSACleanup(); + throw_winsock_error_("connect failed", last_error); + } + + // set TCP_NODELAY + int enable_flag = 1; + ::setsockopt(socket_, IPPROTO_TCP, TCP_NODELAY, (char *)&enable_flag, sizeof(enable_flag)); + } + + // Send exactly n_bytes of the given data. + // On error close the connection and throw. + void send(const char *data, size_t n_bytes) + { + size_t bytes_sent = 0; + while (bytes_sent < n_bytes) + { + const int send_flags = 0; + auto write_result = ::send(socket_, data + bytes_sent, (int)(n_bytes - bytes_sent), send_flags); + if (write_result == SOCKET_ERROR) + { + int last_error = ::WSAGetLastError(); + close(); + throw_winsock_error_("send failed", last_error); + } + + if (write_result == 0) // (probably should not happen but in any case..) + { + break; + } + bytes_sent += static_cast(write_result); + } + } +}; +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/tcp_client.h b/src/ext/spdlog/details/tcp_client.h new file mode 100644 index 0000000..9f3bb99 --- /dev/null +++ b/src/ext/spdlog/details/tcp_client.h @@ -0,0 +1,146 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifdef _WIN32 +#error include tcp_client-windows.h instead +#endif + +// tcp client helper +#include +#include + +#include +#include +#include +#include +#include + +#include + +namespace spdlog { +namespace details { +class tcp_client +{ + int socket_ = -1; + +public: + bool is_connected() const + { + return socket_ != -1; + } + + void close() + { + if (is_connected()) + { + ::close(socket_); + socket_ = -1; + } + } + + int fd() const + { + return socket_; + } + + ~tcp_client() + { + close(); + } + + // try to connect or throw on failure + void connect(const std::string &host, int port) + { + close(); + struct addrinfo hints + {}; + memset(&hints, 0, sizeof(struct addrinfo)); + hints.ai_family = AF_INET; // IPv4 + hints.ai_socktype = SOCK_STREAM; // TCP + hints.ai_flags = AI_NUMERICSERV; // port passed as as numeric value + hints.ai_protocol = 0; + + auto port_str = std::to_string(port); + struct addrinfo *addrinfo_result; + auto rv = ::getaddrinfo(host.c_str(), port_str.c_str(), &hints, &addrinfo_result); + if (rv != 0) + { + auto msg = fmt::format("::getaddrinfo failed: {}", gai_strerror(rv)); + throw_spdlog_ex(msg); + } + + // Try each address until we successfully connect(2). + int last_errno = 0; + for (auto *rp = addrinfo_result; rp != nullptr; rp = rp->ai_next) + { +#if defined(SOCK_CLOEXEC) + const int flags = SOCK_CLOEXEC; +#else + const int flags = 0; +#endif + socket_ = ::socket(rp->ai_family, rp->ai_socktype | flags, rp->ai_protocol); + if (socket_ == -1) + { + last_errno = errno; + continue; + } + rv = ::connect(socket_, rp->ai_addr, rp->ai_addrlen); + if (rv == 0) + { + break; + } + last_errno = errno; + ::close(socket_); + socket_ = -1; + } + ::freeaddrinfo(addrinfo_result); + if (socket_ == -1) + { + throw_spdlog_ex("::connect failed", last_errno); + } + + // set TCP_NODELAY + int enable_flag = 1; + ::setsockopt(socket_, IPPROTO_TCP, TCP_NODELAY, (char *)&enable_flag, sizeof(enable_flag)); + + // prevent sigpipe on systems where MSG_NOSIGNAL is not available +#if defined(SO_NOSIGPIPE) && !defined(MSG_NOSIGNAL) + ::setsockopt(socket_, SOL_SOCKET, SO_NOSIGPIPE, (char *)&enable_flag, sizeof(enable_flag)); +#endif + +#if !defined(SO_NOSIGPIPE) && !defined(MSG_NOSIGNAL) +#error "tcp_sink would raise SIGPIPE since niether SO_NOSIGPIPE nor MSG_NOSIGNAL are available" +#endif + } + + // Send exactly n_bytes of the given data. + // On error close the connection and throw. + void send(const char *data, size_t n_bytes) + { + size_t bytes_sent = 0; + while (bytes_sent < n_bytes) + { +#if defined(MSG_NOSIGNAL) + const int send_flags = MSG_NOSIGNAL; +#else + const int send_flags = 0; +#endif + auto write_result = ::send(socket_, data + bytes_sent, n_bytes - bytes_sent, send_flags); + if (write_result < 0) + { + close(); + throw_spdlog_ex("write(2) failed", errno); + } + + if (write_result == 0) // (probably should not happen but in any case..) + { + break; + } + bytes_sent += static_cast(write_result); + } + } +}; +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/thread_pool-inl.h b/src/ext/spdlog/details/thread_pool-inl.h new file mode 100644 index 0000000..c1df436 --- /dev/null +++ b/src/ext/spdlog/details/thread_pool-inl.h @@ -0,0 +1,129 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include +#endif + +#include +#include + +namespace spdlog { +namespace details { + +SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n, std::function on_thread_start) + : q_(q_max_items) +{ + if (threads_n == 0 || threads_n > 1000) + { + throw_spdlog_ex("spdlog::thread_pool(): invalid threads_n param (valid " + "range is 1-1000)"); + } + for (size_t i = 0; i < threads_n; i++) + { + threads_.emplace_back([this, on_thread_start] { + on_thread_start(); + this->thread_pool::worker_loop_(); + }); + } +} + +SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n) + : thread_pool(q_max_items, threads_n, [] {}) +{} + +// message all threads to terminate gracefully join them +SPDLOG_INLINE thread_pool::~thread_pool() +{ + SPDLOG_TRY + { + for (size_t i = 0; i < threads_.size(); i++) + { + post_async_msg_(async_msg(async_msg_type::terminate), async_overflow_policy::block); + } + + for (auto &t : threads_) + { + t.join(); + } + } + SPDLOG_CATCH_ALL() {} +} + +void SPDLOG_INLINE thread_pool::post_log(async_logger_ptr &&worker_ptr, const details::log_msg &msg, async_overflow_policy overflow_policy) +{ + async_msg async_m(std::move(worker_ptr), async_msg_type::log, msg); + post_async_msg_(std::move(async_m), overflow_policy); +} + +void SPDLOG_INLINE thread_pool::post_flush(async_logger_ptr &&worker_ptr, async_overflow_policy overflow_policy) +{ + post_async_msg_(async_msg(std::move(worker_ptr), async_msg_type::flush), overflow_policy); +} + +size_t SPDLOG_INLINE thread_pool::overrun_counter() +{ + return q_.overrun_counter(); +} + +size_t SPDLOG_INLINE thread_pool::queue_size() +{ + return q_.size(); +} + +void SPDLOG_INLINE thread_pool::post_async_msg_(async_msg &&new_msg, async_overflow_policy overflow_policy) +{ + if (overflow_policy == async_overflow_policy::block) + { + q_.enqueue(std::move(new_msg)); + } + else + { + q_.enqueue_nowait(std::move(new_msg)); + } +} + +void SPDLOG_INLINE thread_pool::worker_loop_() +{ + while (process_next_msg_()) {} +} + +// process next message in the queue +// return true if this thread should still be active (while no terminate msg +// was received) +bool SPDLOG_INLINE thread_pool::process_next_msg_() +{ + async_msg incoming_async_msg; + bool dequeued = q_.dequeue_for(incoming_async_msg, std::chrono::seconds(10)); + if (!dequeued) + { + return true; + } + + switch (incoming_async_msg.msg_type) + { + case async_msg_type::log: { + incoming_async_msg.worker_ptr->backend_sink_it_(incoming_async_msg); + return true; + } + case async_msg_type::flush: { + incoming_async_msg.worker_ptr->backend_flush_(); + return true; + } + + case async_msg_type::terminate: { + return false; + } + + default: { + assert(false); + } + } + + return true; +} + +} // namespace details +} // namespace spdlog diff --git a/src/ext/spdlog/details/thread_pool.h b/src/ext/spdlog/details/thread_pool.h new file mode 100644 index 0000000..61e2525 --- /dev/null +++ b/src/ext/spdlog/details/thread_pool.h @@ -0,0 +1,121 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace spdlog { +class async_logger; + +namespace details { + +using async_logger_ptr = std::shared_ptr; + +enum class async_msg_type +{ + log, + flush, + terminate +}; + +#include +// Async msg to move to/from the queue +// Movable only. should never be copied +struct async_msg : log_msg_buffer +{ + async_msg_type msg_type{async_msg_type::log}; + async_logger_ptr worker_ptr; + + async_msg() = default; + ~async_msg() = default; + + // should only be moved in or out of the queue.. + async_msg(const async_msg &) = delete; + +// support for vs2013 move +#if defined(_MSC_VER) && _MSC_VER <= 1800 + async_msg(async_msg &&other) + : log_msg_buffer(std::move(other)) + , msg_type(other.msg_type) + , worker_ptr(std::move(other.worker_ptr)) + {} + + async_msg &operator=(async_msg &&other) + { + *static_cast(this) = std::move(other); + msg_type = other.msg_type; + worker_ptr = std::move(other.worker_ptr); + return *this; + } +#else // (_MSC_VER) && _MSC_VER <= 1800 + async_msg(async_msg &&) = default; + async_msg &operator=(async_msg &&) = default; +#endif + + // construct from log_msg with given type + async_msg(async_logger_ptr &&worker, async_msg_type the_type, const details::log_msg &m) + : log_msg_buffer{m} + , msg_type{the_type} + , worker_ptr{std::move(worker)} + {} + + async_msg(async_logger_ptr &&worker, async_msg_type the_type) + : log_msg_buffer{} + , msg_type{the_type} + , worker_ptr{std::move(worker)} + {} + + explicit async_msg(async_msg_type the_type) + : async_msg{nullptr, the_type} + {} +}; + +class SPDLOG_API thread_pool +{ +public: + using item_type = async_msg; + using q_type = details::mpmc_blocking_queue; + + thread_pool(size_t q_max_items, size_t threads_n, std::function on_thread_start); + thread_pool(size_t q_max_items, size_t threads_n); + + // message all threads to terminate gracefully join them + ~thread_pool(); + + thread_pool(const thread_pool &) = delete; + thread_pool &operator=(thread_pool &&) = delete; + + void post_log(async_logger_ptr &&worker_ptr, const details::log_msg &msg, async_overflow_policy overflow_policy); + void post_flush(async_logger_ptr &&worker_ptr, async_overflow_policy overflow_policy); + size_t overrun_counter(); + size_t queue_size(); + +private: + q_type q_; + + std::vector threads_; + + void post_async_msg_(async_msg &&new_msg, async_overflow_policy overflow_policy); + void worker_loop_(); + + // process next message in the queue + // return true if this thread should still be active (while no terminate msg + // was received) + bool process_next_msg_(); +}; + +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "thread_pool-inl.h" +#endif diff --git a/src/ext/spdlog/details/windows_include.h b/src/ext/spdlog/details/windows_include.h new file mode 100644 index 0000000..6a2f14f --- /dev/null +++ b/src/ext/spdlog/details/windows_include.h @@ -0,0 +1,11 @@ +#pragma once + +#ifndef NOMINMAX +#define NOMINMAX // prevent windows redefining min/max +#endif + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif + +#include diff --git a/src/ext/spdlog/fmt/bin_to_hex.h b/src/ext/spdlog/fmt/bin_to_hex.h new file mode 100644 index 0000000..1e2b054 --- /dev/null +++ b/src/ext/spdlog/fmt/bin_to_hex.h @@ -0,0 +1,216 @@ +// +// Copyright(c) 2015 Gabi Melman. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) +// + +#pragma once + +#include + +// +// Support for logging binary data as hex +// format flags, any combination of the followng: +// {:X} - print in uppercase. +// {:s} - don't separate each byte with space. +// {:p} - don't print the position on each line start. +// {:n} - don't split the output to lines. +// {:a} - show ASCII if :n is not set + +// +// Examples: +// +// std::vector v(200, 0x0b); +// logger->info("Some buffer {}", spdlog::to_hex(v)); +// char buf[128]; +// logger->info("Some buffer {:X}", spdlog::to_hex(std::begin(buf), std::end(buf))); +// logger->info("Some buffer {:X}", spdlog::to_hex(std::begin(buf), std::end(buf), 16)); + +namespace spdlog { +namespace details { + +template +class dump_info +{ +public: + dump_info(It range_begin, It range_end, size_t size_per_line) + : begin_(range_begin) + , end_(range_end) + , size_per_line_(size_per_line) + {} + + It begin() const + { + return begin_; + } + It end() const + { + return end_; + } + size_t size_per_line() const + { + return size_per_line_; + } + +private: + It begin_, end_; + size_t size_per_line_; +}; +} // namespace details + +// create a dump_info that wraps the given container +template +inline details::dump_info to_hex(const Container &container, size_t size_per_line = 32) +{ + static_assert(sizeof(typename Container::value_type) == 1, "sizeof(Container::value_type) != 1"); + using Iter = typename Container::const_iterator; + return details::dump_info(std::begin(container), std::end(container), size_per_line); +} + +// create dump_info from ranges +template +inline details::dump_info to_hex(const It range_begin, const It range_end, size_t size_per_line = 32) +{ + return details::dump_info(range_begin, range_end, size_per_line); +} + +} // namespace spdlog + +namespace fmt { + +template +struct formatter> +{ + const char delimiter = ' '; + bool put_newlines = true; + bool put_delimiters = true; + bool use_uppercase = false; + bool put_positions = true; // position on start of each line + bool show_ascii = false; + + // parse the format string flags + template + auto parse(ParseContext &ctx) -> decltype(ctx.begin()) + { + auto it = ctx.begin(); + while (it != ctx.end() && *it != '}') + { + switch (*it) + { + case 'X': + use_uppercase = true; + break; + case 's': + put_delimiters = false; + break; + case 'p': + put_positions = false; + break; + case 'n': + put_newlines = false; + show_ascii = false; + break; + case 'a': + if (put_newlines) + { + show_ascii = true; + } + break; + } + + ++it; + } + return it; + } + + // format the given bytes range as hex + template + auto format(const spdlog::details::dump_info &the_range, FormatContext &ctx) -> decltype(ctx.out()) + { + SPDLOG_CONSTEXPR const char *hex_upper = "0123456789ABCDEF"; + SPDLOG_CONSTEXPR const char *hex_lower = "0123456789abcdef"; + const char *hex_chars = use_uppercase ? hex_upper : hex_lower; + +#if FMT_VERSION < 60000 + auto inserter = ctx.begin(); +#else + auto inserter = ctx.out(); +#endif + + int size_per_line = static_cast(the_range.size_per_line()); + auto start_of_line = the_range.begin(); + for (auto i = the_range.begin(); i != the_range.end(); i++) + { + auto ch = static_cast(*i); + + if (put_newlines && (i == the_range.begin() || i - start_of_line >= size_per_line)) + { + if (show_ascii && i != the_range.begin()) + { + *inserter++ = delimiter; + *inserter++ = delimiter; + for (auto j = start_of_line; j < i; j++) + { + auto pc = static_cast(*j); + *inserter++ = std::isprint(pc) ? static_cast(*j) : '.'; + } + } + + put_newline(inserter, static_cast(i - the_range.begin())); + + // put first byte without delimiter in front of it + *inserter++ = hex_chars[(ch >> 4) & 0x0f]; + *inserter++ = hex_chars[ch & 0x0f]; + start_of_line = i; + continue; + } + + if (put_delimiters) + { + *inserter++ = delimiter; + } + + *inserter++ = hex_chars[(ch >> 4) & 0x0f]; + *inserter++ = hex_chars[ch & 0x0f]; + } + if (show_ascii) // add ascii to last line + { + if (the_range.end() - the_range.begin() > size_per_line) + { + auto blank_num = size_per_line - (the_range.end() - start_of_line); + while (blank_num-- > 0) + { + *inserter++ = delimiter; + *inserter++ = delimiter; + if (put_delimiters) + { + *inserter++ = delimiter; + } + } + } + *inserter++ = delimiter; + *inserter++ = delimiter; + for (auto j = start_of_line; j != the_range.end(); j++) + { + auto pc = static_cast(*j); + *inserter++ = std::isprint(pc) ? static_cast(*j) : '.'; + } + } + return inserter; + } + + // put newline(and position header) + template + void put_newline(It inserter, std::size_t pos) + { +#ifdef _WIN32 + *inserter++ = '\r'; +#endif + *inserter++ = '\n'; + + if (put_positions) + { + fmt::format_to(inserter, "{:<04X}: ", pos); + } + } +}; +} // namespace fmt diff --git a/src/ext/spdlog/fmt/bundled/LICENSE.rst b/src/ext/spdlog/fmt/bundled/LICENSE.rst new file mode 100644 index 0000000..f0ec3db --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/LICENSE.rst @@ -0,0 +1,27 @@ +Copyright (c) 2012 - present, Victor Zverovich + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- Optional exception to the license --- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into a machine-executable object form of such +source code, you may redistribute such embedded portions in such object form +without including the above copyright and permission notices. diff --git a/src/ext/spdlog/fmt/bundled/chrono.h b/src/ext/spdlog/fmt/bundled/chrono.h new file mode 100644 index 0000000..1a3b8d5 --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/chrono.h @@ -0,0 +1,1118 @@ +// Formatting library for C++ - chrono support +// +// Copyright (c) 2012 - present, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_CHRONO_H_ +#define FMT_CHRONO_H_ + +#include +#include +#include +#include + +#include "format.h" +#include "locale.h" + +FMT_BEGIN_NAMESPACE + +// Enable safe chrono durations, unless explicitly disabled. +#ifndef FMT_SAFE_DURATION_CAST +# define FMT_SAFE_DURATION_CAST 1 +#endif +#if FMT_SAFE_DURATION_CAST + +// For conversion between std::chrono::durations without undefined +// behaviour or erroneous results. +// This is a stripped down version of duration_cast, for inclusion in fmt. +// See https://github.com/pauldreik/safe_duration_cast +// +// Copyright Paul Dreik 2019 +namespace safe_duration_cast { + +template ::value && + std::numeric_limits::is_signed == + std::numeric_limits::is_signed)> +FMT_CONSTEXPR To lossless_integral_conversion(const From from, int& ec) { + ec = 0; + using F = std::numeric_limits; + using T = std::numeric_limits; + static_assert(F::is_integer, "From must be integral"); + static_assert(T::is_integer, "To must be integral"); + + // A and B are both signed, or both unsigned. + if (F::digits <= T::digits) { + // From fits in To without any problem. + } else { + // From does not always fit in To, resort to a dynamic check. + if (from < (T::min)() || from > (T::max)()) { + // outside range. + ec = 1; + return {}; + } + } + return static_cast(from); +} + +/** + * converts From to To, without loss. If the dynamic value of from + * can't be converted to To without loss, ec is set. + */ +template ::value && + std::numeric_limits::is_signed != + std::numeric_limits::is_signed)> +FMT_CONSTEXPR To lossless_integral_conversion(const From from, int& ec) { + ec = 0; + using F = std::numeric_limits; + using T = std::numeric_limits; + static_assert(F::is_integer, "From must be integral"); + static_assert(T::is_integer, "To must be integral"); + + if (detail::const_check(F::is_signed && !T::is_signed)) { + // From may be negative, not allowed! + if (fmt::detail::is_negative(from)) { + ec = 1; + return {}; + } + // From is positive. Can it always fit in To? + if (F::digits > T::digits && + from > static_cast(detail::max_value())) { + ec = 1; + return {}; + } + } + + if (!F::is_signed && T::is_signed && F::digits >= T::digits && + from > static_cast(detail::max_value())) { + ec = 1; + return {}; + } + return static_cast(from); // Lossless conversion. +} + +template ::value)> +FMT_CONSTEXPR To lossless_integral_conversion(const From from, int& ec) { + ec = 0; + return from; +} // function + +// clang-format off +/** + * converts From to To if possible, otherwise ec is set. + * + * input | output + * ---------------------------------|--------------- + * NaN | NaN + * Inf | Inf + * normal, fits in output | converted (possibly lossy) + * normal, does not fit in output | ec is set + * subnormal | best effort + * -Inf | -Inf + */ +// clang-format on +template ::value)> +FMT_CONSTEXPR To safe_float_conversion(const From from, int& ec) { + ec = 0; + using T = std::numeric_limits; + static_assert(std::is_floating_point::value, "From must be floating"); + static_assert(std::is_floating_point::value, "To must be floating"); + + // catch the only happy case + if (std::isfinite(from)) { + if (from >= T::lowest() && from <= (T::max)()) { + return static_cast(from); + } + // not within range. + ec = 1; + return {}; + } + + // nan and inf will be preserved + return static_cast(from); +} // function + +template ::value)> +FMT_CONSTEXPR To safe_float_conversion(const From from, int& ec) { + ec = 0; + static_assert(std::is_floating_point::value, "From must be floating"); + return from; +} + +/** + * safe duration cast between integral durations + */ +template ::value), + FMT_ENABLE_IF(std::is_integral::value)> +To safe_duration_cast(std::chrono::duration from, + int& ec) { + using From = std::chrono::duration; + ec = 0; + // the basic idea is that we need to convert from count() in the from type + // to count() in the To type, by multiplying it with this: + struct Factor + : std::ratio_divide {}; + + static_assert(Factor::num > 0, "num must be positive"); + static_assert(Factor::den > 0, "den must be positive"); + + // the conversion is like this: multiply from.count() with Factor::num + // /Factor::den and convert it to To::rep, all this without + // overflow/underflow. let's start by finding a suitable type that can hold + // both To, From and Factor::num + using IntermediateRep = + typename std::common_type::type; + + // safe conversion to IntermediateRep + IntermediateRep count = + lossless_integral_conversion(from.count(), ec); + if (ec) return {}; + // multiply with Factor::num without overflow or underflow + if (detail::const_check(Factor::num != 1)) { + const auto max1 = detail::max_value() / Factor::num; + if (count > max1) { + ec = 1; + return {}; + } + const auto min1 = + (std::numeric_limits::min)() / Factor::num; + if (count < min1) { + ec = 1; + return {}; + } + count *= Factor::num; + } + + if (detail::const_check(Factor::den != 1)) count /= Factor::den; + auto tocount = lossless_integral_conversion(count, ec); + return ec ? To() : To(tocount); +} + +/** + * safe duration_cast between floating point durations + */ +template ::value), + FMT_ENABLE_IF(std::is_floating_point::value)> +To safe_duration_cast(std::chrono::duration from, + int& ec) { + using From = std::chrono::duration; + ec = 0; + if (std::isnan(from.count())) { + // nan in, gives nan out. easy. + return To{std::numeric_limits::quiet_NaN()}; + } + // maybe we should also check if from is denormal, and decide what to do about + // it. + + // +-inf should be preserved. + if (std::isinf(from.count())) { + return To{from.count()}; + } + + // the basic idea is that we need to convert from count() in the from type + // to count() in the To type, by multiplying it with this: + struct Factor + : std::ratio_divide {}; + + static_assert(Factor::num > 0, "num must be positive"); + static_assert(Factor::den > 0, "den must be positive"); + + // the conversion is like this: multiply from.count() with Factor::num + // /Factor::den and convert it to To::rep, all this without + // overflow/underflow. let's start by finding a suitable type that can hold + // both To, From and Factor::num + using IntermediateRep = + typename std::common_type::type; + + // force conversion of From::rep -> IntermediateRep to be safe, + // even if it will never happen be narrowing in this context. + IntermediateRep count = + safe_float_conversion(from.count(), ec); + if (ec) { + return {}; + } + + // multiply with Factor::num without overflow or underflow + if (Factor::num != 1) { + constexpr auto max1 = detail::max_value() / + static_cast(Factor::num); + if (count > max1) { + ec = 1; + return {}; + } + constexpr auto min1 = std::numeric_limits::lowest() / + static_cast(Factor::num); + if (count < min1) { + ec = 1; + return {}; + } + count *= static_cast(Factor::num); + } + + // this can't go wrong, right? den>0 is checked earlier. + if (Factor::den != 1) { + using common_t = typename std::common_type::type; + count /= static_cast(Factor::den); + } + + // convert to the to type, safely + using ToRep = typename To::rep; + + const ToRep tocount = safe_float_conversion(count, ec); + if (ec) { + return {}; + } + return To{tocount}; +} +} // namespace safe_duration_cast +#endif + +// Prevents expansion of a preceding token as a function-style macro. +// Usage: f FMT_NOMACRO() +#define FMT_NOMACRO + +namespace detail { +inline null<> localtime_r FMT_NOMACRO(...) { return null<>(); } +inline null<> localtime_s(...) { return null<>(); } +inline null<> gmtime_r(...) { return null<>(); } +inline null<> gmtime_s(...) { return null<>(); } +} // namespace detail + +// Thread-safe replacement for std::localtime +inline std::tm localtime(std::time_t time) { + struct dispatcher { + std::time_t time_; + std::tm tm_; + + dispatcher(std::time_t t) : time_(t) {} + + bool run() { + using namespace fmt::detail; + return handle(localtime_r(&time_, &tm_)); + } + + bool handle(std::tm* tm) { return tm != nullptr; } + + bool handle(detail::null<>) { + using namespace fmt::detail; + return fallback(localtime_s(&tm_, &time_)); + } + + bool fallback(int res) { return res == 0; } + +#if !FMT_MSC_VER + bool fallback(detail::null<>) { + using namespace fmt::detail; + std::tm* tm = std::localtime(&time_); + if (tm) tm_ = *tm; + return tm != nullptr; + } +#endif + }; + dispatcher lt(time); + // Too big time values may be unsupported. + if (!lt.run()) FMT_THROW(format_error("time_t value out of range")); + return lt.tm_; +} + +inline std::tm localtime( + std::chrono::time_point time_point) { + return localtime(std::chrono::system_clock::to_time_t(time_point)); +} + +// Thread-safe replacement for std::gmtime +inline std::tm gmtime(std::time_t time) { + struct dispatcher { + std::time_t time_; + std::tm tm_; + + dispatcher(std::time_t t) : time_(t) {} + + bool run() { + using namespace fmt::detail; + return handle(gmtime_r(&time_, &tm_)); + } + + bool handle(std::tm* tm) { return tm != nullptr; } + + bool handle(detail::null<>) { + using namespace fmt::detail; + return fallback(gmtime_s(&tm_, &time_)); + } + + bool fallback(int res) { return res == 0; } + +#if !FMT_MSC_VER + bool fallback(detail::null<>) { + std::tm* tm = std::gmtime(&time_); + if (tm) tm_ = *tm; + return tm != nullptr; + } +#endif + }; + dispatcher gt(time); + // Too big time values may be unsupported. + if (!gt.run()) FMT_THROW(format_error("time_t value out of range")); + return gt.tm_; +} + +inline std::tm gmtime( + std::chrono::time_point time_point) { + return gmtime(std::chrono::system_clock::to_time_t(time_point)); +} + +namespace detail { +inline size_t strftime(char* str, size_t count, const char* format, + const std::tm* time) { + return std::strftime(str, count, format, time); +} + +inline size_t strftime(wchar_t* str, size_t count, const wchar_t* format, + const std::tm* time) { + return std::wcsftime(str, count, format, time); +} +} // namespace detail + +template +struct formatter, Char> + : formatter { + template + auto format(std::chrono::time_point val, + FormatContext& ctx) -> decltype(ctx.out()) { + std::tm time = localtime(val); + return formatter::format(time, ctx); + } +}; + +template struct formatter { + template + auto parse(ParseContext& ctx) -> decltype(ctx.begin()) { + auto it = ctx.begin(); + if (it != ctx.end() && *it == ':') ++it; + auto end = it; + while (end != ctx.end() && *end != '}') ++end; + tm_format.reserve(detail::to_unsigned(end - it + 1)); + tm_format.append(it, end); + tm_format.push_back('\0'); + return end; + } + + template + auto format(const std::tm& tm, FormatContext& ctx) -> decltype(ctx.out()) { + basic_memory_buffer buf; + size_t start = buf.size(); + for (;;) { + size_t size = buf.capacity() - start; + size_t count = detail::strftime(&buf[start], size, &tm_format[0], &tm); + if (count != 0) { + buf.resize(start + count); + break; + } + if (size >= tm_format.size() * 256) { + // If the buffer is 256 times larger than the format string, assume + // that `strftime` gives an empty result. There doesn't seem to be a + // better way to distinguish the two cases: + // https://github.com/fmtlib/fmt/issues/367 + break; + } + const size_t MIN_GROWTH = 10; + buf.reserve(buf.capacity() + (size > MIN_GROWTH ? size : MIN_GROWTH)); + } + return std::copy(buf.begin(), buf.end(), ctx.out()); + } + + basic_memory_buffer tm_format; +}; + +namespace detail { +template FMT_CONSTEXPR const char* get_units() { + return nullptr; +} +template <> FMT_CONSTEXPR const char* get_units() { return "as"; } +template <> FMT_CONSTEXPR const char* get_units() { return "fs"; } +template <> FMT_CONSTEXPR const char* get_units() { return "ps"; } +template <> FMT_CONSTEXPR const char* get_units() { return "ns"; } +template <> FMT_CONSTEXPR const char* get_units() { return "µs"; } +template <> FMT_CONSTEXPR const char* get_units() { return "ms"; } +template <> FMT_CONSTEXPR const char* get_units() { return "cs"; } +template <> FMT_CONSTEXPR const char* get_units() { return "ds"; } +template <> FMT_CONSTEXPR const char* get_units>() { return "s"; } +template <> FMT_CONSTEXPR const char* get_units() { return "das"; } +template <> FMT_CONSTEXPR const char* get_units() { return "hs"; } +template <> FMT_CONSTEXPR const char* get_units() { return "ks"; } +template <> FMT_CONSTEXPR const char* get_units() { return "Ms"; } +template <> FMT_CONSTEXPR const char* get_units() { return "Gs"; } +template <> FMT_CONSTEXPR const char* get_units() { return "Ts"; } +template <> FMT_CONSTEXPR const char* get_units() { return "Ps"; } +template <> FMT_CONSTEXPR const char* get_units() { return "Es"; } +template <> FMT_CONSTEXPR const char* get_units>() { + return "m"; +} +template <> FMT_CONSTEXPR const char* get_units>() { + return "h"; +} + +enum class numeric_system { + standard, + // Alternative numeric system, e.g. 十二 instead of 12 in ja_JP locale. + alternative +}; + +// Parses a put_time-like format string and invokes handler actions. +template +FMT_CONSTEXPR const Char* parse_chrono_format(const Char* begin, + const Char* end, + Handler&& handler) { + auto ptr = begin; + while (ptr != end) { + auto c = *ptr; + if (c == '}') break; + if (c != '%') { + ++ptr; + continue; + } + if (begin != ptr) handler.on_text(begin, ptr); + ++ptr; // consume '%' + if (ptr == end) FMT_THROW(format_error("invalid format")); + c = *ptr++; + switch (c) { + case '%': + handler.on_text(ptr - 1, ptr); + break; + case 'n': { + const Char newline[] = {'\n'}; + handler.on_text(newline, newline + 1); + break; + } + case 't': { + const Char tab[] = {'\t'}; + handler.on_text(tab, tab + 1); + break; + } + // Day of the week: + case 'a': + handler.on_abbr_weekday(); + break; + case 'A': + handler.on_full_weekday(); + break; + case 'w': + handler.on_dec0_weekday(numeric_system::standard); + break; + case 'u': + handler.on_dec1_weekday(numeric_system::standard); + break; + // Month: + case 'b': + handler.on_abbr_month(); + break; + case 'B': + handler.on_full_month(); + break; + // Hour, minute, second: + case 'H': + handler.on_24_hour(numeric_system::standard); + break; + case 'I': + handler.on_12_hour(numeric_system::standard); + break; + case 'M': + handler.on_minute(numeric_system::standard); + break; + case 'S': + handler.on_second(numeric_system::standard); + break; + // Other: + case 'c': + handler.on_datetime(numeric_system::standard); + break; + case 'x': + handler.on_loc_date(numeric_system::standard); + break; + case 'X': + handler.on_loc_time(numeric_system::standard); + break; + case 'D': + handler.on_us_date(); + break; + case 'F': + handler.on_iso_date(); + break; + case 'r': + handler.on_12_hour_time(); + break; + case 'R': + handler.on_24_hour_time(); + break; + case 'T': + handler.on_iso_time(); + break; + case 'p': + handler.on_am_pm(); + break; + case 'Q': + handler.on_duration_value(); + break; + case 'q': + handler.on_duration_unit(); + break; + case 'z': + handler.on_utc_offset(); + break; + case 'Z': + handler.on_tz_name(); + break; + // Alternative representation: + case 'E': { + if (ptr == end) FMT_THROW(format_error("invalid format")); + c = *ptr++; + switch (c) { + case 'c': + handler.on_datetime(numeric_system::alternative); + break; + case 'x': + handler.on_loc_date(numeric_system::alternative); + break; + case 'X': + handler.on_loc_time(numeric_system::alternative); + break; + default: + FMT_THROW(format_error("invalid format")); + } + break; + } + case 'O': + if (ptr == end) FMT_THROW(format_error("invalid format")); + c = *ptr++; + switch (c) { + case 'w': + handler.on_dec0_weekday(numeric_system::alternative); + break; + case 'u': + handler.on_dec1_weekday(numeric_system::alternative); + break; + case 'H': + handler.on_24_hour(numeric_system::alternative); + break; + case 'I': + handler.on_12_hour(numeric_system::alternative); + break; + case 'M': + handler.on_minute(numeric_system::alternative); + break; + case 'S': + handler.on_second(numeric_system::alternative); + break; + default: + FMT_THROW(format_error("invalid format")); + } + break; + default: + FMT_THROW(format_error("invalid format")); + } + begin = ptr; + } + if (begin != ptr) handler.on_text(begin, ptr); + return ptr; +} + +struct chrono_format_checker { + FMT_NORETURN void report_no_date() { FMT_THROW(format_error("no date")); } + + template void on_text(const Char*, const Char*) {} + FMT_NORETURN void on_abbr_weekday() { report_no_date(); } + FMT_NORETURN void on_full_weekday() { report_no_date(); } + FMT_NORETURN void on_dec0_weekday(numeric_system) { report_no_date(); } + FMT_NORETURN void on_dec1_weekday(numeric_system) { report_no_date(); } + FMT_NORETURN void on_abbr_month() { report_no_date(); } + FMT_NORETURN void on_full_month() { report_no_date(); } + void on_24_hour(numeric_system) {} + void on_12_hour(numeric_system) {} + void on_minute(numeric_system) {} + void on_second(numeric_system) {} + FMT_NORETURN void on_datetime(numeric_system) { report_no_date(); } + FMT_NORETURN void on_loc_date(numeric_system) { report_no_date(); } + FMT_NORETURN void on_loc_time(numeric_system) { report_no_date(); } + FMT_NORETURN void on_us_date() { report_no_date(); } + FMT_NORETURN void on_iso_date() { report_no_date(); } + void on_12_hour_time() {} + void on_24_hour_time() {} + void on_iso_time() {} + void on_am_pm() {} + void on_duration_value() {} + void on_duration_unit() {} + FMT_NORETURN void on_utc_offset() { report_no_date(); } + FMT_NORETURN void on_tz_name() { report_no_date(); } +}; + +template ::value)> +inline bool isnan(T) { + return false; +} +template ::value)> +inline bool isnan(T value) { + return std::isnan(value); +} + +template ::value)> +inline bool isfinite(T) { + return true; +} +template ::value)> +inline bool isfinite(T value) { + return std::isfinite(value); +} + +// Converts value to int and checks that it's in the range [0, upper). +template ::value)> +inline int to_nonnegative_int(T value, int upper) { + FMT_ASSERT(value >= 0 && value <= upper, "invalid value"); + (void)upper; + return static_cast(value); +} +template ::value)> +inline int to_nonnegative_int(T value, int upper) { + FMT_ASSERT( + std::isnan(value) || (value >= 0 && value <= static_cast(upper)), + "invalid value"); + (void)upper; + return static_cast(value); +} + +template ::value)> +inline T mod(T x, int y) { + return x % static_cast(y); +} +template ::value)> +inline T mod(T x, int y) { + return std::fmod(x, static_cast(y)); +} + +// If T is an integral type, maps T to its unsigned counterpart, otherwise +// leaves it unchanged (unlike std::make_unsigned). +template ::value> +struct make_unsigned_or_unchanged { + using type = T; +}; + +template struct make_unsigned_or_unchanged { + using type = typename std::make_unsigned::type; +}; + +#if FMT_SAFE_DURATION_CAST +// throwing version of safe_duration_cast +template +To fmt_safe_duration_cast(std::chrono::duration from) { + int ec; + To to = safe_duration_cast::safe_duration_cast(from, ec); + if (ec) FMT_THROW(format_error("cannot format duration")); + return to; +} +#endif + +template ::value)> +inline std::chrono::duration get_milliseconds( + std::chrono::duration d) { + // this may overflow and/or the result may not fit in the + // target type. +#if FMT_SAFE_DURATION_CAST + using CommonSecondsType = + typename std::common_type::type; + const auto d_as_common = fmt_safe_duration_cast(d); + const auto d_as_whole_seconds = + fmt_safe_duration_cast(d_as_common); + // this conversion should be nonproblematic + const auto diff = d_as_common - d_as_whole_seconds; + const auto ms = + fmt_safe_duration_cast>(diff); + return ms; +#else + auto s = std::chrono::duration_cast(d); + return std::chrono::duration_cast(d - s); +#endif +} + +template ::value)> +inline std::chrono::duration get_milliseconds( + std::chrono::duration d) { + using common_type = typename std::common_type::type; + auto ms = mod(d.count() * static_cast(Period::num) / + static_cast(Period::den) * 1000, + 1000); + return std::chrono::duration(static_cast(ms)); +} + +template +OutputIt format_duration_value(OutputIt out, Rep val, int precision) { + const Char pr_f[] = {'{', ':', '.', '{', '}', 'f', '}', 0}; + if (precision >= 0) return format_to(out, pr_f, val, precision); + const Char fp_f[] = {'{', ':', 'g', '}', 0}; + const Char format[] = {'{', '}', 0}; + return format_to(out, std::is_floating_point::value ? fp_f : format, + val); +} +template +OutputIt copy_unit(string_view unit, OutputIt out, Char) { + return std::copy(unit.begin(), unit.end(), out); +} + +template +OutputIt copy_unit(string_view unit, OutputIt out, wchar_t) { + // This works when wchar_t is UTF-32 because units only contain characters + // that have the same representation in UTF-16 and UTF-32. + utf8_to_utf16 u(unit); + return std::copy(u.c_str(), u.c_str() + u.size(), out); +} + +template +OutputIt format_duration_unit(OutputIt out) { + if (const char* unit = get_units()) + return copy_unit(string_view(unit), out, Char()); + const Char num_f[] = {'[', '{', '}', ']', 's', 0}; + if (const_check(Period::den == 1)) return format_to(out, num_f, Period::num); + const Char num_def_f[] = {'[', '{', '}', '/', '{', '}', ']', 's', 0}; + return format_to(out, num_def_f, Period::num, Period::den); +} + +template +struct chrono_formatter { + FormatContext& context; + OutputIt out; + int precision; + // rep is unsigned to avoid overflow. + using rep = + conditional_t::value && sizeof(Rep) < sizeof(int), + unsigned, typename make_unsigned_or_unchanged::type>; + rep val; + using seconds = std::chrono::duration; + seconds s; + using milliseconds = std::chrono::duration; + bool negative; + + using char_type = typename FormatContext::char_type; + + explicit chrono_formatter(FormatContext& ctx, OutputIt o, + std::chrono::duration d) + : context(ctx), + out(o), + val(static_cast(d.count())), + negative(false) { + if (d.count() < 0) { + val = 0 - val; + negative = true; + } + + // this may overflow and/or the result may not fit in the + // target type. +#if FMT_SAFE_DURATION_CAST + // might need checked conversion (rep!=Rep) + auto tmpval = std::chrono::duration(val); + s = fmt_safe_duration_cast(tmpval); +#else + s = std::chrono::duration_cast( + std::chrono::duration(val)); +#endif + } + + // returns true if nan or inf, writes to out. + bool handle_nan_inf() { + if (isfinite(val)) { + return false; + } + if (isnan(val)) { + write_nan(); + return true; + } + // must be +-inf + if (val > 0) { + write_pinf(); + } else { + write_ninf(); + } + return true; + } + + Rep hour() const { return static_cast(mod((s.count() / 3600), 24)); } + + Rep hour12() const { + Rep hour = static_cast(mod((s.count() / 3600), 12)); + return hour <= 0 ? 12 : hour; + } + + Rep minute() const { return static_cast(mod((s.count() / 60), 60)); } + Rep second() const { return static_cast(mod(s.count(), 60)); } + + std::tm time() const { + auto time = std::tm(); + time.tm_hour = to_nonnegative_int(hour(), 24); + time.tm_min = to_nonnegative_int(minute(), 60); + time.tm_sec = to_nonnegative_int(second(), 60); + return time; + } + + void write_sign() { + if (negative) { + *out++ = '-'; + negative = false; + } + } + + void write(Rep value, int width) { + write_sign(); + if (isnan(value)) return write_nan(); + uint32_or_64_or_128_t n = + to_unsigned(to_nonnegative_int(value, max_value())); + int num_digits = detail::count_digits(n); + if (width > num_digits) out = std::fill_n(out, width - num_digits, '0'); + out = format_decimal(out, n, num_digits).end; + } + + void write_nan() { std::copy_n("nan", 3, out); } + void write_pinf() { std::copy_n("inf", 3, out); } + void write_ninf() { std::copy_n("-inf", 4, out); } + + void format_localized(const tm& time, char format, char modifier = 0) { + if (isnan(val)) return write_nan(); + auto locale = context.locale().template get(); + auto& facet = std::use_facet>(locale); + std::basic_ostringstream os; + os.imbue(locale); + facet.put(os, os, ' ', &time, format, modifier); + auto str = os.str(); + std::copy(str.begin(), str.end(), out); + } + + void on_text(const char_type* begin, const char_type* end) { + std::copy(begin, end, out); + } + + // These are not implemented because durations don't have date information. + void on_abbr_weekday() {} + void on_full_weekday() {} + void on_dec0_weekday(numeric_system) {} + void on_dec1_weekday(numeric_system) {} + void on_abbr_month() {} + void on_full_month() {} + void on_datetime(numeric_system) {} + void on_loc_date(numeric_system) {} + void on_loc_time(numeric_system) {} + void on_us_date() {} + void on_iso_date() {} + void on_utc_offset() {} + void on_tz_name() {} + + void on_24_hour(numeric_system ns) { + if (handle_nan_inf()) return; + + if (ns == numeric_system::standard) return write(hour(), 2); + auto time = tm(); + time.tm_hour = to_nonnegative_int(hour(), 24); + format_localized(time, 'H', 'O'); + } + + void on_12_hour(numeric_system ns) { + if (handle_nan_inf()) return; + + if (ns == numeric_system::standard) return write(hour12(), 2); + auto time = tm(); + time.tm_hour = to_nonnegative_int(hour12(), 12); + format_localized(time, 'I', 'O'); + } + + void on_minute(numeric_system ns) { + if (handle_nan_inf()) return; + + if (ns == numeric_system::standard) return write(minute(), 2); + auto time = tm(); + time.tm_min = to_nonnegative_int(minute(), 60); + format_localized(time, 'M', 'O'); + } + + void on_second(numeric_system ns) { + if (handle_nan_inf()) return; + + if (ns == numeric_system::standard) { + write(second(), 2); +#if FMT_SAFE_DURATION_CAST + // convert rep->Rep + using duration_rep = std::chrono::duration; + using duration_Rep = std::chrono::duration; + auto tmpval = fmt_safe_duration_cast(duration_rep{val}); +#else + auto tmpval = std::chrono::duration(val); +#endif + auto ms = get_milliseconds(tmpval); + if (ms != std::chrono::milliseconds(0)) { + *out++ = '.'; + write(ms.count(), 3); + } + return; + } + auto time = tm(); + time.tm_sec = to_nonnegative_int(second(), 60); + format_localized(time, 'S', 'O'); + } + + void on_12_hour_time() { + if (handle_nan_inf()) return; + format_localized(time(), 'r'); + } + + void on_24_hour_time() { + if (handle_nan_inf()) { + *out++ = ':'; + handle_nan_inf(); + return; + } + + write(hour(), 2); + *out++ = ':'; + write(minute(), 2); + } + + void on_iso_time() { + on_24_hour_time(); + *out++ = ':'; + if (handle_nan_inf()) return; + write(second(), 2); + } + + void on_am_pm() { + if (handle_nan_inf()) return; + format_localized(time(), 'p'); + } + + void on_duration_value() { + if (handle_nan_inf()) return; + write_sign(); + out = format_duration_value(out, val, precision); + } + + void on_duration_unit() { + out = format_duration_unit(out); + } +}; +} // namespace detail + +template +struct formatter, Char> { + private: + basic_format_specs specs; + int precision; + using arg_ref_type = detail::arg_ref; + arg_ref_type width_ref; + arg_ref_type precision_ref; + mutable basic_string_view format_str; + using duration = std::chrono::duration; + + struct spec_handler { + formatter& f; + basic_format_parse_context& context; + basic_string_view format_str; + + template FMT_CONSTEXPR arg_ref_type make_arg_ref(Id arg_id) { + context.check_arg_id(arg_id); + return arg_ref_type(arg_id); + } + + FMT_CONSTEXPR arg_ref_type make_arg_ref(basic_string_view arg_id) { + context.check_arg_id(arg_id); + return arg_ref_type(arg_id); + } + + FMT_CONSTEXPR arg_ref_type make_arg_ref(detail::auto_id) { + return arg_ref_type(context.next_arg_id()); + } + + void on_error(const char* msg) { FMT_THROW(format_error(msg)); } + void on_fill(basic_string_view fill) { f.specs.fill = fill; } + void on_align(align_t align) { f.specs.align = align; } + void on_width(int width) { f.specs.width = width; } + void on_precision(int _precision) { f.precision = _precision; } + void end_precision() {} + + template void on_dynamic_width(Id arg_id) { + f.width_ref = make_arg_ref(arg_id); + } + + template void on_dynamic_precision(Id arg_id) { + f.precision_ref = make_arg_ref(arg_id); + } + }; + + using iterator = typename basic_format_parse_context::iterator; + struct parse_range { + iterator begin; + iterator end; + }; + + FMT_CONSTEXPR parse_range do_parse(basic_format_parse_context& ctx) { + auto begin = ctx.begin(), end = ctx.end(); + if (begin == end || *begin == '}') return {begin, begin}; + spec_handler handler{*this, ctx, format_str}; + begin = detail::parse_align(begin, end, handler); + if (begin == end) return {begin, begin}; + begin = detail::parse_width(begin, end, handler); + if (begin == end) return {begin, begin}; + if (*begin == '.') { + if (std::is_floating_point::value) + begin = detail::parse_precision(begin, end, handler); + else + handler.on_error("precision not allowed for this argument type"); + } + end = parse_chrono_format(begin, end, detail::chrono_format_checker()); + return {begin, end}; + } + + public: + formatter() : precision(-1) {} + + FMT_CONSTEXPR auto parse(basic_format_parse_context& ctx) + -> decltype(ctx.begin()) { + auto range = do_parse(ctx); + format_str = basic_string_view( + &*range.begin, detail::to_unsigned(range.end - range.begin)); + return range.end; + } + + template + auto format(const duration& d, FormatContext& ctx) -> decltype(ctx.out()) { + auto begin = format_str.begin(), end = format_str.end(); + // As a possible future optimization, we could avoid extra copying if width + // is not specified. + basic_memory_buffer buf; + auto out = std::back_inserter(buf); + detail::handle_dynamic_spec(specs.width, width_ref, + ctx); + detail::handle_dynamic_spec(precision, + precision_ref, ctx); + if (begin == end || *begin == '}') { + out = detail::format_duration_value(out, d.count(), precision); + detail::format_duration_unit(out); + } else { + detail::chrono_formatter f( + ctx, out, d); + f.precision = precision; + parse_chrono_format(begin, end, f); + } + return detail::write( + ctx.out(), basic_string_view(buf.data(), buf.size()), specs); + } +}; + +FMT_END_NAMESPACE + +#endif // FMT_CHRONO_H_ diff --git a/src/ext/spdlog/fmt/bundled/color.h b/src/ext/spdlog/fmt/bundled/color.h new file mode 100644 index 0000000..94e3419 --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/color.h @@ -0,0 +1,603 @@ +// Formatting library for C++ - color support +// +// Copyright (c) 2018 - present, Victor Zverovich and fmt contributors +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_COLOR_H_ +#define FMT_COLOR_H_ + +#include "format.h" + +FMT_BEGIN_NAMESPACE + +enum class color : uint32_t { + alice_blue = 0xF0F8FF, // rgb(240,248,255) + antique_white = 0xFAEBD7, // rgb(250,235,215) + aqua = 0x00FFFF, // rgb(0,255,255) + aquamarine = 0x7FFFD4, // rgb(127,255,212) + azure = 0xF0FFFF, // rgb(240,255,255) + beige = 0xF5F5DC, // rgb(245,245,220) + bisque = 0xFFE4C4, // rgb(255,228,196) + black = 0x000000, // rgb(0,0,0) + blanched_almond = 0xFFEBCD, // rgb(255,235,205) + blue = 0x0000FF, // rgb(0,0,255) + blue_violet = 0x8A2BE2, // rgb(138,43,226) + brown = 0xA52A2A, // rgb(165,42,42) + burly_wood = 0xDEB887, // rgb(222,184,135) + cadet_blue = 0x5F9EA0, // rgb(95,158,160) + chartreuse = 0x7FFF00, // rgb(127,255,0) + chocolate = 0xD2691E, // rgb(210,105,30) + coral = 0xFF7F50, // rgb(255,127,80) + cornflower_blue = 0x6495ED, // rgb(100,149,237) + cornsilk = 0xFFF8DC, // rgb(255,248,220) + crimson = 0xDC143C, // rgb(220,20,60) + cyan = 0x00FFFF, // rgb(0,255,255) + dark_blue = 0x00008B, // rgb(0,0,139) + dark_cyan = 0x008B8B, // rgb(0,139,139) + dark_golden_rod = 0xB8860B, // rgb(184,134,11) + dark_gray = 0xA9A9A9, // rgb(169,169,169) + dark_green = 0x006400, // rgb(0,100,0) + dark_khaki = 0xBDB76B, // rgb(189,183,107) + dark_magenta = 0x8B008B, // rgb(139,0,139) + dark_olive_green = 0x556B2F, // rgb(85,107,47) + dark_orange = 0xFF8C00, // rgb(255,140,0) + dark_orchid = 0x9932CC, // rgb(153,50,204) + dark_red = 0x8B0000, // rgb(139,0,0) + dark_salmon = 0xE9967A, // rgb(233,150,122) + dark_sea_green = 0x8FBC8F, // rgb(143,188,143) + dark_slate_blue = 0x483D8B, // rgb(72,61,139) + dark_slate_gray = 0x2F4F4F, // rgb(47,79,79) + dark_turquoise = 0x00CED1, // rgb(0,206,209) + dark_violet = 0x9400D3, // rgb(148,0,211) + deep_pink = 0xFF1493, // rgb(255,20,147) + deep_sky_blue = 0x00BFFF, // rgb(0,191,255) + dim_gray = 0x696969, // rgb(105,105,105) + dodger_blue = 0x1E90FF, // rgb(30,144,255) + fire_brick = 0xB22222, // rgb(178,34,34) + floral_white = 0xFFFAF0, // rgb(255,250,240) + forest_green = 0x228B22, // rgb(34,139,34) + fuchsia = 0xFF00FF, // rgb(255,0,255) + gainsboro = 0xDCDCDC, // rgb(220,220,220) + ghost_white = 0xF8F8FF, // rgb(248,248,255) + gold = 0xFFD700, // rgb(255,215,0) + golden_rod = 0xDAA520, // rgb(218,165,32) + gray = 0x808080, // rgb(128,128,128) + green = 0x008000, // rgb(0,128,0) + green_yellow = 0xADFF2F, // rgb(173,255,47) + honey_dew = 0xF0FFF0, // rgb(240,255,240) + hot_pink = 0xFF69B4, // rgb(255,105,180) + indian_red = 0xCD5C5C, // rgb(205,92,92) + indigo = 0x4B0082, // rgb(75,0,130) + ivory = 0xFFFFF0, // rgb(255,255,240) + khaki = 0xF0E68C, // rgb(240,230,140) + lavender = 0xE6E6FA, // rgb(230,230,250) + lavender_blush = 0xFFF0F5, // rgb(255,240,245) + lawn_green = 0x7CFC00, // rgb(124,252,0) + lemon_chiffon = 0xFFFACD, // rgb(255,250,205) + light_blue = 0xADD8E6, // rgb(173,216,230) + light_coral = 0xF08080, // rgb(240,128,128) + light_cyan = 0xE0FFFF, // rgb(224,255,255) + light_golden_rod_yellow = 0xFAFAD2, // rgb(250,250,210) + light_gray = 0xD3D3D3, // rgb(211,211,211) + light_green = 0x90EE90, // rgb(144,238,144) + light_pink = 0xFFB6C1, // rgb(255,182,193) + light_salmon = 0xFFA07A, // rgb(255,160,122) + light_sea_green = 0x20B2AA, // rgb(32,178,170) + light_sky_blue = 0x87CEFA, // rgb(135,206,250) + light_slate_gray = 0x778899, // rgb(119,136,153) + light_steel_blue = 0xB0C4DE, // rgb(176,196,222) + light_yellow = 0xFFFFE0, // rgb(255,255,224) + lime = 0x00FF00, // rgb(0,255,0) + lime_green = 0x32CD32, // rgb(50,205,50) + linen = 0xFAF0E6, // rgb(250,240,230) + magenta = 0xFF00FF, // rgb(255,0,255) + maroon = 0x800000, // rgb(128,0,0) + medium_aquamarine = 0x66CDAA, // rgb(102,205,170) + medium_blue = 0x0000CD, // rgb(0,0,205) + medium_orchid = 0xBA55D3, // rgb(186,85,211) + medium_purple = 0x9370DB, // rgb(147,112,219) + medium_sea_green = 0x3CB371, // rgb(60,179,113) + medium_slate_blue = 0x7B68EE, // rgb(123,104,238) + medium_spring_green = 0x00FA9A, // rgb(0,250,154) + medium_turquoise = 0x48D1CC, // rgb(72,209,204) + medium_violet_red = 0xC71585, // rgb(199,21,133) + midnight_blue = 0x191970, // rgb(25,25,112) + mint_cream = 0xF5FFFA, // rgb(245,255,250) + misty_rose = 0xFFE4E1, // rgb(255,228,225) + moccasin = 0xFFE4B5, // rgb(255,228,181) + navajo_white = 0xFFDEAD, // rgb(255,222,173) + navy = 0x000080, // rgb(0,0,128) + old_lace = 0xFDF5E6, // rgb(253,245,230) + olive = 0x808000, // rgb(128,128,0) + olive_drab = 0x6B8E23, // rgb(107,142,35) + orange = 0xFFA500, // rgb(255,165,0) + orange_red = 0xFF4500, // rgb(255,69,0) + orchid = 0xDA70D6, // rgb(218,112,214) + pale_golden_rod = 0xEEE8AA, // rgb(238,232,170) + pale_green = 0x98FB98, // rgb(152,251,152) + pale_turquoise = 0xAFEEEE, // rgb(175,238,238) + pale_violet_red = 0xDB7093, // rgb(219,112,147) + papaya_whip = 0xFFEFD5, // rgb(255,239,213) + peach_puff = 0xFFDAB9, // rgb(255,218,185) + peru = 0xCD853F, // rgb(205,133,63) + pink = 0xFFC0CB, // rgb(255,192,203) + plum = 0xDDA0DD, // rgb(221,160,221) + powder_blue = 0xB0E0E6, // rgb(176,224,230) + purple = 0x800080, // rgb(128,0,128) + rebecca_purple = 0x663399, // rgb(102,51,153) + red = 0xFF0000, // rgb(255,0,0) + rosy_brown = 0xBC8F8F, // rgb(188,143,143) + royal_blue = 0x4169E1, // rgb(65,105,225) + saddle_brown = 0x8B4513, // rgb(139,69,19) + salmon = 0xFA8072, // rgb(250,128,114) + sandy_brown = 0xF4A460, // rgb(244,164,96) + sea_green = 0x2E8B57, // rgb(46,139,87) + sea_shell = 0xFFF5EE, // rgb(255,245,238) + sienna = 0xA0522D, // rgb(160,82,45) + silver = 0xC0C0C0, // rgb(192,192,192) + sky_blue = 0x87CEEB, // rgb(135,206,235) + slate_blue = 0x6A5ACD, // rgb(106,90,205) + slate_gray = 0x708090, // rgb(112,128,144) + snow = 0xFFFAFA, // rgb(255,250,250) + spring_green = 0x00FF7F, // rgb(0,255,127) + steel_blue = 0x4682B4, // rgb(70,130,180) + tan = 0xD2B48C, // rgb(210,180,140) + teal = 0x008080, // rgb(0,128,128) + thistle = 0xD8BFD8, // rgb(216,191,216) + tomato = 0xFF6347, // rgb(255,99,71) + turquoise = 0x40E0D0, // rgb(64,224,208) + violet = 0xEE82EE, // rgb(238,130,238) + wheat = 0xF5DEB3, // rgb(245,222,179) + white = 0xFFFFFF, // rgb(255,255,255) + white_smoke = 0xF5F5F5, // rgb(245,245,245) + yellow = 0xFFFF00, // rgb(255,255,0) + yellow_green = 0x9ACD32 // rgb(154,205,50) +}; // enum class color + +enum class terminal_color : uint8_t { + black = 30, + red, + green, + yellow, + blue, + magenta, + cyan, + white, + bright_black = 90, + bright_red, + bright_green, + bright_yellow, + bright_blue, + bright_magenta, + bright_cyan, + bright_white +}; + +enum class emphasis : uint8_t { + bold = 1, + italic = 1 << 1, + underline = 1 << 2, + strikethrough = 1 << 3 +}; + +// rgb is a struct for red, green and blue colors. +// Using the name "rgb" makes some editors show the color in a tooltip. +struct rgb { + FMT_CONSTEXPR rgb() : r(0), g(0), b(0) {} + FMT_CONSTEXPR rgb(uint8_t r_, uint8_t g_, uint8_t b_) : r(r_), g(g_), b(b_) {} + FMT_CONSTEXPR rgb(uint32_t hex) + : r((hex >> 16) & 0xFF), g((hex >> 8) & 0xFF), b(hex & 0xFF) {} + FMT_CONSTEXPR rgb(color hex) + : r((uint32_t(hex) >> 16) & 0xFF), + g((uint32_t(hex) >> 8) & 0xFF), + b(uint32_t(hex) & 0xFF) {} + uint8_t r; + uint8_t g; + uint8_t b; +}; + +namespace detail { + +// color is a struct of either a rgb color or a terminal color. +struct color_type { + FMT_CONSTEXPR color_type() FMT_NOEXCEPT : is_rgb(), value{} {} + FMT_CONSTEXPR color_type(color rgb_color) FMT_NOEXCEPT : is_rgb(true), + value{} { + value.rgb_color = static_cast(rgb_color); + } + FMT_CONSTEXPR color_type(rgb rgb_color) FMT_NOEXCEPT : is_rgb(true), value{} { + value.rgb_color = (static_cast(rgb_color.r) << 16) | + (static_cast(rgb_color.g) << 8) | rgb_color.b; + } + FMT_CONSTEXPR color_type(terminal_color term_color) FMT_NOEXCEPT : is_rgb(), + value{} { + value.term_color = static_cast(term_color); + } + bool is_rgb; + union color_union { + uint8_t term_color; + uint32_t rgb_color; + } value; +}; +} // namespace detail + +// Experimental text formatting support. +class text_style { + public: + FMT_CONSTEXPR text_style(emphasis em = emphasis()) FMT_NOEXCEPT + : set_foreground_color(), + set_background_color(), + ems(em) {} + + FMT_CONSTEXPR text_style& operator|=(const text_style& rhs) { + if (!set_foreground_color) { + set_foreground_color = rhs.set_foreground_color; + foreground_color = rhs.foreground_color; + } else if (rhs.set_foreground_color) { + if (!foreground_color.is_rgb || !rhs.foreground_color.is_rgb) + FMT_THROW(format_error("can't OR a terminal color")); + foreground_color.value.rgb_color |= rhs.foreground_color.value.rgb_color; + } + + if (!set_background_color) { + set_background_color = rhs.set_background_color; + background_color = rhs.background_color; + } else if (rhs.set_background_color) { + if (!background_color.is_rgb || !rhs.background_color.is_rgb) + FMT_THROW(format_error("can't OR a terminal color")); + background_color.value.rgb_color |= rhs.background_color.value.rgb_color; + } + + ems = static_cast(static_cast(ems) | + static_cast(rhs.ems)); + return *this; + } + + friend FMT_CONSTEXPR text_style operator|(text_style lhs, + const text_style& rhs) { + return lhs |= rhs; + } + + FMT_CONSTEXPR text_style& operator&=(const text_style& rhs) { + if (!set_foreground_color) { + set_foreground_color = rhs.set_foreground_color; + foreground_color = rhs.foreground_color; + } else if (rhs.set_foreground_color) { + if (!foreground_color.is_rgb || !rhs.foreground_color.is_rgb) + FMT_THROW(format_error("can't AND a terminal color")); + foreground_color.value.rgb_color &= rhs.foreground_color.value.rgb_color; + } + + if (!set_background_color) { + set_background_color = rhs.set_background_color; + background_color = rhs.background_color; + } else if (rhs.set_background_color) { + if (!background_color.is_rgb || !rhs.background_color.is_rgb) + FMT_THROW(format_error("can't AND a terminal color")); + background_color.value.rgb_color &= rhs.background_color.value.rgb_color; + } + + ems = static_cast(static_cast(ems) & + static_cast(rhs.ems)); + return *this; + } + + friend FMT_CONSTEXPR text_style operator&(text_style lhs, + const text_style& rhs) { + return lhs &= rhs; + } + + FMT_CONSTEXPR bool has_foreground() const FMT_NOEXCEPT { + return set_foreground_color; + } + FMT_CONSTEXPR bool has_background() const FMT_NOEXCEPT { + return set_background_color; + } + FMT_CONSTEXPR bool has_emphasis() const FMT_NOEXCEPT { + return static_cast(ems) != 0; + } + FMT_CONSTEXPR detail::color_type get_foreground() const FMT_NOEXCEPT { + FMT_ASSERT(has_foreground(), "no foreground specified for this style"); + return foreground_color; + } + FMT_CONSTEXPR detail::color_type get_background() const FMT_NOEXCEPT { + FMT_ASSERT(has_background(), "no background specified for this style"); + return background_color; + } + FMT_CONSTEXPR emphasis get_emphasis() const FMT_NOEXCEPT { + FMT_ASSERT(has_emphasis(), "no emphasis specified for this style"); + return ems; + } + + private: + FMT_CONSTEXPR text_style(bool is_foreground, + detail::color_type text_color) FMT_NOEXCEPT + : set_foreground_color(), + set_background_color(), + ems() { + if (is_foreground) { + foreground_color = text_color; + set_foreground_color = true; + } else { + background_color = text_color; + set_background_color = true; + } + } + + friend FMT_CONSTEXPR_DECL text_style fg(detail::color_type foreground) + FMT_NOEXCEPT; + friend FMT_CONSTEXPR_DECL text_style bg(detail::color_type background) + FMT_NOEXCEPT; + + detail::color_type foreground_color; + detail::color_type background_color; + bool set_foreground_color; + bool set_background_color; + emphasis ems; +}; + +FMT_CONSTEXPR text_style fg(detail::color_type foreground) FMT_NOEXCEPT { + return text_style(/*is_foreground=*/true, foreground); +} + +FMT_CONSTEXPR text_style bg(detail::color_type background) FMT_NOEXCEPT { + return text_style(/*is_foreground=*/false, background); +} + +FMT_CONSTEXPR text_style operator|(emphasis lhs, emphasis rhs) FMT_NOEXCEPT { + return text_style(lhs) | rhs; +} + +namespace detail { + +template struct ansi_color_escape { + FMT_CONSTEXPR ansi_color_escape(detail::color_type text_color, + const char* esc) FMT_NOEXCEPT { + // If we have a terminal color, we need to output another escape code + // sequence. + if (!text_color.is_rgb) { + bool is_background = esc == detail::data::background_color; + uint32_t value = text_color.value.term_color; + // Background ASCII codes are the same as the foreground ones but with + // 10 more. + if (is_background) value += 10u; + + size_t index = 0; + buffer[index++] = static_cast('\x1b'); + buffer[index++] = static_cast('['); + + if (value >= 100u) { + buffer[index++] = static_cast('1'); + value %= 100u; + } + buffer[index++] = static_cast('0' + value / 10u); + buffer[index++] = static_cast('0' + value % 10u); + + buffer[index++] = static_cast('m'); + buffer[index++] = static_cast('\0'); + return; + } + + for (int i = 0; i < 7; i++) { + buffer[i] = static_cast(esc[i]); + } + rgb color(text_color.value.rgb_color); + to_esc(color.r, buffer + 7, ';'); + to_esc(color.g, buffer + 11, ';'); + to_esc(color.b, buffer + 15, 'm'); + buffer[19] = static_cast(0); + } + FMT_CONSTEXPR ansi_color_escape(emphasis em) FMT_NOEXCEPT { + uint8_t em_codes[4] = {}; + uint8_t em_bits = static_cast(em); + if (em_bits & static_cast(emphasis::bold)) em_codes[0] = 1; + if (em_bits & static_cast(emphasis::italic)) em_codes[1] = 3; + if (em_bits & static_cast(emphasis::underline)) em_codes[2] = 4; + if (em_bits & static_cast(emphasis::strikethrough)) + em_codes[3] = 9; + + size_t index = 0; + for (int i = 0; i < 4; ++i) { + if (!em_codes[i]) continue; + buffer[index++] = static_cast('\x1b'); + buffer[index++] = static_cast('['); + buffer[index++] = static_cast('0' + em_codes[i]); + buffer[index++] = static_cast('m'); + } + buffer[index++] = static_cast(0); + } + FMT_CONSTEXPR operator const Char*() const FMT_NOEXCEPT { return buffer; } + + FMT_CONSTEXPR const Char* begin() const FMT_NOEXCEPT { return buffer; } + FMT_CONSTEXPR const Char* end() const FMT_NOEXCEPT { + return buffer + std::char_traits::length(buffer); + } + + private: + Char buffer[7u + 3u * 4u + 1u]; + + static FMT_CONSTEXPR void to_esc(uint8_t c, Char* out, + char delimiter) FMT_NOEXCEPT { + out[0] = static_cast('0' + c / 100); + out[1] = static_cast('0' + c / 10 % 10); + out[2] = static_cast('0' + c % 10); + out[3] = static_cast(delimiter); + } +}; + +template +FMT_CONSTEXPR ansi_color_escape make_foreground_color( + detail::color_type foreground) FMT_NOEXCEPT { + return ansi_color_escape(foreground, detail::data::foreground_color); +} + +template +FMT_CONSTEXPR ansi_color_escape make_background_color( + detail::color_type background) FMT_NOEXCEPT { + return ansi_color_escape(background, detail::data::background_color); +} + +template +FMT_CONSTEXPR ansi_color_escape make_emphasis(emphasis em) FMT_NOEXCEPT { + return ansi_color_escape(em); +} + +template +inline void fputs(const Char* chars, FILE* stream) FMT_NOEXCEPT { + std::fputs(chars, stream); +} + +template <> +inline void fputs(const wchar_t* chars, FILE* stream) FMT_NOEXCEPT { + std::fputws(chars, stream); +} + +template inline void reset_color(FILE* stream) FMT_NOEXCEPT { + fputs(detail::data::reset_color, stream); +} + +template <> inline void reset_color(FILE* stream) FMT_NOEXCEPT { + fputs(detail::data::wreset_color, stream); +} + +template +inline void reset_color(buffer& buffer) FMT_NOEXCEPT { + const char* begin = data::reset_color; + const char* end = begin + sizeof(data::reset_color) - 1; + buffer.append(begin, end); +} + +template +void vformat_to(buffer& buf, const text_style& ts, + basic_string_view format_str, + basic_format_args>> args) { + bool has_style = false; + if (ts.has_emphasis()) { + has_style = true; + auto emphasis = detail::make_emphasis(ts.get_emphasis()); + buf.append(emphasis.begin(), emphasis.end()); + } + if (ts.has_foreground()) { + has_style = true; + auto foreground = detail::make_foreground_color(ts.get_foreground()); + buf.append(foreground.begin(), foreground.end()); + } + if (ts.has_background()) { + has_style = true; + auto background = detail::make_background_color(ts.get_background()); + buf.append(background.begin(), background.end()); + } + detail::vformat_to(buf, format_str, args); + if (has_style) detail::reset_color(buf); +} +} // namespace detail + +template > +void vprint(std::FILE* f, const text_style& ts, const S& format, + basic_format_args>> args) { + basic_memory_buffer buf; + detail::vformat_to(buf, ts, to_string_view(format), args); + buf.push_back(Char(0)); + detail::fputs(buf.data(), f); +} + +/** + \rst + Formats a string and prints it to the specified file stream using ANSI + escape sequences to specify text formatting. + + **Example**:: + + fmt::print(fmt::emphasis::bold | fg(fmt::color::red), + "Elapsed time: {0:.2f} seconds", 1.23); + \endrst + */ +template ::value)> +void print(std::FILE* f, const text_style& ts, const S& format_str, + const Args&... args) { + vprint(f, ts, format_str, + fmt::make_args_checked(format_str, args...)); +} + +/** + Formats a string and prints it to stdout using ANSI escape sequences to + specify text formatting. + Example: + fmt::print(fmt::emphasis::bold | fg(fmt::color::red), + "Elapsed time: {0:.2f} seconds", 1.23); + */ +template ::value)> +void print(const text_style& ts, const S& format_str, const Args&... args) { + return print(stdout, ts, format_str, args...); +} + +template > +inline std::basic_string vformat( + const text_style& ts, const S& format_str, + basic_format_args>> args) { + basic_memory_buffer buf; + detail::vformat_to(buf, ts, to_string_view(format_str), args); + return fmt::to_string(buf); +} + +/** + \rst + Formats arguments and returns the result as a string using ANSI + escape sequences to specify text formatting. + + **Example**:: + + #include + std::string message = fmt::format(fmt::emphasis::bold | fg(fmt::color::red), + "The answer is {}", 42); + \endrst +*/ +template > +inline std::basic_string format(const text_style& ts, const S& format_str, + const Args&... args) { + return vformat(ts, to_string_view(format_str), + fmt::make_args_checked(format_str, args...)); +} + +/** + Formats a string with the given text_style and writes the output to ``out``. + */ +template ::value)> +OutputIt vformat_to( + OutputIt out, const text_style& ts, basic_string_view format_str, + basic_format_args>> args) { + decltype(detail::get_buffer(out)) buf(detail::get_buffer_init(out)); + detail::vformat_to(buf, ts, format_str, args); + return detail::get_iterator(buf); +} + +/** + \rst + Formats arguments with the given text_style, writes the result to the output + iterator ``out`` and returns the iterator past the end of the output range. + + **Example**:: + + std::vector out; + fmt::format_to(std::back_inserter(out), + fmt::emphasis::bold | fg(fmt::color::red), "{}", 42); + \endrst +*/ +template >::value&& + detail::is_string::value> +inline auto format_to(OutputIt out, const text_style& ts, const S& format_str, + Args&&... args) -> + typename std::enable_if::type { + return vformat_to(out, ts, to_string_view(format_str), + fmt::make_args_checked(format_str, args...)); +} + +FMT_END_NAMESPACE + +#endif // FMT_COLOR_H_ diff --git a/src/ext/spdlog/fmt/bundled/compile.h b/src/ext/spdlog/fmt/bundled/compile.h new file mode 100644 index 0000000..3a33b02 --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/compile.h @@ -0,0 +1,701 @@ +// Formatting library for C++ - experimental format string compilation +// +// Copyright (c) 2012 - present, Victor Zverovich and fmt contributors +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_COMPILE_H_ +#define FMT_COMPILE_H_ + +#include + +#include "format.h" + +FMT_BEGIN_NAMESPACE +namespace detail { + +// A compile-time string which is compiled into fast formatting code. +class compiled_string {}; + +template +struct is_compiled_string : std::is_base_of {}; + +/** + \rst + Converts a string literal *s* into a format string that will be parsed at + compile time and converted into efficient formatting code. Requires C++17 + ``constexpr if`` compiler support. + + **Example**:: + + // Converts 42 into std::string using the most efficient method and no + // runtime format string processing. + std::string s = fmt::format(FMT_COMPILE("{}"), 42); + \endrst + */ +#define FMT_COMPILE(s) FMT_STRING_IMPL(s, fmt::detail::compiled_string) + +template +const T& first(const T& value, const Tail&...) { + return value; +} + +// Part of a compiled format string. It can be either literal text or a +// replacement field. +template struct format_part { + enum class kind { arg_index, arg_name, text, replacement }; + + struct replacement { + arg_ref arg_id; + dynamic_format_specs specs; + }; + + kind part_kind; + union value { + int arg_index; + basic_string_view str; + replacement repl; + + FMT_CONSTEXPR value(int index = 0) : arg_index(index) {} + FMT_CONSTEXPR value(basic_string_view s) : str(s) {} + FMT_CONSTEXPR value(replacement r) : repl(r) {} + } val; + // Position past the end of the argument id. + const Char* arg_id_end = nullptr; + + FMT_CONSTEXPR format_part(kind k = kind::arg_index, value v = {}) + : part_kind(k), val(v) {} + + static FMT_CONSTEXPR format_part make_arg_index(int index) { + return format_part(kind::arg_index, index); + } + static FMT_CONSTEXPR format_part make_arg_name(basic_string_view name) { + return format_part(kind::arg_name, name); + } + static FMT_CONSTEXPR format_part make_text(basic_string_view text) { + return format_part(kind::text, text); + } + static FMT_CONSTEXPR format_part make_replacement(replacement repl) { + return format_part(kind::replacement, repl); + } +}; + +template struct part_counter { + unsigned num_parts = 0; + + FMT_CONSTEXPR void on_text(const Char* begin, const Char* end) { + if (begin != end) ++num_parts; + } + + FMT_CONSTEXPR int on_arg_id() { return ++num_parts, 0; } + FMT_CONSTEXPR int on_arg_id(int) { return ++num_parts, 0; } + FMT_CONSTEXPR int on_arg_id(basic_string_view) { + return ++num_parts, 0; + } + + FMT_CONSTEXPR void on_replacement_field(int, const Char*) {} + + FMT_CONSTEXPR const Char* on_format_specs(int, const Char* begin, + const Char* end) { + // Find the matching brace. + unsigned brace_counter = 0; + for (; begin != end; ++begin) { + if (*begin == '{') { + ++brace_counter; + } else if (*begin == '}') { + if (brace_counter == 0u) break; + --brace_counter; + } + } + return begin; + } + + FMT_CONSTEXPR void on_error(const char*) {} +}; + +// Counts the number of parts in a format string. +template +FMT_CONSTEXPR unsigned count_parts(basic_string_view format_str) { + part_counter counter; + parse_format_string(format_str, counter); + return counter.num_parts; +} + +template +class format_string_compiler : public error_handler { + private: + using part = format_part; + + PartHandler handler_; + part part_; + basic_string_view format_str_; + basic_format_parse_context parse_context_; + + public: + FMT_CONSTEXPR format_string_compiler(basic_string_view format_str, + PartHandler handler) + : handler_(handler), + format_str_(format_str), + parse_context_(format_str) {} + + FMT_CONSTEXPR void on_text(const Char* begin, const Char* end) { + if (begin != end) + handler_(part::make_text({begin, to_unsigned(end - begin)})); + } + + FMT_CONSTEXPR int on_arg_id() { + part_ = part::make_arg_index(parse_context_.next_arg_id()); + return 0; + } + + FMT_CONSTEXPR int on_arg_id(int id) { + parse_context_.check_arg_id(id); + part_ = part::make_arg_index(id); + return 0; + } + + FMT_CONSTEXPR int on_arg_id(basic_string_view id) { + part_ = part::make_arg_name(id); + return 0; + } + + FMT_CONSTEXPR void on_replacement_field(int, const Char* ptr) { + part_.arg_id_end = ptr; + handler_(part_); + } + + FMT_CONSTEXPR const Char* on_format_specs(int, const Char* begin, + const Char* end) { + auto repl = typename part::replacement(); + dynamic_specs_handler> handler( + repl.specs, parse_context_); + auto it = parse_format_specs(begin, end, handler); + if (*it != '}') on_error("missing '}' in format string"); + repl.arg_id = part_.part_kind == part::kind::arg_index + ? arg_ref(part_.val.arg_index) + : arg_ref(part_.val.str); + auto part = part::make_replacement(repl); + part.arg_id_end = begin; + handler_(part); + return it; + } +}; + +// Compiles a format string and invokes handler(part) for each parsed part. +template +FMT_CONSTEXPR void compile_format_string(basic_string_view format_str, + PartHandler handler) { + parse_format_string( + format_str, + format_string_compiler(format_str, handler)); +} + +template +void format_arg( + basic_format_parse_context& parse_ctx, + Context& ctx, Id arg_id) { + ctx.advance_to(visit_format_arg( + arg_formatter(ctx, &parse_ctx), + ctx.arg(arg_id))); +} + +// vformat_to is defined in a subnamespace to prevent ADL. +namespace cf { +template +auto vformat_to(OutputIt out, CompiledFormat& cf, + basic_format_args args) -> typename Context::iterator { + using char_type = typename Context::char_type; + basic_format_parse_context parse_ctx( + to_string_view(cf.format_str_)); + Context ctx(out, args); + + const auto& parts = cf.parts(); + for (auto part_it = std::begin(parts); part_it != std::end(parts); + ++part_it) { + const auto& part = *part_it; + const auto& value = part.val; + + using format_part_t = format_part; + switch (part.part_kind) { + case format_part_t::kind::text: { + const auto text = value.str; + auto output = ctx.out(); + auto&& it = reserve(output, text.size()); + it = std::copy_n(text.begin(), text.size(), it); + ctx.advance_to(output); + break; + } + + case format_part_t::kind::arg_index: + advance_to(parse_ctx, part.arg_id_end); + detail::format_arg(parse_ctx, ctx, value.arg_index); + break; + + case format_part_t::kind::arg_name: + advance_to(parse_ctx, part.arg_id_end); + detail::format_arg(parse_ctx, ctx, value.str); + break; + + case format_part_t::kind::replacement: { + const auto& arg_id_value = value.repl.arg_id.val; + const auto arg = value.repl.arg_id.kind == arg_id_kind::index + ? ctx.arg(arg_id_value.index) + : ctx.arg(arg_id_value.name); + + auto specs = value.repl.specs; + + handle_dynamic_spec(specs.width, specs.width_ref, ctx); + handle_dynamic_spec(specs.precision, + specs.precision_ref, ctx); + + error_handler h; + numeric_specs_checker checker(h, arg.type()); + if (specs.align == align::numeric) checker.require_numeric_argument(); + if (specs.sign != sign::none) checker.check_sign(); + if (specs.alt) checker.require_numeric_argument(); + if (specs.precision >= 0) checker.check_precision(); + + advance_to(parse_ctx, part.arg_id_end); + ctx.advance_to( + visit_format_arg(arg_formatter( + ctx, nullptr, &specs), + arg)); + break; + } + } + } + return ctx.out(); +} +} // namespace cf + +struct basic_compiled_format {}; + +template +struct compiled_format_base : basic_compiled_format { + using char_type = char_t; + using parts_container = std::vector>; + + parts_container compiled_parts; + + explicit compiled_format_base(basic_string_view format_str) { + compile_format_string(format_str, + [this](const format_part& part) { + compiled_parts.push_back(part); + }); + } + + const parts_container& parts() const { return compiled_parts; } +}; + +template struct format_part_array { + format_part data[N] = {}; + FMT_CONSTEXPR format_part_array() = default; +}; + +template +FMT_CONSTEXPR format_part_array compile_to_parts( + basic_string_view format_str) { + format_part_array parts; + unsigned counter = 0; + // This is not a lambda for compatibility with older compilers. + struct { + format_part* parts; + unsigned* counter; + FMT_CONSTEXPR void operator()(const format_part& part) { + parts[(*counter)++] = part; + } + } collector{parts.data, &counter}; + compile_format_string(format_str, collector); + if (counter < N) { + parts.data[counter] = + format_part::make_text(basic_string_view()); + } + return parts; +} + +template constexpr const T& constexpr_max(const T& a, const T& b) { + return (a < b) ? b : a; +} + +template +struct compiled_format_base::value>> + : basic_compiled_format { + using char_type = char_t; + + FMT_CONSTEXPR explicit compiled_format_base(basic_string_view) {} + +// Workaround for old compilers. Format string compilation will not be +// performed there anyway. +#if FMT_USE_CONSTEXPR + static FMT_CONSTEXPR_DECL const unsigned num_format_parts = + constexpr_max(count_parts(to_string_view(S())), 1u); +#else + static const unsigned num_format_parts = 1; +#endif + + using parts_container = format_part[num_format_parts]; + + const parts_container& parts() const { + static FMT_CONSTEXPR_DECL const auto compiled_parts = + compile_to_parts( + detail::to_string_view(S())); + return compiled_parts.data; + } +}; + +template +class compiled_format : private compiled_format_base { + public: + using typename compiled_format_base::char_type; + + private: + basic_string_view format_str_; + + template + friend auto cf::vformat_to(OutputIt out, CompiledFormat& cf, + basic_format_args args) -> + typename Context::iterator; + + public: + compiled_format() = delete; + explicit constexpr compiled_format(basic_string_view format_str) + : compiled_format_base(format_str), format_str_(format_str) {} +}; + +#ifdef __cpp_if_constexpr +template struct type_list {}; + +// Returns a reference to the argument at index N from [first, rest...]. +template +constexpr const auto& get([[maybe_unused]] const T& first, + [[maybe_unused]] const Args&... rest) { + static_assert(N < 1 + sizeof...(Args), "index is out of bounds"); + if constexpr (N == 0) + return first; + else + return get(rest...); +} + +template struct get_type_impl; + +template struct get_type_impl> { + using type = remove_cvref_t(std::declval()...))>; +}; + +template +using get_type = typename get_type_impl::type; + +template struct is_compiled_format : std::false_type {}; + +template struct text { + basic_string_view data; + using char_type = Char; + + template + OutputIt format(OutputIt out, const Args&...) const { + return write(out, data); + } +}; + +template +struct is_compiled_format> : std::true_type {}; + +template +constexpr text make_text(basic_string_view s, size_t pos, + size_t size) { + return {{&s[pos], size}}; +} + +template struct code_unit { + Char value; + using char_type = Char; + + template + OutputIt format(OutputIt out, const Args&...) const { + return write(out, value); + } +}; + +template +struct is_compiled_format> : std::true_type {}; + +// A replacement field that refers to argument N. +template struct field { + using char_type = Char; + + template + OutputIt format(OutputIt out, const Args&... args) const { + // This ensures that the argument type is convertile to `const T&`. + const T& arg = get(args...); + return write(out, arg); + } +}; + +template +struct is_compiled_format> : std::true_type {}; + +// A replacement field that refers to argument N and has format specifiers. +template struct spec_field { + using char_type = Char; + mutable formatter fmt; + + template + OutputIt format(OutputIt out, const Args&... args) const { + // This ensures that the argument type is convertile to `const T&`. + const T& arg = get(args...); + const auto& vargs = + make_format_args>(args...); + basic_format_context ctx(out, vargs); + return fmt.format(arg, ctx); + } +}; + +template +struct is_compiled_format> : std::true_type {}; + +template struct concat { + L lhs; + R rhs; + using char_type = typename L::char_type; + + template + OutputIt format(OutputIt out, const Args&... args) const { + out = lhs.format(out, args...); + return rhs.format(out, args...); + } +}; + +template +struct is_compiled_format> : std::true_type {}; + +template +constexpr concat make_concat(L lhs, R rhs) { + return {lhs, rhs}; +} + +struct unknown_format {}; + +template +constexpr size_t parse_text(basic_string_view str, size_t pos) { + for (size_t size = str.size(); pos != size; ++pos) { + if (str[pos] == '{' || str[pos] == '}') break; + } + return pos; +} + +template +constexpr auto compile_format_string(S format_str); + +template +constexpr auto parse_tail(T head, S format_str) { + if constexpr (POS != + basic_string_view(format_str).size()) { + constexpr auto tail = compile_format_string(format_str); + if constexpr (std::is_same, + unknown_format>()) + return tail; + else + return make_concat(head, tail); + } else { + return head; + } +} + +template struct parse_specs_result { + formatter fmt; + size_t end; + int next_arg_id; +}; + +template +constexpr parse_specs_result parse_specs(basic_string_view str, + size_t pos, int arg_id) { + str.remove_prefix(pos); + auto ctx = basic_format_parse_context(str, {}, arg_id + 1); + auto f = formatter(); + auto end = f.parse(ctx); + return {f, pos + (end - str.data()) + 1, ctx.next_arg_id()}; +} + +// Compiles a non-empty format string and returns the compiled representation +// or unknown_format() on unrecognized input. +template +constexpr auto compile_format_string(S format_str) { + using char_type = typename S::char_type; + constexpr basic_string_view str = format_str; + if constexpr (str[POS] == '{') { + if (POS + 1 == str.size()) + throw format_error("unmatched '{' in format string"); + if constexpr (str[POS + 1] == '{') { + return parse_tail(make_text(str, POS, 1), format_str); + } else if constexpr (str[POS + 1] == '}') { + using type = get_type; + return parse_tail(field(), + format_str); + } else if constexpr (str[POS + 1] == ':') { + using type = get_type; + constexpr auto result = parse_specs(str, POS + 2, ID); + return parse_tail( + spec_field{result.fmt}, format_str); + } else { + return unknown_format(); + } + } else if constexpr (str[POS] == '}') { + if (POS + 1 == str.size()) + throw format_error("unmatched '}' in format string"); + return parse_tail(make_text(str, POS, 1), format_str); + } else { + constexpr auto end = parse_text(str, POS + 1); + if constexpr (end - POS > 1) { + return parse_tail(make_text(str, POS, end - POS), + format_str); + } else { + return parse_tail(code_unit{str[POS]}, + format_str); + } + } +} + +template ::value || + detail::is_compiled_string::value)> +constexpr auto compile(S format_str) { + constexpr basic_string_view str = format_str; + if constexpr (str.size() == 0) { + return detail::make_text(str, 0, 0); + } else { + constexpr auto result = + detail::compile_format_string, 0, 0>( + format_str); + if constexpr (std::is_same, + detail::unknown_format>()) { + return detail::compiled_format(to_string_view(format_str)); + } else { + return result; + } + } +} +#else +template ::value)> +constexpr auto compile(S format_str) -> detail::compiled_format { + return detail::compiled_format(to_string_view(format_str)); +} +#endif // __cpp_if_constexpr + +// Compiles the format string which must be a string literal. +template +auto compile(const Char (&format_str)[N]) + -> detail::compiled_format { + return detail::compiled_format( + basic_string_view(format_str, N - 1)); +} +} // namespace detail + +// DEPRECATED! use FMT_COMPILE instead. +template +FMT_DEPRECATED auto compile(const Args&... args) + -> decltype(detail::compile(args...)) { + return detail::compile(args...); +} + +#if FMT_USE_CONSTEXPR +# ifdef __cpp_if_constexpr + +template ::value)> +FMT_INLINE std::basic_string format(const CompiledFormat& cf, + const Args&... args) { + basic_memory_buffer buffer; + cf.format(detail::buffer_appender(buffer), args...); + return to_string(buffer); +} + +template ::value)> +OutputIt format_to(OutputIt out, const CompiledFormat& cf, + const Args&... args) { + return cf.format(out, args...); +} +# endif // __cpp_if_constexpr +#endif // FMT_USE_CONSTEXPR + +template ::value)> +std::basic_string format(const CompiledFormat& cf, const Args&... args) { + basic_memory_buffer buffer; + using context = buffer_context; + detail::cf::vformat_to(detail::buffer_appender(buffer), cf, + make_format_args(args...)); + return to_string(buffer); +} + +template ::value)> +FMT_INLINE std::basic_string format(const S&, + Args&&... args) { +#ifdef __cpp_if_constexpr + if constexpr (std::is_same::value) { + constexpr basic_string_view str = S(); + if (str.size() == 2 && str[0] == '{' && str[1] == '}') + return fmt::to_string(detail::first(args...)); + } +#endif + constexpr auto compiled = detail::compile(S()); + return format(compiled, std::forward(args)...); +} + +template ::value)> +OutputIt format_to(OutputIt out, const CompiledFormat& cf, + const Args&... args) { + using char_type = typename CompiledFormat::char_type; + using context = format_context_t; + return detail::cf::vformat_to(out, cf, + make_format_args(args...)); +} + +template ::value)> +OutputIt format_to(OutputIt out, const S&, const Args&... args) { + constexpr auto compiled = detail::compile(S()); + return format_to(out, compiled, args...); +} + +template +auto format_to_n(OutputIt out, size_t n, const CompiledFormat& cf, + const Args&... args) -> + typename std::enable_if< + detail::is_output_iterator::value && + std::is_base_of::value, + format_to_n_result>::type { + auto it = + format_to(detail::truncating_iterator(out, n), cf, args...); + return {it.base(), it.count()}; +} + +template ::value)> +format_to_n_result format_to_n(OutputIt out, size_t n, const S&, + const Args&... args) { + constexpr auto compiled = detail::compile(S()); + auto it = format_to(detail::truncating_iterator(out, n), compiled, + args...); + return {it.base(), it.count()}; +} + +template +size_t formatted_size(const CompiledFormat& cf, const Args&... args) { + return format_to(detail::counting_iterator(), cf, args...).count(); +} + +FMT_END_NAMESPACE + +#endif // FMT_COMPILE_H_ diff --git a/src/ext/spdlog/fmt/bundled/core.h b/src/ext/spdlog/fmt/bundled/core.h new file mode 100644 index 0000000..0a81e0c --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/core.h @@ -0,0 +1,2122 @@ +// Formatting library for C++ - the core API +// +// Copyright (c) 2012 - present, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_CORE_H_ +#define FMT_CORE_H_ + +#include // std::FILE +#include +#include +#include +#include +#include +#include +#include + +// The fmt library version in the form major * 10000 + minor * 100 + patch. +#define FMT_VERSION 70103 + +#ifdef __clang__ +# define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__) +#else +# define FMT_CLANG_VERSION 0 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +# define FMT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +#else +# define FMT_GCC_VERSION 0 +#endif + +#if defined(__INTEL_COMPILER) +# define FMT_ICC_VERSION __INTEL_COMPILER +#else +# define FMT_ICC_VERSION 0 +#endif + +#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) +# define FMT_HAS_GXX_CXX11 FMT_GCC_VERSION +#else +# define FMT_HAS_GXX_CXX11 0 +#endif + +#ifdef __NVCC__ +# define FMT_NVCC __NVCC__ +#else +# define FMT_NVCC 0 +#endif + +#ifdef _MSC_VER +# define FMT_MSC_VER _MSC_VER +# define FMT_SUPPRESS_MSC_WARNING(n) __pragma(warning(suppress : n)) +#else +# define FMT_MSC_VER 0 +# define FMT_SUPPRESS_MSC_WARNING(n) +#endif + +#ifdef __has_feature +# define FMT_HAS_FEATURE(x) __has_feature(x) +#else +# define FMT_HAS_FEATURE(x) 0 +#endif + +#if defined(__has_include) && !defined(__INTELLISENSE__) && \ + (!FMT_ICC_VERSION || FMT_ICC_VERSION >= 1600) +# define FMT_HAS_INCLUDE(x) __has_include(x) +#else +# define FMT_HAS_INCLUDE(x) 0 +#endif + +#ifdef __has_cpp_attribute +# define FMT_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define FMT_HAS_CPP_ATTRIBUTE(x) 0 +#endif + +#define FMT_HAS_CPP14_ATTRIBUTE(attribute) \ + (__cplusplus >= 201402L && FMT_HAS_CPP_ATTRIBUTE(attribute)) + +#define FMT_HAS_CPP17_ATTRIBUTE(attribute) \ + (__cplusplus >= 201703L && FMT_HAS_CPP_ATTRIBUTE(attribute)) + +// Check if relaxed C++14 constexpr is supported. +// GCC doesn't allow throw in constexpr until version 6 (bug 67371). +#ifndef FMT_USE_CONSTEXPR +# define FMT_USE_CONSTEXPR \ + (FMT_HAS_FEATURE(cxx_relaxed_constexpr) || FMT_MSC_VER >= 1910 || \ + (FMT_GCC_VERSION >= 600 && __cplusplus >= 201402L)) && \ + !FMT_NVCC && !FMT_ICC_VERSION +#endif +#if FMT_USE_CONSTEXPR +# define FMT_CONSTEXPR constexpr +# define FMT_CONSTEXPR_DECL constexpr +#else +# define FMT_CONSTEXPR inline +# define FMT_CONSTEXPR_DECL +#endif + +#ifndef FMT_OVERRIDE +# if FMT_HAS_FEATURE(cxx_override_control) || \ + (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900 +# define FMT_OVERRIDE override +# else +# define FMT_OVERRIDE +# endif +#endif + +// Check if exceptions are disabled. +#ifndef FMT_EXCEPTIONS +# if (defined(__GNUC__) && !defined(__EXCEPTIONS)) || \ + FMT_MSC_VER && !_HAS_EXCEPTIONS +# define FMT_EXCEPTIONS 0 +# else +# define FMT_EXCEPTIONS 1 +# endif +#endif + +// Define FMT_USE_NOEXCEPT to make fmt use noexcept (C++11 feature). +#ifndef FMT_USE_NOEXCEPT +# define FMT_USE_NOEXCEPT 0 +#endif + +#if FMT_USE_NOEXCEPT || FMT_HAS_FEATURE(cxx_noexcept) || \ + (FMT_GCC_VERSION >= 408 && FMT_HAS_GXX_CXX11) || FMT_MSC_VER >= 1900 +# define FMT_DETECTED_NOEXCEPT noexcept +# define FMT_HAS_CXX11_NOEXCEPT 1 +#else +# define FMT_DETECTED_NOEXCEPT throw() +# define FMT_HAS_CXX11_NOEXCEPT 0 +#endif + +#ifndef FMT_NOEXCEPT +# if FMT_EXCEPTIONS || FMT_HAS_CXX11_NOEXCEPT +# define FMT_NOEXCEPT FMT_DETECTED_NOEXCEPT +# else +# define FMT_NOEXCEPT +# endif +#endif + +// [[noreturn]] is disabled on MSVC and NVCC because of bogus unreachable code +// warnings. +#if FMT_EXCEPTIONS && FMT_HAS_CPP_ATTRIBUTE(noreturn) && !FMT_MSC_VER && \ + !FMT_NVCC +# define FMT_NORETURN [[noreturn]] +#else +# define FMT_NORETURN +#endif + +#ifndef FMT_DEPRECATED +# if FMT_HAS_CPP14_ATTRIBUTE(deprecated) || FMT_MSC_VER >= 1900 +# define FMT_DEPRECATED [[deprecated]] +# else +# if (defined(__GNUC__) && !defined(__LCC__)) || defined(__clang__) +# define FMT_DEPRECATED __attribute__((deprecated)) +# elif FMT_MSC_VER +# define FMT_DEPRECATED __declspec(deprecated) +# else +# define FMT_DEPRECATED /* deprecated */ +# endif +# endif +#endif + +// Workaround broken [[deprecated]] in the Intel, PGI and NVCC compilers. +#if FMT_ICC_VERSION || defined(__PGI) || FMT_NVCC +# define FMT_DEPRECATED_ALIAS +#else +# define FMT_DEPRECATED_ALIAS FMT_DEPRECATED +#endif + +#ifndef FMT_INLINE +# if FMT_GCC_VERSION || FMT_CLANG_VERSION +# define FMT_INLINE inline __attribute__((always_inline)) +# else +# define FMT_INLINE inline +# endif +#endif + +#ifndef FMT_USE_INLINE_NAMESPACES +# if FMT_HAS_FEATURE(cxx_inline_namespaces) || FMT_GCC_VERSION >= 404 || \ + (FMT_MSC_VER >= 1900 && !_MANAGED) +# define FMT_USE_INLINE_NAMESPACES 1 +# else +# define FMT_USE_INLINE_NAMESPACES 0 +# endif +#endif + +#ifndef FMT_BEGIN_NAMESPACE +# if FMT_USE_INLINE_NAMESPACES +# define FMT_INLINE_NAMESPACE inline namespace +# define FMT_END_NAMESPACE \ + } \ + } +# else +# define FMT_INLINE_NAMESPACE namespace +# define FMT_END_NAMESPACE \ + } \ + using namespace v7; \ + } +# endif +# define FMT_BEGIN_NAMESPACE \ + namespace fmt { \ + FMT_INLINE_NAMESPACE v7 { +#endif + +#if !defined(FMT_HEADER_ONLY) && defined(_WIN32) +# define FMT_CLASS_API FMT_SUPPRESS_MSC_WARNING(4275) +# ifdef FMT_EXPORT +# define FMT_API __declspec(dllexport) +# define FMT_EXTERN_TEMPLATE_API FMT_API +# define FMT_EXPORTED +# elif defined(FMT_SHARED) +# define FMT_API __declspec(dllimport) +# define FMT_EXTERN_TEMPLATE_API FMT_API +# endif +#else +# define FMT_CLASS_API +#endif +#ifndef FMT_API +# define FMT_API +#endif +#ifndef FMT_EXTERN_TEMPLATE_API +# define FMT_EXTERN_TEMPLATE_API +#endif +#ifndef FMT_INSTANTIATION_DEF_API +# define FMT_INSTANTIATION_DEF_API FMT_API +#endif + +#ifndef FMT_HEADER_ONLY +# define FMT_EXTERN extern +#else +# define FMT_EXTERN +#endif + +// libc++ supports string_view in pre-c++17. +#if (FMT_HAS_INCLUDE() && \ + (__cplusplus > 201402L || defined(_LIBCPP_VERSION))) || \ + (defined(_MSVC_LANG) && _MSVC_LANG > 201402L && _MSC_VER >= 1910) +# include +# define FMT_USE_STRING_VIEW +#elif FMT_HAS_INCLUDE("experimental/string_view") && __cplusplus >= 201402L +# include +# define FMT_USE_EXPERIMENTAL_STRING_VIEW +#endif + +#ifndef FMT_UNICODE +# define FMT_UNICODE !FMT_MSC_VER +#endif +#if FMT_UNICODE && FMT_MSC_VER +# pragma execution_character_set("utf-8") +#endif + +FMT_BEGIN_NAMESPACE + +// Implementations of enable_if_t and other metafunctions for older systems. +template +using enable_if_t = typename std::enable_if::type; +template +using conditional_t = typename std::conditional::type; +template using bool_constant = std::integral_constant; +template +using remove_reference_t = typename std::remove_reference::type; +template +using remove_const_t = typename std::remove_const::type; +template +using remove_cvref_t = typename std::remove_cv>::type; +template struct type_identity { using type = T; }; +template using type_identity_t = typename type_identity::type; + +struct monostate {}; + +// An enable_if helper to be used in template parameters which results in much +// shorter symbols: https://godbolt.org/z/sWw4vP. Extra parentheses are needed +// to workaround a bug in MSVC 2019 (see #1140 and #1186). +#define FMT_ENABLE_IF(...) enable_if_t<(__VA_ARGS__), int> = 0 + +namespace detail { + +// A helper function to suppress "conditional expression is constant" warnings. +template constexpr T const_check(T value) { return value; } + +FMT_NORETURN FMT_API void assert_fail(const char* file, int line, + const char* message); + +#ifndef FMT_ASSERT +# ifdef NDEBUG +// FMT_ASSERT is not empty to avoid -Werror=empty-body. +# define FMT_ASSERT(condition, message) ((void)0) +# else +# define FMT_ASSERT(condition, message) \ + ((condition) /* void() fails with -Winvalid-constexpr on clang 4.0.1 */ \ + ? (void)0 \ + : ::fmt::detail::assert_fail(__FILE__, __LINE__, (message))) +# endif +#endif + +#if defined(FMT_USE_STRING_VIEW) +template using std_string_view = std::basic_string_view; +#elif defined(FMT_USE_EXPERIMENTAL_STRING_VIEW) +template +using std_string_view = std::experimental::basic_string_view; +#else +template struct std_string_view {}; +#endif + +#ifdef FMT_USE_INT128 +// Do nothing. +#elif defined(__SIZEOF_INT128__) && !FMT_NVCC && \ + !(FMT_CLANG_VERSION && FMT_MSC_VER) +# define FMT_USE_INT128 1 +using int128_t = __int128_t; +using uint128_t = __uint128_t; +#else +# define FMT_USE_INT128 0 +#endif +#if !FMT_USE_INT128 +struct int128_t {}; +struct uint128_t {}; +#endif + +// Casts a nonnegative integer to unsigned. +template +FMT_CONSTEXPR typename std::make_unsigned::type to_unsigned(Int value) { + FMT_ASSERT(value >= 0, "negative value"); + return static_cast::type>(value); +} + +FMT_SUPPRESS_MSC_WARNING(4566) constexpr unsigned char micro[] = "\u00B5"; + +template constexpr bool is_unicode() { + return FMT_UNICODE || sizeof(Char) != 1 || + (sizeof(micro) == 3 && micro[0] == 0xC2 && micro[1] == 0xB5); +} + +#ifdef __cpp_char8_t +using char8_type = char8_t; +#else +enum char8_type : unsigned char {}; +#endif +} // namespace detail + +#ifdef FMT_USE_INTERNAL +namespace internal = detail; // DEPRECATED +#endif + +/** + An implementation of ``std::basic_string_view`` for pre-C++17. It provides a + subset of the API. ``fmt::basic_string_view`` is used for format strings even + if ``std::string_view`` is available to prevent issues when a library is + compiled with a different ``-std`` option than the client code (which is not + recommended). + */ +template class basic_string_view { + private: + const Char* data_; + size_t size_; + + public: + using value_type = Char; + using iterator = const Char*; + + constexpr basic_string_view() FMT_NOEXCEPT : data_(nullptr), size_(0) {} + + /** Constructs a string reference object from a C string and a size. */ + constexpr basic_string_view(const Char* s, size_t count) FMT_NOEXCEPT + : data_(s), + size_(count) {} + + /** + \rst + Constructs a string reference object from a C string computing + the size with ``std::char_traits::length``. + \endrst + */ +#if __cplusplus >= 201703L // C++17's char_traits::length() is constexpr. + FMT_CONSTEXPR +#endif + basic_string_view(const Char* s) + : data_(s), size_(std::char_traits::length(s)) {} + + /** Constructs a string reference from a ``std::basic_string`` object. */ + template + FMT_CONSTEXPR basic_string_view( + const std::basic_string& s) FMT_NOEXCEPT + : data_(s.data()), + size_(s.size()) {} + + template >::value)> + FMT_CONSTEXPR basic_string_view(S s) FMT_NOEXCEPT : data_(s.data()), + size_(s.size()) {} + + /** Returns a pointer to the string data. */ + constexpr const Char* data() const { return data_; } + + /** Returns the string size. */ + constexpr size_t size() const { return size_; } + + constexpr iterator begin() const { return data_; } + constexpr iterator end() const { return data_ + size_; } + + constexpr const Char& operator[](size_t pos) const { return data_[pos]; } + + FMT_CONSTEXPR void remove_prefix(size_t n) { + data_ += n; + size_ -= n; + } + + // Lexicographically compare this string reference to other. + int compare(basic_string_view other) const { + size_t str_size = size_ < other.size_ ? size_ : other.size_; + int result = std::char_traits::compare(data_, other.data_, str_size); + if (result == 0) + result = size_ == other.size_ ? 0 : (size_ < other.size_ ? -1 : 1); + return result; + } + + friend bool operator==(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) == 0; + } + friend bool operator!=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) != 0; + } + friend bool operator<(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) < 0; + } + friend bool operator<=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) <= 0; + } + friend bool operator>(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) > 0; + } + friend bool operator>=(basic_string_view lhs, basic_string_view rhs) { + return lhs.compare(rhs) >= 0; + } +}; + +using string_view = basic_string_view; +using wstring_view = basic_string_view; + +/** Specifies if ``T`` is a character type. Can be specialized by users. */ +template struct is_char : std::false_type {}; +template <> struct is_char : std::true_type {}; +template <> struct is_char : std::true_type {}; +template <> struct is_char : std::true_type {}; +template <> struct is_char : std::true_type {}; +template <> struct is_char : std::true_type {}; + +/** + \rst + Returns a string view of `s`. In order to add custom string type support to + {fmt} provide an overload of `to_string_view` for it in the same namespace as + the type for the argument-dependent lookup to work. + + **Example**:: + + namespace my_ns { + inline string_view to_string_view(const my_string& s) { + return {s.data(), s.length()}; + } + } + std::string message = fmt::format(my_string("The answer is {}"), 42); + \endrst + */ +template ::value)> +inline basic_string_view to_string_view(const Char* s) { + return s; +} + +template +inline basic_string_view to_string_view( + const std::basic_string& s) { + return s; +} + +template +inline basic_string_view to_string_view(basic_string_view s) { + return s; +} + +template >::value)> +inline basic_string_view to_string_view(detail::std_string_view s) { + return s; +} + +// A base class for compile-time strings. It is defined in the fmt namespace to +// make formatting functions visible via ADL, e.g. format(FMT_STRING("{}"), 42). +struct compile_string {}; + +template +struct is_compile_string : std::is_base_of {}; + +template ::value)> +constexpr basic_string_view to_string_view(const S& s) { + return s; +} + +namespace detail { +void to_string_view(...); +using fmt::v7::to_string_view; + +// Specifies whether S is a string type convertible to fmt::basic_string_view. +// It should be a constexpr function but MSVC 2017 fails to compile it in +// enable_if and MSVC 2015 fails to compile it as an alias template. +template +struct is_string : std::is_class()))> { +}; + +template struct char_t_impl {}; +template struct char_t_impl::value>> { + using result = decltype(to_string_view(std::declval())); + using type = typename result::value_type; +}; + +// Reports a compile-time error if S is not a valid format string. +template ::value)> +FMT_INLINE void check_format_string(const S&) { +#ifdef FMT_ENFORCE_COMPILE_STRING + static_assert(is_compile_string::value, + "FMT_ENFORCE_COMPILE_STRING requires all format strings to use " + "FMT_STRING."); +#endif +} +template ::value)> +void check_format_string(S); + +struct error_handler { + constexpr error_handler() = default; + constexpr error_handler(const error_handler&) = default; + + // This function is intentionally not constexpr to give a compile-time error. + FMT_NORETURN FMT_API void on_error(const char* message); +}; +} // namespace detail + +/** String's character type. */ +template using char_t = typename detail::char_t_impl::type; + +/** + \rst + Parsing context consisting of a format string range being parsed and an + argument counter for automatic indexing. + + You can use one of the following type aliases for common character types: + + +-----------------------+-------------------------------------+ + | Type | Definition | + +=======================+=====================================+ + | format_parse_context | basic_format_parse_context | + +-----------------------+-------------------------------------+ + | wformat_parse_context | basic_format_parse_context | + +-----------------------+-------------------------------------+ + \endrst + */ +template +class basic_format_parse_context : private ErrorHandler { + private: + basic_string_view format_str_; + int next_arg_id_; + + public: + using char_type = Char; + using iterator = typename basic_string_view::iterator; + + explicit constexpr basic_format_parse_context( + basic_string_view format_str, ErrorHandler eh = {}, + int next_arg_id = 0) + : ErrorHandler(eh), format_str_(format_str), next_arg_id_(next_arg_id) {} + + /** + Returns an iterator to the beginning of the format string range being + parsed. + */ + constexpr iterator begin() const FMT_NOEXCEPT { return format_str_.begin(); } + + /** + Returns an iterator past the end of the format string range being parsed. + */ + constexpr iterator end() const FMT_NOEXCEPT { return format_str_.end(); } + + /** Advances the begin iterator to ``it``. */ + FMT_CONSTEXPR void advance_to(iterator it) { + format_str_.remove_prefix(detail::to_unsigned(it - begin())); + } + + /** + Reports an error if using the manual argument indexing; otherwise returns + the next argument index and switches to the automatic indexing. + */ + FMT_CONSTEXPR int next_arg_id() { + // Don't check if the argument id is valid to avoid overhead and because it + // will be checked during formatting anyway. + if (next_arg_id_ >= 0) return next_arg_id_++; + on_error("cannot switch from manual to automatic argument indexing"); + return 0; + } + + /** + Reports an error if using the automatic argument indexing; otherwise + switches to the manual indexing. + */ + FMT_CONSTEXPR void check_arg_id(int) { + if (next_arg_id_ > 0) + on_error("cannot switch from automatic to manual argument indexing"); + else + next_arg_id_ = -1; + } + + FMT_CONSTEXPR void check_arg_id(basic_string_view) {} + + FMT_CONSTEXPR void on_error(const char* message) { + ErrorHandler::on_error(message); + } + + constexpr ErrorHandler error_handler() const { return *this; } +}; + +using format_parse_context = basic_format_parse_context; +using wformat_parse_context = basic_format_parse_context; + +template class basic_format_arg; +template class basic_format_args; +template class dynamic_format_arg_store; + +// A formatter for objects of type T. +template +struct formatter { + // A deleted default constructor indicates a disabled formatter. + formatter() = delete; +}; + +// Specifies if T has an enabled formatter specialization. A type can be +// formattable even if it doesn't have a formatter e.g. via a conversion. +template +using has_formatter = + std::is_constructible>; + +// Checks whether T is a container with contiguous storage. +template struct is_contiguous : std::false_type {}; +template +struct is_contiguous> : std::true_type {}; + +namespace detail { + +// Extracts a reference to the container from back_insert_iterator. +template +inline Container& get_container(std::back_insert_iterator it) { + using bi_iterator = std::back_insert_iterator; + struct accessor : bi_iterator { + accessor(bi_iterator iter) : bi_iterator(iter) {} + using bi_iterator::container; + }; + return *accessor(it).container; +} + +/** + \rst + A contiguous memory buffer with an optional growing ability. It is an internal + class and shouldn't be used directly, only via `~fmt::basic_memory_buffer`. + \endrst + */ +template class buffer { + private: + T* ptr_; + size_t size_; + size_t capacity_; + + protected: + // Don't initialize ptr_ since it is not accessed to save a few cycles. + FMT_SUPPRESS_MSC_WARNING(26495) + buffer(size_t sz) FMT_NOEXCEPT : size_(sz), capacity_(sz) {} + + buffer(T* p = nullptr, size_t sz = 0, size_t cap = 0) FMT_NOEXCEPT + : ptr_(p), + size_(sz), + capacity_(cap) {} + + ~buffer() = default; + + /** Sets the buffer data and capacity. */ + void set(T* buf_data, size_t buf_capacity) FMT_NOEXCEPT { + ptr_ = buf_data; + capacity_ = buf_capacity; + } + + /** Increases the buffer capacity to hold at least *capacity* elements. */ + virtual void grow(size_t capacity) = 0; + + public: + using value_type = T; + using const_reference = const T&; + + buffer(const buffer&) = delete; + void operator=(const buffer&) = delete; + + T* begin() FMT_NOEXCEPT { return ptr_; } + T* end() FMT_NOEXCEPT { return ptr_ + size_; } + + const T* begin() const FMT_NOEXCEPT { return ptr_; } + const T* end() const FMT_NOEXCEPT { return ptr_ + size_; } + + /** Returns the size of this buffer. */ + size_t size() const FMT_NOEXCEPT { return size_; } + + /** Returns the capacity of this buffer. */ + size_t capacity() const FMT_NOEXCEPT { return capacity_; } + + /** Returns a pointer to the buffer data. */ + T* data() FMT_NOEXCEPT { return ptr_; } + + /** Returns a pointer to the buffer data. */ + const T* data() const FMT_NOEXCEPT { return ptr_; } + + /** Clears this buffer. */ + void clear() { size_ = 0; } + + // Tries resizing the buffer to contain *count* elements. If T is a POD type + // the new elements may not be initialized. + void try_resize(size_t count) { + try_reserve(count); + size_ = count <= capacity_ ? count : capacity_; + } + + // Tries increasing the buffer capacity to *new_capacity*. It can increase the + // capacity by a smaller amount than requested but guarantees there is space + // for at least one additional element either by increasing the capacity or by + // flushing the buffer if it is full. + void try_reserve(size_t new_capacity) { + if (new_capacity > capacity_) grow(new_capacity); + } + + void push_back(const T& value) { + try_reserve(size_ + 1); + ptr_[size_++] = value; + } + + /** Appends data to the end of the buffer. */ + template void append(const U* begin, const U* end); + + template T& operator[](I index) { return ptr_[index]; } + template const T& operator[](I index) const { + return ptr_[index]; + } +}; + +struct buffer_traits { + explicit buffer_traits(size_t) {} + size_t count() const { return 0; } + size_t limit(size_t size) { return size; } +}; + +class fixed_buffer_traits { + private: + size_t count_ = 0; + size_t limit_; + + public: + explicit fixed_buffer_traits(size_t limit) : limit_(limit) {} + size_t count() const { return count_; } + size_t limit(size_t size) { + size_t n = limit_ > count_ ? limit_ - count_ : 0; + count_ += size; + return size < n ? size : n; + } +}; + +// A buffer that writes to an output iterator when flushed. +template +class iterator_buffer final : public Traits, public buffer { + private: + OutputIt out_; + enum { buffer_size = 256 }; + T data_[buffer_size]; + + protected: + void grow(size_t) final FMT_OVERRIDE { + if (this->size() == buffer_size) flush(); + } + void flush(); + + public: + explicit iterator_buffer(OutputIt out, size_t n = buffer_size) + : Traits(n), + buffer(data_, 0, buffer_size), + out_(out) {} + ~iterator_buffer() { flush(); } + + OutputIt out() { + flush(); + return out_; + } + size_t count() const { return Traits::count() + this->size(); } +}; + +template class iterator_buffer final : public buffer { + protected: + void grow(size_t) final FMT_OVERRIDE {} + + public: + explicit iterator_buffer(T* out, size_t = 0) : buffer(out, 0, ~size_t()) {} + + T* out() { return &*this->end(); } +}; + +// A buffer that writes to a container with the contiguous storage. +template +class iterator_buffer, + enable_if_t::value, + typename Container::value_type>> + final : public buffer { + private: + Container& container_; + + protected: + void grow(size_t capacity) final FMT_OVERRIDE { + container_.resize(capacity); + this->set(&container_[0], capacity); + } + + public: + explicit iterator_buffer(Container& c) + : buffer(c.size()), container_(c) {} + explicit iterator_buffer(std::back_insert_iterator out, size_t = 0) + : iterator_buffer(get_container(out)) {} + std::back_insert_iterator out() { + return std::back_inserter(container_); + } +}; + +// A buffer that counts the number of code units written discarding the output. +template class counting_buffer final : public buffer { + private: + enum { buffer_size = 256 }; + T data_[buffer_size]; + size_t count_ = 0; + + protected: + void grow(size_t) final FMT_OVERRIDE { + if (this->size() != buffer_size) return; + count_ += this->size(); + this->clear(); + } + + public: + counting_buffer() : buffer(data_, 0, buffer_size) {} + + size_t count() { return count_ + this->size(); } +}; + +// An output iterator that appends to the buffer. +// It is used to reduce symbol sizes for the common case. +template +class buffer_appender : public std::back_insert_iterator> { + using base = std::back_insert_iterator>; + + public: + explicit buffer_appender(buffer& buf) : base(buf) {} + buffer_appender(base it) : base(it) {} + + buffer_appender& operator++() { + base::operator++(); + return *this; + } + + buffer_appender operator++(int) { + buffer_appender tmp = *this; + ++*this; + return tmp; + } +}; + +// Maps an output iterator into a buffer. +template +iterator_buffer get_buffer(OutputIt); +template buffer& get_buffer(buffer_appender); + +template OutputIt get_buffer_init(OutputIt out) { + return out; +} +template buffer& get_buffer_init(buffer_appender out) { + return get_container(out); +} + +template +auto get_iterator(Buffer& buf) -> decltype(buf.out()) { + return buf.out(); +} +template buffer_appender get_iterator(buffer& buf) { + return buffer_appender(buf); +} + +template +struct fallback_formatter { + fallback_formatter() = delete; +}; + +// Specifies if T has an enabled fallback_formatter specialization. +template +using has_fallback_formatter = + std::is_constructible>; + +struct view {}; + +template struct named_arg : view { + const Char* name; + const T& value; + named_arg(const Char* n, const T& v) : name(n), value(v) {} +}; + +template struct named_arg_info { + const Char* name; + int id; +}; + +template +struct arg_data { + // args_[0].named_args points to named_args_ to avoid bloating format_args. + // +1 to workaround a bug in gcc 7.5 that causes duplicated-branches warning. + T args_[1 + (NUM_ARGS != 0 ? NUM_ARGS : +1)]; + named_arg_info named_args_[NUM_NAMED_ARGS]; + + template + arg_data(const U&... init) : args_{T(named_args_, NUM_NAMED_ARGS), init...} {} + arg_data(const arg_data& other) = delete; + const T* args() const { return args_ + 1; } + named_arg_info* named_args() { return named_args_; } +}; + +template +struct arg_data { + // +1 to workaround a bug in gcc 7.5 that causes duplicated-branches warning. + T args_[NUM_ARGS != 0 ? NUM_ARGS : +1]; + + template + FMT_INLINE arg_data(const U&... init) : args_{init...} {} + FMT_INLINE const T* args() const { return args_; } + FMT_INLINE std::nullptr_t named_args() { return nullptr; } +}; + +template +inline void init_named_args(named_arg_info*, int, int) {} + +template +void init_named_args(named_arg_info* named_args, int arg_count, + int named_arg_count, const T&, const Tail&... args) { + init_named_args(named_args, arg_count + 1, named_arg_count, args...); +} + +template +void init_named_args(named_arg_info* named_args, int arg_count, + int named_arg_count, const named_arg& arg, + const Tail&... args) { + named_args[named_arg_count++] = {arg.name, arg_count}; + init_named_args(named_args, arg_count + 1, named_arg_count, args...); +} + +template +FMT_INLINE void init_named_args(std::nullptr_t, int, int, const Args&...) {} + +template struct is_named_arg : std::false_type {}; + +template +struct is_named_arg> : std::true_type {}; + +template constexpr size_t count() { return B ? 1 : 0; } +template constexpr size_t count() { + return (B1 ? 1 : 0) + count(); +} + +template constexpr size_t count_named_args() { + return count::value...>(); +} + +enum class type { + none_type, + // Integer types should go first, + int_type, + uint_type, + long_long_type, + ulong_long_type, + int128_type, + uint128_type, + bool_type, + char_type, + last_integer_type = char_type, + // followed by floating-point types. + float_type, + double_type, + long_double_type, + last_numeric_type = long_double_type, + cstring_type, + string_type, + pointer_type, + custom_type +}; + +// Maps core type T to the corresponding type enum constant. +template +struct type_constant : std::integral_constant {}; + +#define FMT_TYPE_CONSTANT(Type, constant) \ + template \ + struct type_constant \ + : std::integral_constant {} + +FMT_TYPE_CONSTANT(int, int_type); +FMT_TYPE_CONSTANT(unsigned, uint_type); +FMT_TYPE_CONSTANT(long long, long_long_type); +FMT_TYPE_CONSTANT(unsigned long long, ulong_long_type); +FMT_TYPE_CONSTANT(int128_t, int128_type); +FMT_TYPE_CONSTANT(uint128_t, uint128_type); +FMT_TYPE_CONSTANT(bool, bool_type); +FMT_TYPE_CONSTANT(Char, char_type); +FMT_TYPE_CONSTANT(float, float_type); +FMT_TYPE_CONSTANT(double, double_type); +FMT_TYPE_CONSTANT(long double, long_double_type); +FMT_TYPE_CONSTANT(const Char*, cstring_type); +FMT_TYPE_CONSTANT(basic_string_view, string_type); +FMT_TYPE_CONSTANT(const void*, pointer_type); + +constexpr bool is_integral_type(type t) { + return t > type::none_type && t <= type::last_integer_type; +} + +constexpr bool is_arithmetic_type(type t) { + return t > type::none_type && t <= type::last_numeric_type; +} + +template struct string_value { + const Char* data; + size_t size; +}; + +template struct named_arg_value { + const named_arg_info* data; + size_t size; +}; + +template struct custom_value { + using parse_context = typename Context::parse_context_type; + const void* value; + void (*format)(const void* arg, parse_context& parse_ctx, Context& ctx); +}; + +// A formatting argument value. +template class value { + public: + using char_type = typename Context::char_type; + + union { + int int_value; + unsigned uint_value; + long long long_long_value; + unsigned long long ulong_long_value; + int128_t int128_value; + uint128_t uint128_value; + bool bool_value; + char_type char_value; + float float_value; + double double_value; + long double long_double_value; + const void* pointer; + string_value string; + custom_value custom; + named_arg_value named_args; + }; + + constexpr FMT_INLINE value(int val = 0) : int_value(val) {} + constexpr FMT_INLINE value(unsigned val) : uint_value(val) {} + FMT_INLINE value(long long val) : long_long_value(val) {} + FMT_INLINE value(unsigned long long val) : ulong_long_value(val) {} + FMT_INLINE value(int128_t val) : int128_value(val) {} + FMT_INLINE value(uint128_t val) : uint128_value(val) {} + FMT_INLINE value(float val) : float_value(val) {} + FMT_INLINE value(double val) : double_value(val) {} + FMT_INLINE value(long double val) : long_double_value(val) {} + FMT_INLINE value(bool val) : bool_value(val) {} + FMT_INLINE value(char_type val) : char_value(val) {} + FMT_INLINE value(const char_type* val) { string.data = val; } + FMT_INLINE value(basic_string_view val) { + string.data = val.data(); + string.size = val.size(); + } + FMT_INLINE value(const void* val) : pointer(val) {} + FMT_INLINE value(const named_arg_info* args, size_t size) + : named_args{args, size} {} + + template FMT_INLINE value(const T& val) { + custom.value = &val; + // Get the formatter type through the context to allow different contexts + // have different extension points, e.g. `formatter` for `format` and + // `printf_formatter` for `printf`. + custom.format = format_custom_arg< + T, conditional_t::value, + typename Context::template formatter_type, + fallback_formatter>>; + } + + private: + // Formats an argument of a custom type, such as a user-defined class. + template + static void format_custom_arg(const void* arg, + typename Context::parse_context_type& parse_ctx, + Context& ctx) { + Formatter f; + parse_ctx.advance_to(f.parse(parse_ctx)); + ctx.advance_to(f.format(*static_cast(arg), ctx)); + } +}; + +template +FMT_CONSTEXPR basic_format_arg make_arg(const T& value); + +// To minimize the number of types we need to deal with, long is translated +// either to int or to long long depending on its size. +enum { long_short = sizeof(long) == sizeof(int) }; +using long_type = conditional_t; +using ulong_type = conditional_t; + +struct unformattable {}; + +// Maps formatting arguments to core types. +template struct arg_mapper { + using char_type = typename Context::char_type; + + FMT_CONSTEXPR int map(signed char val) { return val; } + FMT_CONSTEXPR unsigned map(unsigned char val) { return val; } + FMT_CONSTEXPR int map(short val) { return val; } + FMT_CONSTEXPR unsigned map(unsigned short val) { return val; } + FMT_CONSTEXPR int map(int val) { return val; } + FMT_CONSTEXPR unsigned map(unsigned val) { return val; } + FMT_CONSTEXPR long_type map(long val) { return val; } + FMT_CONSTEXPR ulong_type map(unsigned long val) { return val; } + FMT_CONSTEXPR long long map(long long val) { return val; } + FMT_CONSTEXPR unsigned long long map(unsigned long long val) { return val; } + FMT_CONSTEXPR int128_t map(int128_t val) { return val; } + FMT_CONSTEXPR uint128_t map(uint128_t val) { return val; } + FMT_CONSTEXPR bool map(bool val) { return val; } + + template ::value)> + FMT_CONSTEXPR char_type map(T val) { + static_assert( + std::is_same::value || std::is_same::value, + "mixing character types is disallowed"); + return val; + } + + FMT_CONSTEXPR float map(float val) { return val; } + FMT_CONSTEXPR double map(double val) { return val; } + FMT_CONSTEXPR long double map(long double val) { return val; } + + FMT_CONSTEXPR const char_type* map(char_type* val) { return val; } + FMT_CONSTEXPR const char_type* map(const char_type* val) { return val; } + template ::value)> + FMT_CONSTEXPR basic_string_view map(const T& val) { + static_assert(std::is_same>::value, + "mixing character types is disallowed"); + return to_string_view(val); + } + template , T>::value && + !is_string::value && !has_formatter::value && + !has_fallback_formatter::value)> + FMT_CONSTEXPR basic_string_view map(const T& val) { + return basic_string_view(val); + } + template < + typename T, + FMT_ENABLE_IF( + std::is_constructible, T>::value && + !std::is_constructible, T>::value && + !is_string::value && !has_formatter::value && + !has_fallback_formatter::value)> + FMT_CONSTEXPR basic_string_view map(const T& val) { + return std_string_view(val); + } + FMT_CONSTEXPR const char* map(const signed char* val) { + static_assert(std::is_same::value, "invalid string type"); + return reinterpret_cast(val); + } + FMT_CONSTEXPR const char* map(const unsigned char* val) { + static_assert(std::is_same::value, "invalid string type"); + return reinterpret_cast(val); + } + FMT_CONSTEXPR const char* map(signed char* val) { + const auto* const_val = val; + return map(const_val); + } + FMT_CONSTEXPR const char* map(unsigned char* val) { + const auto* const_val = val; + return map(const_val); + } + + FMT_CONSTEXPR const void* map(void* val) { return val; } + FMT_CONSTEXPR const void* map(const void* val) { return val; } + FMT_CONSTEXPR const void* map(std::nullptr_t val) { return val; } + template FMT_CONSTEXPR int map(const T*) { + // Formatting of arbitrary pointers is disallowed. If you want to output + // a pointer cast it to "void *" or "const void *". In particular, this + // forbids formatting of "[const] volatile char *" which is printed as bool + // by iostreams. + static_assert(!sizeof(T), "formatting of non-void pointers is disallowed"); + return 0; + } + + template ::value && + !has_formatter::value && + !has_fallback_formatter::value)> + FMT_CONSTEXPR auto map(const T& val) + -> decltype(std::declval().map( + static_cast::type>(val))) { + return map(static_cast::type>(val)); + } + template ::value && !is_char::value && + (has_formatter::value || + has_fallback_formatter::value))> + FMT_CONSTEXPR const T& map(const T& val) { + return val; + } + + template + FMT_CONSTEXPR auto map(const named_arg& val) + -> decltype(std::declval().map(val.value)) { + return map(val.value); + } + + unformattable map(...) { return {}; } +}; + +// A type constant after applying arg_mapper. +template +using mapped_type_constant = + type_constant().map(std::declval())), + typename Context::char_type>; + +enum { packed_arg_bits = 4 }; +// Maximum number of arguments with packed types. +enum { max_packed_args = 62 / packed_arg_bits }; +enum : unsigned long long { is_unpacked_bit = 1ULL << 63 }; +enum : unsigned long long { has_named_args_bit = 1ULL << 62 }; +} // namespace detail + +// A formatting argument. It is a trivially copyable/constructible type to +// allow storage in basic_memory_buffer. +template class basic_format_arg { + private: + detail::value value_; + detail::type type_; + + template + friend FMT_CONSTEXPR basic_format_arg detail::make_arg( + const T& value); + + template + friend FMT_CONSTEXPR auto visit_format_arg(Visitor&& vis, + const basic_format_arg& arg) + -> decltype(vis(0)); + + friend class basic_format_args; + friend class dynamic_format_arg_store; + + using char_type = typename Context::char_type; + + template + friend struct detail::arg_data; + + basic_format_arg(const detail::named_arg_info* args, size_t size) + : value_(args, size) {} + + public: + class handle { + public: + explicit handle(detail::custom_value custom) : custom_(custom) {} + + void format(typename Context::parse_context_type& parse_ctx, + Context& ctx) const { + custom_.format(custom_.value, parse_ctx, ctx); + } + + private: + detail::custom_value custom_; + }; + + constexpr basic_format_arg() : type_(detail::type::none_type) {} + + constexpr explicit operator bool() const FMT_NOEXCEPT { + return type_ != detail::type::none_type; + } + + detail::type type() const { return type_; } + + bool is_integral() const { return detail::is_integral_type(type_); } + bool is_arithmetic() const { return detail::is_arithmetic_type(type_); } +}; + +/** + \rst + Visits an argument dispatching to the appropriate visit method based on + the argument type. For example, if the argument type is ``double`` then + ``vis(value)`` will be called with the value of type ``double``. + \endrst + */ +template +FMT_CONSTEXPR_DECL FMT_INLINE auto visit_format_arg( + Visitor&& vis, const basic_format_arg& arg) -> decltype(vis(0)) { + using char_type = typename Context::char_type; + switch (arg.type_) { + case detail::type::none_type: + break; + case detail::type::int_type: + return vis(arg.value_.int_value); + case detail::type::uint_type: + return vis(arg.value_.uint_value); + case detail::type::long_long_type: + return vis(arg.value_.long_long_value); + case detail::type::ulong_long_type: + return vis(arg.value_.ulong_long_value); +#if FMT_USE_INT128 + case detail::type::int128_type: + return vis(arg.value_.int128_value); + case detail::type::uint128_type: + return vis(arg.value_.uint128_value); +#else + case detail::type::int128_type: + case detail::type::uint128_type: + break; +#endif + case detail::type::bool_type: + return vis(arg.value_.bool_value); + case detail::type::char_type: + return vis(arg.value_.char_value); + case detail::type::float_type: + return vis(arg.value_.float_value); + case detail::type::double_type: + return vis(arg.value_.double_value); + case detail::type::long_double_type: + return vis(arg.value_.long_double_value); + case detail::type::cstring_type: + return vis(arg.value_.string.data); + case detail::type::string_type: + return vis(basic_string_view(arg.value_.string.data, + arg.value_.string.size)); + case detail::type::pointer_type: + return vis(arg.value_.pointer); + case detail::type::custom_type: + return vis(typename basic_format_arg::handle(arg.value_.custom)); + } + return vis(monostate()); +} + +template struct formattable : std::false_type {}; + +namespace detail { + +// A workaround for gcc 4.8 to make void_t work in a SFINAE context. +template struct void_t_impl { using type = void; }; +template +using void_t = typename detail::void_t_impl::type; + +template +struct is_output_iterator : std::false_type {}; + +template +struct is_output_iterator< + It, T, + void_t::iterator_category, + decltype(*std::declval() = std::declval())>> + : std::true_type {}; + +template +struct is_back_insert_iterator : std::false_type {}; +template +struct is_back_insert_iterator> + : std::true_type {}; + +template +struct is_contiguous_back_insert_iterator : std::false_type {}; +template +struct is_contiguous_back_insert_iterator> + : is_contiguous {}; +template +struct is_contiguous_back_insert_iterator> + : std::true_type {}; + +// A type-erased reference to an std::locale to avoid heavy include. +class locale_ref { + private: + const void* locale_; // A type-erased pointer to std::locale. + + public: + locale_ref() : locale_(nullptr) {} + template explicit locale_ref(const Locale& loc); + + explicit operator bool() const FMT_NOEXCEPT { return locale_ != nullptr; } + + template Locale get() const; +}; + +template constexpr unsigned long long encode_types() { return 0; } + +template +constexpr unsigned long long encode_types() { + return static_cast(mapped_type_constant::value) | + (encode_types() << packed_arg_bits); +} + +template +FMT_CONSTEXPR basic_format_arg make_arg(const T& value) { + basic_format_arg arg; + arg.type_ = mapped_type_constant::value; + arg.value_ = arg_mapper().map(value); + return arg; +} + +template int check(unformattable) { + static_assert( + formattable(), + "Cannot format an argument. To make type T formattable provide a " + "formatter specialization: https://fmt.dev/latest/api.html#udt"); + return 0; +} +template inline const U& check(const U& val) { + return val; +} + +// The type template parameter is there to avoid an ODR violation when using +// a fallback formatter in one translation unit and an implicit conversion in +// another (not recommended). +template +inline value make_arg(const T& val) { + return check(arg_mapper().map(val)); +} + +template +inline basic_format_arg make_arg(const T& value) { + return make_arg(value); +} + +template struct is_reference_wrapper : std::false_type {}; +template +struct is_reference_wrapper> : std::true_type {}; + +template const T& unwrap(const T& v) { return v; } +template const T& unwrap(const std::reference_wrapper& v) { + return static_cast(v); +} + +class dynamic_arg_list { + // Workaround for clang's -Wweak-vtables. Unlike for regular classes, for + // templates it doesn't complain about inability to deduce single translation + // unit for placing vtable. So storage_node_base is made a fake template. + template struct node { + virtual ~node() = default; + std::unique_ptr> next; + }; + + template struct typed_node : node<> { + T value; + + template + FMT_CONSTEXPR typed_node(const Arg& arg) : value(arg) {} + + template + FMT_CONSTEXPR typed_node(const basic_string_view& arg) + : value(arg.data(), arg.size()) {} + }; + + std::unique_ptr> head_; + + public: + template const T& push(const Arg& arg) { + auto new_node = std::unique_ptr>(new typed_node(arg)); + auto& value = new_node->value; + new_node->next = std::move(head_); + head_ = std::move(new_node); + return value; + } +}; +} // namespace detail + +// Formatting context. +template class basic_format_context { + public: + /** The character type for the output. */ + using char_type = Char; + + private: + OutputIt out_; + basic_format_args args_; + detail::locale_ref loc_; + + public: + using iterator = OutputIt; + using format_arg = basic_format_arg; + using parse_context_type = basic_format_parse_context; + template using formatter_type = formatter; + + basic_format_context(const basic_format_context&) = delete; + void operator=(const basic_format_context&) = delete; + /** + Constructs a ``basic_format_context`` object. References to the arguments are + stored in the object so make sure they have appropriate lifetimes. + */ + basic_format_context(OutputIt out, + basic_format_args ctx_args, + detail::locale_ref loc = detail::locale_ref()) + : out_(out), args_(ctx_args), loc_(loc) {} + + format_arg arg(int id) const { return args_.get(id); } + format_arg arg(basic_string_view name) { return args_.get(name); } + int arg_id(basic_string_view name) { return args_.get_id(name); } + const basic_format_args& args() const { return args_; } + + detail::error_handler error_handler() { return {}; } + void on_error(const char* message) { error_handler().on_error(message); } + + // Returns an iterator to the beginning of the output range. + iterator out() { return out_; } + + // Advances the begin iterator to ``it``. + void advance_to(iterator it) { + if (!detail::is_back_insert_iterator()) out_ = it; + } + + detail::locale_ref locale() { return loc_; } +}; + +template +using buffer_context = + basic_format_context, Char>; +using format_context = buffer_context; +using wformat_context = buffer_context; + +// Workaround an alias issue: https://stackoverflow.com/q/62767544/471164. +#define FMT_BUFFER_CONTEXT(Char) \ + basic_format_context, Char> + +/** + \rst + An array of references to arguments. It can be implicitly converted into + `~fmt::basic_format_args` for passing into type-erased formatting functions + such as `~fmt::vformat`. + \endrst + */ +template +class format_arg_store +#if FMT_GCC_VERSION && FMT_GCC_VERSION < 409 + // Workaround a GCC template argument substitution bug. + : public basic_format_args +#endif +{ + private: + static const size_t num_args = sizeof...(Args); + static const size_t num_named_args = detail::count_named_args(); + static const bool is_packed = num_args <= detail::max_packed_args; + + using value_type = conditional_t, + basic_format_arg>; + + detail::arg_data + data_; + + friend class basic_format_args; + + static constexpr unsigned long long desc = + (is_packed ? detail::encode_types() + : detail::is_unpacked_bit | num_args) | + (num_named_args != 0 + ? static_cast(detail::has_named_args_bit) + : 0); + + public: + format_arg_store(const Args&... args) + : +#if FMT_GCC_VERSION && FMT_GCC_VERSION < 409 + basic_format_args(*this), +#endif + data_{detail::make_arg< + is_packed, Context, + detail::mapped_type_constant::value>(args)...} { + detail::init_named_args(data_.named_args(), 0, 0, args...); + } +}; + +/** + \rst + Constructs a `~fmt::format_arg_store` object that contains references to + arguments and can be implicitly converted to `~fmt::format_args`. `Context` + can be omitted in which case it defaults to `~fmt::context`. + See `~fmt::arg` for lifetime considerations. + \endrst + */ +template +inline format_arg_store make_format_args( + const Args&... args) { + return {args...}; +} + +/** + \rst + Constructs a `~fmt::format_arg_store` object that contains references + to arguments and can be implicitly converted to `~fmt::format_args`. + If ``format_str`` is a compile-time string then `make_args_checked` checks + its validity at compile time. + \endrst + */ +template > +inline auto make_args_checked(const S& format_str, + const remove_reference_t&... args) + -> format_arg_store, remove_reference_t...> { + static_assert( + detail::count<( + std::is_base_of>::value && + std::is_reference::value)...>() == 0, + "passing views as lvalues is disallowed"); + detail::check_format_string(format_str); + return {args...}; +} + +/** + \rst + Returns a named argument to be used in a formatting function. It should only + be used in a call to a formatting function. + + **Example**:: + + fmt::print("Elapsed time: {s:.2f} seconds", fmt::arg("s", 1.23)); + \endrst + */ +template +inline detail::named_arg arg(const Char* name, const T& arg) { + static_assert(!detail::is_named_arg(), "nested named arguments"); + return {name, arg}; +} + +/** + \rst + A dynamic version of `fmt::format_arg_store`. + It's equipped with a storage to potentially temporary objects which lifetimes + could be shorter than the format arguments object. + + It can be implicitly converted into `~fmt::basic_format_args` for passing + into type-erased formatting functions such as `~fmt::vformat`. + \endrst + */ +template +class dynamic_format_arg_store +#if FMT_GCC_VERSION && FMT_GCC_VERSION < 409 + // Workaround a GCC template argument substitution bug. + : public basic_format_args +#endif +{ + private: + using char_type = typename Context::char_type; + + template struct need_copy { + static constexpr detail::type mapped_type = + detail::mapped_type_constant::value; + + enum { + value = !(detail::is_reference_wrapper::value || + std::is_same>::value || + std::is_same>::value || + (mapped_type != detail::type::cstring_type && + mapped_type != detail::type::string_type && + mapped_type != detail::type::custom_type)) + }; + }; + + template + using stored_type = conditional_t::value, + std::basic_string, T>; + + // Storage of basic_format_arg must be contiguous. + std::vector> data_; + std::vector> named_info_; + + // Storage of arguments not fitting into basic_format_arg must grow + // without relocation because items in data_ refer to it. + detail::dynamic_arg_list dynamic_args_; + + friend class basic_format_args; + + unsigned long long get_types() const { + return detail::is_unpacked_bit | data_.size() | + (named_info_.empty() + ? 0ULL + : static_cast(detail::has_named_args_bit)); + } + + const basic_format_arg* data() const { + return named_info_.empty() ? data_.data() : data_.data() + 1; + } + + template void emplace_arg(const T& arg) { + data_.emplace_back(detail::make_arg(arg)); + } + + template + void emplace_arg(const detail::named_arg& arg) { + if (named_info_.empty()) { + constexpr const detail::named_arg_info* zero_ptr{nullptr}; + data_.insert(data_.begin(), {zero_ptr, 0}); + } + data_.emplace_back(detail::make_arg(detail::unwrap(arg.value))); + auto pop_one = [](std::vector>* data) { + data->pop_back(); + }; + std::unique_ptr>, decltype(pop_one)> + guard{&data_, pop_one}; + named_info_.push_back({arg.name, static_cast(data_.size() - 2u)}); + data_[0].value_.named_args = {named_info_.data(), named_info_.size()}; + guard.release(); + } + + public: + /** + \rst + Adds an argument into the dynamic store for later passing to a formatting + function. + + Note that custom types and string types (but not string views) are copied + into the store dynamically allocating memory if necessary. + + **Example**:: + + fmt::dynamic_format_arg_store store; + store.push_back(42); + store.push_back("abc"); + store.push_back(1.5f); + std::string result = fmt::vformat("{} and {} and {}", store); + \endrst + */ + template void push_back(const T& arg) { + if (detail::const_check(need_copy::value)) + emplace_arg(dynamic_args_.push>(arg)); + else + emplace_arg(detail::unwrap(arg)); + } + + /** + \rst + Adds a reference to the argument into the dynamic store for later passing to + a formatting function. Supports named arguments wrapped in + ``std::reference_wrapper`` via ``std::ref()``/``std::cref()``. + + **Example**:: + + fmt::dynamic_format_arg_store store; + char str[] = "1234567890"; + store.push_back(std::cref(str)); + int a1_val{42}; + auto a1 = fmt::arg("a1_", a1_val); + store.push_back(std::cref(a1)); + + // Changing str affects the output but only for string and custom types. + str[0] = 'X'; + + std::string result = fmt::vformat("{} and {a1_}"); + assert(result == "X234567890 and 42"); + \endrst + */ + template void push_back(std::reference_wrapper arg) { + static_assert( + detail::is_named_arg::type>::value || + need_copy::value, + "objects of built-in types and string views are always copied"); + emplace_arg(arg.get()); + } + + /** + Adds named argument into the dynamic store for later passing to a formatting + function. ``std::reference_wrapper`` is supported to avoid copying of the + argument. + */ + template + void push_back(const detail::named_arg& arg) { + const char_type* arg_name = + dynamic_args_.push>(arg.name).c_str(); + if (detail::const_check(need_copy::value)) { + emplace_arg( + fmt::arg(arg_name, dynamic_args_.push>(arg.value))); + } else { + emplace_arg(fmt::arg(arg_name, arg.value)); + } + } + + /** Erase all elements from the store */ + void clear() { + data_.clear(); + named_info_.clear(); + dynamic_args_ = detail::dynamic_arg_list(); + } + + /** + \rst + Reserves space to store at least *new_cap* arguments including + *new_cap_named* named arguments. + \endrst + */ + void reserve(size_t new_cap, size_t new_cap_named) { + FMT_ASSERT(new_cap >= new_cap_named, + "Set of arguments includes set of named arguments"); + data_.reserve(new_cap); + named_info_.reserve(new_cap_named); + } +}; + +/** + \rst + A view of a collection of formatting arguments. To avoid lifetime issues it + should only be used as a parameter type in type-erased functions such as + ``vformat``:: + + void vlog(string_view format_str, format_args args); // OK + format_args args = make_format_args(42); // Error: dangling reference + \endrst + */ +template class basic_format_args { + public: + using size_type = int; + using format_arg = basic_format_arg; + + private: + // A descriptor that contains information about formatting arguments. + // If the number of arguments is less or equal to max_packed_args then + // argument types are passed in the descriptor. This reduces binary code size + // per formatting function call. + unsigned long long desc_; + union { + // If is_packed() returns true then argument values are stored in values_; + // otherwise they are stored in args_. This is done to improve cache + // locality and reduce compiled code size since storing larger objects + // may require more code (at least on x86-64) even if the same amount of + // data is actually copied to stack. It saves ~10% on the bloat test. + const detail::value* values_; + const format_arg* args_; + }; + + bool is_packed() const { return (desc_ & detail::is_unpacked_bit) == 0; } + bool has_named_args() const { + return (desc_ & detail::has_named_args_bit) != 0; + } + + detail::type type(int index) const { + int shift = index * detail::packed_arg_bits; + unsigned int mask = (1 << detail::packed_arg_bits) - 1; + return static_cast((desc_ >> shift) & mask); + } + + basic_format_args(unsigned long long desc, + const detail::value* values) + : desc_(desc), values_(values) {} + basic_format_args(unsigned long long desc, const format_arg* args) + : desc_(desc), args_(args) {} + + public: + basic_format_args() : desc_(0) {} + + /** + \rst + Constructs a `basic_format_args` object from `~fmt::format_arg_store`. + \endrst + */ + template + FMT_INLINE basic_format_args(const format_arg_store& store) + : basic_format_args(store.desc, store.data_.args()) {} + + /** + \rst + Constructs a `basic_format_args` object from + `~fmt::dynamic_format_arg_store`. + \endrst + */ + FMT_INLINE basic_format_args(const dynamic_format_arg_store& store) + : basic_format_args(store.get_types(), store.data()) {} + + /** + \rst + Constructs a `basic_format_args` object from a dynamic set of arguments. + \endrst + */ + basic_format_args(const format_arg* args, int count) + : basic_format_args(detail::is_unpacked_bit | detail::to_unsigned(count), + args) {} + + /** Returns the argument with the specified id. */ + format_arg get(int id) const { + format_arg arg; + if (!is_packed()) { + if (id < max_size()) arg = args_[id]; + return arg; + } + if (id >= detail::max_packed_args) return arg; + arg.type_ = type(id); + if (arg.type_ == detail::type::none_type) return arg; + arg.value_ = values_[id]; + return arg; + } + + template format_arg get(basic_string_view name) const { + int id = get_id(name); + return id >= 0 ? get(id) : format_arg(); + } + + template int get_id(basic_string_view name) const { + if (!has_named_args()) return -1; + const auto& named_args = + (is_packed() ? values_[-1] : args_[-1].value_).named_args; + for (size_t i = 0; i < named_args.size; ++i) { + if (named_args.data[i].name == name) return named_args.data[i].id; + } + return -1; + } + + int max_size() const { + unsigned long long max_packed = detail::max_packed_args; + return static_cast(is_packed() ? max_packed + : desc_ & ~detail::is_unpacked_bit); + } +}; + +#ifdef FMT_ARM_ABI_COMPATIBILITY +/** An alias to ``basic_format_args``. */ +// Separate types would result in shorter symbols but break ABI compatibility +// between clang and gcc on ARM (#1919). +using format_args = basic_format_args; +using wformat_args = basic_format_args; +#else +// DEPRECATED! These are kept for ABI compatibility. +// It is a separate type rather than an alias to make symbols readable. +struct format_args : basic_format_args { + template + FMT_INLINE format_args(const Args&... args) : basic_format_args(args...) {} +}; +struct wformat_args : basic_format_args { + using basic_format_args::basic_format_args; +}; +#endif + +namespace detail { + +template ::value)> +std::basic_string vformat( + basic_string_view format_str, + basic_format_args>> args); + +FMT_API std::string vformat(string_view format_str, format_args args); + +template +void vformat_to( + buffer& buf, basic_string_view format_str, + basic_format_args)> args, + detail::locale_ref loc = {}); + +template ::value)> +inline void vprint_mojibake(std::FILE*, basic_string_view, const Args&) {} + +FMT_API void vprint_mojibake(std::FILE*, string_view, format_args); +#ifndef _WIN32 +inline void vprint_mojibake(std::FILE*, string_view, format_args) {} +#endif +} // namespace detail + +/** Formats a string and writes the output to ``out``. */ +// GCC 8 and earlier cannot handle std::back_insert_iterator with +// vformat_to(...) overload, so SFINAE on iterator type instead. +template , + bool enable = detail::is_output_iterator::value> +auto vformat_to(OutputIt out, const S& format_str, + basic_format_args>> args) + -> typename std::enable_if::type { + decltype(detail::get_buffer(out)) buf(detail::get_buffer_init(out)); + detail::vformat_to(buf, to_string_view(format_str), args); + return detail::get_iterator(buf); +} + +/** + \rst + Formats arguments, writes the result to the output iterator ``out`` and returns + the iterator past the end of the output range. + + **Example**:: + + std::vector out; + fmt::format_to(std::back_inserter(out), "{}", 42); + \endrst + */ +// We cannot use FMT_ENABLE_IF because of a bug in gcc 8.3. +template >::value> +inline auto format_to(OutputIt out, const S& format_str, Args&&... args) -> + typename std::enable_if::type { + const auto& vargs = fmt::make_args_checked(format_str, args...); + return vformat_to(out, to_string_view(format_str), vargs); +} + +template struct format_to_n_result { + /** Iterator past the end of the output range. */ + OutputIt out; + /** Total (not truncated) output size. */ + size_t size; +}; + +template ::value)> +inline format_to_n_result vformat_to_n( + OutputIt out, size_t n, basic_string_view format_str, + basic_format_args>> args) { + detail::iterator_buffer buf(out, + n); + detail::vformat_to(buf, format_str, args); + return {buf.out(), buf.count()}; +} + +/** + \rst + Formats arguments, writes up to ``n`` characters of the result to the output + iterator ``out`` and returns the total output size and the iterator past the + end of the output range. + \endrst + */ +template >::value> +inline auto format_to_n(OutputIt out, size_t n, const S& format_str, + const Args&... args) -> + typename std::enable_if>::type { + const auto& vargs = fmt::make_args_checked(format_str, args...); + return vformat_to_n(out, n, to_string_view(format_str), vargs); +} + +/** + Returns the number of characters in the output of + ``format(format_str, args...)``. + */ +template +inline size_t formatted_size(string_view format_str, Args&&... args) { + const auto& vargs = fmt::make_args_checked(format_str, args...); + detail::counting_buffer<> buf; + detail::vformat_to(buf, format_str, vargs); + return buf.count(); +} + +template > +FMT_INLINE std::basic_string vformat( + const S& format_str, + basic_format_args>> args) { + return detail::vformat(to_string_view(format_str), args); +} + +/** + \rst + Formats arguments and returns the result as a string. + + **Example**:: + + #include + std::string message = fmt::format("The answer is {}", 42); + \endrst +*/ +// Pass char_t as a default template parameter instead of using +// std::basic_string> to reduce the symbol size. +template > +FMT_INLINE std::basic_string format(const S& format_str, Args&&... args) { + const auto& vargs = fmt::make_args_checked(format_str, args...); + return detail::vformat(to_string_view(format_str), vargs); +} + +FMT_API void vprint(string_view, format_args); +FMT_API void vprint(std::FILE*, string_view, format_args); + +/** + \rst + Formats ``args`` according to specifications in ``format_str`` and writes the + output to the file ``f``. Strings are assumed to be Unicode-encoded unless the + ``FMT_UNICODE`` macro is set to 0. + + **Example**:: + + fmt::print(stderr, "Don't {}!", "panic"); + \endrst + */ +template > +inline void print(std::FILE* f, const S& format_str, Args&&... args) { + const auto& vargs = fmt::make_args_checked(format_str, args...); + return detail::is_unicode() + ? vprint(f, to_string_view(format_str), vargs) + : detail::vprint_mojibake(f, to_string_view(format_str), vargs); +} + +/** + \rst + Formats ``args`` according to specifications in ``format_str`` and writes + the output to ``stdout``. Strings are assumed to be Unicode-encoded unless + the ``FMT_UNICODE`` macro is set to 0. + + **Example**:: + + fmt::print("Elapsed time: {0:.2f} seconds", 1.23); + \endrst + */ +template > +inline void print(const S& format_str, Args&&... args) { + const auto& vargs = fmt::make_args_checked(format_str, args...); + return detail::is_unicode() + ? vprint(to_string_view(format_str), vargs) + : detail::vprint_mojibake(stdout, to_string_view(format_str), + vargs); +} +FMT_END_NAMESPACE + +#endif // FMT_CORE_H_ diff --git a/src/ext/spdlog/fmt/bundled/format-inl.h b/src/ext/spdlog/fmt/bundled/format-inl.h new file mode 100644 index 0000000..8f2fe73 --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/format-inl.h @@ -0,0 +1,2801 @@ +// Formatting library for C++ - implementation +// +// Copyright (c) 2012 - 2016, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#ifndef FMT_FORMAT_INL_H_ +#define FMT_FORMAT_INL_H_ + +#include +#include +#include +#include +#include +#include // std::memmove +#include +#include + +#ifndef FMT_STATIC_THOUSANDS_SEPARATOR +# include +#endif + +#ifdef _WIN32 +# include // _isatty +#endif + +#include "format.h" + +// Dummy implementations of strerror_r and strerror_s called if corresponding +// system functions are not available. +inline fmt::detail::null<> strerror_r(int, char*, ...) { return {}; } +inline fmt::detail::null<> strerror_s(char*, size_t, ...) { return {}; } + +FMT_BEGIN_NAMESPACE +namespace detail { + +FMT_FUNC void assert_fail(const char* file, int line, const char* message) { + // Use unchecked std::fprintf to avoid triggering another assertion when + // writing to stderr fails + std::fprintf(stderr, "%s:%d: assertion failed: %s", file, line, message); + // Chosen instead of std::abort to satisfy Clang in CUDA mode during device + // code pass. + std::terminate(); +} + +#ifndef _MSC_VER +# define FMT_SNPRINTF snprintf +#else // _MSC_VER +inline int fmt_snprintf(char* buffer, size_t size, const char* format, ...) { + va_list args; + va_start(args, format); + int result = vsnprintf_s(buffer, size, _TRUNCATE, format, args); + va_end(args); + return result; +} +# define FMT_SNPRINTF fmt_snprintf +#endif // _MSC_VER + +// A portable thread-safe version of strerror. +// Sets buffer to point to a string describing the error code. +// This can be either a pointer to a string stored in buffer, +// or a pointer to some static immutable string. +// Returns one of the following values: +// 0 - success +// ERANGE - buffer is not large enough to store the error message +// other - failure +// Buffer should be at least of size 1. +inline int safe_strerror(int error_code, char*& buffer, + size_t buffer_size) FMT_NOEXCEPT { + FMT_ASSERT(buffer != nullptr && buffer_size != 0, "invalid buffer"); + + class dispatcher { + private: + int error_code_; + char*& buffer_; + size_t buffer_size_; + + // A noop assignment operator to avoid bogus warnings. + void operator=(const dispatcher&) {} + + // Handle the result of XSI-compliant version of strerror_r. + int handle(int result) { + // glibc versions before 2.13 return result in errno. + return result == -1 ? errno : result; + } + + // Handle the result of GNU-specific version of strerror_r. + FMT_MAYBE_UNUSED + int handle(char* message) { + // If the buffer is full then the message is probably truncated. + if (message == buffer_ && strlen(buffer_) == buffer_size_ - 1) + return ERANGE; + buffer_ = message; + return 0; + } + + // Handle the case when strerror_r is not available. + FMT_MAYBE_UNUSED + int handle(detail::null<>) { + return fallback(strerror_s(buffer_, buffer_size_, error_code_)); + } + + // Fallback to strerror_s when strerror_r is not available. + FMT_MAYBE_UNUSED + int fallback(int result) { + // If the buffer is full then the message is probably truncated. + return result == 0 && strlen(buffer_) == buffer_size_ - 1 ? ERANGE + : result; + } + +#if !FMT_MSC_VER + // Fallback to strerror if strerror_r and strerror_s are not available. + int fallback(detail::null<>) { + errno = 0; + buffer_ = strerror(error_code_); + return errno; + } +#endif + + public: + dispatcher(int err_code, char*& buf, size_t buf_size) + : error_code_(err_code), buffer_(buf), buffer_size_(buf_size) {} + + int run() { return handle(strerror_r(error_code_, buffer_, buffer_size_)); } + }; + return dispatcher(error_code, buffer, buffer_size).run(); +} + +FMT_FUNC void format_error_code(detail::buffer& out, int error_code, + string_view message) FMT_NOEXCEPT { + // Report error code making sure that the output fits into + // inline_buffer_size to avoid dynamic memory allocation and potential + // bad_alloc. + out.try_resize(0); + static const char SEP[] = ": "; + static const char ERROR_STR[] = "error "; + // Subtract 2 to account for terminating null characters in SEP and ERROR_STR. + size_t error_code_size = sizeof(SEP) + sizeof(ERROR_STR) - 2; + auto abs_value = static_cast>(error_code); + if (detail::is_negative(error_code)) { + abs_value = 0 - abs_value; + ++error_code_size; + } + error_code_size += detail::to_unsigned(detail::count_digits(abs_value)); + auto it = buffer_appender(out); + if (message.size() <= inline_buffer_size - error_code_size) + format_to(it, "{}{}", message, SEP); + format_to(it, "{}{}", ERROR_STR, error_code); + assert(out.size() <= inline_buffer_size); +} + +FMT_FUNC void report_error(format_func func, int error_code, + string_view message) FMT_NOEXCEPT { + memory_buffer full_message; + func(full_message, error_code, message); + // Don't use fwrite_fully because the latter may throw. + (void)std::fwrite(full_message.data(), full_message.size(), 1, stderr); + std::fputc('\n', stderr); +} + +// A wrapper around fwrite that throws on error. +inline void fwrite_fully(const void* ptr, size_t size, size_t count, + FILE* stream) { + size_t written = std::fwrite(ptr, size, count, stream); + if (written < count) FMT_THROW(system_error(errno, "cannot write to file")); +} +} // namespace detail + +#if !defined(FMT_STATIC_THOUSANDS_SEPARATOR) +namespace detail { + +template +locale_ref::locale_ref(const Locale& loc) : locale_(&loc) { + static_assert(std::is_same::value, ""); +} + +template Locale locale_ref::get() const { + static_assert(std::is_same::value, ""); + return locale_ ? *static_cast(locale_) : std::locale(); +} + +template FMT_FUNC std::string grouping_impl(locale_ref loc) { + return std::use_facet>(loc.get()).grouping(); +} +template FMT_FUNC Char thousands_sep_impl(locale_ref loc) { + return std::use_facet>(loc.get()) + .thousands_sep(); +} +template FMT_FUNC Char decimal_point_impl(locale_ref loc) { + return std::use_facet>(loc.get()) + .decimal_point(); +} +} // namespace detail +#else +template +FMT_FUNC std::string detail::grouping_impl(locale_ref) { + return "\03"; +} +template FMT_FUNC Char detail::thousands_sep_impl(locale_ref) { + return FMT_STATIC_THOUSANDS_SEPARATOR; +} +template FMT_FUNC Char detail::decimal_point_impl(locale_ref) { + return '.'; +} +#endif + +FMT_API FMT_FUNC format_error::~format_error() FMT_NOEXCEPT = default; +FMT_API FMT_FUNC system_error::~system_error() FMT_NOEXCEPT = default; + +FMT_FUNC void system_error::init(int err_code, string_view format_str, + format_args args) { + error_code_ = err_code; + memory_buffer buffer; + format_system_error(buffer, err_code, vformat(format_str, args)); + std::runtime_error& base = *this; + base = std::runtime_error(to_string(buffer)); +} + +namespace detail { + +template <> FMT_FUNC int count_digits<4>(detail::fallback_uintptr n) { + // fallback_uintptr is always stored in little endian. + int i = static_cast(sizeof(void*)) - 1; + while (i > 0 && n.value[i] == 0) --i; + auto char_digits = std::numeric_limits::digits / 4; + return i >= 0 ? i * char_digits + count_digits<4, unsigned>(n.value[i]) : 1; +} + +template +const typename basic_data::digit_pair basic_data::digits[] = { + {'0', '0'}, {'0', '1'}, {'0', '2'}, {'0', '3'}, {'0', '4'}, {'0', '5'}, + {'0', '6'}, {'0', '7'}, {'0', '8'}, {'0', '9'}, {'1', '0'}, {'1', '1'}, + {'1', '2'}, {'1', '3'}, {'1', '4'}, {'1', '5'}, {'1', '6'}, {'1', '7'}, + {'1', '8'}, {'1', '9'}, {'2', '0'}, {'2', '1'}, {'2', '2'}, {'2', '3'}, + {'2', '4'}, {'2', '5'}, {'2', '6'}, {'2', '7'}, {'2', '8'}, {'2', '9'}, + {'3', '0'}, {'3', '1'}, {'3', '2'}, {'3', '3'}, {'3', '4'}, {'3', '5'}, + {'3', '6'}, {'3', '7'}, {'3', '8'}, {'3', '9'}, {'4', '0'}, {'4', '1'}, + {'4', '2'}, {'4', '3'}, {'4', '4'}, {'4', '5'}, {'4', '6'}, {'4', '7'}, + {'4', '8'}, {'4', '9'}, {'5', '0'}, {'5', '1'}, {'5', '2'}, {'5', '3'}, + {'5', '4'}, {'5', '5'}, {'5', '6'}, {'5', '7'}, {'5', '8'}, {'5', '9'}, + {'6', '0'}, {'6', '1'}, {'6', '2'}, {'6', '3'}, {'6', '4'}, {'6', '5'}, + {'6', '6'}, {'6', '7'}, {'6', '8'}, {'6', '9'}, {'7', '0'}, {'7', '1'}, + {'7', '2'}, {'7', '3'}, {'7', '4'}, {'7', '5'}, {'7', '6'}, {'7', '7'}, + {'7', '8'}, {'7', '9'}, {'8', '0'}, {'8', '1'}, {'8', '2'}, {'8', '3'}, + {'8', '4'}, {'8', '5'}, {'8', '6'}, {'8', '7'}, {'8', '8'}, {'8', '9'}, + {'9', '0'}, {'9', '1'}, {'9', '2'}, {'9', '3'}, {'9', '4'}, {'9', '5'}, + {'9', '6'}, {'9', '7'}, {'9', '8'}, {'9', '9'}}; + +template +const char basic_data::hex_digits[] = "0123456789abcdef"; + +#define FMT_POWERS_OF_10(factor) \ + factor * 10, (factor)*100, (factor)*1000, (factor)*10000, (factor)*100000, \ + (factor)*1000000, (factor)*10000000, (factor)*100000000, \ + (factor)*1000000000 + +template +const uint64_t basic_data::powers_of_10_64[] = { + 1, FMT_POWERS_OF_10(1), FMT_POWERS_OF_10(1000000000ULL), + 10000000000000000000ULL}; + +template +const uint32_t basic_data::zero_or_powers_of_10_32[] = {0, + FMT_POWERS_OF_10(1)}; +template +const uint64_t basic_data::zero_or_powers_of_10_64[] = { + 0, FMT_POWERS_OF_10(1), FMT_POWERS_OF_10(1000000000ULL), + 10000000000000000000ULL}; + +template +const uint32_t basic_data::zero_or_powers_of_10_32_new[] = { + 0, 0, FMT_POWERS_OF_10(1)}; + +template +const uint64_t basic_data::zero_or_powers_of_10_64_new[] = { + 0, 0, FMT_POWERS_OF_10(1), FMT_POWERS_OF_10(1000000000ULL), + 10000000000000000000ULL}; + +// Normalized 64-bit significands of pow(10, k), for k = -348, -340, ..., 340. +// These are generated by support/compute-powers.py. +template +const uint64_t basic_data::grisu_pow10_significands[] = { + 0xfa8fd5a0081c0288, 0xbaaee17fa23ebf76, 0x8b16fb203055ac76, + 0xcf42894a5dce35ea, 0x9a6bb0aa55653b2d, 0xe61acf033d1a45df, + 0xab70fe17c79ac6ca, 0xff77b1fcbebcdc4f, 0xbe5691ef416bd60c, + 0x8dd01fad907ffc3c, 0xd3515c2831559a83, 0x9d71ac8fada6c9b5, + 0xea9c227723ee8bcb, 0xaecc49914078536d, 0x823c12795db6ce57, + 0xc21094364dfb5637, 0x9096ea6f3848984f, 0xd77485cb25823ac7, + 0xa086cfcd97bf97f4, 0xef340a98172aace5, 0xb23867fb2a35b28e, + 0x84c8d4dfd2c63f3b, 0xc5dd44271ad3cdba, 0x936b9fcebb25c996, + 0xdbac6c247d62a584, 0xa3ab66580d5fdaf6, 0xf3e2f893dec3f126, + 0xb5b5ada8aaff80b8, 0x87625f056c7c4a8b, 0xc9bcff6034c13053, + 0x964e858c91ba2655, 0xdff9772470297ebd, 0xa6dfbd9fb8e5b88f, + 0xf8a95fcf88747d94, 0xb94470938fa89bcf, 0x8a08f0f8bf0f156b, + 0xcdb02555653131b6, 0x993fe2c6d07b7fac, 0xe45c10c42a2b3b06, + 0xaa242499697392d3, 0xfd87b5f28300ca0e, 0xbce5086492111aeb, + 0x8cbccc096f5088cc, 0xd1b71758e219652c, 0x9c40000000000000, + 0xe8d4a51000000000, 0xad78ebc5ac620000, 0x813f3978f8940984, + 0xc097ce7bc90715b3, 0x8f7e32ce7bea5c70, 0xd5d238a4abe98068, + 0x9f4f2726179a2245, 0xed63a231d4c4fb27, 0xb0de65388cc8ada8, + 0x83c7088e1aab65db, 0xc45d1df942711d9a, 0x924d692ca61be758, + 0xda01ee641a708dea, 0xa26da3999aef774a, 0xf209787bb47d6b85, + 0xb454e4a179dd1877, 0x865b86925b9bc5c2, 0xc83553c5c8965d3d, + 0x952ab45cfa97a0b3, 0xde469fbd99a05fe3, 0xa59bc234db398c25, + 0xf6c69a72a3989f5c, 0xb7dcbf5354e9bece, 0x88fcf317f22241e2, + 0xcc20ce9bd35c78a5, 0x98165af37b2153df, 0xe2a0b5dc971f303a, + 0xa8d9d1535ce3b396, 0xfb9b7cd9a4a7443c, 0xbb764c4ca7a44410, + 0x8bab8eefb6409c1a, 0xd01fef10a657842c, 0x9b10a4e5e9913129, + 0xe7109bfba19c0c9d, 0xac2820d9623bf429, 0x80444b5e7aa7cf85, + 0xbf21e44003acdd2d, 0x8e679c2f5e44ff8f, 0xd433179d9c8cb841, + 0x9e19db92b4e31ba9, 0xeb96bf6ebadf77d9, 0xaf87023b9bf0ee6b, +}; + +// Binary exponents of pow(10, k), for k = -348, -340, ..., 340, corresponding +// to significands above. +template +const int16_t basic_data::grisu_pow10_exponents[] = { + -1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980, -954, + -927, -901, -874, -847, -821, -794, -768, -741, -715, -688, -661, + -635, -608, -582, -555, -529, -502, -475, -449, -422, -396, -369, + -343, -316, -289, -263, -236, -210, -183, -157, -130, -103, -77, + -50, -24, 3, 30, 56, 83, 109, 136, 162, 189, 216, + 242, 269, 295, 322, 348, 375, 402, 428, 455, 481, 508, + 534, 561, 588, 614, 641, 667, 694, 720, 747, 774, 800, + 827, 853, 880, 907, 933, 960, 986, 1013, 1039, 1066}; + +template +const divtest_table_entry basic_data::divtest_table_for_pow5_32[] = + {{0x00000001, 0xffffffff}, {0xcccccccd, 0x33333333}, + {0xc28f5c29, 0x0a3d70a3}, {0x26e978d5, 0x020c49ba}, + {0x3afb7e91, 0x0068db8b}, {0x0bcbe61d, 0x0014f8b5}, + {0x68c26139, 0x000431bd}, {0xae8d46a5, 0x0000d6bf}, + {0x22e90e21, 0x00002af3}, {0x3a2e9c6d, 0x00000897}, + {0x3ed61f49, 0x000001b7}}; + +template +const divtest_table_entry basic_data::divtest_table_for_pow5_64[] = + {{0x0000000000000001, 0xffffffffffffffff}, + {0xcccccccccccccccd, 0x3333333333333333}, + {0x8f5c28f5c28f5c29, 0x0a3d70a3d70a3d70}, + {0x1cac083126e978d5, 0x020c49ba5e353f7c}, + {0xd288ce703afb7e91, 0x0068db8bac710cb2}, + {0x5d4e8fb00bcbe61d, 0x0014f8b588e368f0}, + {0x790fb65668c26139, 0x000431bde82d7b63}, + {0xe5032477ae8d46a5, 0x0000d6bf94d5e57a}, + {0xc767074b22e90e21, 0x00002af31dc46118}, + {0x8e47ce423a2e9c6d, 0x0000089705f4136b}, + {0x4fa7f60d3ed61f49, 0x000001b7cdfd9d7b}, + {0x0fee64690c913975, 0x00000057f5ff85e5}, + {0x3662e0e1cf503eb1, 0x000000119799812d}, + {0xa47a2cf9f6433fbd, 0x0000000384b84d09}, + {0x54186f653140a659, 0x00000000b424dc35}, + {0x7738164770402145, 0x0000000024075f3d}, + {0xe4a4d1417cd9a041, 0x000000000734aca5}, + {0xc75429d9e5c5200d, 0x000000000170ef54}, + {0xc1773b91fac10669, 0x000000000049c977}, + {0x26b172506559ce15, 0x00000000000ec1e4}, + {0xd489e3a9addec2d1, 0x000000000002f394}, + {0x90e860bb892c8d5d, 0x000000000000971d}, + {0x502e79bf1b6f4f79, 0x0000000000001e39}, + {0xdcd618596be30fe5, 0x000000000000060b}}; + +template +const uint64_t basic_data::dragonbox_pow10_significands_64[] = { + 0x81ceb32c4b43fcf5, 0xa2425ff75e14fc32, 0xcad2f7f5359a3b3f, + 0xfd87b5f28300ca0e, 0x9e74d1b791e07e49, 0xc612062576589ddb, + 0xf79687aed3eec552, 0x9abe14cd44753b53, 0xc16d9a0095928a28, + 0xf1c90080baf72cb2, 0x971da05074da7bef, 0xbce5086492111aeb, + 0xec1e4a7db69561a6, 0x9392ee8e921d5d08, 0xb877aa3236a4b44a, + 0xe69594bec44de15c, 0x901d7cf73ab0acda, 0xb424dc35095cd810, + 0xe12e13424bb40e14, 0x8cbccc096f5088cc, 0xafebff0bcb24aaff, + 0xdbe6fecebdedd5bf, 0x89705f4136b4a598, 0xabcc77118461cefd, + 0xd6bf94d5e57a42bd, 0x8637bd05af6c69b6, 0xa7c5ac471b478424, + 0xd1b71758e219652c, 0x83126e978d4fdf3c, 0xa3d70a3d70a3d70b, + 0xcccccccccccccccd, 0x8000000000000000, 0xa000000000000000, + 0xc800000000000000, 0xfa00000000000000, 0x9c40000000000000, + 0xc350000000000000, 0xf424000000000000, 0x9896800000000000, + 0xbebc200000000000, 0xee6b280000000000, 0x9502f90000000000, + 0xba43b74000000000, 0xe8d4a51000000000, 0x9184e72a00000000, + 0xb5e620f480000000, 0xe35fa931a0000000, 0x8e1bc9bf04000000, + 0xb1a2bc2ec5000000, 0xde0b6b3a76400000, 0x8ac7230489e80000, + 0xad78ebc5ac620000, 0xd8d726b7177a8000, 0x878678326eac9000, + 0xa968163f0a57b400, 0xd3c21bcecceda100, 0x84595161401484a0, + 0xa56fa5b99019a5c8, 0xcecb8f27f4200f3a, 0x813f3978f8940984, + 0xa18f07d736b90be5, 0xc9f2c9cd04674ede, 0xfc6f7c4045812296, + 0x9dc5ada82b70b59d, 0xc5371912364ce305, 0xf684df56c3e01bc6, + 0x9a130b963a6c115c, 0xc097ce7bc90715b3, 0xf0bdc21abb48db20, + 0x96769950b50d88f4, 0xbc143fa4e250eb31, 0xeb194f8e1ae525fd, + 0x92efd1b8d0cf37be, 0xb7abc627050305ad, 0xe596b7b0c643c719, + 0x8f7e32ce7bea5c6f, 0xb35dbf821ae4f38b, 0xe0352f62a19e306e}; + +template +const uint128_wrapper basic_data::dragonbox_pow10_significands_128[] = { +#if FMT_USE_FULL_CACHE_DRAGONBOX + {0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7b}, + {0x9faacf3df73609b1, 0x77b191618c54e9ad}, + {0xc795830d75038c1d, 0xd59df5b9ef6a2418}, + {0xf97ae3d0d2446f25, 0x4b0573286b44ad1e}, + {0x9becce62836ac577, 0x4ee367f9430aec33}, + {0xc2e801fb244576d5, 0x229c41f793cda740}, + {0xf3a20279ed56d48a, 0x6b43527578c11110}, + {0x9845418c345644d6, 0x830a13896b78aaaa}, + {0xbe5691ef416bd60c, 0x23cc986bc656d554}, + {0xedec366b11c6cb8f, 0x2cbfbe86b7ec8aa9}, + {0x94b3a202eb1c3f39, 0x7bf7d71432f3d6aa}, + {0xb9e08a83a5e34f07, 0xdaf5ccd93fb0cc54}, + {0xe858ad248f5c22c9, 0xd1b3400f8f9cff69}, + {0x91376c36d99995be, 0x23100809b9c21fa2}, + {0xb58547448ffffb2d, 0xabd40a0c2832a78b}, + {0xe2e69915b3fff9f9, 0x16c90c8f323f516d}, + {0x8dd01fad907ffc3b, 0xae3da7d97f6792e4}, + {0xb1442798f49ffb4a, 0x99cd11cfdf41779d}, + {0xdd95317f31c7fa1d, 0x40405643d711d584}, + {0x8a7d3eef7f1cfc52, 0x482835ea666b2573}, + {0xad1c8eab5ee43b66, 0xda3243650005eed0}, + {0xd863b256369d4a40, 0x90bed43e40076a83}, + {0x873e4f75e2224e68, 0x5a7744a6e804a292}, + {0xa90de3535aaae202, 0x711515d0a205cb37}, + {0xd3515c2831559a83, 0x0d5a5b44ca873e04}, + {0x8412d9991ed58091, 0xe858790afe9486c3}, + {0xa5178fff668ae0b6, 0x626e974dbe39a873}, + {0xce5d73ff402d98e3, 0xfb0a3d212dc81290}, + {0x80fa687f881c7f8e, 0x7ce66634bc9d0b9a}, + {0xa139029f6a239f72, 0x1c1fffc1ebc44e81}, + {0xc987434744ac874e, 0xa327ffb266b56221}, + {0xfbe9141915d7a922, 0x4bf1ff9f0062baa9}, + {0x9d71ac8fada6c9b5, 0x6f773fc3603db4aa}, + {0xc4ce17b399107c22, 0xcb550fb4384d21d4}, + {0xf6019da07f549b2b, 0x7e2a53a146606a49}, + {0x99c102844f94e0fb, 0x2eda7444cbfc426e}, + {0xc0314325637a1939, 0xfa911155fefb5309}, + {0xf03d93eebc589f88, 0x793555ab7eba27cb}, + {0x96267c7535b763b5, 0x4bc1558b2f3458df}, + {0xbbb01b9283253ca2, 0x9eb1aaedfb016f17}, + {0xea9c227723ee8bcb, 0x465e15a979c1cadd}, + {0x92a1958a7675175f, 0x0bfacd89ec191eca}, + {0xb749faed14125d36, 0xcef980ec671f667c}, + {0xe51c79a85916f484, 0x82b7e12780e7401b}, + {0x8f31cc0937ae58d2, 0xd1b2ecb8b0908811}, + {0xb2fe3f0b8599ef07, 0x861fa7e6dcb4aa16}, + {0xdfbdcece67006ac9, 0x67a791e093e1d49b}, + {0x8bd6a141006042bd, 0xe0c8bb2c5c6d24e1}, + {0xaecc49914078536d, 0x58fae9f773886e19}, + {0xda7f5bf590966848, 0xaf39a475506a899f}, + {0x888f99797a5e012d, 0x6d8406c952429604}, + {0xaab37fd7d8f58178, 0xc8e5087ba6d33b84}, + {0xd5605fcdcf32e1d6, 0xfb1e4a9a90880a65}, + {0x855c3be0a17fcd26, 0x5cf2eea09a550680}, + {0xa6b34ad8c9dfc06f, 0xf42faa48c0ea481f}, + {0xd0601d8efc57b08b, 0xf13b94daf124da27}, + {0x823c12795db6ce57, 0x76c53d08d6b70859}, + {0xa2cb1717b52481ed, 0x54768c4b0c64ca6f}, + {0xcb7ddcdda26da268, 0xa9942f5dcf7dfd0a}, + {0xfe5d54150b090b02, 0xd3f93b35435d7c4d}, + {0x9efa548d26e5a6e1, 0xc47bc5014a1a6db0}, + {0xc6b8e9b0709f109a, 0x359ab6419ca1091c}, + {0xf867241c8cc6d4c0, 0xc30163d203c94b63}, + {0x9b407691d7fc44f8, 0x79e0de63425dcf1e}, + {0xc21094364dfb5636, 0x985915fc12f542e5}, + {0xf294b943e17a2bc4, 0x3e6f5b7b17b2939e}, + {0x979cf3ca6cec5b5a, 0xa705992ceecf9c43}, + {0xbd8430bd08277231, 0x50c6ff782a838354}, + {0xece53cec4a314ebd, 0xa4f8bf5635246429}, + {0x940f4613ae5ed136, 0x871b7795e136be9a}, + {0xb913179899f68584, 0x28e2557b59846e40}, + {0xe757dd7ec07426e5, 0x331aeada2fe589d0}, + {0x9096ea6f3848984f, 0x3ff0d2c85def7622}, + {0xb4bca50b065abe63, 0x0fed077a756b53aa}, + {0xe1ebce4dc7f16dfb, 0xd3e8495912c62895}, + {0x8d3360f09cf6e4bd, 0x64712dd7abbbd95d}, + {0xb080392cc4349dec, 0xbd8d794d96aacfb4}, + {0xdca04777f541c567, 0xecf0d7a0fc5583a1}, + {0x89e42caaf9491b60, 0xf41686c49db57245}, + {0xac5d37d5b79b6239, 0x311c2875c522ced6}, + {0xd77485cb25823ac7, 0x7d633293366b828c}, + {0x86a8d39ef77164bc, 0xae5dff9c02033198}, + {0xa8530886b54dbdeb, 0xd9f57f830283fdfd}, + {0xd267caa862a12d66, 0xd072df63c324fd7c}, + {0x8380dea93da4bc60, 0x4247cb9e59f71e6e}, + {0xa46116538d0deb78, 0x52d9be85f074e609}, + {0xcd795be870516656, 0x67902e276c921f8c}, + {0x806bd9714632dff6, 0x00ba1cd8a3db53b7}, + {0xa086cfcd97bf97f3, 0x80e8a40eccd228a5}, + {0xc8a883c0fdaf7df0, 0x6122cd128006b2ce}, + {0xfad2a4b13d1b5d6c, 0x796b805720085f82}, + {0x9cc3a6eec6311a63, 0xcbe3303674053bb1}, + {0xc3f490aa77bd60fc, 0xbedbfc4411068a9d}, + {0xf4f1b4d515acb93b, 0xee92fb5515482d45}, + {0x991711052d8bf3c5, 0x751bdd152d4d1c4b}, + {0xbf5cd54678eef0b6, 0xd262d45a78a0635e}, + {0xef340a98172aace4, 0x86fb897116c87c35}, + {0x9580869f0e7aac0e, 0xd45d35e6ae3d4da1}, + {0xbae0a846d2195712, 0x8974836059cca10a}, + {0xe998d258869facd7, 0x2bd1a438703fc94c}, + {0x91ff83775423cc06, 0x7b6306a34627ddd0}, + {0xb67f6455292cbf08, 0x1a3bc84c17b1d543}, + {0xe41f3d6a7377eeca, 0x20caba5f1d9e4a94}, + {0x8e938662882af53e, 0x547eb47b7282ee9d}, + {0xb23867fb2a35b28d, 0xe99e619a4f23aa44}, + {0xdec681f9f4c31f31, 0x6405fa00e2ec94d5}, + {0x8b3c113c38f9f37e, 0xde83bc408dd3dd05}, + {0xae0b158b4738705e, 0x9624ab50b148d446}, + {0xd98ddaee19068c76, 0x3badd624dd9b0958}, + {0x87f8a8d4cfa417c9, 0xe54ca5d70a80e5d7}, + {0xa9f6d30a038d1dbc, 0x5e9fcf4ccd211f4d}, + {0xd47487cc8470652b, 0x7647c32000696720}, + {0x84c8d4dfd2c63f3b, 0x29ecd9f40041e074}, + {0xa5fb0a17c777cf09, 0xf468107100525891}, + {0xcf79cc9db955c2cc, 0x7182148d4066eeb5}, + {0x81ac1fe293d599bf, 0xc6f14cd848405531}, + {0xa21727db38cb002f, 0xb8ada00e5a506a7d}, + {0xca9cf1d206fdc03b, 0xa6d90811f0e4851d}, + {0xfd442e4688bd304a, 0x908f4a166d1da664}, + {0x9e4a9cec15763e2e, 0x9a598e4e043287ff}, + {0xc5dd44271ad3cdba, 0x40eff1e1853f29fe}, + {0xf7549530e188c128, 0xd12bee59e68ef47d}, + {0x9a94dd3e8cf578b9, 0x82bb74f8301958cf}, + {0xc13a148e3032d6e7, 0xe36a52363c1faf02}, + {0xf18899b1bc3f8ca1, 0xdc44e6c3cb279ac2}, + {0x96f5600f15a7b7e5, 0x29ab103a5ef8c0ba}, + {0xbcb2b812db11a5de, 0x7415d448f6b6f0e8}, + {0xebdf661791d60f56, 0x111b495b3464ad22}, + {0x936b9fcebb25c995, 0xcab10dd900beec35}, + {0xb84687c269ef3bfb, 0x3d5d514f40eea743}, + {0xe65829b3046b0afa, 0x0cb4a5a3112a5113}, + {0x8ff71a0fe2c2e6dc, 0x47f0e785eaba72ac}, + {0xb3f4e093db73a093, 0x59ed216765690f57}, + {0xe0f218b8d25088b8, 0x306869c13ec3532d}, + {0x8c974f7383725573, 0x1e414218c73a13fc}, + {0xafbd2350644eeacf, 0xe5d1929ef90898fb}, + {0xdbac6c247d62a583, 0xdf45f746b74abf3a}, + {0x894bc396ce5da772, 0x6b8bba8c328eb784}, + {0xab9eb47c81f5114f, 0x066ea92f3f326565}, + {0xd686619ba27255a2, 0xc80a537b0efefebe}, + {0x8613fd0145877585, 0xbd06742ce95f5f37}, + {0xa798fc4196e952e7, 0x2c48113823b73705}, + {0xd17f3b51fca3a7a0, 0xf75a15862ca504c6}, + {0x82ef85133de648c4, 0x9a984d73dbe722fc}, + {0xa3ab66580d5fdaf5, 0xc13e60d0d2e0ebbb}, + {0xcc963fee10b7d1b3, 0x318df905079926a9}, + {0xffbbcfe994e5c61f, 0xfdf17746497f7053}, + {0x9fd561f1fd0f9bd3, 0xfeb6ea8bedefa634}, + {0xc7caba6e7c5382c8, 0xfe64a52ee96b8fc1}, + {0xf9bd690a1b68637b, 0x3dfdce7aa3c673b1}, + {0x9c1661a651213e2d, 0x06bea10ca65c084f}, + {0xc31bfa0fe5698db8, 0x486e494fcff30a63}, + {0xf3e2f893dec3f126, 0x5a89dba3c3efccfb}, + {0x986ddb5c6b3a76b7, 0xf89629465a75e01d}, + {0xbe89523386091465, 0xf6bbb397f1135824}, + {0xee2ba6c0678b597f, 0x746aa07ded582e2d}, + {0x94db483840b717ef, 0xa8c2a44eb4571cdd}, + {0xba121a4650e4ddeb, 0x92f34d62616ce414}, + {0xe896a0d7e51e1566, 0x77b020baf9c81d18}, + {0x915e2486ef32cd60, 0x0ace1474dc1d122f}, + {0xb5b5ada8aaff80b8, 0x0d819992132456bb}, + {0xe3231912d5bf60e6, 0x10e1fff697ed6c6a}, + {0x8df5efabc5979c8f, 0xca8d3ffa1ef463c2}, + {0xb1736b96b6fd83b3, 0xbd308ff8a6b17cb3}, + {0xddd0467c64bce4a0, 0xac7cb3f6d05ddbdf}, + {0x8aa22c0dbef60ee4, 0x6bcdf07a423aa96c}, + {0xad4ab7112eb3929d, 0x86c16c98d2c953c7}, + {0xd89d64d57a607744, 0xe871c7bf077ba8b8}, + {0x87625f056c7c4a8b, 0x11471cd764ad4973}, + {0xa93af6c6c79b5d2d, 0xd598e40d3dd89bd0}, + {0xd389b47879823479, 0x4aff1d108d4ec2c4}, + {0x843610cb4bf160cb, 0xcedf722a585139bb}, + {0xa54394fe1eedb8fe, 0xc2974eb4ee658829}, + {0xce947a3da6a9273e, 0x733d226229feea33}, + {0x811ccc668829b887, 0x0806357d5a3f5260}, + {0xa163ff802a3426a8, 0xca07c2dcb0cf26f8}, + {0xc9bcff6034c13052, 0xfc89b393dd02f0b6}, + {0xfc2c3f3841f17c67, 0xbbac2078d443ace3}, + {0x9d9ba7832936edc0, 0xd54b944b84aa4c0e}, + {0xc5029163f384a931, 0x0a9e795e65d4df12}, + {0xf64335bcf065d37d, 0x4d4617b5ff4a16d6}, + {0x99ea0196163fa42e, 0x504bced1bf8e4e46}, + {0xc06481fb9bcf8d39, 0xe45ec2862f71e1d7}, + {0xf07da27a82c37088, 0x5d767327bb4e5a4d}, + {0x964e858c91ba2655, 0x3a6a07f8d510f870}, + {0xbbe226efb628afea, 0x890489f70a55368c}, + {0xeadab0aba3b2dbe5, 0x2b45ac74ccea842f}, + {0x92c8ae6b464fc96f, 0x3b0b8bc90012929e}, + {0xb77ada0617e3bbcb, 0x09ce6ebb40173745}, + {0xe55990879ddcaabd, 0xcc420a6a101d0516}, + {0x8f57fa54c2a9eab6, 0x9fa946824a12232e}, + {0xb32df8e9f3546564, 0x47939822dc96abfa}, + {0xdff9772470297ebd, 0x59787e2b93bc56f8}, + {0x8bfbea76c619ef36, 0x57eb4edb3c55b65b}, + {0xaefae51477a06b03, 0xede622920b6b23f2}, + {0xdab99e59958885c4, 0xe95fab368e45ecee}, + {0x88b402f7fd75539b, 0x11dbcb0218ebb415}, + {0xaae103b5fcd2a881, 0xd652bdc29f26a11a}, + {0xd59944a37c0752a2, 0x4be76d3346f04960}, + {0x857fcae62d8493a5, 0x6f70a4400c562ddc}, + {0xa6dfbd9fb8e5b88e, 0xcb4ccd500f6bb953}, + {0xd097ad07a71f26b2, 0x7e2000a41346a7a8}, + {0x825ecc24c873782f, 0x8ed400668c0c28c9}, + {0xa2f67f2dfa90563b, 0x728900802f0f32fb}, + {0xcbb41ef979346bca, 0x4f2b40a03ad2ffba}, + {0xfea126b7d78186bc, 0xe2f610c84987bfa9}, + {0x9f24b832e6b0f436, 0x0dd9ca7d2df4d7ca}, + {0xc6ede63fa05d3143, 0x91503d1c79720dbc}, + {0xf8a95fcf88747d94, 0x75a44c6397ce912b}, + {0x9b69dbe1b548ce7c, 0xc986afbe3ee11abb}, + {0xc24452da229b021b, 0xfbe85badce996169}, + {0xf2d56790ab41c2a2, 0xfae27299423fb9c4}, + {0x97c560ba6b0919a5, 0xdccd879fc967d41b}, + {0xbdb6b8e905cb600f, 0x5400e987bbc1c921}, + {0xed246723473e3813, 0x290123e9aab23b69}, + {0x9436c0760c86e30b, 0xf9a0b6720aaf6522}, + {0xb94470938fa89bce, 0xf808e40e8d5b3e6a}, + {0xe7958cb87392c2c2, 0xb60b1d1230b20e05}, + {0x90bd77f3483bb9b9, 0xb1c6f22b5e6f48c3}, + {0xb4ecd5f01a4aa828, 0x1e38aeb6360b1af4}, + {0xe2280b6c20dd5232, 0x25c6da63c38de1b1}, + {0x8d590723948a535f, 0x579c487e5a38ad0f}, + {0xb0af48ec79ace837, 0x2d835a9df0c6d852}, + {0xdcdb1b2798182244, 0xf8e431456cf88e66}, + {0x8a08f0f8bf0f156b, 0x1b8e9ecb641b5900}, + {0xac8b2d36eed2dac5, 0xe272467e3d222f40}, + {0xd7adf884aa879177, 0x5b0ed81dcc6abb10}, + {0x86ccbb52ea94baea, 0x98e947129fc2b4ea}, + {0xa87fea27a539e9a5, 0x3f2398d747b36225}, + {0xd29fe4b18e88640e, 0x8eec7f0d19a03aae}, + {0x83a3eeeef9153e89, 0x1953cf68300424ad}, + {0xa48ceaaab75a8e2b, 0x5fa8c3423c052dd8}, + {0xcdb02555653131b6, 0x3792f412cb06794e}, + {0x808e17555f3ebf11, 0xe2bbd88bbee40bd1}, + {0xa0b19d2ab70e6ed6, 0x5b6aceaeae9d0ec5}, + {0xc8de047564d20a8b, 0xf245825a5a445276}, + {0xfb158592be068d2e, 0xeed6e2f0f0d56713}, + {0x9ced737bb6c4183d, 0x55464dd69685606c}, + {0xc428d05aa4751e4c, 0xaa97e14c3c26b887}, + {0xf53304714d9265df, 0xd53dd99f4b3066a9}, + {0x993fe2c6d07b7fab, 0xe546a8038efe402a}, + {0xbf8fdb78849a5f96, 0xde98520472bdd034}, + {0xef73d256a5c0f77c, 0x963e66858f6d4441}, + {0x95a8637627989aad, 0xdde7001379a44aa9}, + {0xbb127c53b17ec159, 0x5560c018580d5d53}, + {0xe9d71b689dde71af, 0xaab8f01e6e10b4a7}, + {0x9226712162ab070d, 0xcab3961304ca70e9}, + {0xb6b00d69bb55c8d1, 0x3d607b97c5fd0d23}, + {0xe45c10c42a2b3b05, 0x8cb89a7db77c506b}, + {0x8eb98a7a9a5b04e3, 0x77f3608e92adb243}, + {0xb267ed1940f1c61c, 0x55f038b237591ed4}, + {0xdf01e85f912e37a3, 0x6b6c46dec52f6689}, + {0x8b61313bbabce2c6, 0x2323ac4b3b3da016}, + {0xae397d8aa96c1b77, 0xabec975e0a0d081b}, + {0xd9c7dced53c72255, 0x96e7bd358c904a22}, + {0x881cea14545c7575, 0x7e50d64177da2e55}, + {0xaa242499697392d2, 0xdde50bd1d5d0b9ea}, + {0xd4ad2dbfc3d07787, 0x955e4ec64b44e865}, + {0x84ec3c97da624ab4, 0xbd5af13bef0b113f}, + {0xa6274bbdd0fadd61, 0xecb1ad8aeacdd58f}, + {0xcfb11ead453994ba, 0x67de18eda5814af3}, + {0x81ceb32c4b43fcf4, 0x80eacf948770ced8}, + {0xa2425ff75e14fc31, 0xa1258379a94d028e}, + {0xcad2f7f5359a3b3e, 0x096ee45813a04331}, + {0xfd87b5f28300ca0d, 0x8bca9d6e188853fd}, + {0x9e74d1b791e07e48, 0x775ea264cf55347e}, + {0xc612062576589dda, 0x95364afe032a819e}, + {0xf79687aed3eec551, 0x3a83ddbd83f52205}, + {0x9abe14cd44753b52, 0xc4926a9672793543}, + {0xc16d9a0095928a27, 0x75b7053c0f178294}, + {0xf1c90080baf72cb1, 0x5324c68b12dd6339}, + {0x971da05074da7bee, 0xd3f6fc16ebca5e04}, + {0xbce5086492111aea, 0x88f4bb1ca6bcf585}, + {0xec1e4a7db69561a5, 0x2b31e9e3d06c32e6}, + {0x9392ee8e921d5d07, 0x3aff322e62439fd0}, + {0xb877aa3236a4b449, 0x09befeb9fad487c3}, + {0xe69594bec44de15b, 0x4c2ebe687989a9b4}, + {0x901d7cf73ab0acd9, 0x0f9d37014bf60a11}, + {0xb424dc35095cd80f, 0x538484c19ef38c95}, + {0xe12e13424bb40e13, 0x2865a5f206b06fba}, + {0x8cbccc096f5088cb, 0xf93f87b7442e45d4}, + {0xafebff0bcb24aafe, 0xf78f69a51539d749}, + {0xdbe6fecebdedd5be, 0xb573440e5a884d1c}, + {0x89705f4136b4a597, 0x31680a88f8953031}, + {0xabcc77118461cefc, 0xfdc20d2b36ba7c3e}, + {0xd6bf94d5e57a42bc, 0x3d32907604691b4d}, + {0x8637bd05af6c69b5, 0xa63f9a49c2c1b110}, + {0xa7c5ac471b478423, 0x0fcf80dc33721d54}, + {0xd1b71758e219652b, 0xd3c36113404ea4a9}, + {0x83126e978d4fdf3b, 0x645a1cac083126ea}, + {0xa3d70a3d70a3d70a, 0x3d70a3d70a3d70a4}, + {0xcccccccccccccccc, 0xcccccccccccccccd}, + {0x8000000000000000, 0x0000000000000000}, + {0xa000000000000000, 0x0000000000000000}, + {0xc800000000000000, 0x0000000000000000}, + {0xfa00000000000000, 0x0000000000000000}, + {0x9c40000000000000, 0x0000000000000000}, + {0xc350000000000000, 0x0000000000000000}, + {0xf424000000000000, 0x0000000000000000}, + {0x9896800000000000, 0x0000000000000000}, + {0xbebc200000000000, 0x0000000000000000}, + {0xee6b280000000000, 0x0000000000000000}, + {0x9502f90000000000, 0x0000000000000000}, + {0xba43b74000000000, 0x0000000000000000}, + {0xe8d4a51000000000, 0x0000000000000000}, + {0x9184e72a00000000, 0x0000000000000000}, + {0xb5e620f480000000, 0x0000000000000000}, + {0xe35fa931a0000000, 0x0000000000000000}, + {0x8e1bc9bf04000000, 0x0000000000000000}, + {0xb1a2bc2ec5000000, 0x0000000000000000}, + {0xde0b6b3a76400000, 0x0000000000000000}, + {0x8ac7230489e80000, 0x0000000000000000}, + {0xad78ebc5ac620000, 0x0000000000000000}, + {0xd8d726b7177a8000, 0x0000000000000000}, + {0x878678326eac9000, 0x0000000000000000}, + {0xa968163f0a57b400, 0x0000000000000000}, + {0xd3c21bcecceda100, 0x0000000000000000}, + {0x84595161401484a0, 0x0000000000000000}, + {0xa56fa5b99019a5c8, 0x0000000000000000}, + {0xcecb8f27f4200f3a, 0x0000000000000000}, + {0x813f3978f8940984, 0x4000000000000000}, + {0xa18f07d736b90be5, 0x5000000000000000}, + {0xc9f2c9cd04674ede, 0xa400000000000000}, + {0xfc6f7c4045812296, 0x4d00000000000000}, + {0x9dc5ada82b70b59d, 0xf020000000000000}, + {0xc5371912364ce305, 0x6c28000000000000}, + {0xf684df56c3e01bc6, 0xc732000000000000}, + {0x9a130b963a6c115c, 0x3c7f400000000000}, + {0xc097ce7bc90715b3, 0x4b9f100000000000}, + {0xf0bdc21abb48db20, 0x1e86d40000000000}, + {0x96769950b50d88f4, 0x1314448000000000}, + {0xbc143fa4e250eb31, 0x17d955a000000000}, + {0xeb194f8e1ae525fd, 0x5dcfab0800000000}, + {0x92efd1b8d0cf37be, 0x5aa1cae500000000}, + {0xb7abc627050305ad, 0xf14a3d9e40000000}, + {0xe596b7b0c643c719, 0x6d9ccd05d0000000}, + {0x8f7e32ce7bea5c6f, 0xe4820023a2000000}, + {0xb35dbf821ae4f38b, 0xdda2802c8a800000}, + {0xe0352f62a19e306e, 0xd50b2037ad200000}, + {0x8c213d9da502de45, 0x4526f422cc340000}, + {0xaf298d050e4395d6, 0x9670b12b7f410000}, + {0xdaf3f04651d47b4c, 0x3c0cdd765f114000}, + {0x88d8762bf324cd0f, 0xa5880a69fb6ac800}, + {0xab0e93b6efee0053, 0x8eea0d047a457a00}, + {0xd5d238a4abe98068, 0x72a4904598d6d880}, + {0x85a36366eb71f041, 0x47a6da2b7f864750}, + {0xa70c3c40a64e6c51, 0x999090b65f67d924}, + {0xd0cf4b50cfe20765, 0xfff4b4e3f741cf6d}, + {0x82818f1281ed449f, 0xbff8f10e7a8921a4}, + {0xa321f2d7226895c7, 0xaff72d52192b6a0d}, + {0xcbea6f8ceb02bb39, 0x9bf4f8a69f764490}, + {0xfee50b7025c36a08, 0x02f236d04753d5b4}, + {0x9f4f2726179a2245, 0x01d762422c946590}, + {0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef5}, + {0xf8ebad2b84e0d58b, 0xd2e0898765a7deb2}, + {0x9b934c3b330c8577, 0x63cc55f49f88eb2f}, + {0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fb}, + {0xf316271c7fc3908a, 0x8bef464e3945ef7a}, + {0x97edd871cfda3a56, 0x97758bf0e3cbb5ac}, + {0xbde94e8e43d0c8ec, 0x3d52eeed1cbea317}, + {0xed63a231d4c4fb27, 0x4ca7aaa863ee4bdd}, + {0x945e455f24fb1cf8, 0x8fe8caa93e74ef6a}, + {0xb975d6b6ee39e436, 0xb3e2fd538e122b44}, + {0xe7d34c64a9c85d44, 0x60dbbca87196b616}, + {0x90e40fbeea1d3a4a, 0xbc8955e946fe31cd}, + {0xb51d13aea4a488dd, 0x6babab6398bdbe41}, + {0xe264589a4dcdab14, 0xc696963c7eed2dd1}, + {0x8d7eb76070a08aec, 0xfc1e1de5cf543ca2}, + {0xb0de65388cc8ada8, 0x3b25a55f43294bcb}, + {0xdd15fe86affad912, 0x49ef0eb713f39ebe}, + {0x8a2dbf142dfcc7ab, 0x6e3569326c784337}, + {0xacb92ed9397bf996, 0x49c2c37f07965404}, + {0xd7e77a8f87daf7fb, 0xdc33745ec97be906}, + {0x86f0ac99b4e8dafd, 0x69a028bb3ded71a3}, + {0xa8acd7c0222311bc, 0xc40832ea0d68ce0c}, + {0xd2d80db02aabd62b, 0xf50a3fa490c30190}, + {0x83c7088e1aab65db, 0x792667c6da79e0fa}, + {0xa4b8cab1a1563f52, 0x577001b891185938}, + {0xcde6fd5e09abcf26, 0xed4c0226b55e6f86}, + {0x80b05e5ac60b6178, 0x544f8158315b05b4}, + {0xa0dc75f1778e39d6, 0x696361ae3db1c721}, + {0xc913936dd571c84c, 0x03bc3a19cd1e38e9}, + {0xfb5878494ace3a5f, 0x04ab48a04065c723}, + {0x9d174b2dcec0e47b, 0x62eb0d64283f9c76}, + {0xc45d1df942711d9a, 0x3ba5d0bd324f8394}, + {0xf5746577930d6500, 0xca8f44ec7ee36479}, + {0x9968bf6abbe85f20, 0x7e998b13cf4e1ecb}, + {0xbfc2ef456ae276e8, 0x9e3fedd8c321a67e}, + {0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101e}, + {0x95d04aee3b80ece5, 0xbba1f1d158724a12}, + {0xbb445da9ca61281f, 0x2a8a6e45ae8edc97}, + {0xea1575143cf97226, 0xf52d09d71a3293bd}, + {0x924d692ca61be758, 0x593c2626705f9c56}, + {0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836c}, + {0xe498f455c38b997a, 0x0b6dfb9c0f956447}, + {0x8edf98b59a373fec, 0x4724bd4189bd5eac}, + {0xb2977ee300c50fe7, 0x58edec91ec2cb657}, + {0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ed}, + {0x8b865b215899f46c, 0xbd79e0d20082ee74}, + {0xae67f1e9aec07187, 0xecd8590680a3aa11}, + {0xda01ee641a708de9, 0xe80e6f4820cc9495}, + {0x884134fe908658b2, 0x3109058d147fdcdd}, + {0xaa51823e34a7eede, 0xbd4b46f0599fd415}, + {0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91a}, + {0x850fadc09923329e, 0x03e2cf6bc604ddb0}, + {0xa6539930bf6bff45, 0x84db8346b786151c}, + {0xcfe87f7cef46ff16, 0xe612641865679a63}, + {0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07e}, + {0xa26da3999aef7749, 0xe3be5e330f38f09d}, + {0xcb090c8001ab551c, 0x5cadf5bfd3072cc5}, + {0xfdcb4fa002162a63, 0x73d9732fc7c8f7f6}, + {0x9e9f11c4014dda7e, 0x2867e7fddcdd9afa}, + {0xc646d63501a1511d, 0xb281e1fd541501b8}, + {0xf7d88bc24209a565, 0x1f225a7ca91a4226}, + {0x9ae757596946075f, 0x3375788de9b06958}, + {0xc1a12d2fc3978937, 0x0052d6b1641c83ae}, + {0xf209787bb47d6b84, 0xc0678c5dbd23a49a}, + {0x9745eb4d50ce6332, 0xf840b7ba963646e0}, + {0xbd176620a501fbff, 0xb650e5a93bc3d898}, + {0xec5d3fa8ce427aff, 0xa3e51f138ab4cebe}, + {0x93ba47c980e98cdf, 0xc66f336c36b10137}, + {0xb8a8d9bbe123f017, 0xb80b0047445d4184}, + {0xe6d3102ad96cec1d, 0xa60dc059157491e5}, + {0x9043ea1ac7e41392, 0x87c89837ad68db2f}, + {0xb454e4a179dd1877, 0x29babe4598c311fb}, + {0xe16a1dc9d8545e94, 0xf4296dd6fef3d67a}, + {0x8ce2529e2734bb1d, 0x1899e4a65f58660c}, + {0xb01ae745b101e9e4, 0x5ec05dcff72e7f8f}, + {0xdc21a1171d42645d, 0x76707543f4fa1f73}, + {0x899504ae72497eba, 0x6a06494a791c53a8}, + {0xabfa45da0edbde69, 0x0487db9d17636892}, + {0xd6f8d7509292d603, 0x45a9d2845d3c42b6}, + {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b2}, + {0xa7f26836f282b732, 0x8e6cac7768d7141e}, + {0xd1ef0244af2364ff, 0x3207d795430cd926}, + {0x8335616aed761f1f, 0x7f44e6bd49e807b8}, + {0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a6}, + {0xcd036837130890a1, 0x36dba887c37a8c0f}, + {0x802221226be55a64, 0xc2494954da2c9789}, + {0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6c}, + {0xc83553c5c8965d3d, 0x6f92829494e5acc7}, + {0xfa42a8b73abbf48c, 0xcb772339ba1f17f9}, + {0x9c69a97284b578d7, 0xff2a760414536efb}, + {0xc38413cf25e2d70d, 0xfef5138519684aba}, + {0xf46518c2ef5b8cd1, 0x7eb258665fc25d69}, + {0x98bf2f79d5993802, 0xef2f773ffbd97a61}, + {0xbeeefb584aff8603, 0xaafb550ffacfd8fa}, + {0xeeaaba2e5dbf6784, 0x95ba2a53f983cf38}, + {0x952ab45cfa97a0b2, 0xdd945a747bf26183}, + {0xba756174393d88df, 0x94f971119aeef9e4}, + {0xe912b9d1478ceb17, 0x7a37cd5601aab85d}, + {0x91abb422ccb812ee, 0xac62e055c10ab33a}, + {0xb616a12b7fe617aa, 0x577b986b314d6009}, + {0xe39c49765fdf9d94, 0xed5a7e85fda0b80b}, + {0x8e41ade9fbebc27d, 0x14588f13be847307}, + {0xb1d219647ae6b31c, 0x596eb2d8ae258fc8}, + {0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bb}, + {0x8aec23d680043bee, 0x25de7bb9480d5854}, + {0xada72ccc20054ae9, 0xaf561aa79a10ae6a}, + {0xd910f7ff28069da4, 0x1b2ba1518094da04}, + {0x87aa9aff79042286, 0x90fb44d2f05d0842}, + {0xa99541bf57452b28, 0x353a1607ac744a53}, + {0xd3fa922f2d1675f2, 0x42889b8997915ce8}, + {0x847c9b5d7c2e09b7, 0x69956135febada11}, + {0xa59bc234db398c25, 0x43fab9837e699095}, + {0xcf02b2c21207ef2e, 0x94f967e45e03f4bb}, + {0x8161afb94b44f57d, 0x1d1be0eebac278f5}, + {0xa1ba1ba79e1632dc, 0x6462d92a69731732}, + {0xca28a291859bbf93, 0x7d7b8f7503cfdcfe}, + {0xfcb2cb35e702af78, 0x5cda735244c3d43e}, + {0x9defbf01b061adab, 0x3a0888136afa64a7}, + {0xc56baec21c7a1916, 0x088aaa1845b8fdd0}, + {0xf6c69a72a3989f5b, 0x8aad549e57273d45}, + {0x9a3c2087a63f6399, 0x36ac54e2f678864b}, + {0xc0cb28a98fcf3c7f, 0x84576a1bb416a7dd}, + {0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d5}, + {0x969eb7c47859e743, 0x9f644ae5a4b1b325}, + {0xbc4665b596706114, 0x873d5d9f0dde1fee}, + {0xeb57ff22fc0c7959, 0xa90cb506d155a7ea}, + {0x9316ff75dd87cbd8, 0x09a7f12442d588f2}, + {0xb7dcbf5354e9bece, 0x0c11ed6d538aeb2f}, + {0xe5d3ef282a242e81, 0x8f1668c8a86da5fa}, + {0x8fa475791a569d10, 0xf96e017d694487bc}, + {0xb38d92d760ec4455, 0x37c981dcc395a9ac}, + {0xe070f78d3927556a, 0x85bbe253f47b1417}, + {0x8c469ab843b89562, 0x93956d7478ccec8e}, + {0xaf58416654a6babb, 0x387ac8d1970027b2}, + {0xdb2e51bfe9d0696a, 0x06997b05fcc0319e}, + {0x88fcf317f22241e2, 0x441fece3bdf81f03}, + {0xab3c2fddeeaad25a, 0xd527e81cad7626c3}, + {0xd60b3bd56a5586f1, 0x8a71e223d8d3b074}, + {0x85c7056562757456, 0xf6872d5667844e49}, + {0xa738c6bebb12d16c, 0xb428f8ac016561db}, + {0xd106f86e69d785c7, 0xe13336d701beba52}, + {0x82a45b450226b39c, 0xecc0024661173473}, + {0xa34d721642b06084, 0x27f002d7f95d0190}, + {0xcc20ce9bd35c78a5, 0x31ec038df7b441f4}, + {0xff290242c83396ce, 0x7e67047175a15271}, + {0x9f79a169bd203e41, 0x0f0062c6e984d386}, + {0xc75809c42c684dd1, 0x52c07b78a3e60868}, + {0xf92e0c3537826145, 0xa7709a56ccdf8a82}, + {0x9bbcc7a142b17ccb, 0x88a66076400bb691}, + {0xc2abf989935ddbfe, 0x6acff893d00ea435}, + {0xf356f7ebf83552fe, 0x0583f6b8c4124d43}, + {0x98165af37b2153de, 0xc3727a337a8b704a}, + {0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5c}, + {0xeda2ee1c7064130c, 0x1162def06f79df73}, + {0x9485d4d1c63e8be7, 0x8addcb5645ac2ba8}, + {0xb9a74a0637ce2ee1, 0x6d953e2bd7173692}, + {0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0437}, + {0x910ab1d4db9914a0, 0x1d9c9892400a22a2}, + {0xb54d5e4a127f59c8, 0x2503beb6d00cab4b}, + {0xe2a0b5dc971f303a, 0x2e44ae64840fd61d}, + {0x8da471a9de737e24, 0x5ceaecfed289e5d2}, + {0xb10d8e1456105dad, 0x7425a83e872c5f47}, + {0xdd50f1996b947518, 0xd12f124e28f77719}, + {0x8a5296ffe33cc92f, 0x82bd6b70d99aaa6f}, + {0xace73cbfdc0bfb7b, 0x636cc64d1001550b}, + {0xd8210befd30efa5a, 0x3c47f7e05401aa4e}, + {0x8714a775e3e95c78, 0x65acfaec34810a71}, + {0xa8d9d1535ce3b396, 0x7f1839a741a14d0d}, + {0xd31045a8341ca07c, 0x1ede48111209a050}, + {0x83ea2b892091e44d, 0x934aed0aab460432}, + {0xa4e4b66b68b65d60, 0xf81da84d5617853f}, + {0xce1de40642e3f4b9, 0x36251260ab9d668e}, + {0x80d2ae83e9ce78f3, 0xc1d72b7c6b426019}, + {0xa1075a24e4421730, 0xb24cf65b8612f81f}, + {0xc94930ae1d529cfc, 0xdee033f26797b627}, + {0xfb9b7cd9a4a7443c, 0x169840ef017da3b1}, + {0x9d412e0806e88aa5, 0x8e1f289560ee864e}, + {0xc491798a08a2ad4e, 0xf1a6f2bab92a27e2}, + {0xf5b5d7ec8acb58a2, 0xae10af696774b1db}, + {0x9991a6f3d6bf1765, 0xacca6da1e0a8ef29}, + {0xbff610b0cc6edd3f, 0x17fd090a58d32af3}, + {0xeff394dcff8a948e, 0xddfc4b4cef07f5b0}, + {0x95f83d0a1fb69cd9, 0x4abdaf101564f98e}, + {0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f1}, + {0xea53df5fd18d5513, 0x84c86189216dc5ed}, + {0x92746b9be2f8552c, 0x32fd3cf5b4e49bb4}, + {0xb7118682dbb66a77, 0x3fbc8c33221dc2a1}, + {0xe4d5e82392a40515, 0x0fabaf3feaa5334a}, + {0x8f05b1163ba6832d, 0x29cb4d87f2a7400e}, + {0xb2c71d5bca9023f8, 0x743e20e9ef511012}, + {0xdf78e4b2bd342cf6, 0x914da9246b255416}, + {0x8bab8eefb6409c1a, 0x1ad089b6c2f7548e}, + {0xae9672aba3d0c320, 0xa184ac2473b529b1}, + {0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741e}, + {0x8865899617fb1871, 0x7e2fa67c7a658892}, + {0xaa7eebfb9df9de8d, 0xddbb901b98feeab7}, + {0xd51ea6fa85785631, 0x552a74227f3ea565}, + {0x8533285c936b35de, 0xd53a88958f87275f}, + {0xa67ff273b8460356, 0x8a892abaf368f137}, + {0xd01fef10a657842c, 0x2d2b7569b0432d85}, + {0x8213f56a67f6b29b, 0x9c3b29620e29fc73}, + {0xa298f2c501f45f42, 0x8349f3ba91b47b8f}, + {0xcb3f2f7642717713, 0x241c70a936219a73}, + {0xfe0efb53d30dd4d7, 0xed238cd383aa0110}, + {0x9ec95d1463e8a506, 0xf4363804324a40aa}, + {0xc67bb4597ce2ce48, 0xb143c6053edcd0d5}, + {0xf81aa16fdc1b81da, 0xdd94b7868e94050a}, + {0x9b10a4e5e9913128, 0xca7cf2b4191c8326}, + {0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f0}, + {0xf24a01a73cf2dccf, 0xbc633b39673c8cec}, + {0x976e41088617ca01, 0xd5be0503e085d813}, + {0xbd49d14aa79dbc82, 0x4b2d8644d8a74e18}, + {0xec9c459d51852ba2, 0xddf8e7d60ed1219e}, + {0x93e1ab8252f33b45, 0xcabb90e5c942b503}, + {0xb8da1662e7b00a17, 0x3d6a751f3b936243}, + {0xe7109bfba19c0c9d, 0x0cc512670a783ad4}, + {0x906a617d450187e2, 0x27fb2b80668b24c5}, + {0xb484f9dc9641e9da, 0xb1f9f660802dedf6}, + {0xe1a63853bbd26451, 0x5e7873f8a0396973}, + {0x8d07e33455637eb2, 0xdb0b487b6423e1e8}, + {0xb049dc016abc5e5f, 0x91ce1a9a3d2cda62}, + {0xdc5c5301c56b75f7, 0x7641a140cc7810fb}, + {0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9d}, + {0xac2820d9623bf429, 0x546345fa9fbdcd44}, + {0xd732290fbacaf133, 0xa97c177947ad4095}, + {0x867f59a9d4bed6c0, 0x49ed8eabcccc485d}, + {0xa81f301449ee8c70, 0x5c68f256bfff5a74}, + {0xd226fc195c6a2f8c, 0x73832eec6fff3111}, + {0x83585d8fd9c25db7, 0xc831fd53c5ff7eab}, + {0xa42e74f3d032f525, 0xba3e7ca8b77f5e55}, + {0xcd3a1230c43fb26f, 0x28ce1bd2e55f35eb}, + {0x80444b5e7aa7cf85, 0x7980d163cf5b81b3}, + {0xa0555e361951c366, 0xd7e105bcc332621f}, + {0xc86ab5c39fa63440, 0x8dd9472bf3fefaa7}, + {0xfa856334878fc150, 0xb14f98f6f0feb951}, + {0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d3}, + {0xc3b8358109e84f07, 0x0a862f80ec4700c8}, + {0xf4a642e14c6262c8, 0xcd27bb612758c0fa}, + {0x98e7e9cccfbd7dbd, 0x8038d51cb897789c}, + {0xbf21e44003acdd2c, 0xe0470a63e6bd56c3}, + {0xeeea5d5004981478, 0x1858ccfce06cac74}, + {0x95527a5202df0ccb, 0x0f37801e0c43ebc8}, + {0xbaa718e68396cffd, 0xd30560258f54e6ba}, + {0xe950df20247c83fd, 0x47c6b82ef32a2069}, + {0x91d28b7416cdd27e, 0x4cdc331d57fa5441}, + {0xb6472e511c81471d, 0xe0133fe4adf8e952}, + {0xe3d8f9e563a198e5, 0x58180fddd97723a6}, + {0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648}, + {0xb201833b35d63f73, 0x2cd2cc6551e513da}, + {0xde81e40a034bcf4f, 0xf8077f7ea65e58d1}, + {0x8b112e86420f6191, 0xfb04afaf27faf782}, + {0xadd57a27d29339f6, 0x79c5db9af1f9b563}, + {0xd94ad8b1c7380874, 0x18375281ae7822bc}, + {0x87cec76f1c830548, 0x8f2293910d0b15b5}, + {0xa9c2794ae3a3c69a, 0xb2eb3875504ddb22}, + {0xd433179d9c8cb841, 0x5fa60692a46151eb}, + {0x849feec281d7f328, 0xdbc7c41ba6bcd333}, + {0xa5c7ea73224deff3, 0x12b9b522906c0800}, + {0xcf39e50feae16bef, 0xd768226b34870a00}, + {0x81842f29f2cce375, 0xe6a1158300d46640}, + {0xa1e53af46f801c53, 0x60495ae3c1097fd0}, + {0xca5e89b18b602368, 0x385bb19cb14bdfc4}, + {0xfcf62c1dee382c42, 0x46729e03dd9ed7b5}, + {0x9e19db92b4e31ba9, 0x6c07a2c26a8346d1}, + {0xc5a05277621be293, 0xc7098b7305241885}, + {0xf70867153aa2db38, 0xb8cbee4fc66d1ea7} +#else + {0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7b}, + {0xce5d73ff402d98e3, 0xfb0a3d212dc81290}, + {0xa6b34ad8c9dfc06f, 0xf42faa48c0ea481f}, + {0x86a8d39ef77164bc, 0xae5dff9c02033198}, + {0xd98ddaee19068c76, 0x3badd624dd9b0958}, + {0xafbd2350644eeacf, 0xe5d1929ef90898fb}, + {0x8df5efabc5979c8f, 0xca8d3ffa1ef463c2}, + {0xe55990879ddcaabd, 0xcc420a6a101d0516}, + {0xb94470938fa89bce, 0xf808e40e8d5b3e6a}, + {0x95a8637627989aad, 0xdde7001379a44aa9}, + {0xf1c90080baf72cb1, 0x5324c68b12dd6339}, + {0xc350000000000000, 0x0000000000000000}, + {0x9dc5ada82b70b59d, 0xf020000000000000}, + {0xfee50b7025c36a08, 0x02f236d04753d5b4}, + {0xcde6fd5e09abcf26, 0xed4c0226b55e6f86}, + {0xa6539930bf6bff45, 0x84db8346b786151c}, + {0x865b86925b9bc5c2, 0x0b8a2392ba45a9b2}, + {0xd910f7ff28069da4, 0x1b2ba1518094da04}, + {0xaf58416654a6babb, 0x387ac8d1970027b2}, + {0x8da471a9de737e24, 0x5ceaecfed289e5d2}, + {0xe4d5e82392a40515, 0x0fabaf3feaa5334a}, + {0xb8da1662e7b00a17, 0x3d6a751f3b936243}, + {0x95527a5202df0ccb, 0x0f37801e0c43ebc8} +#endif +}; + +#if !FMT_USE_FULL_CACHE_DRAGONBOX +template +const uint64_t basic_data::powers_of_5_64[] = { + 0x0000000000000001, 0x0000000000000005, 0x0000000000000019, + 0x000000000000007d, 0x0000000000000271, 0x0000000000000c35, + 0x0000000000003d09, 0x000000000001312d, 0x000000000005f5e1, + 0x00000000001dcd65, 0x00000000009502f9, 0x0000000002e90edd, + 0x000000000e8d4a51, 0x0000000048c27395, 0x000000016bcc41e9, + 0x000000071afd498d, 0x0000002386f26fc1, 0x000000b1a2bc2ec5, + 0x000003782dace9d9, 0x00001158e460913d, 0x000056bc75e2d631, + 0x0001b1ae4d6e2ef5, 0x000878678326eac9, 0x002a5a058fc295ed, + 0x00d3c21bcecceda1, 0x0422ca8b0a00a425, 0x14adf4b7320334b9}; + +template +const uint32_t basic_data::dragonbox_pow10_recovery_errors[] = { + 0x50001400, 0x54044100, 0x54014555, 0x55954415, 0x54115555, 0x00000001, + 0x50000000, 0x00104000, 0x54010004, 0x05004001, 0x55555544, 0x41545555, + 0x54040551, 0x15445545, 0x51555514, 0x10000015, 0x00101100, 0x01100015, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04450514, 0x45414110, + 0x55555145, 0x50544050, 0x15040155, 0x11054140, 0x50111514, 0x11451454, + 0x00400541, 0x00000000, 0x55555450, 0x10056551, 0x10054011, 0x55551014, + 0x69514555, 0x05151109, 0x00155555}; +#endif + +template +const char basic_data::foreground_color[] = "\x1b[38;2;"; +template +const char basic_data::background_color[] = "\x1b[48;2;"; +template const char basic_data::reset_color[] = "\x1b[0m"; +template const wchar_t basic_data::wreset_color[] = L"\x1b[0m"; +template const char basic_data::signs[] = {0, '-', '+', ' '}; +template +const char basic_data::left_padding_shifts[] = {31, 31, 0, 1, 0}; +template +const char basic_data::right_padding_shifts[] = {0, 31, 0, 1, 0}; + +template struct bits { + static FMT_CONSTEXPR_DECL const int value = + static_cast(sizeof(T) * std::numeric_limits::digits); +}; + +class fp; +template fp normalize(fp value); + +// Lower (upper) boundary is a value half way between a floating-point value +// and its predecessor (successor). Boundaries have the same exponent as the +// value so only significands are stored. +struct boundaries { + uint64_t lower; + uint64_t upper; +}; + +// A handmade floating-point number f * pow(2, e). +class fp { + private: + using significand_type = uint64_t; + + template + using is_supported_float = bool_constant; + + public: + significand_type f; + int e; + + // All sizes are in bits. + // Subtract 1 to account for an implicit most significant bit in the + // normalized form. + static FMT_CONSTEXPR_DECL const int double_significand_size = + std::numeric_limits::digits - 1; + static FMT_CONSTEXPR_DECL const uint64_t implicit_bit = + 1ULL << double_significand_size; + static FMT_CONSTEXPR_DECL const int significand_size = + bits::value; + + fp() : f(0), e(0) {} + fp(uint64_t f_val, int e_val) : f(f_val), e(e_val) {} + + // Constructs fp from an IEEE754 double. It is a template to prevent compile + // errors on platforms where double is not IEEE754. + template explicit fp(Double d) { assign(d); } + + // Assigns d to this and return true iff predecessor is closer than successor. + template ::value)> + bool assign(Float d) { + // Assume float is in the format [sign][exponent][significand]. + using limits = std::numeric_limits; + const int float_significand_size = limits::digits - 1; + const int exponent_size = + bits::value - float_significand_size - 1; // -1 for sign + const uint64_t float_implicit_bit = 1ULL << float_significand_size; + const uint64_t significand_mask = float_implicit_bit - 1; + const uint64_t exponent_mask = (~0ULL >> 1) & ~significand_mask; + const int exponent_bias = (1 << exponent_size) - limits::max_exponent - 1; + constexpr bool is_double = sizeof(Float) == sizeof(uint64_t); + auto u = bit_cast>(d); + f = u & significand_mask; + int biased_e = + static_cast((u & exponent_mask) >> float_significand_size); + // Predecessor is closer if d is a normalized power of 2 (f == 0) other than + // the smallest normalized number (biased_e > 1). + bool is_predecessor_closer = f == 0 && biased_e > 1; + if (biased_e != 0) + f += float_implicit_bit; + else + biased_e = 1; // Subnormals use biased exponent 1 (min exponent). + e = biased_e - exponent_bias - float_significand_size; + return is_predecessor_closer; + } + + template ::value)> + bool assign(Float) { + *this = fp(); + return false; + } +}; + +// Normalizes the value converted from double and multiplied by (1 << SHIFT). +template fp normalize(fp value) { + // Handle subnormals. + const auto shifted_implicit_bit = fp::implicit_bit << SHIFT; + while ((value.f & shifted_implicit_bit) == 0) { + value.f <<= 1; + --value.e; + } + // Subtract 1 to account for hidden bit. + const auto offset = + fp::significand_size - fp::double_significand_size - SHIFT - 1; + value.f <<= offset; + value.e -= offset; + return value; +} + +inline bool operator==(fp x, fp y) { return x.f == y.f && x.e == y.e; } + +// Computes lhs * rhs / pow(2, 64) rounded to nearest with half-up tie breaking. +inline uint64_t multiply(uint64_t lhs, uint64_t rhs) { +#if FMT_USE_INT128 + auto product = static_cast<__uint128_t>(lhs) * rhs; + auto f = static_cast(product >> 64); + return (static_cast(product) & (1ULL << 63)) != 0 ? f + 1 : f; +#else + // Multiply 32-bit parts of significands. + uint64_t mask = (1ULL << 32) - 1; + uint64_t a = lhs >> 32, b = lhs & mask; + uint64_t c = rhs >> 32, d = rhs & mask; + uint64_t ac = a * c, bc = b * c, ad = a * d, bd = b * d; + // Compute mid 64-bit of result and round. + uint64_t mid = (bd >> 32) + (ad & mask) + (bc & mask) + (1U << 31); + return ac + (ad >> 32) + (bc >> 32) + (mid >> 32); +#endif +} + +inline fp operator*(fp x, fp y) { return {multiply(x.f, y.f), x.e + y.e + 64}; } + +// Returns a cached power of 10 `c_k = c_k.f * pow(2, c_k.e)` such that its +// (binary) exponent satisfies `min_exponent <= c_k.e <= min_exponent + 28`. +inline fp get_cached_power(int min_exponent, int& pow10_exponent) { + const int shift = 32; + const auto significand = static_cast(data::log10_2_significand); + int index = static_cast( + ((min_exponent + fp::significand_size - 1) * (significand >> shift) + + ((int64_t(1) << shift) - 1)) // ceil + >> 32 // arithmetic shift + ); + // Decimal exponent of the first (smallest) cached power of 10. + const int first_dec_exp = -348; + // Difference between 2 consecutive decimal exponents in cached powers of 10. + const int dec_exp_step = 8; + index = (index - first_dec_exp - 1) / dec_exp_step + 1; + pow10_exponent = first_dec_exp + index * dec_exp_step; + return {data::grisu_pow10_significands[index], + data::grisu_pow10_exponents[index]}; +} + +// A simple accumulator to hold the sums of terms in bigint::square if uint128_t +// is not available. +struct accumulator { + uint64_t lower; + uint64_t upper; + + accumulator() : lower(0), upper(0) {} + explicit operator uint32_t() const { return static_cast(lower); } + + void operator+=(uint64_t n) { + lower += n; + if (lower < n) ++upper; + } + void operator>>=(int shift) { + assert(shift == 32); + (void)shift; + lower = (upper << 32) | (lower >> 32); + upper >>= 32; + } +}; + +class bigint { + private: + // A bigint is stored as an array of bigits (big digits), with bigit at index + // 0 being the least significant one. + using bigit = uint32_t; + using double_bigit = uint64_t; + enum { bigits_capacity = 32 }; + basic_memory_buffer bigits_; + int exp_; + + bigit operator[](int index) const { return bigits_[to_unsigned(index)]; } + bigit& operator[](int index) { return bigits_[to_unsigned(index)]; } + + static FMT_CONSTEXPR_DECL const int bigit_bits = bits::value; + + friend struct formatter; + + void subtract_bigits(int index, bigit other, bigit& borrow) { + auto result = static_cast((*this)[index]) - other - borrow; + (*this)[index] = static_cast(result); + borrow = static_cast(result >> (bigit_bits * 2 - 1)); + } + + void remove_leading_zeros() { + int num_bigits = static_cast(bigits_.size()) - 1; + while (num_bigits > 0 && (*this)[num_bigits] == 0) --num_bigits; + bigits_.resize(to_unsigned(num_bigits + 1)); + } + + // Computes *this -= other assuming aligned bigints and *this >= other. + void subtract_aligned(const bigint& other) { + FMT_ASSERT(other.exp_ >= exp_, "unaligned bigints"); + FMT_ASSERT(compare(*this, other) >= 0, ""); + bigit borrow = 0; + int i = other.exp_ - exp_; + for (size_t j = 0, n = other.bigits_.size(); j != n; ++i, ++j) + subtract_bigits(i, other.bigits_[j], borrow); + while (borrow > 0) subtract_bigits(i, 0, borrow); + remove_leading_zeros(); + } + + void multiply(uint32_t value) { + const double_bigit wide_value = value; + bigit carry = 0; + for (size_t i = 0, n = bigits_.size(); i < n; ++i) { + double_bigit result = bigits_[i] * wide_value + carry; + bigits_[i] = static_cast(result); + carry = static_cast(result >> bigit_bits); + } + if (carry != 0) bigits_.push_back(carry); + } + + void multiply(uint64_t value) { + const bigit mask = ~bigit(0); + const double_bigit lower = value & mask; + const double_bigit upper = value >> bigit_bits; + double_bigit carry = 0; + for (size_t i = 0, n = bigits_.size(); i < n; ++i) { + double_bigit result = bigits_[i] * lower + (carry & mask); + carry = + bigits_[i] * upper + (result >> bigit_bits) + (carry >> bigit_bits); + bigits_[i] = static_cast(result); + } + while (carry != 0) { + bigits_.push_back(carry & mask); + carry >>= bigit_bits; + } + } + + public: + bigint() : exp_(0) {} + explicit bigint(uint64_t n) { assign(n); } + ~bigint() { assert(bigits_.capacity() <= bigits_capacity); } + + bigint(const bigint&) = delete; + void operator=(const bigint&) = delete; + + void assign(const bigint& other) { + auto size = other.bigits_.size(); + bigits_.resize(size); + auto data = other.bigits_.data(); + std::copy(data, data + size, make_checked(bigits_.data(), size)); + exp_ = other.exp_; + } + + void assign(uint64_t n) { + size_t num_bigits = 0; + do { + bigits_[num_bigits++] = n & ~bigit(0); + n >>= bigit_bits; + } while (n != 0); + bigits_.resize(num_bigits); + exp_ = 0; + } + + int num_bigits() const { return static_cast(bigits_.size()) + exp_; } + + FMT_NOINLINE bigint& operator<<=(int shift) { + assert(shift >= 0); + exp_ += shift / bigit_bits; + shift %= bigit_bits; + if (shift == 0) return *this; + bigit carry = 0; + for (size_t i = 0, n = bigits_.size(); i < n; ++i) { + bigit c = bigits_[i] >> (bigit_bits - shift); + bigits_[i] = (bigits_[i] << shift) + carry; + carry = c; + } + if (carry != 0) bigits_.push_back(carry); + return *this; + } + + template bigint& operator*=(Int value) { + FMT_ASSERT(value > 0, ""); + multiply(uint32_or_64_or_128_t(value)); + return *this; + } + + friend int compare(const bigint& lhs, const bigint& rhs) { + int num_lhs_bigits = lhs.num_bigits(), num_rhs_bigits = rhs.num_bigits(); + if (num_lhs_bigits != num_rhs_bigits) + return num_lhs_bigits > num_rhs_bigits ? 1 : -1; + int i = static_cast(lhs.bigits_.size()) - 1; + int j = static_cast(rhs.bigits_.size()) - 1; + int end = i - j; + if (end < 0) end = 0; + for (; i >= end; --i, --j) { + bigit lhs_bigit = lhs[i], rhs_bigit = rhs[j]; + if (lhs_bigit != rhs_bigit) return lhs_bigit > rhs_bigit ? 1 : -1; + } + if (i != j) return i > j ? 1 : -1; + return 0; + } + + // Returns compare(lhs1 + lhs2, rhs). + friend int add_compare(const bigint& lhs1, const bigint& lhs2, + const bigint& rhs) { + int max_lhs_bigits = (std::max)(lhs1.num_bigits(), lhs2.num_bigits()); + int num_rhs_bigits = rhs.num_bigits(); + if (max_lhs_bigits + 1 < num_rhs_bigits) return -1; + if (max_lhs_bigits > num_rhs_bigits) return 1; + auto get_bigit = [](const bigint& n, int i) -> bigit { + return i >= n.exp_ && i < n.num_bigits() ? n[i - n.exp_] : 0; + }; + double_bigit borrow = 0; + int min_exp = (std::min)((std::min)(lhs1.exp_, lhs2.exp_), rhs.exp_); + for (int i = num_rhs_bigits - 1; i >= min_exp; --i) { + double_bigit sum = + static_cast(get_bigit(lhs1, i)) + get_bigit(lhs2, i); + bigit rhs_bigit = get_bigit(rhs, i); + if (sum > rhs_bigit + borrow) return 1; + borrow = rhs_bigit + borrow - sum; + if (borrow > 1) return -1; + borrow <<= bigit_bits; + } + return borrow != 0 ? -1 : 0; + } + + // Assigns pow(10, exp) to this bigint. + void assign_pow10(int exp) { + assert(exp >= 0); + if (exp == 0) return assign(1); + // Find the top bit. + int bitmask = 1; + while (exp >= bitmask) bitmask <<= 1; + bitmask >>= 1; + // pow(10, exp) = pow(5, exp) * pow(2, exp). First compute pow(5, exp) by + // repeated squaring and multiplication. + assign(5); + bitmask >>= 1; + while (bitmask != 0) { + square(); + if ((exp & bitmask) != 0) *this *= 5; + bitmask >>= 1; + } + *this <<= exp; // Multiply by pow(2, exp) by shifting. + } + + void square() { + basic_memory_buffer n(std::move(bigits_)); + int num_bigits = static_cast(bigits_.size()); + int num_result_bigits = 2 * num_bigits; + bigits_.resize(to_unsigned(num_result_bigits)); + using accumulator_t = conditional_t; + auto sum = accumulator_t(); + for (int bigit_index = 0; bigit_index < num_bigits; ++bigit_index) { + // Compute bigit at position bigit_index of the result by adding + // cross-product terms n[i] * n[j] such that i + j == bigit_index. + for (int i = 0, j = bigit_index; j >= 0; ++i, --j) { + // Most terms are multiplied twice which can be optimized in the future. + sum += static_cast(n[i]) * n[j]; + } + (*this)[bigit_index] = static_cast(sum); + sum >>= bits::value; // Compute the carry. + } + // Do the same for the top half. + for (int bigit_index = num_bigits; bigit_index < num_result_bigits; + ++bigit_index) { + for (int j = num_bigits - 1, i = bigit_index - j; i < num_bigits;) + sum += static_cast(n[i++]) * n[j--]; + (*this)[bigit_index] = static_cast(sum); + sum >>= bits::value; + } + --num_result_bigits; + remove_leading_zeros(); + exp_ *= 2; + } + + // If this bigint has a bigger exponent than other, adds trailing zero to make + // exponents equal. This simplifies some operations such as subtraction. + void align(const bigint& other) { + int exp_difference = exp_ - other.exp_; + if (exp_difference <= 0) return; + int num_bigits = static_cast(bigits_.size()); + bigits_.resize(to_unsigned(num_bigits + exp_difference)); + for (int i = num_bigits - 1, j = i + exp_difference; i >= 0; --i, --j) + bigits_[j] = bigits_[i]; + std::uninitialized_fill_n(bigits_.data(), exp_difference, 0); + exp_ -= exp_difference; + } + + // Divides this bignum by divisor, assigning the remainder to this and + // returning the quotient. + int divmod_assign(const bigint& divisor) { + FMT_ASSERT(this != &divisor, ""); + if (compare(*this, divisor) < 0) return 0; + FMT_ASSERT(divisor.bigits_[divisor.bigits_.size() - 1u] != 0, ""); + align(divisor); + int quotient = 0; + do { + subtract_aligned(divisor); + ++quotient; + } while (compare(*this, divisor) >= 0); + return quotient; + } +}; + +enum class round_direction { unknown, up, down }; + +// Given the divisor (normally a power of 10), the remainder = v % divisor for +// some number v and the error, returns whether v should be rounded up, down, or +// whether the rounding direction can't be determined due to error. +// error should be less than divisor / 2. +inline round_direction get_round_direction(uint64_t divisor, uint64_t remainder, + uint64_t error) { + FMT_ASSERT(remainder < divisor, ""); // divisor - remainder won't overflow. + FMT_ASSERT(error < divisor, ""); // divisor - error won't overflow. + FMT_ASSERT(error < divisor - error, ""); // error * 2 won't overflow. + // Round down if (remainder + error) * 2 <= divisor. + if (remainder <= divisor - remainder && error * 2 <= divisor - remainder * 2) + return round_direction::down; + // Round up if (remainder - error) * 2 >= divisor. + if (remainder >= error && + remainder - error >= divisor - (remainder - error)) { + return round_direction::up; + } + return round_direction::unknown; +} + +namespace digits { +enum result { + more, // Generate more digits. + done, // Done generating digits. + error // Digit generation cancelled due to an error. +}; +} + +// Generates output using the Grisu digit-gen algorithm. +// error: the size of the region (lower, upper) outside of which numbers +// definitely do not round to value (Delta in Grisu3). +template +FMT_ALWAYS_INLINE digits::result grisu_gen_digits(fp value, uint64_t error, + int& exp, Handler& handler) { + const fp one(1ULL << -value.e, value.e); + // The integral part of scaled value (p1 in Grisu) = value / one. It cannot be + // zero because it contains a product of two 64-bit numbers with MSB set (due + // to normalization) - 1, shifted right by at most 60 bits. + auto integral = static_cast(value.f >> -one.e); + FMT_ASSERT(integral != 0, ""); + FMT_ASSERT(integral == value.f >> -one.e, ""); + // The fractional part of scaled value (p2 in Grisu) c = value % one. + uint64_t fractional = value.f & (one.f - 1); + exp = count_digits(integral); // kappa in Grisu. + // Divide by 10 to prevent overflow. + auto result = handler.on_start(data::powers_of_10_64[exp - 1] << -one.e, + value.f / 10, error * 10, exp); + if (result != digits::more) return result; + // Generate digits for the integral part. This can produce up to 10 digits. + do { + uint32_t digit = 0; + auto divmod_integral = [&](uint32_t divisor) { + digit = integral / divisor; + integral %= divisor; + }; + // This optimization by Milo Yip reduces the number of integer divisions by + // one per iteration. + switch (exp) { + case 10: + divmod_integral(1000000000); + break; + case 9: + divmod_integral(100000000); + break; + case 8: + divmod_integral(10000000); + break; + case 7: + divmod_integral(1000000); + break; + case 6: + divmod_integral(100000); + break; + case 5: + divmod_integral(10000); + break; + case 4: + divmod_integral(1000); + break; + case 3: + divmod_integral(100); + break; + case 2: + divmod_integral(10); + break; + case 1: + digit = integral; + integral = 0; + break; + default: + FMT_ASSERT(false, "invalid number of digits"); + } + --exp; + auto remainder = (static_cast(integral) << -one.e) + fractional; + result = handler.on_digit(static_cast('0' + digit), + data::powers_of_10_64[exp] << -one.e, remainder, + error, exp, true); + if (result != digits::more) return result; + } while (exp > 0); + // Generate digits for the fractional part. + for (;;) { + fractional *= 10; + error *= 10; + char digit = static_cast('0' + (fractional >> -one.e)); + fractional &= one.f - 1; + --exp; + result = handler.on_digit(digit, one.f, fractional, error, exp, false); + if (result != digits::more) return result; + } +} + +// The fixed precision digit handler. +struct fixed_handler { + char* buf; + int size; + int precision; + int exp10; + bool fixed; + + digits::result on_start(uint64_t divisor, uint64_t remainder, uint64_t error, + int& exp) { + // Non-fixed formats require at least one digit and no precision adjustment. + if (!fixed) return digits::more; + // Adjust fixed precision by exponent because it is relative to decimal + // point. + precision += exp + exp10; + // Check if precision is satisfied just by leading zeros, e.g. + // format("{:.2f}", 0.001) gives "0.00" without generating any digits. + if (precision > 0) return digits::more; + if (precision < 0) return digits::done; + auto dir = get_round_direction(divisor, remainder, error); + if (dir == round_direction::unknown) return digits::error; + buf[size++] = dir == round_direction::up ? '1' : '0'; + return digits::done; + } + + digits::result on_digit(char digit, uint64_t divisor, uint64_t remainder, + uint64_t error, int, bool integral) { + FMT_ASSERT(remainder < divisor, ""); + buf[size++] = digit; + if (!integral && error >= remainder) return digits::error; + if (size < precision) return digits::more; + if (!integral) { + // Check if error * 2 < divisor with overflow prevention. + // The check is not needed for the integral part because error = 1 + // and divisor > (1 << 32) there. + if (error >= divisor || error >= divisor - error) return digits::error; + } else { + FMT_ASSERT(error == 1 && divisor > 2, ""); + } + auto dir = get_round_direction(divisor, remainder, error); + if (dir != round_direction::up) + return dir == round_direction::down ? digits::done : digits::error; + ++buf[size - 1]; + for (int i = size - 1; i > 0 && buf[i] > '9'; --i) { + buf[i] = '0'; + ++buf[i - 1]; + } + if (buf[0] > '9') { + buf[0] = '1'; + if (fixed) + buf[size++] = '0'; + else + ++exp10; + } + return digits::done; + } +}; + +// Implementation of Dragonbox algorithm: https://github.com/jk-jeon/dragonbox. +namespace dragonbox { +// Computes 128-bit result of multiplication of two 64-bit unsigned integers. +FMT_SAFEBUFFERS inline uint128_wrapper umul128(uint64_t x, + uint64_t y) FMT_NOEXCEPT { +#if FMT_USE_INT128 + return static_cast(x) * static_cast(y); +#elif defined(_MSC_VER) && defined(_M_X64) + uint128_wrapper result; + result.low_ = _umul128(x, y, &result.high_); + return result; +#else + const uint64_t mask = (uint64_t(1) << 32) - uint64_t(1); + + uint64_t a = x >> 32; + uint64_t b = x & mask; + uint64_t c = y >> 32; + uint64_t d = y & mask; + + uint64_t ac = a * c; + uint64_t bc = b * c; + uint64_t ad = a * d; + uint64_t bd = b * d; + + uint64_t intermediate = (bd >> 32) + (ad & mask) + (bc & mask); + + return {ac + (intermediate >> 32) + (ad >> 32) + (bc >> 32), + (intermediate << 32) + (bd & mask)}; +#endif +} + +// Computes upper 64 bits of multiplication of two 64-bit unsigned integers. +FMT_SAFEBUFFERS inline uint64_t umul128_upper64(uint64_t x, + uint64_t y) FMT_NOEXCEPT { +#if FMT_USE_INT128 + auto p = static_cast(x) * static_cast(y); + return static_cast(p >> 64); +#elif defined(_MSC_VER) && defined(_M_X64) + return __umulh(x, y); +#else + return umul128(x, y).high(); +#endif +} + +// Computes upper 64 bits of multiplication of a 64-bit unsigned integer and a +// 128-bit unsigned integer. +FMT_SAFEBUFFERS inline uint64_t umul192_upper64(uint64_t x, uint128_wrapper y) + FMT_NOEXCEPT { + uint128_wrapper g0 = umul128(x, y.high()); + g0 += umul128_upper64(x, y.low()); + return g0.high(); +} + +// Computes upper 32 bits of multiplication of a 32-bit unsigned integer and a +// 64-bit unsigned integer. +inline uint32_t umul96_upper32(uint32_t x, uint64_t y) FMT_NOEXCEPT { + return static_cast(umul128_upper64(x, y)); +} + +// Computes middle 64 bits of multiplication of a 64-bit unsigned integer and a +// 128-bit unsigned integer. +FMT_SAFEBUFFERS inline uint64_t umul192_middle64(uint64_t x, uint128_wrapper y) + FMT_NOEXCEPT { + uint64_t g01 = x * y.high(); + uint64_t g10 = umul128_upper64(x, y.low()); + return g01 + g10; +} + +// Computes lower 64 bits of multiplication of a 32-bit unsigned integer and a +// 64-bit unsigned integer. +inline uint64_t umul96_lower64(uint32_t x, uint64_t y) FMT_NOEXCEPT { + return x * y; +} + +// Computes floor(log10(pow(2, e))) for e in [-1700, 1700] using the method from +// https://fmt.dev/papers/Grisu-Exact.pdf#page=5, section 3.4. +inline int floor_log10_pow2(int e) FMT_NOEXCEPT { + FMT_ASSERT(e <= 1700 && e >= -1700, "too large exponent"); + const int shift = 22; + return (e * static_cast(data::log10_2_significand >> (64 - shift))) >> + shift; +} + +// Various fast log computations. +inline int floor_log2_pow10(int e) FMT_NOEXCEPT { + FMT_ASSERT(e <= 1233 && e >= -1233, "too large exponent"); + const uint64_t log2_10_integer_part = 3; + const uint64_t log2_10_fractional_digits = 0x5269e12f346e2bf9; + const int shift_amount = 19; + return (e * static_cast( + (log2_10_integer_part << shift_amount) | + (log2_10_fractional_digits >> (64 - shift_amount)))) >> + shift_amount; +} +inline int floor_log10_pow2_minus_log10_4_over_3(int e) FMT_NOEXCEPT { + FMT_ASSERT(e <= 1700 && e >= -1700, "too large exponent"); + const uint64_t log10_4_over_3_fractional_digits = 0x1ffbfc2bbc780375; + const int shift_amount = 22; + return (e * static_cast(data::log10_2_significand >> + (64 - shift_amount)) - + static_cast(log10_4_over_3_fractional_digits >> + (64 - shift_amount))) >> + shift_amount; +} + +// Returns true iff x is divisible by pow(2, exp). +inline bool divisible_by_power_of_2(uint32_t x, int exp) FMT_NOEXCEPT { + FMT_ASSERT(exp >= 1, ""); + FMT_ASSERT(x != 0, ""); +#ifdef FMT_BUILTIN_CTZ + return FMT_BUILTIN_CTZ(x) >= exp; +#else + return exp < num_bits() && x == ((x >> exp) << exp); +#endif +} +inline bool divisible_by_power_of_2(uint64_t x, int exp) FMT_NOEXCEPT { + FMT_ASSERT(exp >= 1, ""); + FMT_ASSERT(x != 0, ""); +#ifdef FMT_BUILTIN_CTZLL + return FMT_BUILTIN_CTZLL(x) >= exp; +#else + return exp < num_bits() && x == ((x >> exp) << exp); +#endif +} + +// Returns true iff x is divisible by pow(5, exp). +inline bool divisible_by_power_of_5(uint32_t x, int exp) FMT_NOEXCEPT { + FMT_ASSERT(exp <= 10, "too large exponent"); + return x * data::divtest_table_for_pow5_32[exp].mod_inv <= + data::divtest_table_for_pow5_32[exp].max_quotient; +} +inline bool divisible_by_power_of_5(uint64_t x, int exp) FMT_NOEXCEPT { + FMT_ASSERT(exp <= 23, "too large exponent"); + return x * data::divtest_table_for_pow5_64[exp].mod_inv <= + data::divtest_table_for_pow5_64[exp].max_quotient; +} + +// Replaces n by floor(n / pow(5, N)) returning true if and only if n is +// divisible by pow(5, N). +// Precondition: n <= 2 * pow(5, N + 1). +template +bool check_divisibility_and_divide_by_pow5(uint32_t& n) FMT_NOEXCEPT { + static constexpr struct { + uint32_t magic_number; + int bits_for_comparison; + uint32_t threshold; + int shift_amount; + } infos[] = {{0xcccd, 16, 0x3333, 18}, {0xa429, 8, 0x0a, 20}}; + constexpr auto info = infos[N - 1]; + n *= info.magic_number; + const uint32_t comparison_mask = (1u << info.bits_for_comparison) - 1; + bool result = (n & comparison_mask) <= info.threshold; + n >>= info.shift_amount; + return result; +} + +// Computes floor(n / pow(10, N)) for small n and N. +// Precondition: n <= pow(10, N + 1). +template uint32_t small_division_by_pow10(uint32_t n) FMT_NOEXCEPT { + static constexpr struct { + uint32_t magic_number; + int shift_amount; + uint32_t divisor_times_10; + } infos[] = {{0xcccd, 19, 100}, {0xa3d8, 22, 1000}}; + constexpr auto info = infos[N - 1]; + FMT_ASSERT(n <= info.divisor_times_10, "n is too large"); + return n * info.magic_number >> info.shift_amount; +} + +// Computes floor(n / 10^(kappa + 1)) (float) +inline uint32_t divide_by_10_to_kappa_plus_1(uint32_t n) FMT_NOEXCEPT { + return n / float_info::big_divisor; +} +// Computes floor(n / 10^(kappa + 1)) (double) +inline uint64_t divide_by_10_to_kappa_plus_1(uint64_t n) FMT_NOEXCEPT { + return umul128_upper64(n, 0x83126e978d4fdf3c) >> 9; +} + +// Various subroutines using pow10 cache +template struct cache_accessor; + +template <> struct cache_accessor { + using carrier_uint = float_info::carrier_uint; + using cache_entry_type = uint64_t; + + static uint64_t get_cached_power(int k) FMT_NOEXCEPT { + FMT_ASSERT(k >= float_info::min_k && k <= float_info::max_k, + "k is out of range"); + return data::dragonbox_pow10_significands_64[k - float_info::min_k]; + } + + static carrier_uint compute_mul(carrier_uint u, + const cache_entry_type& cache) FMT_NOEXCEPT { + return umul96_upper32(u, cache); + } + + static uint32_t compute_delta(const cache_entry_type& cache, + int beta_minus_1) FMT_NOEXCEPT { + return static_cast(cache >> (64 - 1 - beta_minus_1)); + } + + static bool compute_mul_parity(carrier_uint two_f, + const cache_entry_type& cache, + int beta_minus_1) FMT_NOEXCEPT { + FMT_ASSERT(beta_minus_1 >= 1, ""); + FMT_ASSERT(beta_minus_1 < 64, ""); + + return ((umul96_lower64(two_f, cache) >> (64 - beta_minus_1)) & 1) != 0; + } + + static carrier_uint compute_left_endpoint_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return static_cast( + (cache - (cache >> (float_info::significand_bits + 2))) >> + (64 - float_info::significand_bits - 1 - beta_minus_1)); + } + + static carrier_uint compute_right_endpoint_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return static_cast( + (cache + (cache >> (float_info::significand_bits + 1))) >> + (64 - float_info::significand_bits - 1 - beta_minus_1)); + } + + static carrier_uint compute_round_up_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return (static_cast( + cache >> + (64 - float_info::significand_bits - 2 - beta_minus_1)) + + 1) / + 2; + } +}; + +template <> struct cache_accessor { + using carrier_uint = float_info::carrier_uint; + using cache_entry_type = uint128_wrapper; + + static uint128_wrapper get_cached_power(int k) FMT_NOEXCEPT { + FMT_ASSERT(k >= float_info::min_k && k <= float_info::max_k, + "k is out of range"); + +#if FMT_USE_FULL_CACHE_DRAGONBOX + return data::dragonbox_pow10_significands_128[k - + float_info::min_k]; +#else + static const int compression_ratio = 27; + + // Compute base index. + int cache_index = (k - float_info::min_k) / compression_ratio; + int kb = cache_index * compression_ratio + float_info::min_k; + int offset = k - kb; + + // Get base cache. + uint128_wrapper base_cache = + data::dragonbox_pow10_significands_128[cache_index]; + if (offset == 0) return base_cache; + + // Compute the required amount of bit-shift. + int alpha = floor_log2_pow10(kb + offset) - floor_log2_pow10(kb) - offset; + FMT_ASSERT(alpha > 0 && alpha < 64, "shifting error detected"); + + // Try to recover the real cache. + uint64_t pow5 = data::powers_of_5_64[offset]; + uint128_wrapper recovered_cache = umul128(base_cache.high(), pow5); + uint128_wrapper middle_low = + umul128(base_cache.low() - (kb < 0 ? 1u : 0u), pow5); + + recovered_cache += middle_low.high(); + + uint64_t high_to_middle = recovered_cache.high() << (64 - alpha); + uint64_t middle_to_low = recovered_cache.low() << (64 - alpha); + + recovered_cache = + uint128_wrapper{(recovered_cache.low() >> alpha) | high_to_middle, + ((middle_low.low() >> alpha) | middle_to_low)}; + + if (kb < 0) recovered_cache += 1; + + // Get error. + int error_idx = (k - float_info::min_k) / 16; + uint32_t error = (data::dragonbox_pow10_recovery_errors[error_idx] >> + ((k - float_info::min_k) % 16) * 2) & + 0x3; + + // Add the error back. + FMT_ASSERT(recovered_cache.low() + error >= recovered_cache.low(), ""); + return {recovered_cache.high(), recovered_cache.low() + error}; +#endif + } + + static carrier_uint compute_mul(carrier_uint u, + const cache_entry_type& cache) FMT_NOEXCEPT { + return umul192_upper64(u, cache); + } + + static uint32_t compute_delta(cache_entry_type const& cache, + int beta_minus_1) FMT_NOEXCEPT { + return static_cast(cache.high() >> (64 - 1 - beta_minus_1)); + } + + static bool compute_mul_parity(carrier_uint two_f, + const cache_entry_type& cache, + int beta_minus_1) FMT_NOEXCEPT { + FMT_ASSERT(beta_minus_1 >= 1, ""); + FMT_ASSERT(beta_minus_1 < 64, ""); + + return ((umul192_middle64(two_f, cache) >> (64 - beta_minus_1)) & 1) != 0; + } + + static carrier_uint compute_left_endpoint_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return (cache.high() - + (cache.high() >> (float_info::significand_bits + 2))) >> + (64 - float_info::significand_bits - 1 - beta_minus_1); + } + + static carrier_uint compute_right_endpoint_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return (cache.high() + + (cache.high() >> (float_info::significand_bits + 1))) >> + (64 - float_info::significand_bits - 1 - beta_minus_1); + } + + static carrier_uint compute_round_up_for_shorter_interval_case( + const cache_entry_type& cache, int beta_minus_1) FMT_NOEXCEPT { + return ((cache.high() >> + (64 - float_info::significand_bits - 2 - beta_minus_1)) + + 1) / + 2; + } +}; + +// Various integer checks +template +bool is_left_endpoint_integer_shorter_interval(int exponent) FMT_NOEXCEPT { + return exponent >= + float_info< + T>::case_shorter_interval_left_endpoint_lower_threshold && + exponent <= + float_info::case_shorter_interval_left_endpoint_upper_threshold; +} +template +bool is_endpoint_integer(typename float_info::carrier_uint two_f, + int exponent, int minus_k) FMT_NOEXCEPT { + if (exponent < float_info::case_fc_pm_half_lower_threshold) return false; + // For k >= 0. + if (exponent <= float_info::case_fc_pm_half_upper_threshold) return true; + // For k < 0. + if (exponent > float_info::divisibility_check_by_5_threshold) return false; + return divisible_by_power_of_5(two_f, minus_k); +} + +template +bool is_center_integer(typename float_info::carrier_uint two_f, int exponent, + int minus_k) FMT_NOEXCEPT { + // Exponent for 5 is negative. + if (exponent > float_info::divisibility_check_by_5_threshold) return false; + if (exponent > float_info::case_fc_upper_threshold) + return divisible_by_power_of_5(two_f, minus_k); + // Both exponents are nonnegative. + if (exponent >= float_info::case_fc_lower_threshold) return true; + // Exponent for 2 is negative. + return divisible_by_power_of_2(two_f, minus_k - exponent + 1); +} + +// Remove trailing zeros from n and return the number of zeros removed (float) +FMT_ALWAYS_INLINE int remove_trailing_zeros(uint32_t& n) FMT_NOEXCEPT { +#ifdef FMT_BUILTIN_CTZ + int t = FMT_BUILTIN_CTZ(n); +#else + int t = ctz(n); +#endif + if (t > float_info::max_trailing_zeros) + t = float_info::max_trailing_zeros; + + const uint32_t mod_inv1 = 0xcccccccd; + const uint32_t max_quotient1 = 0x33333333; + const uint32_t mod_inv2 = 0xc28f5c29; + const uint32_t max_quotient2 = 0x0a3d70a3; + + int s = 0; + for (; s < t - 1; s += 2) { + if (n * mod_inv2 > max_quotient2) break; + n *= mod_inv2; + } + if (s < t && n * mod_inv1 <= max_quotient1) { + n *= mod_inv1; + ++s; + } + n >>= s; + return s; +} + +// Removes trailing zeros and returns the number of zeros removed (double) +FMT_ALWAYS_INLINE int remove_trailing_zeros(uint64_t& n) FMT_NOEXCEPT { +#ifdef FMT_BUILTIN_CTZLL + int t = FMT_BUILTIN_CTZLL(n); +#else + int t = ctzll(n); +#endif + if (t > float_info::max_trailing_zeros) + t = float_info::max_trailing_zeros; + // Divide by 10^8 and reduce to 32-bits + // Since ret_value.significand <= (2^64 - 1) / 1000 < 10^17, + // both of the quotient and the r should fit in 32-bits + + const uint32_t mod_inv1 = 0xcccccccd; + const uint32_t max_quotient1 = 0x33333333; + const uint64_t mod_inv8 = 0xc767074b22e90e21; + const uint64_t max_quotient8 = 0x00002af31dc46118; + + // If the number is divisible by 1'0000'0000, work with the quotient + if (t >= 8) { + auto quotient_candidate = n * mod_inv8; + + if (quotient_candidate <= max_quotient8) { + auto quotient = static_cast(quotient_candidate >> 8); + + int s = 8; + for (; s < t; ++s) { + if (quotient * mod_inv1 > max_quotient1) break; + quotient *= mod_inv1; + } + quotient >>= (s - 8); + n = quotient; + return s; + } + } + + // Otherwise, work with the remainder + auto quotient = static_cast(n / 100000000); + auto remainder = static_cast(n - 100000000 * quotient); + + if (t == 0 || remainder * mod_inv1 > max_quotient1) { + return 0; + } + remainder *= mod_inv1; + + if (t == 1 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 1) + quotient * 10000000ull; + return 1; + } + remainder *= mod_inv1; + + if (t == 2 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 2) + quotient * 1000000ull; + return 2; + } + remainder *= mod_inv1; + + if (t == 3 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 3) + quotient * 100000ull; + return 3; + } + remainder *= mod_inv1; + + if (t == 4 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 4) + quotient * 10000ull; + return 4; + } + remainder *= mod_inv1; + + if (t == 5 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 5) + quotient * 1000ull; + return 5; + } + remainder *= mod_inv1; + + if (t == 6 || remainder * mod_inv1 > max_quotient1) { + n = (remainder >> 6) + quotient * 100ull; + return 6; + } + remainder *= mod_inv1; + + n = (remainder >> 7) + quotient * 10ull; + return 7; +} + +// The main algorithm for shorter interval case +template +FMT_ALWAYS_INLINE FMT_SAFEBUFFERS decimal_fp shorter_interval_case( + int exponent) FMT_NOEXCEPT { + decimal_fp ret_value; + // Compute k and beta + const int minus_k = floor_log10_pow2_minus_log10_4_over_3(exponent); + const int beta_minus_1 = exponent + floor_log2_pow10(-minus_k); + + // Compute xi and zi + using cache_entry_type = typename cache_accessor::cache_entry_type; + const cache_entry_type cache = cache_accessor::get_cached_power(-minus_k); + + auto xi = cache_accessor::compute_left_endpoint_for_shorter_interval_case( + cache, beta_minus_1); + auto zi = cache_accessor::compute_right_endpoint_for_shorter_interval_case( + cache, beta_minus_1); + + // If the left endpoint is not an integer, increase it + if (!is_left_endpoint_integer_shorter_interval(exponent)) ++xi; + + // Try bigger divisor + ret_value.significand = zi / 10; + + // If succeed, remove trailing zeros if necessary and return + if (ret_value.significand * 10 >= xi) { + ret_value.exponent = minus_k + 1; + ret_value.exponent += remove_trailing_zeros(ret_value.significand); + return ret_value; + } + + // Otherwise, compute the round-up of y + ret_value.significand = + cache_accessor::compute_round_up_for_shorter_interval_case( + cache, beta_minus_1); + ret_value.exponent = minus_k; + + // When tie occurs, choose one of them according to the rule + if (exponent >= float_info::shorter_interval_tie_lower_threshold && + exponent <= float_info::shorter_interval_tie_upper_threshold) { + ret_value.significand = ret_value.significand % 2 == 0 + ? ret_value.significand + : ret_value.significand - 1; + } else if (ret_value.significand < xi) { + ++ret_value.significand; + } + return ret_value; +} + +template +FMT_SAFEBUFFERS decimal_fp to_decimal(T x) FMT_NOEXCEPT { + // Step 1: integer promotion & Schubfach multiplier calculation. + + using carrier_uint = typename float_info::carrier_uint; + using cache_entry_type = typename cache_accessor::cache_entry_type; + auto br = bit_cast(x); + + // Extract significand bits and exponent bits. + const carrier_uint significand_mask = + (static_cast(1) << float_info::significand_bits) - 1; + carrier_uint significand = (br & significand_mask); + int exponent = static_cast((br & exponent_mask()) >> + float_info::significand_bits); + + if (exponent != 0) { // Check if normal. + exponent += float_info::exponent_bias - float_info::significand_bits; + + // Shorter interval case; proceed like Schubfach. + if (significand == 0) return shorter_interval_case(exponent); + + significand |= + (static_cast(1) << float_info::significand_bits); + } else { + // Subnormal case; the interval is always regular. + if (significand == 0) return {0, 0}; + exponent = float_info::min_exponent - float_info::significand_bits; + } + + const bool include_left_endpoint = (significand % 2 == 0); + const bool include_right_endpoint = include_left_endpoint; + + // Compute k and beta. + const int minus_k = floor_log10_pow2(exponent) - float_info::kappa; + const cache_entry_type cache = cache_accessor::get_cached_power(-minus_k); + const int beta_minus_1 = exponent + floor_log2_pow10(-minus_k); + + // Compute zi and deltai + // 10^kappa <= deltai < 10^(kappa + 1) + const uint32_t deltai = cache_accessor::compute_delta(cache, beta_minus_1); + const carrier_uint two_fc = significand << 1; + const carrier_uint two_fr = two_fc | 1; + const carrier_uint zi = + cache_accessor::compute_mul(two_fr << beta_minus_1, cache); + + // Step 2: Try larger divisor; remove trailing zeros if necessary + + // Using an upper bound on zi, we might be able to optimize the division + // better than the compiler; we are computing zi / big_divisor here + decimal_fp ret_value; + ret_value.significand = divide_by_10_to_kappa_plus_1(zi); + uint32_t r = static_cast(zi - float_info::big_divisor * + ret_value.significand); + + if (r > deltai) { + goto small_divisor_case_label; + } else if (r < deltai) { + // Exclude the right endpoint if necessary + if (r == 0 && !include_right_endpoint && + is_endpoint_integer(two_fr, exponent, minus_k)) { + --ret_value.significand; + r = float_info::big_divisor; + goto small_divisor_case_label; + } + } else { + // r == deltai; compare fractional parts + // Check conditions in the order different from the paper + // to take advantage of short-circuiting + const carrier_uint two_fl = two_fc - 1; + if ((!include_left_endpoint || + !is_endpoint_integer(two_fl, exponent, minus_k)) && + !cache_accessor::compute_mul_parity(two_fl, cache, beta_minus_1)) { + goto small_divisor_case_label; + } + } + ret_value.exponent = minus_k + float_info::kappa + 1; + + // We may need to remove trailing zeros + ret_value.exponent += remove_trailing_zeros(ret_value.significand); + return ret_value; + + // Step 3: Find the significand with the smaller divisor + +small_divisor_case_label: + ret_value.significand *= 10; + ret_value.exponent = minus_k + float_info::kappa; + + const uint32_t mask = (1u << float_info::kappa) - 1; + auto dist = r - (deltai / 2) + (float_info::small_divisor / 2); + + // Is dist divisible by 2^kappa? + if ((dist & mask) == 0) { + const bool approx_y_parity = + ((dist ^ (float_info::small_divisor / 2)) & 1) != 0; + dist >>= float_info::kappa; + + // Is dist divisible by 5^kappa? + if (check_divisibility_and_divide_by_pow5::kappa>(dist)) { + ret_value.significand += dist; + + // Check z^(f) >= epsilon^(f) + // We have either yi == zi - epsiloni or yi == (zi - epsiloni) - 1, + // where yi == zi - epsiloni if and only if z^(f) >= epsilon^(f) + // Since there are only 2 possibilities, we only need to care about the + // parity. Also, zi and r should have the same parity since the divisor + // is an even number + if (cache_accessor::compute_mul_parity(two_fc, cache, beta_minus_1) != + approx_y_parity) { + --ret_value.significand; + } else { + // If z^(f) >= epsilon^(f), we might have a tie + // when z^(f) == epsilon^(f), or equivalently, when y is an integer + if (is_center_integer(two_fc, exponent, minus_k)) { + ret_value.significand = ret_value.significand % 2 == 0 + ? ret_value.significand + : ret_value.significand - 1; + } + } + } + // Is dist not divisible by 5^kappa? + else { + ret_value.significand += dist; + } + } + // Is dist not divisible by 2^kappa? + else { + // Since we know dist is small, we might be able to optimize the division + // better than the compiler; we are computing dist / small_divisor here + ret_value.significand += + small_division_by_pow10::kappa>(dist); + } + return ret_value; +} +} // namespace dragonbox + +// Formats value using a variation of the Fixed-Precision Positive +// Floating-Point Printout ((FPP)^2) algorithm by Steele & White: +// https://fmt.dev/p372-steele.pdf. +template +void fallback_format(Double d, int num_digits, bool binary32, buffer& buf, + int& exp10) { + bigint numerator; // 2 * R in (FPP)^2. + bigint denominator; // 2 * S in (FPP)^2. + // lower and upper are differences between value and corresponding boundaries. + bigint lower; // (M^- in (FPP)^2). + bigint upper_store; // upper's value if different from lower. + bigint* upper = nullptr; // (M^+ in (FPP)^2). + fp value; + // Shift numerator and denominator by an extra bit or two (if lower boundary + // is closer) to make lower and upper integers. This eliminates multiplication + // by 2 during later computations. + const bool is_predecessor_closer = + binary32 ? value.assign(static_cast(d)) : value.assign(d); + int shift = is_predecessor_closer ? 2 : 1; + uint64_t significand = value.f << shift; + if (value.e >= 0) { + numerator.assign(significand); + numerator <<= value.e; + lower.assign(1); + lower <<= value.e; + if (shift != 1) { + upper_store.assign(1); + upper_store <<= value.e + 1; + upper = &upper_store; + } + denominator.assign_pow10(exp10); + denominator <<= shift; + } else if (exp10 < 0) { + numerator.assign_pow10(-exp10); + lower.assign(numerator); + if (shift != 1) { + upper_store.assign(numerator); + upper_store <<= 1; + upper = &upper_store; + } + numerator *= significand; + denominator.assign(1); + denominator <<= shift - value.e; + } else { + numerator.assign(significand); + denominator.assign_pow10(exp10); + denominator <<= shift - value.e; + lower.assign(1); + if (shift != 1) { + upper_store.assign(1ULL << 1); + upper = &upper_store; + } + } + // Invariant: value == (numerator / denominator) * pow(10, exp10). + if (num_digits < 0) { + // Generate the shortest representation. + if (!upper) upper = &lower; + bool even = (value.f & 1) == 0; + num_digits = 0; + char* data = buf.data(); + for (;;) { + int digit = numerator.divmod_assign(denominator); + bool low = compare(numerator, lower) - even < 0; // numerator <[=] lower. + // numerator + upper >[=] pow10: + bool high = add_compare(numerator, *upper, denominator) + even > 0; + data[num_digits++] = static_cast('0' + digit); + if (low || high) { + if (!low) { + ++data[num_digits - 1]; + } else if (high) { + int result = add_compare(numerator, numerator, denominator); + // Round half to even. + if (result > 0 || (result == 0 && (digit % 2) != 0)) + ++data[num_digits - 1]; + } + buf.try_resize(to_unsigned(num_digits)); + exp10 -= num_digits - 1; + return; + } + numerator *= 10; + lower *= 10; + if (upper != &lower) *upper *= 10; + } + } + // Generate the given number of digits. + exp10 -= num_digits - 1; + if (num_digits == 0) { + buf.try_resize(1); + denominator *= 10; + buf[0] = add_compare(numerator, numerator, denominator) > 0 ? '1' : '0'; + return; + } + buf.try_resize(to_unsigned(num_digits)); + for (int i = 0; i < num_digits - 1; ++i) { + int digit = numerator.divmod_assign(denominator); + buf[i] = static_cast('0' + digit); + numerator *= 10; + } + int digit = numerator.divmod_assign(denominator); + auto result = add_compare(numerator, numerator, denominator); + if (result > 0 || (result == 0 && (digit % 2) != 0)) { + if (digit == 9) { + const auto overflow = '0' + 10; + buf[num_digits - 1] = overflow; + // Propagate the carry. + for (int i = num_digits - 1; i > 0 && buf[i] == overflow; --i) { + buf[i] = '0'; + ++buf[i - 1]; + } + if (buf[0] == overflow) { + buf[0] = '1'; + ++exp10; + } + return; + } + ++digit; + } + buf[num_digits - 1] = static_cast('0' + digit); +} + +template +int format_float(T value, int precision, float_specs specs, buffer& buf) { + static_assert(!std::is_same::value, ""); + FMT_ASSERT(value >= 0, "value is negative"); + + const bool fixed = specs.format == float_format::fixed; + if (value <= 0) { // <= instead of == to silence a warning. + if (precision <= 0 || !fixed) { + buf.push_back('0'); + return 0; + } + buf.try_resize(to_unsigned(precision)); + std::uninitialized_fill_n(buf.data(), precision, '0'); + return -precision; + } + + if (!specs.use_grisu) return snprintf_float(value, precision, specs, buf); + + if (precision < 0) { + // Use Dragonbox for the shortest format. + if (specs.binary32) { + auto dec = dragonbox::to_decimal(static_cast(value)); + write(buffer_appender(buf), dec.significand); + return dec.exponent; + } + auto dec = dragonbox::to_decimal(static_cast(value)); + write(buffer_appender(buf), dec.significand); + return dec.exponent; + } + + // Use Grisu + Dragon4 for the given precision: + // https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf. + int exp = 0; + const int min_exp = -60; // alpha in Grisu. + int cached_exp10 = 0; // K in Grisu. + fp normalized = normalize(fp(value)); + const auto cached_pow = get_cached_power( + min_exp - (normalized.e + fp::significand_size), cached_exp10); + normalized = normalized * cached_pow; + // Limit precision to the maximum possible number of significant digits in an + // IEEE754 double because we don't need to generate zeros. + const int max_double_digits = 767; + if (precision > max_double_digits) precision = max_double_digits; + fixed_handler handler{buf.data(), 0, precision, -cached_exp10, fixed}; + if (grisu_gen_digits(normalized, 1, exp, handler) == digits::error) { + exp += handler.size - cached_exp10 - 1; + fallback_format(value, handler.precision, specs.binary32, buf, exp); + } else { + exp += handler.exp10; + buf.try_resize(to_unsigned(handler.size)); + } + if (!fixed && !specs.showpoint) { + // Remove trailing zeros. + auto num_digits = buf.size(); + while (num_digits > 0 && buf[num_digits - 1] == '0') { + --num_digits; + ++exp; + } + buf.try_resize(num_digits); + } + return exp; +} // namespace detail + +template +int snprintf_float(T value, int precision, float_specs specs, + buffer& buf) { + // Buffer capacity must be non-zero, otherwise MSVC's vsnprintf_s will fail. + FMT_ASSERT(buf.capacity() > buf.size(), "empty buffer"); + static_assert(!std::is_same::value, ""); + + // Subtract 1 to account for the difference in precision since we use %e for + // both general and exponent format. + if (specs.format == float_format::general || + specs.format == float_format::exp) + precision = (precision >= 0 ? precision : 6) - 1; + + // Build the format string. + enum { max_format_size = 7 }; // The longest format is "%#.*Le". + char format[max_format_size]; + char* format_ptr = format; + *format_ptr++ = '%'; + if (specs.showpoint && specs.format == float_format::hex) *format_ptr++ = '#'; + if (precision >= 0) { + *format_ptr++ = '.'; + *format_ptr++ = '*'; + } + if (std::is_same()) *format_ptr++ = 'L'; + *format_ptr++ = specs.format != float_format::hex + ? (specs.format == float_format::fixed ? 'f' : 'e') + : (specs.upper ? 'A' : 'a'); + *format_ptr = '\0'; + + // Format using snprintf. + auto offset = buf.size(); + for (;;) { + auto begin = buf.data() + offset; + auto capacity = buf.capacity() - offset; +#ifdef FMT_FUZZ + if (precision > 100000) + throw std::runtime_error( + "fuzz mode - avoid large allocation inside snprintf"); +#endif + // Suppress the warning about a nonliteral format string. + // Cannot use auto because of a bug in MinGW (#1532). + int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; + int result = precision >= 0 + ? snprintf_ptr(begin, capacity, format, precision, value) + : snprintf_ptr(begin, capacity, format, value); + if (result < 0) { + // The buffer will grow exponentially. + buf.try_reserve(buf.capacity() + 1); + continue; + } + auto size = to_unsigned(result); + // Size equal to capacity means that the last character was truncated. + if (size >= capacity) { + buf.try_reserve(size + offset + 1); // Add 1 for the terminating '\0'. + continue; + } + auto is_digit = [](char c) { return c >= '0' && c <= '9'; }; + if (specs.format == float_format::fixed) { + if (precision == 0) { + buf.try_resize(size); + return 0; + } + // Find and remove the decimal point. + auto end = begin + size, p = end; + do { + --p; + } while (is_digit(*p)); + int fraction_size = static_cast(end - p - 1); + std::memmove(p, p + 1, to_unsigned(fraction_size)); + buf.try_resize(size - 1); + return -fraction_size; + } + if (specs.format == float_format::hex) { + buf.try_resize(size + offset); + return 0; + } + // Find and parse the exponent. + auto end = begin + size, exp_pos = end; + do { + --exp_pos; + } while (*exp_pos != 'e'); + char sign = exp_pos[1]; + assert(sign == '+' || sign == '-'); + int exp = 0; + auto p = exp_pos + 2; // Skip 'e' and sign. + do { + assert(is_digit(*p)); + exp = exp * 10 + (*p++ - '0'); + } while (p != end); + if (sign == '-') exp = -exp; + int fraction_size = 0; + if (exp_pos != begin + 1) { + // Remove trailing zeros. + auto fraction_end = exp_pos - 1; + while (*fraction_end == '0') --fraction_end; + // Move the fractional part left to get rid of the decimal point. + fraction_size = static_cast(fraction_end - begin - 1); + std::memmove(begin + 1, begin + 2, to_unsigned(fraction_size)); + } + buf.try_resize(to_unsigned(fraction_size) + offset + 1); + return exp - fraction_size; + } +} + +// A public domain branchless UTF-8 decoder by Christopher Wellons: +// https://github.com/skeeto/branchless-utf8 +/* Decode the next character, c, from buf, reporting errors in e. + * + * Since this is a branchless decoder, four bytes will be read from the + * buffer regardless of the actual length of the next character. This + * means the buffer _must_ have at least three bytes of zero padding + * following the end of the data stream. + * + * Errors are reported in e, which will be non-zero if the parsed + * character was somehow invalid: invalid byte sequence, non-canonical + * encoding, or a surrogate half. + * + * The function returns a pointer to the next character. When an error + * occurs, this pointer will be a guess that depends on the particular + * error, but it will always advance at least one byte. + */ +inline const char* utf8_decode(const char* buf, uint32_t* c, int* e) { + static const int masks[] = {0x00, 0x7f, 0x1f, 0x0f, 0x07}; + static const uint32_t mins[] = {4194304, 0, 128, 2048, 65536}; + static const int shiftc[] = {0, 18, 12, 6, 0}; + static const int shifte[] = {0, 6, 4, 2, 0}; + + int len = code_point_length(buf); + const char* next = buf + len; + + // Assume a four-byte character and load four bytes. Unused bits are + // shifted out. + auto s = reinterpret_cast(buf); + *c = uint32_t(s[0] & masks[len]) << 18; + *c |= uint32_t(s[1] & 0x3f) << 12; + *c |= uint32_t(s[2] & 0x3f) << 6; + *c |= uint32_t(s[3] & 0x3f) << 0; + *c >>= shiftc[len]; + + // Accumulate the various error conditions. + *e = (*c < mins[len]) << 6; // non-canonical encoding + *e |= ((*c >> 11) == 0x1b) << 7; // surrogate half? + *e |= (*c > 0x10FFFF) << 8; // out of range? + *e |= (s[1] & 0xc0) >> 2; + *e |= (s[2] & 0xc0) >> 4; + *e |= (s[3]) >> 6; + *e ^= 0x2a; // top two bits of each tail byte correct? + *e >>= shifte[len]; + + return next; +} + +struct stringifier { + template FMT_INLINE std::string operator()(T value) const { + return to_string(value); + } + std::string operator()(basic_format_arg::handle h) const { + memory_buffer buf; + format_parse_context parse_ctx({}); + format_context format_ctx(buffer_appender(buf), {}, {}); + h.format(parse_ctx, format_ctx); + return to_string(buf); + } +}; +} // namespace detail + +template <> struct formatter { + format_parse_context::iterator parse(format_parse_context& ctx) { + return ctx.begin(); + } + + format_context::iterator format(const detail::bigint& n, + format_context& ctx) { + auto out = ctx.out(); + bool first = true; + for (auto i = n.bigits_.size(); i > 0; --i) { + auto value = n.bigits_[i - 1u]; + if (first) { + out = format_to(out, "{:x}", value); + first = false; + continue; + } + out = format_to(out, "{:08x}", value); + } + if (n.exp_ > 0) + out = format_to(out, "p{}", n.exp_ * detail::bigint::bigit_bits); + return out; + } +}; + +FMT_FUNC detail::utf8_to_utf16::utf8_to_utf16(string_view s) { + auto transcode = [this](const char* p) { + auto cp = uint32_t(); + auto error = 0; + p = utf8_decode(p, &cp, &error); + if (error != 0) FMT_THROW(std::runtime_error("invalid utf8")); + if (cp <= 0xFFFF) { + buffer_.push_back(static_cast(cp)); + } else { + cp -= 0x10000; + buffer_.push_back(static_cast(0xD800 + (cp >> 10))); + buffer_.push_back(static_cast(0xDC00 + (cp & 0x3FF))); + } + return p; + }; + auto p = s.data(); + const size_t block_size = 4; // utf8_decode always reads blocks of 4 chars. + if (s.size() >= block_size) { + for (auto end = p + s.size() - block_size + 1; p < end;) p = transcode(p); + } + if (auto num_chars_left = s.data() + s.size() - p) { + char buf[2 * block_size - 1] = {}; + memcpy(buf, p, to_unsigned(num_chars_left)); + p = buf; + do { + p = transcode(p); + } while (p - buf < num_chars_left); + } + buffer_.push_back(0); +} + +FMT_FUNC void format_system_error(detail::buffer& out, int error_code, + string_view message) FMT_NOEXCEPT { + FMT_TRY { + memory_buffer buf; + buf.resize(inline_buffer_size); + for (;;) { + char* system_message = &buf[0]; + int result = + detail::safe_strerror(error_code, system_message, buf.size()); + if (result == 0) { + format_to(detail::buffer_appender(out), "{}: {}", message, + system_message); + return; + } + if (result != ERANGE) + break; // Can't get error message, report error code instead. + buf.resize(buf.size() * 2); + } + } + FMT_CATCH(...) {} + format_error_code(out, error_code, message); +} + +FMT_FUNC void detail::error_handler::on_error(const char* message) { + FMT_THROW(format_error(message)); +} + +FMT_FUNC void report_system_error(int error_code, + fmt::string_view message) FMT_NOEXCEPT { + report_error(format_system_error, error_code, message); +} + +FMT_FUNC std::string detail::vformat(string_view format_str, format_args args) { + if (format_str.size() == 2 && equal2(format_str.data(), "{}")) { + auto arg = args.get(0); + if (!arg) error_handler().on_error("argument not found"); + return visit_format_arg(stringifier(), arg); + } + memory_buffer buffer; + detail::vformat_to(buffer, format_str, args); + return to_string(buffer); +} + +#ifdef _WIN32 +namespace detail { +using dword = conditional_t; +extern "C" __declspec(dllimport) int __stdcall WriteConsoleW( // + void*, const void*, dword, dword*, void*); +} // namespace detail +#endif + +FMT_FUNC void vprint(std::FILE* f, string_view format_str, format_args args) { + memory_buffer buffer; + detail::vformat_to(buffer, format_str, + basic_format_args>(args)); +#ifdef _WIN32 + auto fd = _fileno(f); + if (_isatty(fd)) { + detail::utf8_to_utf16 u16(string_view(buffer.data(), buffer.size())); + auto written = detail::dword(); + if (!detail::WriteConsoleW(reinterpret_cast(_get_osfhandle(fd)), + u16.c_str(), static_cast(u16.size()), + &written, nullptr)) { + FMT_THROW(format_error("failed to write to console")); + } + return; + } +#endif + detail::fwrite_fully(buffer.data(), 1, buffer.size(), f); +} + +#ifdef _WIN32 +// Print assuming legacy (non-Unicode) encoding. +FMT_FUNC void detail::vprint_mojibake(std::FILE* f, string_view format_str, + format_args args) { + memory_buffer buffer; + detail::vformat_to(buffer, format_str, + basic_format_args>(args)); + fwrite_fully(buffer.data(), 1, buffer.size(), f); +} +#endif + +FMT_FUNC void vprint(string_view format_str, format_args args) { + vprint(stdout, format_str, args); +} + +FMT_END_NAMESPACE + +#endif // FMT_FORMAT_INL_H_ diff --git a/src/ext/spdlog/fmt/bundled/format.h b/src/ext/spdlog/fmt/bundled/format.h new file mode 100644 index 0000000..1a037b0 --- /dev/null +++ b/src/ext/spdlog/fmt/bundled/format.h @@ -0,0 +1,3960 @@ +/* + Formatting library for C++ + + Copyright (c) 2012 - present, Victor Zverovich + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + --- Optional exception to the license --- + + As an exception, if, as a result of your compiling your source code, portions + of this Software are embedded into a machine-executable object form of such + source code, you may redistribute such embedded portions in such object form + without including the above copyright and permission notices. + */ + +#ifndef FMT_FORMAT_H_ +#define FMT_FORMAT_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include "core.h" + +#ifdef __INTEL_COMPILER +# define FMT_ICC_VERSION __INTEL_COMPILER +#elif defined(__ICL) +# define FMT_ICC_VERSION __ICL +#else +# define FMT_ICC_VERSION 0 +#endif + +#ifdef __NVCC__ +# define FMT_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 100 + __CUDACC_VER_MINOR__) +#else +# define FMT_CUDA_VERSION 0 +#endif + +#ifdef __has_builtin +# define FMT_HAS_BUILTIN(x) __has_builtin(x) +#else +# define FMT_HAS_BUILTIN(x) 0 +#endif + +#if FMT_GCC_VERSION || FMT_CLANG_VERSION +# define FMT_NOINLINE __attribute__((noinline)) +#else +# define FMT_NOINLINE +#endif + +#if __cplusplus == 201103L || __cplusplus == 201402L +# if defined(__INTEL_COMPILER) || defined(__PGI) +# define FMT_FALLTHROUGH +# elif defined(__clang__) +# define FMT_FALLTHROUGH [[clang::fallthrough]] +# elif FMT_GCC_VERSION >= 700 && \ + (!defined(__EDG_VERSION__) || __EDG_VERSION__ >= 520) +# define FMT_FALLTHROUGH [[gnu::fallthrough]] +# else +# define FMT_FALLTHROUGH +# endif +#elif FMT_HAS_CPP17_ATTRIBUTE(fallthrough) || \ + (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) +# define FMT_FALLTHROUGH [[fallthrough]] +#else +# define FMT_FALLTHROUGH +#endif + +#ifndef FMT_MAYBE_UNUSED +# if FMT_HAS_CPP17_ATTRIBUTE(maybe_unused) +# define FMT_MAYBE_UNUSED [[maybe_unused]] +# else +# define FMT_MAYBE_UNUSED +# endif +#endif + +#ifndef FMT_THROW +# if FMT_EXCEPTIONS +# if FMT_MSC_VER || FMT_NVCC +FMT_BEGIN_NAMESPACE +namespace detail { +template inline void do_throw(const Exception& x) { + // Silence unreachable code warnings in MSVC and NVCC because these + // are nearly impossible to fix in a generic code. + volatile bool b = true; + if (b) throw x; +} +} // namespace detail +FMT_END_NAMESPACE +# define FMT_THROW(x) detail::do_throw(x) +# else +# define FMT_THROW(x) throw x +# endif +# else +# define FMT_THROW(x) \ + do { \ + static_cast(sizeof(x)); \ + FMT_ASSERT(false, ""); \ + } while (false) +# endif +#endif + +#if FMT_EXCEPTIONS +# define FMT_TRY try +# define FMT_CATCH(x) catch (x) +#else +# define FMT_TRY if (true) +# define FMT_CATCH(x) if (false) +#endif + +#ifndef FMT_USE_USER_DEFINED_LITERALS +// EDG based compilers (Intel, NVIDIA, Elbrus, etc), GCC and MSVC support UDLs. +# if (FMT_HAS_FEATURE(cxx_user_literals) || FMT_GCC_VERSION >= 407 || \ + FMT_MSC_VER >= 1900) && \ + (!defined(__EDG_VERSION__) || __EDG_VERSION__ >= /* UDL feature */ 480) +# define FMT_USE_USER_DEFINED_LITERALS 1 +# else +# define FMT_USE_USER_DEFINED_LITERALS 0 +# endif +#endif + +#ifndef FMT_USE_UDL_TEMPLATE +// EDG frontend based compilers (icc, nvcc, PGI, etc) and GCC < 6.4 do not +// properly support UDL templates and GCC >= 9 warns about them. +# if FMT_USE_USER_DEFINED_LITERALS && \ + (!defined(__EDG_VERSION__) || __EDG_VERSION__ >= 501) && \ + ((FMT_GCC_VERSION >= 604 && __cplusplus >= 201402L) || \ + FMT_CLANG_VERSION >= 304) && \ + !defined(__PGI) && !defined(__NVCC__) +# define FMT_USE_UDL_TEMPLATE 1 +# else +# define FMT_USE_UDL_TEMPLATE 0 +# endif +#endif + +#ifndef FMT_USE_FLOAT +# define FMT_USE_FLOAT 1 +#endif + +#ifndef FMT_USE_DOUBLE +# define FMT_USE_DOUBLE 1 +#endif + +#ifndef FMT_USE_LONG_DOUBLE +# define FMT_USE_LONG_DOUBLE 1 +#endif + +// Defining FMT_REDUCE_INT_INSTANTIATIONS to 1, will reduce the number of +// int_writer template instances to just one by only using the largest integer +// type. This results in a reduction in binary size but will cause a decrease in +// integer formatting performance. +#if !defined(FMT_REDUCE_INT_INSTANTIATIONS) +# define FMT_REDUCE_INT_INSTANTIATIONS 0 +#endif + +// __builtin_clz is broken in clang with Microsoft CodeGen: +// https://github.com/fmtlib/fmt/issues/519 +#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_clz)) && !FMT_MSC_VER +# define FMT_BUILTIN_CLZ(n) __builtin_clz(n) +#endif +#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_clzll)) && !FMT_MSC_VER +# define FMT_BUILTIN_CLZLL(n) __builtin_clzll(n) +#endif +#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctz)) +# define FMT_BUILTIN_CTZ(n) __builtin_ctz(n) +#endif +#if (FMT_GCC_VERSION || FMT_HAS_BUILTIN(__builtin_ctzll)) +# define FMT_BUILTIN_CTZLL(n) __builtin_ctzll(n) +#endif + +#if FMT_MSC_VER +# include // _BitScanReverse[64], _BitScanForward[64], _umul128 +#endif + +// Some compilers masquerade as both MSVC and GCC-likes or otherwise support +// __builtin_clz and __builtin_clzll, so only define FMT_BUILTIN_CLZ using the +// MSVC intrinsics if the clz and clzll builtins are not available. +#if FMT_MSC_VER && !defined(FMT_BUILTIN_CLZLL) && \ + !defined(FMT_BUILTIN_CTZLL) && !defined(_MANAGED) +FMT_BEGIN_NAMESPACE +namespace detail { +// Avoid Clang with Microsoft CodeGen's -Wunknown-pragmas warning. +# ifndef __clang__ +# pragma intrinsic(_BitScanForward) +# pragma intrinsic(_BitScanReverse) +# endif +# if defined(_WIN64) && !defined(__clang__) +# pragma intrinsic(_BitScanForward64) +# pragma intrinsic(_BitScanReverse64) +# endif + +inline int clz(uint32_t x) { + unsigned long r = 0; + _BitScanReverse(&r, x); + FMT_ASSERT(x != 0, ""); + // Static analysis complains about using uninitialized data + // "r", but the only way that can happen is if "x" is 0, + // which the callers guarantee to not happen. + FMT_SUPPRESS_MSC_WARNING(6102) + return 31 ^ static_cast(r); +} +# define FMT_BUILTIN_CLZ(n) detail::clz(n) + +inline int clzll(uint64_t x) { + unsigned long r = 0; +# ifdef _WIN64 + _BitScanReverse64(&r, x); +# else + // Scan the high 32 bits. + if (_BitScanReverse(&r, static_cast(x >> 32))) return 63 ^ (r + 32); + // Scan the low 32 bits. + _BitScanReverse(&r, static_cast(x)); +# endif + FMT_ASSERT(x != 0, ""); + FMT_SUPPRESS_MSC_WARNING(6102) // Suppress a bogus static analysis warning. + return 63 ^ static_cast(r); +} +# define FMT_BUILTIN_CLZLL(n) detail::clzll(n) + +inline int ctz(uint32_t x) { + unsigned long r = 0; + _BitScanForward(&r, x); + FMT_ASSERT(x != 0, ""); + FMT_SUPPRESS_MSC_WARNING(6102) // Suppress a bogus static analysis warning. + return static_cast(r); +} +# define FMT_BUILTIN_CTZ(n) detail::ctz(n) + +inline int ctzll(uint64_t x) { + unsigned long r = 0; + FMT_ASSERT(x != 0, ""); + FMT_SUPPRESS_MSC_WARNING(6102) // Suppress a bogus static analysis warning. +# ifdef _WIN64 + _BitScanForward64(&r, x); +# else + // Scan the low 32 bits. + if (_BitScanForward(&r, static_cast(x))) return static_cast(r); + // Scan the high 32 bits. + _BitScanForward(&r, static_cast(x >> 32)); + r += 32; +# endif + return static_cast(r); +} +# define FMT_BUILTIN_CTZLL(n) detail::ctzll(n) +} // namespace detail +FMT_END_NAMESPACE +#endif + +// Enable the deprecated numeric alignment. +#ifndef FMT_DEPRECATED_NUMERIC_ALIGN +# define FMT_DEPRECATED_NUMERIC_ALIGN 0 +#endif + +FMT_BEGIN_NAMESPACE +namespace detail { + +// An equivalent of `*reinterpret_cast(&source)` that doesn't have +// undefined behavior (e.g. due to type aliasing). +// Example: uint64_t d = bit_cast(2.718); +template +inline Dest bit_cast(const Source& source) { + static_assert(sizeof(Dest) == sizeof(Source), "size mismatch"); + Dest dest; + std::memcpy(&dest, &source, sizeof(dest)); + return dest; +} + +inline bool is_big_endian() { + const auto u = 1u; + struct bytes { + char data[sizeof(u)]; + }; + return bit_cast(u).data[0] == 0; +} + +// A fallback implementation of uintptr_t for systems that lack it. +struct fallback_uintptr { + unsigned char value[sizeof(void*)]; + + fallback_uintptr() = default; + explicit fallback_uintptr(const void* p) { + *this = bit_cast(p); + if (is_big_endian()) { + for (size_t i = 0, j = sizeof(void*) - 1; i < j; ++i, --j) + std::swap(value[i], value[j]); + } + } +}; +#ifdef UINTPTR_MAX +using uintptr_t = ::uintptr_t; +inline uintptr_t to_uintptr(const void* p) { return bit_cast(p); } +#else +using uintptr_t = fallback_uintptr; +inline fallback_uintptr to_uintptr(const void* p) { + return fallback_uintptr(p); +} +#endif + +// Returns the largest possible value for type T. Same as +// std::numeric_limits::max() but shorter and not affected by the max macro. +template constexpr T max_value() { + return (std::numeric_limits::max)(); +} +template constexpr int num_bits() { + return std::numeric_limits::digits; +} +// std::numeric_limits::digits may return 0 for 128-bit ints. +template <> constexpr int num_bits() { return 128; } +template <> constexpr int num_bits() { return 128; } +template <> constexpr int num_bits() { + return static_cast(sizeof(void*) * + std::numeric_limits::digits); +} + +FMT_INLINE void assume(bool condition) { + (void)condition; +#if FMT_HAS_BUILTIN(__builtin_assume) + __builtin_assume(condition); +#endif +} + +// An approximation of iterator_t for pre-C++20 systems. +template +using iterator_t = decltype(std::begin(std::declval())); +template using sentinel_t = decltype(std::end(std::declval())); + +// A workaround for std::string not having mutable data() until C++17. +template inline Char* get_data(std::basic_string& s) { + return &s[0]; +} +template +inline typename Container::value_type* get_data(Container& c) { + return c.data(); +} + +#if defined(_SECURE_SCL) && _SECURE_SCL +// Make a checked iterator to avoid MSVC warnings. +template using checked_ptr = stdext::checked_array_iterator; +template checked_ptr make_checked(T* p, size_t size) { + return {p, size}; +} +#else +template using checked_ptr = T*; +template inline T* make_checked(T* p, size_t) { return p; } +#endif + +template ::value)> +#if FMT_CLANG_VERSION +__attribute__((no_sanitize("undefined"))) +#endif +inline checked_ptr +reserve(std::back_insert_iterator it, size_t n) { + Container& c = get_container(it); + size_t size = c.size(); + c.resize(size + n); + return make_checked(get_data(c) + size, n); +} + +template +inline buffer_appender reserve(buffer_appender it, size_t n) { + buffer& buf = get_container(it); + buf.try_reserve(buf.size() + n); + return it; +} + +template inline Iterator& reserve(Iterator& it, size_t) { + return it; +} + +template +constexpr T* to_pointer(OutputIt, size_t) { + return nullptr; +} +template T* to_pointer(buffer_appender it, size_t n) { + buffer& buf = get_container(it); + auto size = buf.size(); + if (buf.capacity() < size + n) return nullptr; + buf.try_resize(size + n); + return buf.data() + size; +} + +template ::value)> +inline std::back_insert_iterator base_iterator( + std::back_insert_iterator& it, + checked_ptr) { + return it; +} + +template +inline Iterator base_iterator(Iterator, Iterator it) { + return it; +} + +// An output iterator that counts the number of objects written to it and +// discards them. +class counting_iterator { + private: + size_t count_; + + public: + using iterator_category = std::output_iterator_tag; + using difference_type = std::ptrdiff_t; + using pointer = void; + using reference = void; + using _Unchecked_type = counting_iterator; // Mark iterator as checked. + + struct value_type { + template void operator=(const T&) {} + }; + + counting_iterator() : count_(0) {} + + size_t count() const { return count_; } + + counting_iterator& operator++() { + ++count_; + return *this; + } + counting_iterator operator++(int) { + auto it = *this; + ++*this; + return it; + } + + friend counting_iterator operator+(counting_iterator it, difference_type n) { + it.count_ += static_cast(n); + return it; + } + + value_type operator*() const { return {}; } +}; + +template class truncating_iterator_base { + protected: + OutputIt out_; + size_t limit_; + size_t count_; + + truncating_iterator_base(OutputIt out, size_t limit) + : out_(out), limit_(limit), count_(0) {} + + public: + using iterator_category = std::output_iterator_tag; + using value_type = typename std::iterator_traits::value_type; + using difference_type = void; + using pointer = void; + using reference = void; + using _Unchecked_type = + truncating_iterator_base; // Mark iterator as checked. + + OutputIt base() const { return out_; } + size_t count() const { return count_; } +}; + +// An output iterator that truncates the output and counts the number of objects +// written to it. +template ::value_type>::type> +class truncating_iterator; + +template +class truncating_iterator + : public truncating_iterator_base { + mutable typename truncating_iterator_base::value_type blackhole_; + + public: + using value_type = typename truncating_iterator_base::value_type; + + truncating_iterator(OutputIt out, size_t limit) + : truncating_iterator_base(out, limit) {} + + truncating_iterator& operator++() { + if (this->count_++ < this->limit_) ++this->out_; + return *this; + } + + truncating_iterator operator++(int) { + auto it = *this; + ++*this; + return it; + } + + value_type& operator*() const { + return this->count_ < this->limit_ ? *this->out_ : blackhole_; + } +}; + +template +class truncating_iterator + : public truncating_iterator_base { + public: + truncating_iterator(OutputIt out, size_t limit) + : truncating_iterator_base(out, limit) {} + + template truncating_iterator& operator=(T val) { + if (this->count_++ < this->limit_) *this->out_++ = val; + return *this; + } + + truncating_iterator& operator++() { return *this; } + truncating_iterator& operator++(int) { return *this; } + truncating_iterator& operator*() { return *this; } +}; + +template +inline size_t count_code_points(basic_string_view s) { + return s.size(); +} + +// Counts the number of code points in a UTF-8 string. +inline size_t count_code_points(basic_string_view s) { + const char* data = s.data(); + size_t num_code_points = 0; + for (size_t i = 0, size = s.size(); i != size; ++i) { + if ((data[i] & 0xc0) != 0x80) ++num_code_points; + } + return num_code_points; +} + +inline size_t count_code_points(basic_string_view s) { + return count_code_points(basic_string_view( + reinterpret_cast(s.data()), s.size())); +} + +template +inline size_t code_point_index(basic_string_view s, size_t n) { + size_t size = s.size(); + return n < size ? n : size; +} + +// Calculates the index of the nth code point in a UTF-8 string. +inline size_t code_point_index(basic_string_view s, size_t n) { + const char8_type* data = s.data(); + size_t num_code_points = 0; + for (size_t i = 0, size = s.size(); i != size; ++i) { + if ((data[i] & 0xc0) != 0x80 && ++num_code_points > n) { + return i; + } + } + return s.size(); +} + +template +using needs_conversion = bool_constant< + std::is_same::value_type, + char>::value && + std::is_same::value>; + +template ::value)> +OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { + return std::copy(begin, end, it); +} + +template ::value)> +OutputIt copy_str(InputIt begin, InputIt end, OutputIt it) { + return std::transform(begin, end, it, + [](char c) { return static_cast(c); }); +} + +template +inline counting_iterator copy_str(InputIt begin, InputIt end, + counting_iterator it) { + return it + (end - begin); +} + +template +using is_fast_float = bool_constant::is_iec559 && + sizeof(T) <= sizeof(double)>; + +#ifndef FMT_USE_FULL_CACHE_DRAGONBOX +# define FMT_USE_FULL_CACHE_DRAGONBOX 0 +#endif + +template +template +void buffer::append(const U* begin, const U* end) { + do { + auto count = to_unsigned(end - begin); + try_reserve(size_ + count); + auto free_cap = capacity_ - size_; + if (free_cap < count) count = free_cap; + std::uninitialized_copy_n(begin, count, make_checked(ptr_ + size_, count)); + size_ += count; + begin += count; + } while (begin != end); +} + +template +void iterator_buffer::flush() { + out_ = std::copy_n(data_, this->limit(this->size()), out_); + this->clear(); +} +} // namespace detail + +// The number of characters to store in the basic_memory_buffer object itself +// to avoid dynamic memory allocation. +enum { inline_buffer_size = 500 }; + +/** + \rst + A dynamically growing memory buffer for trivially copyable/constructible types + with the first ``SIZE`` elements stored in the object itself. + + You can use one of the following type aliases for common character types: + + +----------------+------------------------------+ + | Type | Definition | + +================+==============================+ + | memory_buffer | basic_memory_buffer | + +----------------+------------------------------+ + | wmemory_buffer | basic_memory_buffer | + +----------------+------------------------------+ + + **Example**:: + + fmt::memory_buffer out; + format_to(out, "The answer is {}.", 42); + + This will append the following output to the ``out`` object: + + .. code-block:: none + + The answer is 42. + + The output can be converted to an ``std::string`` with ``to_string(out)``. + \endrst + */ +template > +class basic_memory_buffer final : public detail::buffer { + private: + T store_[SIZE]; + + // Don't inherit from Allocator avoid generating type_info for it. + Allocator alloc_; + + // Deallocate memory allocated by the buffer. + void deallocate() { + T* data = this->data(); + if (data != store_) alloc_.deallocate(data, this->capacity()); + } + + protected: + void grow(size_t size) final FMT_OVERRIDE; + + public: + using value_type = T; + using const_reference = const T&; + + explicit basic_memory_buffer(const Allocator& alloc = Allocator()) + : alloc_(alloc) { + this->set(store_, SIZE); + } + ~basic_memory_buffer() { deallocate(); } + + private: + // Move data from other to this buffer. + void move(basic_memory_buffer& other) { + alloc_ = std::move(other.alloc_); + T* data = other.data(); + size_t size = other.size(), capacity = other.capacity(); + if (data == other.store_) { + this->set(store_, capacity); + std::uninitialized_copy(other.store_, other.store_ + size, + detail::make_checked(store_, capacity)); + } else { + this->set(data, capacity); + // Set pointer to the inline array so that delete is not called + // when deallocating. + other.set(other.store_, 0); + } + this->resize(size); + } + + public: + /** + \rst + Constructs a :class:`fmt::basic_memory_buffer` object moving the content + of the other object to it. + \endrst + */ + basic_memory_buffer(basic_memory_buffer&& other) FMT_NOEXCEPT { move(other); } + + /** + \rst + Moves the content of the other ``basic_memory_buffer`` object to this one. + \endrst + */ + basic_memory_buffer& operator=(basic_memory_buffer&& other) FMT_NOEXCEPT { + FMT_ASSERT(this != &other, ""); + deallocate(); + move(other); + return *this; + } + + // Returns a copy of the allocator associated with this buffer. + Allocator get_allocator() const { return alloc_; } + + /** + Resizes the buffer to contain *count* elements. If T is a POD type new + elements may not be initialized. + */ + void resize(size_t count) { this->try_resize(count); } + + /** Increases the buffer capacity to *new_capacity*. */ + void reserve(size_t new_capacity) { this->try_reserve(new_capacity); } + + // Directly append data into the buffer + using detail::buffer::append; + template + void append(const ContiguousRange& range) { + append(range.data(), range.data() + range.size()); + } +}; + +template +void basic_memory_buffer::grow(size_t size) { +#ifdef FMT_FUZZ + if (size > 5000) throw std::runtime_error("fuzz mode - won't grow that much"); +#endif + size_t old_capacity = this->capacity(); + size_t new_capacity = old_capacity + old_capacity / 2; + if (size > new_capacity) new_capacity = size; + T* old_data = this->data(); + T* new_data = + std::allocator_traits::allocate(alloc_, new_capacity); + // The following code doesn't throw, so the raw pointer above doesn't leak. + std::uninitialized_copy(old_data, old_data + this->size(), + detail::make_checked(new_data, new_capacity)); + this->set(new_data, new_capacity); + // deallocate must not throw according to the standard, but even if it does, + // the buffer already uses the new storage and will deallocate it in + // destructor. + if (old_data != store_) alloc_.deallocate(old_data, old_capacity); +} + +using memory_buffer = basic_memory_buffer; +using wmemory_buffer = basic_memory_buffer; + +template +struct is_contiguous> : std::true_type { +}; + +/** A formatting error such as invalid format string. */ +FMT_CLASS_API +class FMT_API format_error : public std::runtime_error { + public: + explicit format_error(const char* message) : std::runtime_error(message) {} + explicit format_error(const std::string& message) + : std::runtime_error(message) {} + format_error(const format_error&) = default; + format_error& operator=(const format_error&) = default; + format_error(format_error&&) = default; + format_error& operator=(format_error&&) = default; + ~format_error() FMT_NOEXCEPT FMT_OVERRIDE; +}; + +namespace detail { + +template +using is_signed = + std::integral_constant::is_signed || + std::is_same::value>; + +// Returns true if value is negative, false otherwise. +// Same as `value < 0` but doesn't produce warnings if T is an unsigned type. +template ::value)> +FMT_CONSTEXPR bool is_negative(T value) { + return value < 0; +} +template ::value)> +FMT_CONSTEXPR bool is_negative(T) { + return false; +} + +template ::value)> +FMT_CONSTEXPR bool is_supported_floating_point(T) { + return (std::is_same::value && FMT_USE_FLOAT) || + (std::is_same::value && FMT_USE_DOUBLE) || + (std::is_same::value && FMT_USE_LONG_DOUBLE); +} + +// Smallest of uint32_t, uint64_t, uint128_t that is large enough to +// represent all values of an integral type T. +template +using uint32_or_64_or_128_t = + conditional_t() <= 32 && !FMT_REDUCE_INT_INSTANTIATIONS, + uint32_t, + conditional_t() <= 64, uint64_t, uint128_t>>; + +// 128-bit integer type used internally +struct FMT_EXTERN_TEMPLATE_API uint128_wrapper { + uint128_wrapper() = default; + +#if FMT_USE_INT128 + uint128_t internal_; + + uint128_wrapper(uint64_t high, uint64_t low) FMT_NOEXCEPT + : internal_{static_cast(low) | + (static_cast(high) << 64)} {} + + uint128_wrapper(uint128_t u) : internal_{u} {} + + uint64_t high() const FMT_NOEXCEPT { return uint64_t(internal_ >> 64); } + uint64_t low() const FMT_NOEXCEPT { return uint64_t(internal_); } + + uint128_wrapper& operator+=(uint64_t n) FMT_NOEXCEPT { + internal_ += n; + return *this; + } +#else + uint64_t high_; + uint64_t low_; + + uint128_wrapper(uint64_t high, uint64_t low) FMT_NOEXCEPT : high_{high}, + low_{low} {} + + uint64_t high() const FMT_NOEXCEPT { return high_; } + uint64_t low() const FMT_NOEXCEPT { return low_; } + + uint128_wrapper& operator+=(uint64_t n) FMT_NOEXCEPT { +# if defined(_MSC_VER) && defined(_M_X64) + unsigned char carry = _addcarry_u64(0, low_, n, &low_); + _addcarry_u64(carry, high_, 0, &high_); + return *this; +# else + uint64_t sum = low_ + n; + high_ += (sum < low_ ? 1 : 0); + low_ = sum; + return *this; +# endif + } +#endif +}; + +// Table entry type for divisibility test used internally +template struct FMT_EXTERN_TEMPLATE_API divtest_table_entry { + T mod_inv; + T max_quotient; +}; + +// Static data is placed in this class template for the header-only config. +template struct FMT_EXTERN_TEMPLATE_API basic_data { + static const uint64_t powers_of_10_64[]; + static const uint32_t zero_or_powers_of_10_32_new[]; + static const uint64_t zero_or_powers_of_10_64_new[]; + static const uint64_t grisu_pow10_significands[]; + static const int16_t grisu_pow10_exponents[]; + static const divtest_table_entry divtest_table_for_pow5_32[]; + static const divtest_table_entry divtest_table_for_pow5_64[]; + static const uint64_t dragonbox_pow10_significands_64[]; + static const uint128_wrapper dragonbox_pow10_significands_128[]; + // log10(2) = 0x0.4d104d427de7fbcc... + static const uint64_t log10_2_significand = 0x4d104d427de7fbcc; +#if !FMT_USE_FULL_CACHE_DRAGONBOX + static const uint64_t powers_of_5_64[]; + static const uint32_t dragonbox_pow10_recovery_errors[]; +#endif + // GCC generates slightly better code for pairs than chars. + using digit_pair = char[2]; + static const digit_pair digits[]; + static const char hex_digits[]; + static const char foreground_color[]; + static const char background_color[]; + static const char reset_color[5]; + static const wchar_t wreset_color[5]; + static const char signs[]; + static const char left_padding_shifts[5]; + static const char right_padding_shifts[5]; + + // DEPRECATED! These are for ABI compatibility. + static const uint32_t zero_or_powers_of_10_32[]; + static const uint64_t zero_or_powers_of_10_64[]; +}; + +// Maps bsr(n) to ceil(log10(pow(2, bsr(n) + 1) - 1)). +// This is a function instead of an array to workaround a bug in GCC10 (#1810). +FMT_INLINE uint16_t bsr2log10(int bsr) { + static constexpr uint16_t data[] = { + 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, + 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, + 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 19, 20}; + return data[bsr]; +} + +#ifndef FMT_EXPORTED +FMT_EXTERN template struct basic_data; +#endif + +// This is a struct rather than an alias to avoid shadowing warnings in gcc. +struct data : basic_data<> {}; + +#ifdef FMT_BUILTIN_CLZLL +// Returns the number of decimal digits in n. Leading zeros are not counted +// except for n == 0 in which case count_digits returns 1. +inline int count_digits(uint64_t n) { + // https://github.com/fmtlib/format-benchmark/blob/master/digits10 + auto t = bsr2log10(FMT_BUILTIN_CLZLL(n | 1) ^ 63); + return t - (n < data::zero_or_powers_of_10_64_new[t]); +} +#else +// Fallback version of count_digits used when __builtin_clz is not available. +inline int count_digits(uint64_t n) { + int count = 1; + for (;;) { + // Integer division is slow so do it for a group of four digits instead + // of for every digit. The idea comes from the talk by Alexandrescu + // "Three Optimization Tips for C++". See speed-test for a comparison. + if (n < 10) return count; + if (n < 100) return count + 1; + if (n < 1000) return count + 2; + if (n < 10000) return count + 3; + n /= 10000u; + count += 4; + } +} +#endif + +#if FMT_USE_INT128 +inline int count_digits(uint128_t n) { + int count = 1; + for (;;) { + // Integer division is slow so do it for a group of four digits instead + // of for every digit. The idea comes from the talk by Alexandrescu + // "Three Optimization Tips for C++". See speed-test for a comparison. + if (n < 10) return count; + if (n < 100) return count + 1; + if (n < 1000) return count + 2; + if (n < 10000) return count + 3; + n /= 10000U; + count += 4; + } +} +#endif + +// Counts the number of digits in n. BITS = log2(radix). +template inline int count_digits(UInt n) { + int num_digits = 0; + do { + ++num_digits; + } while ((n >>= BITS) != 0); + return num_digits; +} + +template <> int count_digits<4>(detail::fallback_uintptr n); + +#if FMT_GCC_VERSION || FMT_CLANG_VERSION +# define FMT_ALWAYS_INLINE inline __attribute__((always_inline)) +#elif FMT_MSC_VER +# define FMT_ALWAYS_INLINE __forceinline +#else +# define FMT_ALWAYS_INLINE inline +#endif + +// To suppress unnecessary security cookie checks +#if FMT_MSC_VER && !FMT_CLANG_VERSION +# define FMT_SAFEBUFFERS __declspec(safebuffers) +#else +# define FMT_SAFEBUFFERS +#endif + +#ifdef FMT_BUILTIN_CLZ +// Optional version of count_digits for better performance on 32-bit platforms. +inline int count_digits(uint32_t n) { + auto t = bsr2log10(FMT_BUILTIN_CLZ(n | 1) ^ 31); + return t - (n < data::zero_or_powers_of_10_32_new[t]); +} +#endif + +template constexpr int digits10() FMT_NOEXCEPT { + return std::numeric_limits::digits10; +} +template <> constexpr int digits10() FMT_NOEXCEPT { return 38; } +template <> constexpr int digits10() FMT_NOEXCEPT { return 38; } + +template FMT_API std::string grouping_impl(locale_ref loc); +template inline std::string grouping(locale_ref loc) { + return grouping_impl(loc); +} +template <> inline std::string grouping(locale_ref loc) { + return grouping_impl(loc); +} + +template FMT_API Char thousands_sep_impl(locale_ref loc); +template inline Char thousands_sep(locale_ref loc) { + return Char(thousands_sep_impl(loc)); +} +template <> inline wchar_t thousands_sep(locale_ref loc) { + return thousands_sep_impl(loc); +} + +template FMT_API Char decimal_point_impl(locale_ref loc); +template inline Char decimal_point(locale_ref loc) { + return Char(decimal_point_impl(loc)); +} +template <> inline wchar_t decimal_point(locale_ref loc) { + return decimal_point_impl(loc); +} + +// Compares two characters for equality. +template bool equal2(const Char* lhs, const char* rhs) { + return lhs[0] == rhs[0] && lhs[1] == rhs[1]; +} +inline bool equal2(const char* lhs, const char* rhs) { + return memcmp(lhs, rhs, 2) == 0; +} + +// Copies two characters from src to dst. +template void copy2(Char* dst, const char* src) { + *dst++ = static_cast(*src++); + *dst = static_cast(*src); +} +FMT_INLINE void copy2(char* dst, const char* src) { memcpy(dst, src, 2); } + +template struct format_decimal_result { + Iterator begin; + Iterator end; +}; + +// Formats a decimal unsigned integer value writing into out pointing to a +// buffer of specified size. The caller must ensure that the buffer is large +// enough. +template +inline format_decimal_result format_decimal(Char* out, UInt value, + int size) { + FMT_ASSERT(size >= count_digits(value), "invalid digit count"); + out += size; + Char* end = out; + while (value >= 100) { + // Integer division is slow so do it for a group of two digits instead + // of for every digit. The idea comes from the talk by Alexandrescu + // "Three Optimization Tips for C++". See speed-test for a comparison. + out -= 2; + copy2(out, data::digits[value % 100]); + value /= 100; + } + if (value < 10) { + *--out = static_cast('0' + value); + return {out, end}; + } + out -= 2; + copy2(out, data::digits[value]); + return {out, end}; +} + +template >::value)> +inline format_decimal_result format_decimal(Iterator out, UInt value, + int size) { + // Buffer is large enough to hold all digits (digits10 + 1). + Char buffer[digits10() + 1]; + auto end = format_decimal(buffer, value, size).end; + return {out, detail::copy_str(buffer, end, out)}; +} + +template +inline Char* format_uint(Char* buffer, UInt value, int num_digits, + bool upper = false) { + buffer += num_digits; + Char* end = buffer; + do { + const char* digits = upper ? "0123456789ABCDEF" : data::hex_digits; + unsigned digit = (value & ((1 << BASE_BITS) - 1)); + *--buffer = static_cast(BASE_BITS < 4 ? static_cast('0' + digit) + : digits[digit]); + } while ((value >>= BASE_BITS) != 0); + return end; +} + +template +Char* format_uint(Char* buffer, detail::fallback_uintptr n, int num_digits, + bool = false) { + auto char_digits = std::numeric_limits::digits / 4; + int start = (num_digits + char_digits - 1) / char_digits - 1; + if (int start_digits = num_digits % char_digits) { + unsigned value = n.value[start--]; + buffer = format_uint(buffer, value, start_digits); + } + for (; start >= 0; --start) { + unsigned value = n.value[start]; + buffer += char_digits; + auto p = buffer; + for (int i = 0; i < char_digits; ++i) { + unsigned digit = (value & ((1 << BASE_BITS) - 1)); + *--p = static_cast(data::hex_digits[digit]); + value >>= BASE_BITS; + } + } + return buffer; +} + +template +inline It format_uint(It out, UInt value, int num_digits, bool upper = false) { + if (auto ptr = to_pointer(out, to_unsigned(num_digits))) { + format_uint(ptr, value, num_digits, upper); + return out; + } + // Buffer should be large enough to hold all digits (digits / BASE_BITS + 1). + char buffer[num_bits() / BASE_BITS + 1]; + format_uint(buffer, value, num_digits, upper); + return detail::copy_str(buffer, buffer + num_digits, out); +} + +// A converter from UTF-8 to UTF-16. +class utf8_to_utf16 { + private: + wmemory_buffer buffer_; + + public: + FMT_API explicit utf8_to_utf16(string_view s); + operator wstring_view() const { return {&buffer_[0], size()}; } + size_t size() const { return buffer_.size() - 1; } + const wchar_t* c_str() const { return &buffer_[0]; } + std::wstring str() const { return {&buffer_[0], size()}; } +}; + +template struct null {}; + +// Workaround an array initialization issue in gcc 4.8. +template struct fill_t { + private: + enum { max_size = 4 }; + Char data_[max_size] = {Char(' '), Char(0), Char(0), Char(0)}; + unsigned char size_ = 1; + + public: + FMT_CONSTEXPR void operator=(basic_string_view s) { + auto size = s.size(); + if (size > max_size) { + FMT_THROW(format_error("invalid fill")); + return; + } + for (size_t i = 0; i < size; ++i) data_[i] = s[i]; + size_ = static_cast(size); + } + + size_t size() const { return size_; } + const Char* data() const { return data_; } + + FMT_CONSTEXPR Char& operator[](size_t index) { return data_[index]; } + FMT_CONSTEXPR const Char& operator[](size_t index) const { + return data_[index]; + } +}; +} // namespace detail + +// We cannot use enum classes as bit fields because of a gcc bug +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61414. +namespace align { +enum type { none, left, right, center, numeric }; +} +using align_t = align::type; + +namespace sign { +enum type { none, minus, plus, space }; +} +using sign_t = sign::type; + +// Format specifiers for built-in and string types. +template struct basic_format_specs { + int width; + int precision; + char type; + align_t align : 4; + sign_t sign : 3; + bool alt : 1; // Alternate form ('#'). + detail::fill_t fill; + + constexpr basic_format_specs() + : width(0), + precision(-1), + type(0), + align(align::none), + sign(sign::none), + alt(false) {} +}; + +using format_specs = basic_format_specs; + +namespace detail { +namespace dragonbox { + +// Type-specific information that Dragonbox uses. +template struct float_info; + +template <> struct float_info { + using carrier_uint = uint32_t; + static const int significand_bits = 23; + static const int exponent_bits = 8; + static const int min_exponent = -126; + static const int max_exponent = 127; + static const int exponent_bias = -127; + static const int decimal_digits = 9; + static const int kappa = 1; + static const int big_divisor = 100; + static const int small_divisor = 10; + static const int min_k = -31; + static const int max_k = 46; + static const int cache_bits = 64; + static const int divisibility_check_by_5_threshold = 39; + static const int case_fc_pm_half_lower_threshold = -1; + static const int case_fc_pm_half_upper_threshold = 6; + static const int case_fc_lower_threshold = -2; + static const int case_fc_upper_threshold = 6; + static const int case_shorter_interval_left_endpoint_lower_threshold = 2; + static const int case_shorter_interval_left_endpoint_upper_threshold = 3; + static const int shorter_interval_tie_lower_threshold = -35; + static const int shorter_interval_tie_upper_threshold = -35; + static const int max_trailing_zeros = 7; +}; + +template <> struct float_info { + using carrier_uint = uint64_t; + static const int significand_bits = 52; + static const int exponent_bits = 11; + static const int min_exponent = -1022; + static const int max_exponent = 1023; + static const int exponent_bias = -1023; + static const int decimal_digits = 17; + static const int kappa = 2; + static const int big_divisor = 1000; + static const int small_divisor = 100; + static const int min_k = -292; + static const int max_k = 326; + static const int cache_bits = 128; + static const int divisibility_check_by_5_threshold = 86; + static const int case_fc_pm_half_lower_threshold = -2; + static const int case_fc_pm_half_upper_threshold = 9; + static const int case_fc_lower_threshold = -4; + static const int case_fc_upper_threshold = 9; + static const int case_shorter_interval_left_endpoint_lower_threshold = 2; + static const int case_shorter_interval_left_endpoint_upper_threshold = 3; + static const int shorter_interval_tie_lower_threshold = -77; + static const int shorter_interval_tie_upper_threshold = -77; + static const int max_trailing_zeros = 16; +}; + +template struct decimal_fp { + using significand_type = typename float_info::carrier_uint; + significand_type significand; + int exponent; +}; + +template FMT_API decimal_fp to_decimal(T x) FMT_NOEXCEPT; +} // namespace dragonbox + +template +constexpr typename dragonbox::float_info::carrier_uint exponent_mask() { + using uint = typename dragonbox::float_info::carrier_uint; + return ((uint(1) << dragonbox::float_info::exponent_bits) - 1) + << dragonbox::float_info::significand_bits; +} + +// A floating-point presentation format. +enum class float_format : unsigned char { + general, // General: exponent notation or fixed point based on magnitude. + exp, // Exponent notation with the default precision of 6, e.g. 1.2e-3. + fixed, // Fixed point with the default precision of 6, e.g. 0.0012. + hex +}; + +struct float_specs { + int precision; + float_format format : 8; + sign_t sign : 8; + bool upper : 1; + bool locale : 1; + bool binary32 : 1; + bool use_grisu : 1; + bool showpoint : 1; +}; + +// Writes the exponent exp in the form "[+-]d{2,3}" to buffer. +template It write_exponent(int exp, It it) { + FMT_ASSERT(-10000 < exp && exp < 10000, "exponent out of range"); + if (exp < 0) { + *it++ = static_cast('-'); + exp = -exp; + } else { + *it++ = static_cast('+'); + } + if (exp >= 100) { + const char* top = data::digits[exp / 100]; + if (exp >= 1000) *it++ = static_cast(top[0]); + *it++ = static_cast(top[1]); + exp %= 100; + } + const char* d = data::digits[exp]; + *it++ = static_cast(d[0]); + *it++ = static_cast(d[1]); + return it; +} + +template +int format_float(T value, int precision, float_specs specs, buffer& buf); + +// Formats a floating-point number with snprintf. +template +int snprintf_float(T value, int precision, float_specs specs, + buffer& buf); + +template T promote_float(T value) { return value; } +inline double promote_float(float value) { return static_cast(value); } + +template +FMT_CONSTEXPR void handle_int_type_spec(char spec, Handler&& handler) { + switch (spec) { + case 0: + case 'd': + handler.on_dec(); + break; + case 'x': + case 'X': + handler.on_hex(); + break; + case 'b': + case 'B': + handler.on_bin(); + break; + case 'o': + handler.on_oct(); + break; +#ifdef FMT_DEPRECATED_N_SPECIFIER + case 'n': +#endif + case 'L': + handler.on_num(); + break; + case 'c': + handler.on_chr(); + break; + default: + handler.on_error(); + } +} + +template +FMT_CONSTEXPR float_specs parse_float_type_spec( + const basic_format_specs& specs, ErrorHandler&& eh = {}) { + auto result = float_specs(); + result.showpoint = specs.alt; + switch (specs.type) { + case 0: + result.format = float_format::general; + result.showpoint |= specs.precision > 0; + break; + case 'G': + result.upper = true; + FMT_FALLTHROUGH; + case 'g': + result.format = float_format::general; + break; + case 'E': + result.upper = true; + FMT_FALLTHROUGH; + case 'e': + result.format = float_format::exp; + result.showpoint |= specs.precision != 0; + break; + case 'F': + result.upper = true; + FMT_FALLTHROUGH; + case 'f': + result.format = float_format::fixed; + result.showpoint |= specs.precision != 0; + break; + case 'A': + result.upper = true; + FMT_FALLTHROUGH; + case 'a': + result.format = float_format::hex; + break; +#ifdef FMT_DEPRECATED_N_SPECIFIER + case 'n': +#endif + case 'L': + result.locale = true; + break; + default: + eh.on_error("invalid type specifier"); + break; + } + return result; +} + +template +FMT_CONSTEXPR void handle_char_specs(const basic_format_specs* specs, + Handler&& handler) { + if (!specs) return handler.on_char(); + if (specs->type && specs->type != 'c') return handler.on_int(); + if (specs->align == align::numeric || specs->sign != sign::none || specs->alt) + handler.on_error("invalid format specifier for char"); + handler.on_char(); +} + +template +FMT_CONSTEXPR void handle_cstring_type_spec(Char spec, Handler&& handler) { + if (spec == 0 || spec == 's') + handler.on_string(); + else if (spec == 'p') + handler.on_pointer(); + else + handler.on_error("invalid type specifier"); +} + +template +FMT_CONSTEXPR void check_string_type_spec(Char spec, ErrorHandler&& eh) { + if (spec != 0 && spec != 's') eh.on_error("invalid type specifier"); +} + +template +FMT_CONSTEXPR void check_pointer_type_spec(Char spec, ErrorHandler&& eh) { + if (spec != 0 && spec != 'p') eh.on_error("invalid type specifier"); +} + +template class int_type_checker : private ErrorHandler { + public: + FMT_CONSTEXPR explicit int_type_checker(ErrorHandler eh) : ErrorHandler(eh) {} + + FMT_CONSTEXPR void on_dec() {} + FMT_CONSTEXPR void on_hex() {} + FMT_CONSTEXPR void on_bin() {} + FMT_CONSTEXPR void on_oct() {} + FMT_CONSTEXPR void on_num() {} + FMT_CONSTEXPR void on_chr() {} + + FMT_CONSTEXPR void on_error() { + ErrorHandler::on_error("invalid type specifier"); + } +}; + +template +class char_specs_checker : public ErrorHandler { + private: + char type_; + + public: + FMT_CONSTEXPR char_specs_checker(char type, ErrorHandler eh) + : ErrorHandler(eh), type_(type) {} + + FMT_CONSTEXPR void on_int() { + handle_int_type_spec(type_, int_type_checker(*this)); + } + FMT_CONSTEXPR void on_char() {} +}; + +template +class cstring_type_checker : public ErrorHandler { + public: + FMT_CONSTEXPR explicit cstring_type_checker(ErrorHandler eh) + : ErrorHandler(eh) {} + + FMT_CONSTEXPR void on_string() {} + FMT_CONSTEXPR void on_pointer() {} +}; + +template +FMT_NOINLINE OutputIt fill(OutputIt it, size_t n, const fill_t& fill) { + auto fill_size = fill.size(); + if (fill_size == 1) return std::fill_n(it, n, fill[0]); + for (size_t i = 0; i < n; ++i) it = std::copy_n(fill.data(), fill_size, it); + return it; +} + +// Writes the output of f, padded according to format specifications in specs. +// size: output size in code units. +// width: output display width in (terminal) column positions. +template +inline OutputIt write_padded(OutputIt out, + const basic_format_specs& specs, size_t size, + size_t width, F&& f) { + static_assert(align == align::left || align == align::right, ""); + unsigned spec_width = to_unsigned(specs.width); + size_t padding = spec_width > width ? spec_width - width : 0; + auto* shifts = align == align::left ? data::left_padding_shifts + : data::right_padding_shifts; + size_t left_padding = padding >> shifts[specs.align]; + auto it = reserve(out, size + padding * specs.fill.size()); + it = fill(it, left_padding, specs.fill); + it = f(it); + it = fill(it, padding - left_padding, specs.fill); + return base_iterator(out, it); +} + +template +inline OutputIt write_padded(OutputIt out, + const basic_format_specs& specs, size_t size, + F&& f) { + return write_padded(out, specs, size, size, f); +} + +template +OutputIt write_bytes(OutputIt out, string_view bytes, + const basic_format_specs& specs) { + using iterator = remove_reference_t; + return write_padded(out, specs, bytes.size(), [bytes](iterator it) { + const char* data = bytes.data(); + return copy_str(data, data + bytes.size(), it); + }); +} + +// Data for write_int that doesn't depend on output iterator type. It is used to +// avoid template code bloat. +template struct write_int_data { + size_t size; + size_t padding; + + write_int_data(int num_digits, string_view prefix, + const basic_format_specs& specs) + : size(prefix.size() + to_unsigned(num_digits)), padding(0) { + if (specs.align == align::numeric) { + auto width = to_unsigned(specs.width); + if (width > size) { + padding = width - size; + size = width; + } + } else if (specs.precision > num_digits) { + size = prefix.size() + to_unsigned(specs.precision); + padding = to_unsigned(specs.precision - num_digits); + } + } +}; + +// Writes an integer in the format +// +// where are written by f(it). +template +OutputIt write_int(OutputIt out, int num_digits, string_view prefix, + const basic_format_specs& specs, F f) { + auto data = write_int_data(num_digits, prefix, specs); + using iterator = remove_reference_t; + return write_padded(out, specs, data.size, [=](iterator it) { + if (prefix.size() != 0) + it = copy_str(prefix.begin(), prefix.end(), it); + it = std::fill_n(it, data.padding, static_cast('0')); + return f(it); + }); +} + +template +OutputIt write(OutputIt out, basic_string_view s, + const basic_format_specs& specs) { + auto data = s.data(); + auto size = s.size(); + if (specs.precision >= 0 && to_unsigned(specs.precision) < size) + size = code_point_index(s, to_unsigned(specs.precision)); + auto width = specs.width != 0 + ? count_code_points(basic_string_view(data, size)) + : 0; + using iterator = remove_reference_t; + return write_padded(out, specs, size, width, [=](iterator it) { + return copy_str(data, data + size, it); + }); +} + +// The handle_int_type_spec handler that writes an integer. +template struct int_writer { + OutputIt out; + locale_ref locale; + const basic_format_specs& specs; + UInt abs_value; + char prefix[4]; + unsigned prefix_size; + + using iterator = + remove_reference_t(), 0))>; + + string_view get_prefix() const { return string_view(prefix, prefix_size); } + + template + int_writer(OutputIt output, locale_ref loc, Int value, + const basic_format_specs& s) + : out(output), + locale(loc), + specs(s), + abs_value(static_cast(value)), + prefix_size(0) { + static_assert(std::is_same, UInt>::value, ""); + if (is_negative(value)) { + prefix[0] = '-'; + ++prefix_size; + abs_value = 0 - abs_value; + } else if (specs.sign != sign::none && specs.sign != sign::minus) { + prefix[0] = specs.sign == sign::plus ? '+' : ' '; + ++prefix_size; + } + } + + void on_dec() { + auto num_digits = count_digits(abs_value); + out = write_int( + out, num_digits, get_prefix(), specs, [this, num_digits](iterator it) { + return format_decimal(it, abs_value, num_digits).end; + }); + } + + void on_hex() { + if (specs.alt) { + prefix[prefix_size++] = '0'; + prefix[prefix_size++] = specs.type; + } + int num_digits = count_digits<4>(abs_value); + out = write_int(out, num_digits, get_prefix(), specs, + [this, num_digits](iterator it) { + return format_uint<4, Char>(it, abs_value, num_digits, + specs.type != 'x'); + }); + } + + void on_bin() { + if (specs.alt) { + prefix[prefix_size++] = '0'; + prefix[prefix_size++] = static_cast(specs.type); + } + int num_digits = count_digits<1>(abs_value); + out = write_int(out, num_digits, get_prefix(), specs, + [this, num_digits](iterator it) { + return format_uint<1, Char>(it, abs_value, num_digits); + }); + } + + void on_oct() { + int num_digits = count_digits<3>(abs_value); + if (specs.alt && specs.precision <= num_digits && abs_value != 0) { + // Octal prefix '0' is counted as a digit, so only add it if precision + // is not greater than the number of digits. + prefix[prefix_size++] = '0'; + } + out = write_int(out, num_digits, get_prefix(), specs, + [this, num_digits](iterator it) { + return format_uint<3, Char>(it, abs_value, num_digits); + }); + } + + enum { sep_size = 1 }; + + void on_num() { + std::string groups = grouping(locale); + if (groups.empty()) return on_dec(); + auto sep = thousands_sep(locale); + if (!sep) return on_dec(); + int num_digits = count_digits(abs_value); + int size = num_digits, n = num_digits; + std::string::const_iterator group = groups.cbegin(); + while (group != groups.cend() && n > *group && *group > 0 && + *group != max_value()) { + size += sep_size; + n -= *group; + ++group; + } + if (group == groups.cend()) size += sep_size * ((n - 1) / groups.back()); + char digits[40]; + format_decimal(digits, abs_value, num_digits); + basic_memory_buffer buffer; + size += static_cast(prefix_size); + const auto usize = to_unsigned(size); + buffer.resize(usize); + basic_string_view s(&sep, sep_size); + // Index of a decimal digit with the least significant digit having index 0. + int digit_index = 0; + group = groups.cbegin(); + auto p = buffer.data() + size - 1; + for (int i = num_digits - 1; i > 0; --i) { + *p-- = static_cast(digits[i]); + if (*group <= 0 || ++digit_index % *group != 0 || + *group == max_value()) + continue; + if (group + 1 != groups.cend()) { + digit_index = 0; + ++group; + } + std::uninitialized_copy(s.data(), s.data() + s.size(), + make_checked(p, s.size())); + p -= s.size(); + } + *p-- = static_cast(*digits); + if (prefix_size != 0) *p = static_cast('-'); + auto data = buffer.data(); + out = write_padded( + out, specs, usize, usize, + [=](iterator it) { return copy_str(data, data + size, it); }); + } + + void on_chr() { *out++ = static_cast(abs_value); } + + FMT_NORETURN void on_error() { + FMT_THROW(format_error("invalid type specifier")); + } +}; + +template +OutputIt write_nonfinite(OutputIt out, bool isinf, + const basic_format_specs& specs, + const float_specs& fspecs) { + auto str = + isinf ? (fspecs.upper ? "INF" : "inf") : (fspecs.upper ? "NAN" : "nan"); + constexpr size_t str_size = 3; + auto sign = fspecs.sign; + auto size = str_size + (sign ? 1 : 0); + using iterator = remove_reference_t; + return write_padded(out, specs, size, [=](iterator it) { + if (sign) *it++ = static_cast(data::signs[sign]); + return copy_str(str, str + str_size, it); + }); +} + +// A decimal floating-point number significand * pow(10, exp). +struct big_decimal_fp { + const char* significand; + int significand_size; + int exponent; +}; + +inline int get_significand_size(const big_decimal_fp& fp) { + return fp.significand_size; +} +template +inline int get_significand_size(const dragonbox::decimal_fp& fp) { + return count_digits(fp.significand); +} + +template +inline OutputIt write_significand(OutputIt out, const char* significand, + int& significand_size) { + return copy_str(significand, significand + significand_size, out); +} +template +inline OutputIt write_significand(OutputIt out, UInt significand, + int significand_size) { + return format_decimal(out, significand, significand_size).end; +} + +template ::value)> +inline Char* write_significand(Char* out, UInt significand, + int significand_size, int integral_size, + Char decimal_point) { + if (!decimal_point) + return format_decimal(out, significand, significand_size).end; + auto end = format_decimal(out + 1, significand, significand_size).end; + if (integral_size == 1) + out[0] = out[1]; + else + std::copy_n(out + 1, integral_size, out); + out[integral_size] = decimal_point; + return end; +} + +template >::value)> +inline OutputIt write_significand(OutputIt out, UInt significand, + int significand_size, int integral_size, + Char decimal_point) { + // Buffer is large enough to hold digits (digits10 + 1) and a decimal point. + Char buffer[digits10() + 2]; + auto end = write_significand(buffer, significand, significand_size, + integral_size, decimal_point); + return detail::copy_str(buffer, end, out); +} + +template +inline OutputIt write_significand(OutputIt out, const char* significand, + int significand_size, int integral_size, + Char decimal_point) { + out = detail::copy_str(significand, significand + integral_size, out); + if (!decimal_point) return out; + *out++ = decimal_point; + return detail::copy_str(significand + integral_size, + significand + significand_size, out); +} + +template +OutputIt write_float(OutputIt out, const DecimalFP& fp, + const basic_format_specs& specs, float_specs fspecs, + Char decimal_point) { + auto significand = fp.significand; + int significand_size = get_significand_size(fp); + static const Char zero = static_cast('0'); + auto sign = fspecs.sign; + size_t size = to_unsigned(significand_size) + (sign ? 1 : 0); + using iterator = remove_reference_t; + + int output_exp = fp.exponent + significand_size - 1; + auto use_exp_format = [=]() { + if (fspecs.format == float_format::exp) return true; + if (fspecs.format != float_format::general) return false; + // Use the fixed notation if the exponent is in [exp_lower, exp_upper), + // e.g. 0.0001 instead of 1e-04. Otherwise use the exponent notation. + const int exp_lower = -4, exp_upper = 16; + return output_exp < exp_lower || + output_exp >= (fspecs.precision > 0 ? fspecs.precision : exp_upper); + }; + if (use_exp_format()) { + int num_zeros = 0; + if (fspecs.showpoint) { + num_zeros = (std::max)(fspecs.precision - significand_size, 0); + size += to_unsigned(num_zeros); + } else if (significand_size == 1) { + decimal_point = Char(); + } + auto abs_output_exp = output_exp >= 0 ? output_exp : -output_exp; + int exp_digits = 2; + if (abs_output_exp >= 100) exp_digits = abs_output_exp >= 1000 ? 4 : 3; + + size += to_unsigned((decimal_point ? 1 : 0) + 2 + exp_digits); + char exp_char = fspecs.upper ? 'E' : 'e'; + auto write = [=](iterator it) { + if (sign) *it++ = static_cast(data::signs[sign]); + // Insert a decimal point after the first digit and add an exponent. + it = write_significand(it, significand, significand_size, 1, + decimal_point); + if (num_zeros > 0) it = std::fill_n(it, num_zeros, zero); + *it++ = static_cast(exp_char); + return write_exponent(output_exp, it); + }; + return specs.width > 0 ? write_padded(out, specs, size, write) + : base_iterator(out, write(reserve(out, size))); + } + + int exp = fp.exponent + significand_size; + if (fp.exponent >= 0) { + // 1234e5 -> 123400000[.0+] + size += to_unsigned(fp.exponent); + int num_zeros = fspecs.precision - exp; +#ifdef FMT_FUZZ + if (num_zeros > 5000) + throw std::runtime_error("fuzz mode - avoiding excessive cpu use"); +#endif + if (fspecs.showpoint) { + if (num_zeros <= 0 && fspecs.format != float_format::fixed) num_zeros = 1; + if (num_zeros > 0) size += to_unsigned(num_zeros); + } + return write_padded(out, specs, size, [&](iterator it) { + if (sign) *it++ = static_cast(data::signs[sign]); + it = write_significand(it, significand, significand_size); + it = std::fill_n(it, fp.exponent, zero); + if (!fspecs.showpoint) return it; + *it++ = decimal_point; + return num_zeros > 0 ? std::fill_n(it, num_zeros, zero) : it; + }); + } else if (exp > 0) { + // 1234e-2 -> 12.34[0+] + int num_zeros = fspecs.showpoint ? fspecs.precision - significand_size : 0; + size += 1 + to_unsigned(num_zeros > 0 ? num_zeros : 0); + return write_padded(out, specs, size, [&](iterator it) { + if (sign) *it++ = static_cast(data::signs[sign]); + it = write_significand(it, significand, significand_size, exp, + decimal_point); + return num_zeros > 0 ? std::fill_n(it, num_zeros, zero) : it; + }); + } + // 1234e-6 -> 0.001234 + int num_zeros = -exp; + if (significand_size == 0 && fspecs.precision >= 0 && + fspecs.precision < num_zeros) { + num_zeros = fspecs.precision; + } + size += 2 + to_unsigned(num_zeros); + return write_padded(out, specs, size, [&](iterator it) { + if (sign) *it++ = static_cast(data::signs[sign]); + *it++ = zero; + if (num_zeros == 0 && significand_size == 0 && !fspecs.showpoint) return it; + *it++ = decimal_point; + it = std::fill_n(it, num_zeros, zero); + return write_significand(it, significand, significand_size); + }); +} + +template ::value)> +OutputIt write(OutputIt out, T value, basic_format_specs specs, + locale_ref loc = {}) { + if (const_check(!is_supported_floating_point(value))) return out; + float_specs fspecs = parse_float_type_spec(specs); + fspecs.sign = specs.sign; + if (std::signbit(value)) { // value < 0 is false for NaN so use signbit. + fspecs.sign = sign::minus; + value = -value; + } else if (fspecs.sign == sign::minus) { + fspecs.sign = sign::none; + } + + if (!std::isfinite(value)) + return write_nonfinite(out, std::isinf(value), specs, fspecs); + + if (specs.align == align::numeric && fspecs.sign) { + auto it = reserve(out, 1); + *it++ = static_cast(data::signs[fspecs.sign]); + out = base_iterator(out, it); + fspecs.sign = sign::none; + if (specs.width != 0) --specs.width; + } + + memory_buffer buffer; + if (fspecs.format == float_format::hex) { + if (fspecs.sign) buffer.push_back(data::signs[fspecs.sign]); + snprintf_float(promote_float(value), specs.precision, fspecs, buffer); + return write_bytes(out, {buffer.data(), buffer.size()}, specs); + } + int precision = specs.precision >= 0 || !specs.type ? specs.precision : 6; + if (fspecs.format == float_format::exp) { + if (precision == max_value()) + FMT_THROW(format_error("number is too big")); + else + ++precision; + } + if (const_check(std::is_same())) fspecs.binary32 = true; + fspecs.use_grisu = is_fast_float(); + int exp = format_float(promote_float(value), precision, fspecs, buffer); + fspecs.precision = precision; + Char point = + fspecs.locale ? decimal_point(loc) : static_cast('.'); + auto fp = big_decimal_fp{buffer.data(), static_cast(buffer.size()), exp}; + return write_float(out, fp, specs, fspecs, point); +} + +template ::value)> +OutputIt write(OutputIt out, T value) { + if (const_check(!is_supported_floating_point(value))) return out; + + using floaty = conditional_t::value, double, T>; + using uint = typename dragonbox::float_info::carrier_uint; + auto bits = bit_cast(value); + + auto fspecs = float_specs(); + auto sign_bit = bits & (uint(1) << (num_bits() - 1)); + if (sign_bit != 0) { + fspecs.sign = sign::minus; + value = -value; + } + + static const auto specs = basic_format_specs(); + uint mask = exponent_mask(); + if ((bits & mask) == mask) + return write_nonfinite(out, std::isinf(value), specs, fspecs); + + auto dec = dragonbox::to_decimal(static_cast(value)); + return write_float(out, dec, specs, fspecs, static_cast('.')); +} + +template ::value && + !is_fast_float::value)> +inline OutputIt write(OutputIt out, T value) { + return write(out, value, basic_format_specs()); +} + +template +OutputIt write_char(OutputIt out, Char value, + const basic_format_specs& specs) { + using iterator = remove_reference_t; + return write_padded(out, specs, 1, [=](iterator it) { + *it++ = value; + return it; + }); +} + +template +OutputIt write_ptr(OutputIt out, UIntPtr value, + const basic_format_specs* specs) { + int num_digits = count_digits<4>(value); + auto size = to_unsigned(num_digits) + size_t(2); + using iterator = remove_reference_t; + auto write = [=](iterator it) { + *it++ = static_cast('0'); + *it++ = static_cast('x'); + return format_uint<4, Char>(it, value, num_digits); + }; + return specs ? write_padded(out, *specs, size, write) + : base_iterator(out, write(reserve(out, size))); +} + +template struct is_integral : std::is_integral {}; +template <> struct is_integral : std::true_type {}; +template <> struct is_integral : std::true_type {}; + +template +OutputIt write(OutputIt out, monostate) { + FMT_ASSERT(false, ""); + return out; +} + +template ::value)> +OutputIt write(OutputIt out, string_view value) { + auto it = reserve(out, value.size()); + it = copy_str(value.begin(), value.end(), it); + return base_iterator(out, it); +} + +template +OutputIt write(OutputIt out, basic_string_view value) { + auto it = reserve(out, value.size()); + it = std::copy(value.begin(), value.end(), it); + return base_iterator(out, it); +} + +template +buffer_appender write(buffer_appender out, + basic_string_view value) { + get_container(out).append(value.begin(), value.end()); + return out; +} + +template ::value && + !std::is_same::value && + !std::is_same::value)> +OutputIt write(OutputIt out, T value) { + auto abs_value = static_cast>(value); + bool negative = is_negative(value); + // Don't do -abs_value since it trips unsigned-integer-overflow sanitizer. + if (negative) abs_value = ~abs_value + 1; + int num_digits = count_digits(abs_value); + auto size = (negative ? 1 : 0) + static_cast(num_digits); + auto it = reserve(out, size); + if (auto ptr = to_pointer(it, size)) { + if (negative) *ptr++ = static_cast('-'); + format_decimal(ptr, abs_value, num_digits); + return out; + } + if (negative) *it++ = static_cast('-'); + it = format_decimal(it, abs_value, num_digits).end; + return base_iterator(out, it); +} + +template +OutputIt write(OutputIt out, bool value) { + return write(out, string_view(value ? "true" : "false")); +} + +template +OutputIt write(OutputIt out, Char value) { + auto it = reserve(out, 1); + *it++ = value; + return base_iterator(out, it); +} + +template +OutputIt write(OutputIt out, const Char* value) { + if (!value) { + FMT_THROW(format_error("string pointer is null")); + } else { + auto length = std::char_traits::length(value); + out = write(out, basic_string_view(value, length)); + } + return out; +} + +template +OutputIt write(OutputIt out, const void* value) { + return write_ptr(out, to_uintptr(value), nullptr); +} + +template +auto write(OutputIt out, const T& value) -> typename std::enable_if< + mapped_type_constant>::value == + type::custom_type, + OutputIt>::type { + using context_type = basic_format_context; + using formatter_type = + conditional_t::value, + typename context_type::template formatter_type, + fallback_formatter>; + context_type ctx(out, {}, {}); + return formatter_type().format(value, ctx); +} + +// An argument visitor that formats the argument and writes it via the output +// iterator. It's a class and not a generic lambda for compatibility with C++11. +template struct default_arg_formatter { + using context = basic_format_context; + + OutputIt out; + basic_format_args args; + locale_ref loc; + + template OutputIt operator()(T value) { + return write(out, value); + } + + OutputIt operator()(typename basic_format_arg::handle handle) { + basic_format_parse_context parse_ctx({}); + basic_format_context format_ctx(out, args, loc); + handle.format(parse_ctx, format_ctx); + return format_ctx.out(); + } +}; + +template +class arg_formatter_base { + public: + using iterator = OutputIt; + using char_type = Char; + using format_specs = basic_format_specs; + + private: + iterator out_; + locale_ref locale_; + format_specs* specs_; + + // Attempts to reserve space for n extra characters in the output range. + // Returns a pointer to the reserved range or a reference to out_. + auto reserve(size_t n) -> decltype(detail::reserve(out_, n)) { + return detail::reserve(out_, n); + } + + using reserve_iterator = remove_reference_t(), 0))>; + + template void write_int(T value, const format_specs& spec) { + using uint_type = uint32_or_64_or_128_t; + int_writer w(out_, locale_, value, spec); + handle_int_type_spec(spec.type, w); + out_ = w.out; + } + + void write(char value) { + auto&& it = reserve(1); + *it++ = value; + } + + template ::value)> + void write(Ch value) { + out_ = detail::write(out_, value); + } + + void write(string_view value) { + auto&& it = reserve(value.size()); + it = copy_str(value.begin(), value.end(), it); + } + void write(wstring_view value) { + static_assert(std::is_same::value, ""); + auto&& it = reserve(value.size()); + it = std::copy(value.begin(), value.end(), it); + } + + template + void write(const Ch* s, size_t size, const format_specs& specs) { + auto width = specs.width != 0 + ? count_code_points(basic_string_view(s, size)) + : 0; + out_ = write_padded(out_, specs, size, width, [=](reserve_iterator it) { + return copy_str(s, s + size, it); + }); + } + + template + void write(basic_string_view s, const format_specs& specs = {}) { + out_ = detail::write(out_, s, specs); + } + + void write_pointer(const void* p) { + out_ = write_ptr(out_, to_uintptr(p), specs_); + } + + struct char_spec_handler : ErrorHandler { + arg_formatter_base& formatter; + Char value; + + char_spec_handler(arg_formatter_base& f, Char val) + : formatter(f), value(val) {} + + void on_int() { + // char is only formatted as int if there are specs. + formatter.write_int(static_cast(value), *formatter.specs_); + } + void on_char() { + if (formatter.specs_) + formatter.out_ = write_char(formatter.out_, value, *formatter.specs_); + else + formatter.write(value); + } + }; + + struct cstring_spec_handler : error_handler { + arg_formatter_base& formatter; + const Char* value; + + cstring_spec_handler(arg_formatter_base& f, const Char* val) + : formatter(f), value(val) {} + + void on_string() { formatter.write(value); } + void on_pointer() { formatter.write_pointer(value); } + }; + + protected: + iterator out() { return out_; } + format_specs* specs() { return specs_; } + + void write(bool value) { + if (specs_) + write(string_view(value ? "true" : "false"), *specs_); + else + out_ = detail::write(out_, value); + } + + void write(const Char* value) { + if (!value) { + FMT_THROW(format_error("string pointer is null")); + } else { + auto length = std::char_traits::length(value); + basic_string_view sv(value, length); + specs_ ? write(sv, *specs_) : write(sv); + } + } + + public: + arg_formatter_base(OutputIt out, format_specs* s, locale_ref loc) + : out_(out), locale_(loc), specs_(s) {} + + iterator operator()(monostate) { + FMT_ASSERT(false, "invalid argument type"); + return out_; + } + + template ::value)> + FMT_INLINE iterator operator()(T value) { + if (specs_) + write_int(value, *specs_); + else + out_ = detail::write(out_, value); + return out_; + } + + iterator operator()(Char value) { + handle_char_specs(specs_, + char_spec_handler(*this, static_cast(value))); + return out_; + } + + iterator operator()(bool value) { + if (specs_ && specs_->type) return (*this)(value ? 1 : 0); + write(value != 0); + return out_; + } + + template ::value)> + iterator operator()(T value) { + auto specs = specs_ ? *specs_ : format_specs(); + if (const_check(is_supported_floating_point(value))) + out_ = detail::write(out_, value, specs, locale_); + else + FMT_ASSERT(false, "unsupported float argument type"); + return out_; + } + + iterator operator()(const Char* value) { + if (!specs_) return write(value), out_; + handle_cstring_type_spec(specs_->type, cstring_spec_handler(*this, value)); + return out_; + } + + iterator operator()(basic_string_view value) { + if (specs_) { + check_string_type_spec(specs_->type, error_handler()); + write(value, *specs_); + } else { + write(value); + } + return out_; + } + + iterator operator()(const void* value) { + if (specs_) check_pointer_type_spec(specs_->type, error_handler()); + write_pointer(value); + return out_; + } +}; + +/** The default argument formatter. */ +template +class arg_formatter : public arg_formatter_base { + private: + using char_type = Char; + using base = arg_formatter_base; + using context_type = basic_format_context; + + context_type& ctx_; + basic_format_parse_context* parse_ctx_; + const Char* ptr_; + + public: + using iterator = typename base::iterator; + using format_specs = typename base::format_specs; + + /** + \rst + Constructs an argument formatter object. + *ctx* is a reference to the formatting context, + *specs* contains format specifier information for standard argument types. + \endrst + */ + explicit arg_formatter( + context_type& ctx, + basic_format_parse_context* parse_ctx = nullptr, + format_specs* specs = nullptr, const Char* ptr = nullptr) + : base(ctx.out(), specs, ctx.locale()), + ctx_(ctx), + parse_ctx_(parse_ctx), + ptr_(ptr) {} + + using base::operator(); + + /** Formats an argument of a user-defined type. */ + iterator operator()(typename basic_format_arg::handle handle) { + if (ptr_) advance_to(*parse_ctx_, ptr_); + handle.format(*parse_ctx_, ctx_); + return ctx_.out(); + } +}; + +template FMT_CONSTEXPR bool is_name_start(Char c) { + return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || '_' == c; +} + +// Parses the range [begin, end) as an unsigned integer. This function assumes +// that the range is non-empty and the first character is a digit. +template +FMT_CONSTEXPR int parse_nonnegative_int(const Char*& begin, const Char* end, + ErrorHandler&& eh) { + FMT_ASSERT(begin != end && '0' <= *begin && *begin <= '9', ""); + unsigned value = 0; + // Convert to unsigned to prevent a warning. + constexpr unsigned max_int = max_value(); + unsigned big = max_int / 10; + do { + // Check for overflow. + if (value > big) { + value = max_int + 1; + break; + } + value = value * 10 + unsigned(*begin - '0'); + ++begin; + } while (begin != end && '0' <= *begin && *begin <= '9'); + if (value > max_int) eh.on_error("number is too big"); + return static_cast(value); +} + +template class custom_formatter { + private: + using char_type = typename Context::char_type; + + basic_format_parse_context& parse_ctx_; + Context& ctx_; + + public: + explicit custom_formatter(basic_format_parse_context& parse_ctx, + Context& ctx) + : parse_ctx_(parse_ctx), ctx_(ctx) {} + + void operator()(typename basic_format_arg::handle h) const { + h.format(parse_ctx_, ctx_); + } + + template void operator()(T) const {} +}; + +template +using is_integer = + bool_constant::value && !std::is_same::value && + !std::is_same::value && + !std::is_same::value>; + +template class width_checker { + public: + explicit FMT_CONSTEXPR width_checker(ErrorHandler& eh) : handler_(eh) {} + + template ::value)> + FMT_CONSTEXPR unsigned long long operator()(T value) { + if (is_negative(value)) handler_.on_error("negative width"); + return static_cast(value); + } + + template ::value)> + FMT_CONSTEXPR unsigned long long operator()(T) { + handler_.on_error("width is not integer"); + return 0; + } + + private: + ErrorHandler& handler_; +}; + +template class precision_checker { + public: + explicit FMT_CONSTEXPR precision_checker(ErrorHandler& eh) : handler_(eh) {} + + template ::value)> + FMT_CONSTEXPR unsigned long long operator()(T value) { + if (is_negative(value)) handler_.on_error("negative precision"); + return static_cast(value); + } + + template ::value)> + FMT_CONSTEXPR unsigned long long operator()(T) { + handler_.on_error("precision is not integer"); + return 0; + } + + private: + ErrorHandler& handler_; +}; + +// A format specifier handler that sets fields in basic_format_specs. +template class specs_setter { + public: + explicit FMT_CONSTEXPR specs_setter(basic_format_specs& specs) + : specs_(specs) {} + + FMT_CONSTEXPR specs_setter(const specs_setter& other) + : specs_(other.specs_) {} + + FMT_CONSTEXPR void on_align(align_t align) { specs_.align = align; } + FMT_CONSTEXPR void on_fill(basic_string_view fill) { + specs_.fill = fill; + } + FMT_CONSTEXPR void on_plus() { specs_.sign = sign::plus; } + FMT_CONSTEXPR void on_minus() { specs_.sign = sign::minus; } + FMT_CONSTEXPR void on_space() { specs_.sign = sign::space; } + FMT_CONSTEXPR void on_hash() { specs_.alt = true; } + + FMT_CONSTEXPR void on_zero() { + specs_.align = align::numeric; + specs_.fill[0] = Char('0'); + } + + FMT_CONSTEXPR void on_width(int width) { specs_.width = width; } + FMT_CONSTEXPR void on_precision(int precision) { + specs_.precision = precision; + } + FMT_CONSTEXPR void end_precision() {} + + FMT_CONSTEXPR void on_type(Char type) { + specs_.type = static_cast(type); + } + + protected: + basic_format_specs& specs_; +}; + +template class numeric_specs_checker { + public: + FMT_CONSTEXPR numeric_specs_checker(ErrorHandler& eh, detail::type arg_type) + : error_handler_(eh), arg_type_(arg_type) {} + + FMT_CONSTEXPR void require_numeric_argument() { + if (!is_arithmetic_type(arg_type_)) + error_handler_.on_error("format specifier requires numeric argument"); + } + + FMT_CONSTEXPR void check_sign() { + require_numeric_argument(); + if (is_integral_type(arg_type_) && arg_type_ != type::int_type && + arg_type_ != type::long_long_type && arg_type_ != type::char_type) { + error_handler_.on_error("format specifier requires signed argument"); + } + } + + FMT_CONSTEXPR void check_precision() { + if (is_integral_type(arg_type_) || arg_type_ == type::pointer_type) + error_handler_.on_error("precision not allowed for this argument type"); + } + + private: + ErrorHandler& error_handler_; + detail::type arg_type_; +}; + +// A format specifier handler that checks if specifiers are consistent with the +// argument type. +template class specs_checker : public Handler { + private: + numeric_specs_checker checker_; + + // Suppress an MSVC warning about using this in initializer list. + FMT_CONSTEXPR Handler& error_handler() { return *this; } + + public: + FMT_CONSTEXPR specs_checker(const Handler& handler, detail::type arg_type) + : Handler(handler), checker_(error_handler(), arg_type) {} + + FMT_CONSTEXPR specs_checker(const specs_checker& other) + : Handler(other), checker_(error_handler(), other.arg_type_) {} + + FMT_CONSTEXPR void on_align(align_t align) { + if (align == align::numeric) checker_.require_numeric_argument(); + Handler::on_align(align); + } + + FMT_CONSTEXPR void on_plus() { + checker_.check_sign(); + Handler::on_plus(); + } + + FMT_CONSTEXPR void on_minus() { + checker_.check_sign(); + Handler::on_minus(); + } + + FMT_CONSTEXPR void on_space() { + checker_.check_sign(); + Handler::on_space(); + } + + FMT_CONSTEXPR void on_hash() { + checker_.require_numeric_argument(); + Handler::on_hash(); + } + + FMT_CONSTEXPR void on_zero() { + checker_.require_numeric_argument(); + Handler::on_zero(); + } + + FMT_CONSTEXPR void end_precision() { checker_.check_precision(); } +}; + +template